tuxcmd-0.6.70+dfsg/0000755000175000017500000000000011300022710013027 5ustar salvisalvituxcmd-0.6.70+dfsg/ULibc.pas0000644000175000017500000010641411300022643014545 0ustar salvisalvi(* Tux Commander - ULibc - translated glibc functions for all platforms Copyright (C) 2008 Tomas Bzatek Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit ULibc; interface {$IFDEF FPC} {$PACKRECORDS C} {$ENDIF} const GLIBC_LIB = 'libc.so.6'; DL_LIB = 'libdl.so.2'; PTHREAD_LIB = 'libpthread.so.0'; type {$IFDEF KYLIX} DWORD = Cardinal; QWORD = Int64; LongWord = LongInt; {$ENDIF} cUShort = Word; cInt = LongInt; cuInt = LongWord; cLongLong = Int64; cuLongLong = QWord; cuChar = Byte; {$IFDEF CPU64} cLong = Int64; cuLong = QWord; {$ELSE} cLong = Longint; cuLong = Cardinal; {$ENDIF} sig_atomic_t = Longint; size_t = Cardinal; ssize_t = Longint; error_t = Integer; __mode_t = DWORD; __dev_t = QWORD; __pid_t = Longint; __id_t = DWORD; __uid_t = DWORD; __gid_t = DWORD; __off64_t = Int64; __off_t = Longint; __ino_t = DWORD; __ino64_t = QWORD; __nlink_t = DWORD; __blksize_t = Longint; __blkcnt_t = Longint; __blkcnt64_t = Int64; Pidtype_t = ^idtype_t; idtype_t = (P_ALL,P_PID,P_PGID); Psiginfo_t = Pointer; Prusage = Pointer; PDIR = Pointer; PFILE = Pointer; Pfpos_t = Pointer; Pfpos64_t = Pointer; Ttimespec = packed record {$IFNDEF CPU64} // 32-bit platform tv_sec: longint; tv_nsec: longint; {$ELSE} // 64-bit platform tv_sec: Int64; tv_nsec: Int64; {$ENDIF} end; Ptm = ^tm; tm = record tm_sec : longint; tm_min : longint; tm_hour : longint; tm_mday : longint; tm_mon : longint; tm_year : longint; tm_wday : longint; tm_yday : longint; tm_isdst : longint; case boolean of false : (tm_gmtoff : longint;tm_zone : Pchar); true : (__tm_gmtoff : longint;__tm_zone : Pchar); end; Pdirent64 = ^Tdirent64; Tdirent64 = packed record d_ino : QWORD; d_off : Int64; d_reclen : word; d_type : byte; d_name : array[0..255] of char; end; Pstat64 = ^Tstat64; Tstat64 = record {$IFNDEF CPU64} {$IFNDEF CPUPOWERPC} // i386 st_dev: cuLongLong; __pad0_: array[0..3] of cuChar; __st_ino: cuLong; st_mode: cuInt; st_nlink: cuInt; st_uid: cuLong; st_gid: cuLong; st_rdev: cuLongLong; __pad3_: array[0..3] of cuChar; st_size: cLongLong; st_blksize: cuLong; st_blocks: cuLongLong; //* Number 512-byte blocks allocated. */ st_atime: cuLong; st_atime_nsec: cuLong; st_mtime: cuLong; st_mtime_nsec: cuInt; st_ctime: cuLong; st_ctime_nsec: cuLong; st_ino: cuLongLong {$ELSE} // PPC32 st_dev : cULongLong; st_ino : cULongLong; st_mode : cUInt; st_nlink : cUInt; st_uid : cUInt; st_gid : cUInt; st_rdev : cULongLong; __pad2 : cUShort; st_size : cLongLong; st_blksize : cInt; st_blocks : cULongLong; st_atime, st_atime_nsec, st_mtime, st_mtime_nsec, st_ctime, st_ctime_nsec, __unused4, __unused5 : cULong; {$ENDIF} {$ELSE} {$IFNDEF CPUPOWERPC} // x86_64 st_dev: cuLong; st_ino: cuLong; st_nlink: cuLong; st_mode: cuInt; st_uid: cuInt; st_gid: cuInt; __pad1: cuInt; st_rdev: cuLong; st_size: cLong; st_blksize: cLong; st_blocks: cLong; //* Number 512-byte blocks allocated. */ st_atime: cuLong; st_atime_nsec: cuLong; st_mtime: cuLong; st_mtime_nsec: cuLong; st_ctime: cuLong; st_ctime_nsec: cuLong; __unused2: array[0..2] of cLong; {$ELSE} // PPC64 st_dev : cuLong; st_ino : cuLong; { wrongly defined in RTL? } st_nlink : cuLong; { wrongly defined in RTL? } st_mode : cuInt; st_uid : cuInt; st_gid : cuInt; st_rdev : cULong; st_size : cLong; st_blksize : cULong; st_blocks : cULong; { Number 512-byte blocks allocated. } st_atime : cULong; st_atime_nsec : cULong; st_mtime : cULong; st_mtime_nsec : cULong; st_ctime : cULong; st_ctime_nsec : cULong; __unused : array[0..2] of cULong; {$ENDIF} {$ENDIF} end; fsid_t = packed record __val : array[0..1] of longint; end; Pstatfs64 = ^Tstatfs64; Tstatfs64 = packed record {$IFNDEF CPU64} // 32-bit platform f_type : longint; f_bsize : longint; f_blocks : QWORD; f_bfree : QWORD; f_bavail : QWORD; f_files : QWORD; f_ffree : QWORD; f_fsid : fsid_t; f_namelen : longint; f_spare : array[0..5] of longint; {$ELSE} // 64-bit platform f_type : Int64; f_bsize : Int64; f_blocks : QWORD; f_bfree : QWORD; f_bavail : QWORD; f_files : QWORD; f_ffree : QWORD; f_fsid : fsid_t; f_namelen : Int64; f_spare : array[0..5] of Int64; {$ENDIF} end; {$IFNDEF CPU64} time_t = longint; {$ELSE} time_t = Int64; {$ENDIF} Ptime_t = ^time_t; Putimbuf = ^Tutimbuf; Tutimbuf = record actime : time_t; modtime : time_t; end; Pmntent = ^Tmntent; Tmntent = record mnt_fsname : PChar; mnt_dir : PChar; mnt_type : PChar; mnt_opts : PChar; mnt_freq : Longint; mnt_passno : Longint; end; PPasswd = ^TPasswd; TPasswd = record pw_name : PChar; pw_passwd : PChar; pw_uid : __uid_t; pw_gid : __gid_t; pw_gecos : PChar; pw_dir : PChar; pw_shell : PChar; end; PPPasswd = ^PPasswd; PGroup = ^TGroup; TGroup = record gr_name : PChar; gr_passwd : PChar; gr_gid : __gid_t; gr_mem : ^PChar; end; PPGroup = ^PGroup; Psigval = ^sigval; sigval = record case longint of 0 : ( sival_int : longint ); 1 : ( sival_ptr : pointer ); end; sigval_t = sigval; Psigval_t = ^sigval_t; const _SIGSET_NWORDS = 1024 div (8 * (sizeof(dword))); type __sighandler_t = procedure(SigNum: Integer); cdecl; P__sigset_t = ^__sigset_t; __sigset_t = record __val : array[0..(_SIGSET_NWORDS)-1] of dword; end; sigset_t = __sigset_t; Psigset_t = ^sigset_t; P_sigaction = ^_sigaction; _sigaction = record // Renamed, avoid conflict with sigaction function case integer of 1: (sa_handler : __sighandler_t; sa_mask : __sigset_t; sa_flags : longint; sa_restorer : procedure ;cdecl; ); // Kylix compatibility 2: (__sigaction_handler: __sighandler_t); end; TSigAction = _sigaction; PSigAction = ^TSigAction; TRestoreHandler = procedure; cdecl; __sigaction = _sigaction; TSigActionHandler = procedure(Signal: Integer); cdecl; const EPERM = 1; ENOENT = 2; ESRCH = 3; EINTR = 4; EIO = 5; ENXIO = 6; E2BIG = 7; ENOEXEC = 8; EBADF = 9; ECHILD = 10; EAGAIN = 11; ENOMEM = 12; EACCES = 13; EFAULT = 14; ENOTBLK = 15; EBUSY = 16; EEXIST = 17; EXDEV = 18; ENODEV = 19; ENOTDIR = 20; EISDIR = 21; EINVAL = 22; ENFILE = 23; EMFILE = 24; ENOTTY = 25; ETXTBSY = 26; EFBIG = 27; ENOSPC = 28; ESPIPE = 29; EROFS = 30; EMLINK = 31; EPIPE = 32; EDOM = 33; ERANGE = 34; EDEADLK = 35; ENAMETOOLONG = 36; ENOLCK = 37; ENOSYS = 38; ENOTEMPTY = 39; ELOOP = 40; EWOULDBLOCK = EAGAIN; ENOMSG = 42; EIDRM = 43; ECHRNG = 44; EL2NSYNC = 45; EL3HLT = 46; EL3RST = 47; ELNRNG = 48; EUNATCH = 49; ENOCSI = 50; EL2HLT = 51; EBADE = 52; EBADR = 53; EXFULL = 54; ENOANO = 55; EBADRQC = 56; EBADSLT = 57; EDEADLOCK = EDEADLK; EBFONT = 59; ENOSTR = 60; ENODATA = 61; ETIME = 62; ENOSR = 63; ENONET = 64; ENOPKG = 65; EREMOTE = 66; ENOLINK = 67; EADV = 68; ESRMNT = 69; ECOMM = 70; EPROTO = 71; EMULTIHOP = 72; EDOTDOT = 73; EBADMSG = 74; EOVERFLOW = 75; ENOTUNIQ = 76; EBADFD = 77; EREMCHG = 78; ELIBACC = 79; ELIBBAD = 80; ELIBSCN = 81; ELIBMAX = 82; ELIBEXEC = 83; EILSEQ = 84; ERESTART = 85; ESTRPIPE = 86; EUSERS = 87; ENOTSOCK = 88; EDESTADDRREQ = 89; EMSGSIZE = 90; EPROTOTYPE = 91; ENOPROTOOPT = 92; EPROTONOSUPPORT = 93; ESOCKTNOSUPPORT = 94; EOPNOTSUPP = 95; EPFNOSUPPORT = 96; EAFNOSUPPORT = 97; EADDRINUSE = 98; EADDRNOTAVAIL = 99; ENETDOWN = 100; ENETUNREACH = 101; ENETRESET = 102; ECONNABORTED = 103; ECONNRESET = 104; ENOBUFS = 105; EISCONN = 106; ENOTCONN = 107; ESHUTDOWN = 108; ETOOMANYREFS = 109; ETIMEDOUT = 110; ECONNREFUSED = 111; EHOSTDOWN = 112; EHOSTUNREACH = 113; EALREADY = 114; EINPROGRESS = 115; ESTALE = 116; EUCLEAN = 117; ENOTNAM = 118; ENAVAIL = 119; EISNAM = 120; EREMOTEIO = 121; EDQUOT = 122; ENOMEDIUM = 123; EMEDIUMTYPE = 124; ENOTSUP = EOPNOTSUPP; ECANCELED = 125; const __S_IFMT = $F000; __S_IFDIR = $4000; __S_IFCHR = $2000; __S_IFBLK = $6000; __S_IFREG = $8000; __S_IFIFO = $1000; __S_IFLNK = $A000; __S_IFSOCK = $C000; __S_ISUID = $800; __S_ISGID = $400; __S_ISVTX = $200; __S_IREAD = $100; __S_IWRITE = $80; __S_IEXEC = $40; S_IFMT = __S_IFMT; S_IFDIR = __S_IFDIR; S_IFCHR = __S_IFCHR; S_IFBLK = __S_IFBLK; S_IFREG = __S_IFREG; S_IFIFO = __S_IFIFO; S_IFLNK = __S_IFLNK; S_IFSOCK = __S_IFSOCK; function __S_ISTYPE(mode, mask : __mode_t) : boolean; function S_ISDIR(mode : __mode_t) : boolean; function S_ISCHR(mode : __mode_t) : boolean; function S_ISBLK(mode : __mode_t) : boolean; function S_ISREG(mode : __mode_t) : boolean; function S_ISFIFO(mode : __mode_t) : boolean; function S_ISLNK(mode : __mode_t) : boolean; function S_ISSOCK(mode : __mode_t) : boolean; const S_ISUID = __S_ISUID; S_ISGID = __S_ISGID; S_ISVTX = __S_ISVTX; S_IRUSR = __S_IREAD; S_IWUSR = __S_IWRITE; S_IXUSR = __S_IEXEC; S_IRWXU = (__S_IREAD or __S_IWRITE) or __S_IEXEC; S_IREAD = S_IRUSR; S_IWRITE = S_IWUSR; S_IEXEC = S_IXUSR; S_IRGRP = S_IRUSR shr 3; S_IWGRP = S_IWUSR shr 3; S_IXGRP = S_IXUSR shr 3; S_IRWXG = S_IRWXU shr 3; S_IROTH = S_IRGRP shr 3; S_IWOTH = S_IWGRP shr 3; S_IXOTH = S_IXGRP shr 3; S_IRWXO = S_IRWXG shr 3; const ACCESSPERMS = (S_IRWXU or S_IRWXG) or S_IRWXO; ALLPERMS = ((((S_ISUID or S_ISGID) or S_ISVTX) or S_IRWXU) or S_IRWXG) or S_IRWXO; DEFFILEMODE = ((((S_IRUSR or S_IWUSR) or S_IRGRP) or S_IWGRP) or S_IROTH) or S_IWOTH; S_BLKSIZE = 512; const DT_UNKNOWN = 0; DT_FIFO = 1; DT_CHR = 2; DT_DIR = 4; DT_BLK = 6; DT_REG = 8; DT_LNK = 10; DT_SOCK = 12; DT_WHT = 14; const RTLD_LAZY = $00001; RTLD_NOW = $00002; RTLD_BINDING_MASK = $3; RTLD_NOLOAD = $00004; RTLD_GLOBAL = $00100; RTLD_LOCAL = 0; RTLD_NODELETE = $01000; const _PATH_DEFPATH = '/usr/bin:/bin'; _PATH_STDPATH = '/usr/bin:/bin:/usr/sbin:/sbin'; _PATH_BSHELL = '/bin/sh'; _PATH_CONSOLE = '/dev/console'; _PATH_CSHELL = '/bin/csh'; _PATH_DEVDB = '/var/run/dev.db'; _PATH_DEVNULL = '/dev/null'; _PATH_DRUM = '/dev/drum'; _PATH_KLOG = '/proc/kmsg'; _PATH_KMEM = '/dev/kmem'; _PATH_LASTLOG = '/var/log/lastlog'; _PATH_MAILDIR = '/var/mail'; _PATH_MAN = '/usr/share/man'; _PATH_MEM = '/dev/mem'; _PATH_MNTTAB = '/etc/fstab'; _PATH_MOUNTED = '/etc/mtab'; _PATH_NOLOGIN = '/etc/nologin'; _PATH_PRESERVE = '/var/lib'; _PATH_RWHODIR = '/var/spool/rwho'; _PATH_SENDMAIL = '/usr/sbin/sendmail'; _PATH_SHADOW = '/etc/shadow'; _PATH_SHELLS = '/etc/shells'; _PATH_TTY = '/dev/tty'; _PATH_UNIX = '/boot/vmlinux'; _PATH_UTMP = '/var/run/utmp'; _PATH_VI = '/usr/bin/vi'; _PATH_WTMP = '/var/log/wtmp'; _PATH_DEV = '/dev/'; _PATH_TMP = '/tmp/'; _PATH_VARDB = '/var/db/'; _PATH_VARRUN = '/var/run/'; _PATH_VARTMP = '/var/tmp/'; const WCOREFLAG = $80; const SIG_ERR = (-1); SIG_DFL = (0); SIG_IGN = (1); SIG_HOLD = (2); const SIGHUP = 1; SIGINT = 2; SIGQUIT = 3; SIGILL = 4; SIGTRAP = 5; SIGABRT = 6; SIGIOT = 6; SIGBUS = 7; SIGFPE = 8; SIGKILL = 9; SIGUSR1 = 10; SIGSEGV = 11; SIGUSR2 = 12; SIGPIPE = 13; SIGALRM = 14; SIGTERM = 15; SIGSTKFLT = 16; SIGCHLD = 17; SIGCLD = SIGCHLD; SIGCONT = 18; SIGSTOP = 19; SIGTSTP = 20; SIGTTIN = 21; SIGTTOU = 22; SIGURG = 23; SIGXCPU = 24; SIGXFSZ = 25; SIGVTALRM = 26; SIGPROF = 27; SIGWINCH = 28; SIGIO = 29; SIGPOLL = SIGIO; SIGPWR = 30; SIGSYS = 31; SIGUNUSED = 31; _NSIG = 64; const WNOHANG = 1; WUNTRACED = 2; __WALL = $40000000; __WCLONE = $80000000; const STDIN_FILENO = 0; STDOUT_FILENO = 1; STDERR_FILENO = 2; const R_OK = 4; W_OK = 2; X_OK = 1; F_OK = 0; const SEEK_SET = 0; SEEK_CUR = 1; SEEK_END = 2; const _STAT_VER_LINUX_OLD = 1; _STAT_VER_KERNEL = 1; _STAT_VER_SVR4 = 2; _STAT_VER_LINUX = 3; _STAT_VER = _STAT_VER_LINUX; _MKNOD_VER_LINUX = 1; _MKNOD_VER_SVR4 = 2; _MKNOD_VER = _MKNOD_VER_LINUX; {$IFNDEF KYLIX} function stat64(const afile: PChar; buf: Pstat64): longint; cdecl; external GLIBC_LIB name 'stat64'; function lstat64(const path: PChar; buf: Pstat64): longint; cdecl; external GLIBC_LIB name 'lstat64'; {$ELSE} function stat64(const afile: PChar; buf: Pstat64): longint; function lstat64(const path: PChar; buf: Pstat64): longint; {$ENDIF} function statfs64(const path: PChar; buf: Pstatfs64): longint; cdecl; external GLIBC_LIB name 'statfs64'; function chmod(const path: PChar; mode: __mode_t): Longint; cdecl; external GLIBC_LIB name 'chmod'; function libc_chmod(const path: PChar; mode: __mode_t): Longint; cdecl; external GLIBC_LIB name 'chmod'; function fchmod(fildes: Longint; mode: __mode_t): Longint; cdecl; external GLIBC_LIB name 'fchmod'; function umask(mask: __mode_t): __mode_t; cdecl; external GLIBC_LIB name 'umask'; function getumask: __mode_t; cdecl; external GLIBC_LIB name 'getumask'; function chown(const path: PChar; owner: __uid_t; group: __gid_t): Longint; cdecl; external GLIBC_LIB name 'chown'; function libc_chown(const path: PChar; owner: __uid_t; group: __gid_t): Longint; cdecl; external GLIBC_LIB name 'chown'; function fchown(fd: Longint; owner: __uid_t; group: __gid_t): Longint; cdecl; external GLIBC_LIB name 'fchown'; function lchown(const path: PChar; owner: __uid_t; group:__gid_t): Longint; cdecl; external GLIBC_LIB name 'lchown'; function __mkdir(const pathname: PChar; mode: __mode_t): Longint; cdecl; external GLIBC_LIB name 'mkdir'; function mkdir(const pathname: PChar; mode: __mode_t): Longint; cdecl; external GLIBC_LIB name 'mkdir'; function libc_mkdir(const pathname: PChar; mode: __mode_t): Longint; cdecl; external GLIBC_LIB name 'mkdir'; function mknod(const pathname: PChar; mode: __mode_t; dev: __dev_t): Longint; cdecl; external GLIBC_LIB name 'mknod'; function mkfifo(const pathname: PChar; mode: __mode_t): Longint; cdecl; external GLIBC_LIB name 'mkfifo'; function fileno(stream: PFILE): integer; cdecl; external GLIBC_LIB name 'fileno'; function utime(const afile: Pchar; buf: Putimbuf): Longint; cdecl; external GLIBC_LIB name 'utime'; function setmntent(const afile: PChar; const mode: PChar): PFILE; cdecl; external GLIBC_LIB name 'setmntent'; function getmntent(stream: PFILE): Pmntent; cdecl; external GLIBC_LIB name 'getmntent'; function endmntent(stream: PFILE): Longint; cdecl; external GLIBC_LIB name 'endmntent'; function dlopen(const filename: PChar; flag: Longint): Pointer; cdecl; external DL_LIB name 'dlopen'; function dlclose(handle: Pointer): Longint; cdecl; external DL_LIB name 'dlclose'; function dlsym(handle: Pointer; const symbol: PChar): Pointer; cdecl; external DL_LIB name 'dlsym'; function dlerror: PChar; cdecl; external GLIBC_LIB name 'dlerror'; function real_libc_malloc(size: size_t): Pointer; cdecl; external GLIBC_LIB name 'malloc'; {$IFNDEF CPUPOWERPC} function malloc(size: size_t): Pointer; cdecl; external GLIBC_LIB name 'malloc'; {$ELSE} function malloc(size: size_t): Pointer; {$ENDIF} function calloc(nmemb: size_t; size: size_t): Pointer; cdecl; external GLIBC_LIB name 'calloc'; function realloc(ptr: Pointer; size: size_t): Pointer; cdecl; external GLIBC_LIB name 'realloc'; procedure real_libc_free(ptr: Pointer); cdecl; external GLIBC_LIB name 'free'; {$IFNDEF CPUPOWERPC} procedure free(ptr: Pointer); cdecl; external GLIBC_LIB name 'free'; procedure libc_free(ptr: Pointer); cdecl; external GLIBC_LIB name 'free'; {$ELSE} procedure free(ptr: Pointer); procedure libc_free(ptr: Pointer); {$ENDIF} procedure cfree(ptr: Pointer); cdecl; external GLIBC_LIB name 'cfree'; function memalign(boundary: size_t; size: size_t): Pointer; cdecl; external GLIBC_LIB name 'memalign'; function valloc(size: size_t): Pointer; cdecl; external GLIBC_LIB name 'valloc'; function memcpy(dest: Pointer; src: Pointer; n: size_t): Pointer; cdecl; external GLIBC_LIB name 'memcpy'; function memmove(dest: Pointer; src: Pointer; n: size_t): Pointer; cdecl; external GLIBC_LIB name 'memmove'; function memccpy(dest: Pointer; src: Pointer; c: longint; n: size_t): Pointer; cdecl; external GLIBC_LIB name 'memccpy'; function memset(s: Pointer; c: Longint; n: size_t): Pointer; cdecl; external GLIBC_LIB name 'memset'; function memcmp(s1: Pointer; s2: Pointer; n: size_t): Longint; cdecl; external GLIBC_LIB name 'memcmp'; function memchr(s: Pointer; c: Longint; n: size_t): Pointer; cdecl; external GLIBC_LIB name 'memchr'; function strcpy(dest: PChar; const src: PChar): PChar; cdecl; external GLIBC_LIB name 'strcpy'; function strncpy(dest: PChar; const src: PChar; n: size_t): PChar; cdecl; external GLIBC_LIB name 'strncpy'; function strcat(dest: PChar; const src: PChar): PChar; cdecl; external GLIBC_LIB name 'strcat'; function strncat(dest: PChar; const src: PChar; n: size_t): PChar; cdecl; external GLIBC_LIB name 'strncat'; function strcmp(const s1: PChar; const s2: PChar): Longint; cdecl; external GLIBC_LIB name 'strcmp'; function strncmp(const s1: PChar; const s2: PChar; n: size_t): Longint; cdecl; external GLIBC_LIB name 'strncmp'; function strcasecmp(const s1: PChar; const s2: PChar): Longint; cdecl; external GLIBC_LIB name 'strcasecmp'; function strncasecmp(const s1: PChar; const s2: PChar; n: size_t): Longint; cdecl; external GLIBC_LIB name 'strncasecmp'; {$IFNDEF CPUPOWERPC} function strdup(const s: PChar): PChar; cdecl; external GLIBC_LIB name 'strdup'; function strndup(const s: PChar; n: size_t): PChar; cdecl; external GLIBC_LIB name 'strndup'; {$ELSE} function strdup(const s: PChar): PChar; function strndup(const s: PChar; n: size_t): PChar; {$ENDIF} function strchr(const s: PChar; c: Longint): PChar; cdecl; external GLIBC_LIB name 'strchr'; function strrchr(const s: PChar; c: Longint): PChar; cdecl; external GLIBC_LIB name 'strrchr'; function strstr(const haystack: PChar; const needle: PChar): PChar; cdecl; external GLIBC_LIB name 'strstr'; function strcasestr(const haystack: PChar; const needle: PChar): PChar; cdecl; external GLIBC_LIB name 'strcasestr'; function strtok(s: PChar; const delim: PChar): PChar; cdecl; external GLIBC_LIB name 'strtok'; function strtok_r(s: PChar; const delim: PChar; save_ptr: PPchar): PChar; cdecl; external GLIBC_LIB name 'strtok_r'; function strsep(stringp: PPchar; const delim: PChar): PChar; cdecl; external GLIBC_LIB name 'strsep'; function strlen(const s: PChar): size_t; cdecl; external GLIBC_LIB name 'strlen'; function strnlen(const s: PChar; maxlen: size_t): size_t; cdecl; external GLIBC_LIB name 'strnlen'; function strerror(errnum: Longint): PChar; cdecl; external GLIBC_LIB name 'strerror'; function strerror_r(errnum: Longint; buf: PChar; buflen: size_t): PChar; cdecl; external GLIBC_LIB name 'strerror_r'; function strsignal(sig: Longint): PChar; cdecl; external GLIBC_LIB name 'strsignal'; function __chdir(const path: PChar): Longint; cdecl; external GLIBC_LIB name 'chdir'; function chdir(const path: PChar): Longint; cdecl; external GLIBC_LIB name 'chdir'; function libc_chdir(const path: PChar): Longint; cdecl; external GLIBC_LIB name 'chdir'; function errno : error_t; function __errno_location: PInteger; cdecl; external GLIBC_LIB name '__errno_location'; function fork: __pid_t; cdecl; external GLIBC_LIB name 'fork'; function vfork: __pid_t; cdecl; external GLIBC_LIB name 'vfork'; function link(const oldpath: PChar; const newpath: PChar): Longint; cdecl; external GLIBC_LIB name 'link'; function symlink(const oldpath: PChar; const newpath: PChar): Longint; cdecl; external GLIBC_LIB name 'symlink'; function readlink(const path: PChar; buf: PChar; bufsiz: size_t): Longint; cdecl; external GLIBC_LIB name 'readlink'; function unlink(const pathname: PChar): Longint; cdecl; external GLIBC_LIB name 'unlink'; function __rmdir(const pathname: PChar): Longint; cdecl; external GLIBC_LIB name 'rmdir'; function rmdir(const pathname: PChar): Longint; cdecl; external GLIBC_LIB name 'rmdir'; function libc_rmdir(const pathname: PChar): Longint; cdecl; external GLIBC_LIB name 'rmdir'; function remove(const pathname: PChar): Longint; cdecl; external GLIBC_LIB name 'remove'; function libc_remove(const pathname: PChar): Longint; cdecl; external GLIBC_LIB name 'remove'; function __rename(const oldpath: PChar; const newpath: PChar): Longint; cdecl; external GLIBC_LIB name 'rename'; function libc_rename(const oldpath: PChar; const newpath: PChar): Longint; cdecl; external GLIBC_LIB name 'rename'; function wait(status: PLongint): __pid_t; cdecl; external GLIBC_LIB name 'wait'; function waitpid(pid: __pid_t; status: Plongint; options: Longint): __pid_t; cdecl; external GLIBC_LIB name 'waitpid'; function waitid(idtype: idtype_t; id: __id_t; infop: Psiginfo_t; options: Longint): Longint; cdecl; external GLIBC_LIB name 'waitid'; function wait3(status: Plongint; options: Longint; rusage: Prusage): __pid_t; cdecl; external GLIBC_LIB name 'wait3'; function wait4(pid: __pid_t; status: Plongint; options: Longint; rusage: Prusage): __pid_t; cdecl; external GLIBC_LIB name 'wait4'; function opendir(const name: PChar): PDIR; cdecl; external GLIBC_LIB name 'opendir'; function closedir(dir: PDIR): Longint; cdecl; external GLIBC_LIB name 'closedir'; function readdir64(dir: PDIR): PDirent64; cdecl; external GLIBC_LIB name 'readdir64'; procedure rewinddir(dir: PDIR); cdecl; external GLIBC_LIB name 'rewinddir'; procedure seekdir(dir: PDIR; pos: Longint); cdecl; external GLIBC_LIB name 'seekdir'; function telldir(dir: PDIR): Longint; cdecl; external GLIBC_LIB name 'telldir'; function dirfd(dir: PDIR): Longint; cdecl; external GLIBC_LIB name 'dirfd'; function getcwd(buf: PChar; size: size_t): PChar; cdecl; external GLIBC_LIB name 'getcwd'; function get_current_dir_name: PChar; cdecl; external GLIBC_LIB name 'get_current_dir_name'; function getwd(buf: PChar): PChar; cdecl; external GLIBC_LIB name 'getwd'; function dup(oldfd: Longint): Longint; cdecl; external GLIBC_LIB name 'dup'; function dup2(oldfd: Longint; newfd: Longint): Longint; cdecl; external GLIBC_LIB name 'dup2'; function execve(const filename: PChar; const argv: PPchar; const envp: PPchar): Longint; cdecl; external GLIBC_LIB name 'execve'; function execv(const path: PChar; const argv: PPchar): Longint; cdecl; external GLIBC_LIB name 'execv'; function execle(const path: PChar; const arg: PChar): Longint; cdecl; varargs; external GLIBC_LIB name 'execle'; function execl(const path: PChar; const arg: PChar): Longint; cdecl; varargs; external GLIBC_LIB name 'execl'; function execvp(const afile: PChar; const argv: PPchar): Longint; cdecl; external GLIBC_LIB name 'execvp'; function execlp(const afile: PChar; const arg: PChar): Longint; cdecl; varargs; external GLIBC_LIB name 'execlp'; function getpid: __pid_t; cdecl; external GLIBC_LIB name 'getpid'; function getppid: __pid_t; cdecl; external GLIBC_LIB name 'getppid'; function getpgrp: __pid_t; cdecl; external GLIBC_LIB name 'getpgrp'; procedure setpwent; cdecl; external GLIBC_LIB name 'setpwent'; procedure endpwent; cdecl; external GLIBC_LIB name 'endpwent'; function getpwent: PPasswd; cdecl; external GLIBC_LIB name 'getpwent'; function fgetpwent(stream: PFILE): PPasswd; cdecl; external GLIBC_LIB name 'fgetpwent'; function putpwent(const p: PPasswd; stream: PFILE): Longint; cdecl; external GLIBC_LIB name 'putpwent'; function getpwuid(uid: __uid_t): PPasswd; cdecl; external GLIBC_LIB name 'getpwuid'; function getpwnam(const name: PChar): PPasswd; cdecl; external GLIBC_LIB name 'getpwnam'; procedure setgrent; cdecl; external GLIBC_LIB name 'setgrent'; procedure endgrent; cdecl; external GLIBC_LIB name 'endgrent'; function getgrent:PGroup; cdecl; external GLIBC_LIB name 'getgrent'; function fgetgrent(stream: PFILE): PGroup; cdecl; external GLIBC_LIB name 'fgetgrent'; function putgrent(p: PGroup; stream: PFILE): Longint; cdecl; external GLIBC_LIB name 'putgrent'; function getgrgid(gid: __gid_t): PGroup; cdecl; external GLIBC_LIB name 'getgrgid'; function getgrnam(name: PChar): PGroup; cdecl; external GLIBC_LIB name 'getgrnam'; function __time(t: Ptime_t): time_t; cdecl; external GLIBC_LIB name 'time'; function time(t: Ptime_t): time_t; cdecl; external GLIBC_LIB name 'time'; function libc_time(t: Ptime_t): time_t; cdecl; external GLIBC_LIB name 'time'; function mktime(timep: Ptm): time_t; cdecl; external GLIBC_LIB name 'mktime'; function strftime(s: PChar; max: size_t; const format: PChar; tm: Ptm): size_t; cdecl; external GLIBC_LIB name 'strftime'; function gmtime(timep: Ptime_t): Ptm; cdecl; external GLIBC_LIB name 'gmtime'; function localtime(timep: Ptime_t): Ptm; cdecl; external GLIBC_LIB name 'localtime'; function ctime(timep: Ptime_t): PChar; cdecl; external GLIBC_LIB name 'ctime'; function usleep(usec: DWord): Longint; cdecl; external GLIBC_LIB name 'usleep'; function mktemp(template: PChar): PChar; cdecl; external GLIBC_LIB name 'mktemp'; function mkstemp(template: PChar): Longint; cdecl; external GLIBC_LIB name 'mkstemp'; function mkstemp64(template: PChar): Longint; cdecl; external GLIBC_LIB name 'mkstemp64'; function mkdtemp(template: PChar): PChar; cdecl; external GLIBC_LIB name 'mkdtemp'; function fprintf(stream: PFILE; const format: PChar): Longint; cdecl; varargs; external GLIBC_LIB name 'fprintf'; function printf(const format: PChar): Longint; cdecl; varargs; external GLIBC_LIB name 'printf'; function sprintf(s: PChar; const format: PChar): Longint; varargs; cdecl; external GLIBC_LIB name 'sprintf'; function snprintf(s: PChar; size: size_t; const format: PChar): Longint; varargs; cdecl; external GLIBC_LIB name 'snprintf'; function WEXITSTATUS(Status: longint): longint; function WTERMSIG(Status: longint): longint; function WSTOPSIG(Status: longint): longint; function WIFEXITED(Status: longint): Boolean; function WIFSIGNALED(Status: longint): Boolean; function WIFSTOPPED(Status: longint): Boolean; function WCOREDUMP(Status: longint): Boolean; function W_EXITCODE(ReturnCode, Signal: longint): longint; function W_STOPCODE(Signal: longint): longint; procedure _exit(status: longint); cdecl; external GLIBC_LIB name '_exit'; function gethostname(name: PChar; len: size_t): Longint; cdecl; external GLIBC_LIB name 'gethostname'; function sigqueue(pid: __pid_t; sig: Longint; val: sigval): Longint; cdecl; external GLIBC_LIB name 'sigqueue'; function sigaction(sig: Longint; Action: PSigAction; OldAction: PSigAction): Integer; cdecl; external GLIBC_LIB name 'sigaction'; function __system(const command: PChar): Longint; cdecl; external GLIBC_LIB name 'system'; function system(const command: PChar): Longint; cdecl; external GLIBC_LIB name 'system'; function libc_system(const command: PChar): Longint; cdecl; external GLIBC_LIB name 'system'; procedure perror(const s: PChar); cdecl; external GLIBC_LIB name 'perror'; function popen(const command: PChar; const _type: PChar): PFILE; cdecl; external GLIBC_LIB name 'popen'; function pclose(stream: PFILE): Longint; cdecl; external GLIBC_LIB name 'pclose'; function pipe(pipedes: Plongint): Longint; cdecl; external GLIBC_LIB name 'pipe'; function fopen(const path: PChar; const mode: PChar): PFILE; cdecl; external GLIBC_LIB name 'fopen'; function fopen64(const path: PChar; const mode: PChar): PFILE; cdecl; external GLIBC_LIB name 'fopen64'; function fdopen(fd: Longint; mode: PChar): PFILE; cdecl; external GLIBC_LIB name 'fdopen'; function fclose(fp: PFILE): Longint; cdecl; external GLIBC_LIB name 'fclose'; function fflush(stream: PFILE): Longint; cdecl; external GLIBC_LIB name 'fflush'; function fflush_unlocked(stream: PFILE): Longint; cdecl; external GLIBC_LIB name 'fflush_unlocked'; function fread(ptr: Pointer; size: size_t; n: size_t; stream: PFILE): size_t; cdecl; external GLIBC_LIB name 'fread'; function fwrite(const ptr: Pointer; size: size_t; n: size_t; stream: PFILE): size_t; cdecl; external GLIBC_LIB name 'fwrite'; function fseek(stream: PFILE; off: Longint; whence: Longint): Longint; cdecl; external GLIBC_LIB name 'fseek'; function ftell(stream:PFILE): Longint; cdecl; external GLIBC_LIB name 'ftell'; procedure rewind(stream:PFILE); cdecl; external GLIBC_LIB name 'rewind'; function fseeko(stream: PFILE; offset: __off_t; whence: Longint): Longint; cdecl; external GLIBC_LIB name 'fseeko'; function ftello(stream: PFILE): __off_t; cdecl; external GLIBC_LIB name 'ftello'; function fgetpos(stream: PFILE; pos: Pfpos_t): Longint; cdecl; external GLIBC_LIB name 'fgetpos'; function fsetpos(stream: PFILE; pos: Pfpos_t): Longint; cdecl; external GLIBC_LIB name 'fsetpos'; function fseeko64(stream: PFILE; offset: __off64_t; whence: Longint): Longint; cdecl; external GLIBC_LIB name 'fseeko64'; function ftello64(stream: PFILE): __off64_t; cdecl; external GLIBC_LIB name 'ftello64'; function fgetpos64(stream: PFILE; pos: Pfpos64_t): Longint; cdecl; external GLIBC_LIB name 'fgetpos64'; function fsetpos64(stream: PFILE; pos: Pfpos64_t): Longint; cdecl; external GLIBC_LIB name 'fsetpos64'; function feof(stream: PFILE): Longint; cdecl; external GLIBC_LIB name 'feof'; function ferror(stream: PFILE): Longint; cdecl; external GLIBC_LIB name 'ferror'; function fcntl(fd: Longint; cmd: Longint): Longint; cdecl; varargs; external GLIBC_LIB name 'fcntl'; function open(const pathname: PChar; flags: Longint): Longint; cdecl; varargs; external GLIBC_LIB name 'open'; function open64(const pathname: PChar; flags: Longint): Longint; cdecl; varargs; external GLIBC_LIB name 'open64'; function creat(const pathname: PChar; mode: __mode_t): Longint; cdecl; external GLIBC_LIB name 'creat'; function creat64(const pathname: PChar; mode: __mode_t): Longint; cdecl; external GLIBC_LIB name 'creat64'; function __read(Handle: Integer; var Buffer; Count: size_t): ssize_t; cdecl; external GLIBC_LIB name 'read'; function libc_read(Handle: Integer; var Buffer; Count: size_t): ssize_t; cdecl; external GLIBC_LIB name 'read'; function __write(Handle: Integer; const Buffer; Count: size_t): ssize_t; cdecl; external GLIBC_LIB name 'write'; function libc_write(Handle: Integer; const Buffer; Count: size_t): ssize_t; cdecl; external GLIBC_LIB name 'write'; function __close(Handle: Integer): Integer; cdecl; external GLIBC_LIB name 'close'; function libc_close(Handle: Integer): Integer; cdecl; external GLIBC_LIB name 'close'; function getuid: __uid_t; cdecl; external GLIBC_LIB name 'getuid'; function geteuid: __uid_t; cdecl; external GLIBC_LIB name 'geteuid'; function getgid: __gid_t; cdecl; external GLIBC_LIB name 'getgid'; function getegid: __gid_t; cdecl; external GLIBC_LIB name 'getegid'; function access(pathname: PChar; mode: Longint): Longint; cdecl; external GLIBC_LIB name 'access'; function euidaccess(pathname: PChar; mode: Longint): Longint; cdecl; external GLIBC_LIB name 'euidaccess'; type pthread_t = {$ifdef cpu64}QWord{$else}DWord{$endif}; function pthread_self: pthread_t; cdecl; external PTHREAD_LIB name 'pthread_self'; implementation {$IFDEF CPUPOWERPC} uses SysUtils; {$ENDIF} {$IFDEF KYLIX} function glibc__xstat64(ver: integer; const afile: PChar; buf: Pstat64): longint; cdecl; external GLIBC_LIB name '__xstat64'; function glibc__lxstat64(ver: integer; const path: PChar; buf: Pstat64): longint; cdecl; external GLIBC_LIB name '__lxstat64'; function stat64(const afile: PChar; buf: Pstat64): longint; begin Result := glibc__xstat64(_STAT_VER, afile, buf); end; function lstat64(const path: PChar; buf: Pstat64): longint; begin Result := glibc__lxstat64(_STAT_VER, path, buf); end; {$ENDIF} function errno : error_t; begin Result := __errno_location()^; end; function __S_ISTYPE(mode, mask : __mode_t) : boolean; begin Result := (mode and __S_IFMT) = mask; end; function S_ISDIR(mode : __mode_t) : boolean; begin Result := __S_ISTYPE(mode, __S_IFDIR); end; function S_ISCHR(mode : __mode_t) : boolean; begin Result := __S_ISTYPE(mode, __S_IFCHR); end; function S_ISBLK(mode : __mode_t) : boolean; begin Result := __S_ISTYPE(mode, __S_IFBLK); end; function S_ISREG(mode : __mode_t) : boolean; begin Result := __S_ISTYPE(mode, __S_IFREG); end; function S_ISFIFO(mode : __mode_t) : boolean; begin Result := __S_ISTYPE(mode, __S_IFIFO); end; function S_ISLNK(mode : __mode_t) : boolean; begin Result := __S_ISTYPE(mode, __S_IFLNK); end; function S_ISSOCK(mode : __mode_t) : boolean; begin Result := __S_ISTYPE(mode, __S_IFSOCK); end; Function WEXITSTATUS(Status: longint): longint; begin Result:=(Status and $FF00) shr 8; end; Function WTERMSIG(Status: longint): longint; begin Result:=(Status and $7F); end; Function WSTOPSIG(Status: longint): longint; begin Result:=WEXITSTATUS(Status); end; Function WIFEXITED(Status: longint): Boolean; begin Result:=(WTERMSIG(Status)=0); end; Function WIFSIGNALED(Status: longint): Boolean; begin Result:=(not WIFSTOPPED(Status)) and (not WIFEXITED(Status)); end; Function WIFSTOPPED(Status: longint): Boolean; begin Result:=((Status and $FF)=$7F); end; Function WCOREDUMP(Status: longint): Boolean; begin Result:=((Status and WCOREFLAG)<>0); end; Function W_EXITCODE(ReturnCode, Signal: longint): longint; begin Result:=(ReturnCode shl 8) or Signal; end; Function W_STOPCODE(Signal: longint): longint; begin Result:=(Signal shl 8) or $7F; end; {$IFDEF CPUPOWERPC} function malloc(size: size_t): Pointer; begin Result := GetMem(size); end; procedure libc_free(ptr: Pointer); begin FreeMem(ptr); end; procedure free(ptr: Pointer); begin libc_free(ptr); end; function strdup(const s: PChar): PChar; begin Result := GetMem(strlen(s) + 1); SysUtils.StrLCopy(Result, s, strlen(s) + 1); end; function strndup(const s: PChar; n: size_t): PChar; begin Result := GetMem(n + 1); SysUtils.StrLCopy(Result, s, n); end; {$ENDIF} end. tuxcmd-0.6.70+dfsg/UCoreUtils.pas0000644000175000017500000021460511300022643015607 0ustar salvisalvi(* Tux Commander - UCoreUtils - Some other useful core functions Copyright (C) 2008 Tomas Bzatek Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UCoreUtils; interface uses gtk2, gdk2, glib2, SysUtils, Classes, ULibc, GTKClasses, UEngines; type PIntArray = ^TIntArray; TIntArray = array[0..1023] of LongWord; TOpenStringArray = array of string; TOpenPCharArray = array of PChar; const ConstERRSpawn = 26; ConstQuotationCharacters = [' ', '"', '''', '(', ')', ':', '&']; ConstURIIllegalCharacters = '%:@/'; function GetErrorString(ErrorNo: integer): string; function GetSignalString(SignalNo: integer): string; function FormatSize(Value: Int64; Base: integer; OverrideSizeFormat: integer = -1): string; function FormatDate(Value: time_t; const FormatTime, FormatDate: boolean; OverrideTimeFormat: integer = -1; OverrideDateFormat: integer = -1; OverrideDateTimeFormat: integer = -1; OverrideCustomDateFormat: string = ''; OverrideCustomTimeFormat: string = ''): string; function StripDate(Value: time_t): time_t; function IncludeLeadingDot(s: string): string; function AttrToStr(const Mode: Cardinal; IncludeFileType: boolean = True): string; function AttrToOctal(const Mode: Cardinal): integer; function OctalToAttr(Octal: Cardinal): Cardinal; { Convert an octal specified number to decimal } { Copied from linux.pp (Free Pascal run time library) - Copyright (c) 1999-2000 by Michael Van Canneyt, BSD parts (c) 2000 by Marco van de Voort, members of the Free Pascal development team } function PosEnd(Substr: string; S: string): Integer; function GetHomePath: string; function GetUserName: string; function GetHostName: string; procedure SeparateExt(const Original: string; var Name, Ext: string); procedure SeparateNameDir(Original: string; var Path, FileName: string); function PadRightStr(const Str: string; Len: byte): string; function IsWild(InputStr, Wilds: string; IgnoreCase: Boolean): Boolean; { IsWild compares InputString with WildCard string and returns True if corresponds. } { Copied from Delphi VCL Extensions (RX) - Copyright (c) 1995, 1996 AO ROSNO, Copyright (c) 1997, 1998 Master-Bank } function ReplaceStr(const S, Srch, Replace: string): string; { Returns string with every occurrence of Srch string replaced with Replace string. } { Copied from Delphi VCL Extensions (RX) - Copyright (c) 1995, 1996 AO ROSNO, Copyright (c) 1997, 1998 Master-Bank } function NumCountChars(const Char: char; const S: string): integer; procedure ParseString(const Str, Separator: string; var SubStrings: TOpenStringArray); function MakeString(const Separator: string; var SubStrings: TOpenStringArray): string; procedure CopyArray(var src: TOpenStringArray; var dst: TOpenStringArray); procedure DeleteFromArray(Index: integer; var SubStrings: TOpenStringArray); function ProcessPattern(Engine: TPanelEngine; Pattern, APath, FileName: string; const Directory: boolean): string; // Processess pattern with FileName located in APath and return destination path+filename procedure ShowAbout; procedure SetupAppIcon; procedure TrimCRLFESC(var s: string); procedure TrimQuotes(var s: string); function QuoteStr(const Str: string): string; function QuoteMarkupStr(const Str: string; MarkupUnderscore: boolean = False): string; function QuotePercentStr(const Str: string): string; function RemoveQuotation(const Str: string): string; function GetStrSize(s: string): Int64; procedure DebugMsg(Params: array of const); function SpawnProcess(const AppPath: string; var Running: boolean; const Parameters: array of string): Cardinal; function ExecuteProgram(const AppCMDLine, CWD: string; const AutodetectGUI, RunInTerminal: boolean; var ErrorSignal: integer): boolean; function IsItX11App(const Application: string): boolean; function HandleSystemCommand(const Command, ErrorText: string): boolean; function CompareTextsEx(S1, S2: PChar): integer; function LVCompareItems(Data1, Data2: PDataItem; const Ascending: boolean; const SortColumnID: integer): integer; procedure SortDataList(var List: TList; const Ascending: boolean; const SortColumnID: integer); procedure GetFirstLastPanelColumn(var FirstColumn, LastColumn: integer); procedure SetupColors; function ConstructURI(IncludePasswd, HidePasswd: boolean; Protocol, Server, Username, Password, Dir: string): string; function URIHidePassword(const SrcURI: string): string; function UnEscapeURI(const Str: string): string; function EscapeURI(const Str: string; const IllegalChars: string): string; function URIRipPassword(var URI: string; const RemovePassword: boolean): string; function GetURIPrefix(const URI: string): string; function StrTotimetDef(const S: string; const Default: time_t): time_t; procedure SaveItemToHistory(s: string; History: TStringList); // All the UTF-8 conversion functions do strdup() function StrToUTF8(s: string): string; overload; function UTF8ToStr(s: string): string; overload; function StrToUTF8(s: PChar): PChar; overload; function UTF8ToStr(s: PChar): PChar; overload; // function EnsureUTF8String(s: string): string; overload; function EnsureUTF8String(s: PChar): PChar; overload; function Min(Val1, Val2: longint): longint; function XORStr(const s: string; Key: byte): string; function FindCommonRoot(BasePath, DestPath: string): string; function BuildRelativePath(BasePath, DestPath: string): string; procedure ReportGTKVersion; // Internal locking procedure InternalLock; procedure InternalUnLock; function InternalLockUnlocked: boolean; procedure InternalLockInit(Locked: boolean); var ChildExitStatus: sig_atomic_t; AppPath, IconPath: string; // Used in UFileTypeSettings NormalItemGDKColor, ActiveItemGDKColor, InactiveItemGDKColor, SelectedItemGDKColor, DotFileItemGDKColor, LinkItemGDKColor, NormalItemGDKBackground, ActiveItemGDKBackground, InactiveItemGDKBackground: PGdkColor; InactiveItemBGColorNum: LongWord; implementation uses DateUtils, GTKForms, GTKUtils, GTKView, ULocale, UConfig, UCore, UGnome, UMain, UFileAssoc; (********************************************************************************************************************************) function GetErrorString(ErrorNo: integer): string; begin if ErrorNo >= 0 then Result := StrToUTF8(String(strerror(ErrorNo))) else case ErrorNo of ERRException : Result := LANGUnknownException; ERRNoAccess : Result := LANGNoAccess; else Result := LANGUnknownError; end; end; (********************************************************************************************************************************) function GetSignalString(SignalNo: integer): string; begin Result := StrToUTF8(strsignal(SignalNo)); end; (********************************************************************************************************************************) function FormatFloat64(Value: Int64; Sep: string): string; var i : integer; Orig : string; begin Result := IntToStr(Value); Orig := Result; if (Sep <> '') and (Length(Result) > 2) then for i := Length(Result) downto 2 do if (Length(Orig) - i + 1) mod 3 = 0 then Insert(Sep, Result, i); end; function FormatSize(Value: Int64; Base: integer; OverrideSizeFormat: integer = -1): string; var s: string; f, i: integer; p: PChar; x: gdouble; begin if Base < 1 then Base := 1; f := OverrideSizeFormat; if f < 0 then f := ConfSizeFormat; case f of 0 : begin // System default formatting p := g_strdup_printf('%''lu', Int64(Value div Base)); if p = nil then begin DebugMsg(['FormatSize(0): sprintf() failed, using old format function.']); Result := FormatFloat('###,###,##0', Value div Base); end else begin Result := StrToUTF8(p); g_free(p); end; end; 1 : begin // 123456 Result := IntToStr(Value div Base); end; 2 : begin // 123,456 Result := FormatFloat64(Value div Base, ','); end; 3 : begin // 123 456 Result := FormatFloat64(Value div Base, ' '); end; 4 : begin // 123'456 Result := FormatFloat64(Value div Base, ''''); end; 5 : begin // 123kB - Grouped if (Value >= 1024*1024*1024) or (Base = 1024*1024*1024) then begin x := Value / (1024*1024*1024); p := g_strdup_printf(PChar('%''.' + IntToStr(ConfSizeGroupPrecision) + 'f GB'), x); end else if (Value >= 1024*1024) or (Base = 1024*1024) then begin x := Value / (1024*1024); p := g_strdup_printf(PChar('%''.' + IntToStr(ConfSizeGroupPrecision) + 'f MB'), x); end else if (Value >= 1024) or (Base = 1024) then begin x := Value / 1024; p := g_strdup_printf(PChar('%''.' + IntToStr(ConfSizeGroupPrecision) + 'f kB'), x); end else p := g_strdup_printf('%d', Value); if p = nil then begin DebugMsg(['FormatSize(5): g_strdup_printf() failed, using old format function.']); s := '###,###,##0'; if ConfSizeGroupPrecision > 0 then begin s := s + '.'; for i := 1 to ConfSizeGroupPrecision do if ConfSizeGroupRequestZeroDigits then s := s + '0' else s := s + '#'; end; if (Value >= 1024*1024*1024) or (Base = 1024*1024*1024) then Result := FormatFloat(s + ' GB', Value / (1024*1024*1024)) else if (Value >= 1024*1024) or (Base = 1024*1024) then Result := FormatFloat(s + ' MB', Value / (1024*1024)) else if (Value >= 1024) or (Base = 1024) then Result := FormatFloat(s + ' kB', Value / (1024)) else Result := IntToStr(Value); end else begin Result := StrToUTF8(p); g_free(p); end; end; end; if ConfSizeFormat in [0..4] then begin if Result = '' then Result := '0'; if Base = 1024 then Result := Result + ' kB' else if Base = 1024*1024 then Result := Result + ' MB' else if Base = 1024*1024*1024 then Result := Result + ' GB'; end; if Result = '' then Result := '0'; end; (********************************************************************************************************************************) function FormatDate(Value: time_t; const FormatTime, FormatDate: boolean; OverrideTimeFormat: integer = -1; OverrideDateFormat: integer = -1; OverrideDateTimeFormat: integer = -1; OverrideCustomDateFormat: string = ''; OverrideCustomTimeFormat: string = ''): string; var DateString, TimeString: string; DateFormat, TimeFormat: string; CustDateFormat, CustTimeFormat: string; df, tf, dtf: integer; time_tm: Ptm; Buf: PChar; placed: integer; begin DateString := ''; TimeString := ''; DateFormat := ''; TimeFormat := ''; Result := ''; if OverrideDateFormat >= 0 then df := OverrideDateFormat else df := ConfDateFormat; if OverrideTimeFormat >= 0 then tf := OverrideTimeFormat else tf := ConfTimeFormat; if OverrideDateTimeFormat >= 0 then dtf := OverrideDateTimeFormat else dtf := ConfDateTimeFormat; if Length(Trim(OverrideCustomDateFormat)) > 0 then CustDateFormat := OverrideCustomDateFormat else CustDateFormat := ConfCustomDateFormat; if Length(Trim(OverrideCustomTimeFormat)) > 0 then CustTimeFormat := OverrideCustomTimeFormat else CustTimeFormat := ConfCustomTimeFormat; time_tm := localtime(@Value); if FormatDate then begin case df of 0: DateFormat := '%x'; // System format 1: DateFormat := '%Y-%m-%d'; // 2008-06-24 2: DateFormat := '%Y/%m/%d'; // 2008/06/24 3: DateFormat := '%d.%m.%Y'; // 24.06.2008 4: DateFormat := '%d.%m.%y'; // 24.06.08 5: DateFormat := '%d-%m-%Y'; // 24-06-2008 6: DateFormat := '%d/%m/%Y'; // 24/06/2008 7: DateFormat := '%m-%d-%Y'; // 06-24-2008 8: DateFormat := '%m/%d/%Y'; // 06/24/2008 9: DateFormat := '%d-%m-%y'; // 24-06-08 10: DateFormat := '%d/%m/%y'; // 24/06/08 11: DateFormat := '%m-%d-%y'; // 06-24-08 12: DateFormat := '%m/%d/%y'; // 06/24/08 13: DateFormat := '%y-%m-%d'; // 08-06-24 14: DateFormat := '%y/%m/%d'; // 08/06/24 else DateFormat := CustDateFormat; // Custom date format end; Buf := malloc(255); memset(Buf, 0, 255); placed := strftime(Buf, 254, PChar(DateFormat), time_tm); if placed <= 0 then DebugMsg(['FormatDate: error converting date. The result will be unpredictable.']); DateString := String(StrToUTF8(Buf)); libc_free(Buf); end; if FormatTime then begin case tf of 0: TimeFormat := '%X'; // System format 1: TimeFormat := '%I:%M %P'; // 01:11 pm 2: TimeFormat := '%l:%M %P'; // 1:11 pm 3: TimeFormat := '%I:%M:%S %P'; // 01:11:11 pm 4: TimeFormat := '%l:%M:%S %P'; // 1:11:11 pm 5: TimeFormat := '%I:%M %p'; // 01:11 PM 6: TimeFormat := '%l:%M %p'; // 1:11 PM 7: TimeFormat := '%I:%M:%S %p'; // 01:11:11 PM 8: TimeFormat := '%l:%M:%S %p'; // 1:11:11 PM 9: TimeFormat := '%k:%M'; // 13:11 10: TimeFormat := '%k:%M:%S'; // 13:11:11 11: TimeFormat := '%H%M'; // 1311 else TimeFormat := CustTimeFormat; // Custom Time format end; Buf := malloc(255); memset(Buf, 0, 255); placed := strftime(Buf, 254, PChar(TimeFormat), time_tm); if placed <= 0 then DebugMsg(['FormatDate: error converting time. The result will be unpredictable.']); TimeString := String(StrToUTF8(Buf)); libc_free(Buf); end; if FormatDate and FormatTime then begin case dtf of 0: Result := Format('%s %s', [DateString, TimeString]); else Result := Format('%s %s', [TimeString, DateString]); end; end else if FormatTime then Result := TimeString else if FormatDate then Result := DateString; end; function StripDate(Value: time_t): time_t; var time_tm: Ptm; begin time_tm := localtime(@Value); Result := time_tm^.tm_hour*60*60 + time_tm^.tm_min*60 + time_tm^.tm_sec; end; (********************************************************************************************************************************) function AttrToStr(const Mode: Cardinal; IncludeFileType: boolean = True): string; begin if IncludeFileType then begin if __S_ISTYPE(Mode, __S_IFLNK) then Result := 'l' else if __S_ISTYPE(Mode, __S_IFDIR) then Result := 'd' else if __S_ISTYPE(Mode, __S_IFBLK) then Result := 'b' else if __S_ISTYPE(Mode, __S_IFCHR) then Result := 'c' else if __S_ISTYPE(Mode, __S_IFIFO) then Result := 'f' else if __S_ISTYPE(Mode, __S_IFSOCK) then Result := 's' else Result := '-'; end else Result := ''; if Mode and S_IRUSR = S_IRUSR then Result := Result + 'r' else Result := Result + '-'; if Mode and S_IWUSR = S_IWUSR then Result := Result + 'w' else Result := Result + '-'; if Mode and __S_ISUID = __S_ISUID then if Mode and S_IXUSR = S_IXUSR then Result := Result + 's' else Result := Result + 'S' else if Mode and S_IXUSR = S_IXUSR then Result := Result + 'x' else Result := Result + '-'; if Mode and S_IRGRP = S_IRGRP then Result := Result + 'r' else Result := Result + '-'; if Mode and S_IWGRP = S_IWGRP then Result := Result + 'w' else Result := Result + '-'; if Mode and __S_ISGID = __S_ISGID then if Mode and S_IXGRP = S_IXGRP then Result := Result + 's' else Result := Result + 'S' else if Mode and S_IXGRP = S_IXGRP then Result := Result + 'x' else Result := Result + '-'; if Mode and S_IROTH = S_IROTH then Result := Result + 'r' else Result := Result + '-'; if Mode and S_IWOTH = S_IWOTH then Result := Result + 'w' else Result := Result + '-'; if Mode and __S_ISVTX = __S_ISVTX then if Mode and S_IXOTH = S_IXOTH then Result := Result + 't' else Result := Result + 'T' else if Mode and S_IXOTH = S_IXOTH then Result := Result + 'x' else Result := Result + '-'; end; (********************************************************************************************************************************) function AttrToOctal(const Mode: Cardinal): integer; var x, Mult: Cardinal; begin Result := 0; Mult := 1; x := Mode; while x > 0 do begin Result := Result + Integer((x mod 8) * Mult); x := x div 8; Mult := Mult * 10; end; end; (********************************************************************************************************************************) function OctalToAttr(Octal: Cardinal): Cardinal; var octnr, oct : Cardinal; begin octnr := 0; oct := 0; while (Octal > 0) do begin oct := oct or ((Octal mod 10) shl octnr); Octal := Octal div 10; inc(octnr, 3); end; Result := oct; end; (********************************************************************************************************************************) function PosEnd(Substr: string; S: string): Integer; var i : integer; begin Result := 0; if (Length(Trim(S)) < 1) or (Length(Trim(Substr)) < 1) or (Length(Trim(Substr)) > Length(Trim(S))) then Exit; for i := Length(S) - Length(SubStr) downto 1 do if Copy(s, i, Length(Substr)) = SubStr then begin Result := i; Break; end; end; (********************************************************************************************************************************) function IncludeLeadingDot(s: string): string; begin s := Trim(s); if s[1] <> '.' then Result := '.' + s else Result := s; end; (********************************************************************************************************************************) function GetHomePath: string; begin Result := PgcharToString(g_get_home_dir); end; (********************************************************************************************************************************) function GetUserName: string; begin Result := PgcharToString(g_get_user_name); end; (********************************************************************************************************************************) function GetHostName: string; var s: PChar; begin s := malloc(65536); memset(s, 0, 65536); ULibc.gethostname(s, 65536); Result := PgcharToString(strdup(s)); libc_free(s); end; (********************************************************************************************************************************) procedure SeparateExt(const Original: string; var Name, Ext: string); var j: integer; begin Ext := ''; Name := Original; if {(Pos('.', Original) > 1) and } (Length(Original) > 2) then begin j := LastDelimiter('.', Original); if (j > 1) and (j < Length(Original)) then begin Ext := Copy(Original, j + 1, Length(Original) - j); Delete(Name, j, Length(Name) - j + 1); end; end; end; (********************************************************************************************************************************) procedure SeparateNameDir(Original: string; var Path, FileName: string); var j: integer; begin Original := ExcludeTrailingPathDelimiter(Original); Path := Original; FileName := ''; if (Pos('/', Original) > 0) and (Length(Original) > 2) then begin j := LastDelimiter('/', Original); if j > 0 then begin FileName := Copy(Original, j + 1, Length(Original) - j); Delete(Path, j, Length(Original) - j + 1); end; end; end; (********************************************************************************************************************************) function PadRightStr(const Str: string; Len: byte): string; var i: integer; begin Result := Str; for i := 1 to Len - Length(Str) do Insert(' ', Result, 1); end; (********************************************************************************************************************************) function SearchNext(var Wilds: string): Integer; { looking for next *, returns position and string until position } begin Result := Pos('*', Wilds); if Result > 0 then Wilds := Copy(Wilds, 1, Result - 1); end; function FindPart(const HelpWilds, InputStr: string): Integer; { FindPart compares a string with '?' and another, returns the position of HelpWilds in InputStr. } var I, J: Integer; Diff: Integer; begin I := Pos('?', HelpWilds); if I = 0 then begin { if no '?' in HelpWilds } Result := Pos(HelpWilds, InputStr); Exit; end; { '?' in HelpWilds } Diff := Length(InputStr) - Length(HelpWilds); if Diff < 0 then begin Result := 0; Exit; end; { now move HelpWilds over InputStr } for I := 0 to Diff do begin for J := 1 to Length(HelpWilds) do begin if (InputStr[I + J] = HelpWilds[J]) or (HelpWilds[J] = '?') then begin if J = Length(HelpWilds) then begin Result := I + 1; Exit; end; end else Break; end; end; Result := 0; end; function IsWild(InputStr, Wilds: string; IgnoreCase: Boolean): Boolean; var CWild, CInputWord: Integer; { counter for positions } I, LenHelpWilds: Integer; MaxInputWord, MaxWilds: Integer; { Length of InputStr and Wilds } HelpWilds: string; begin if Wilds = InputStr then begin Result := True; Exit; end; repeat { delete '**', because '**' = '*' } I := Pos('**', Wilds); if I > 0 then Wilds := Copy(Wilds, 1, I - 1) + '*' + Copy(Wilds, I + 2, MaxInt); until I = 0; if (Wilds = '*') or (Wilds = '*.*') then begin { for fast end, if Wilds only '*' } Result := True; Exit; end; MaxInputWord := Length(InputStr); MaxWilds := Length(Wilds); if IgnoreCase then begin { upcase all letters } InputStr := WideUpperCase(InputStr); Wilds := WideUpperCase(Wilds); end; if (MaxWilds = 0) or (MaxInputWord = 0) then begin Result := False; Exit; end; CInputWord := 1; CWild := 1; Result := True; repeat if InputStr[CInputWord] = Wilds[CWild] then begin { equal letters } { goto next letter } Inc(CWild); Inc(CInputWord); Continue; end; if Wilds[CWild] = '?' then begin { equal to '?' } { goto next letter } Inc(CWild); Inc(CInputWord); Continue; end; if Wilds[CWild] = '*' then begin { handling of '*' } HelpWilds := Copy(Wilds, CWild + 1, MaxWilds); I := SearchNext(HelpWilds); LenHelpWilds := Length(HelpWilds); if I = 0 then begin { no '*' in the rest, compare the ends } if HelpWilds = '' then Exit; { '*' is the last letter } { check the rest for equal Length and no '?' } {$R-} for I := 0 to LenHelpWilds - 1 do begin if (HelpWilds[LenHelpWilds - I] <> InputStr[MaxInputWord - I]) and (HelpWilds[LenHelpWilds - I]<> '?') then begin Result := False; Exit; end; end; {$R+} Exit; end; { handle all to the next '*' } Inc(CWild, 1 + LenHelpWilds); I := FindPart(HelpWilds, Copy(InputStr, CInputWord, MaxInt)); if I = 0 then begin Result := False; Exit; end; CInputWord := I + LenHelpWilds; Continue; end; Result := False; Exit; until (CInputWord > MaxInputWord) or (CWild > MaxWilds); { no completed evaluation } if CInputWord <= MaxInputWord then Result := False; if (CWild <= MaxWilds) and (Wilds[MaxWilds] <> '*') then Result := False; end; (********************************************************************************************************************************) (********************************************************************************************************************************) (********************************************************************************************************************************) (********************************************************************************************************************************) (********************************************************************************************************************************) type TPatternCacheItem = record Pattern, APath, FileName: string; DirDidNotExist: boolean; end; var PatternCache : array of TPatternCacheItem; function ProcessPattern(Engine: TPanelEngine; Pattern, APath, FileName: string; const Directory: boolean): string; var Path : string; procedure ProcessParam(const Part: string); begin // Check for upper directory if (Length(Part) >= 2) and (Copy(Part, 1, 2) = '..') then begin if (Path <> '/') and (LastDelimiter('/', Path) > 1) then begin Path := ExcludeTrailingPathDelimiter(Path); Delete(Path, LastDelimiter('/', Path), Length(Path) - LastDelimiter('/', Path) + 1); Path := IncludeTrailingPathDelimiter(Path); end; end else if Part = '.' then begin end else // On current dir ('.') do nothing // Add directory Path := IncludeTrailingPathDelimiter(IncludeTrailingPathDelimiter(Path) + Part); end; function ProcessPart(WildPart, FilePart: string): string; var i, j, CWild, CInputWord, MaxInputWord, MaxWilds, LenHelpWilds: integer; HelpWilds, s: string; begin Result := ''; if (WildPart = '*') or (Length(WildPart) = 0) then Result := FilePart else if LastDelimiter('*?', WildPart) = 0 then Result := WildPart else begin repeat { delete '**', because '**' = '*' } I := Pos('**', WildPart); if I > 0 then WildPart := Copy(WildPart, 1, I - 1) + '*' + Copy(WildPart, I + 2, MaxInt); until I = 0; MaxInputWord := Length(FilePart); MaxWilds := Length(WildPart); CInputWord := 1; CWild := 1; repeat if not (WildPart[CWild] in ['?', '*']) then begin Result := Result + WildPart[CWild]; if WildPart[CWild] = FilePart[CInputWord] then Inc(CInputWord); Inc(CWild); Continue; end; if WildPart[CWild] = '?' then begin if Length(FilePart) <= CWild then Result := Result + FilePart[CWild]; Inc(CWild); if Length(FilePart) < CWild then Inc(CInputWord); Continue; end; if WildPart[CWild] = '*' then begin { handling of '*' } HelpWilds := Copy(WildPart, CWild + 1, MaxWilds); I := SearchNext(HelpWilds); LenHelpWilds := Length(HelpWilds); if (I = 0) and (HelpWilds = '') then begin { no '*' in the rest, compare the ends } Result := Result + Copy(FilePart, CInputWord, MaxInputWord - CInputWord + 1); Break; { '*' is the last letter } end; if (I = 0) and (Pos('?', HelpWilds) = 0) then begin Result := Result + Copy(FilePart, CInputWord, MaxInputWord - CInputWord + 1) + HelpWilds; Break; end; s := Copy(FilePart, CInputWord, MaxInputWord - CInputWord + 1); i := FindPart(HelpWilds, s); if i = 0 then Result := Result + HelpWilds else begin for j := 1 to Length(HelpWilds) do if HelpWilds[j] = '?' then HelpWilds[j] := s[j - 1 + i]; Result := Result + Copy(s, 1, i + Length(HelpWilds) - 1); Inc(CInputWord, i + LenHelpWilds - 1); end; Inc(CWild, 1 + LenHelpWilds); Continue; end; Break; until (CInputWord > MaxInputWord) or (CWild > MaxWilds); end; end; function ProcessWilds(WildStr, AFile: string): string; var i, j, WPC, FPC: integer; DotFile: boolean; begin if (WildStr = '*.*') or (WildStr = '') then Result := AFile else if WildStr = '*' then begin if (Pos('.', AFile) = 0) or (Copy(AFile, 1, 1) = '.') then Result := AFile else Result := Copy(AFile, 1, LastDelimiter('.', AFile) - 1); end else begin Result := ''; DotFile := False; if (Length(AFile) > 0) and (AFile[1] = '.') then begin DotFile := True; Delete(AFile, 1, 1); end; // Trim redundant parameters WPC := 0; for i := 1 to Length(WildStr) do if WildStr[i] = '.' then Inc(WPC); FPC := 0; for i := 1 to Length(AFile) do if AFile[i] = '.' then Inc(FPC); if WPC > FPC then for j := 1 to WPC - FPC do begin Result := '.' + Copy(WildStr, LastDelimiter('.', WildStr) + 1, Length(WildStr) - LastDelimiter('.', WildStr)) + Result; Delete(WildStr, LastDelimiter('.', WildStr), Length(WildStr) - LastDelimiter('.', WildStr) + 1); end; // Going processing while (LastDelimiter('.', WildStr) > 0) and (LastDelimiter('.', AFile) > 0) do begin Result := '.' + ProcessPart(Copy(WildStr, LastDelimiter('.', WildStr) + 1, Length(WildStr) - LastDelimiter('.', WildStr)), Copy(AFile, LastDelimiter('.', AFile) + 1, Length(AFile) - LastDelimiter('.', AFile))) + Result; Delete(WildStr, LastDelimiter('.', WildStr), Length(WildStr) - LastDelimiter('.', WildStr) + 1); Delete(AFile, LastDelimiter('.', AFile), Length(AFile) - LastDelimiter('.', AFile) + 1); end; if WildStr <> '' then Result := ProcessPart(WildStr, AFile) + Result; if DotFile then Result := '.' + Result; end; // Trim unwanted characters if Length(Result) > 0 then for i := 1 to Length(Result) do if Result[i] in ['*', '?', '/'] then Result[i] := '_'; end; function FindInCache: integer; var i: integer; begin Result := -1; if LengtH(PatternCache) > 0 then for i := 0 to Length(PatternCache) - 1 do if (PatternCache[i].Pattern = Pattern) and (PatternCache[i].APath = APath) and (Pos(PatternCache[i].FileName, FileName) = 1) then begin Result := i; Break; end; end; function CaseDirExists(DPath, DFileName: string): boolean; begin if (WideCompareStr(Pattern, FileName) <> 0) and (WideCompareText(Pattern, FileName) = 0) and Directory and Engine.TwoSameFiles(DPath + Pattern, DPath + FileName) then Result := False else Result := Engine.DirectoryExists(DPath + DFileName); end; var s: string; x: integer; begin Result := ''; if Pattern = '' then Exit; // Select basic directory case Pattern[1] of '/' : begin Path := '/'; if Length(Pattern) > 1 then Delete(Pattern, 1, 1); end; '~' : begin Path := IncludeTrailingPathDelimiter(GetHomePath); Delete(Pattern, 1, 1); end; else Path := IncludeTrailingPathDelimiter(APath); end; // Process directories in pattern while Pos('/', Pattern) > 0 do begin s := Copy(Pattern, 1, Pos('/', Pattern) - 1); Delete(Pattern, 1, Pos('/', Pattern)); ProcessParam(s); end; // Add rest of pattern parts if (Pos('?', Pattern) = 0) and (Pos('*', Pattern) = 0) then begin if (Pattern <> '.') and (Pattern <> '..') and (not CaseDirExists(IncludeTrailingPathDelimiter(Path), Pattern)) then begin if Directory then Path := IncludeTrailingPathDelimiter(IncludeTrailingPathDelimiter(Path) + Pattern) else Path := ExcludeTrailingPathDelimiter(IncludeTrailingPathDelimiter(Path) + Pattern); SetLength(PatternCache, Length(PatternCache) + 1); PatternCache[Length(PatternCache) - 1].Pattern := Pattern; PatternCache[Length(PatternCache) - 1].APath := APath; PatternCache[Length(PatternCache) - 1].FileName := FileName; end else begin if Length(Pattern) > 0 then ProcessParam(Pattern); x := FindInCache; if x < 0 then begin Path := IncludeTrailingPathDelimiter(Path) + FileName; end else begin Delete(FileName, 1, Length(IncludeTrailingPathDelimiter(PatternCache[x].FileName))); Path := IncludeTrailingPathDelimiter(Path) + FileName; end; if Directory then Path := IncludeTrailingPathDelimiter(Path) else Path := ExcludeTrailingPathDelimiter(Path); end; end else Path := Path + ProcessWilds(Pattern, FileName); Result := Path; end; (********************************************************************************************************************************) (********************************************************************************************************************************) procedure ShowAbout; const Authors : array[0..1] of PChar = ('Tomáš Bžatek ', nil); Translations : PChar = 'Tomáš Bžatek - English, Czech'#10 + 'Gvorcek Spajreh - Russian'#10 + 'Jürgen Schubert - German'#10 + 'Johan Ã…kesson - Swedish'#10 + 'Marie-Agnès Pauchet-Le Héricy - French'#10 + 'Daniel Areiza - Spanish'#10 + 'Dominik ZabÅ‚otny - Polish'#10 + 'Serhij Dubyk - Ukrainian'#10 + 'Nikola Radovanović - Serbian'#10 + 'Marián Képesi - Hungarian'#10 + 'Francesco Turco - Italian'#10 + 'Kend - Simplified Chinese'#10 + 'Kend - Traditional Chinese'#10 + 'Jozef Å taffen - Slovak'#10 + 'Américo Monteiro - Portuguese'; var AboutBox: PGtkWidget; begin if (libGnomeUI2Handle = nil) or (@gnome_about_new = nil) then Application.MessageBox(Format(LANGAboutString, [ConstAboutVersion, ConstAboutBuildDate])) else begin AboutBox := gnome_about_new('Tux Commander', nil, 'Copyright © 2009 Tomáš Bžatek', PChar(Format(LANGAboutStringGnome, [ConstAboutVersion, ConstAboutBuildDate])), @Authors, nil, Translations, AppIcon128.FPixbuf); gtk_window_set_transient_for(GTK_WINDOW(AboutBox), GTK_WINDOW(FMain.FWidget)); gtk_dialog_run(GTK_DIALOG(AboutBox)); end; end; procedure SetupAppIcon; var List: PGList; begin List := nil; List := g_list_append(List, AppIcon16.FPixbuf); List := g_list_append(List, AppIcon24.FPixbuf); List := g_list_append(List, AppIcon32.FPixbuf); List := g_list_append(List, AppIcon48.FPixbuf); List := g_list_append(List, AppIcon64.FPixbuf); List := g_list_append(List, AppIcon128.FPixbuf); gtk_window_set_default_icon_list(List); g_list_free(List); end; (********************************************************************************************************************************) procedure TrimCRLFESC(var s: string); begin while (Length(s) > 0) and (s[1] in [#13, #10, #27]) do Delete(s, 1, 1); while (Length(s) > 0) and (s[Length(s)] in [#13, #10, #27]) do Delete(s, Length(s), 1); end; (********************************************************************************************************************************) procedure TrimQuotes(var s: string); begin while (Length(s) > 0) and (s[1] in ['"', '''']) do Delete(s, 1, 1); while (Length(s) > 0) and (s[Length(s)] in ['"', '''']) do Delete(s, Length(s), 1); end; (********************************************************************************************************************************) function QuoteStr(const Str: string): string; var i: integer; begin Result := ''; if Length(Str) > 0 then for i := 1 to Length(Str) do begin if Str[i] in ConstQuotationCharacters then Result := Result + '\'; Result := Result + Str[i]; end; end; (********************************************************************************************************************************) function QuotePercentStr(const Str: string): string; var i: integer; begin Result := ''; if Length(Str) > 0 then for i := 1 to Length(Str) do begin if Str[i] = '%' then Result := Result + '%'; Result := Result + Str[i]; end; end; (********************************************************************************************************************************) function QuoteMarkupStr(const Str: string; MarkupUnderscore: boolean = False): string; var i: integer; begin Result := ''; if Length(Str) > 0 then for i := 1 to Length(Str) do begin if Str[i] = '<' then Result := Result + '<' else if Str[i] = '>' then Result := Result + '>' else if Str[i] = '&' then Result := Result + '&' else if (Str[i] = '_') and MarkupUnderscore then Result := Result + '__' else Result := Result + Str[i]; end; end; (********************************************************************************************************************************) function RemoveQuotation(const Str: string): string; var b: boolean; i: integer; begin Result := Str; if Length(Result) < 2 then Exit; b := True; for i := 2 to Length(Result) do if (Result[i] in ConstQuotationCharacters) and (Result[i - 1] <> '\') then b := False; if b then for i := Length(Result) downto 2 do if (Result[i] in ConstQuotationCharacters) and (Result[i - 1] = '\') then Delete(Result, i - 1, 1); end; (********************************************************************************************************************************) function ReplaceStr(const S, Srch, Replace: string): string; var I: Integer; Source: string; begin Source := S; Result := ''; repeat I := Pos(Srch, Source); if I > 0 then begin Result := Result + Copy(Source, 1, I - 1) + Replace; Source := Copy(Source, I + Length(Srch), MaxInt); end else Result := Result + Source; until I <= 0; end; (********************************************************************************************************************************) function NumCountChars(const Char: char; const S: string): integer; var i: integer; begin Result := 0; if Length(S) > 0 then for i := 1 to Length(S) do if S[i] = Char then Inc(Result); end; (********************************************************************************************************************************) procedure ParseString(const Str, Separator: string; var SubStrings: TOpenStringArray); var s: string; i: integer; begin s := Str; while Pos(Separator, s) > 0 do begin i := Pos(Separator, s); SetLength(SubStrings, Length(SubStrings) + 1); SubStrings[Length(SubStrings) - 1] := Copy(s, 1, i - 1); Delete(s, 1, i); end; if Length(s) > 0 then begin // Add the last element SetLength(SubStrings, Length(SubStrings) + 1); SubStrings[Length(SubStrings) - 1] := s; end; end; function MakeString(const Separator: string; var SubStrings: TOpenStringArray): string; var i: integer; begin Result := ''; if Length(SubStrings) > 0 then begin for i := 0 to Length(SubStrings) - 2 do Result := Result + SubStrings[i] + Separator; Result := Result + SubStrings[Length(SubStrings) - 1]; end; end; procedure CopyArray(var src: TOpenStringArray; var dst: TOpenStringArray); var i: integer; begin SetLength(dst, Length(src)); for i := 0 to Length(src) - 1 do dst[i] := src[i]; end; procedure DeleteFromArray(Index: integer; var SubStrings: TOpenStringArray); var i: integer; begin if Length(SubStrings) > 0 then begin if Index < Length(SubStrings) - 1 then for i := Index to Length(SubStrings) - 2 do SubStrings[i] := SubStrings[i + 1]; SetLength(SubStrings, Length(SubStrings) - 1); end; end; (********************************************************************************************************************************) function GetStrSize(s: string): Int64; var i: integer; x: Double; b: boolean; begin Result := 0; x := 0; s := WideUpperCase(Trim(s)); if Length(s) = 0 then Exit; for i := Length(s) downto 1 do if s[i] in [#32, ThousandSeparator] then Delete(s, i, 1); b := False; for i := 2 to Length(s) do if not (s[i] in ['0', '1'..'9', DecimalSeparator]) then begin x := StrToFloatDef(Copy(s, 1, i - 1), 0); case s[i] of 'G': x := x * 1000 * 1000 * 1000; 'M': x := x * 1000 * 1000; 'K': x := x * 1024; end; b := True; Break; end; if not b then x := StrToInt64Def(s, Trunc(x)); Result := Trunc(x); end; (********************************************************************************************************************************) function ConstructURI(IncludePasswd, HidePasswd: boolean; Protocol, Server, Username, Password, Dir: string): string; begin Result := Protocol + '://'; if Length(Username) > 0 then begin Result := Result + EscapeURI(Username, ConstURIIllegalCharacters); if (Length(Password) > 0) and IncludePasswd then begin if HidePasswd then Result := Result + ':' + StringOfChar('*', Length(EscapeURI(Password, ConstURIIllegalCharacters))) else Result := Result + ':' + EscapeURI(Password, ConstURIIllegalCharacters); end; Result := Result + '@'; end; Result := Result + Server; if Length(Dir) > 0 then begin if Dir[1] <> '/' then Result := Result + '/'; Result := Result + Dir; end; end; (********************************************************************************************************************************) function URIHidePassword(const SrcURI: string): string; var i: integer; InPasswd, BeforeServer: boolean; begin Result := SrcURI; InPasswd := False; BeforeServer := True; if Length(SrcURI) > 0 then if Pos('://', SrcURI) > 0 then for i := Pos('://', SrcURI) + 2 to Length(SrcURI) do begin if SrcURI[i] = '@' then begin InPasswd := False; BeforeServer := False; end; if (not InPasswd) or (not BeforeServer) then InPasswd := BeforeServer and (SrcURI[i] = ':') else Result[i] := '*'; end; end; (********************************************************************************************************************************) function UnEscapeURI(const Str: string): string; var i: integer; begin Result := ''; if Length(Str) > 0 then begin i := 1; while i <= Length(Str) do begin if (Str[i] = '%') and (i <= Length(Str) - 2) then begin Result := Result + Chr(StrToInt('$' + Copy(Str, i + 1, 2))); Inc(i, 3); end else begin Result := Result + Str[i]; Inc(i); end; end; end; end; function EscapeURI(const Str: string; const IllegalChars: string): string; var i: integer; begin Result := ''; if Length(Str) > 0 then for i := 1 to Length(Str) do begin if (Ord(Str[i]) >= $80) or (Pos(Str[i], IllegalChars) > 0) then Result := Result + '%' + IntToHex(Ord(Str[i]), 2) else Result := Result + Str[i]; end; end; function URIRipPassword(var URI: string; const RemovePassword: boolean): string; var p: integer; s: string; SchemeStart, LoginEnd, PasswordStart: integer; begin Result := ''; SchemeStart := Pos('://', URI); if SchemeStart < 1 then Exit; s := Copy(URI, SchemeStart + 3, Length(URI) - SchemeStart - 3); p := Pos('/', s); if p < 1 then p := Length(s); Delete(s, p, Length(s) - p + 1); p := PosEnd('@', s); if p < 1 then Exit; LoginEnd := p + SchemeStart + 2; Delete(s, p, Length(s) - p + 1); p := Pos(':', s); if p < 1 then Exit; PasswordStart := p + SchemeStart + 2; Result := Copy(URI, PasswordStart + 1, LoginEnd - PasswordStart - 1); if RemovePassword then Delete(URI, PasswordStart, LoginEnd - PasswordStart); end; function GetURIPrefix(const URI: string): string; begin if Pos('://', URI) > 0 then Result := Copy(URI, 1, Pos('://', URI) + 2) else Result := ''; end; (********************************************************************************************************************************) procedure DebugMsg(Params: array of const); var I: Integer; begin if ParamDebug then begin for I := 0 to High(Params) do with Params[I] do case VType of vtInteger: Write(ErrOutput, IntToStr(VInteger)); vtBoolean: Write(ErrOutput, VBoolean); vtChar: Write(ErrOutput, VChar); vtExtended: Write(ErrOutput, FloatToStr(VExtended^)); vtString: Write(ErrOutput, VString^); vtPChar: Write(ErrOutput, VPChar); vtObject: Write(ErrOutput, VObject.ClassName); vtClass: Write(ErrOutput, VClass.ClassName); vtAnsiString: Write(ErrOutput, string(VAnsiString)); vtCurrency: Write(ErrOutput, CurrToStr(VCurrency^)); vtVariant: Write(ErrOutput, string(VVariant^)); vtInt64: Write(ErrOutput, IntToStr(VInt64^)); {$IFDEF FPC} vtQWord: Write(ErrOutput, IntToStr(VQWord^)); {$ENDIF} end; WriteLn(ErrOutput); end; end; (********************************************************************************************************************************) function SpawnProcess(const AppPath: string; var Running: boolean; const Parameters: array of string): Cardinal; var child_pid: __pid_t; args_list: PPChar; i: integer; sv: sigval_t; begin Result := 0; Running := False; ChildExitStatus := -1; // Make the args_list array args_list := nil; if Length(Parameters) > 0 then begin args_list := malloc((Length(Parameters) + 1) * sizeof(PChar)); memset(args_list, 0, (Length(Parameters) + 1) * sizeof(PChar)); for I := 0 to Length(Parameters) - 1 do begin {$R-} PCharArray(args_list^)[I] := strdup(PChar(Parameters[i])); {$R+} end; {$R-} PCharArray(args_list^)[Length(Parameters)] := nil; {$R+} end; // Duplicate this process DebugMsg(['SpawnProcess: before fork']); child_pid := fork; if child_pid <> 0 then begin Result := child_pid; Sleep(100); //* FIXME: strange behaviour when freed { for i := 0 to Length(Parameters) - 1 do if PCharArray(args_list^)[i] <> nil then libc_free(PCharArray(args_list^)[i]); } if args_list <> nil then libc_free(args_list); Application.ProcessMessages; Running := ChildExitStatus < 0; DebugMsg(['SpawnProcess: ChildExitStatus = ', ChildExitStatus]); if not Running then Result := 0; if not WIFEXITED(ChildExitStatus) then Result := WTERMSIG(ChildExitStatus); DebugMsg(['SpawnProcess: Result = ', Result]); end else begin // Now execute AppPath, searching for it in the path execvp(PChar(AppPath), args_list); // The execvp function returns only if an error occurs sigqueue(getppid, SIGUSR1, sv); DebugMsg(['SpawnProcess: forked: error, sending SIGUSR1']); _exit(ConstERRSpawn); end; ChildExitStatus := -1; end; (********************************************************************************************************************************) procedure SplitArgs(var Args: TOpenStringArray; CMDLine: string); var InQuotes: boolean; i, Start: integer; QuoteChar: char; s: string; begin SetLength(Args, 0); InQuotes := False; CMDLine := Trim(CMDLine); if Length(CMDLine) = 0 then Exit; Start := 1; QuoteChar := #0; for i := 1 to Length(CMDLine) do case CMDLine[i] of ' ': if (not InQuotes) and ((i = 1) or (CMDLine[i - 1] <> '\')) then begin s := Trim(Copy(CMDLine, Start, i - Start)); TrimQuotes(s); Start := i; if s = '' then Continue; SetLength(Args, Length(Args) + 1); Args[Length(Args) - 1] := s; end; '"', '''': if (i = 1) or (CMDLine[i - 1] <> '\') then if not InQuotes then begin InQuotes := True; QuoteChar := CMDLine[i]; // Start := i; end else if CMDLine[i] = QuoteChar then begin InQuotes := False; s := Trim(Copy(CMDLine, Start, i + 1 - Start)); TrimQuotes(s); Start := i; if s = '' then Continue; if (Pos('"', s) > 1) and (Pos('"', s) < Length(s)) and (NumCountChars('"', s) mod 2 = 1) then s := s + '"'; // if (Pos('''', s) > 1) and (Pos('''', s) < Length(s)) and (NumCountChars('''', s) mod 2 = 1) then s := s + ''''; SetLength(Args, Length(Args) + 1); Args[Length(Args) - 1] := s; end; end; if (Start <> Length(CMDLine)) or (Start = 1) then begin SetLength(Args, Length(Args) + 1); Args[Length(Args) - 1] := Trim(Copy(CMDLine, Start, Length(CMDLine) + 1 - Start)); TrimQuotes(Args[Length(Args) - 1]); end; end; function ExecuteProgram(const AppCMDLine, CWD: string; const AutodetectGUI, RunInTerminal: boolean; var ErrorSignal: integer): boolean; var Args: TOpenStringArray; s, s2: string; Running, Term: boolean; x: integer; begin Result := False; try DebugMsg(['*** Running ExecuteProgram begin']); // DebugMsg(['ExecuteProgram: ConfTerminalCommand = "', ConfTerminalCommand, '"']); s := Trim(AppCMDLine); ErrorSignal := 0; Term := RunInTerminal; SplitArgs(Args, s); if AutodetectGUI then if Length(Trim(Args[0])) > 0 then Term := not IsItX11App(Trim(Args[0])); if Term then begin x := 1; while x <= Length(s) do begin if (s[x] in [{'"',} '''']) and ((x = 1) or (s[x - 1] <> '\')) then Insert('\', s, x); Inc(x); end; s2 := ReplaceStr(ConfTerminalCommand, '%cwd', QuoteStr(CWD)); s := Format(s2, [s]); SplitArgs(Args, s); end; if ConfUseLibcSystem then begin s := s + ' &'; DebugMsg([s]); DebugMsg(['**** Running system']); x := libc_system(PChar(s)); Result := x <> -1; // -1 means fork failed DebugMsg(['**** Running system = ', x, ' --- done']); end else begin if Length(Args) = 0 then Exit; for x := 0 to Length(Args) - 1 do Args[x] := RemoveQuotation(Args[x]); DebugMsg(['**** Running spawn']); x := -1; try x := SpawnProcess(Args[0], Running, Args); except on E: Exception do DebugMsg(['ExecuteProgram(AppCMDLine = ''', AppCMDLine, '''): Exception: ', E.Message]); end; DebugMsg(['**** Running spawn -- done']); Result := Running; if not Running then ErrorSignal := x; end; except end; DebugMsg(['*** Running ExecuteProgram end']); end; (********************************************************************************************************************************) function IsItX11App(const Application: string): boolean; const BSize = 65536; What = 'libX11.so'; var stream: PFILE; Buffer: Pointer; i: integer; str: string; begin Result := False; DebugMsg(['***** function IsItX11App(''', Application, ''') begin --']); try // setenv('LD_TRACE_LOADED_OBJECTS', '1', True); stream := popen(PChar('LD_TRACE_LOADED_OBJECTS=1 ' + Application), 'r'); // stream := popen(PChar(Application), 'r'); DebugMsg(['***** IsItX11App: popen OK']); if Assigned(stream) then begin Buffer := malloc(BSize); if buffer = nil then Writeln('buffer nil: ', integer(errno)); if stream = nil then Writeln('stream nil'); memset(Buffer, 0, BSize); DebugMsg(['***** IsItX11App: malloc() OK']); while feof(stream) = 0 do begin i := fread(Buffer, 1, BSize, stream); if i > 0 then begin SetLength(str, i); memcpy(@str[1], Buffer, i); Result := Result or (Pos(What, str) > 0); end; end; pclose(stream); libc_free(Buffer); SetLength(str, 0); end; // unsetenv('LD_TRACE_LOADED_OBJECTS'); except on E: Exception do DebugMsg(['*** IsItX11App(''', Application, '''):Exception: ', E.Message]); end; DebugMsg(['***** function IsItX11App(''', Application, ''') = ', Result]); end; function HandleSystemCommand(const Command, ErrorText: string): boolean; const BSize = 65536; var stream: PFILE; Buffer: Pointer; i, NumRead: integer; child_pid: __pid_t; fds: array[0..1] of integer; Parameters: TOpenStringArray; args_list: System.PPChar; Temp, s: string; begin Result := False; DebugMsg(['***** function HandleSystemCommand(''', Command, ''') begin --']); try DebugMsg(['***** HandleSystemCommand: before fork']); pipe(@fds); child_pid := fork; DebugMsg(['***** HandleSystemCommand: fork, child_pid = ', child_pid]); // Main application if child_pid <> 0 then begin libc_close(fds[1]); stream := fdopen(fds[0], 'r'); Buffer := malloc(BSize); // DebugMsg(['x0']); memset(Buffer, 0, BSize); // DebugMsg(['x1']); if buffer = nil then Writeln('buffer nil: ', integer(errno)); if stream = nil then Writeln('stream nil'); SetLength(s, 0); while feof(stream) = 0 do begin NumRead := fread(Buffer, 1, BSize, stream); DebugMsg(['***** HandleSystemCommand: NumRead = ', NumRead]); if NumRead > 0 then begin SetLength(s, Length(s) + NumRead); memcpy(@s[Length(s) - NumRead + 1], Buffer, NumRead); end; end; libc_close(fds[0]); // DebugMsg(['x2']); TrimCRLFESC(s); // DebugMsg(['x3']); libc_free(Buffer); // DebugMsg(['x4']); end // forked PID else begin args_list := nil; try SplitArgs(Parameters, Command); // Fill the args_list array if Length(Parameters) > 0 then begin args_list := malloc((Length(Parameters) + 1) * SizeOf(PChar)); memset(args_list, 0, (Length(Parameters) + 1) * SizeOf(PChar)); for I := 0 to Length(Parameters) - 1 do begin Temp := Parameters[i]; {$R-} // PCharArray(args_list^)[I] := malloc(Length(Temp)+1); // memset(PCharArray(args_list^)[I], 0, Length(Temp)+1); // StrCopy(PCharArray(args_list^)[I], PChar(Temp)); PCharArray(args_list^)[I] := strdup(PChar(Temp)); {$R+} end; {$R-} PCharArray(args_list^)[Length(Parameters)] := nil; {$R+} end; except on E: Exception do DebugMsg(['*** forked ** function HandleSystemCommand(''', Command, '''):Exception: ', E.Message]); end; libc_close(fds[0]); // Close copy of reader file descriptor dup2(fds[1], STDERR_FILENO); execvp(PChar(Parameters[0]), args_list); DebugMsg(['***** HandleSystemCommand: failed execvp: something went wrong...']); WriteLn(erroutput, 'Error executing command'); _exit(ConstERRSpawn); end; Result := Length(s) = 0; if not Result then Application.MessageBox(Format('%s%s', [ErrorText, StrToUTF8(s)]), [mbOK], mbError, mbOK, mbOK); SetLength(s, 0); except on E: Exception do DebugMsg(['***** function HandleSystemCommand(''', Command, '''):Exception: ', E.Message]); end; DebugMsg(['***** finished function HandleSystemCommand(''', Command, ''') = ', Result]); end; (********************************************************************************************************************************) function CompareTextsEx(S1, S2: PChar): integer; const PriorityChars = '.[]_0123456789'; var i, j, k, l1, l2 : integer; Str1, Str2: string; begin Result := -2; Str1 := UpperCase(String(S1)); Str2 := UpperCase(String(S2)); l1 := Length(Str1); l2 := Length(Str2); if (l1 > 0) and (l2 > 0) then begin if (Str1[1] = '.') and (Str2[1] <> '.') then Result := -1 else // Priority for dot files if (Str2[1] = '.') and (Str1[1] <> '.') then Result := 1 else for i := 1 to l1 do if l2 >= i then if Str1[i] <> Str2[i] then begin j := Pos(Str1[i], PriorityChars); k := Pos(Str2[i], PriorityChars); if (j > 0) and (k > 0) then begin if j < k then Result := -1 else if j > k then Result := 1; end else if j > 0 then Result := -1 else if k > 0 then Result := 1; Break; end; if Result = -2 then Result := CompareText(Str1, Str2); end else Result := CompareText(Str1, Str2); end; (********************************************************************************************************************************) function LVCompareItems(Data1, Data2: PDataItem; const Ascending: boolean; const SortColumnID: integer): integer; var mp: integer; s1, s2, s3, s4: string; begin if Ascending then mp := 1 else mp := -1; if Data1^.UpDir then Result := -1*mp else if Data2^.UpDir then Result := 1*mp else if Data1^.IsDir and (not Data2^.IsDir) then Result := -1*mp else if Data2^.IsDir and (not Data1^.IsDir) then Result := 1*mp else if Data1^.IsDir and Data2^.IsDir and (not ConfSortDirectoriesLikeFiles) then Result := CompareTextsEx(Data1^.FDisplayName, Data2^.FDisplayName)*mp else case SortColumnID of 1, 2 : Result := CompareTextsEx(Data1^.FDisplayName, Data2^.FDisplayName); 3 : begin SeparateExt(String(Data1^.FDisplayName), s1, s2); SeparateExt(String(Data2^.FDisplayName), s3, s4); if WideUpperCase(s2) <> WideUpperCase(s4) then Result := CompareTextsEx(PChar(s2), PChar(s4)) else Result := CompareTextsEx(PChar(s1), PChar(s3)); end; 4 : if Data1^.Size > Data2^.Size then Result := -1 else if Data1^.Size < Data2^.Size then Result := 1 else Result := CompareTextsEx(Data1^.FDisplayName, Data2^.FDisplayName); 5, 6 : if Data1^.ModifyTime > Data2^.ModifyTime then Result := -1 else if Data1^.ModifyTime < Data2^.ModifyTime then Result := 1 else Result := CompareTextsEx(Data1^.FDisplayName, Data2^.FDisplayName); 7 : if StripDate(Data1^.ModifyTime) > StripDate(Data2^.ModifyTime) then Result := -1 else if StripDate(Data1^.ModifyTime) < StripDate(Data2^.ModifyTime) then Result := 1 else Result := CompareTextsEx(Data1^.FDisplayName, Data2^.FDisplayName); 8 : if Data1^.UID > Data2^.UID then Result := -1 else if Data1^.UID < Data2^.UID then Result := 1 else Result := CompareTextsEx(Data1^.FDisplayName, Data2^.FDisplayName); 9 : if Data1^.GID > Data2^.GID then Result := -1 else if Data1^.GID < Data2^.GID then Result := 1 else Result := CompareTextsEx(Data1^.FDisplayName, Data2^.FDisplayName); 10 : if Data1^.Mode > Data2^.Mode then Result := -1 else if Data1^.Mode < Data2^.Mode then Result := 1 else Result := CompareTextsEx(Data1^.FDisplayName, Data2^.FDisplayName); else Result := 0; end; end; (********************************************************************************************************************************) procedure SortDataList(var List: TList; const Ascending: boolean; const SortColumnID: integer); var AscCorr: integer; procedure QuickSort(iLo, iHi: Integer); var Lo, Hi : Integer; Mid, x: Pointer; begin Lo := iLo; Hi := iHi; Mid := List[(Lo + Hi) div 2]; repeat while LVCompareItems(List[Lo], Mid, Ascending, SortColumnID)*AscCorr < 0 do Inc(Lo); while LVCompareItems(List[Hi], Mid, Ascending, SortColumnID)*AscCorr > 0 do Dec(Hi); if Lo <= Hi then begin x := List[Lo]; List[Lo] := List[Hi]; List[Hi] := x; Inc(Lo); Dec(Hi); end; until Lo > Hi; if Hi > iLo then QuickSort(iLo, Hi); if Lo < iHi then QuickSort(Lo, iHi); end; begin AscCorr := 2*Ord(Ascending) - 1; QuickSort(0, List.Count - 1); end; (********************************************************************************************************************************) function StrToUTF8(s: string): string; begin Result := String(StrToUTF8(PChar(s))); end; function UTF8ToStr(s: string): string; var bytes_read, bytes_written: gsize; error: PGError; begin error := nil; bytes_read := 0; bytes_written := 0; Result := g_locale_from_utf8(PChar(s), Length(s), @bytes_read, @bytes_written, @error); if error <> nil then begin // fallback to original string to avoid data loss Result := s; DebugMsg(['*** UTF8ToStr: error converting "', s, '" from UTF-8 (read ', bytes_read, ', written ', bytes_written, '): ', error^.message]); g_error_free(error); end; end; function StrToUTF8(s: PChar): PChar; var bytes_read, bytes_written: gsize; error: PGError; ns, nss: PChar; m: PChar; begin if g_utf8_validate(s, strlen(s), nil) then begin Result := strndup(s, strlen(s)); Exit; end; // DebugMsg(['StrToUTF8: string "', s, '" is not valid UTF-8.']); error := nil; bytes_read := 0; bytes_written := 0; ns := g_locale_to_utf8(s, strlen(s), @bytes_read, @bytes_written, @error); if ns = nil then begin // fallback to original string to avoid data loss ns := g_strdup(s); if error <> nil then m := error^.message else m := 'unknown'; DebugMsg(['*** StrToUTF8: error converting "', s, '" to UTF-8 (read ', bytes_read, ', written ', bytes_written, '): ', m]); g_error_free(error); end; if @g_filename_display_name <> nil then begin nss := g_filename_display_name(ns); Result := strdup(nss); // PPC compatibility g_free(nss); end else Result := strdup(ns); // PPC compatibility g_free(ns); end; function UTF8ToStr(s: PChar): PChar; var bytes_read, bytes_written: gsize; error: PGError; begin error := nil; bytes_read := 0; bytes_written := 0; Result := g_locale_from_utf8(s, strlen(s), @bytes_read, @bytes_written, @error); if error <> nil then begin // fallback to original string to avoid data loss Result := s; DebugMsg(['*** UTF8ToStr: error converting "', s, '" from UTF-8 (read ', bytes_read, ', written ', bytes_written, '): ', error^.message]); g_error_free(error); end; end; { function EnsureUTF8String(s: string): string; begin Result := s; if @g_filename_display_name <> nil then Result := g_filename_display_name(PChar(s)); end; } function EnsureUTF8String(s: PChar): PChar; begin Result := s; if @g_filename_display_name <> nil then Result := g_filename_display_name(s); end; (********************************************************************************************************************************) function Min(Val1, Val2: longint): longint; begin if Val1 < Val2 then Result := Val1 else Result := Val2; end; function XORStr(const s: string; Key: byte): string; var i: integer; begin Result := s; if Length(Result) > 0 then for i := 1 to Length(Result) do Result[i] := Char(Byte(Result[i]) xor Key); end; (********************************************************************************************************************************) function FindCommonRoot(BasePath, DestPath: string): string; var i, LastSlash: integer; begin LastSlash := 0; for i := 1 to Min(Length(BasePath), Length(DestPath)) do if BasePath[i] = DestPath[i] then begin if IsPathDelimiter(BasePath, i) then LastSlash := i; end else Break; if (LastSlash) <= 0 then Result := '' else Result := Copy(BasePath, 1, LastSlash); end; function BuildRelativePath(BasePath, DestPath: string): string; var CommonRoot, RestSrc, RestDst: string; SlashPos: integer; begin CommonRoot := FindCommonRoot(BasePath, DestPath); RestSrc := Copy(BasePath, Length(CommonRoot) + 1, Length(BasePath) - Length(CommonRoot)); RestDst := Copy(DestPath, Length(CommonRoot) + 1, Length(DestPath) - Length(CommonRoot)); Result := ''; SlashPos := Pos(PathDelim, RestDst); while (SlashPos > 0) do begin Result := Result + '../'; Delete(RestDst, 1, SlashPos); SlashPos := Pos(PathDelim, RestDst); end; Result := Result + RestSrc; end; (********************************************************************************************************************************) procedure signal_proc(signal_number: integer); cdecl; var {pid,} status: integer; begin // !!!!!!!!!! Warning // There should be no debug outputs in this function because it probably cause program freezes after fork // I mean REALLY NO outputs to console // DebugMsg(['SIGCHLD signal received']); // DebugMsg(['Signal received: ', signal_number]); // DebugMsg(['*** Signal received: ', signal_number, ' = ', GetSignalString(signal_number)]); case signal_number of { SIGUSR1: begin DebugMsg(['begin wait']); wait(@status); DebugMsg(['end wait']); ChildExitStatus := status; end;} SIGCHLD, SIGUSR1: begin // DebugMsg(['begin wait']); // wait(@status); {pid :=} waitpid(-1, @status, WNOHANG); // DebugMsg(['**** waitpid result: pid = ', pid, ', status = ', status]); // DebugMsg(['end wait']); if signal_number = SIGUSR1 then ChildExitStatus := status; end; end; end; procedure SetupSignals; var sigchld_action: _sigaction; begin memset(@sigchld_action, 0, SizeOf(__sigaction)); sigchld_action.__sigaction_handler := @signal_proc; sigaction(SIGUSR1, @sigchld_action, nil); sigaction(SIGCHLD, @sigchld_action, nil); end; procedure SetupColors; var Color: TGDKColor; LocalListView: TGTKListView; begin LocalListView := TGTKListView.Create(Application); try if ConfNormalItemDefaultColors then begin NormalItemGDKColor := GetDefaultTextColor(LocalListView, GTK_STATE_NORMAL); NormalItemGDKBackground := GetDefaultBaseColor(LocalListView, GTK_STATE_NORMAL); end else begin StringToGDKColor(ConfNormalItemFGColor, Color); NormalItemGDKColor := GDKColorToPGdkColor(Color); StringToGDKColor(ConfNormalItemBGColor, Color); NormalItemGDKBackground := GDKColorToPGdkColor(Color); end; if ConfCursorDefaultColors then begin ActiveItemGDKColor := GetDefaultTextColor(LocalListView, GTK_STATE_SELECTED); ActiveItemGDKBackground := GetDefaultBaseColor(LocalListView, GTK_STATE_SELECTED); end else begin StringToGDKColor(ConfActiveItemFGColor, Color); ActiveItemGDKColor := GDKColorToPGdkColor(Color); StringToGDKColor(ConfActiveItemBGColor, Color); ActiveItemGDKBackground := GDKColorToPGdkColor(Color); end; if ConfInactiveItemDefaultColors then begin InactiveItemGDKColor := GetDefaultTextColor(LocalListView, GTK_STATE_ACTIVE); InactiveItemGDKBackground := GetDefaultBaseColor(LocalListView, GTK_STATE_ACTIVE); end else begin StringToGDKColor(ConfInactiveItemFGColor, Color); InactiveItemGDKColor := GDKColorToPGdkColor(Color); StringToGDKColor(ConfInactiveItemBGColor, Color); InactiveItemGDKBackground := GDKColorToPGdkColor(Color); end; StringToGDKColor(ConfSelectedItemFGColor, Color); SelectedItemGDKColor := GDKColorToPGdkColor(Color); StringToGDKColor(ConfDotFileItemFGColor, Color); DotFileItemGDKColor := GDKColorToPGdkColor(Color); StringToGDKColor(ConfLinkItemFGColor, Color); LinkItemGDKColor := GDKColorToPGdkColor(Color); try InactiveItemBGColorNum := $FF + (InactiveItemGDKBackground^.red div 256) shl 24 + (InactiveItemGDKBackground^.green div 256) shl 16 + (InactiveItemGDKBackground^.blue div 256) shl 8; except InactiveItemBGColorNum := $D0D0D0FF; end; finally LocalListView.Free; end; end; procedure ReportGTKVersion; begin {$IFDEF FPC} DebugMsg(['Reported GTK version: ', gtk_major_version, '.', gtk_minor_version, '.', gtk_micro_version]); {$ENDIF} if Application.GTKVersion_2_8_0_Up then DebugMsg(['Using quirks for GTK+ >= 2.8.0']) else if Application.GTKVersion_2_6_0_Up then DebugMsg(['Using quirks for GTK+ >= 2.6.0']) else if Application.GTKVersion_2_4_0_Up then DebugMsg(['Using quirks for GTK+ >= 2.4.0']) else if Application.GTKVersion_2_2_0_Up then DebugMsg(['Using quirks for GTK+ >= 2.2.0']) else if Application.GTKVersion_2_0_5_Up then DebugMsg(['Using quirks for GTK+ >= 2.0.5']) else DebugMsg(['Using quirks for GTK+ < 2.0.5']); end; (********************************************************************************************************************************) var InternalLockVar: integer; procedure InternalLock; begin Inc(InternalLockVar); DebugMsg(['Lock']); end; procedure InternalUnLock; begin Dec(InternalLockVar); if InternalLockVar < 0 then InternalLockVar := 0; DebugMsg(['Unlock']); end; function InternalLockUnlocked: boolean; begin Result := InternalLockVar = 0; end; procedure InternalLockInit(Locked: boolean); begin InternalLockVar := Ord(Locked); end; (********************************************************************************************************************************) procedure GetFirstLastPanelColumn(var FirstColumn, LastColumn: integer); var i: integer; begin FirstColumn := 1; LastColumn := ConstNumPanelColumns; for i := 1 to ConstNumPanelColumns do if ConfColumnVisible[i] then begin FirstColumn := i; Break; end; for i := ConstNumPanelColumns downto 1 do if ConfColumnVisible[i] then begin LastColumn := i; Break; end; end; (********************************************************************************************************************************) (********************************************************************************************************************************) function StrTotimetDef(const S: string; const Default: time_t): time_t; begin try Result := DateTimeToUnix(StrToDate(S)); except Result := Default; end; end; (********************************************************************************************************************************) procedure SaveItemToHistory(s: string; History: TStringList); var i: integer; begin s:= Trim(s); if Length(s) > 0 then begin if History.IndexOf(s) > -1 then History.Delete(History.IndexOf(s)); History.Insert(0, s); if History.Count > ConfNumHistoryItems then for i := History.Count downto ConfNumHistoryItems do History.Delete(i - 1); end; end; (********************************************************************************************************************************) initialization InternalLockInit(True); SetupSignals; // Parse tuxcmd rc file gtk_rc_parse_string(tuxcmd_rc_file); AppPath := IncludeTrailingPathDelimiter(GetHomePath); IconPath := IncludeTrailingPathDelimiter(GetHomePath); end. tuxcmd-0.6.70+dfsg/UChown.pas0000644000175000017500000001670111300022643014751 0ustar salvisalvi(* Tux Commander - UChown - Change owner dialog Copyright (C) 2004 Tomas Bzatek Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UChown; interface uses SysUtils, Classes, GTKControls, GTKForms, GTKStdCtrls, GTKExtCtrls, GTKConsts, GTKView; type TFChown = class(TGTKDialog) HBox, HBox2: TGTKHBox; VBox: TGTKVBox; OwnerFrame, GroupFrame, FileFrame: TGTKFrame; OwnerListView, GroupListView: TGTKListView; OwnerListViewScrolledWindow, GroupListViewScrolledWindow: TGTKScrolledWindow; RecursiveCheckButton: TGTKCheckButton; FileLabel: TGTKLabel; procedure FormCreate(Sender: TObject); override; procedure FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); procedure OwnerListViewSelectionChanged(Sender: TObject); procedure GroupListViewSelectionChanged(Sender: TObject); public LastUID, LastGID: integer; procedure AssignMode(const Mode: Cardinal; const FileName: string; const UID, GID: integer); private procedure FillData; end; var FChown: TFChown; implementation uses ULibc, ULocale, UCoreUtils, UCoreClasses; procedure TFChown.FormCreate(Sender: TObject); begin SetDefaultSize(-1, -1); LastUID := geteuid; LastGID := getegid; Caption := LANGFChown_Caption; Buttons := [mbOK, mbCancel]; HBox := TGTKHBox.Create(Self); HBox.Homogeneous := False; HBox.BorderWidth := 6; OwnerFrame := TGTKFrame.Create(Self); OwnerFrame.Caption := LANGFChown_OwnerFrame; GroupFrame := TGTKFrame.Create(Self); GroupFrame.Caption := LANGFChown_GroupFrame; FileFrame := TGTKFrame.Create(Self); FileFrame.Caption := LANGFChown_FileFrame; HBox.AddControlEx(OwnerFrame, True, True, 5); HBox.AddControlEx(GroupFrame, True, True, 5); HBox.AddControlEx(FileFrame, True, True, 5); HBox2 := TGTKHBox.Create(Self); HBox2.Homogeneous := False; RecursiveCheckButton := TGTKCheckButton.CreateWithLabel(Self, LANGFChown_ApplyRecursively); HBox2.AddControlEx(RecursiveCheckButton, False, False, 15); ClientArea.AddControlEx(HBox, True, True, 0); ClientArea.AddControlEx(TGTKHSeparator.Create(Self), False, False, 5); ClientArea.AddControlEx(HBox2, False, False, 3); FileLabel := TGTKLabel.Create(Self); FileLabel.SetAlignment(0, 0); FileLabel.SetPadding(10, 5); FileLabel.Caption := 'File: .adobe'#10'Text: rw-rw-rw'#10 + 'Octal: 666'#10'Owner: root'#10 + 'Group: root'; FileLabel.UseMarkup := True; FileFrame.AddControl(FileLabel); OwnerListView := TGTKListView.CreateTyped(Self, False, [lcText, lcNumber]); OwnerListView.RulesHint := True; OwnerListView.ShowHeaders := False; OwnerListView.Columns.Add.AddAttribute('text', 0); OwnerListViewScrolledWindow := TGTKScrolledWindow.Create(Self); OwnerListViewScrolledWindow.ShadowType := stShadowIn; OwnerListViewScrolledWindow.HorizScrollBarPolicy := sbAutomatic; OwnerListViewScrolledWindow.VertScrollBarPolicy := sbAutomatic; OwnerListViewScrolledWindow.BorderWidth := 10; OwnerListViewScrolledWindow.AddControl(OwnerListView); OwnerListViewScrolledWindow.SetSizeRequest(200, 200); OwnerFrame.AddControl(OwnerListViewScrolledWindow); GroupListView := TGTKListView.CreateTyped(Self, False, [lcText, lcNumber]); GroupListView.RulesHint := True; GroupListView.ShowHeaders := False; GroupListView.Columns.Add.AddAttribute('text', 0); GroupListViewScrolledWindow := TGTKScrolledWindow.Create(Self); GroupListViewScrolledWindow.ShadowType := stShadowIn; GroupListViewScrolledWindow.HorizScrollBarPolicy := sbAutomatic; GroupListViewScrolledWindow.VertScrollBarPolicy := sbAutomatic; GroupListViewScrolledWindow.BorderWidth := 10; GroupListViewScrolledWindow.AddControl(GroupListView); GroupListViewScrolledWindow.SetSizeRequest(200, 200); GroupFrame.AddControl(GroupListViewScrolledWindow); FillData; OnKeyDown := FormKeyDown; end; procedure TFChown.FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); begin case Key of GDK_RETURN, GDK_KP_ENTER: ModalResult := mbOK; GDK_ESCAPE: ModalResult := mbCancel; end; end; procedure TFChown.AssignMode(const Mode: Cardinal; const FileName: string; const UID, GID: integer); var i: integer; susr, sgrp: string; begin LastUID := UID; LastGID := GID; susr := 'N/A'; sgrp := 'N/A'; // Lookup and select current user and group if OwnerListView.Items.Count > 0 then for i := 0 to OwnerListView.Items.Count - 1 do if OwnerListView.Items[i].AsInteger(1) = UID then begin OwnerListView.Items[i].Selected := True; OwnerListView.Items[i].SetCursor(0, False, not Application.GTKVersion_2_2_0_Up, 0.5, 0); susr := OwnerListView.Items[i].AsString(0); Break; end; if GroupListView.Items.Count > 0 then for i := 0 to GroupListView.Items.Count - 1 do if GroupListView.Items[i].AsInteger(1) = GID then begin GroupListView.Items[i].Selected := True; GroupListView.Items[i].SetCursor(0, False, not Application.GTKVersion_2_2_0_Up, 0.5, 0); sgrp := GroupListView.Items[i].AsString(0); Break; end; // Fill more info FileLabel.Caption := Format(LANGFChmod_FileLabel, [StrToUTF8(FileName), AttrToStr(Mode), AttrToOctal(Mode), susr, sgrp]); FileLabel.UseMarkup := True; if Length(FileName) > 20 then FileLabel.SetSizeRequest(200, -1); OwnerListView.OnSelectionChanged := OwnerListViewSelectionChanged; GroupListView.OnSelectionChanged := GroupListViewSelectionChanged; end; procedure TFChown.FillData; var UsrManager: TUserManager; i: integer; Item: TGTKListItem; begin UsrManager := TUserManager.Create; try if UsrManager.UserList.Count > 0 then for i := 0 to UsrManager.UserList.Count - 1 do begin Item := OwnerListView.Items.Add; Item.SetValue(0, TSystemUser(UsrManager.UserList[i]).UserName); Item.SetValue(1, TSystemUser(UsrManager.UserList[i]).UID); end; if UsrManager.GroupList.Count > 0 then for i := 0 to UsrManager.GroupList.Count - 1 do begin Item := GroupListView.Items.Add; Item.SetValue(0, TSystemGroup(UsrManager.GroupList[i]).GroupName); Item.SetValue(1, TSystemGroup(UsrManager.GroupList[i]).GID); end; finally UsrManager.Free; end; end; procedure TFChown.OwnerListViewSelectionChanged(Sender: TObject); begin if Assigned(OwnerListView.Selected) then LastUID := OwnerListView.Selected.AsInteger(1); end; procedure TFChown.GroupListViewSelectionChanged(Sender: TObject); begin if Assigned(GroupListView.Selected) then LastGID := GroupListView.Selected.AsInteger(1); end; end. tuxcmd-0.6.70+dfsg/UConfig.pas0000644000175000017500000017371211300022643015106 0ustar salvisalvi(* Tux Commander - UConfig - Configuration saving/restoring, various constants Copyright (C) 2008 Tomas Bzatek Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UConfig; interface uses Classes, ULocale; resourcestring ConstAppTitle = 'Tux Commander'; ConstAboutVersion = '0.6.70-dev'; ConstAboutBuildDate = '2009-11-15'; {$IFDEF FPC} {$INCLUDE fpcver.inc} {$ENDIF} const ConfDefaultNormalItemFGColor = '#000000'; ConfDefaultActiveItemFGColor = '#FFFFFF'; ConfDefaultInactiveItemFGColor = '#000000'; ConfDefaultSelectedItemFGColor = '#FF0000'; ConfDefaultLinkItemFGColor = '#A0A0A0'; ConfDefaultDotFileItemFGColor = '#606060'; ConfDefaultNormalItemBGColor = '#FFFFFF'; ConfDefaultActiveItemBGColor = '#000000'; ConfDefaultInactiveItemBGColor = '#D0D0D0'; ConfSelItemsDelim = ';'; ConfDefaultPanelFont = 'Sans 10'; ConfDefaultSettingsDir = '.tuxcmd'; // Also has to be changed in UGTKLoader ConfDblClickDelay = 500; ConfQuickRenameDelay = ConfDblClickDelay + 250; ConfInactiveTimerDelay = 0; ConfEditViewFileSizeLimit = 10*1024*1024; // 10 MB ConfAppNA = '---'; ConfDefaultRowHeight = 16; ConstInternalProgressTimer = 25; // default = 25ms ConstRemoteWaitDialogDelay = 800; // default = 800ms ConstFileListTipsDelay = 400; ConstFileListTipsDelayNeighbour = 95; ConstNumPanelColumns = 10; ConstFullPathFormatStr = '%s#%s'; ConstConnMgrXORKey = 65; ConstTerminalCommand_xterm = 'xterm -T "TuxCommand" -e sh -c ''%s ; echo -n Press ENTER to exit... ; read'''; ConstTerminalCommand_rxvt = 'rxvt -T "TuxCommand" -e sh -c ''%s ; echo -n Press ENTER to exit... ; read'''; ConstTerminalCommand_rxvt2 = 'rxvt +si +sw -sl 1000 -g 130x50 -bg black -fg grey -T "TuxCommand" -e sh -c ''%s ; echo -n Press ENTER to exit... ; read'''; ConstTerminalCommand_gnometerminal = 'gnome-terminal -t "TuxCommand" --geometry=110x40 --working-directory=%cwd -x sh -c ''%s ; echo -n Press ENTER to exit... ; read'''; ConfViewersApps: array[1..6] of string = ('gedit', 'gvim', 'less', 'emacs', 'nano', 'vi'); ConfEditorApps: array[1..5] of string = ('gedit', 'gvim', 'emacs', 'nano', 'vi'); ConfTerminalApps: array[1..4] of string = (ConstTerminalCommand_xterm, ConstTerminalCommand_rxvt, ConstTerminalCommand_rxvt2, ConstTerminalCommand_gnometerminal); ConfTerminalAppsWParam: array[1..4] of string = ('xterm', 'rxvt', 'rxvt', 'gnome-terminal'); const SMOOTH_SCROLL_STEPS = 5; SMOOTH_SCROLL_DURATION = 45; SMOOTH_SCROLL_STEPS_PAGE = 10; SMOOTH_SCROLL_DURATION_PAGE = 120; const tuxcmd_rc_file = 'style "treeview-style" {'#10 + ' GtkTreeView::horizontal_separator = 0'#10 + ' GtkTreeView::vertical_separator = 0'#10 + '}'#10 + 'class "GtkTreeView" style "treeview-style"'; var ConfPanelSep, ConfRowHeight, ConfRowHeightReal, ConfNumHistoryItems, ConfMainWindowWidth, ConfMainWindowHeight, ConfMainWindowPosLeft, ConfMainWindowPosTop, ConfMainWindowState, ConfMainWindowLeftSortColumn, ConfMainWindowLeftSortType, ConfMainWindowRightSortColumn, ConfMainWindowRightSortType, ConfSizeFormat, ConfSizeGroupPrecision, ConfCmdLineTerminalBehaviour, ConfViewerTerminalBehaviour, ConfEditorTerminalBehaviour, ConfLeftTabBarTabIndex, ConfRightTabBarTabIndex, ConfSwitchOtherPanelBehaviour, ConfTabMaxLength, ConfDateFormat, ConfTimeFormat, ConfDateTimeFormat, ConfQuickSearchActivationKey: integer; ConfLeftPath, ConfRightPath, ConfPanelFont, ConfProfileName, ConfViewer, ConfEditor, ConfTerminalCommand, ConfNormalItemFGColor, ConfActiveItemFGColor, ConfInactiveItemFGColor, ConfSelectedItemFGColor, ConfLinkItemFGColor, ConfDotFileItemFGColor, ConfNormalItemBGColor, ConfActiveItemBGColor, ConfInactiveItemBGColor, ParamLeftDir, ParamRightDir, ConfCustomDateFormat, ConfCustomTimeFormat: string; ParamDebug, ConfShowDotFiles, ConfClearReadOnlyAttr, ConfDisableMouseRename, ConfUseSystemFont, ConfUseFileTypeIcons, ConfFocusRefresh, ConfNewStyleAltO, ConfDirsInBold, ConfDisableDirectoryBrackets, ParamDisableGnome, ConfWMCompatMode, ConfUseLibcSystem, ConfUseInternalViewer, ParamDisablePlugins: boolean; ConfNormalItemDefaultColors, ConfCursorDefaultColors, ConfInactiveItemDefaultColors, ConfSelectedItemDefaultColors, ConfLinkItemDefaultColors, ConfDotFileItemDefaultColors, ConfLynxLikeMotion, ConfSizeGroupRequestZeroDigits, ConfDisableFileTips, ConfInsMoveDown, ConfSpaceMovesDown, ConfShowFuncButtons, ConfSelectAllDirs, ConfOctalPerm: boolean; ConfMounterUseFSTab, ConfShowTextUIDs, ConfMounterPushDown, ConfSavePanelTabs, ConfDuplicateTabWarning, ConfOpenConnectionsWarning, ConfSortDirectoriesLikeFiles, ConfQuickRenameSkipExt, ConfRightClickSelect, ConfSearchFilterCaseSensitive, ConfSearchOtherFS, ConfSearchArchives, ConfSearchTextCaseSensitive, ConfMakeSymlinkRelative, ConfReplaceConnectionWarning, ConfWarnUnsavedConnection: boolean; ConfShowMounterBar: integer; ConfColumnSizes, ConfColumnIDs: array[1..ConstNumPanelColumns] of integer; ConfColumnVisible: array[1..ConstNumPanelColumns] of boolean; ConfUseURI: boolean; ConfColumnTitlesLong, ConfColumnTitlesShort: array[1..ConstNumPanelColumns] of string; ConfParamForceLang: string; ConfTempPath: string; ConfUseSmoothScrolling: boolean; ApplicationShuttingDown: boolean; ConfConnMgrActiveItem, ConfConnMgrSortColumn, ConfConnMgrSortType, ConfConnMgrColumn1Width: integer; ConfConnMgrDoNotSavePasswords, ConfConnMgrDoNotSynchronizeKeyring: boolean; ConfQuickConnectPluginID: string; procedure SetDefaults; procedure ReadMainSettings; procedure WriteMainSettings; procedure ReadMainGUISettings; procedure WriteMainGUISettings; procedure ReadAssoc; procedure WriteAssoc; procedure ReadBookmarks; procedure WriteBookmarks; procedure ReadMounter; procedure WriteMounter; procedure ReadTabs(const LeftPanel: boolean; TabList: TStringList; TabSortIDs, TabSortTypes: TList); procedure WriteTabs(const LeftPanel: boolean; TabList: TStringList; TabSortIDs, TabSortTypes: TList); procedure ReadConnections; procedure WriteConnections; procedure SearchForDefaultApps; function CheckConfFilesMod(var ChangedMainGUI, ChangedAssoc, ChangedBookmarks, ChangedMounter, ChangedConnections: boolean): boolean; // Returns True if something has changed implementation uses ULibc, glib2, SysUtils, UCoreUtils, UCore, UFileAssoc, UCoreClasses, UGnome, UVFSCore; var InternalQuickExit, InternalDeleteHistory: boolean; InternalMainGUIConfmtime, InternalBookmarksConfmtime, InternalFAssocConfmtime, InternalMounterConfmtime, InternalConnMgrConfmtime: Longint; function GetFileTime(FileName: string): time_t; forward; (********************************************************************************************************************************) (********************************************************************************************************************************) procedure SetDefaults; var i: integer; begin InternalMainGUIConfmtime := -1; InternalBookmarksConfmtime := -1; InternalFAssocConfmtime := -1; InternalMounterConfmtime := -1; InternalConnMgrConfmtime := -1; InternalQuickExit := False; ConfPanelSep := 50; ConfLeftPath := '/'; ConfRightPath := '/'; ConfColumnSizes[1] := 150; // Name ConfColumnSizes[2] := 190; // Name + Extension ConfColumnSizes[3] := 40; // Extension ConfColumnSizes[4] := 90; // Size ConfColumnSizes[5] := 75; // Date + Time ConfColumnSizes[6] := 40; // Date ConfColumnSizes[7] := 40; // Time ConfColumnSizes[8] := 40; // User ConfColumnSizes[9] := 40; // Group ConfColumnSizes[10] := 70; // Attributes for i := 1 to ConstNumPanelColumns do ConfColumnIDs[i] := i; ConfColumnVisible[1] := True; ConfColumnVisible[2] := False; ConfColumnVisible[3] := True; ConfColumnVisible[4] := True; ConfColumnVisible[5] := True; ConfColumnVisible[6] := False; ConfColumnVisible[7] := False; ConfColumnVisible[8] := False; ConfColumnVisible[9] := False; ConfColumnVisible[10] := True; ConfRowHeight := -1; ConfRowHeightReal := ConfDefaultRowHeight; ConfPanelFont := ConfDefaultPanelFont; ConfProfileName := 'Profile_Default'; ParamDebug := False; ConfShowDotFiles := False; ConfClearReadOnlyAttr := True; ConfViewer := ConfAppNA; ConfEditor := ConfAppNA; ConfTerminalCommand := ConfAppNA; ConfNumHistoryItems := 20; ConfDisableMouseRename := False; InternalDeleteHistory := False; ConfUseSystemFont := True; ConfUseFileTypeIcons := True; ConfMainWindowWidth := 800; ConfMainWindowHeight := 600; ConfMainWindowPosLeft := -1; ConfMainWindowPosTop := -1; ConfMainWindowState := 0; ConfMainWindowLeftSortColumn := 0; ConfMainWindowLeftSortType := 0; // soAscending ConfMainWindowRightSortColumn := 0; ConfMainWindowRightSortType := 0; ConfFocusRefresh := False; ConfLynxLikeMotion := False; ConfSizeFormat := 0; ConfSizeGroupPrecision := 2; ConfSizeGroupRequestZeroDigits := True; ConfNewStyleAltO := True; ConfDirsInBold := False; ConfDisableDirectoryBrackets := False; ParamDisableGnome := False; ConfWMCompatMode := False; ConfDisableFileTips := False; ConfInsMoveDown := True; ConfSpaceMovesDown := False; ConfShowFuncButtons := True; ConfSelectAllDirs := True; ConfOctalPerm := False; ConfCmdLineTerminalBehaviour := 0; // 0 = Autodetect, 1 = Terminal, 2 = no term. ConfViewerTerminalBehaviour := 0; ConfEditorTerminalBehaviour := 0; ConfUseLibcSystem := False; ConfUseInternalViewer := False; ConfMounterUseFSTab := True; ConfShowMounterBar := 1; // 0 = No mounter bar, 1 = one mounter bar, 2 = two mounter bars above the panels ConfShowTextUIDs := True; ConfMounterPushDown := False; ConfUseURI := False; ParamDisablePlugins := False; ParamLeftDir := ''; ParamRightDir := ''; ConfLeftTabBarTabIndex := -1; ConfRightTabBarTabIndex := -1; ConfSavePanelTabs := True; ConfParamForceLang := ''; ConfSwitchOtherPanelBehaviour := -1; ConfDuplicateTabWarning := True; ConfOpenConnectionsWarning := True; ConfTabMaxLength := 25; ConfTempPath := '/tmp'; ConfUseSmoothScrolling := False; ConfDateFormat := 0; ConfTimeFormat := 0; ConfDateTimeFormat := 0; ConfCustomDateFormat := '%x'; ConfCustomTimeFormat := '%X'; ConfQuickSearchActivationKey := 0; ConfSortDirectoriesLikeFiles := False; ConfQuickRenameSkipExt := True; ConfConnMgrActiveItem := 0; ConfRightClickSelect := False; ConfConnMgrDoNotSavePasswords := False; ConfConnMgrDoNotSynchronizeKeyring := False; ConfQuickConnectPluginID := ''; ConfConnMgrSortColumn := -1; ConfConnMgrSortType := 2; ConfConnMgrColumn1Width := 230; ConfSearchFilterCaseSensitive := False; ConfSearchOtherFS := False; ConfSearchArchives := False; ConfSearchTextCaseSensitive := False; ConfMakeSymlinkRelative := False; ConfReplaceConnectionWarning := True; ConfWarnUnsavedConnection := True; // Setup default values for colors ConfNormalItemFGColor := ConfDefaultNormalItemFGColor; ConfNormalItemBGColor := ConfDefaultNormalItemBGColor; ConfActiveItemFGColor := ConfDefaultActiveItemFGColor; ConfActiveItemBGColor := ConfDefaultActiveItemBGColor; ConfInactiveItemFGColor := ConfDefaultInactiveItemFGColor; ConfInactiveItemBGColor := ConfDefaultInactiveItemBGColor; ConfSelectedItemFGColor := ConfDefaultSelectedItemFGColor; ConfLinkItemFGColor := ConfDefaultLinkItemFGColor; ConfDotFileItemFGColor := ConfDefaultDotFileItemFGColor; ConfNormalItemDefaultColors := False; ConfCursorDefaultColors := False; ConfInactiveItemDefaultColors := False; ConfSelectedItemDefaultColors := False; ConfLinkItemDefaultColors := False; ConfDotFileItemDefaultColors := False; SetupColors; end; procedure ReadMainSettings; var s: string; IniFile: TMyIniFile; i, j: integer; begin try s := IncludeTrailingPathDelimiter(GetHomePath) + ConfDefaultSettingsDir; if not DirectoryExists(s) then if not ForceDirectories(s) then begin DebugMsg(['*** Error: Cannot read user settings']); Exit; end; DebugMsg(['Using profile ''', ConfProfileName, '''']); IniFile := TMyIniFile.Create(IncludeTrailingPathDelimiter(s) + 'options', True); try if ParamLeftDir <> '' then ConfLeftPath := ParamLeftDir else ConfLeftPath := IniFile.ReadString(ConfProfileName, 'LeftPath', ConfLeftPath); if ParamRightDir <> '' then ConfRightPath := ParamRightDir else ConfRightPath := IniFile.ReadString(ConfProfileName, 'RightPath', ConfRightPath); ConfShowDotFiles := IniFile.ReadBool(ConfProfileName, 'ShowDotFiles', ConfShowDotFiles); ConfPanelSep := IniFile.ReadInteger(ConfProfileName, 'PanelSep', ConfPanelSep); ConfMainWindowWidth := IniFile.ReadInteger(ConfProfileName, 'MainWindowWidth', ConfMainWindowWidth); ConfMainWindowHeight := IniFile.ReadInteger(ConfProfileName, 'MainWindowHeight', ConfMainWindowHeight); ConfMainWindowPosLeft := IniFile.ReadInteger(ConfProfileName, 'MainWindowPosLeft', ConfMainWindowPosLeft); ConfMainWindowPosTop := IniFile.ReadInteger(ConfProfileName, 'MainWindowPosTop', ConfMainWindowPosTop); ConfMainWindowState := IniFile.ReadInteger(ConfProfileName, 'MainWindowState', ConfMainWindowState); for i := 1 to ConstNumPanelColumns do begin ConfColumnSizes[i] := IniFile.ReadInteger(ConfProfileName, Format('ColumnSize[%d]', [i]), ConfColumnSizes[i]); ConfColumnIDs[i] := IniFile.ReadInteger(ConfProfileName, Format('ColumnIDs[%d]', [i]), ConfColumnIDs[i]); ConfColumnVisible[i] := IniFile.ReadBool(ConfProfileName, Format('ColumnVisible[%d]', [i]), ConfColumnVisible[i]); end; ConfMainWindowLeftSortColumn := IniFile.ReadInteger(ConfProfileName, 'MainWindowLeftSortColumn', ConfMainWindowLeftSortColumn); ConfMainWindowLeftSortType := IniFile.ReadInteger(ConfProfileName, 'MainWindowLeftSortType', ConfMainWindowLeftSortType); ConfMainWindowRightSortColumn := IniFile.ReadInteger(ConfProfileName, 'MainWindowRightSortColumn', ConfMainWindowRightSortColumn); ConfMainWindowRightSortType := IniFile.ReadInteger(ConfProfileName, 'MainWindowRightSortType', ConfMainWindowRightSortType); if not InternalDeleteHistory then begin i := IniFile.ReadInteger('CommandLineHistory', 'NumItems', 0); if i > 0 then for j := 0 to i - 1 do CommandLineHistory.Add(IniFile.ReadString('CommandLineHistory', Format('Item%d', [j]), '')); i := IniFile.ReadInteger('SelectHistory', 'NumItems', 0); if i > 0 then for j := 0 to i - 1 do begin s := IniFile.ReadString('SelectHistory', Format('Item%d', [j]), ''); if s <> '*.*' then SelectHistory.Add(s); end; i := IniFile.ReadInteger('SearchHistory', 'NumItems', 0); if i > 0 then for j := 0 to i - 1 do SearchHistory.Add(IniFile.ReadString('SearchHistory', Format('Item%d', [j]), '')); i := IniFile.ReadInteger('SearchTextHistory', 'NumItems', 0); if i > 0 then for j := 0 to i - 1 do SearchTextHistory.Add(IniFile.ReadString('SearchTextHistory', Format('Item%d', [j]), '')); end; ConfShowMounterBar := IniFile.ReadInteger(ConfProfileName, 'ShowMounterBar', ConfShowMounterBar); ConfSearchFilterCaseSensitive := IniFile.ReadBool(ConfProfileName, 'SearchFilterCaseSensitive', ConfSearchFilterCaseSensitive); ConfSearchOtherFS := IniFile.ReadBool(ConfProfileName, 'SearchOtherFS', ConfSearchOtherFS); ConfSearchArchives := IniFile.ReadBool(ConfProfileName, 'SearchArchives', ConfSearchArchives); ConfSearchTextCaseSensitive := IniFile.ReadBool(ConfProfileName, 'SearchTextCaseSensitive', ConfSearchTextCaseSensitive); ConfMakeSymlinkRelative := IniFile.ReadBool(ConfProfileName, 'MakeSymlinkRelative', ConfMakeSymlinkRelative); finally try IniFile.Free; except end; end; except end; end; procedure WriteMainSettings; var s: string; IniFile: TMyIniFile; i: integer; begin if InternalQuickExit then Exit; ConfLeftPath := LeftLocalEngine.Path; ConfRightPath := RightLocalEngine.Path; try s := IncludeTrailingPathDelimiter(GetHomePath) + ConfDefaultSettingsDir; if not DirectoryExists(s) then if not ForceDirectories(s) then begin DebugMsg(['*** Error: Cannot save user settings']); Exit; end; IniFile := TMyIniFile.Create(IncludeTrailingPathDelimiter(s) + 'options', False); try try IniFile.WriteString(ConfProfileName, 'LeftPath', ConfLeftPath); IniFile.WriteString(ConfProfileName, 'RightPath', ConfRightPath); IniFile.WriteBool(ConfProfileName, 'ShowDotFiles', ConfShowDotFiles); IniFile.WriteInteger(ConfProfileName, 'PanelSep', ConfPanelSep); IniFile.WriteInteger(ConfProfileName, 'MainWindowState', ConfMainWindowState); if ConfMainWindowState <> 4 then begin IniFile.WriteInteger(ConfProfileName, 'MainWindowWidth', ConfMainWindowWidth); IniFile.WriteInteger(ConfProfileName, 'MainWindowHeight', ConfMainWindowHeight); IniFile.WriteInteger(ConfProfileName, 'MainWindowPosLeft', ConfMainWindowPosLeft); IniFile.WriteInteger(ConfProfileName, 'MainWindowPosTop', ConfMainWindowPosTop); end; for i := 1 to ConstNumPanelColumns do begin IniFile.WriteInteger(ConfProfileName, Format('ColumnSize[%d]', [i]), ConfColumnSizes[i]); IniFile.WriteInteger(ConfProfileName, Format('ColumnIDs[%d]', [i]), ConfColumnIDs[i]); IniFile.WriteBool(ConfProfileName, Format('ColumnVisible[%d]', [i]), ConfColumnVisible[i]); end; IniFile.WriteInteger(ConfProfileName, 'MainWindowLeftSortColumn', ConfMainWindowLeftSortColumn); IniFile.WriteInteger(ConfProfileName, 'MainWindowLeftSortType', ConfMainWindowLeftSortType); IniFile.WriteInteger(ConfProfileName, 'MainWindowRightSortColumn', ConfMainWindowRightSortColumn); IniFile.WriteInteger(ConfProfileName, 'MainWindowRightSortType', ConfMainWindowRightSortType); IniFile.WriteInteger('CommandLineHistory', 'NumItems', CommandLineHistory.Count); IniFile.WriteInteger('SelectHistory', 'NumItems', SelectHistory.Count); IniFile.WriteInteger('SearchHistory', 'NumItems', SearchHistory.Count); IniFile.WriteInteger('SearchTextHistory', 'NumItems', SearchTextHistory.Count); if CommandLineHistory.Count > 0 then for i := 0 to CommandLineHistory.Count - 1 do IniFile.WriteString('CommandLineHistory', Format('Item%d', [i]), CommandLineHistory[i]); if SelectHistory.Count > 0 then for i := 0 to SelectHistory.Count - 1 do IniFile.WriteString('SelectHistory', Format('Item%d', [i]), SelectHistory[i]); if SearchHistory.Count > 0 then for i := 0 to SearchHistory.Count - 1 do IniFile.WriteString('SearchHistory', Format('Item%d', [i]), SearchHistory[i]); if SearchTextHistory.Count > 0 then for i := 0 to SearchTextHistory.Count - 1 do IniFile.WriteString('SearchTextHistory', Format('Item%d', [i]), SearchTextHistory[i]); IniFile.WriteInteger(ConfProfileName, 'ShowMounterBar', ConfShowMounterBar); IniFile.WriteBool(ConfProfileName, 'SearchFilterCaseSensitive', ConfSearchFilterCaseSensitive); IniFile.WriteBool(ConfProfileName, 'SearchOtherFS', ConfSearchOtherFS); IniFile.WriteBool(ConfProfileName, 'SearchArchives', ConfSearchArchives); IniFile.WriteBool(ConfProfileName, 'SearchTextCaseSensitive', ConfSearchTextCaseSensitive); IniFile.WriteBool(ConfProfileName, 'MakeSymlinkRelative', ConfMakeSymlinkRelative); except on E: Exception do DebugMsg(['*** Error: Cannot save user settings (', E.ClassName, '): ', E.Message]); end; finally IniFile.Free; end; except end; end; (********************************************************************************************************************************) (********************************************************************************************************************************) procedure ReadMainGUISettings; var s: string; IniFile: TMyIniFile; begin SearchForDefaultApps; try s := IncludeTrailingPathDelimiter(GetHomePath) + ConfDefaultSettingsDir; if not DirectoryExists(s) then if not ForceDirectories(s) then begin DebugMsg(['*** Error: Cannot read user settings']); Exit; end; IniFile := TMyIniFile.Create(IncludeTrailingPathDelimiter(s) + 'gui', True); try ConfPanelFont := IniFile.ReadString(ConfProfileName, 'PanelFont', ConfDefaultPanelFont); ConfRowHeight := IniFile.ReadInteger(ConfProfileName, 'RowHeight', ConfRowHeight); if ConfRowHeight > 0 then ConfRowHeightReal := ConfRowHeight; ConfClearReadOnlyAttr := IniFile.ReadBool(ConfProfileName, 'ClearReadOnlyAttr', ConfClearReadOnlyAttr); ConfViewer := IniFile.ReadString(ConfProfileName, 'Viewer', ConfViewer); ConfEditor := IniFile.ReadString(ConfProfileName, 'Editor', ConfEditor); ConfTerminalCommand := IniFile.ReadString(ConfProfileName, 'TerminalCommand', ConfTerminalCommand); ConfNumHistoryItems := IniFile.ReadInteger('General', 'NumHistoryItems', ConfNumHistoryItems); ConfDisableMouseRename := IniFile.ReadBool(ConfProfileName, 'DisableMouseRename', ConfDisableMouseRename); ConfUseSystemFont := IniFile.ReadBool(ConfProfileName, 'UseSystemFont', ConfUseSystemFont); ConfUseFileTypeIcons := IniFile.ReadBool(ConfProfileName, 'UseFileTypeIcons', ConfUseFileTypeIcons); // Read color settings ConfNormalItemFGColor := IniFile.ReadString(ConfProfileName, 'NormalItemFGColor', ConfNormalItemFGColor); ConfNormalItemBGColor := IniFile.ReadString(ConfProfileName, 'NormalItemBGColor', ConfNormalItemBGColor); ConfActiveItemFGColor := IniFile.ReadString(ConfProfileName, 'ActiveItemFGColor', ConfActiveItemFGColor); ConfActiveItemBGColor := IniFile.ReadString(ConfProfileName, 'ActiveItemBGColor', ConfActiveItemBGColor); ConfInactiveItemFGColor := IniFile.ReadString(ConfProfileName, 'InactiveItemFGColor', ConfInactiveItemFGColor); ConfInactiveItemBGColor := IniFile.ReadString(ConfProfileName, 'InactiveItemBGColor', ConfInactiveItemBGColor); ConfSelectedItemFGColor := IniFile.ReadString(ConfProfileName, 'SelectedItemFGColor', ConfSelectedItemFGColor); ConfLinkItemFGColor := IniFile.ReadString(ConfProfileName, 'LinkItemFGColor', ConfLinkItemFGColor); ConfDotFileItemFGColor := IniFile.ReadString(ConfProfileName, 'DotFileItemFGColor', ConfDotFileItemFGColor); ConfNormalItemDefaultColors := IniFile.ReadBool(ConfProfileName, 'NormalItemDefaultColors', ConfNormalItemDefaultColors); ConfCursorDefaultColors := IniFile.ReadBool(ConfProfileName, 'CursorDefaultColors', ConfCursorDefaultColors); ConfInactiveItemDefaultColors := IniFile.ReadBool(ConfProfileName, 'InactiveItemDefaultColors', ConfInactiveItemDefaultColors); ConfSelectedItemDefaultColors := IniFile.ReadBool(ConfProfileName, 'SelectedItemDefaultColors', ConfSelectedItemDefaultColors); ConfLinkItemDefaultColors := IniFile.ReadBool(ConfProfileName, 'LinkItemDefaultColors', ConfLinkItemDefaultColors); ConfDotFileItemDefaultColors := IniFile.ReadBool(ConfProfileName, 'DotFileItemDefaultColors', ConfDotFileItemDefaultColors); ConfLynxLikeMotion := IniFile.ReadBool(ConfProfileName, 'LynxLikeMotion', ConfLynxLikeMotion); ConfDirsInBold := IniFile.ReadBool(ConfProfileName, 'DirsInBold', ConfDirsInBold); ConfNewStyleAltO := IniFile.ReadBool(ConfProfileName, 'NewStyleAltO', ConfNewStyleAltO); ConfWMCompatMode := IniFile.ReadBool(ConfProfileName, 'WMCompatibilityMode', ConfWMCompatMode); ConfDisableFileTips := IniFile.ReadBool(ConfProfileName, 'DisableFileTips', ConfDisableFileTips); ConfDisableDirectoryBrackets := IniFile.ReadBool(ConfProfileName, 'DisableDirectoryBrackets', ConfDisableDirectoryBrackets); ConfInsMoveDown := IniFile.ReadBool(ConfProfileName, 'InsMoveDown', ConfInsMoveDown); ConfSpaceMovesDown := IniFile.ReadBool(ConfProfileName, 'SpaceMovesDown', ConfSpaceMovesDown); ConfSelectAllDirs := IniFile.ReadBool(ConfProfileName, 'SelectAllDirs', ConfSelectAllDirs); ConfShowFuncButtons := IniFile.ReadBool(ConfProfileName, 'ShowFuncButtons', ConfShowFuncButtons); ConfOctalPerm := IniFile.ReadBool(ConfProfileName, 'OctalPerm', ConfOctalPerm); ConfFocusRefresh := IniFile.ReadBool(ConfProfileName, 'FocusRefresh', ConfFocusRefresh); ConfSizeFormat := IniFile.ReadInteger(ConfProfileName, 'SizeFormat', ConfSizeFormat); ConfSizeGroupPrecision := IniFile.ReadInteger(ConfProfileName, 'SizeGroupPrecision', ConfSizeGroupPrecision); ConfSizeGroupRequestZeroDigits := IniFile.ReadBool(ConfProfileName, 'SizeGroupRequestZeroDigits', ConfSizeGroupRequestZeroDigits); ConfCmdLineTerminalBehaviour := IniFile.ReadInteger(ConfProfileName, 'CmdLineTerminalBehaviour', ConfCmdLineTerminalBehaviour); ConfViewerTerminalBehaviour := IniFile.ReadInteger(ConfProfileName, 'ViewerTerminalBehaviour', ConfViewerTerminalBehaviour); ConfEditorTerminalBehaviour := IniFile.ReadInteger(ConfProfileName, 'EditorTerminalBehaviour', ConfEditorTerminalBehaviour); ConfUseLibcSystem := IniFile.ReadBool(ConfProfileName, 'CompatUseLibcSystem', ConfUseLibcSystem); ConfUseInternalViewer := IniFile.ReadBool(ConfProfileName, 'UseInternalViewer', ConfUseInternalViewer); ConfSwitchOtherPanelBehaviour := IniFile.ReadInteger(ConfProfileName, 'SwitchOtherPanelBehaviour', ConfSwitchOtherPanelBehaviour); ConfDuplicateTabWarning := IniFile.ReadBool(ConfProfileName, 'DuplicateTabWarning', ConfDuplicateTabWarning); ConfOpenConnectionsWarning := IniFile.ReadBool(ConfProfileName, 'OpenConnectionsWarning', ConfOpenConnectionsWarning); ConfShowTextUIDs := IniFile.ReadBool(ConfProfileName, 'ShowTextUIDs', ConfShowTextUIDs); (********************************************* NEW !!!! *************************************************) ConfSavePanelTabs := IniFile.ReadBool(ConfProfileName, 'SavePanelTabs', ConfSavePanelTabs); ConfTabMaxLength := IniFile.ReadInteger(ConfProfileName, 'TabMaxLength', ConfTabMaxLength); ConfTempPath := IniFile.ReadString(ConfProfileName, 'TempPath', ConfTempPath); ConfUseSmoothScrolling := IniFile.ReadBool(ConfProfileName, 'UseSmoothScrolling', ConfUseSmoothScrolling); ConfDateFormat := IniFile.ReadInteger(ConfProfileName, 'DateFormat', ConfDateFormat); ConfTimeFormat := IniFile.ReadInteger(ConfProfileName, 'TimeFormat', ConfTimeFormat); ConfDateTimeFormat := IniFile.ReadInteger(ConfProfileName, 'DateTimeFormat', ConfDateTimeFormat); ConfCustomDateFormat := IniFile.ReadString(ConfProfileName, 'CustomDateFormat', ConfCustomDateFormat); ConfCustomTimeFormat := IniFile.ReadString(ConfProfileName, 'CustomTimeFormat', ConfCustomTimeFormat); ConfQuickSearchActivationKey := IniFile.ReadInteger(ConfProfileName, 'QuickSearchActivationKey', ConfQuickSearchActivationKey); ConfSortDirectoriesLikeFiles := IniFile.ReadBool(ConfProfileName, 'SortDirectoriesLikeFiles', ConfSortDirectoriesLikeFiles); ConfQuickRenameSkipExt := IniFile.ReadBool(ConfProfileName, 'QuickRenameSkipExt', ConfQuickRenameSkipExt); (********************************************* NEW SINCE 0.6.55 *************************************************) ConfRightClickSelect := IniFile.ReadBool(ConfProfileName, 'RightClickSelect', ConfRightClickSelect); ConfReplaceConnectionWarning := IniFile.ReadBool(ConfProfileName, 'ReplaceConnectionWarning', ConfReplaceConnectionWarning); ConfWarnUnsavedConnection := IniFile.ReadBool(ConfProfileName, 'WarnUnsavedConnection', ConfWarnUnsavedConnection); SearchForDefaultApps; finally try IniFile.Free; except end; InternalMainGUIConfmtime := GetFileTime(IncludeTrailingPathDelimiter(s) + 'gui'); end; except end; end; procedure WriteMainGUISettings; var s: string; IniFile: TMyIniFile; begin if InternalQuickExit then Exit; try s := IncludeTrailingPathDelimiter(GetHomePath) + ConfDefaultSettingsDir; if not DirectoryExists(s) then if not ForceDirectories(s) then begin DebugMsg(['*** Error: Cannot save user settings']); Exit; end; IniFile := TMyIniFile.Create(IncludeTrailingPathDelimiter(s) + 'gui', False); try try IniFile.WriteString(ConfProfileName, 'PanelFont', ConfPanelFont); IniFile.WriteInteger(ConfProfileName, 'RowHeight', ConfRowHeight); IniFile.WriteBool(ConfProfileName, 'ClearReadOnlyAttr', ConfClearReadOnlyAttr); IniFile.WriteString(ConfProfileName, 'Viewer', ConfViewer); IniFile.WriteString(ConfProfileName, 'Editor', ConfEditor); IniFile.WriteString(ConfProfileName, 'TerminalCommand', ConfTerminalCommand); IniFile.WriteInteger('General', 'NumHistoryItems', ConfNumHistoryItems); IniFile.WriteBool(ConfProfileName, 'DisableMouseRename', ConfDisableMouseRename); IniFile.WriteBool(ConfProfileName, 'UseSystemFont', ConfUseSystemFont); IniFile.WriteBool(ConfProfileName, 'UseFileTypeIcons', ConfUseFileTypeIcons); // Save color settings IniFile.WriteString(ConfProfileName, 'NormalItemFGColor', ConfNormalItemFGColor); IniFile.WriteString(ConfProfileName, 'NormalItemBGColor', ConfNormalItemBGColor); IniFile.WriteString(ConfProfileName, 'ActiveItemFGColor', ConfActiveItemFGColor); IniFile.WriteString(ConfProfileName, 'ActiveItemBGColor', ConfActiveItemBGColor); IniFile.WriteString(ConfProfileName, 'InactiveItemFGColor', ConfInactiveItemFGColor); IniFile.WriteString(ConfProfileName, 'InactiveItemBGColor', ConfInactiveItemBGColor); IniFile.WriteString(ConfProfileName, 'SelectedItemFGColor', ConfSelectedItemFGColor); IniFile.WriteString(ConfProfileName, 'LinkItemFGColor', ConfLinkItemFGColor); IniFile.WriteString(ConfProfileName, 'DotFileItemFGColor', ConfDotFileItemFGColor); IniFile.WriteBool(ConfProfileName, 'NormalItemDefaultColors', ConfNormalItemDefaultColors); IniFile.WriteBool(ConfProfileName, 'CursorDefaultColors', ConfCursorDefaultColors); IniFile.WriteBool(ConfProfileName, 'InactiveItemDefaultColors', ConfInactiveItemDefaultColors); IniFile.WriteBool(ConfProfileName, 'SelectedItemDefaultColors', ConfSelectedItemDefaultColors); IniFile.WriteBool(ConfProfileName, 'LinkItemDefaultColors', ConfLinkItemDefaultColors); IniFile.WriteBool(ConfProfileName, 'DotFileItemDefaultColors', ConfDotFileItemDefaultColors); IniFile.WriteBool(ConfProfileName, 'LynxLikeMotion', ConfLynxLikeMotion); IniFile.WriteInteger(ConfProfileName, 'SizeFormat', ConfSizeFormat); IniFile.WriteInteger(ConfProfileName, 'SizeGroupPrecision', ConfSizeGroupPrecision); IniFile.WriteBool(ConfProfileName, 'SizeGroupRequestZeroDigits', ConfSizeGroupRequestZeroDigits); IniFile.WriteBool(ConfProfileName, 'NewStyleAltO', ConfNewStyleAltO); IniFile.WriteBool(ConfProfileName, 'DirsInBold', ConfDirsInBold); IniFile.WriteBool(ConfProfileName, 'DisableDirectoryBrackets', ConfDisableDirectoryBrackets); IniFile.WriteBool(ConfProfileName, 'WMCompatibilityMode', ConfWMCompatMode); IniFile.WriteBool(ConfProfileName, 'DisableFileTips', ConfDisableFileTips); IniFile.WriteBool(ConfProfileName, 'InsMoveDown', ConfInsMoveDown); IniFile.WriteBool(ConfProfileName, 'SpaceMovesDown', ConfSpaceMovesDown); IniFile.WriteBool(ConfProfileName, 'ShowFuncButtons', ConfShowFuncButtons); IniFile.WriteBool(ConfProfileName, 'SelectAllDirs', ConfSelectAllDirs); IniFile.WriteBool(ConfProfileName, 'OctalPerm', ConfOctalPerm); IniFile.WriteBool(ConfProfileName, 'FocusRefresh', ConfFocusRefresh); IniFile.WriteInteger(ConfProfileName, 'CmdLineTerminalBehaviour', ConfCmdLineTerminalBehaviour); IniFile.WriteInteger(ConfProfileName, 'ViewerTerminalBehaviour', ConfViewerTerminalBehaviour); IniFile.WriteInteger(ConfProfileName, 'EditorTerminalBehaviour', ConfEditorTerminalBehaviour); IniFile.WriteBool(ConfProfileName, 'CompatUseLibcSystem', ConfUseLibcSystem); IniFile.WriteBool(ConfProfileName, 'UseInternalViewer', ConfUseInternalViewer); IniFile.WriteInteger(ConfProfileName, 'SwitchOtherPanelBehaviour', ConfSwitchOtherPanelBehaviour); IniFile.WriteBool(ConfProfileName, 'DuplicateTabWarning', ConfDuplicateTabWarning); IniFile.WriteBool(ConfProfileName, 'OpenConnectionsWarning', ConfOpenConnectionsWarning); IniFile.WriteBool(ConfProfileName, 'ShowTextUIDs', ConfShowTextUIDs); (********************************************* NEW !!!! *************************************************) IniFile.WriteBool(ConfProfileName, 'SavePanelTabs', ConfSavePanelTabs); IniFile.WriteInteger(ConfProfileName, 'TabMaxLength', ConfTabMaxLength); IniFile.WriteString(ConfProfileName, 'TempPath', ConfTempPath); IniFile.WriteBool(ConfProfileName, 'UseSmoothScrolling', ConfUseSmoothScrolling); IniFile.WriteInteger(ConfProfileName, 'DateFormat', ConfDateFormat); IniFile.WriteInteger(ConfProfileName, 'TimeFormat', ConfTimeFormat); IniFile.WriteInteger(ConfProfileName, 'DateTimeFormat', ConfDateTimeFormat); IniFile.WriteString(ConfProfileName, 'CustomDateFormat', ConfCustomDateFormat); IniFile.WriteString(ConfProfileName, 'CustomTimeFormat', ConfCustomTimeFormat); IniFile.WriteInteger(ConfProfileName, 'QuickSearchActivationKey', ConfQuickSearchActivationKey); IniFile.WriteBool(ConfProfileName, 'SortDirectoriesLikeFiles', ConfSortDirectoriesLikeFiles); IniFile.WriteBool(ConfProfileName, 'QuickRenameSkipExt', ConfQuickRenameSkipExt); (********************************************* NEW SINCE 0.6.55 *************************************************) IniFile.WriteBool(ConfProfileName, 'RightClickSelect', ConfRightClickSelect); IniFile.WriteBool(ConfProfileName, 'ReplaceConnectionWarning', ConfReplaceConnectionWarning); IniFile.WriteBool(ConfProfileName, 'WarnUnsavedConnection', ConfWarnUnsavedConnection); except on E: Exception do DebugMsg(['*** Error: Cannot save user settings (', E.ClassName, '): ', E.Message]); end; finally IniFile.Free; InternalMainGUIConfmtime := GetFileTime(IncludeTrailingPathDelimiter(s) + 'gui'); end; except end; end; (********************************************************************************************************************************) (********************************************************************************************************************************) procedure ReadAssoc; var s: string; IniFile: TMyIniFile; Sections: TStringList; i, j, cnt: integer; Item: TFileAssoc; Action: TAssocAction; begin try s := IncludeTrailingPathDelimiter(GetHomePath) + ConfDefaultSettingsDir; if not DirectoryExists(s) then if not ForceDirectories(s) then begin DebugMsg(['*** Error: Cannot read file association settings']); Exit; end; try if not Assigned(AssocList) then AssocList := TList.Create else if AssocList.Count > 0 then for i := 0 to AssocList.Count - 1 do TFileAssoc(AssocList[i]).Free; except end; AssocList.Clear; IniFile := TMyIniFile.Create(IncludeTrailingPathDelimiter(s) + 'filetypes', True); try Sections := TStringList.Create; IniFile.ReadSections(Sections); if Sections.Count > 0 then for i := 0 to Sections.Count - 1 do if Sections[i] <> 'General' then begin Item := TFileAssoc.Create; with Item do begin if (Sections[i] = ConstFTAMetaDirectory) or (Sections[i] = ConstFTAMetaFile) then SetLength(Extensions, 0) else ParseString(Sections[i], ';', Extensions); FileTypeName := IniFile.ReadString(Sections[i], 'FileTypeName', ''); DefaultAction := IniFile.ReadInteger(Sections[i], 'DefaultAction', 0); cnt := IniFile.ReadInteger(Sections[i], 'NumActions', 0); FileTypeIcon := IniFile.ReadString(Sections[i], 'FileTypeIcon', ''); ColorString := IniFile.ReadString(Sections[i], 'ColorString', ''); if cnt > 0 then for j := 0 to cnt - 1 do begin Action := TAssocAction.Create; with Action do begin ActionName := IniFile.ReadString(Sections[i], Format('Action%dName', [j]), ''); ActionCommand := IniFile.ReadString(Sections[i], Format('Action%dCommand', [j]), ''); RunInTerminal := IniFile.ReadBool(Sections[i], Format('Action%dRunInTerminal', [j]), False); AutodetectGUI := IniFile.ReadBool(Sections[i], Format('Action%dAutodetectGUI', [j]), True); end; if (Action.ActionName <> '') {and (Action.ActionCommand <> '')} then ActionList.Add(Action); end; end; {if Length(Trim(Item.Extensions)) > 0 then} AssocList.Add(Item); end; Sections.Free; AddDefaultItems(AssocList); if Assigned(FileIcon) then RecreateIcons(AssocList); finally try IniFile.Free; except end; InternalFAssocConfmtime := GetFileTime(IncludeTrailingPathDelimiter(s) + 'filetypes'); end; except end; end; procedure WriteAssoc; var i, j: integer; IniFile: TMyIniFile; s, SectionTitle: string; begin if InternalQuickExit then Exit; try s := IncludeTrailingPathDelimiter(GetHomePath) + ConfDefaultSettingsDir; if not DirectoryExists(s) then if not ForceDirectories(s) then begin DebugMsg(['*** Error: Cannot save file association settings']); Exit; end; s := IncludeTrailingPathDelimiter(s) + 'filetypes'; if access(PChar(s), R_OK) = 0 then libc_remove(PChar(s)); IniFile := TMyIniFile.Create(s, False); try try if AssocList.Count > 0 then for i := 0 to AssocList.Count - 1 do with TFileAssoc(AssocList[i]) do begin if (FileTypeName = ConstFTAMetaDirectory) or (FileTypeName = ConstFTAMetaFile) then SectionTitle := FileTypeName else SectionTitle := MakeString(';', Extensions); IniFile.EraseSection(SectionTitle); IniFile.WriteString(SectionTitle, 'FileTypeName', FileTypeName); IniFile.WriteString(SectionTitle, 'FileTypeIcon', FileTypeIcon); IniFile.WriteInteger(SectionTitle, 'DefaultAction', DefaultAction); IniFile.WriteInteger(SectionTitle, 'NumActions', ActionList.Count); IniFile.WriteString(SectionTitle, 'ColorString', ColorString); if ActionList.Count > 0 then for j := 0 to ActionList.Count - 1 do begin IniFile.WriteString(SectionTitle, Format('Action%dName', [j]), TAssocAction(ActionList[j]).ActionName); IniFile.WriteString(SectionTitle, Format('Action%dCommand', [j]), TAssocAction(ActionList[j]).ActionCommand); IniFile.WriteBool(SectionTitle, Format('Action%dRunInTerminal', [j]), TAssocAction(ActionList[j]).RunInTerminal); IniFile.WriteBool(SectionTitle, Format('Action%dAutodetectGUI', [j]), TAssocAction(ActionList[j]).AutodetectGUI); end; end; except on E: Exception do DebugMsg(['*** Error: Cannot save file association settings (', E.ClassName, '): ', E.Message]); end; finally IniFile.Free; InternalFAssocConfmtime := GetFileTime(s); end; except end; end; (********************************************************************************************************************************) (********************************************************************************************************************************) procedure ReadBookmarks; var s: string; i: integer; begin try s := IncludeTrailingPathDelimiter(IncludeTrailingPathDelimiter(GetHomePath) + ConfDefaultSettingsDir) + 'bookmarks'; Bookmarks.LoadFromFile(s); InternalBookmarksConfmtime := GetFileTime(s); if Bookmarks.Count > 0 then for i := Bookmarks.Count - 1 downto 0 do if Length(Trim(Bookmarks[i])) = 0 then Bookmarks.Delete(i); except end; end; procedure WriteBookmarks; var s: string; i: integer; begin if InternalQuickExit then Exit; try s := IncludeTrailingPathDelimiter(IncludeTrailingPathDelimiter(GetHomePath) + ConfDefaultSettingsDir) + 'bookmarks'; if Bookmarks.Count > 0 then for i := Bookmarks.Count - 1 downto 0 do if Length(Trim(Bookmarks[i])) = 0 then Bookmarks.Delete(i); Bookmarks.SaveToFile(s); InternalBookmarksConfmtime := GetFileTime(s); except end; end; (********************************************************************************************************************************) (********************************************************************************************************************************) procedure ReadMounter; var s: string; IniFile: TMyIniFile; Sections: TStringList; i: integer; Item: TMounterItem; begin try s := IncludeTrailingPathDelimiter(GetHomePath) + ConfDefaultSettingsDir; if not DirectoryExists(s) then if not ForceDirectories(s) then begin DebugMsg(['*** Error: Cannot read file association settings']); Exit; end; try if not Assigned(MounterList) then MounterList := TList.Create else if MounterList.Count > 0 then for i := 0 to MounterList.Count - 1 do TMounterItem(MounterList[i]).Free; except end; MounterList.Clear; IniFile := TMyIniFile.Create(IncludeTrailingPathDelimiter(s) + 'mounter', True); try Sections := TStringList.Create; IniFile.ReadSections(Sections); if Sections.Count > 0 then for i := 0 to Sections.Count - 1 do if Sections[i] = 'General' then begin ConfMounterUseFSTab := IniFile.ReadBool('General', 'MounterUseFSTab', ConfMounterUseFSTab); ConfMounterPushDown := IniFile.ReadBool('General', 'MounterPushDown', ConfMounterPushDown); end else begin Item := TMounterItem.Create; with Item do begin Device := Sections[i]; DisplayText := IniFile.ReadString(Sections[i], 'DisplayText', ''); MountPath := IniFile.ReadString(Sections[i], 'MountPath', ''); IconPath := IniFile.ReadString(Sections[i], 'IconPath', ''); MountCommand := IniFile.ReadString(Sections[i], 'MountCommand', ''); UmountCommand := IniFile.ReadString(Sections[i], 'UmountCommand', ''); DeviceType := IniFile.ReadInteger(Sections[i], 'DeviceType', 0); end; MounterList.Add(Item); end; Sections.Free; finally try IniFile.Free; except end; InternalMounterConfmtime := GetFileTime(IncludeTrailingPathDelimiter(s) + 'mounter'); end; except end; end; procedure WriteMounter; var i: integer; IniFile: TMyIniFile; s, SectionTitle: string; begin if InternalQuickExit then Exit; try s := IncludeTrailingPathDelimiter(GetHomePath) + ConfDefaultSettingsDir; if not DirectoryExists(s) then if not ForceDirectories(s) then begin DebugMsg(['*** Error: Cannot save file association settings']); Exit; end; s := IncludeTrailingPathDelimiter(s) + 'mounter'; if access(PChar(s), R_OK) = 0 then libc_remove(PChar(s)); IniFile := TMyIniFile.Create(s, False); try try IniFile.WriteBool('General', 'MounterUseFSTab', ConfMounterUseFSTab); IniFile.WriteBool('General', 'MounterPushDown', ConfMounterPushDown); if MounterList.Count > 0 then for i := 0 to MounterList.Count - 1 do with TMounterItem(MounterList[i]) do begin SectionTitle := Device; IniFile.EraseSection(SectionTitle); IniFile.WriteString(SectionTitle, 'DisplayText', DisplayText); IniFile.WriteString(SectionTitle, 'MountPath', MountPath); IniFile.WriteString(SectionTitle, 'IconPath', IconPath); IniFile.WriteString(SectionTitle, 'MountCommand', MountCommand); IniFile.WriteString(SectionTitle, 'UmountCommand', UmountCommand); IniFile.WriteInteger(SectionTitle, 'DeviceType', DeviceType); end; except on E: Exception do DebugMsg(['*** Error: Cannot save file association settings (', E.ClassName, '): ', E.Message]); end; finally IniFile.Free; InternalMounterConfmtime := GetFileTime(s); end; except end; end; (********************************************************************************************************************************) (********************************************************************************************************************************) procedure ReadTabs(const LeftPanel: boolean; TabList: TStringList; TabSortIDs, TabSortTypes: TList); const PanelPrefixes: array[boolean] of string = ('Left', 'Right'); var s, Section: string; IniFile: TMyIniFile; i, j: integer; NumItems: integer; begin try s := IncludeTrailingPathDelimiter(GetHomePath) + ConfDefaultSettingsDir; if not DirectoryExists(s) then if not ForceDirectories(s) then begin DebugMsg(['*** Error: Cannot read panel tabs']); Exit; end; IniFile := TMyIniFile.Create(IncludeTrailingPathDelimiter(s) + 'tabs', True); try Section := Format('%s_%spanel', [ConfProfileName, PanelPrefixes[LeftPanel]]); NumItems := IniFile.ReadInteger(Section, 'NumTabs', 0); if LeftPanel then ConfLeftTabBarTabIndex := IniFile.ReadInteger(Section, 'TabIndex', ConfLeftTabBarTabIndex) else ConfRightTabBarTabIndex := IniFile.ReadInteger(Section, 'TabIndex', ConfRightTabBarTabIndex); if NumItems > 0 then for i := 0 to NumItems - 1 do begin s := IniFile.ReadString(Section, Format('Tab%d', [i]), ''); if Length(s) > 0 then TabList.Add(s); j := IniFile.ReadInteger(Section, Format('Tab%d_SortID', [i]), 0); TabSortIDs.Add(Pointer(j)); j := IniFile.ReadInteger(Section, Format('Tab%d_SortType', [i]), 0); TabSortTypes.Add(Pointer(j)); end; if (TabList.Count <> TabSortIDs.Count) or (TabList.Count <> TabSortTypes.Count) or (TabList.Count = 1) then begin // Something went wrong, tab list is corrupt, let's remove all tabs TabList.Clear; TabSortIDs.Clear; TabSortTypes.Clear; end; finally try IniFile.Free; except end; end; except end; end; procedure WriteTabs(const LeftPanel: boolean; TabList: TStringList; TabSortIDs, TabSortTypes: TList); const PanelPrefixes: array[boolean] of string = ('Left', 'Right'); var s, Section: string; IniFile: TMyIniFile; i: integer; begin if InternalQuickExit then Exit; try s := IncludeTrailingPathDelimiter(GetHomePath) + ConfDefaultSettingsDir; if not DirectoryExists(s) then if not ForceDirectories(s) then begin DebugMsg(['*** Error: Cannot save panel tabs']); Exit; end; IniFile := TMyIniFile.Create(IncludeTrailingPathDelimiter(s) + 'tabs', False); try try Section := Format('%s_%spanel', [ConfProfileName, PanelPrefixes[LeftPanel]]); IniFile.EraseSection(Section); IniFile.WriteInteger(Section, 'NumTabs', TabList.Count); if LeftPanel then IniFile.WriteInteger(Section, 'TabIndex', ConfLeftTabBarTabIndex) else IniFile.WriteInteger(Section, 'TabIndex', ConfRightTabBarTabIndex); if TabList.Count > 0 then for i := 0 to TabList.Count - 1 do begin IniFile.WriteString(Section, Format('Tab%d', [i]), TabList[i]); IniFile.WriteInteger(Section, Format('Tab%d_SortID', [i]), Integer(TabSortIDs[i])); IniFile.WriteInteger(Section, Format('Tab%d_SortType', [i]), Integer(TabSortTypes[i])); end; except on E: Exception do DebugMsg(['*** Error: Cannot save panel tabs settings (', E.ClassName, '): ', E.Message]); end; finally IniFile.Free; end; except end; end; (********************************************************************************************************************************) (********************************************************************************************************************************) procedure ReadConnections; var s: string; IniFile: TMyIniFile; Sections: TStringList; i, j, k: integer; Item: TConnMgrItem; begin try s := IncludeTrailingPathDelimiter(GetHomePath) + ConfDefaultSettingsDir; if not DirectoryExists(s) then if not ForceDirectories(s) then begin DebugMsg(['*** Error: Cannot read connection manager settings']); Exit; end; try if not Assigned(ConnectionMgrList) then ConnectionMgrList := TList.Create else if ConnectionMgrList.Count > 0 then for i := 0 to ConnectionMgrList.Count - 1 do TConnMgrItem(ConnectionMgrList[i]).Free; except end; ConnectionMgrList.Clear; IniFile := TMyIniFile.Create(IncludeTrailingPathDelimiter(s) + 'connmgr', True); try Sections := TStringList.Create; IniFile.ReadSections(Sections); if Sections.Count > 0 then for i := 0 to Sections.Count - 1 do if Sections[i] = '__General' then begin ConfConnMgrActiveItem := IniFile.ReadInteger('__General', 'ConnMgrActiveItem', ConfConnMgrActiveItem); ConfConnMgrDoNotSavePasswords := IniFile.ReadBool('__General', 'ConnMgrDoNotSavePasswords', ConfConnMgrDoNotSavePasswords); ConfConnMgrDoNotSynchronizeKeyring := IniFile.ReadBool('__General', 'ConnMgrDoNotSynchronizeKeyring', ConfConnMgrDoNotSynchronizeKeyring); ConfQuickConnectPluginID := IniFile.ReadString('__General', 'QuickConnectPluginID', ConfQuickConnectPluginID); ConfConnMgrSortColumn := IniFile.ReadInteger('__General', 'ConnMgrSortColumn', ConfConnMgrSortColumn); ConfConnMgrSortType := IniFile.ReadInteger('__General', 'ConnMgrSortType', ConfConnMgrSortType); ConfConnMgrColumn1Width := IniFile.ReadInteger('__General', 'ConnMgrColumn1Width', ConfConnMgrColumn1Width); end else if Sections[i] = '__QuickConnectHistory' then begin QuickConnectHistory.Clear; if not InternalDeleteHistory then begin j := IniFile.ReadInteger('__QuickConnectHistory', 'NumItems', 0); if j > 0 then for k := 0 to j - 1 do QuickConnectHistory.Add(IniFile.ReadString('__QuickConnectHistory', Format('Item%d', [k]), '')); end; end else begin Item := TConnMgrItem.Create; with Item do begin ConnectionName := IniFile.ReadString(Sections[i], 'ConnectionName', ''); ServiceType := IniFile.ReadString(Sections[i], 'ServiceType', ''); Server := IniFile.ReadString(Sections[i], 'Server', ''); Username := IniFile.ReadString(Sections[i], 'Username', ''); Password := XORStr(IniFile.ReadString(Sections[i], 'Password', ''), ConstConnMgrXORKey); TargetDir := IniFile.ReadString(Sections[i], 'TargetDir', ''); PluginID := IniFile.ReadString(Sections[i], 'PluginID', ''); end; ConnectionMgrList.Add(Item); end; Sections.Free; finally try IniFile.Free; except end; InternalConnMgrConfmtime := GetFileTime(IncludeTrailingPathDelimiter(s) + 'connmgr'); end; except end; end; procedure WriteConnections; var i: integer; IniFile: TMyIniFile; s, SectionTitle: string; begin if InternalQuickExit then Exit; try s := IncludeTrailingPathDelimiter(GetHomePath) + ConfDefaultSettingsDir; if not DirectoryExists(s) then if not ForceDirectories(s) then begin DebugMsg(['*** Error: Cannot save connection manager settings']); Exit; end; s := IncludeTrailingPathDelimiter(s) + 'connmgr'; if access(PChar(s), R_OK) = 0 then libc_remove(PChar(s)); IniFile := TMyIniFile.Create(s, False); try try IniFile.WriteInteger('__General', 'ConnMgrActiveItem', ConfConnMgrActiveItem); IniFile.WriteBool('__General', 'ConnMgrDoNotSavePasswords', ConfConnMgrDoNotSavePasswords); IniFile.WriteBool('__General', 'ConnMgrDoNotSynchronizeKeyring', ConfConnMgrDoNotSynchronizeKeyring); IniFile.WriteString('__General', 'QuickConnectPluginID', ConfQuickConnectPluginID); IniFile.WriteInteger('__General', 'ConnMgrSortColumn', ConfConnMgrSortColumn); IniFile.WriteInteger('__General', 'ConnMgrSortType', ConfConnMgrSortType); IniFile.WriteInteger('__General', 'ConnMgrColumn1Width', ConfConnMgrColumn1Width); IniFile.WriteInteger('__QuickConnectHistory', 'NumItems', QuickConnectHistory.Count); if QuickConnectHistory.Count > 0 then for i := 0 to QuickConnectHistory.Count - 1 do IniFile.WriteString('__QuickConnectHistory', Format('Item%d', [i]), QuickConnectHistory[i]); if ConnectionMgrList.Count > 0 then for i := 0 to ConnectionMgrList.Count - 1 do with TConnMgrItem(ConnectionMgrList[i]) do begin SectionTitle := Format('%d_%d_%d', [g_str_hash(PChar(ConnectionName)), i, g_str_hash(PChar(GetURI(False)))]); IniFile.EraseSection(SectionTitle); IniFile.WriteString(SectionTitle, 'ConnectionName', ConnectionName); IniFile.WriteString(SectionTitle, 'ServiceType', ServiceType); IniFile.WriteString(SectionTitle, 'Server', Server); IniFile.WriteString(SectionTitle, 'Username', Username); if not ConfConnMgrDoNotSavePasswords then IniFile.WriteString(SectionTitle, 'Password', XORStr(Password, ConstConnMgrXORKey)) else IniFile.WriteString(SectionTitle, 'Password', ''); IniFile.WriteString(SectionTitle, 'TargetDir', TargetDir); IniFile.WriteString(SectionTitle, 'PluginID', PluginID); end; except on E: Exception do DebugMsg(['*** Error: Cannot save connection manager settings (', E.ClassName, '): ', E.Message]); end; finally IniFile.Free; InternalConnMgrConfmtime := GetFileTime(s); end; except end; end; (********************************************************************************************************************************) (********************************************************************************************************************************) procedure SearchForDefaultApps; var i: integer; PATH: string; begin PATH := GetEnvironmentVariable('PATH'); if ConfViewer = ConfAppNA then for i := 1 to Length(ConfViewersApps) do if FileSearch(ConfViewersApps[i], PATH) <> '' then begin ConfViewer := ConfViewersApps[i]; Break; end; if ConfEditor = ConfAppNA then for i := 1 to Length(ConfEditorApps) do if FileSearch(ConfEditorApps[i], PATH) <> '' then begin ConfEditor := ConfEditorApps[i]; Break; end; if ConfTerminalCommand = ConfAppNA then for i := Length(ConfTerminalAppsWParam) downto 1 do if FileSearch(ConfTerminalAppsWParam[i], PATH) <> '' then begin ConfTerminalCommand := ConfTerminalApps[i]; Break; end; end; (********************************************************************************************************************************) (********************************************************************************************************************************) function GetFileTime(FileName: string): time_t; var StatBuf: Pstat64; begin Result := -1; StatBuf := malloc(sizeof(Tstat64)); memset(StatBuf, 0, sizeof(Tstat64)); if lstat64(PChar(FileName), StatBuf) = 0 then Result := StatBuf^.st_mtime; libc_free(StatBuf); end; function CheckConfFilesMod(var ChangedMainGUI, ChangedAssoc, ChangedBookmarks, ChangedMounter, ChangedConnections: boolean): boolean; var s: string; begin s := IncludeTrailingPathDelimiter(IncludeTrailingPathDelimiter(GetHomePath) + ConfDefaultSettingsDir); ChangedMainGUI := (GetFileTime(s + 'gui') > 0) and (GetFileTime(s + 'gui') > InternalMainGUIConfmtime); ChangedAssoc := (GetFileTime(s + 'filetypes') > 0) and (GetFileTime(s + 'filetypes') > InternalFAssocConfmtime); ChangedBookmarks := (GetFileTime(s + 'bookmarks') > 0) and (GetFileTime(s + 'bookmarks') > InternalBookmarksConfmtime); ChangedMounter := (GetFileTime(s + 'mounter') > 0) and (GetFileTime(s + 'mounter') > InternalMounterConfmtime); ChangedConnections := (GetFileTime(s + 'connmgr') > 0) and (GetFileTime(s + 'connmgr') > InternalConnMgrConfmtime); Result := ChangedMainGUI or ChangedAssoc or ChangedBookmarks or ChangedMounter or ChangedConnections; InternalMainGUIConfmtime := GetFileTime(s + 'gui'); InternalFAssocConfmtime := GetFileTime(s + 'filetypes'); InternalBookmarksConfmtime := GetFileTime(s + 'bookmarks'); InternalMounterConfmtime := GetFileTime(s + 'mounter'); InternalConnMgrConfmtime := GetFileTime(s + 'connmgr'); end; (********************************************************************************************************************************) (********************************************************************************************************************************) procedure SetMiscLocaleStrings; begin ConfColumnTitlesLong[1] := LANGColumns_TitlesLongName; ConfColumnTitlesLong[2] := LANGColumns_TitlesLongNameExt; ConfColumnTitlesLong[3] := LANGColumns_TitlesLongExt; ConfColumnTitlesLong[4] := LANGColumns_TitlesLongSize; ConfColumnTitlesLong[5] := LANGColumns_TitlesLongDateTime; ConfColumnTitlesLong[6] := LANGColumns_TitlesLongDate; ConfColumnTitlesLong[7] := LANGColumns_TitlesLongTime; ConfColumnTitlesLong[8] := LANGColumns_TitlesLongUser; ConfColumnTitlesLong[9] := LANGColumns_TitlesLongGroup; ConfColumnTitlesLong[10] := LANGColumns_TitlesLongAttr; ConfColumnTitlesShort[1] := LANGColumns_TitlesShortName; ConfColumnTitlesShort[2] := LANGColumns_TitlesShortNameExt; ConfColumnTitlesShort[3] := LANGColumns_TitlesShortExt; ConfColumnTitlesShort[4] := LANGColumns_TitlesShortSize; ConfColumnTitlesShort[5] := LANGColumns_TitlesShortDateTime; ConfColumnTitlesShort[6] := LANGColumns_TitlesShortDate; ConfColumnTitlesShort[7] := LANGColumns_TitlesShortTime; ConfColumnTitlesShort[8] := LANGColumns_TitlesShortUser; ConfColumnTitlesShort[9] := LANGColumns_TitlesShortGroup; ConfColumnTitlesShort[10] := LANGColumns_TitlesShortAttr; end; (********************************************************************************************************************************) (********************************************************************************************************************************) procedure ParseCMDLine; var i: integer; s: string; begin if ParamCount > 0 then for i := 1 to ParamCount do begin s := UpperCase(ParamStr(i)); if s = '--DEBUG' then ParamDebug := True else if s = '--DISABLE-GNOME' then ParamDisableGnome := True else if s = '--DELETE-HISTORY' then InternalDeleteHistory := True else if s = '--ENABLE-URI' then ConfUseURI := True else if s = '--DISABLE-PLUGINS' then ParamDisablePlugins := True else if Pos('--PROFILE=', s) = 1 then begin ConfProfileName := 'Profile_' + Trim(Copy(ParamStr(i), 11, Length(s) - 10)); if ConfProfileName = '' then ConfProfileName := 'Default'; end else if Pos('--LEFT=', s) = 1 then ParamLeftDir := Copy(ParamStr(i), 8, Length(s) - 7) else if Pos('--RIGHT=', s) = 1 then ParamRightDir := Copy(ParamStr(i), 9, Length(s) - 8) else if Pos('--LANG=', s) = 1 then ConfParamForceLang := Copy(ParamStr(i), 8, Length(s) - 7) else if (s = '--HELP') or (s = '-H') then begin WriteLn('Tux Commander v', ConstAboutVersion, ' [built ', ConstAboutBuildDate, ']'); WriteLn('Copyright (c) 2009 Tomas Bzatek'); WriteLn('Website: tuxcmd.sourceforge.net'); WriteLn; WriteLn('Usage: tuxcmd [options...]'); WriteLn; WriteLn('Options:'); WriteLn(' --debug Enable debug messages'); WriteLn(' --profile= Use different configuration profile'); WriteLn(' --delete-history Delete command-line, selection and search history'); WriteLn(' (use in case of locale problems)'); WriteLn(' --disable-gnome Don''t load GNOME libraries'); WriteLn(' --disable-plugins Don''t load VFS modules'); WriteLn(' --left= Start left panel at '); WriteLn(' --right= Start right panel at '); WriteLn(' --lang= Force GUI language (the string is'); WriteLn(' standard two-char language id'); InternalQuickExit := True; Halt(1); end else WriteLn('tuxcmd: Unknown commandline option: ', ParamStr(i)); end; end; initialization ApplicationShuttingDown := False; SetDefaults; ParseCMDLine; {$IFDEF FPC} DebugMsg(['Tux Commander v', ConstAboutVersion, ' [', ConstAboutBuildDate, '] FreePascal build ', '(version ', ConstFPCVersionString, ' ', ConstFPCDateString, ', define ', {$IFDEF CPU64} {$IFDEF ENDIAN_LITTLE}'x86_64'{$ELSE}'ppc64'{$ENDIF} {$ELSE} {$IFNDEF CPUPOWERPC}'i386'{$ELSE}'ppc' {$ENDIF} {$ENDIF}, ', compiled on ', ConstFPCCompilerOSString, '/', ConstFPCCompilerHostProcessorString, ' for ', ConstFPCTargetOSString, '/', ConstFPCTargetProcessorString, ')']); {$ELSE} DebugMsg(['Tux Commander v', ConstAboutVersion, ' [', ConstAboutBuildDate, '] Kylix build']); {$ENDIF} // Load GNOME libs if not ParamDisableGnome then LoadGnomeLibs; // Create basic objects CommandLineHistory := TStringList.Create; CommandLineHistory.CaseSensitive := True; Bookmarks := TStringList.Create; Bookmarks.CaseSensitive := True; QuickConnectHistory := TStringList.Create; QuickConnectHistory.CaseSensitive := True; // Initialize the modules DoInitPlugins; // Initialize locales SetTranslationTexts(ConfParamForceLang); SetMiscLocaleStrings; // Load the settings ReadMainSettings; ReadMainGUISettings; ReadAssoc; ReadBookmarks; ReadMounter; // Apply the settings LoadIcons; RecreateIcons(AssocList); finalization // Save the settings WriteBookmarks; WriteMainSettings; if ConfSavePanelTabs then begin WriteTabs(True, LeftPanelTabs, LeftTabSortIDs, LeftTabSortTypes); WriteTabs(False, RightPanelTabs, RightTabSortIDs, RightTabSortTypes); end; // Destroy the objects LeftLocalEngine.Free; RightLocalEngine.Free; CommandLineHistory.Free; QuickConnectHistory.Free; Bookmarks.Free; end. tuxcmd-0.6.70+dfsg/UFileTypeSettings.pas0000644000175000017500000011532711300022643017141 0ustar salvisalvi(* Tux Commander - UFileTypeSettings - The filetype settings dialog Copyright (C) 2007 Tomas Bzatek Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UFileTypeSettings; interface uses gtk2, SysUtils, Types, Classes, Variants, GTKControls, GTKForms, GTKStdCtrls, GTKExtCtrls, GTKConsts, GTKView, GTKUtils, GTKDialogs, GTKPixbuf, GTKClasses, UCoreClasses, UGnome; type TFFileTypeSettings = class(TGTKDialog) TitleFrame: TGTKFrame; TitleLabel: TGTKLabel; TitleEventBox: TGTKEventBox; TitleIcon: TGTKImage; TitleHBox: TGTKHBox; ListView, FNameExtListView, ActionsListView: TGTKListView; ListViewScrolledWindow, FNameExtListViewScrolledWindow, ActionsListViewScrolledWindow: TGTKScrolledWindow; AssocListFrame, IconFrame: TGTKFrame; FNameExtLabel, CommandLabel, DescriptionLabel, AssocDescriptionLabel, IconLabel, ColorLabel: TGTKLabel; AssocListButtonBox, FNameExtButtonBox, ActionsButtonBox, ActionsButtonBox2: TGTKHButtonBox; AssocListVBox, FNameExtVBox, FNameExtVBox2, FNameExtVBox3, ActionsVBox: TGTKVBox; AssocListHBox, FNameExtHBox, FNameExtHBox2, ActionsHBox, ActionsHBox2, AssocDescriptionHBox, ColorHBox: TGTKHBox; AddFiletypeButton, RemoveFiletypeButton, AddExtButton, RemoveExtButton, AddActionButton, RemoveActionButton, SetDefaultActionButton, BrowseButton, BrowseIconButton: TGTKButton; ColorButton: TGnomeColorButton; FNameExtEntry, CommandEntry, DescriptionEntry, AssocDescriptionEntry, IconEntry: TGTKEntry; RunInTerminalCheckBox, AutodetectCheckBox, DefaultColorCheckBox: TGTKCheckButton; Notebook: TGTKNotebook; Table, Table2: TGTKTable; Icon: TGTKImage; GnomeIconButton: TGnomeIconEntry; procedure FormCreate(Sender: TObject); override; procedure FormDestroy(Sender: TObject); procedure FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); procedure AddFiletypeButtonClick(Sender: TObject); procedure RemoveFiletypeButtonClick(Sender: TObject); procedure ListViewSelectionChanged(Sender: TObject); procedure AddExtButtonClick(Sender: TObject); procedure RemoveExtButtonClick(Sender: TObject); procedure FNameExtEntryKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); procedure FNameExtListViewSelectionChanged(Sender: TObject); procedure AssocDescriptionEntryChanged(Sender: TObject); procedure ActionsListViewSelectionChanged(Sender: TObject); procedure AddActionButtonClick(Sender: TObject); procedure RemoveActionButtonClick(Sender: TObject); procedure DescriptionEntryChanged(Sender: TObject); procedure CommandEntryChanged(Sender: TObject); procedure RunInTerminalCheckBoxToggled(Sender: TObject); procedure AutodetectCheckBoxToggled(Sender: TObject); procedure SetDefaultActionButtonClick(Sender: TObject); procedure BrowseButtonClick(Sender: TObject); procedure IconEntryChanged(Sender: TObject); procedure BrowseIconButtonClick(Sender: TObject); procedure ColorButtonColorChanged(Sender: TObject); procedure DefaultColorCheckBoxToggled(Sender: TObject); procedure ListViewCellDataFunc(Sender: TObject; tree_view: PGtkTreeView; tree_column : PGtkTreeViewColumn; cell : PGtkCellRenderer; tree_model : PGtkTreeModel; iter : PGtkTreeIter); procedure ActionsListViewCellDataFunc(Sender: TObject; tree_view: PGtkTreeView; tree_column : PGtkTreeViewColumn; cell : PGtkCellRenderer; tree_model : PGtkTreeModel; iter : PGtkTreeIter); procedure GnomeIconButtonIconChanged(Sender: TObject); public IntAssocList: TList; procedure AssignAssocList(List: TList); procedure FillList; procedure CleanItems; private FUseGnomeIconEntry: boolean; end; var FFileTypeSettings: TFFileTypeSettings; implementation uses glib2, ULocale, UFileAssoc, UCoreUtils, UConfig; procedure TFFileTypeSettings.FormCreate(Sender: TObject); var Column: TGTKTreeViewColumn; l: TGTKLabel; begin FUseGnomeIconEntry := Assigned(gnome_icon_entry_new) and Assigned(gnome_icon_entry_get_filename) and Assigned(gnome_icon_entry_set_filename); SetDefaultSize(450, 620); Caption := LANGEditFileTypesCaption; Buttons := [mbOK, mbCancel]; ShowSeparator := False; TitleEventBox := TGTKEventBox.Create(Self); TitleLabel := TGTKLabel.Create(Self); TitleLabel.Caption := LANGTitleLabel_Caption; TitleLabel.UseMarkup := True; TitleLabel.XAlign := 0; TitleLabel.XPadding := 0; TitleLabel.YPadding := 3; TitleEventBox.ControlState := csPrelight; TitleFrame := TGTKFrame.CreateWithoutLabel(Self); TitleFrame.ShadowType := stShadowOut; TitleIcon := TGTKImage.Create(Self); TitleIcon.SetFromStock('gtk-copy', isLargeToolbar); TitleHBox := TGTKHBox.Create(Self); TitleHBox.Homogeneous := False; TitleHBox.AddControlEx(TGTKEventBox.Create(Self), False, False, 5); TitleHBox.AddControlEx(TitleIcon, False, False, 0); TitleHBox.AddControlEx(TitleLabel, True, True, 10); TitleEventBox.AddControl(TitleHBox); TitleFrame.AddControl(TitleEventBox); ClientArea.AddControlEx(TitleFrame, False, True, 0); ListView := TGTKListView.CreateTyped(Self, Application.GTKVersion_2_0_5_Up, [lcText, lcText, lcPointer, lcPixbuf]); ListView.RulesHint := True; Column := ListView.Columns.AddTyped(ctImageText);; Column.Caption := LANGExtensionsColumn; Column.AddImageAttribute('pixbuf', 3); Column.AddAttribute('text', 0); if Application.GTKVersion_2_0_5_Up then Column.SortID := 0; Column.Resizable := True; g_object_set(G_OBJECT(Column.FColumn), 'sizing', 2, 'fixed-width', 150, nil); { Column.FixedWidth := 300; Column.SizingMode := smFixed; } if Application.GTKVersion_2_6_0_Up then Column.SetProperty('ellipsize', 3); Column := ListView.Columns.Add; Column.Caption := LANGDescriptionColumn; Column.AddAttribute('text', 1); if Application.GTKVersion_2_0_5_Up then Column.SortID := 1; Column.Resizable := True; ListViewScrolledWindow := TGTKScrolledWindow.Create(Self); ListViewScrolledWindow.AddControl(ListView); ListViewScrolledWindow.HorizScrollBarPolicy := sbAutomatic; ListViewScrolledWindow.VertScrollBarPolicy := sbAutomatic; ListViewScrolledWindow.ShadowType := stShadowIn; AssocListHBox := TGTKHBox.Create(Self); AssocListVBox := TGTKVBox.Create(Self); AssocListVBox.AddControlEx(ListViewScrolledWindow, True, True, 4); AssocListButtonBox := TGTKHButtonBox.Create(Self); AssocListButtonBox.Layout := blEnd; AssocListButtonBox.Spacing := 2; AddFiletypeButton := TGTKButton.CreateFromStock(Self, 'gtk-add'); RemoveFiletypeButton := TGTKButton.CreateFromStock(Self, 'gtk-remove'); AssocListButtonBox.AddControlEx(AddFiletypeButton, False, False, 0); AssocListButtonBox.AddControlEx(RemoveFiletypeButton, False, False, 0); AssocListVBox.AddControlEx(AssocListButtonBox, False, False, 5); AssocListFrame := TGTKFrame.Create(Self); AssocListFrame.Caption := LANGFileTypesList; AssocListHBox.AddControlEx(AssocListVBox, True, True, 10); AssocListFrame.AddControl(AssocListHBox); AssocListFrame.BorderWidth := 7; ClientArea.AddControlEx(AssocListFrame, True, True, 0); Notebook := TGTKNotebook.Create(Self); Notebook.BorderWidth := 8; ClientArea.AddControlEx(Notebook, False, False, 0); ActionsListViewScrolledWindow := TGTKScrolledWindow.Create(Self); ActionsListView := TGTKListView.CreateTyped(Self, Application.GTKVersion_2_0_5_Up, [lcText, lcText, lcPointer]); ActionsListView.RulesHint := True; Column := ActionsListView.Columns.Add; Column.Caption := LANGActionName; Column.AddAttribute('text', 0); if Application.GTKVersion_2_0_5_Up then Column.SortID := 0; Column.Resizable := True; Column.FixedWidth := 180; Column.SizingMode := smFixed; Column := ActionsListView.Columns.Add; Column.Caption := LANGCommand; Column.AddAttribute('text', 1); if Application.GTKVersion_2_0_5_Up then Column.SortID := 1; Column.Resizable := True; ActionsListViewScrolledWindow.AddControl(ActionsListView); ActionsListViewScrolledWindow.VertScrollBarPolicy := sbAutomatic; ActionsListViewScrolledWindow.HorizScrollBarPolicy := sbAutomatic; ActionsListViewScrolledWindow.ShadowType := stShadowIn; ActionsListViewScrolledWindow.SetSizeRequest(-1, 95); ActionsVBox := TGTKVBox.Create(Self); ActionsButtonBox := TGTKHButtonBox.Create(Self); ActionsButtonBox.Spacing := 2; ActionsButtonBox.Layout := blEnd; ActionsButtonBox2 := TGTKHButtonBox.Create(Self); ActionsButtonBox2.Layout := blStart; ActionsHBox := TGTKHBox.Create(Self); ActionsHBox2 := TGTKHBox.Create(Self); AddActionButton := TGTKButton.CreateFromStock(Self, 'gtk-add'); RemoveActionButton := TGTKButton.CreateFromStock(Self, 'gtk-remove'); SetDefaultActionButton := TGTKButton.Create(Self); SetDefaultActionButton.Caption := LANGSetDefaultActionButton_Caption; RunInTerminalCheckBox := TGTKCheckButton.CreateWithLabel(Self, LANGRunInTerminalCheckBox_Caption); RunInTerminalCheckBox.Enabled := False; AutodetectCheckBox := TGTKCheckButton.CreateWithLabel(Self, LANGAutodetectCheckBox_Caption); AutodetectCheckBox.Checked := True; ActionsButtonBox.AddControl(AddActionButton); ActionsButtonBox.AddControl(RemoveActionButton); ActionsButtonBox2.AddControl(SetDefaultActionButton); ActionsHBox.AddControlEx(ActionsButtonBox2, True, True, 5); ActionsHBox.AddControlEx(ActionsButtonBox, True, True, 0); ActionsVBox.AddControlEx(ActionsListViewScrolledWindow, True, True, 3); CommandEntry := TGTKEntry.Create(Self); CommandEntry.Tooltip := LANGCommandEntry_Tooltip; DescriptionEntry := TGTKEntry.Create(Self); BrowseButton := TGTKButton.Create(Self); BrowseButton.Caption := LANGBrowseButton_Caption; CommandLabel := TGTKLabel.Create(Self); CommandLabel.Caption := LANGCommandLabel_Caption; CommandLabel.XAlign := 0; CommandLabel.FocusControl := CommandEntry; CommandLabel.UseUnderline := True; DescriptionLabel := TGTKLabel.Create(Self); DescriptionLabel.Caption := LANGDescriptionLabel_Caption; DescriptionLabel.XAlign := 0; DescriptionLabel.FocusControl := DescriptionEntry; DescriptionLabel.UseUnderline := True; Table := TGTKTable.Create(Self); Table.SetRowColCount(4, 2); Table.Homogeneous := False; Table.RowSpacing := 1; Table.AddControl(0, 0, 1, 1, DescriptionLabel, 0, 0); Table.AddControl(1, 0, 3, 1, DescriptionEntry, 0, 0); Table.AddControl(0, 1, 1, 1, CommandLabel, 0, 0); Table.AddControl(1, 1, 3, 1, CommandEntry, 0, 0); ActionsHBox2.Homogeneous := False; ActionsHBox2.AddControlEx(AutodetectCheckBox, True, True, 5); ActionsHBox2.AddControlEx(RunInTerminalCheckBox, True, True, 5); ActionsHBox2.AddControlEx(BrowseButton, False, False, 0); ActionsVBox.AddControlEx(Table, False, False, 1); ActionsVBox.AddControlEx(ActionsHBox2, False, False, 0); l := TGTKLabel.Create(Self); l.SetSizeRequest(0, 4); ActionsVBox.AddControlEx(l, False, False, 0); ActionsVBox.AddControlEx(ActionsHBox, False, False, 0); ActionsVBox.BorderWidth := 8; AssocDescriptionLabel := TGTKLabel.Create(Self); AssocDescriptionLabel.Caption := LANGDescriptionLabel_Caption; AssocDescriptionEntry := TGTKEntry.Create(Self); AssocDescriptionLabel.FocusControl := AssocDescriptionEntry; AssocDescriptionLabel.UseUnderline := True; AssocDescriptionHBox := TGTKHBox.Create(Self); AssocDescriptionHBox.Homogeneous := False; AssocDescriptionHBox.AddControlEx(AssocDescriptionLabel, False, False, 10); AssocDescriptionHBox.AddControlEx(AssocDescriptionEntry, True, True, 10); FNameExtListViewScrolledWindow := TGTKScrolledWindow.Create(Self); FNameExtListViewScrolledWindow.HorizScrollBarPolicy := sbAutomatic; FNameExtListViewScrolledWindow.VertScrollBarPolicy := sbAutomatic; FNameExtListViewScrolledWindow.ShadowType := stShadowIn; FNameExtListView := TGTKListView.CreateTyped(Self, False, [lcText]); FNameExtListView.ShowHeaders := False; Column := FNameExtListView.Columns.Add; Column.AddAttribute('text', 0); FNameExtListViewScrolledWindow.AddControl(FNameExtListView); FNameExtVBox2 := TGTKVBox.Create(Self); FNameExtVBox2.AddControlEx(FNameExtListViewScrolledWindow, True, True, 4); FNameExtHBox := TGTKHBox.Create(Self); FNameExtVBox := TGTKVBox.Create(Self); FNameExtLabel := TGTKLabel.Create(Self); FNameExtLabel.Caption := LANGFNameExtLabel_Caption; AddExtButton := TGTKButton.CreateFromStock(Self, 'gtk-add'); RemoveExtButton := TGTKButton.CreateFromStock(Self, 'gtk-remove'); FNameExtEntry := TGTKEntry.Create(Self); FNameExtEntry.SetSizeRequest(0, -1); FNameExtLabel.FocusControl := FNameExtEntry; FNameExtLabel.UseUnderline := True; FNameExtHBox.AddControlEx(FNameExtVBox, True, True, 5); FNameExtHBox.AddControlEx(FNameExtVBox2, True, True, 10); FNameExtHBox2 := TGTKHBox.Create(Self); FNameExtHBox2.Homogeneous := False; FNameExtHBox2.AddControlEx(FNameExtLabel, False, False, 4); FNameExtHBox2.AddControlEx(FNameExtEntry, True, True, 1); FNameExtHBox2.BorderWidth := 2; FNameExtButtonBox := TGTKHButtonBox.Create(Self); FNameExtButtonBox.Layout := blEnd; FNameExtButtonBox.AddControl(AddExtButton); FNameExtButtonBox.AddControl(RemoveExtButton); FNameExtButtonBox.BorderWidth := 3; FNameExtVBox.AddControlEx(FNameExtHBox2, False, False, 2); FNameExtVBox.AddControlEx(FNameExtButtonBox, False, False, 2); FNameExtVBox.AddControlEx(TGTKHSeparator.Create(Self), False, False, 2); ColorHBox := TGTKHBox.Create(Self); ColorHBox.Homogeneous := False; ColorHBox.BorderWidth := 2; ColorLabel := TGTKLabel.Create(Self); ColorLabel.Caption := LANGColor; ColorLabel.UseUnderline := True; ColorButton := TGnomeColorButton.Create(Self); ColorButton.SetSizeRequest(40, -1); ColorButton.OnColorChanged := ColorButtonColorChanged; ColorLabel.FocusControl := ColorButton; DefaultColorCheckBox := TGTKCheckButton.CreateWithLabel(Self, LANGDefaultColor); DefaultColorCheckBox.OnToggled := DefaultColorCheckBoxToggled; ColorHBox.AddControlEx(ColorLabel, False, False, 4); ColorHBox.AddControlEx(ColorButton, False, False, 5); ColorHBox.AddControlEx(DefaultColorCheckBox, False, False, 5); FNameExtVBox.AddControlEx(ColorHBox, False, False, 2); FNameExtVBox.AddControlEx(TGTKLabel.Create(Self), True, True, 0); IconLabel := TGTKLabel.Create(Self); IconLabel.Caption := LANGIcon; IconLabel.UseUnderline := True; IconEntry := TGTKEntry.Create(Self); IconEntry.OnChanged := IconEntryChanged; IconLabel.FocusControl := IconEntry; BrowseIconButton := TGTKButton.Create(Self); BrowseIconButton.Caption := LANGBrowseButton_Caption; BrowseIconButton.OnClick := BrowseIconButtonClick; Icon := TGTKImage.Create(Self); Icon.SetSizeRequest(24, 24); IconFrame := TGTKFrame.CreateWithoutLabel(Self); IconFrame.ShadowType := stEtchedIn; IconFrame.AddControl(Icon); if FUseGnomeIconEntry then begin GnomeIconButton := TGnomeIconEntry.Create(Self); GnomeIconButton.Filename := ''; GnomeIconButton.OnIconChanged := GnomeIconButtonIconChanged; end; Table2 := TGTKTable.Create(Self); Table2.SetRowColCount(8, 3); Table2.AddControl(0, 1, 1, 1, IconLabel, 10, 0); if FUseGnomeIconEntry then Table2.AddControl(1, 0, 1, 3, GnomeIconButton, 0, 0); Table2.AddControl(2, 1, 1, 1, IconFrame, 10, 0); Table2.AddControl(3, 1, 4, 1, IconEntry, 0, 0); Table2.AddControl(7, 1, 1, 1, BrowseIconButton, 10, 0); if FUseGnomeIconEntry then begin Table2.AddControl(2, 0, 6, 1, TGTKLabel.Create(Self), 0, 0); Table2.AddControl(2, 2, 6, 1, TGTKLabel.Create(Self), 0, 0); end; FNameExtVBox3 := TGTKVBox.Create(Self); FNameExtVBox3.BorderWidth := 10; FNameExtVBox3.AddControlEx(AssocDescriptionHBox, False, False, 5); FNameExtVBox3.AddControlEx(TGTKHSeparator.Create(Self), False, False, 3); FNameExtVBox3.AddControlEx(Table2, False, False, 1); FNameExtVBox3.AddControlEx(TGTKHSeparator.Create(Self), False, False, 3); FNameExtVBox3.AddControlEx(FNameExtHBox, True, True, 5); Notebook.AppendPage(FNameExtVBox3, LANGNotebookPageExtensions); Notebook.AppendPage(ActionsVBox, LANGNotebookPageActions); OnKeyDown := FormKeyDown; OnDestroy := FormDestroy; AddFiletypeButton.OnClick := AddFiletypeButtonClick; RemoveFiletypeButton.OnClick := RemoveFiletypeButtonClick; ListView.OnSelectionChanged := ListViewSelectionChanged; AddExtButton.OnClick := AddExtButtonClick; RemoveExtButton.OnClick := RemoveExtButtonClick; FNameExtEntry.OnKeyDown := FNameExtEntryKeyDown; FNameExtListView.OnSelectionChanged := FNameExtListViewSelectionChanged; AssocDescriptionEntry.OnChanged := AssocDescriptionEntryChanged; ActionsListView.OnSelectionChanged := ActionsListViewSelectionChanged; AddActionButton.OnClick := AddActionButtonClick; RemoveActionButton.OnClick := RemoveActionButtonClick; DescriptionEntry.OnChanged := DescriptionEntryChanged; CommandEntry.OnChanged := CommandEntryChanged; RunInTerminalCheckBox.OnToggled := RunInTerminalCheckBoxToggled; AutodetectCheckBox.OnToggled := AutodetectCheckBoxToggled; SetDefaultActionButton.OnClick := SetDefaultActionButtonClick; BrowseButton.OnClick := BrowseButtonClick; ListView.CellDataFunc := ListViewCellDataFunc; ActionsListView.CellDataFunc := ActionsListViewCellDataFunc; ListViewSelectionChanged(Self); ListView.SetFocus; end; procedure TFFileTypeSettings.FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); begin // if Key = GDK_ESCAPE then ModalResult := mbCancel; end; procedure TFFileTypeSettings.FormDestroy(Sender: TObject); var i: integer; begin if Assigned(IntAssocList) then begin if IntAssocList.Count > 0 then for i := 0 to IntAssocList.Count - 1 do if Assigned(IntAssocList[i]) then TFileAssoc(IntAssocList[i]).Free; IntAssocList.Clear; IntAssocList.Free; end; end; (********************************************************************************************************************************) procedure TFFileTypeSettings.AssignAssocList(List: TList); var i, j: integer; Item: TFileAssoc; Action: TAssocAction; begin IntAssocList := TList.Create; if List.Count > 0 then for i := 0 to List.Count - 1 do begin Item := TFileAssoc.Create; with Item do begin CopyArray(TFileAssoc(List[i]).Extensions, Extensions); FileTypeName := TFileAssoc(List[i]).FileTypeName; DefaultAction := TFileAssoc(List[i]).DefaultAction; FileTypeIcon := TFileAssoc(List[i]).FileTypeIcon; ColorString := TFileAssoc(List[i]).ColorString; Pixmap := TGDKPixbuf.Create(Self); Pixmap.FPixbuf := TFileAssoc(List[i]).Pixmap.Copy; if TFileAssoc(List[i]).ActionList.Count > 0 then for j := 0 to TFileAssoc(List[i]).ActionList.Count - 1 do begin Action := TAssocAction.Create; with Action do begin ActionName := TAssocAction(TFileAssoc(List[i]).ActionList[j]).ActionName; ActionCommand := TAssocAction(TFileAssoc(List[i]).ActionList[j]).ActionCommand; RunInTerminal := TAssocAction(TFileAssoc(List[i]).ActionList[j]).RunInTerminal; AutodetectGUI := TAssocAction(TFileAssoc(List[i]).ActionList[j]).AutodetectGUI; end; Item.ActionList.Add(Action) end; end; IntAssocList.Add(Item); end; end; procedure TFFileTypeSettings.FillList; procedure InternalAddItem(index: integer); var ListItem: TGTKListItem; begin with TFileAssoc(IntAssocList[index]) do begin ListItem := ListView.Items.Add; if FileTypeName = ConstFTAMetaDirectory then ListItem.SetValue(0, LANGFileTypeDirectory) else if FileTypeName = ConstFTAMetaFile then ListItem.SetValue(0, LANGFileTypeFile) else ListItem.SetValue(0, MakeString(';', Extensions)); if (FileTypeName = ConstFTAMetaDirectory) or (FileTypeName = ConstFTAMetaFile) then ListItem.SetValue(1, LANGFileTypeMetafile) else ListItem.SetValue(1, FileTypeName); ListItem.SetValue(2, IntAssocList[index]); ListItem.SetValue(3, Pixmap.FPixbuf); end; end; var i: integer; begin if Assigned(IntAssocList) and (IntAssocList.Count > 0) then begin // Directory metaitem first for i := 0 to IntAssocList.Count - 1 do if TFileAssoc(IntAssocList[i]).FileTypeName = ConstFTAMetaDirectory then begin InternalAddItem(i); Break; end; // Then the file metaitem for i := 0 to IntAssocList.Count - 1 do if TFileAssoc(IntAssocList[i]).FileTypeName = ConstFTAMetaFile then begin InternalAddItem(i); Break; end; // ... and the rest for i := 0 to IntAssocList.Count - 1 do if (TFileAssoc(IntAssocList[i]).FileTypeName <> ConstFTAMetaDirectory) and (TFileAssoc(IntAssocList[i]).FileTypeName <> ConstFTAMetaFile) then InternalAddItem(i); end; end; procedure TFFileTypeSettings.CleanItems; var i: integer; begin try if IntAssocList.Count > 0 then for i := IntAssocList.Count - 1 downto 0 do with TFileAssoc(IntAssocList[i]) do begin { if Length(Trim(Extensions)) = 0 then begin TFileAssoc(IntAssocList[i]).Free; IntAssocList.Delete(i); Continue; end; if ActionList.Count > 0 then for j := ActionList.Count - 1 downto 0 do if Length(Trim(TAssocAction(ActionList[j]).ActionCommand)) = 0 then begin TAssocAction(ActionList[j]).Free; ActionList.Delete(j); if DefaultAction = j then DefaultAction := 0; if DefaultAction > j then Dec(DefaultAction); end; } if DefaultAction > ActionList.Count - 1 then DefaultAction := 0; end; except end; end; (********************************************************************************************************************************) procedure TFFileTypeSettings.AddFiletypeButtonClick(Sender: TObject); var Item: TFileAssoc; ListItem: TGTKListItem; begin Notebook.PageIndex := 0; Item := TFileAssoc.Create; IntAssocList.Add(Item); ListItem := ListView.Items.Add; ListItem.SetValue(2, Item); ListItem.Selected := True; ListItem.SetCursor(0, False, not Application.GTKVersion_2_2_0_Up, 0.5, 0); ListViewSelectionChanged(Self); AssocDescriptionEntry.SetFocus; end; procedure TFFileTypeSettings.RemoveFiletypeButtonClick(Sender: TObject); var Item: TFileAssoc; begin if Assigned(ListView.Selected) and Assigned(ListView.Selected.AsPointer(2)) then begin Item := ListView.Selected.AsPointer(2); Item.Free; IntAssocList.Remove(Item); ListView.Items.Delete(ListView.Selected.Index); end; end; procedure TFFileTypeSettings.ListViewSelectionChanged(Sender: TObject); var b: boolean; Item: TFileAssoc; i: integer; ListItem: TGTKListItem; Color: TGDKColor; begin b := Assigned(ListView.Selected) and Assigned(ListView.Selected.AsPointer(2)); RemoveFiletypeButton.Enabled := b and (TFileAssoc(ListView.Selected.AsPointer(2)).FileTypeName <> ConstFTAMetaDirectory) and (TFileAssoc(ListView.Selected.AsPointer(2)).FileTypeName <> ConstFTAMetaFile); AssocDescriptionEntry.Enabled := RemoveFiletypeButton.Enabled; FNameExtEntry.Enabled := RemoveFiletypeButton.Enabled; FNameExtListView.Enabled := RemoveFiletypeButton.Enabled; AddExtButton.Enabled := RemoveFiletypeButton.Enabled; RemoveExtButton.Enabled := RemoveFiletypeButton.Enabled; FNameExtLabel.Enabled := RemoveFiletypeButton.Enabled; ColorButton.Enabled := RemoveFiletypeButton.Enabled; DefaultColorCheckBox.Enabled := RemoveFiletypeButton.Enabled; ColorLabel.Enabled := RemoveFiletypeButton.Enabled; FNameExtVBox3.Enabled := b; ActionsVBox.Enabled := b; if not b then begin // Visually clean all the fields DescriptionEntry.Text := ''; CommandEntry.Text := ''; AssocDescriptionEntry.Text := ''; FNameExtListView.Items.Clear; FNameExtEntry.Text := ''; IconEntry.Text := ''; ActionsListView.Items.Clear; ColorButton.SetDefaultColor; ColorButton.Color := PGdkColorToGDKColor(GetDefaultBackgroundColor(0)); DefaultColorCheckBox.Checked := True; Exit; end; Item := ListView.Selected.AsPointer(2); FNameExtListView.Items.Clear; if Length(Item.Extensions) > 0 then for i := 0 to Length(Item.Extensions) - 1 do FNameExtListView.Items.Add.SetValue(0, Item.Extensions[i]); IconEntry.Text := Item.FileTypeIcon; IconEntryChanged(Self); if (TFileAssoc(ListView.Selected.AsPointer(2)).FileTypeName = ConstFTAMetaDirectory) or (TFileAssoc(ListView.Selected.AsPointer(2)).FileTypeName = ConstFTAMetaFile) then AssocDescriptionEntry.Text := ListView.Selected.AsString(0) else AssocDescriptionEntry.Text := ListView.Selected.AsString(1); DefaultColorCheckBox.Checked := not StringToGDKColor(Item.ColorString, Color); if DefaultColorCheckBox.Checked then ColorButton.SetDefaultColor else begin ColorButton.UnsetDefaultColor; ColorButton.Color := Color; end; // Actions ActionsListView.Items.Clear; if Item.ActionList.Count > 0 then for i := 0 to Item.ActionList.Count - 1 do with TAssocAction(Item.ActionList[i]) do begin ListItem := ActionsListView.Items.Add; if Item.DefaultAction = i then begin ListItem.SetValue(0, ActionName + LANGDefault); ListItem.SetValue(1, ActionCommand); end else begin ListItem.SetValue(0, ActionName); ListItem.SetValue(1, ActionCommand); end; ListItem.SetValue(2, Item.ActionList[i]); end; if ActionsListView.Items.Count > 0 then ActionsListView.Items[0].Selected := True; ActionsListViewSelectionChanged(Sender); end; procedure TFFileTypeSettings.AddExtButtonClick(Sender: TObject); var i: integer; sx: string; Assoc: TFileAssoc; begin if Length(Trim(FNameExtEntry.Text)) = 0 then Exit; if FNameExtListView.Items.Count > 0 then for i := 0 to FNameExtListView.Items.Count - 1 do if WideUpperCase(FNameExtListView.Items[i].AsString(0)) = WideUpperCase(Trim(FNameExtEntry.Text)) then Exit; sx := WideLowerCase(Trim(FNameExtEntry.Text)); if sx[1] = '.' then Delete(sx, 1, 1); FNameExtListView.Items.Add.SetValue(0, sx); Assoc := TFileAssoc(ListView.Selected.AsPointer(2)); SetLength(Assoc.Extensions, Length(Assoc.Extensions) + 1); Assoc.Extensions[Length(Assoc.Extensions) - 1] := sx; ListView.Selected.SetValue(0, MakeString(';', Assoc.Extensions)); FNameExtEntry.Text := ''; end; procedure TFFileTypeSettings.RemoveExtButtonClick(Sender: TObject); var i: integer; Assoc: TFileAssoc; begin try if (FNameExtListView.Items.Count = 0) or (not Assigned(FNameExtListView.Selected)) or (not Assigned(ListView.Selected)) or (not Assigned(ListView.Selected.AsPointer(2))) then Exit; Assoc := TFileAssoc(ListView.Selected.AsPointer(2)); if Length(Assoc.Extensions) > 0 then for i := Length(Assoc.Extensions) - 1 downto 0 do if Assoc.Extensions[i] = FNameExtListView.Selected.AsString(0) then DeleteFromArray(i, Assoc.Extensions); ListView.Selected.SetValue(0, MakeString(';', Assoc.Extensions)); FNameExtListView.Items.Delete(FNameExtListView.Selected.Index); except end; end; procedure TFFileTypeSettings.FNameExtEntryKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); begin if (Key = GDK_RETURN) or (Key = GDK_KP_ENTER) then AddExtButtonClick(Sender); end; procedure TFFileTypeSettings.FNameExtListViewSelectionChanged(Sender: TObject); begin RemoveExtButton.Enabled := (FNameExtListView.Items.Count > 0) and Assigned(FNameExtListView.Selected); end; procedure TFFileTypeSettings.AssocDescriptionEntryChanged(Sender: TObject); begin if Assigned(ListView.Selected) and Assigned(ListView.Selected.AsPointer(2)) and (TFileAssoc(ListView.Selected.AsPointer(2)).FileTypeName <> ConstFTAMetaDirectory) and (TFileAssoc(ListView.Selected.AsPointer(2)).FileTypeName <> ConstFTAMetaFile) then begin TFileAssoc(ListView.Selected.AsPointer(2)).FileTypeName := AssocDescriptionEntry.Text; ListView.Selected.SetValue(1, AssocDescriptionEntry.Text); end; end; procedure TFFileTypeSettings.ActionsListViewSelectionChanged(Sender: TObject); var b: boolean; Action: TAssocAction; begin b := (ActionsListView.Items.Count > 0) and Assigned(ActionsListView.Selected) and Assigned(ActionsListView.Selected.AsPointer(2)); RemoveActionButton.Enabled := b; SetDefaultActionButton.Enabled := b; Table.Enabled := b; BrowseButton.Enabled := b; RunInTerminalCheckBox.Enabled := b; AutodetectCheckBox.Enabled := b; if not b then begin // Visually clean all the fields DescriptionEntry.Text := ''; CommandEntry.Text := ''; Exit; end; Action := ActionsListView.Selected.AsPointer(2); DescriptionEntry.Text := Action.ActionName; CommandEntry.Text := Action.ActionCommand; RunInTerminalCheckBox.Checked := Action.RunInTerminal; AutodetectCheckBox.Checked := Action.AutodetectGUI; RunInTerminalCheckBox.Enabled := not AutodetectCheckBox.Checked; end; procedure TFFileTypeSettings.AddActionButtonClick(Sender: TObject); var Action: TAssocAction; ListItem: TGTKListItem; begin if (not Assigned(ListView.Selected)) or (not Assigned(ListView.Selected.AsPointer(2))) then Exit; Action := TAssocAction.Create; TFileAssoc(ListView.Selected.AsPointer(2)).ActionList.Add(Action); ListItem := ActionsListView.Items.Add; ListItem.SetValue(2, Action); ListItem.Selected := True; ActionsListViewSelectionChanged(Self); DescriptionEntry.SetFocus; end; procedure TFFileTypeSettings.RemoveActionButtonClick(Sender: TObject); var Action: TAssocAction; Item: TFileAssoc; begin try if (ActionsListView.Items.Count = 0) or (not Assigned(ActionsListView.Selected)) or (not Assigned(ListView.Selected)) or (not Assigned(ListView.Selected.AsPointer(2))) then Exit; Item := ListView.Selected.AsPointer(2); Action := ActionsListView.Selected.AsPointer(2); if (Item.DefaultAction > Item.ActionList.Count - 1) or (Item.ActionList[Item.DefaultAction] = Action) then Item.DefaultAction := 0; if Item.DefaultAction > ActionsListView.Selected.Index then Dec(Item.DefaultAction); Action.Free; Item.ActionList.Remove(Action); ActionsListView.Items.Delete(ActionsListView.Selected.Index); ListViewSelectionChanged(Sender); except end; end; procedure TFFileTypeSettings.DescriptionEntryChanged(Sender: TObject); var Item: TFileAssoc; begin if Assigned(ListView.Selected) and Assigned(ListView.Selected.AsPointer(2)) and Assigned(ActionsListView.Selected) and Assigned(ActionsListView.Selected.AsPointer(2)) then begin TAssocAction(ActionsListView.Selected.AsPointer(2)).ActionName := DescriptionEntry.Text; Item := ListView.Selected.AsPointer(2); if (Item.ActionList.Count - 1 >= Item.DefaultAction) and (ActionsListView.Selected.AsPointer(2) = Item.ActionList[Item.DefaultAction]) then ActionsListView.Selected.SetValue(0, DescriptionEntry.Text + LANGDefault) else ActionsListView.Selected.SetValue(0, DescriptionEntry.Text); end; end; procedure TFFileTypeSettings.CommandEntryChanged(Sender: TObject); begin if Assigned(ListView.Selected) and Assigned(ListView.Selected.AsPointer(2)) and Assigned(ActionsListView.Selected) and Assigned(ActionsListView.Selected.AsPointer(2)) then begin TAssocAction(ActionsListView.Selected.AsPointer(2)).ActionCommand := CommandEntry.Text; ActionsListView.Selected.SetValue(1, CommandEntry.Text); end; end; procedure TFFileTypeSettings.RunInTerminalCheckBoxToggled(Sender: TObject); begin if Assigned(ListView.Selected) and Assigned(ListView.Selected.AsPointer(2)) and Assigned(ActionsListView.Selected) and Assigned(ActionsListView.Selected.AsPointer(2)) then TAssocAction(ActionsListView.Selected.AsPointer(2)).RunInTerminal := RunInTerminalCheckBox.Checked; end; procedure TFFileTypeSettings.AutodetectCheckBoxToggled(Sender: TObject); begin if Assigned(ListView.Selected) and Assigned(ListView.Selected.AsPointer(2)) and Assigned(ActionsListView.Selected) and Assigned(ActionsListView.Selected.AsPointer(2)) then begin TAssocAction(ActionsListView.Selected.AsPointer(2)).AutodetectGUI := AutodetectCheckBox.Checked; RunInTerminalCheckBox.Enabled := not AutodetectCheckBox.Checked; end; end; procedure TFFileTypeSettings.SetDefaultActionButtonClick(Sender: TObject); var SelIdx: integer; begin if (ActionsListView.Items.Count = 0) or (not Assigned(ActionsListView.Selected)) or (not Assigned(ListView.Selected)) or (not Assigned(ListView.Selected.AsPointer(2))) then Exit; SelIdx := ActionsListView.Selected.Index; TFileAssoc(ListView.Selected.AsPointer(2)).DefaultAction := SelIdx; ListViewSelectionChanged(Sender); ActionsListView.Items[SelIdx].Selected := True; end; procedure TFFileTypeSettings.BrowseButtonClick(Sender: TObject); var Dialog: TGTKFileSelectionDialog; begin if (ActionsListView.Items.Count = 0) or (not Assigned(ActionsListView.Selected)) or (not Assigned(ListView.Selected)) or (not Assigned(ListView.Selected.AsPointer(2))) then Exit; Dialog := TGTKFileSelectionDialog.Create(Self); try Dialog.ShowFileOpButtons := False; Dialog.FileName := AppPath; if Byte(Dialog.Run) = 251 then CommandEntry.Text := Dialog.FileName; AppPath := IncludeTrailingPathDelimiter(ExtractFilePath(Dialog.FileName)); finally Dialog.Free; end; end; (********************************************************************************************************************************) procedure TFFileTypeSettings.IconEntryChanged(Sender: TObject); var Pixmap, DefIcon: TGDKPixbuf; begin if Assigned(ListView.Selected) and Assigned(ListView.Selected.AsPointer(2)) then begin if TFileAssoc(ListView.Selected.AsPointer(2)).FileTypeName = ConstFTAMetaDirectory then DefIcon := FolderIconCached else DefIcon := FileIconCached; TFileAssoc(ListView.Selected.AsPointer(2)).FileTypeIcon := IconEntry.Text; if not FileExists(IconEntry.Text) then Icon.CopyFromPixbuf(DefIcon) else begin Pixmap := TGDKPixbuf.Create(Self); Pixmap.LoadFromFile(IconEntry.Text); if Pixmap.FPixbuf <> nil then begin Pixmap.ScaleSimple(ConfRowHeightReal, ConfRowHeightReal); Icon.SetFromPixbuf(Pixmap); end else Icon.CopyFromPixbuf(DefIcon); Pixmap.FPixbuf := nil; Pixmap.Free; end; ListView.Selected.SetValue(3, Icon.GetPixbuf); if FUseGnomeIconEntry then if FileExists(IconEntry.Text) then GnomeIconButton.Filename := IconEntry.Text else GnomeIconButton.Filename := ''; end; end; procedure TFFileTypeSettings.BrowseIconButtonClick(Sender: TObject); var Dialog: TGTKFileSelectionDialog; begin if (not Assigned(ListView.Selected)) or (not Assigned(ListView.Selected.AsPointer(2))) then Exit; Dialog := TGTKFileSelectionDialog.CreateWithTitle(Self, LANGBrowseForIcon); try Dialog.ShowFileOpButtons := False; if FileExists(IconEntry.Text) then Dialog.FileName := IconEntry.Text else Dialog.FileName := IconPath; if Byte(Dialog.Run) = 251 then IconEntry.Text := Dialog.FileName; IconPath := IncludeTrailingPathDelimiter(ExtractFilePath(Dialog.FileName)); finally Dialog.Free; end; end; procedure TFFileTypeSettings.ColorButtonColorChanged(Sender: TObject); begin if Assigned(ListView.Selected) and Assigned(ListView.Selected.AsPointer(2)) then TFileAssoc(ListView.Selected.AsPointer(2)).ColorString := GDKColorToString(ColorButton.Color); end; procedure TFFileTypeSettings.DefaultColorCheckBoxToggled(Sender: TObject); begin if DefaultColorCheckBox.Checked then ColorButton.SetDefaultColor else ColorButton.UnsetDefaultColor; if DefaultColorCheckBox.Checked and Assigned(ListView.Selected) and Assigned(ListView.Selected.AsPointer(2)) then TFileAssoc(ListView.Selected.AsPointer(2)).ColorString := ''; end; (********************************************************************************************************************************) (********************************************************************************************************************************) procedure TFFileTypeSettings.ListViewCellDataFunc(Sender: TObject; tree_view: PGtkTreeView; tree_column : PGtkTreeViewColumn; cell : PGtkCellRenderer; tree_model : PGtkTreeModel; iter : PGtkTreeIter); var ColumnID: integer; ImageCol: boolean; Data: TFileAssoc; s: Pointer; begin if not Application.GTKVersion_2_0_5_Up then Exit; ColumnID := gtk_tree_view_column_get_sort_column_id(tree_column); ImageCol := False; if ColumnID = 0 then ImageCol := GTK_IS_CELL_RENDERER_PIXBUF(cell); if ImageCol then Exit; Data := nil; gtk_tree_model_get(tree_model, iter, 2, @Data, -1); gtk_tree_model_get(tree_model, iter, ColumnID, @s, -1); if Assigned(Data) and (Data is TFileAssoc) and ((Data.FileTypeName = ConstFTAMetaDirectory) or (Data.FileTypeName = ConstFTAMetaFile)) then case ColumnID of 0: g_object_set(cell, 'markup', g_strconcat('', s, '', nil), nil); 1: g_object_set(cell, 'markup', g_strconcat('', s, '', nil), nil); end else g_object_set(cell, 'markup', s, nil); end; procedure TFFileTypeSettings.ActionsListViewCellDataFunc(Sender: TObject; tree_view: PGtkTreeView; tree_column : PGtkTreeViewColumn; cell : PGtkCellRenderer; tree_model : PGtkTreeModel; iter : PGtkTreeIter); var ColumnID: integer; ImageCol: boolean; Data: TAssocAction; s: Pointer; Item: TFileAssoc; begin if not Application.GTKVersion_2_0_5_Up then Exit; ColumnID := gtk_tree_view_column_get_sort_column_id(tree_column); ImageCol := False; if ColumnID = 0 then ImageCol := GTK_IS_CELL_RENDERER_PIXBUF(cell); if ImageCol then Exit; Item := ListView.Selected.AsPointer(2); if Item = nil then Exit; Data := nil; gtk_tree_model_get(tree_model, iter, 2, @Data, -1); gtk_tree_model_get(tree_model, iter, ColumnID, @s, -1); if Assigned(Data) and (Data is TAssocAction) and (Item.ActionList.IndexOf(Data) = Item.DefaultAction) then g_object_set(cell, 'markup', g_strconcat('', s, '', nil), nil) else g_object_set(cell, 'markup', s, nil); end; (********************************************************************************************************************************) procedure TFFileTypeSettings.GnomeIconButtonIconChanged(Sender: TObject); begin IconEntry.Text := GnomeIconButton.Filename; end; end. tuxcmd-0.6.70+dfsg/UGlibThreads.pas0000644000175000017500000001110211300022643016051 0ustar salvisalvi(* Tux Commander - UGlibThreads - Threading support through the GLIB library Copyright (C) 2007-2008 Tomas Bzatek Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UGlibThreads; interface uses glib2; type TGlibThreadMethod = procedure of object; TGlibThread = class private FHandle: PGThread; FCreateSuspended: Boolean; FTerminated: Boolean; FSuspended: Boolean; FReturnValue: Integer; FFreeOnTerminate: Boolean; // FFinished: Boolean; // procedure SetSuspended(Value: Boolean); protected // procedure DoTerminate; virtual; procedure Execute; virtual; abstract; property Terminated: Boolean read FTerminated; public constructor Create(CreateSuspended: Boolean); destructor Destroy; override; // procedure AfterConstruction; override; procedure Resume; { procedure Suspend; procedure Terminate; } function WaitFor: LongWord; property FreeOnTerminate: Boolean read FFreeOnTerminate write FFreeOnTerminate; { property Suspended: Boolean read FSuspended write SetSuspended; } property ReturnValue: Integer read FReturnValue write FReturnValue; end; TGlibCriticalSection = class private FGMutex: TGStaticMutex; public constructor Create; destructor Destroy;override; procedure Enter; procedure Leave; procedure Acquire; procedure Release; end; implementation uses Classes, SysUtils, UCoreUtils; function xg_thread_func(data: gpointer): gpointer; cdecl; var Thread: TGlibThread; FreeThread: Boolean; begin DebugMsg(['(II) TGlibThread.g_thread_func']); Result := nil; try Thread := TGlibThread(data); if Assigned(Thread) and (Thread is TGlibThread) then begin Thread.Execute; Result := gpointer(Thread.FReturnValue); FreeThread := Thread.FreeOnTerminate; if FreeThread then Thread.Free; end else DebugMsg(['(EE) TGlibThread.g_thread_func: wrong data argument']); except on E: Exception do DebugMsg(['(EE) TGlibThread.g_thread_func: Exception ', E.ClassName, ': ', E.Message]); end; end; constructor TGlibThread.Create(CreateSuspended: Boolean); begin inherited Create; DebugMsg(['(II) TGlibThread.Create']); FSuspended := CreateSuspended; FCreateSuspended := CreateSuspended; FHandle := nil; FReturnValue := 0; FFreeOnTerminate := False; if not CreateSuspended then Resume; end; destructor TGlibThread.Destroy; begin DebugMsg(['(II) TGlibThread.Destroy']); { if (FHandle <> nil) and not FFinished then begin Terminate; if FCreateSuspended then Resume; WaitFor; end; } inherited Destroy; end; procedure TGlibThread.Resume; var err: PGError; begin DebugMsg(['(II) TGlibThread.Resume']); err := nil; FHandle := g_thread_create(@xg_thread_func, Self, True, @err); if FHandle = nil then begin DebugMsg(['(EE) TGlibThread.Resume: Error creating new thread: ', err.message]); g_error_free(err); end; end; function TGlibThread.WaitFor: LongWord; begin if FHandle <> nil then g_thread_join(FHandle); Result := FReturnValue; end; (**********************************************************************************************************************) constructor TGlibCriticalSection.Create; begin inherited Create; FGMutex := nG_STATIC_MUTEX_INIT; end; destructor TGlibCriticalSection.Destroy; begin inherited Destroy; end; procedure TGlibCriticalSection.Enter; begin Acquire; end; procedure TGlibCriticalSection.Leave; begin Release; end; procedure TGlibCriticalSection.Acquire; begin g_static_mutex_lock(@FGMutex); end; procedure TGlibCriticalSection.Release; begin g_static_mutex_unlock(@FGMutex); end; (**********************************************************************************************************************) initialization if not g_thread_supported then g_thread_init(nil); finalization end. tuxcmd-0.6.70+dfsg/tuxcmd.conf0000644000175000017500000000020711300022643015206 0ustar salvisalvi-$A4 -$B- -$C+ -$D+ -$E- -$F- -$G+ -$H+ -$I+ -$J- -$K- -$L+ -$M+ -$N+ -$O- -$P+ -$Q+ -$R+ -$S- -$T- -$U- -$V+ -$W- -$X+ -cg -H+ -W+ -M tuxcmd-0.6.70+dfsg/data/0000755000175000017500000000000011300022643013745 5ustar salvisalvituxcmd-0.6.70+dfsg/data/icons/0000755000175000017500000000000011300022643015060 5ustar salvisalvituxcmd-0.6.70+dfsg/data/icons/48x48/0000755000175000017500000000000011300022643015657 5ustar salvisalvituxcmd-0.6.70+dfsg/data/icons/48x48/tuxcmd.png0000644000175000017500000000556411300022643017703 0ustar salvisalvi‰PNG  IHDR00Wù‡sBIT|dˆ pHYs11·í(RtEXtSoftwarewww.inkscape.org›î< ñIDAThÕZmlS×~î—}mÇÆÆŽIBB % ”6|ÓÒPØÚ‰Qõ“)m&±‰?[i³všºQµS§F·ªªªjJÇFiUA骪 )”–R‹€BHpâÇŽÛ×¾××÷žýð6v †À´Gº²¯Ï¹ç}ž{>Þ÷¼Ç!S‰æÖv€€ƒch'ÈŠ:À ÀÓÒT§N¥=êV4·¶Œ:vƒQÇ=kÔ±3yŽÑ› œÆjÔ,Mø…hÈ”„1AŽŠ²Fb—ƒùƒ`$v ¥©NøŸxíãŽF÷‚ͤ)]TnqT:ŒËГz6¦¨èråSýno ê FäÛž¨Ú3<òðòž3õ6£v×ÒJëüú»¬&ŠÊ]/,)„£“^½–ÉYàx·/p¬Ë×é J[_ßTsü¶hnm/*¶ð»kfšëÖ,°Û¸´·–bè¸<ŽÓ}~ xÄeÈJæPç&=§MeTÍœ½–M•ËŠŠÃ§=Þ3—ÇÚ‡übcKSÝð” xeïÙú" ÿ÷ÆÕeüU£®1jBÏPªš_OÒ4…9ÅF4Ôc~©9õ{HŒaw[_ï°_üÉ«OUß°7n(àÍýç6—Ù ¯>¶´ÔÁÐññâ°ïÛ~t ò"=*KLxtÙ,”ŠJðÉ1—»Ï#¼òëw¿ÓZtm¿÷®é›WÍ/´€ª|üõ%´ÆÔ.¾`uMžX9tâEéñŸè}¿yCåKy xsÿ¹ÍK+mÛ“ä1†w¿8‡®ñ)¦ž‰Jç4lùáÝ0$†ê‘Îÿ±.ïKõDN¯ì=[?¿Ô´ïÉå3pe,‚·>í€g,r;¹§`7ëðÜ«0ì|ôÍew§+ðh®9‘% ¹µ½hNqÁÑŸ¯­¨`h ‚Ãï÷œºcä“°›uøÝ¦E0ð,•གྷ½½=C¡×®NYž§ØÂïn\]VÁЕàíÏÎbxT€ªª·t)19¯úãÞþì,•€¡)4®.«(¶ð»¯å›Ñ/ï9S¿êîÂÏ×-,²À_uáЩ¼ÞêCTð!ô#8æÃ¨Ï IQX8¶âYà-NDMóÀh 7l¯a‘Ï4T¾úϰ÷ȹ‘GÒ›^ÙfÔîZ³Àn€¾á žtMzµÑK—1Ðþ\Öñx†áñ 8N£Áܪ{AÙ‚*(žð™ƒ']XUí@Y‘kØm]–&ËS=ðÚǪ+j]2×j€×÷œDGß(€¢HÐ@ A«¨˜EŽ@ð»q¶ýû”Q†aÀ²,¬V fÏ*Ïóp_Á… ½P%‹ä¼…+A9ïÍjrЍ*›Ž—7-|wÁøgûpS2vJ Øyàü׳ѽâÄÉ“p{|G$B(@($àfƒ>Š¢`³YÁq,"áüc¹—áB{1 k7‚ègä,ÿÍÓ‹Q[a!À®Ï/}þGsW¦4·¶øñŽKŸÿíO…7ÅrŠ`™nCá’- 6«¬z¶Ûïìnëëo¿4VÕÒT'°`Ô±ðóÖMëÐÕ}ïî? ##A \Á@7(B$fD²7!¤("¢ˆX,{hä ÿ¨¶+'@Šê³Ê:.y!Ddt•[½Ã¡ ö$pÏ&ãùN·ˆ°î.„ÀV ^¿úÀôvG4Íh”¦iô:Z§CËkAS4Ĩ¢D£2ücãPÕÉmÀ zî_µ ÅãRŽgT8yá V×:Qé0rF÷lšvfr3ò]ÇPFdIóˆü*̲Ý2ð/ôœkOkTE0$ ÊÞTéx%Å3À²,h††$JpO!¯^¹/¾ð<´¼¿øóøbVï:†°ºÖ –¡aÔ±3€nnm§yŽÑ'+õ ús:–(4ˆ–¬Gå= 7~"¢×à.õ»Ð{±#>?x­vÂú555€¨$bíâ™99ô úSõyŽÑ7·¶Ó4»ÙÀ¥Ö¯Ññˆªæ¼@"æ{P½êihµü¤„$!IDIš°\â½HÁ5E`(dÙ¿Î$8Ûi«1îC‘(Äè]þãDùòg0ÍlÎÅå¦à¸êñy …%ó‹³ìŠQ¡H|&8;hŽ¡Éìo\„ª’I]㊠¶šÇ ×ësÊ[€ëªWUK«ŠrÚõÇç†Å )àÚyM0Gò ¸˜à\ü84šÜ4ô»2Cê23´e×7¬¬¨~!`´št“^ö’ƒõá·å €çy”–”Àé,A‰ÃEUÂÂa„¡p6«5ãЍ¨Ÿ_ŒÃÿîÏøÝjŠïüB4$+ê Àí Jc^–¡•ósJ#j!æ-}ß|’rr&£­mÀúµ ¨(/5Qþå:¸¯ÒŽC'úR÷ŽA>ÞÛ În€gLSÊR Å/”·±!µ Wn#¸ððÖcÙ’ú[Z«>cDX ®Î·gÛÒT§¾w°7œ,¨(1cp$ÿlCŽÃ–¦§0×9u+“Õ¤!*’qdEÉÕ¶EY ·4Õ©4#±Ë±D"jEmé¤W¢ä5ÃbÀ~¶|JÉÇÒ°Oӥ쬨-OM#±Ë@bCŒÈt¹ƒT•Nã–Õ”‚ Ü`2k9+jJðཱིP=Û ú&Æødà°0è ¡i,«‰ èrå`Dþ M@ìÀ©‹~wUé´YF½µsì8yÞ³Á9%f<¼¬+kÐk¹ÛB:å%fE0&&ð©‹~w0;ÐÒT'üñ\„`E›ÖUãûÎ̽0¯añbãr¬Yè„t`ªñÓ‡ ÐbDy‰@<ì D]É´|Ê‘#òÎãݾ,­)Å=•Å©±gÔkñ—ßnÀ#ËçN‰ÓÊËâé‡jP_åÏd#òÎdyJÀ¶'ªöëòu&³Ê¿|r Q¡åh¼õÂzT8§X–ÏçÈÝ †AX”Ä3ØÇº|ég ¡„7(m=|Úã€ye6<ÙP…Ï­CU¹=£QN“ÉŽ»½s@£Ñ€€†žÛ9|Úãõ¥­éu²2s;œ?¸eÝœ†ž…ªªˆ©6÷á(ŠY–¡( Eªª7âI†aÀqxž‡ªÐ4…û_õúÕ†ykÓëg힇übãî¶¾Dj‘†,EAS&:>b “)0)"}ïœþ™N6ý;MÓ é«v䘎e ¨»Ûúz‡übc¤¡ôkÛ‡gê÷í$ xFCDQTr'¤Ô÷½Gû·}x¦>ל!xc_çæ¶Ïh²!%Q9vÛ‰+ŠJÂb4ußÖá}c_çæ‰xN(€‚Ÿžßž."SÈ gü¶‘ˆrFO·uxFw|z~ûõ8^WIôÄÞ£ýƒ±´†¯ø‚DŽ)SF\U „ÄÔ}LQÉÞ£ýƒ×{ó“@sâ/»{‚9ð{$ÑÝù"*Lj{$ñ[0"“w¾ìî™hÌ_{MÉ1kD”eXÍ7Þ«*AX”Á±4´š;tÌšŽÉt‹Ñ$)‚xÅk³óÀ<è¾ÿ·5¸ÿ·ö˜wúï6ÿ–YFFß~4IEND®B`‚tuxcmd-0.6.70+dfsg/data/icons/24x24/0000755000175000017500000000000011300022643015643 5ustar salvisalvituxcmd-0.6.70+dfsg/data/icons/24x24/tuxcmd.png0000644000175000017500000000252011300022643017654 0ustar salvisalvi‰PNG  IHDRàw=øsRGB®Îé pHYs˜˜6ÓGßtIMEØ -ˆ'«âIDATHÇ­–_LSWÇ¿÷ö–RKV„ µC"DÔ…l8&HÔ—%ê–¸'7÷°_–l†,{Y–ø¨îeÁd ËžÜp ¨Yºþ‚Úv´··½¥—–ööÞs{0TX•I¶or^NÎù|Ïï|sîïrD„­tîÊ]ÎQam«³Y»íe7H u>KO†âé™ §÷m ¢çŽË£¾ö›s‘«sþÄ#9©êDD:3HgÉIUŸó'Ýœ‹\½<êk‡ûgç®Üå;ܶó»+ÏÖ–VßñÉðK)¢),ËkgevV£Þ^Œ®J„W2‘©ùÒÔ|ì« §÷y› .ú\{êJ/w6Wõ,…Vñýä"äUu˨,±àƒî&4:Jày¿T>>Ûçò圻r—?zÐy­³¹ªçÇ[K¸9Âvôv«'ºáyÿåörïz%Âú‚·í|gsUÏ“>ܘYÆ¿pܦ©ëÞ 3ð~·«GRÔó¾ÌUðíµÅö#ûkG“)µúëao¯ˆ°ð4B~䨓`Âî–ý°V7cÕ¼àsçÄg'ÛñJ±%2òg¸ï£Þ&/GDømÊ7BñžwÁ´, ÍX6…D< ¦«£1¤2idÔ \»%< Ÿf`³aWÇ{HÔªJ ñÍ™NLûâ?wµØsC^ÎmZǯýj‡ˆ„—a±ç8€ã kÈ0À›LàM¦çÞ˜ p½ó s9à̱V8íe¿»¾Ô(8*¬m'zŽV¥Møýö8Yœ8…û3wÀرÃB‹‚`#C7°¢(H$”œÁÑþ#(©·ÃãK2¼V³ÓQamêlÖîŠâÓB0]gÐQ ²÷`O{!î{=‹ÀZX˜š Ì›*èï}5u¸õð‚qT˜êlÖnÞ^fqëÌÀbPÓ˜Î`0JÙØ{àp’ÎdrCQV7„Âa” hm¨Óƒ2tfÀ^fqçâ×uº¾éB²¶£µCÀìÔxnŽçyÔÖÔÀn³!É ™J!™Záõf;¦„À–”PçúêR<ôÇò\æZÐþ¦F2ˆþ¾>tuvÂ0XÞºT*…Ö]6è:C“³‚‰‡”Pç…`,=OeY“³Ì4·$æm4 &œ:q{Jà¹ðupžÐä,C<•eÁXzRÅÓ3!9p×W¾ªëÏ67Ô–âø!µ:ÀÚK}.8pڊᮯDHÎBñô GD¸uOºz°±üØ©/~‚_ç§:p¸Í]Ó°]e 5vL/>}hÜ (ƒ ö¢ŽÏ?|«:¶²†þN7 À$IжaÂó< 3"йP»ZìÏΰÇ?¨jŒ–%…6Š1FÙl–TU¥h4J’$‘(Š$Š"E"’$‰b±ɲLJ2MYѰÇ?¸ÎÍ yù‰Yq,£j‘“´]EWR”Quš˜Ç†¼|žáâÈ‚kbVS5F!I!Ãx9x,±FªÆhbV»8²àÚÈÌë¡C^~Øã|IŠk™,ù1ÊdµaËsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î< IDATxœí}yt\Õ™çï¾W¯öEû¾Ù’,Y¶åÂ^Ál¶‚q:*œN&ÝI']Mw“Ó“ÎfN:3œt&9¤ 9Ó,㤤!`HlŒ·PȶK²dÉÚe•jQ-o¹wþL ~µWi±õÓ¹§$½W÷Þwïï}÷Þïûîw c K¸vÁÍw–0¿X"À5Ž%\ãX"À5Í|W`®àt¹õÌ,—}€@àÒg‹ÃžŸÎÈÕ´ pºÜš¬Ð AÑ&…²j– Ù séW(; s6ÐÖâ°Od«îó…EM§Ë àF»xŽìV(k@ÀbÐHÅ6=_œ£çrÍZè4tÀA/ðÐ 3£Ÿ(Q„%‰"")ˆÈž€ˆÑ©0õ†Hf‹c™væ¼Àérr„ü#Ïë{ ãªÂ”;Þ”pêüzGõ†1î #$*)åeÐò(´éQlÓcY‰kªs`3¦F …2|xfï¸G…2eì1Ï·8ìóþöÍœ.wGÈK”±ë›«sØÞMå$•1~Ø©¾)´ž÷ lÙz ªÈ„æê\¬©ÉAi®!é<¼Ód­ç§GÈQÊØC-{wæk›8æ…N—{GÈóV£ Û·­RÓPf‰ÿ¥Y0œñ£µÏƒÖóS÷Îæ¶Ð¦Gsuškr±¼Ä’„ÐêòãÕò/(E(c¶8ì¯f¯¦±1§˜ÕÇÿÀ·ÖTÛØþmUD¯Ml9Ëø÷? áøÙ ÂrVë™,Ìz 6®(À­ëÊ`Ö'f^ ‹ ^>ÜÏN÷?ð½ù°CÌœ.w=Ï‘7Ðt÷Æ2nÇÊ„¾'Ê[GðŽ{áÇó¹‚^Ëc½ »šK Õ$¶r9Ô>Ž_¢hS(»¯ÅaïÊr5?‡9!€ÓåÞÂò›I0>²³FSY`ŒûÊŽtŒã×Ç/À;-f½Ž™„ͤÅ]+°¹±\cÃÀD/|Ð'{§¥ e춇ýÈTÀÀérßAÞ¨Ì7j¾±»–7êâ‹üÖ>9aO(«uË6Js Ø»¥Í5¹qï F<÷n2p1(3†ûZö·æ ŠÙ%€Óå~ˆ®†r yd×2.žXì àõΣkÈ—µ:Íêˬ¸k5jŠÍ1ïeŠöÒÎA?c€£Åa)ÛuËœ.÷·<³~y.Ü^Eâ­íßýdo|Ô‡ —Ê îÛZƒÝוżO¡ ¯êg'Ïyà;-ûO²Z¯lÀér?àÅí+ ÈÞë+«ëe…â_öà㎱Œ×c!bsc¾¶«šêmàÀÑ 8Ô>Á<œMIq8]î;ð«uËs¹¯ÜPs ä Šøé›87âÏh:–—Xðçw6ÂjÔF½‡ø×ßg8ç¡ ¸;[s‚ŒÀéro!Ê,£7/çb‰ý¾±þù×m˜ ,®~¦cÖâ/¾Ô„š¢èó…2<ÿÞ9Ú9ä—îl¬2F§Ë]Ïr¢"ß`ú³ÛêøX¾cãpýö,$™f¤ìÅ AÃÁqË ljˆ®eŠÿõ›nåÂÅÐ4elC¦õ!€ÓåÖó9n5 uWƒ&ÚRø‡ûðÖñ´Ë¼špÇÆJÜ»­&ê\)QðOÿÖ)û‚R‡BÙÆLj 3ehÿ1šÙYµóàýxóX?cKé²ôæ±~¼q8ºK¡QÇã‘56ãñüã õ€ Àérïð­»7–q±4|G;Çf:éGõçÍcý8Ú}%TY`ÄÝË8ßšmóŒ ­!`Ö¤ë^Ue5:v-‹:ãëõãéW>xùñ ÕpxüÁëPSÝ:ê:ØËÎôû‚”1{&LÉ)K§ËM8B^²ÝþmUQ;ß;-â™§!Jtf°”¢&Q¢xæÀ阶ýÛªˆÕ(è8B^šu¨I é RƮ߷­Rͤ++Ï8…IxÞÇÙÅ’&ýa+e½|° OþÉzÕë7®*đΠ:5-ýÀ©”‘”pºÜvŸ<°µ›W¨‹Á?tãŸþï§©Ô%%0E=‰ÞÖƒNæ¬ÜË!Z×­‡¾| ¶’ŒçÿW_^‹uuêêâÏ^Äk Àu©ì@JJ‚'-zAÞX—§ú=:ËØ¹ýJð"&?} £Ã椼h$ÚíGPXQkí%ÂË»`¯-Pu/ÛX—‡ÿdDö‡¥'A¢à0µyÏ¿ð"~õë7ÑÛ×—h À4NnËZþ£íBò¢pí½i ¿üèn¾®O¢ µyxûÃfæ?O4Ï„Ô[G¾^U £ýØwñ?òÏWUçÏ&;0ròPENYM KxãPjþ6“€å%fÊqäëÉÔ+.œ.÷2JÙ–Îßý+ßÕ­^øƒwôÆÏ¼ Ærú]ëPÔyІÚ<žR¶e6ŽRBHD<Ìs„ÝsûÍØ°n€ •N§ƒ^¯…FЀãW‡ùÄdï ø†Î¤,|Ót ¨'k®±çðp¢õ‰;à9rS…•Û³k-öìºáp~é&'=xë£6t÷]€Žú)E B£á Ój¡ÓiÁq¼>?¸mSÍ×fûŒ`¦+ŸX øPhU'@ûù‹p‚t¥ëP²ék((*MìÉ3 …R Œá¤ûþí­ßâý>Ât0„ ëš±¼FÝ+^i9•å™eï=ÛëÒj¿öóÕËücŸ­ˆW¿X ÁbÐH:S\ SfÞT ê¯bUÙG8ãþ(3™¦`þ®s8Ûu|\ùW®×)°¥©…9FŒyb›´£á¸údZ'p°4’?$7ÄË#Ö6ÛôQݾÇý©ë3UÇk(¸ë¶)þ“Ï2¡’$uDJ)D1‚{¶Ö¦ÜfƒãÑç+³}—:4i*ÎÑ«^÷øÃ˜‰®LºU°ß¸ïªQ/_œŒî±‰Dpˆ*õš”Új:$ÂãW×wçè9ž#«âÕ/j++”UçšÕ N²ºIæ¢fVÞðtºÌ;ZÎ5&=Ñ•qŒ1ð„áöë—§ÜVƒêÃ@®Y JYÜIŒ*œ.·ž]”=þ“¾ìïôñr%¨ÚüUX-ê.Ñ‹žÉØÚØH$‚»¶Ö‚çHJí4éS—: hfƒsFE4 ` ê~Óáìˆÿ/¦ —‡Üë¾[ŽúDj1àâdìs¦dY†Í$À^W˜Ú0V_ª^Öw1C“E#€e&õËÁ°¸®¾8©¶0êÔ‡ÄËú.¦óE´ÕÌœš©£nFs5ŸÙšQµ2ŒþöìÙl òòó‘›››Õ Q”>sT GˆDDD"a„#"ü~ÔÉá@);t‰¢ˆk+p¼}(á:F#@$A ™LÔ%€É Å<÷? ”»•+"8›Þil‚  ¾®+V`Eý 46¬@Ey9x>ñÃ)c¦á™ò`jÊ Ÿßg À¦õš·(Š2; ( šÚMumm$ Ðâ°‡ÿÚå–#2U½žgÕƒ¥;ûÈBù[QQÁ…$KŠ ±cÛVlߺkV¯‚&ÍÕ!‹‹U••)ç£ÖÖádgbÑUò¢˜ë#2äÿ'¨dÔ§æ9rÞkÕ®UZ° D€ \pÊåÏÇžmW”—cçŽíؾm+âÊæ¢(bcc)Nv 'tE¡ú*ÏÁq$®ÏYTÈ”µN…—Ae¢˜g5À¨0šË+@4Ý„IÄÈЕnV[6_ûï¹Ö¯›‡Ê%J)êÊm ½_&ƒ€<«úñu£SaªPw¯~,¹×9ê ߆(+…ŠB :¢x¤Ì 8-"¥· Pþ5ÆÇFa0èqÇ­{pï=÷ ¢\}_ýBEeáŒÚ;ÞD;ÚÛ£Þ° 3^Y1 àÉBD¢ª6Š"+Úûb«8ç¼öáÁj ·ïÙ Ó"µh8†Ê" ÎÄÞå]Q¤n)Hþ, Mœ€q_ùWÆ^½¼ï=/ÿ9…É Áã߀¢¼ø§’-d0ÆP[nCßpl¬^®©eü&⸠ˆXk“6lØ£>‰ÜÖ\B²l L"ñðÝ/_·è;ÿêʬˆõ¼„0lk®PýîlŸ1ÌôaLD%@‹Ã>Ás¤£{X}Y`3¢¡*ÞT—§¢#þëØŽÅñžwÑ ªØó™ªòQ`S'{÷p<3ŽÉ€ÈQƾŸj9I`ö|ºgßq(Ñô«k‹ð—û7£²ØŠÿö÷€ã’鄘L&˜Íæ¤üó¯hµÚ¸ä÷NKxÇ=¢x6Õ3ÔÏ~B¡Ì7{P‘*¾v‡?ÿO{a5¥7³V«‹:hµZñ½šd e>O¤S^JhqØ')cµžŸ"1,…¶Ìq4 ŒF#l6L&t:ÝU%xž‡ÅbIhÜ9äGëù)B{,sƒôNž#ä談ä°¨¾…Œø®ÍÉ‚òÙ[bµZ‘““‹Å£Ñ­V AÀóü‚—_|«ÕšÐ²/,*xõð€ÌrÀói×#rºÜu!îUUV£cײ¨-Îâ.ÿ²Æ(¥ ”~FÄT?/á‹ÄºüïX¿sŽã>û=U‚ºö²3ý¾ eÌÞâ°w§”ÉeH‹àt¹÷xeïõ娱òÚpÔ˜/ü¾}ŽÀƒ-û«™È3íÅölE~ö«ãCt`"µ§Kˆ‰ ~u|ˆøY¦:Èfñ=´½ðAŸŒ¨Ï€´Ÿt‘!QðÂ}2™ñóÿ^&óÎZö°BÙ}Þi)øÜ»=Š(«[ ø¼lAB”)ž{·GñNKA…²ûZâl÷NÓ·¶8ì]”±Û.åöÒx–„A|(”á…ƒ½tàbP¦ŒÝÖâ°Ç6•$2ªpoqØ0†û:ýì•Cý1%>Aæ—ˆW€Wõ³ÎA?c ÷µ8ìG²QNÆ-.-û[ pœ<çÁ£b¾é„%¨€8pôNžó€Ž‡ý­l••ö20œ.÷·<³~y.Ü^Eøì×"ÊðÊ¡~vòœ¾Óâ°ÿ$›åeàt¹"€«¡ÜBÙµŒÓF‰>~ ¥9¥c±B”)^8ØK;ýlöÍ)Ûef•àt¹ï oTæ5ߨ]ËuWþ>“F<÷n2p1(ÏŽùYû—#ë§Ë½…#ä76“`|dg¦² ¾µ‹af¢x-``"ˆ>蓽ÓRpv¶Ÿ• Ÿæ„àt¹ëy޼Á€¦»7–q‰ª¯v"jÇ/Q´Í®ó3¾Ô‹…9#0s €øÖšjÛ¿­Šèµ‰ ”²”K*¢‚—÷³Sç½ÀÏ|/ÓJžD0§¸§Ë½#äy«QÐíÛV©iˆr8õÕŠÎ!?^=< û‚R„2öh&uûÉb^|fJ~‰2v}suÛ»©œØLW÷î ï´„ÇYëù)Âr”2öP&Lºé`ÞN—›x”#äyŽX÷ØKøWâjÓ(”áÃ3ãxÇ=¢(”ù(cx¾ÅaŸw-ؼàœ.w€§|3Ϭ¥77óëò=Êp¼{﵎*“‘ð,€'ÒuãÊ$.Áér¯çù!eìv«AoZS¤ÙÜ_\Ê!I¡ø¸ó"Þ?5&ûB’†#ämÊØ÷ÓñÞÍ.ÁérÛ Á“Œá~£Ž§;Wñjó°ÐçÞi 'z&ñÁ™1%Q8Bð:cøQª›6æ ’—àt¹ ð8öƒAX^b¦jóøæ[ÔÍæaIAkŸ'z&•s#^fÀÓ©ìÕ›k,h\‚Óå¶x€ãÈ×)e[xް¦ +·¢Ì‚ú2 Ô"˜e㾺†ü8;ä¿“‡p92œáµd·hÏ'.‡Óå^àaž#÷+”­@,Aj(³u¥f”æêQhÕG=ô2YD$Šq_Þ0º‡èòK³qøϑӳ™^L&,ËB¢#ÀåpºÜ¹n°‹çÈn…²FÌjŽ-TlÓóÅ9z.׬…NÃA'ðÐ ôÿÙ¹z¢D–D$Šˆ¤ "Sx"F§ÂtÔVf£n3Þ1ó € Ŷ±¨ ðE8]îMVhРáH“BY5K," séŸ=l¡s6ЖHìÝņ«Š±0k‡0cæ$ÍKŸÀÌ©ZKŸó¡ŸO\3X‚:—†e Ç®q,àÇ®q,àÀÔ±S IDATÇ®qü image/svg+xml tuxcmd-0.6.70+dfsg/data/icons/16x16/0000755000175000017500000000000011300022643015645 5ustar salvisalvituxcmd-0.6.70+dfsg/data/icons/16x16/tuxcmd.png0000644000175000017500000000152511300022643017662 0ustar salvisalvi‰PNG  IHDRóÿasRGB®Îé pHYs»»:ìãâtIMEØ  `AçIDAT8Ë“Ík\u†Ÿ{çÎWÇL“4é˜É¡3Ä™Ôk ©Ò–‰ ¢¬´ ¡¢ ñ°ÁE7ÒPw®UQŒ›Vã¦`-jbF‰3‰&ôc¦™tœL2wîÌû»ÇE0ßÝó>‡s8¯&"ì×µ/óÁÉÑèÅ¡þp*6Ò Û]Ù¨Úù\¡>ûÎ¥tg¿¶p3»‘9>zøº®qj½ÔàAÅ`l Bb¨OXü­P»r~*~ç_€ïóΤâ=W¿É#?äʤ³“GyqjÄZÙh\N¾¿¸™ÝÈ<“쟻>»ÙÜnýÃ&€¶W=Þwˆ+Mka­úÂù©ø_Ð|%øœûüëù{ãKëe eãW Õ_)f¿¢úÇw8›Kô»´}G¨µº´7p:{êùõµOoå_ŸŸû䣟~¤Ýî ëJy(¥ˆÇã”J%D„‰Ô“ø’/ãi×Þ<Ër±yÙHŒMzé ŠÆIbz‰…[_à÷ûèë=ŒxÍfMÓz#Œ‹2¿Zcùn…x¬/­GÃFzõ~»«q¯'5ý SÙª²µ½C½ÞÀó<<Ï#sîä8]Çaõ~…ž°‘2\Wá8]6é!qæ2wç?ömROLpÂ4QJ1:2Âð‘ â)\wwE£n»ùäp/ßþ´¶wi÷±Þ~÷=Ìc1B¡®ëâ÷ûÐuEH÷Ò°Ý£TµWÌÄ ŽÓEÓàÕç'¹ôlñ\”R(¥Ðu€@ €çydÌ8fbßËvÞÈê³'ÆÇ/LOœ:mŽræøÍf¥|{SEÃ0v?OÓ8÷t‚Žçÿ%W¨Ì""ÜX|˜)o[VñQMDD<Ï×u¥ÓéˆmÛbY–´ÛmqG–-[5»ucñaFDvé"Âí\yæQÕ²ÖTä¿´µcIe§Õº+Ïüí;(L(§=Uk¶‰FB„Ž«0|:¢û³Ë…Ú[†éÿÆù/ŒÞ«6C¼ªÂIEND®B`‚tuxcmd-0.6.70+dfsg/data/icons/32x32/0000755000175000017500000000000011300022643015641 5ustar salvisalvituxcmd-0.6.70+dfsg/data/icons/32x32/tuxcmd.png0000644000175000017500000000361211300022643017655 0ustar salvisalvi‰PNG  IHDR szzôsRGB®Îé pHYsvv}Õ‚ÌtIMEØ ¡2ï`IDATXÃÍWmlS×~îG®¯ø#±NLÀ‰b )-4M ak¥*kW¡"Öv[¥UÛ±îÏÄ„‚‰ª‚£ý3Q­ÿªTmbZ‰ RÛµ©èJ !”'±]ì$þˆ¯íØ÷úãܳÁ—8,Q«i¯ttî½ïû<çý8ç= ¥ë‘SG=6£®W¸æZ‘·@N)KJ‘„ÙÂàéc>ÿzì1k!ÐÿáØÖ–FÃ[³¸kKS×e3˜õWõ\$'òéÉ™ù±Ù´r#ËŸë?ê |/'/ŒX=NãÙ-–Cîz'€¨áxé| Y¹0êk`6ÔÀe¯Ç2 nN¥¢·‚Ò€?š=ñΫ;’ë&ðÞå{G|.ó™½öVŽe0É`èn·Ã”"YQG8lwYðT»mM *ŵ;ñ‰ÑpúOÇŸßöÑš ¼ÿÉd_¯×þÓh Çsøû—!ŒGÒëÊ•¶f¼ÜÝ —½þh698ÿó›¶¼ý_ ¼ÿÉdß‹{œ}fQ÷ÅY\ø|e²¾D­Ï1xu+z:ˆ¥•Â¥ëÑ·—’¨"ðÞå{Gv6ýÅã4ZÿñeÿºÆ!/ìqágÝ-ðG³É+7g~»8ìâ„ó¹Ìgú«óô7ÃÈf³˜ŸŸG>Ÿ{d\“s)˜L&“P© žç5‘û!DîŸÇŽ®Ÿ äèÑtF&ãJ¢ÓmuÞ Jo8΀Ý(tÚÜn9˜²)dÓ(•- ”‚‚(!±x„”Ëe@<Çóàù…H²,[Erä««hÿq3TÃíݧÃaøÜV8Ìâ.àO]õ¼ÖÛÒÖútþ9n@^W†j‘a+012ˆ´$ ŠŒž‡ÙdËq H©ŒR©„l.(.óÒ¯~ñ:ÔZ¾>̧¯¿A™¨ØÒTç=uqÔÃÛŒº^—Í`D$dó…Å)`Nì€íq7¬¡Ë˜ ø¡õ€l^©1èõpëHI`˜‡0 8|è9”Ác(4‚RY} OˆHhn2›mF]/+ \³^àLËËʧà~ Oï{fÕ\ÈË2’R¦ €&GñTdž*»É´ ½ÀA¸f¶r¤&32!ˆRRq_xÏ<¼®Í§X,"97ØçÛPe3™‘µ"oÑhSJWÝHäB ãÅ6tõì_3Q§Ãôô À*–`2š½Å»/ŸSÊÔ×é´2ZIdBæ;áëœÇèÍ|^/x6kÔÕÕBäeŠ¢Àd4.¤ìioÄ實PÁª42¼R$!¹HÐ`Ò?r÷[ $Ýxã—Ûñ£}=0ÖÕamE•¹^!êt`FÓÝl3höLzÈE¥HB|"[ 'òé6—Õ¬¯a‘SJ«0ˆæóܘks»»¼qõúDõyÍ»<x¢ž&Â’Vl) èÒïN›„ty[P󘜙;}Ìçç`6­Ü @÷óÝ[10tOSܹÕ7º­N$IÂÒÞR Žã´ùJ^Ðþ£ ^{·ÝíNИÚiŒåÏÝœJ½¼»c£s—§ _Áë‡vâw¯< •„Ã᪭¶Æqܲ¯ä †aP__ß¼Ô–e0<•ŠcùsZ?ÐÔ¸”ˆJñû£Oâ…Ž¿Ò–aÀó<6mÚ«Õ J)TõaUTU­"°8)Àb±@Ìed•âVP¨tÌZ?àfO\»ß¿{cë‡Ãâ0 ‚A`0@A"±p(U€X–­r7˲9»Ýžç‘/Ø,z|~;6áfOT¹©2ÞýØd<’IPJià»$]«$“ɪ±TRŽRJéx$“x÷cÿ‘ŘU(¥8u¢oV’J) M§è÷•hJ2ó Fé›´¹ÜËŒ¬jCS;­ ×RoµVZYǪadU i*g;By ~>†A//ïõz½!Ñ/åÝ /jou^škZçLm.7kЩö14Õê(ÖëZê-Å‹í&J£¢gÕ¯(t ”ó½ã£ý£A&Š+$H¯´·:ù¹ {Öhs¹iVÃ<§QÑ/m^^j]¿¨XÇäù…g ™(8ueTø¸Óã%ò2/ʯ··:Élúœ•öêØ¡×0?^Õ`-}dy™A«Îýky —où1ˆÂáÇàÄà‹®HN¯W¤†Y¯Í¤Å’*FV•³¿hŒàxçpè\×åïýpOóï;@›ËÍqzõÑEvSÓWZ*Ì e–O@ÇÍqtÜÇ O3†¢€¥4/° ¹Æ‚R³.«NHð?ç‡|Wý‘ØööV§¦¼ÌXm.w§W°{cuÍ¢J#3ùûÅ›>üöL?Æ"3¥eJØmz|õAšjÌYß® åw>í»éͶ·:{fÒ÷­Ž-\‘ú—ùh]E±I›ñíæHﺉîÁÀLÆŸ1VšðÔúÔ”e¼ DñÆG׆üáØ3?ü‹æÿ-´¿‚°ÿW_(3kÿîÙGêJtšÔˆÄð›OoàÜÕQÜ-“аª±_Û¸&½:ù^e<~mdØ}õÀŸ7½VP_…`ÿ¯.¾°ØnÜ÷MÕVšJiø›ž~~ì2ÆCâ̹˜X |gÛÔ”’à?þÐçí¾Rˆ¦ÀÞ·:¶8ŠÙÃßy¼¡$ù³Ý#p}t1iV»Ð¬¡VÑh}´«–$ßEÁÏßïé埞n9L)€6—»¡Ø¤ýýßn_X‘˜ö €÷NÝÀ±³ýsÃÁaÛjžZ¿‰ŸHeüëÑî¡Ñ@ô¡©c^Ä·º ß}¼¡.]á½{ò:޹¿˜O`ÛƒìÜP›| Dñ³÷{®ù#±•ù¶È¼v*§Wݽ±º&ùϺ<8zú&!÷e9zú&>ëò$é-6i±{cu §WÍÇgNì=Ô±c‘ÝÔ”¾Ïßâàû—¡(Êü"CŽEgÝÏÁ÷/ãÆp0ÉË¢J#³ÈnjÚ{¨cG.^³–@›ËMszõÕ翺¨.aáùÃ"þéͳð£ùY"ƒ‰ @%z!GÃ>„ƒ^ø½£ðùÆ¡( JJËa+s@ËU ÆÚ¡â3ÇjÔâûß\ ®H`Âbü—ß^¹æÄ'ûY6,«až[Õ`-M7oŸèÆXàÎ/:Ôyä"®_q# MY×3<ÏðPò¹²j¬ukAÙƒbÔS´La,Àãð‰n|wGÀ SaUƒµôT×èsþ=½nÆ hs¹YN¯îyñ©%• ÇæÚPû]ŸÝ™‘#GAõŸ@ç…“wÒ:ƒŽ%뀊µ`TšiëS´®A]… À„õ£÷.ú#±†tW:ctª}›——ZÓ½º·OtƒLZ&ëUd*%À@- €ÄCІ! a öõÀçóe´¥i¬žCÓ°Û+P» fŽC,C÷Õ^üér7b±XC¡P—Ï~k±ÅËŸ„Ú<õÒPâ´ÿãÓ«Z5ÍËK­ýqx€ýIA¥Ï€¿¾Ô÷ì&›ãƒ?ÄÐíÛòxá *„ÁóaD"„C!ˆâìtÁdX,¬ @EÜÂTö MÓ¨[±*ûPLn—9¿±4LI2Qðƒ#êßÿõeÕ‰ïI´¹Üˊ½'÷æk!÷Öº+öÚe04íEåÀÔ”ñês“Ï¿8q}äbŸs"¼–œëFVµgA)kjnjBI‰ z= ‹Å «Õ‹Ù£Ñ½žÃdyÀ÷ ×/A¸u„(yËõ¡ÇÂÉ6-õ–b#«Ú“xNΆ¦vîyêqê[_Û8òIÞ:zF& ³Š‡wð øz= š¢ Ë2‘A$‰ÈP䉿2!ˆ "„¨BžçÙꄦrÕ”uÎtÝÆ“ê‹í&Š¡©öq´¹Üöº²".=€yáêT¬<,à ª¢¯ò˜}W;ó®Qš¦¡gY E(/)Z£CÓPÄ$ RL‚/DÀ˜•phšFC}=$Yô@]Tœ_—SШhX ®Íå¶··:TÀj˜]-õVk¢?EWŸ7‹I ç8êì› ÷}ŽÎÏOe FA(F(Æpb´Z-ÊJl¨«q ¨ˆEL’084Œ¡Ûˆb¶öÏÇü?û)êëja0ðƒÃçðÇÞ‘¼õ»ú¼ð‡£àŠ&Ìú–z«uh\Øàßè¸ÖVZSÈ Ý™@!JÎBÔB%_Fíª'Á¨¦Ö“FÑwkçÝøýÉ3¸à¾EQ°|éb8›—¢H¯Ÿ¶ÊòrÔ×M8=<Ïã+kkóÒªD&¸Ðò*­¬*~P“ÔŽMYY·½á¬½?',KàXÃa¬ó¿ Ì8 .þAôõT”3sÉÿeYÆòf”˜Y çCÞö¦aœWßd¢”¥‡ G}(„Tˆ®–{`wÔÌŒó<$iÚ:·‡3— ض¦vJ:G})áYd¢”%@Ó”.ý¸j,Àƒ(JáE]ªþϰxùê9ÂtC„Où&Š¢àK+* RÑyiL÷ehšMSº¤šÊ0®'f@þ5•³@… íKX²bý]B_fPFM+hi,ËK_ú R<Óm.·mòÁƈ†3 YŸy—¶Ì+óE¡¯¯/ã$IXßTž—¶¦7kÐ©ÐærÛrjœÄº¹S,Pß( ÷êœæ&qk`0ë³¾jš‚(ÉYßòñC··:ÇBB¦â±u³ŠÊ€b*y5µsÃm f €¡Z•å¤ÉjÌ©õQžHÈÎ{h1¥ÍÚÞêìñ‡cÏ<~m„$§%`ãôó÷&;t*$VQ<~mÄŽ=3mòt!1¾—Þî|áð'7ÆdB”txýå^#&ÉÏ2!ÊáOnŒ½ôvç J!ñËB*)q!üäX·‡Júƒ¼â òóÆàTˆŠ™´ðQIùɱnO¡Ì+Š2wéòãAãí3EL’¡Ve&jÌ{º|Ó]˜ð0YÌGðG’ TL¶Úºk&(äÊŒ/ÈC£f ×MŸÒ6„¨6{Œ{re&…^šc2¢¢V§Îù N† J ) uî|¤{~i*_èkséøÂ^œÌ…/äÕÙ|øB^ž.÷Ãõùÿ³‚_æ`VßIEND®B`‚tuxcmd-0.6.70+dfsg/data/tuxcmd.desktop0000644000175000017500000000024711300022643016647 0ustar salvisalvi[Desktop Entry] Name=Tux Commander Comment=A two panel file manager Exec=tuxcmd Icon=tuxcmd Terminal=false Type=Application Categories=GTK;Utility; StartupNotify=true tuxcmd-0.6.70+dfsg/USplitFile.pas0000644000175000017500000000736711300022643015576 0ustar salvisalvi(* Tux Commander - USplitFile - Split File dialog Copyright (C) 2004 Tomas Bzatek Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit USplitFile; interface uses SysUtils, Types, Classes, Variants, GTKControls, GTKForms, GTKStdCtrls, GTKExtCtrls, GTKConsts; type TFSplitFile = class(TGTKDialog) Label1, Label2: TGTKLabel; Entry: TGTKEntry; Box: TGTKVBox; SizeBox: TGTKHBox; SizeCombo: TGTKCombo; DeleteTargetCheckBox: TGTKCheckButton; procedure FormCreate(Sender: TObject); override; procedure FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); private { Private declarations } public { Public declarations } end; var FSplitFile: TFSplitFile; type TSplitRecord = record Title: string; PartSize: Int64; end; const SplitConsts: array[1..8] of TSplitRecord = ( (Title: '100 MB (ZIP)'; PartSize: 100431872), (Title: '250 MB (ZIP)'; PartSize: 250331136), (Title: '1.44 MB (3.5")'; PartSize: 1457664), (Title: '1.2 MB (5.25")'; PartSize: 1213952), (Title: '720 kB (3.5")'; PartSize: 730112), (Title: '360 kB (5.25")'; PartSize: 362496), (Title: '650 MB (CD-R)'; PartSize: 681574400), (Title: '700 MB (CD-R)'; PartSize: 734003200)); implementation uses ULocale; procedure TFSplitFile.FormCreate(Sender: TObject); var i: integer; begin SetDefaultSize(400, -1); Caption := LANGSplitFile; Buttons := [mbOK, mbCancel]; Box := TGTKVBox.Create(Self); Label1 := TGTKLabel.Create(Self); Label1.XAlign := 0; Label1.XPadding := 0; Entry := TGTKEntry.Create(Self); Label1.FocusControl := Entry; Box.AddControlEx(Label1, False, False, 0); Box.AddControlEx(Entry, False, False, 0); Box.BorderWidth := 8; ClientArea.AddControlEx(Box, True, True, 0); SizeBox := TGTKHBox.Create(Self); SizeBox.Homogeneous := False; Label2 := TGTKLabel.Create(Self); Label2.XAlign := 0; Label2.XPadding := 10; Label2.Caption := LANGBytesPerFile; SizeCombo := TGTKCombo.Create(Self); Label2.FocusControl := SizeCombo.Entry; Label2.UseUnderline := True; SizeCombo.Items.Append(LANGAutomatic); for i := 1 to Length(SplitConsts) do SizeCombo.Items.Append(SplitConsts[i].Title); SizeCombo.Entry.Text := LANGAutomatic; SizeBox.AddControlEx(Label2, False, False, 0); SizeBox.AddControlEx(SizeCombo, False, False, 5); SizeBox.AddControlEx(TGTKLabel.Create(Self), True, True, 0); Box.AddControlEx(TGTKVBox.Create(Self), False, False, 3); Box.AddControlEx(SizeBox, False, False, 0); DeleteTargetCheckBox := TGTKCheckButton.CreateWithLabel(Self, LANGDeleteFilesOnTargetDisk); Box.AddControlEx(DeleteTargetCheckBox, False, False, 3); OnKeyDown := FormKeyDown; Entry.SetFocus; end; procedure TFSplitFile.FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); begin case Key of GDK_RETURN, GDK_KP_ENTER: ModalResult := mbOK; GDK_ESCAPE: ModalResult := mbCancel; end; end; end. tuxcmd-0.6.70+dfsg/UChecksum.pas0000644000175000017500000004174411300022643015442 0ustar salvisalvi(* Tux Commander - UChecksum - Checksum dialog Copyright (C) 2004 Tomas Bzatek Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UChecksum; interface uses glib2, gdk2, gtk2, pango, SysUtils, Types, Classes, Variants, GTKControls, GTKForms, GTKStdCtrls, GTKExtCtrls, GTKConsts, GTKView, GTKText, UEngines; type TFChecksum = class(TGTKDialog) BottomBox, HBox: TGTKHBox; CheckButton: TGTKButton; ProgressBar: TGTKProgressBar; HPaned: TGTKHPaned; FileList: TGTKListView; CommentTextView: TGTKTextView; FileListScrolledWindow, CommentTextViewScrolledWindow: TGTKScrolledWindow; StatLabel: TGTKLabel; procedure FormCreate(Sender: TObject); override; procedure FormDestroy(Sender: TObject); procedure FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure FormResponse(Sender: TObject; const ResponseID: integer); procedure FormShow(Sender: TObject); procedure CheckButtonClick(Sender: TObject); private MD5Present, SFVPresent, CommentOpen, Processing, Stop: boolean; procedure ConstructViews; procedure ProcessLine(s, Path: string; const IsMD5: boolean); procedure ListViewCellDataFunc(Sender: TObject; tree_view: PGtkTreeView; tree_column : PGtkTreeViewColumn; cell : PGtkCellRenderer; tree_model : PGtkTreeModel; iter : PGtkTreeIter); function CompareFunc(Sender: TObject; var model: PGtkTreeModel; var a, b: PGtkTreeIter): integer; procedure GoProcess; procedure MarkAsBad(const FileName: string); public Engine: TPanelEngine; DataList: TList; AListView: TGTKListView; List: TList; function ProcessFile(FileName: string): boolean; end; var FChecksum: TFChecksum; implementation uses ULocale, UCoreUtils, ULibc, UCore, DateUtils, md5, crc; type TFileListItem = class public CRC: LongWord; MD5: string; Name, FullPath: string; Status: byte; IsMD5: boolean; Size: Int64; end; procedure TFChecksum.FormCreate(Sender: TObject); begin WindowTypeHint := whNormal; List := TList.Create; MD5Present := False; SFVPresent := False; CommentOpen := False; Processing := False; Stop := False; OnDestroy := FormDestroy; SetDefaultSize(750, 350); Caption := LANGVerifyChecksumsCaption; Buttons := [mbClose]; StatLabel := TGTKLabel.Create(Self); StatLabel.Caption := LANGChecksumNotChecked; StatLabel.UseMarkup := True; BottomBox := TGTKHBox.Create(Self); BottomBox.Homogeneous := False; CheckButton := TGTKButton.Create(Self); CheckButton.Caption := LANGCheckButtonCaptionCheck; CheckButton.SetSizeRequest(90, -1); ProgressBar := TGTKProgressBar.Create(Self); ProgressBar.Text := '0 %'; BottomBox.AddControlEx(StatLabel, False, False, 5); BottomBox.AddControlEx(ProgressBar, True, True, 5); BottomBox.AddControlEx(CheckButton, False, False, 5); HBox := TGTKHBox.Create(Self); HPaned := TGTKHPaned.Create(Self); ConstructViews; FileListScrolledWindow := TGTKScrolledWindow.Create(Self); FileListScrolledWindow.HorizScrollBarPolicy := sbAutomatic; FileListScrolledWindow.VertScrollBarPolicy := sbAutomatic; FileListScrolledWindow.ShadowType := stShadowIn; FileListScrolledWindow.AddControl(FileList); CommentTextViewScrolledWindow := TGTKScrolledWindow.Create(Self); CommentTextViewScrolledWindow.HorizScrollBarPolicy := sbAutomatic; CommentTextViewScrolledWindow.VertScrollBarPolicy := sbAutomatic; CommentTextViewScrolledWindow.ShadowType := stShadowIn; CommentTextViewScrolledWindow.AddControl(CommentTextView); HPaned.Child1 := FileListScrolledWindow; HPaned.Child2 := CommentTextViewScrolledWindow; ClientArea.AddControlEx(HPaned, True, True, 3); ClientArea.AddControlEx(BottomBox, False, True, 0); OnKeyDown := FormKeyDown; OnCloseQuery := FormCloseQuery; OnResponse := FormResponse; OnShow := FormShow; CheckButton.OnClick := CheckButtonClick; if CheckButton.Enabled then CheckButton.SetFocus else ActionArea.SetFocus; end; procedure TFChecksum.ConstructViews; var Column: TGTKTreeViewColumn; i: integer; begin FileList := TGTKListView.CreateTyped(Self, True, [lcPointer]); FileList.SelectionMode := smSingle; FileList.Tooltip := LANGFileListTooltip; FileList.CellDataFunc := ListViewCellDataFunc; FileList.CompareFunc := CompareFunc; FileList.RulesHint := True; Column := FileList.Columns.Add; Column.Caption := LANGFilenameColumnCaption; Column.FixedWidth := 350; Column.SortID := 0; Column := FileList.Columns.Add; Column.Caption := 'CRC-32'; Column.FixedWidth := 80; for i := 1 to 2 do begin FileList.Columns[i - 1].SizingMode := smAutoSize; // smFixed; FileList.Columns[i - 1].Resizable := True; FileList.Columns[i - 1].SetProperty('ypad', 0); FileList.Columns[i - 1].SetProperty('yalign', 0.5); end; CommentTextView := TGTKTextView.Create(Self); CommentTextView.ReadOnly := True; CommentTextView.CursorVisible := True; gtk_widget_modify_font(CommentTextView.FWidget, pango_font_description_from_string('Monospace')) end; procedure TFChecksum.FormDestroy(Sender: TObject); var i: integer; begin Application.ProcessMessages; try if List.Count > 0 then for i := 0 to List.Count - 1 do TFileListItem(List[i]).Free; List.Free; except end; end; procedure TFChecksum.FormShow(Sender: TObject); begin CheckButton.Enabled := FileList.Items.Count > 0; if MD5Present or {(not SFVPresent) and} (CommentTextView.TextBuffer.CharCount < 1) then HPaned.Position := Width - 90; end; procedure TFChecksum.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin Stop := True; end; procedure TFChecksum.FormResponse(Sender: TObject; const ResponseID: integer); begin Stop := True; end; procedure TFChecksum.FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); begin { case Key of GDK_RETURN, GDK_KP_ENTER: ModalResult := mbOK; GDK_ESCAPE: ModalResult := mbCancel; end; } end; function TFChecksum.ProcessFile(FileName: string): boolean; const ChksumBlockSize = 32768; // Maximum of PByteArray var FD: TEngineFileDes; Error, Count, i, Start: integer; Buffer: Pointer; s: string; Stat: PDataItemSL; IsMD5: boolean; begin Result := False; Stat := Engine.GetFileInfoSL(FileName); if (Stat <> nil) and (Stat.Size > 128*1024) then begin i := integer(Application.MessageBox(Format(LANGTheFileSYouAreTryingToOpenIsQuiteBig, [StrToUTF8(ExtractFileName(FileName))]), [mbYes, mbNo], mbWarning, mbNone, mbNo)); if (i = integer(mbNo)) or (i = 251) then Exit; FreeDataItem(Stat); end; IsMD5 := (Pos('MD5', WideUpperCase(ExtractFileName(FileName))) > 0) or ((Pos('SFV', WideUpperCase(ExtractFileName(FileName))) = 0) and (Pos('SUM', WideUpperCase(ExtractFileName(FileName))) > 0)); if IsMD5 then MD5Present := True else SFVPresent := True; if MD5Present and SFVPresent then FileList.Columns[1].Caption := 'CRC32/MD5' else if MD5Present then FileList.Columns[1].Caption := 'MD5 sum' else if SFVPresent then FileList.Columns[1].Caption := 'CRC-32'; try Buffer := malloc(ChksumBlockSize); memset(Buffer, 0, ChksumBlockSize); except Application.MessageBox(LANGAnErrorOccuredWhileInitializingMemoryBlock, [mbOK], mbError, mbNone, mbOK); Exit; end; Error := 0; FD := Engine.OpenFile(FileName, omRead, Error); if Error <> 0 then begin Application.MessageBox(Format(LANGAnErrorOccuredWhileOpeningFileSS, [StrToUTF8(ExtractFileName(FileName)), GetErrorString(Error)]), [mbOK], mbError, mbNone, mbOK); libc_free(Buffer); Exit; end; s := ''; CommentOpen := True; repeat Count := Engine.ReadFile(FD, Buffer, ChksumBlockSize, Error); if Error <> 0 then begin Application.MessageBox(Format(LANGAnErrorOccuredWhileReadingFileSS, [StrToUTF8(ExtractFileName(FileName)), GetErrorString(Error)]), [mbOK], mbError, mbNone, mbOK); Engine.CloseFile(FD); libc_free(Buffer); Exit; end; // processing begins Start := 1; if Count > 0 then for i := 0 to Count - 1 do if (PByteArray(Buffer)^[i] in [13, 10]) or (i = Count - 1) then begin s := s + Copy(PChar(Buffer), Start, i - Start + 1 + Ord(i = Count - 1)); Start := i + 2; if PByteArray(Buffer)^[i] in [13, 10] then begin ProcessLine(s, ExtractFilePath(FileName), IsMD5); s := ''; end; end; // processing ends until Count < ChksumBlockSize; if Length(s) > 0 then ProcessLine(s, ExtractFilePath(FileName), IsMD5); CommentOpen := False; Engine.CloseFile(FD); libc_free(Buffer); Result := True; end; procedure TFChecksum.ProcessLine(s, Path: string; const IsMD5: boolean); var Item: TFileListItem; ListItem: TGTKListItem; S1, S2: string; i: integer; Stat: PDataItemSL; begin TrimCRLFESC(s); if Length(s) < 1 then Exit; if s[1] = ';' then begin if CommentOpen then begin CommentOpen := False; if CommentTextView.TextBuffer.LineCount > 1 then begin s1 := ''; for i := 1 to 50 do s1 := s1 + Chr($2212); CommentTextView.TextBuffer.InsertText(StrToUTF8(s1 + #13)); end; end; CommentTextView.TextBuffer.InsertText(StrToUTF8(Copy(s, 2, Length(s) - 1) + #13)); end else begin Trim(s); if Pos(' ', s) = 0 then Exit; Item := TFileListItem.Create; Item.Status := 0; Item.IsMD5 := IsMD5; if not IsMD5 then begin // CRC32 s1 := Trim(Copy(s, 1, LastDelimiter(' ', s) - 1)); s2 := Trim(Copy(s, LastDelimiter(' ', s) + 1, Length(s) - LastDelimiter(' ', s))); try Item.CRC := StrToInt64('$' + s2); except Exit; end; Item.Name := ExtractFileName(s1); Item.FullPath := IncludeTrailingPathDelimiter(Path) + s1; end else begin // MD5 s1 := Trim(Copy(s, 1, Pos(' ', s) - 1)); s2 := Trim(Copy(s, Pos(' ', s) + 1, Length(s) - Pos(' ', s))); try Item.MD5 := LowerCase(s1); except Exit; end; s2 := ExcludeTrailingPathDelimiter(s2); if Pos('/', s2) > 0 then s2 := Copy(s2, LastDelimiter('/', s2) + 1, Length(s2) - LastDelimiter('/', s2)); Item.Name := ExtractFileName(s2); Item.FullPath := IncludeTrailingPathDelimiter(Path) + s2; end; Stat := Engine.GetFileInfoSL(Item.FullPath); if Assigned(Stat) then begin Item.Size := Stat.Size; FreeDataItem(Stat); end else Item.Size := 0; List.Add(Item); ListItem := FileList.Items.Add; ListItem.Data := Item; if not Application.GTKVersion_2_0_5_Up then ListItem.SetValue(0, Item); end; end; procedure TFChecksum.ListViewCellDataFunc(Sender: TObject; tree_view: PGtkTreeView; tree_column : PGtkTreeViewColumn; cell : PGtkCellRenderer; tree_model : PGtkTreeModel; iter : PGtkTreeIter); const StatusStr : array[0..3] of string = ('?', 'OK', 'BAD', 'N/A'); var Data: TFileListItem; Path: PGtkTreePath; begin if not Application.GTKVersion_2_0_5_Up then gtk_tree_model_get(tree_model, iter, 0, @Data, -1) else begin Path := gtk_tree_model_get_path(tree_model, iter); if not Assigned(Path) then Exit; (Sender as TGTKListView).ConvertPathToChild(Path); Data := List[gtk_tree_path_get_indices(Path)^]; gtk_tree_path_free(Path); end; case gtk_tree_view_column_get_sort_column_id(tree_column) of 0: g_object_set(cell, 'text', StrToUTF8(PChar(Format('[%s] %s', [StatusStr[Data.Status], Data.Name]))), nil); -1: if not Data.IsMD5 then g_object_set(cell, 'text', PChar('0x' + IntToHex(Data.CRC, 8)), nil) else g_object_set(cell, 'text', PChar(Data.MD5), nil); end; end; function TFChecksum.CompareFunc(Sender: TObject; var model: PGtkTreeModel; var a, b: PGtkTreeIter): integer; var Data1, Data2: TFileListItem; Path: PGtkTreePath; begin Result := 0; if not Application.GTKVersion_2_0_5_Up then begin gtk_tree_model_get(model, a, 0, @Data1, -1); gtk_tree_model_get(model, b, 0, @Data2, -1); end else begin Path := gtk_tree_model_get_path(model, a); if not Assigned(Path) then Exit; Data1 := List[gtk_tree_path_get_indices(Path)^]; gtk_tree_path_free(Path); Path := gtk_tree_model_get_path(model, b); if not Assigned(Path) then Exit; Data2 := List[gtk_tree_path_get_indices(Path)^]; gtk_tree_path_free(Path); end; if (Sender as TGTKView).SortColumnID = 0 then Result := CompareTextsEx(PChar(Data1.Name), PChar(Data2.Name)); end; procedure TFChecksum.CheckButtonClick(Sender: TObject); begin if not Processing then GoProcess else Stop := True; end; procedure TFChecksum.GoProcess; const ChksumBlockSize = 65536*4; var i, Error, Count: integer; FD: TEngineFileDes; Buffer: Pointer; MaxSize, OldPos: Int64; Data: TFileListItem; Time1, Time2: TDateTime; CRC: LongWord; MDContext: TMDContext; MDDigest: TMDDigest; begin if List.Count = 0 then Exit; CheckButton.Caption := LANGCheckButtonCaptionStop; Stop := False; Processing := True; UnselectAll(AListView, DataList); StatLabel.Caption := LANGChecksumChecking; StatLabel.UseMarkup := True; MaxSize := 0; OldPos := 0; for i := 0 to List.Count - 1 do Inc(MaxSize, TFileListItem(List[i]).Size); ProgressBar.Max := MaxSize; ProgressBar.Value := 0; Application.ProcessMessages; try Buffer := malloc(ChksumBlockSize); memset(Buffer, 0, ChksumBlockSize); except Application.MessageBox(LANGAnErrorOccuredWhileInitializingMemoryBlock, [mbOK], mbError, mbNone, mbOK); Exit; end; Time1 := Now; for i := 0 to List.Count - 1 do begin if Stop then Break; if i > 0 then Inc(OldPos, TFileListItem(List[i - 1]).Size); ProgressBar.Value := OldPos; ProgressBar.Text := Format('%d %%', [Trunc(ProgressBar.Fraction * 100)]); FileList.Items[i].Selected := True; FileList.Items[i].SetCursor(0, False, False, 0, 0); Application.ProcessMessages; Data := List[i]; CRC := 0; if Data.IsMD5 then MDInit(MDContext, MD_VERSION_5); Error := 0; FD := Engine.OpenFile(Data.FullPath, omRead, Error); if Error <> 0 then begin Data.Status := 3; Continue; end; repeat Count := Engine.ReadFile(FD, Buffer, ChksumBlockSize, Error); if Error <> 0 then begin Data.Status := 3; Engine.CloseFile(FD); Continue; end; if not Data.IsMD5 then CRC := CRC32(CRC, Buffer, Count) else MDUpdate(MDContext, Buffer^, Count); ProgressBar.Value := ProgressBar.Value + Count; ProgressBar.Text := Format('%d %%', [Trunc(ProgressBar.Fraction * 100)]); Application.ProcessMessages; until (Count < ChksumBlockSize) or Stop; Engine.CloseFile(FD); if Stop then Break; if not Data.IsMD5 then Data.Status := Ord(not (CRC = Data.CRC)) + 1 else begin MDFinal(MDContext, MDDigest); Data.Status := Ord(AnsiCompareText(Data.MD5, MDPrint(MDDigest)) <> 0) + 1; end; if Data.Status in [2, 3] then MarkAsBad(Data.FullPath); end; Time2 := Now; DebugMsg([Format('Checksum processing: %d:%3d = %.3f MB/s', [SecondOf(Time2 - Time1), MillisecondOf(Time2 - Time1), (MaxSize / (SecondOf(Time2 - Time1) + MillisecondOf(Time2 - Time1) / 1000)) / (1024 * 1024)])]); FileList.Items[List.Count - 1].RedrawRow; libc_free(Buffer); ProgressBar.Fraction := 1; CheckButton.Caption := LANGCheckButtonCaptionCheck; if Stop then begin StatLabel.Caption := LANGChecksumInterrupted; CheckButton.SetFocus; end else begin Error := 0; if List.Count > 0 then for i := 0 to List.Count - 1 do if TFileListItem(List[i]).Status <> 1 then Inc(Error); StatLabel.Caption := Format(LANGChecksumDOK, [Round(100 * (List.Count - Error) / List.Count)]); ActionArea.SetFocus; end; StatLabel.UseMarkup := True; Stop := False; Processing := False; end; procedure TFChecksum.MarkAsBad(const FileName: string); var i: integer; begin if DataList.Count > 0 then for i := 0 to DataList.Count - 1 do if (not PDataItem(DataList[i])^.IsDir) and (not PDataItem(DataList[i])^.UpDir) and (WideCompareText(Trim(PDataItem(DataList[i])^.FDisplayName), ExtractFileName(FileName)) = 0) then begin PDataItem(DataList[i])^.Selected := True; AListView.Items[i].RedrawRow; end; end; end. tuxcmd-0.6.70+dfsg/tuxcmd.res0000644000175000017500000000004011300022643015045 0ustar salvisalvi ÿÿÿÿtuxcmd-0.6.70+dfsg/UViewer.pas0000644000175000017500000004153011300022643015132 0ustar salvisalvi(* Tux Commander - UViewer - Internal viewer Copyright (C) 2008 Tomas Bzatek Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA WARNING: This is highly experimental feature, use with caution! *) unit UViewer; interface uses glib2, gdk2, gtk2, pango, SysUtils, Types, Classes, Variants, GTKControls, GTKForms, GTKUtils, GTKDialogs, GTKPixbuf, GTKClasses, GTKExtCtrls, GTKConsts, GTKText; type TFViewer = class(TGTKForm) // FDrawingArea: TGTKControl; TextView: TGTKTextView; ScrolledWindow: TGTKScrolledWindow; procedure FormCreate(Sender: TObject); override; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); // procedure DrawingAreaKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); procedure TextViewKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); private // LineHeight, NumLines: integer; LineBuffer: TStringList; protected AThread: TThread; public function LoadFile(FileName: string): boolean; end; TViewerThread = class(TThread) private // procedure DoIt; protected procedure Execute; override; public AViewer: TFViewer; constructor Create(Parent: TComponent); destructor Destroy; override; function LoadFile(FileName: string): boolean; end; var FViewer: TFViewer; implementation uses UCoreUtils, UCoreClasses, UConfig, DateUtils, ULibc, UGnome; // function expose_event_callback(AWidget: PGtkWidget; event: PGdkEventExpose; data: gpointer): gboolean; cdecl; forward; function scroll_event_callback(widget: PGtkWidget; event: PGdkEventScroll; user_data: gpointer): gboolean; cdecl; forward; procedure TFViewer.FormCreate(Sender: TObject); begin SetDefaultSize(700, 500); Caption := 'TuxView'; BorderWidth := 5; AThread := nil; if @gtk_window_set_icon_name <> nil then gtk_window_set_icon_name(PGtkWindow(FWidget), 'text-x-generic'); // accessories-text-editor ScrolledWindow := TGTKScrolledWindow.Create(Self); ScrolledWindow.HorizScrollBarPolicy := sbAutomatic; ScrolledWindow.VertScrollBarPolicy := sbAutomatic; ScrolledWindow.ShadowType := stShadowIn; g_signal_connect(G_OBJECT(ScrolledWindow.FWidget), 'scroll-event', G_CALLBACK (@scroll_event_callback), Self); AddControl(ScrolledWindow); // ClientArea.AddControl(ScrolledWindow); (* FDrawingArea := TGTKControl.Create(Self); FDrawingArea.FWidget := gtk_drawing_area_new; gtk_widget_set_events(FDrawingArea.FWidget, GDK_EXPOSURE_MASK or GDK_BUTTON_PRESS_MASK or GDK_POINTER_MOTION_MASK or GDK_KEY_PRESS_MASK); gtk_widget_set_size_request(FDrawingArea.FWidget, 10000, 40000); g_signal_connect(G_OBJECT(FDrawingArea.FWidget), 'expose_event', G_CALLBACK (@expose_event_callback), Self); // g_signal_connect_after(G_OBJECT(FDrawingArea.FWidget), 'key_press_event', G_CALLBACK (@key_press_event_callback), NULL); gtk_widget_set(FDrawingArea.FWidget, 'can_focus', TRUE, 0); gtk_widget_set(FDrawingArea.FWidget, 'can_default', TRUE, 0); gtk_widget_show(FDrawingArea.FWidget); FDrawingArea.OnKeyDown := DrawingAreaKeyDown; ScrolledWindow.AddWithViewPort(FDrawingArea); FDrawingArea.SetFocus; *) TextView := TGTKTextView.Create(Self); TextView.CursorVisible := False; TextView.ReadOnly := True; TextView.OnKeyDown := TextViewKeyDown; ScrolledWindow.AddControl(TextView); TextView.SetFocus; // ****************** OnKeyDown := FormKeyDown; OnDestroy := FormDestroy; OnClose := FormClose; end; procedure TFViewer.FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); begin if Key = GDK_ESCAPE then Close; end; procedure TFViewer.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; SetParent(nil); if Assigned(FWidget) and GTK_IS_WIDGET(FWidget) then gtk_widget_destroy(PGtkWidget(FWidget)); // AThread.Terminate; // ModalResult := mbOK; end; procedure TFViewer.FormDestroy(Sender: TObject); begin try LineBuffer.Free; except end; end; procedure smooth_scroll(adj: PGtkAdjustment; dest_value: Double; PageScroll: boolean); var increment, val: Double; i: gulong; timer: PGTimer; microseconds, dur, st: gulong; begin if gtk_adjustment_get_value(adj) = dest_value then Exit; if not ConfUseSmoothScrolling then begin gtk_adjustment_set_value(adj, dest_value); Exit; end; if not PageScroll then begin dur := SMOOTH_SCROLL_DURATION; st := SMOOTH_SCROLL_STEPS; end else begin dur := SMOOTH_SCROLL_DURATION_PAGE; st := SMOOTH_SCROLL_STEPS_PAGE; end; timer := g_timer_new; increment := (dest_value - gtk_adjustment_get_value(adj)) / st; val := gtk_adjustment_get_value(adj); // DebugMsg(['Start value ', val]); i := 1; g_timer_start(timer); repeat g_timer_elapsed(timer, @microseconds); if (microseconds > i*1000*dur / st) and (i < st) then begin val := val + increment; gtk_adjustment_set_value(adj, val); // DebugMsg(['Setting value to ', val]); Inc(i); end; gdk_window_process_all_updates; usleep(100); until (microseconds div 1000) > dur; gtk_adjustment_set_value(adj, dest_value); gdk_window_process_all_updates; // DebugMsg(['End value ', dest_value]); g_timer_stop(timer); { g_timer_elapsed(timer, @microseconds); DebugMsg(['Smooth scroll: required = ', dur, 'ms, elapsed = ', Integer(microseconds div 1000), 'ms, iterations = ', x]); } g_timer_destroy(timer); end; procedure TFViewer.TextViewKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); var vadj, hadj: PGtkAdjustment; x: Double; begin vadj := gtk_scrolled_window_get_vadjustment(PGtkScrolledWindow(ScrolledWindow.FWidget)); hadj := gtk_scrolled_window_get_hadjustment(PGtkScrolledWindow(ScrolledWindow.FWidget)); // debugmsg(['lower = ', adj^.lower, ', upper = ', adj^.upper, ', value = ', x, ', page_size = ', adj^.page_size]); Accept := True; case Key of GDK_HOME: begin smooth_scroll(vadj, 0, True); smooth_scroll(hadj, 0, True); Accept := False; end; GDK_END: begin smooth_scroll(vadj, vadj^.upper - vadj^.page_size, True); Accept := False; end; GDK_Page_Down, GDK_SPACE: begin x := gtk_adjustment_get_value(vadj) + vadj^.page_increment; if x + vadj^.page_size > vadj^.upper then x := vadj^.upper - vadj^.page_size; smooth_scroll(vadj, x, True); Accept := False; end; GDK_Page_Up: begin x := gtk_adjustment_get_value(vadj) - vadj^.page_increment; if x < 0 then x := 0; smooth_scroll(vadj, x, True); Accept := False; end; GDK_Down: begin x := gtk_adjustment_get_value(vadj) + vadj^.step_increment; if x + vadj^.page_size > vadj^.upper then x := vadj^.upper - vadj^.page_size; smooth_scroll(vadj, x, False); Accept := False; end; GDK_Up: begin x := gtk_adjustment_get_value(vadj) - vadj^.step_increment; if x < 0 then x := 0; smooth_scroll(vadj, x, False); Accept := False; end; GDK_Right: begin x := gtk_adjustment_get_value(hadj) + hadj^.step_increment; if x + hadj^.page_size > hadj^.upper then x := hadj^.upper - hadj^.page_size; smooth_scroll(hadj, x, False); Accept := False; end; GDK_Left: begin x := gtk_adjustment_get_value(hadj) - hadj^.step_increment; if x < 0 then x := 0; smooth_scroll(hadj, x, False); Accept := False; end; GDK_W, GDK_Capital_W: if (Shift = []) then begin if TextView.WrapMode = wmWrapNone then TextView.WrapMode := wmWrapWord else TextView.WrapMode := wmWrapNone; Accept := False; end; // GDK_C, GDK_Capital_C, GDK_Insert: if (ssCtrl in Shift) then Accept := True; GDK_S, GDK_Capital_S: if (Shift = []) then begin gtk_widget_modify_font(TextView.FWidget, pango_font_description_from_string('Monospace')); Accept := False; end; GDK_A, GDK_Capital_A: if (Shift = []) then begin gtk_widget_modify_font(TextView.FWidget, nil); Accept := False; end; end; end; function scroll_event_callback(widget: PGtkWidget; event: PGdkEventScroll; user_data: gpointer): gboolean; cdecl; var vadj: PGtkAdjustment; x: Double; begin vadj := gtk_scrolled_window_get_vadjustment(PGtkScrolledWindow(TFViewer(user_data).ScrolledWindow.FWidget)); Result := True; case event^.direction of GDK_SCROLL_UP: begin x := gtk_adjustment_get_value(vadj) - 1.5*vadj^.step_increment; if x < 0 then x := 0; smooth_scroll(vadj, x, False); end; GDK_SCROLL_DOWN: begin x := gtk_adjustment_get_value(vadj) + 1.5*vadj^.step_increment; if x + vadj^.page_size > vadj^.upper then x := vadj^.upper - vadj^.page_size; smooth_scroll(vadj, x, False); end; end; end; (* procedure TFViewer.DrawingAreaKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); var adj: PGtkAdjustment; x: integer; begin Accept := True; adj := gtk_scrolled_window_get_vadjustment(PGtkScrolledWindow(ScrolledWindow.FWidget)); case Key of GDK_ESCAPE: Close; GDK_Down: begin x := Trunc(gtk_adjustment_get_value(adj)) + LineHeight; if x + Trunc(adj^.page_size) > LineHeight * NumLines then x := LineHeight * NumLines - Trunc(adj^.page_size); gtk_adjustment_set_value(adj, x); end; GDK_Up: begin x := Trunc(gtk_adjustment_get_value(adj)) - LineHeight; if x < 0 then x := 0; gtk_adjustment_set_value(adj, x); end; GDK_space: begin x := Trunc(gtk_adjustment_get_value(adj) + adj^.page_increment); if x + Trunc(adj^.page_size) > LineHeight * NumLines then x := LineHeight * NumLines - Trunc(adj^.page_size); gtk_adjustment_set_value(adj, x); end; end; { if event^.keyval = 65364 then begin // Down adj := gtk_scrolled_window_get_vadjustment(PGtkScrolledWindow(scrolledWindow)); x := Trunc(gtk_adjustment_get_value(adj)) + LineHeight; if x + Trunc(adj^.page_size) > LineHeight * NumLines then x := LineHeight * NumLines - Trunc(adj^.page_size); gtk_adjustment_set_value(adj, x); end; if event^.keyval = 65362 then begin // Up adj := gtk_scrolled_window_get_vadjustment(PGtkScrolledWindow(scrolledWindow)); x := Trunc(gtk_adjustment_get_value(adj)) - LineHeight; if x < 0 then x := 0; gtk_adjustment_set_value(adj, x); end; if (event^.keyval = 65366) or (event^.keyval = 32) then begin // PageDown, Space adj := gtk_scrolled_window_get_vadjustment(PGtkScrolledWindow(scrolledWindow)); x := Trunc(gtk_adjustment_get_value(adj) + adj^.page_increment); if x + Trunc(adj^.page_size) > LineHeight * NumLines then x := LineHeight * NumLines - Trunc(adj^.page_size); gtk_adjustment_set_value(adj, x); end; if event^.keyval = 65365 then begin // PageUp adj := gtk_scrolled_window_get_vadjustment(PGtkScrolledWindow(scrolledWindow)); x := Trunc(gtk_adjustment_get_value(adj) - adj^.page_increment); if x < 0 then x := 0; gtk_adjustment_set_value(adj, x); end; if event^.keyval = 65360 then begin // Home adj := gtk_scrolled_window_get_vadjustment(PGtkScrolledWindow(scrolledWindow)); gtk_adjustment_set_value(adj, 0); end; if event^.keyval = 65367 then begin // End adj := gtk_scrolled_window_get_vadjustment(PGtkScrolledWindow(scrolledWindow)); gtk_adjustment_set_value(adj, LineHeight * NumLines - adj^.page_size); end; } end; *) (********************************************************************************************************************************) (* function expose_event_callback(AWidget: PGtkWidget; event: PGdkEventExpose; data: gpointer): gboolean; cdecl; var Layout: PPangoLayout; s: string; i, LineFrom, LineTo: integer; var Cursor: PGdkCursor; begin // Count the visible lines LineFrom := (event^.area.y div TFViewer(data).LineHeight) - 1; if LineFrom < 0 then LineFrom := 0; LineTo := ((event^.area.y + event^.area.height) div TFViewer(data).LineHeight) + 1; // if LineTo > MaxLineNum then LineTo := MaxLineNum; // DebugMsg(['Rendering lines ', LineFrom, ' - ', LineTo, '; expose_area: [', event^.area.x, ', ', event^.area.y, '] - ', event^.area.width, 'x', event^.area.height]); gdk_draw_rectangle(PGdkDrawable(Awidget^.window), Awidget^.style^.white_gc, Integer(TRUE), event^.area.x, event^.area.y, event^.area.width, event^.area.height); Layout := pango_layout_new(gtk_widget_get_pango_context(Awidget)); for i := LineFrom to LineTo do begin // s := Format('This is the text on the line %d. Hope the rendering will be fast', [i]); if i < TFViewer(data).LineBuffer.Count then s := {ANSIToUTF8(}TFViewer(data).LineBuffer[i] else s := ''; pango_layout_set_text(Layout, PChar(s), Length(PChar(s))); gdk_draw_layout(PGdkDrawable(Awidget^.window), Awidget^.style^.fg_gc[GTK_WIDGET_STATE (Awidget)], 5, i * TFViewer(data).LineHeight, Layout); end; g_object_unref(Layout); ( * gdk_draw_arc(PGdkDrawable(Awidget^.window), Awidget^.style^.fg_gc[GTK_WIDGET_STATE (Awidget)], Integer(TRUE), 0, 0, 500, 500, {Awidget^.allocation.width, Awidget^.allocation.height,} 0, 64 * 360); * ) // !!!!!!!!!!!! Toto oddelat (musi se volat asi po Application.ProcessMessages (se mne nechtelo s tim drbat tady)) cursor := gdk_cursor_new(152); gdk_window_set_cursor(AWidget^.window, cursor); gdk_cursor_unref(cursor); Result := True; end; *) function TFViewer.LoadFile(FileName: string): boolean; var Valid: boolean; i: integer; begin Result := False; try LineBuffer := TStringList.Create; LineBuffer.LoadFromFile(FileName); Valid := True; for i := 0 to Min(100, LineBuffer.Count - 1) do begin Valid := Valid and g_utf8_validate(PChar(LineBuffer[i]), Length(LineBuffer[i]), nil); if not Valid then begin DebugMsg(['** TFViewer.LoadFile(', FileName, ', Line ', i + 1, ') is not UTF-8 valid.']); Break; end; end; if Valid then begin for i := 0 to LineBuffer.Count - 1 do TextView.Lines.InsertText(String(EnsureUTF8String(PChar(LineBuffer[i]))) + #10); end else begin for i := 0 to LineBuffer.Count - 1 do TextView.Lines.InsertText(StrToUTF8(LineBuffer[i]) + #10); end; { LineHeight := 16; NumLines := LineBuffer.Count; } Caption := Format('TuxView [%s]', [StrToUTF8(FileName)]); // FDrawingArea.SetSizeRequest(-1, NumLines * LineHeight); Result := True; except Exit; end; end; (********************************************************************************************************************************) procedure TViewerThread.Execute; begin gdk_threads_enter; // DoIt; AViewer.Show; // AViewer.Run; gdk_threads_leave; end; constructor TViewerThread.Create(Parent: TComponent); begin AViewer := TFViewer.Create(Parent); AViewer.AThread := Self; FreeOnTerminate := True; inherited Create(True); end; destructor TViewerThread.Destroy; begin { AViewer.Free; inherited Destroy; } end; function TViewerThread.LoadFile(FileName: string): boolean; begin Result := AViewer.LoadFile(FileName); end; {procedure TViewerThread.DoIt; begin Application.MessageBox('ddd') end; } end. tuxcmd-0.6.70+dfsg/translations/0000755000175000017500000000000011300022643015555 5ustar salvisalvituxcmd-0.6.70+dfsg/translations/UTranslation_PT.pas0000644000175000017500000025500211300022643021314 0ustar salvisalvi(* Tux Commander - UTranslation_PT - Portuguese Localization constants Copyright (C) 2009 Américo Monteiro 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UTranslation_PT; interface implementation uses ULocale; const LANGptF2Button_Caption = 'F2 - Renomear'; LANGptF3Button_Caption = 'F3 - Ver'; LANGptF4Button_Caption = 'F4 - Editar'; LANGptF5Button_Caption = 'F5 - Copiar'; LANGptF6Button_Caption = 'F6 - Mover'; LANGptF7Button_Caption = 'F7 - Criar Directório'; LANGptF8Button_Caption = 'F8 - Apagar'; LANGptmnuFile_Caption = '_Ficheiro'; LANGptmnuMark_Caption = '_Selecção'; LANGptmnuCommands_Caption = '_Comandos'; LANGptmnuHelp_Caption = '_Ajuda'; LANGptmiExit_Caption = 'Te_rminar'; LANGptmiSelectGroup_Caption = 'Seleccionar _Grupo...'; LANGptmiUnselectGroup_Caption = '_Desmarcar Selecção de Grupo...'; LANGptmiSelectAll_Caption = '_Seleccionar Todos'; LANGptmiUnselectAll_Caption = 'D_esmarcar Selecção de Todos'; LANGptmiInvertSelection_Caption = '_Inverter Selecção'; LANGptmiRefresh_Caption = '_Refrescar'; LANGptmiAbout_Caption = '_Acerca de...'; LANGptColumn1_Caption = 'Nome'; LANGptColumn2_Caption = 'Extensão'; LANGptColumn3_Caption = 'Tamanho'; LANGptColumn4_Caption = 'Data'; LANGptColumn5_Caption = 'Atributos'; LANGptExpandSelection = 'Expandir selecção'; LANGptShrinkSelection = 'Encolher selecção'; LANGptNoMatchesFound = 'Nenhuma correspondência encontrada'; LANGptNoFilesSelected = 'Nenhum ficheiro seleccionado!'; LANGptSelectedFilesDirectories = '%d ficheiros/directórios seleccionados'; LANGptDirectoryS = 'directório %s'; LANGptFileS = 'ficheiro %s'; LANGptDoYouReallyWantToDeleteTheS = 'Deseja realmente apagar o %s ?'; LANGptDoYouReallyWantToDeleteTheSS = 'Deseja realmente apagar o %s ?'#10'%s'; LANGptCopyFiles = 'Copiar ficheiros'; LANGptMoveRenameFiles = 'Mover/Renomear ficheiros'; LANGptCopyDFileDirectoriesTo = 'Copiar %d ficheiros/directórios para'; LANGptMoveRenameDFileDirectoriesTo = 'Mover/Renomear %d ficheiros/directórios para'; LANGptCopySC = 'Copiar:'; LANGptMoveRenameSC = 'Mover/Renomear:'; LANGptQuickFind = ' Procura Rápida:'; LANGptAboutString = 'Tux Commander'#10'Versão %s'#10'Data de compilação: %s'#10#10'Copyright (c) 2009 Tomas Bzatek'#10'E-mail: tbzatek@users.sourceforge.net'#10'Website: http://tuxcmd.sourceforge.net/'; LANGptAboutStringGnome = 'versão %s'#10'Data de compilação: %s'#10'Website: http://tuxcmd.sourceforge.net/'; LANGptDiskStatFmt = '%s de %s livres'; // LANGenDiskStatFmt = '%s of %s free'; LANGptDiskStatVolNameFmt = '[%s] %s de %s livres'; // LANGenDiskStatVolNameFmt = '[%s] %s of %s free'; // LANGenDiskStatVolNameFmt = '[%s] %s of %s free'; LANGptStatusLineFmt = '%s de %s em %d de %d ficheiros seleccionados'; LANGptPanelStrings : array[boolean] of string = ('direita', 'esquerda'); LANGptDIR = ''; LANGptErrorGettingListingForSPanel = 'Erro ao obter lista para o painel %s :'#10' %s'#10#10'Caminho = ''%s'''; LANGptErrorGettingListingForSPanelNoPath = 'Erro ao obter lista para o painel %s :'#10' %s'; LANGptErrorCreatingNewDirectorySInSPanel = 'Erro ao criar novo directório ''%s'' no painel %s :'#10' %s'; LANGptErrorCreatingNewDirectorySInSPanelNoPath = 'Erro ao criar novo directório no painel %s :'#10' %s'; LANGptTheFileDirectory = 'O ficheiro/directório'; LANGptCouldNotBeDeleted = 'não pôde ser apagado'; LANGptCouldNotBeDeletedS = 'não pôde ser apagado: %s'; LANGptUserCancelled = 'Cancelado pelo utilizador!'; LANGptTheDirectorySIsNotEmpty = 'O directório %s não está vazio!'; LANGptCannotCopyFile = 'Incapaz de copiar o ficheiro'; LANGptCopyError = 'Erro ao copiar'; LANGptMoveError = 'Erro ao mover'; LANGptOverwriteS = 'Sobrescrever: %s'; LANGptWithFileS = 'Com o ficheiro: %s'; LANGptOvewriteSBytesS = '%s bytes, %s'; LANGptTheFile = 'O ficheiro'; LANGptCopy = 'Copiar'; LANGptMove = 'Mover'; LANGptTheDirectory = 'O directório'; LANGptTheSymbolicLink = 'O link simbólico'; LANGptCannotMoveFile = 'Incapaz de mover o ficheiro'; LANGptCouldNotBeCreated = 'não pôde ser criado'; LANGptCouldNotBeCreatedS = 'não pôde ser criado: %s'; LANGptFromS = 'De: %s'; LANGptToS = 'Para: %s'; LANGptCannotCopyFileToItself = 'Não se pode copiar o ficheiro para ele próprio'; LANGptMemoryAllocationFailed = 'Falha de alocação de memória:'; LANGptCannotOpenSourceFile = 'Incapaz de abrir o ficheiro de origem'; LANGptCannotOpenDestinationFile = 'Incapaz de abrir o ficheiro de destino'; LANGptCannotCloseDestinationFile = 'Incapaz de fechar o ficheiro de destino'; LANGptCannotCloseSourceFile = 'Incapaz de fechar ficheiro de origem'; LANGptCannotReadFromSourceFile = 'Incapaz de ler do ficheiro de origem'; LANGptCannotWriteToDestinationFile = 'Incapaz de escrever no ficheiro de destino'; LANGptUnknownException = 'Excepção Desconhecida'; LANGptNoAccess = 'Sem Acesso'; LANGptUnknownError = 'Erro Desconhecido'; LANGptCreateANewDirectory = 'Criar um novo directório'; LANGptEnterDirectoryName = 'Inserir nome do _directório:'; LANGptOverwriteQuestion = 'Sobrescrever questão'; LANGptOverwriteButton_Caption = 'S_obrescrever'; LANGptOverwriteAllButton_Caption = 'Sobrescrever _todos'; LANGptSkipButton_Caption = '_Saltar'; LANGptOverwriteAllOlderButton_Caption = 'Sobrescrever todos os a_ntigos'; LANGptSkipAllButton_Caption = 'Sa_ltar todos'; LANGptRenameButton_Caption = '_Renomear'; LANGptAppendButton_Caption = 'A_crescentar'; LANGptRename = 'Renomear'; LANGptRenameFile = 'Renomear ficheiro ''%s'' para'; LANGptIgnoreButton_Caption = '_Ignorar'; LANGptProgress = 'Progresso'; LANGptCancel = '_Cancelar'; LANGptDelete = 'Apagar:'; LANGptSpecifyFileType = '_Especificar tipo de ficheiro:'; LANGptRemoveDirectory = 'Apagar directório'; LANGptDoYouWantToDeleteItWithAllItsFilesAndSubdirectories = 'Deseja apagá-lo com todos os seus ficheiros e sub-directórios?'; LANGptRetry = 'Tenta_r de novo'; LANGptDeleteButton_Caption = '_Apagar'; LANGptAll = '_Todos'; LANGptCopyFilesSC = 'Copiar ficheiros:'; LANGptAppendQuestion = 'Tem certeza que deseja acrescentar o ficheiro ''%s'' ao ''%s''?'; LANGptPreparingList = 'Preparando a lista...'; LANGptYouMustSelectAValidFile = 'Você deve seleccionar um ficheiro válido!'; LANGptmiVerifyChecksums = '_Verificar sumários de verificação'; LANGptVerifyChecksumsCaption = 'Verificar sumários de verificação'; LANGptCheckButtonCaptionCheck = '_Verificar'; LANGptCheckButtonCaptionStop = '_Parar'; LANGptFileListTooltip = '[?] - Não verificado'#10'[OK] - Sumário de verificação OK'#10'[MAU] - Sumário de verificação errado'#10'[N/A] - Ficheiro não disponível'; LANGptFilenameColumnCaption = 'Nome do ficheiro'; LANGptTheFileSYouAreTryingToOpenIsQuiteBig = 'O ficheiro ''%s'' que está a tentar abrir é muito grande (%s bytes). Não deve ser um ficheiro de sumário de verificação válido.'#10#10'Deseja carregá-lo mesmo assim?'; LANGptAnErrorOccuredWhileInitializingMemoryBlock = 'Ocorreu um erro ao inicializar o bloco de memória. Feche alguns programas e tente de novo.'; LANGptAnErrorOccuredWhileOpeningFileSS = 'Ocorreu um erro ao abrir o ficheiro ''%s'':'#10' %s'; LANGptAnErrorOccuredWhileReadingFileSS = 'Ocorreu um erro ao ler o ficheiro ''%s'':'#10' %s'; LANGptChecksumNotChecked = 'Estado: Não verificado'; LANGptChecksumChecking = 'Estado: A verificar...'; LANGptChecksumInterrupted = 'Estado: Interrompido'; LANGptChecksumDOK = 'Estado: %d%% OK'; LANGptmiCreateChecksumsCaption = '_Criar sumários de verificação...'; LANGptYouMustSelectAtLeastOneFileToCalculateChecksum = 'Você tem que seleccionar pelo menos um ficheiro para calcular o sumário de verificação!'; LANGptCreateChecksumsCaption = 'Criar sumários de verificação'; LANGptCCHKSUMPage1Text = 'Você vai criar sumários de verificação para'#10'os ficheiros seleccionados. Se não seleccionou'#10'todos os ficheiros que deseja, feche este assistente e'#10'seleccione mais ficheiros.'; LANGptCCHKSUMPage4Text = 'O assistente está pronto para criar sumários de verificação para os'#10'ficheiros seleccionados. Esta operação pode demorar alguns minutos.'#10'Carregue em Avançar para continuar.'; LANGptCCHKSUMPage6Text = 'Aconteceram erros ao criar o sumário de verificação:'; LANGptCCHKSUMPage7Text = 'A criação de sumários de verificação está concluída'#10'e os seus ficheiros estão prontos.'#10#10'Clique em "Terminar" para sair.'; LANGptCCHKSUMPage1Title = 'Preparar ficheiros para sumário de verificação'; LANGptCCHKSUMPage2Title = 'Seleccionar tipo de ficheiro de sumário de verificação'; LANGptCCHKSUMPage3Title = 'Escolher nome de ficheiro'; LANGptCCHKSUMPage4Title = 'Pronto para verificar'; LANGptCCHKSUMPage5Title = 'Processando...'; LANGptCCHKSUMPage6Title = 'Erro!'; LANGptCCHKSUMPage7Title = 'Terminado'; LANGptCCHKSUMSFVFile = 'ficheiro SFV'; LANGptCCHKSUMMD5sumFile = 'ficheiro MD5sum'; LANGptCCHKSUMFileName = '_Nome do Ficheiro:'; LANGptCCHKSUMCreateSeparateChecksumFiles = 'Criar ficheiros de sumário de verificação _separados'; LANGptCCHKSUMNowProcessingFileS = 'A processar o ficheiro: %s'; LANGptCCHKSUMFinishCaption = '_Terminar'; LANGptCCHKSUMAreYouSureYouWantToAbortTheProcessing = 'Tem certeza que deseja abortar o processamento?'; LANGptCCHKSUMAnErrorOccuredWhileOpeningFileSS = 'Ocorreu um erro ao abrir o ficheiro ''%s'': %s'#10; LANGptCCHKSUMAnErrorOccuredWhileReadingFileSS = 'Ocorreu um erro ao ler o ficheiro ''%s'': %s'#10; LANGptCCHKSUMAnErrorOccuredWhileWritingFileSS = 'Ocorreu um erro ao escrever no ficheiro ''%s'': %s'#10; LANGptAnErrorOccuredWhileWritingFileSS = 'Ocorreu um erro ao escrever no ficheiro ''%s'':'#10' %s'; LANGptTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt = 'O ficheiro de destino ''%s'' já existe. Deseja sobrescrevê-lo?'; LANGptTheTargetFileSCannotBeRemovedS = 'O ficheiro de destino ''%s'' não pode ser removido: %s'; LANGptMergeCaption = 'Fusão'; LANGptPleaseInsertNextDiskOrGiveDifferentLocation = 'Por favor insira o próximo disco, ou escolha uma localização diferente:'; LANGptMergeOfSSucceeded = 'Fusão de ''%s'' com sucesso (sumário de verificação CRC OK).'; LANGptWarningCreatedFileFailsCRCCheck = 'Aviso: Ficheiro criado falhou na verificação CRC!'; LANGptMergeOfSSucceeded_NoCRCFileAvailable = 'Fusão de ''%s'' com sucesso (nenhum ficheiro CRC disponível).'; LANGptMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory = 'Fusão de ''%s'' e todos os ficheiros com nomes ascendentes para o directório seguinte:'; LANGptMergeSC = 'Fusão:'; LANGptmiSplitFileCaption = '_Dividir Ficheiro...'; LANGptmiMergeFilesCaption = '_Fundir Ficheiros...'; LANGptSplitTheFileSToDirectory = '_Dividir o ficheiro ''%s'' para o directório:'; LANGptSplitSC = 'Dividir:'; LANGptSplitFile = 'Dividir Ficheiro'; LANGptBytesPerFile = '_Bytes por ficheiro:'; LANGptAutomatic = 'Automático'; LANGptDeleteFilesOnTargetDisk = '_Apagar ficheiros no disco de destino (utilizável para media amovível)'; LANGptSplitCaption = 'Dividir'; LANGptCannotOpenFileS = 'Incapaz de abrir o ficheiro ''%s'''; LANGptCannotSplitTheFileToMoreThan999Parts = 'Não pode dividir o ficheiro em mais de 999 partes!'; LANGptThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem = 'Existem alguns ficheiros no directório de destino:'#10'%s'#10'Deseja apagá-los?'; LANGptThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem = 'Existem %d ficheiros no directório de destino. Deseja apagá-los?'; LANGptAnErrorOccuredWhileOperationS = 'Ocorreu um erro durante a operação: %s'; LANGptSplitOfSSucceeded = 'Divisão de ''%s'' com sucesso.'; LANGptSplitOfSFailed = 'Divisão de ''%s'' falhada!'; LANGptmnuShow_Caption = 'Mos_trar'; LANGptmiShowDotFiles_Caption = 'Mostrar ficheiros _escondidos'; LANGptTheFileYouAreTryingToOpenIsQuiteBig = 'O ficheiro que está a tentar abrir é muito grande. Carregá-lo numa aplicação externa (como o gedit) pode causar lentidão no sistema.'#10'Deseja continuar?'; LANGptCannotExecuteSPleaseCheckTheConfiguration = 'Incapaz de executar ''%s''. Por favor verifique a configuração ou defina correctamente a associação do tipo de ficheiro.'; LANGptEdit = 'Editar'; LANGptEnterFilenameToEdit = '_Indicar o nome de ficheiro para editar:'; LANGptmnuSettings_Caption = 'De_finições'; LANGptmiFileTypes_Caption = '_Tipos de ficheiros...'; LANGptThereIsNoApplicationAssociatedWithS = 'Não há nenhuma aplicação associada com "%s".'#10#10'Você pode configurar o Tux Commander para associar aplicações com tipos de ficheiros. Deseja associar uma aplicação a este tipo de ficheiro agora?'; LANGptErrorExecutingCommand = 'Erro ao executar comando!'; LANGptEditFileTypesCaption = 'Editar Tipos de Ficheiros'; LANGptTitleLabel_Caption = 'Configuração de Tipos de Ficheiros'; LANGptExtensionsColumn = 'Extensões'; LANGptDescriptionColumn = 'Descrição'; LANGptFileTypesList = 'Lista de tipos de ficheiros'; LANGptActionName = 'Nome da Acção'; LANGptCommand = 'Comando'; LANGptSetDefaultActionButton_Caption = '_Definir como predefinição'; LANGptRunInTerminalCheckBox_Caption = 'Correr no _Terminal'; LANGptAutodetectCheckBox_Caption = 'Autodetectar aplicação _GUI'; LANGptBrowseButton_Caption = '_Navegar...'; LANGptCommandLabel_Caption = 'Co_mando:'; LANGptDescriptionLabel_Caption = 'D_escrição:'; LANGptFNameExtLabel_Caption = 'A_dicionar extensão:'; LANGptNotebookPageExtensions = 'Tipo de ficheiro'; LANGptNotebookPageActions = 'Acções'; LANGptDefault = ' (predefinição)'; LANGptCannotSaveFileTypeAssociationsBecauseOtherProcess = 'Incapaz de guardar as associações de tipos de ficheiros, porque outro processo actualizou-as enquanto esta aplicação corria.'; LANGptDefaultColor = 'Cor prede_finida'; LANGptIcon = '_Ãcone:'; LANGptBrowseForIcon = 'Procurar ícone'; LANGptSelectFileTypeColor = 'Seleccionar Cor do Tipo de Ficheiro'; LANGptColor = 'Co_r:'; LANGptmiChangePermissions_Caption = 'Alterar Per_missões...'; LANGptmiChangeOwner_Caption = 'Alterar _Dono/Grupo...'; LANGptmiCreateSymlink_Caption = 'Criar _link simbólico...'; LANGptmiEditSymlink_Caption = '_Editar Link simbólico...'; LANGptChmodProgress = 'Alterar permissões:'; LANGptChownProgress = 'Alterar dono:'; LANGptYouMustSelectAValidSymbolicLink = 'Você tem que seleccionar um link simbólico válido!'; LANGptPopupRunS = 'E_xecutar %s'; LANGptPopupOpenS = 'A_brir %s'; LANGptPopupGoUp = '_Subir'; LANGptPopupOpenWithS = 'Abrir com %s'; LANGptPopupDefault = ' (predefinição)'; LANGptPopupOpenWith = 'Abrir _com...'; LANGptPopupViewFile = '_Ver o ficheiro'; LANGptPopupEditFile = 'Ed_itar o ficheiro'; LANGptPopupMakeSymlink = 'Criar link _simbólico'; LANGptPopupRename = '_Renomear'; LANGptPopupDelete = '_Apagar'; LANGptDialogChangePermissions = 'Alterar permissões'; LANGptCouldNotBeChmoddedS = 'não pôde alterar permissões: %s'; LANGptDialogChangeOwner = 'Alterar dono'; LANGptCouldNotBeChownedS = 'não pôde alterar o dono: %s'; LANGptDialogMakeSymlink = 'Criar link simbólico'; LANGptDialogEditSymlink = 'Editar link simbólico'; LANGptFEditSymlink_Caption = 'Editar link simbólico'; LANGptFEditSymlink_SymbolicLinkFilename = 'Nome de ficheiro do link _simbólico:'; LANGptFEditSymlink_SymbolicLinkPointsTo = 'Link simbólico aponta _para:'; LANGptFChmod_Caption = 'Permissões de Acesso'; LANGptFChmod_PermissionFrame = 'Permissões'; LANGptFChmod_FileFrame = 'Ficheiro'; LANGptFChmod_ApplyRecursivelyFor = 'Aplicar _recursivamente para'; LANGptFChmod_miAllFiles = 'Todos os ficheiros e directórios'; LANGptFChmod_miDirectories = 'Apenas directórios'; LANGptFChmod_OctalLabel = '_Octal:'; LANGptFChmod_SUID = 'SUID - Definir ID de utilizador na execução'; LANGptFChmod_SGID = 'SGID - Definir ID do grupo na execução'; LANGptFChmod_Sticky = 'Bit Sticky'; LANGptFChmod_RUSR = 'RUSR - Ler pelo dono'; LANGptFChmod_WUSR = 'WUSR - Escrever pelo dono'; LANGptFChmod_XUSR = 'XUSR - Executar/Procurar pelo dono'; LANGptFChmod_RGRP = 'RGRP - Ler pelo grupo'; LANGptFChmod_WGRP = 'WGRP - Escrever pelo grupo'; LANGptFChmod_XGRP = 'XGRP - Executar/Procurar pelo grupo'; LANGptFChmod_ROTH = 'ROTH - Ler por outros'; LANGptFChmod_WOTH = 'WOTH - Escrever por outros'; LANGptFChmod_XOTH = 'XOTH - Executar/Procurar por outros'; LANGptFChmod_TextLabel = 'Texto: %s'; LANGptFChmod_FileLabel = 'Ficheiro: %s'#10'Texto: %s'#10 + 'Octal: %d'#10'Dono: %s'#10 + 'Grupo: %s'; LANGptFChown_Caption = 'Alterar dono/grupo'; LANGptFChown_OwnerFrame = 'Nome de utilizador'; LANGptFChown_GroupFrame = 'Nome do grupo'; LANGptFChown_FileFrame = 'Ficheiro'; LANGptFChown_ApplyRecursively = 'Aplicar _recursivamente'; LANGptFSymlink_Caption = 'Criar link simbólico'; LANGptFSymlink_ExistingFilename = 'Nome de ficheiro _Existente (nome do ficheiro para o qual o link simbólico irá apontar):'; LANGptFSymlink_SymlinkFilename = 'Nome de ficheiro do link _simbólico:'; LANGptmnuBookmarks_Caption = '_Favoritos'; LANGptmiAddBookmark_Caption = 'Adicionar Favorito'; LANGptmiEditBookmarks_Caption = 'Editar Favoritos'; LANGptBookmarkPopupDelete_Caption = '_Apagar'; LANGptmiPreferences_Caption = '_Preferências...'; LANGptTheCurrentDirectoryAlreadyExistsInTheBookmarksList = 'O directório actual já existe na lista de favoritos'; LANGptSomeOtherInstanceChanged = 'Outra instância do Tux Commander alterou a configuração. Deseja aplicar as novas definições?'#10#10'Aviso: Se você carregar em Não nesta altura, a configuração será sobrescrita quando esta instância terminar!'; LANGptPreferences_Caption = 'Preferências'; LANGptPreferences_TitleLabel_Caption = 'Preferências de Aplicação'; LANGptPreferences_GeneralPage = 'Geral'; LANGptPreferences_FontsPage = 'Fonts'; LANGptPreferences_ColorsPage = 'Cores'; LANGptPreferences_RowHeight = 'Altura das lin_has:'; LANGptPreferences_NumHistoryItems = 'Items no histórico da linha de co_mandos:'; LANGptPreferences_Default = 'Pre_definição'; LANGptPreferences_ClearReadonlyAttribute = 'Limpar atributo de só leitu_ra quando copia a partir de CD-ROM'; LANGptPreferences_DisableMouseRenaming = 'Desactivar reno_meação com o rato'; LANGptPreferences_ShowFiletypeIconsInList = 'Mostrar ícones de tipos de _ficheiros'; LANGptPreferences_ExternalAppsLabel = 'Programas Externos'; LANGptPreferences_Viewer = '_Visualizador:'; LANGptPreferences_Editor = '_Editor:'; LANGptPreferences_Terminal = '_Terminal:'; LANGptPreferences_ListFont = 'Font da lista:'; LANGptPreferences_Change = 'Alterar...'; LANGptPreferences_UseDefaultFont = 'Usar font pre_definida'; LANGptPreferences_Foreground = 'Primeiro plano'; LANGptPreferences_Background = 'Segundo plano'; LANGptPreferences_NormalItem = 'Item Normal:'; LANGptPreferences_SetToDefaultToUseGTKThemeColors = 'Definir a predefinição para usar tema de cores GTK'; LANGptPreferences_Cursor = 'Cursor:'; LANGptPreferences_InactiveItem = 'Item Inactivo:'; LANGptPreferences_SelectedItem = 'Item Seleccionado:'; LANGptPreferences_LinkItem = 'Links Simbólicos:'; LANGptPreferences_LinkItemHint = 'Definir a predefinição para mostrar links simbólicos usando cores de item normal'; LANGptPreferences_DotFileItem = 'Ficheiros escondidos:'; LANGptPreferences_DotFileItemHint = 'Definir a predefinição para mostrar ficheiros escondidos usando cores de item normal'; LANGptPreferences_BrowseForApplication = 'Procurar por aplicação'; LANGptPreferences_DefaultS = 'Predefinição: %s'; LANGptPreferences_SelectFont = 'Seleccionar font'; (*************** STRINGS ADDED TO v0.4.101 **********************************************************************************) LANGptBookmarkButton_Tooltip = 'Mostrar favoritos'; LANGptUpButton_Tooltip = 'Vai para o directório superior'; LANGptRootButton_Tooltip = 'Vai para o directório raiz (/)'; LANGptHomeButton_Tooltip = 'Vai para o directório pessoal (/home/user)'; LANGptLeftEqualButton_Tooltip = 'Mudar o painel direito para o mesmo directório'; LANGptRightEqualButton_Tooltip = 'Mudar o painel esquerdo para o mesmo directório'; LANGptmiShowDirectorySizes_Caption = 'Mostrar tamanhos dos d_irectórios'; LANGptmiTargetSource_Caption = 'Destino = F_onte'; LANGptFileTypeDirectory = 'Directório'; LANGptFileTypeFile = 'Ficheiro'; LANGptFileTypeMetafile = 'Isto é um meta-item comum'; LANGptPreferencesPanelsPage = 'Paineis'; LANGptPreferencesApplicationsPage = 'Aplicações'; LANGptPreferencesExperimentalPage = 'Experimental'; LANGptPreferencesSelectAllDirectoriesCheckBox_Caption = 'Seleccionar t_ambém os directórios quando selecciona todos'; LANGptPreferencesNewStyleAltOCheckBox_Caption = '_Novo estilo Alt+O'; LANGptPreferencesNewStyleAltOCheckBox_Tooltip = 'Ficar no mesmo directório quando se muda o directório do painel oposto ao pressionar Ctrl/Alt+O'; LANGptPreferencesShowFuncButtonsCheckBox_Caption = 'Mostrar botões de _teclas de função'; LANGptPreferencesSizeFormatLabel_Caption = 'Formato do Ta_manho:'; LANGptPreferencesmiSizeFormat1 = 'Sistema'; LANGptPreferencesmiSizeFormat6 = 'Dinâmico'; LANGptPreferencesAutodetectXApp = 'Autodetectar aplicação X'; LANGptPreferencesAlwaysRunInTerminal = 'Correr sempre no terminal'; LANGptPreferencesNeverRunInTerminal = 'Nunca correr no terminal'; LANGptPreferencesCmdLineBehaviourLabel_Caption = '_Executando a partir da linha de comandos:'; LANGptPreferencesFeatures = 'Recursos'; LANGptPreferencesDisableMouseRename_Tooltip = 'Você pode ainda executar a renomeação rápida ao pressionar Shift+F6'; LANGptPreferencesDisableFileTipsCheckBox_Caption = 'Desactivar dicas dos ficheiros'; LANGptPreferencesDisableFileTipsCheckBox_Tooltip = 'Não mostrar dicas do painel se o texto de uma coluna estiver truncado'; LANGptPreferencesShow = 'Mostrar'; LANGptPreferencesDirsInBoldCheckBox_Caption = 'Directórios em _negrito'; LANGptPreferencesDisableDirectoryBracketsCheckBox_Caption = 'Esconder os pa_rênteses dos directórios'; LANGptPreferencesOctalPermissionsCheckBox_Caption = 'Mostrar as permissões em _octal'; LANGptPreferencesOctalPermissionsCheckBox_Tooltip = 'Mostrar as permissões de ficheiro/directório como um número em vez de formato de texto (-rw-rw-rw-)'; LANGptPreferencesMovement = 'Movimento'; LANGptPreferencesLynxLikeMotionCheckBox_Caption = 'Movimento ao estilo _Lynx'; LANGptPreferencesInsertMovesDownCheckBox_Caption = '_Inserir move para baixo'; LANGptPreferencesSpaceMovesDownCheckBox_Caption = 'E_spaço move para baixo'; LANGptPreferencesViewer = 'Visualizador'; LANGptPreferencesCommandSC = 'Comando:'; LANGptPreferencesUseInternalViewer = 'Usar visualizador _interno'; LANGptPreferencesEditor = 'Editor'; LANGptPreferencesTerminal = 'Terminal'; LANGptPreferencesExperimentalFeatures = 'Recursos experimentais'; LANGptPreferencesExperimentalWarningLabel_Caption = 'Aviso: Estes recursos estão actualmente sob desenvolvimento e podem não funcionar correctamente. Use-os sob a sua responsabilidade!'; LANGptPreferencesFocusRefreshCheckBox_Caption = 'Executar _refrescamento na janela em primeiro plano'; LANGptPreferencesFocusRefreshCheckBox_Tooltip = 'Refrescamento muito lento do painel neste momento'; LANGptPreferencesWMCompatModeCheckBox_Caption = 'Modo de compatibilidade _WM'; LANGptPreferencesWMCompatModeCheckBox_Tooltip = 'Use se tem problemas com o gestor de janelas (por exemplo se o IceWM não executa a maximização da janela correctamente)'; LANGptPreferencesCompatUseLibcSystemCheckBox_Caption = 'Usar libc _system() para executar programas'; LANGptPreferencesCompatUseLibcSystemCheckBox_Tooltip = 'Use em caso de problemas de congelamento ou crash quando lança aplicações externas'; (*************** STRINGS ADDED TO v0.5.70 **********************************************************************************) LANGptmiSearchCaption2 = 'Bu_sca...'; LANGptmiNoMounterBarCaption = '_Não mostrar barra de montagem'; LANGptmiShowOneMounterBarCaption = 'Mostrar uma barra de m_ontagem'; LANGptmiShowTwoMounterBarCaption = 'Mostrar duas barras de mon_tagem'; LANGptmnuNetworkCaption = 'R_ede'; LANGptmiConnectionsCaption = '_Ligações...'; LANGptmiOpenConnectionCaption = 'Abrir ligaçã_o...'; LANGptmiQuickConnectCaption = 'Ligação rá_pida...'; LANGptmnuPluginsCaption = 'Pl_ugins'; LANGptmiTestPluginCaption = '_Testar plugin...'; LANGptmiMounterSettingsCaption = 'Definições de _Montagem...'; LANGptmiColumnsCaption = 'Colunas do P_ainel...'; LANGptmiSavePositionCaption = 'Guardar po_sição'; LANGptmiMountCaption = '_Montar'; LANGptmiUmountCaption = '_Desmontar'; LANGptmiEjectCaption = '_Ejectar'; LANGptmiDuplicateTabCaption = 'Duplicar separador actual'; LANGptmiCloseTabCaption = 'Fechar separador actual'; LANGptmiCloseAllTabsCaption = 'Fechar todos os separadores'; LANGptCannotDetermineDestinationEngine = 'Incapaz de determinar o motor de destino. Por favor indique o caminho correcto e tente de novo.'; LANGptCannotLoadFile = 'Incapaz de carregar o ficheiro ''%s''. Por favor verifique as permissões.'; LANGptMountPointDevice = 'Ponto de Montagem: %s'#10'Dispositivo: %s'; LANGptMountSC = 'Montar:'; LANGptNoPluginsFound = 'Nenhum plugin encontrado'; LANGptPluginAbout = 'Acerca de...'; LANGptCouldntOpenURI = 'Não pôde abrir o URI especificado. Por favor verifique a consistência do identificador de recurso e a permissão de acesso.'; LANGptPluginAboutInside = 'Plugin: %s'#10#10'%s'#10'%s'; LANGptAreYouSureCloseAllTabs = 'Tem certeza que deseja fechar todos os separadores inactivos?'; LANGptCouldntOpenURIArchive = 'Não pôde abrir o arquivo. Por favor verifique a consistência e permissões de acesso.'; LANGptThereIsNoModuleAvailable = 'Não existem módulos VFS disponíveis que possam lidar com esta ligação'; LANGptIgnoreError = 'Deseja realmente ignorar este erro? O ficheiro fonte irá então ser apagado'; LANGptErrorMount = 'Ocorreu um erro ao montar o dispositivo ''%s'':'#10#10; LANGptErrorUmount = 'Ocorreu um erro ao desmontar o dispositivo ''%s'':'#10#10; LANGptErrorEject = 'Ocorreu um erro ao ejectar o dispositivo ''%s'':'#10#10; LANGptMounterPrefs_Caption = 'Definições de Montagem'; LANGptMounterPrefs_TitleLabelCaption = 'Definições de Montagem'; LANGptMounterPrefs_ListViewFrameCaption = 'Montagem'; LANGptMounterPrefs_MountName = 'Nome da Montagem'; LANGptMounterPrefs_MountPoint = 'Ponto de Montagem'; LANGptMounterPrefs_Device = 'Dispositivo'; LANGptMounterPrefs_MoveUpButtonTooltip = 'Mover item para cima'; LANGptMounterPrefs_MoveDownButtonTooltip = 'Mover item para baixo'; LANGptMounterPrefs_UseFSTabDefaultsCheckBox = 'Usar items predefinidos da _fstab'; LANGptMounterPrefs_UseFSTabDefaultsCheckBoxTooltip = 'Ao activar isto, a barra de montagem será preenchida pelos items predefinidos encontrados em /etc/fstab (ficheiro de lista de montagens do sistema)'; LANGptMounterPrefs_ToggleModeCheckBox = 'Botões ficam pressiona_dos quando montados'; LANGptMounterPrefs_ToggleModeCheckBoxTooltip = 'Quando activo, os botões de montagem irão ficar pressionados se o dispositivo estiver montado; outro clique irá causar a desmontagem dele (ejectar neste caso)'; LANGptMounterPrefs_PropertiesFrameCaption = 'Propriedades do item de montagem'; LANGptMounterPrefs_DisplayTextLabelCaption = '_Texto Mostrado:'; LANGptMounterPrefs_MountPointLabelCaption = '_Ponto de Montagem:'; LANGptMounterPrefs_MountDeviceLabelCaption = '_Dispositivo:'; LANGptMounterPrefs_DeviceTypeLabelCaption = 'T_ipo de Dispositivo:'; LANGptMounterPrefs_miLocalDiskCaption = 'Disco local'; LANGptMounterPrefs_miRemovableCaption = 'Amovível'; LANGptMounterPrefs_miCDCaption = 'Leitor de CD/DVD'; LANGptMounterPrefs_miFloppyCaption = 'Leitor de disquetes'; LANGptMounterPrefs_miNetworkCaption = 'Rede'; LANGptMounterPrefs_MountCommandLabelCaption = '_Comando de Montagem:'; LANGptMounterPrefs_UmountCommandLabelCaption = 'C_omando de Desmontagem:'; LANGptMounterPrefs_MountCommandEntryTooltip = 'Sintaxe: use %dev para substituir o dispositivo e %dir para ponto de montagem ou deixe vazio para usar predefinição'#10'Nota: cuidado com comandos interactivos, o tuxcmd pode congelar!'#10'Ex: smbmount %dev %dir -o username=netuser,password=somepass'; LANGptMounterPrefs_UmountCommandEntryTooltip = 'Sintaxe: use %dev para substituição do dispositivo e %dir para o ponto de montagem ou deixe em vazio para montagem predefinida'#10'Exemplo: smbumount $dir'; LANGptMounterPrefs_IconLabelCaption = '_Ãcone:'; LANGptConnMgr_Caption = 'Abrir Nova Ligação'; LANGptConnMgr_ConnectButton = '_Ligar'; LANGptConnMgr_OpenConnection = 'Abrir Ligação'; LANGptConnMgr_NameColumn = 'Nome'; LANGptConnMgr_URIColumn = 'URI'; LANGptConnMgr_AddConnectionButtonCaption = '_Adicionar site...'; LANGptConnMgr_AddConnectionButtonTooltip = 'Adicionar nova ligação'; LANGptConnMgr_EditButtonCaption = '_Editar...'; LANGptConnMgr_EditButtonTooltip = 'Editar ligação seleccionada'; LANGptConnMgr_RemoveButtonCaption = '_Remover site'; LANGptConnMgr_RemoveButtonTooltip = 'Apagar ligação seleccionada'; LANGptConnMgr_DoYouWantDelete = 'Deseja realmente apagar a ligação ''%s''?'; LANGptConnProp_FTP = 'FTP'; LANGptConnProp_SFTP = 'SFTP (subsistema ssh)'; LANGptConnProp_SMB = 'Partilha do Windows (SMB)'; LANGptConnProp_HTTP = 'WebDAV (HTTP)'; LANGptConnProp_HTTPS = 'WebDAV seguro (HTTPS)'; LANGptConnProp_Other = 'Outro (por favor especifique em URI)'; LANGptConnProp_Caption = 'Propriedades da ligação'; LANGptConnProp_VFSModule = 'Módulo _VFS:'; LANGptConnProp_URI = '_URI:'; LANGptConnProp_URIEntryTooltip = 'URI correcto deverá conter prefixo do tipo de serviço e endereço do servidor'; LANGptConnProp_DetailedInformations = 'Informações detalhadas'; LANGptConnProp_Name = '_Nome:'; LANGptConnProp_Server = 'Se_rvidor[:porto]:'; LANGptConnProp_Username = 'Nom_e de utilizador:'; LANGptConnProp_UserNameEntryTooltip = 'Deixe vazio para login anónimo'; LANGptConnProp_Password = '_Palavra passe:'; LANGptConnProp_TargetDirectory = '_Directório de destino:'; LANGptConnProp_ServiceType = 'Tipo de _Serviço:'; LANGptConnProp_MaskPassword = '_Mascarar a palavra passe'; LANGptConnProp_MenuItemCaption = 'Predefinição (todos os módulos apropriados)'; LANGptConnLogin_Caption = 'Necessária Autenticação'; LANGptConnLogin_Login = 'Login'; LANGptConnLogin_ExperimentalWarningLabelCaption = 'Você tem que fazer login para aceder a %s'; LANGptConnLogin_Username = 'Nome de _utilizador:'; LANGptConnLogin_Password = '_Palavra passe:'; LANGptConnLogin_AnonymousCheckButton = '_Anónimo'; LANGptColumns_Caption = 'Definições das Colunas do Painel'; LANGptColumns_Title = 'Definições das Colunas do Painel'; LANGptColumns_MoveUpButtonTooltip = 'Mover item para cima'; LANGptColumns_MoveDownButtonTooltip = 'Mover item para baixo'; LANGptColumns_TitlesLongName = 'Nome'; LANGptColumns_TitlesLongNameExt = 'Nome + Extensão'; LANGptColumns_TitlesLongExt = 'Extensão'; LANGptColumns_TitlesLongSize = 'Tamanho'; LANGptColumns_TitlesLongDateTime = 'Data + Hora'; LANGptColumns_TitlesLongDate = 'Data'; LANGptColumns_TitlesLongTime = 'Hora'; LANGptColumns_TitlesLongUser = 'User'; LANGptColumns_TitlesLongGroup = 'Grupo'; LANGptColumns_TitlesLongAttr = 'Atributos'; LANGptColumns_TitlesShortName = 'Nome'; LANGptColumns_TitlesShortNameExt = 'Nome'; LANGptColumns_TitlesShortExt = 'Extensão'; LANGptColumns_TitlesShortSize = 'Tamanho'; LANGptColumns_TitlesShortDateTime = 'Data'; LANGptColumns_TitlesShortDate = 'Data'; LANGptColumns_TitlesShortTime = 'Hora'; LANGptColumns_TitlesShortUser = 'Utilizador'; LANGptColumns_TitlesShortGroup = 'Grupo'; LANGptColumns_TitlesShortAttr = 'Atributo'; LANGptTestPlugin_Caption = 'Testar Plugin VFS'; LANGptTestPlugin_Title = 'Testar Plugin VFS'; LANGptTestPlugin_ExperimentalWarningLabelCaption = 'Aviso: O subsistema VFS e os seus plugins estão sob desenvolvimento e podem conter bugs. Use esta função sob sua responsabilidade!'; LANGptTestPlugin_Plugin = '_Plugin:'; LANGptTestPlugin_Command = 'Co_mando:'; LANGptTestPlugin_Username = 'Nome de _Utilizador:'; LANGptTestPlugin_Password = '_Palavra passe:'; LANGptTestPlugin_AnonymousCheckButton = 'Login _anónimo (não chama o VFSLogin)'; LANGptTestPlugin_NoPluginsFound = 'Nenhum plugin encontrado'; LANGptRemoteWait_Caption = 'Operação em progresso'; LANGptRemoteWait_OperationInProgress = 'Operação em progresso, por favor seja paciente...'; LANGptRemoteWait_ItemsFound = 'Items encontrados até agora: %d'; LANGptSearch_Bytes = 'Bytes'; LANGptSearch_kB = 'kB'; LANGptSearch_MB = 'MB'; LANGptSearch_days = 'dias'; LANGptSearch_weeks = 'semanas'; LANGptSearch_months = 'meses'; LANGptSearch_years = 'anos'; LANGptSearch_Caption = 'Encontrar Ficheiros'; LANGptSearch_General = 'Geral'; LANGptSearch_Advanced = 'Avançado'; LANGptSearch_SearchResults = '_Resultados da Busca:'; LANGptSearch_SearchFor = 'Procurar _por:'; LANGptSearch_FileMaskEntryTooltip = 'Dica: Use ponto e vírgula (";") para especificar vários ficheiros a procurar'; LANGptSearch_SearchIn = 'Procurar _em:'; LANGptSearch_SearchArchivesCheckButton = 'Procurar _arquivos'; LANGptSearch_FindText = 'Procurar _texto:'; LANGptSearch_FindTextEntryTooltip = 'Deixe vazio para nenhuma correspondência de texto'#10'Por favor note que estamos a usar UTF-8 em componente GUI'; LANGptSearch_CaseSensitiveCheckButton = 'S_ensível a maiúsculas/minúsculas'; LANGptSearch_StayCurrentFSCheckButton = 'Incluir outros s_istemas de ficheiros'; LANGptSearch_CaseSensitiveMatchCheckButton = 'S_ensível a maiúsculas/minúsculas'; LANGptSearch_Size = 'Tamanho'; LANGptSearch_Date = 'Data'; LANGptSearch_BiggerThan = 'M_aior que'; LANGptSearch_SmallerThan = 'M_enor que'; LANGptSearch_ModifiedBetweenRadioButton = 'M_odificado entre'; LANGptSearch_NotModifiedAfterRadioButton = '_Não modificado após'; LANGptSearch_ModifiedLastRadioButton = 'Mod_ificado no último'; LANGptSearch_ModifiedNotLastRadionButton = 'Não mo_dificado no último'; LANGptSearch_ModifiedBetweenEntry1 = '"Por favor use este formato de data:" c'; LANGptSearch_ViewButtonCaption = '_Visualizar ficheiro'; LANGptSearch_NewSearchButtonCaption = '_Nova busca'; LANGptSearch_GoToFileButtonCaption = '_Ir para ficheiro'; LANGptSearch_FeedToListboxButtonCaption = 'Acrescentar à caixa de _lista'; LANGptSearch_StatusSC = 'Estado:'; LANGptSearch_Ready = 'Pronto.'; LANGptSearch_PreparingToSearch = 'Preparando para procurar.'; LANGptSearch_SearchInProgress = 'Procura em progresso:'; LANGptSearch_UserCancelled = 'Cancelado pelo utilizador.'; LANGptSearch_SearchFinished = 'Procura terminada'; LANGptSearch_FilesFound = '%d ficheiros encontrados'; LANGptSearch_And = 'e'; (*************** STRINGS ADDED TO v0.5.82 **********************************************************************************) LANGptCloseOpenConnection = 'Você está a tentar abrir uma nova ligação sobre outra ligação activa. Ao continuar, a ligação prévia será fechada e substituida pela nova requisitada.'#10#10'Deseja continuar?'; LANGptDuplicateTabWarning = 'Você está a tentar abrir um novo separador a partir dum directório remoto. No entanto, a clonagem de motor não é suportada. O directório no novo separador irá apontar para um sistema de ficheiros local.'; LANGptDontShowAgain = '_Não mostrar esta mensagem outra vez'; LANGptSwitchOtherPanelWarning = 'Você está a tentar abrir um directório remoto no painel oposto. No entanto, a clonagem de motor não é suportada. O directório de destino não será mudado.'; LANGptOpenConnectionsWarning = 'Existem algumas ligações activas abertas no painel. Ao fechar esta aplicação, essas ligações serão desligadas.'#10#10'Deseja continuar com o encerramento?'; LANGptmiDisconnect_Caption = '_Desligar'; LANGptDisconnectButton_Tooltip = 'Desligar ligação activa'; LANGptLeaveArchiveButton_Tooltip = 'Fechar arquivo actual'; LANGptOpenTerminalButton_Tooltip = 'Abre uma nova janela terminal a partir do directório actual'; LANGptOpenTerminalButton_Caption = 'Abrir Te_rminal'; LANGptShowTextUIDsCheckBox_Caption = 'Mostrar _UIDs de texto'; LANGptShowTextUIDsCheckBox_Tooltip = 'Mostra informação textual de Utilizador e Grupo em vez de números (UID/GID)'; (*************** STRINGS ADDED TO v0.5.100 **********************************************************************************) LANGptmiNewTab_Caption = 'Novo separador de pas_ta'; LANGptFilePopupMenu_Properties = '_Propriedades'; LANGptCommandEntry_Tooltip = 'Usar %s como espaço reservado de ficheiro/directório'; LANGptmiFiles_Caption = 'Apenas ficheiros'; (*************** STRINGS ADDED TO v0.6.31 **********************************************************************************) LANGptPasswordButton_Tooltip = 'Arquivo requer palavra passe.'#10'Clique para definir'; LANGptHandleRunFromArchive_Bytes = 'bytes'; LANGptHandleRunFromArchive_FileTypeDesc_Unknown = '(desconhecido)'; LANGptHandleRunFromArchive_NotAssociated = '(não associado)'; LANGptHandleRunFromArchive_SelfExecutable = '(auto-executável)'; LANGptHandleRunFromArchive_CouldntCreateTemporaryDirectory = 'Incapaz de criar o directório temporário "%s": %s.'#10#10'Por favor verifique as definições do directório temporário e tente de novo.'; LANGptFRunFromVFS_Caption = 'Propriedades do ficheiro empacotado'; LANGptFRunFromVFS_TitleLabel = 'Propriedades do Ficheiro'; LANGptFRunFromVFS_FileNameLabel = 'Nome do ficheiro:'; LANGptFRunFromVFS_FileTypeLabel = 'Tipo de ficheiro:'; LANGptFRunFromVFS_SizeLabel = 'Tamanho:'; LANGptFRunFromVFS_PackedSizeLabel = 'Tamanho comprimido:'; LANGptFRunFromVFS_DateLabel = 'Data de modificação:'; LANGptFRunFromVFS_InfoLabel = 'Não é suportado abrir ficheiros directamente de arquivos. Ao clicar nos botões debaixo do ficheiro este irá ser extraído (serão todos respectivamente) para a localização temporária. Ficheiros temporários são apagados ao fechar o Tux Commander.'; LANGptFRunFromVFS_OpensWithLabel = 'Abrir com:'; LANGptFRunFromVFS_ExecuteButton = 'E_xtrair e abrir'; LANGptFRunFromVFS_ExecuteAllButton = 'Extr_air todos e abrir'; LANGptFSetPassword_Caption = 'Definir palavra passe'; LANGptFSetPassword_Label1_Caption = 'Palavra passe necessária'; LANGptFSetPassword_Label2_Caption = 'O arquivo está encriptado e requer uma palavra passe de modo a extrair os dados'; LANGptFSetPassword_ShowPasswordCheckButton = 'Des_mascarar a palavra passe'; (*************** STRINGS ADDED TO v0.6.48 **********************************************************************************) LANGptCopyFileNamesToClipboard = '_Copiar nomes de ficheiros para a área de transferência'; LANGptCopyFullPathNamesToClipboard = 'Copiar nomes de _caminhos completos para a área de transferência'; LANGptCopyPathToClipboard = '_Copiar caminho para a área de transferência'; LANGptPreferences_DateFormatLabel_Caption = '_Formato da data:'; LANGptPreferences_System = 'Sistema'; LANGptPreferences_Custom = 'Personalizar...'; LANGptPreferences_CustomDateFormatEntry_Tooltip = 'Inserir string de formato de data personalizado.'#10'Por favor veja "man strftime" para referência à sintaxe.'; LANGptPreferences_TimeFormatLabel_Caption = 'Forma_to da hora:'; LANGptPreferences_CustomTimeFormatEntry_Tooltip = 'Inserir string de formato de hora personalizado.'#10'Por favor veja "man strftime" para referência à sintaxe.'; LANGptPreferences_DateTimeFormatLabel_Caption = '_Ordem de data/hora:'; LANGptPreferences_QuickRenameSkipExtCheckBox = 'Seleccionar apenas a parte do nome na renomeação rápida'; LANGptPreferences_QuickRenameSkipExtCheckBox_Tooltip = 'Excluir a extensão do nome de ficheiro da selecção ao fazer renomeação rápida'; LANGptPreferences_SortDirectoriesLikeFilesCheckBox = 'Ordenar os dir_ectórios como ficheiros'; LANGptPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip = 'Active isto para permitir a organização de directórios juntamente com ficheiros. Os directórios ficam sempre primeiro na lista.'#10'Não activo: Os directórios são sempre organizados pelo nome.'; LANGptPreferences_QuickSearchLabel_Caption = 'Combinações de Te_clas de Pesquisa rápida:'; LANGptPreferences_QuickSearchOptionMenu_Tooltip = 'As combinações de teclas Ctrl+S/Alt+S e "/" estão sempre activas, apesar desta definição.'; LANGptPreferences_QuickSearch_Option1 = 'Apenas Ctrl+S/Alt+S e "/"'; LANGptPreferences_QuickSearch_Option2 = 'Ctrl+Alt+tecla de letra'; LANGptPreferences_QuickSearch_Option3 = 'Alt+tecla de letra'; LANGptPreferences_QuickSearch_Option4 = 'tecla de letra directamente'; LANGptPreferences_TempPathLabel_Caption = 'Ficheiros temporários'; LANGptPreferences_VFSTempPathLabel_Caption = 'Ficheiros temporários _VFS:'; LANGptPreferences_VFSTempPathEntry_Tooltip = 'Localização dos ficheiros temporários usados pelo subsistema VFS, ex. quando se abre ficheiros directamente de arquivos. Todos os ficheiros temporários são apagados ao terminar.'; (*************** STRINGS ADDED TO v0.6.67 **********************************************************************************) LANGptPreferences_RightClickSelectCheckBox = 'Modo de selecção do botão _direito do rato'; LANGptPreferences_RightClickSelectCheckBox_Tooltip = 'Usar botão direito do rato para seleccionar, como o mc.'; LANGptGtkMountOperation_ConnectAnonymously = 'Ligar como _anónimo'; LANGptGtkMountOperation_ConnectAsUser = 'Ligar como utili_zador:'; LANGptGtkMountOperation_Username = 'Nome de _utilizador:'; LANGptGtkMountOperation_Domain = '_Domínio:'; LANGptGtkMountOperation_Password = '_Palavra passe:'; LANGptGtkMountOperation_DoNotSavePassword = '_Não gravar a palavra passe'; LANGptGtkMountOperation_ForgetPasswordImmediately = 'Esquecer a palavra passe _imediatamente'; LANGptGtkMountOperation_RememberPasswordUntilYouLogout = 'Lembrar a pa_lavra passe até terminar sessão'; LANGptGtkMountOperation_SavePasswordInConnectionManager = 'Guardar a palavra passe no Ge_stor de Ligação'; LANGptGtkMountOperation_RememberForever = 'Lem_brar para sempre'; LANGptFSymlink_RelativePath = 'Caminho _relativo'; LANGptFConnectionManager_DuplicateButton_Caption = 'D_uplicar...'; LANGptFConnectionManager_DuplicateButton_Tooltip = 'Duplicar ligação seleccionada'; LANGptFConnectionManager_DoNotSavePasswordsCheckBox_Label = 'Não gravar as palavras passe in_ternamente (mas usar na mesma o gnome-keyring)'; LANGptFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip = 'Ao activar esta opção, o Tux Commander não irá guardar as palavras passe na sua lista de ligações. Devido à sua natureza GVFS, o gnome-keyring irá na mesma ser usado para recuperar palavras passe guardadas a partir da sua sessão de trabalho.'; LANGptFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label = 'Não sincronizar palavras passe com o gnome-_keyring'; LANGptFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip = 'Não diz ao gnome-keyring para gravar nenhuma palavra passe.'; LANGptFConnectionManager_DuplicateMenuItem_Caption = 'D_uplicar...'; LANGptFQuickConnect_Caption = 'Ligação rápida'; LANGptFQuickConnect_TitleLabel_Caption = 'Ligação rápida'; LANGptFQuickConnect_ConnectToURILabel_Caption = '_Ligar a URI:'; LANGptLinkToS = 'Link para %s'; LANGptOpenDirectoryInBackgroundTab = 'Abrir directório em separador no segundo plano'; LANGptTheActiveConnectionHasNotBeenSaved = 'A ligação activa não foi guardada. Deseja guardá-la no Gestor de Ligações?'#10#10'%s'; LANGptTheArchiveIsEncryptedAndRequiresPassword = 'O arquivo está encriptado e requer uma palavra passe'; (********************************************************************************************************************************) procedure SetTranslation; begin LANGF2Button_Caption := LANGptF2Button_Caption; LANGF3Button_Caption := LANGptF3Button_Caption; LANGF4Button_Caption := LANGptF4Button_Caption; LANGF5Button_Caption := LANGptF5Button_Caption; LANGF6Button_Caption := LANGptF6Button_Caption; LANGF7Button_Caption := LANGptF7Button_Caption; LANGF8Button_Caption := LANGptF8Button_Caption; LANGmnuFile_Caption := LANGptmnuFile_Caption; LANGmnuMark_Caption := LANGptmnuMark_Caption; LANGmnuCommands_Caption := LANGptmnuCommands_Caption; LANGmnuHelp_Caption := LANGptmnuHelp_Caption; LANGmiExit_Caption := LANGptmiExit_Caption; LANGmiSelectGroup_Caption := LANGptmiSelectGroup_Caption; LANGmiUnselectGroup_Caption := LANGptmiUnselectGroup_Caption; LANGmiSelectAll_Caption := LANGptmiSelectAll_Caption; LANGmiUnselectAll_Caption := LANGptmiUnselectAll_Caption; LANGmiInvertSelection_Caption := LANGptmiInvertSelection_Caption; LANGmiRefresh_Caption := LANGptmiRefresh_Caption; LANGmiAbout_Caption := LANGptmiAbout_Caption; LANGColumn1_Caption := LANGptColumn1_Caption; LANGColumn2_Caption := LANGptColumn2_Caption; LANGColumn3_Caption := LANGptColumn3_Caption; LANGColumn4_Caption := LANGptColumn4_Caption; LANGColumn5_Caption := LANGptColumn5_Caption; LANGExpandSelection := LANGptExpandSelection; LANGShrinkSelection := LANGptShrinkSelection; LANGNoMatchesFound := LANGptNoMatchesFound; LANGNoFilesSelected := LANGptNoFilesSelected; LANGSelectedFilesDirectories := LANGptSelectedFilesDirectories; LANGDirectoryS := LANGptDirectoryS; LANGFileS := LANGptFileS; LANGDoYouReallyWantToDeleteTheS := LANGptDoYouReallyWantToDeleteTheS; LANGDoYouReallyWantToDeleteTheSS := LANGptDoYouReallyWantToDeleteTheSS; LANGCopyFiles := LANGptCopyFiles; LANGMoveRenameFiles := LANGptMoveRenameFiles; LANGCopyDFileDirectoriesTo := LANGptCopyDFileDirectoriesTo; LANGMoveRenameDFileDirectoriesTo := LANGptMoveRenameDFileDirectoriesTo; LANGCopySC := LANGptCopySC; LANGMoveRenameSC := LANGptMoveRenameSC; LANGQuickFind := LANGptQuickFind; LANGAboutString := LANGptAboutString; LANGAboutStringGnome := LANGptAboutStringGnome; LANGDiskStatFmt := LANGptDiskStatFmt; LANGDiskStatVolNameFmt := LANGptDiskStatVolNameFmt; LANGStatusLineFmt := LANGptStatusLineFmt; LANGPanelStrings[False] := LANGptPanelStrings[False]; LANGPanelStrings[True] := LANGptPanelStrings[True]; LANGDIR := LANGptDIR; LANGErrorGettingListingForSPanel := LANGptErrorGettingListingForSPanel; LANGErrorGettingListingForSPanelNoPath := LANGptErrorGettingListingForSPanelNoPath; LANGErrorCreatingNewDirectorySInSPanel := LANGptErrorCreatingNewDirectorySInSPanel; LANGErrorCreatingNewDirectorySInSPanelNoPath := LANGptErrorCreatingNewDirectorySInSPanelNoPath; LANGTheFileDirectory := LANGptTheFileDirectory; LANGCouldNotBeDeleted := LANGptCouldNotBeDeleted; LANGCouldNotBeDeletedS := LANGptCouldNotBeDeletedS; LANGUserCancelled := LANGptUserCancelled; LANGTheDirectorySIsNotEmpty := LANGptTheDirectorySIsNotEmpty; LANGCannotCopyFile := LANGptCannotCopyFile; LANGCopyError := LANGptCopyError; LANGMoveError := LANGptMoveError; LANGOverwriteS := LANGptOverwriteS; LANGWithFileS := LANGptWithFileS; LANGOvewriteSBytesS := LANGptOvewriteSBytesS; LANGTheFile := LANGptTheFile; LANGCopy := LANGptCopy; LANGMove := LANGptMove; LANGTheDirectory := LANGptTheDirectory; LANGTheSymbolicLink := LANGptTheSymbolicLink; LANGCannotMoveFile := LANGptCannotMoveFile; LANGCouldNotBeCreated := LANGptCouldNotBeCreated; LANGCouldNotBeCreatedS := LANGptCouldNotBeCreatedS; LANGFromS := LANGptFromS; LANGToS := LANGptToS; LANGCannotCopyFileToItself := LANGptCannotCopyFileToItself; LANGMemoryAllocationFailed := LANGptMemoryAllocationFailed; LANGCannotOpenSourceFile := LANGptCannotOpenSourceFile; LANGCannotOpenDestinationFile := LANGptCannotOpenDestinationFile; LANGCannotCloseDestinationFile := LANGptCannotCloseDestinationFile; LANGCannotCloseSourceFile := LANGptCannotCloseSourceFile; LANGCannotReadFromSourceFile := LANGptCannotReadFromSourceFile; LANGCannotWriteToDestinationFile := LANGptCannotWriteToDestinationFile; LANGUnknownException := LANGptUnknownException; LANGNoAccess := LANGptNoAccess; LANGUnknownError := LANGptUnknownError; LANGCreateANewDirectory := LANGptCreateANewDirectory; LANGEnterDirectoryName := LANGptEnterDirectoryName; LANGOverwriteQuestion := LANGptOverwriteQuestion; LANGOverwriteButton_Caption := LANGptOverwriteButton_Caption; LANGOverwriteAllButton_Caption := LANGptOverwriteAllButton_Caption; LANGSkipButton_Caption := LANGptSkipButton_Caption; LANGOverwriteAllOlderButton_Caption := LANGptOverwriteAllOlderButton_Caption; LANGSkipAllButton_Caption := LANGptSkipAllButton_Caption; LANGRenameButton_Caption := LANGptRenameButton_Caption; LANGAppendButton_Caption := LANGptAppendButton_Caption; LANGRename := LANGptRename; LANGRenameFile := LANGptRenameFile; LANGIgnoreButton_Caption := LANGptIgnoreButton_Caption; LANGProgress := LANGptProgress; LANGCancel := LANGptCancel; LANGDelete := LANGptDelete; LANGSpecifyFileType := LANGptSpecifyFileType; LANGRemoveDirectory := LANGptRemoveDirectory; LANGDoYouWantToDeleteItWithAllItsFilesAndSubdirectories := LANGptDoYouWantToDeleteItWithAllItsFilesAndSubdirectories; LANGRetry := LANGptRetry; LANGDeleteButton_Caption := LANGptDeleteButton_Caption; LANGAll := LANGptAll; LANGCopyFilesSC := LANGptCopyFilesSC; LANGAppendQuestion := LANGptAppendQuestion; LANGPreparingList := LANGptPreparingList; LANGYouMustSelectAValidFile := LANGptYouMustSelectAValidFile; LANGmiVerifyChecksums := LANGptmiVerifyChecksums; LANGVerifyChecksumsCaption := LANGptVerifyChecksumsCaption; LANGCheckButtonCaptionCheck := LANGptCheckButtonCaptionCheck; LANGCheckButtonCaptionStop := LANGptCheckButtonCaptionStop; LANGFileListTooltip := LANGptFileListTooltip; LANGFilenameColumnCaption := LANGptFilenameColumnCaption; LANGTheFileSYouAreTryingToOpenIsQuiteBig := LANGptTheFileSYouAreTryingToOpenIsQuiteBig; LANGAnErrorOccuredWhileInitializingMemoryBlock := LANGptAnErrorOccuredWhileInitializingMemoryBlock; LANGAnErrorOccuredWhileOpeningFileSS := LANGptAnErrorOccuredWhileOpeningFileSS; LANGAnErrorOccuredWhileReadingFileSS := LANGptAnErrorOccuredWhileReadingFileSS; LANGChecksumNotChecked := LANGptChecksumNotChecked; LANGChecksumChecking := LANGptChecksumChecking; LANGChecksumInterrupted := LANGptChecksumInterrupted; LANGChecksumDOK := LANGptChecksumDOK; LANGmiCreateChecksumsCaption := LANGptmiCreateChecksumsCaption; LANGYouMustSelectAtLeastOneFileToCalculateChecksum := LANGptYouMustSelectAtLeastOneFileToCalculateChecksum; LANGCreateChecksumsCaption := LANGptCreateChecksumsCaption; LANGCCHKSUMPage1Text := LANGptCCHKSUMPage1Text; LANGCCHKSUMPage4Text := LANGptCCHKSUMPage4Text; LANGCCHKSUMPage6Text := LANGptCCHKSUMPage6Text; LANGCCHKSUMPage7Text := LANGptCCHKSUMPage7Text; LANGCCHKSUMPage1Title := LANGptCCHKSUMPage1Title; LANGCCHKSUMPage2Title := LANGptCCHKSUMPage2Title; LANGCCHKSUMPage3Title := LANGptCCHKSUMPage3Title; LANGCCHKSUMPage4Title := LANGptCCHKSUMPage4Title; LANGCCHKSUMPage5Title := LANGptCCHKSUMPage5Title; LANGCCHKSUMPage6Title := LANGptCCHKSUMPage6Title; LANGCCHKSUMPage7Title := LANGptCCHKSUMPage7Title; LANGCCHKSUMSFVFile := LANGptCCHKSUMSFVFile; LANGCCHKSUMMD5sumFile := LANGptCCHKSUMMD5sumFile; LANGCCHKSUMFileName := LANGptCCHKSUMFileName; LANGCCHKSUMCreateSeparateChecksumFiles := LANGptCCHKSUMCreateSeparateChecksumFiles; LANGCCHKSUMNowProcessingFileS := LANGptCCHKSUMNowProcessingFileS; LANGCCHKSUMFinishCaption := LANGptCCHKSUMFinishCaption; LANGCCHKSUMAreYouSureYouWantToAbortTheProcessing := LANGptCCHKSUMAreYouSureYouWantToAbortTheProcessing; LANGCCHKSUMAnErrorOccuredWhileOpeningFileSS := LANGptCCHKSUMAnErrorOccuredWhileOpeningFileSS; LANGCCHKSUMAnErrorOccuredWhileReadingFileSS := LANGptCCHKSUMAnErrorOccuredWhileReadingFileSS; LANGCCHKSUMAnErrorOccuredWhileWritingFileSS := LANGptCCHKSUMAnErrorOccuredWhileWritingFileSS; LANGAnErrorOccuredWhileWritingFileSS := LANGptAnErrorOccuredWhileWritingFileSS; LANGTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt := LANGptTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt; LANGTheTargetFileSCannotBeRemovedS := LANGptTheTargetFileSCannotBeRemovedS; LANGMergeCaption := LANGptMergeCaption; LANGPleaseInsertNextDiskOrGiveDifferentLocation := LANGptPleaseInsertNextDiskOrGiveDifferentLocation; LANGMergeOfSSucceeded := LANGptMergeOfSSucceeded; LANGWarningCreatedFileFailsCRCCheck := LANGptWarningCreatedFileFailsCRCCheck; LANGMergeOfSSucceeded_NoCRCFileAvailable := LANGptMergeOfSSucceeded_NoCRCFileAvailable; LANGMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory := LANGptMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory; LANGMergeSC := LANGptMergeSC; LANGmiSplitFileCaption := LANGptmiSplitFileCaption; LANGmiMergeFilesCaption := LANGptmiMergeFilesCaption; LANGSplitTheFileSToDirectory := LANGptSplitTheFileSToDirectory; LANGSplitSC := LANGptSplitSC; LANGSplitFile := LANGptSplitFile; LANGBytesPerFile := LANGptBytesPerFile; LANGAutomatic := LANGptAutomatic; LANGDeleteFilesOnTargetDisk := LANGptDeleteFilesOnTargetDisk; LANGSplitCaption := LANGptSplitCaption; LANGCannotOpenFileS := LANGptCannotOpenFileS; LANGCannotSplitTheFileToMoreThan999Parts := LANGptCannotSplitTheFileToMoreThan999Parts; LANGThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem := LANGptThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem; LANGThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem := LANGptThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem; LANGAnErrorOccuredWhileOperationS := LANGptAnErrorOccuredWhileOperationS; LANGSplitOfSSucceeded := LANGptSplitOfSSucceeded; LANGSplitOfSFailed := LANGptSplitOfSFailed; LANGmnuShow_Caption := LANGptmnuShow_Caption; LANGmiShowDotFiles_Caption := LANGptmiShowDotFiles_Caption; LANGTheFileYouAreTryingToOpenIsQuiteBig := LANGptTheFileYouAreTryingToOpenIsQuiteBig; LANGCannotExecuteSPleaseCheckTheConfiguration := LANGptCannotExecuteSPleaseCheckTheConfiguration; LANGEdit := LANGptEdit; LANGEnterFilenameToEdit := LANGptEnterFilenameToEdit; LANGmnuSettings_Caption := LANGptmnuSettings_Caption; LANGmiFileTypes_Caption := LANGptmiFileTypes_Caption; LANGThereIsNoApplicationAssociatedWithS := LANGptThereIsNoApplicationAssociatedWithS; LANGErrorExecutingCommand := LANGptErrorExecutingCommand; LANGEditFileTypesCaption := LANGptEditFileTypesCaption; LANGTitleLabel_Caption := LANGptTitleLabel_Caption; LANGExtensionsColumn := LANGptExtensionsColumn; LANGDescriptionColumn := LANGptDescriptionColumn; LANGFileTypesList := LANGptFileTypesList; LANGActionName := LANGptActionName; LANGCommand := LANGptCommand; LANGSetDefaultActionButton_Caption := LANGptSetDefaultActionButton_Caption; LANGRunInTerminalCheckBox_Caption := LANGptRunInTerminalCheckBox_Caption; LANGAutodetectCheckBox_Caption := LANGptAutodetectCheckBox_Caption; LANGBrowseButton_Caption := LANGptBrowseButton_Caption; LANGCommandLabel_Caption := LANGptCommandLabel_Caption; LANGDescriptionLabel_Caption := LANGptDescriptionLabel_Caption; LANGFNameExtLabel_Caption := LANGptFNameExtLabel_Caption; LANGNotebookPageExtensions := LANGptNotebookPageExtensions; LANGNotebookPageActions := LANGptNotebookPageActions; LANGDefault := LANGptDefault; LANGCannotSaveFileTypeAssociationsBecauseOtherProcess := LANGptCannotSaveFileTypeAssociationsBecauseOtherProcess; LANGDefaultColor := LANGptDefaultColor; LANGIcon := LANGptIcon; LANGBrowseForIcon := LANGptBrowseForIcon; LANGSelectFileTypeColor := LANGptSelectFileTypeColor; LANGColor := LANGptColor; LANGmiChangePermissions_Caption := LANGptmiChangePermissions_Caption; LANGmiChangeOwner_Caption := LANGptmiChangeOwner_Caption; LANGmiCreateSymlink_Caption := LANGptmiCreateSymlink_Caption; LANGmiEditSymlink_Caption := LANGptmiEditSymlink_Caption; LANGChmodProgress := LANGptChmodProgress; LANGChownProgress := LANGptChownProgress; LANGYouMustSelectAValidSymbolicLink := LANGptYouMustSelectAValidSymbolicLink; LANGPopupRunS := LANGptPopupRunS; LANGPopupOpenS := LANGptPopupOpenS; LANGPopupGoUp := LANGptPopupGoUp; LANGPopupOpenWithS := LANGptPopupOpenWithS; LANGPopupDefault := LANGptPopupDefault; LANGPopupOpenWith := LANGptPopupOpenWith; LANGPopupViewFile := LANGptPopupViewFile; LANGPopupEditFile := LANGptPopupEditFile; LANGPopupMakeSymlink := LANGptPopupMakeSymlink; LANGPopupRename := LANGptPopupRename; LANGPopupDelete := LANGptPopupDelete; LANGDialogChangePermissions := LANGptDialogChangePermissions; LANGCouldNotBeChmoddedS := LANGptCouldNotBeChmoddedS; LANGDialogChangeOwner := LANGptDialogChangeOwner; LANGCouldNotBeChownedS := LANGptCouldNotBeChownedS; LANGDialogMakeSymlink := LANGptDialogMakeSymlink; LANGDialogEditSymlink := LANGptDialogEditSymlink; LANGFEditSymlink_Caption := LANGptFEditSymlink_Caption; LANGFEditSymlink_SymbolicLinkFilename := LANGptFEditSymlink_SymbolicLinkFilename; LANGFEditSymlink_SymbolicLinkPointsTo := LANGptFEditSymlink_SymbolicLinkPointsTo; LANGFChmod_Caption := LANGptFChmod_Caption; LANGFChmod_PermissionFrame := LANGptFChmod_PermissionFrame; LANGFChmod_FileFrame := LANGptFChmod_FileFrame; LANGFChmod_ApplyRecursivelyFor := LANGptFChmod_ApplyRecursivelyFor; LANGFChmod_miAllFiles := LANGptFChmod_miAllFiles; LANGFChmod_miDirectories := LANGptFChmod_miDirectories; LANGFChmod_OctalLabel := LANGptFChmod_OctalLabel; LANGFChmod_SUID := LANGptFChmod_SUID; LANGFChmod_SGID := LANGptFChmod_SGID; LANGFChmod_Sticky := LANGptFChmod_Sticky; LANGFChmod_RUSR := LANGptFChmod_RUSR; LANGFChmod_WUSR := LANGptFChmod_WUSR; LANGFChmod_XUSR := LANGptFChmod_XUSR; LANGFChmod_RGRP := LANGptFChmod_RGRP; LANGFChmod_WGRP := LANGptFChmod_WGRP; LANGFChmod_XGRP := LANGptFChmod_XGRP; LANGFChmod_ROTH := LANGptFChmod_ROTH; LANGFChmod_WOTH := LANGptFChmod_WOTH; LANGFChmod_XOTH := LANGptFChmod_XOTH; LANGFChmod_TextLabel := LANGptFChmod_TextLabel; LANGFChmod_FileLabel := LANGptFChmod_FileLabel; LANGFChown_Caption := LANGptFChown_Caption; LANGFChown_OwnerFrame := LANGptFChown_OwnerFrame; LANGFChown_GroupFrame := LANGptFChown_GroupFrame; LANGFChown_FileFrame := LANGptFChown_FileFrame; LANGFChown_ApplyRecursively := LANGptFChown_ApplyRecursively; LANGFSymlink_Caption := LANGptFSymlink_Caption; LANGFSymlink_ExistingFilename := LANGptFSymlink_ExistingFilename; LANGFSymlink_SymlinkFilename := LANGptFSymlink_SymlinkFilename; LANGmnuBookmarks_Caption := LANGptmnuBookmarks_Caption; LANGmiAddBookmark_Caption := LANGptmiAddBookmark_Caption; LANGmiEditBookmarks_Caption := LANGptmiEditBookmarks_Caption; LANGBookmarkPopupDelete_Caption := LANGptBookmarkPopupDelete_Caption; LANGmiPreferences_Caption := LANGptmiPreferences_Caption; LANGTheCurrentDirectoryAlreadyExistsInTheBookmarksList := LANGptTheCurrentDirectoryAlreadyExistsInTheBookmarksList; LANGSomeOtherInstanceChanged := LANGptSomeOtherInstanceChanged; LANGPreferences_Caption := LANGptPreferences_Caption; LANGPreferences_TitleLabel_Caption := LANGptPreferences_TitleLabel_Caption; LANGPreferences_GeneralPage := LANGptPreferences_GeneralPage; LANGPreferences_FontsPage := LANGptPreferences_FontsPage; LANGPreferences_ColorsPage := LANGptPreferences_ColorsPage; LANGPreferences_RowHeight := LANGptPreferences_RowHeight; LANGPreferences_NumHistoryItems := LANGptPreferences_NumHistoryItems; LANGPreferences_Default := LANGptPreferences_Default; LANGPreferences_ClearReadonlyAttribute := LANGptPreferences_ClearReadonlyAttribute; LANGPreferences_DisableMouseRenaming := LANGptPreferences_DisableMouseRenaming; LANGPreferences_ShowFiletypeIconsInList := LANGptPreferences_ShowFiletypeIconsInList; LANGPreferences_ExternalAppsLabel := LANGptPreferences_ExternalAppsLabel; LANGPreferences_Viewer := LANGptPreferences_Viewer; LANGPreferences_Editor := LANGptPreferences_Editor; LANGPreferences_Terminal := LANGptPreferences_Terminal; LANGPreferences_ListFont := LANGptPreferences_ListFont; LANGPreferences_Change := LANGptPreferences_Change; LANGPreferences_UseDefaultFont := LANGptPreferences_UseDefaultFont; LANGPreferences_Foreground := LANGptPreferences_Foreground; LANGPreferences_Background := LANGptPreferences_Background; LANGPreferences_NormalItem := LANGptPreferences_NormalItem; LANGPreferences_SetToDefaultToUseGTKThemeColors := LANGptPreferences_SetToDefaultToUseGTKThemeColors; LANGPreferences_Cursor := LANGptPreferences_Cursor; LANGPreferences_InactiveItem := LANGptPreferences_InactiveItem; LANGPreferences_SelectedItem := LANGptPreferences_SelectedItem; LANGPreferences_LinkItem := LANGptPreferences_LinkItem; LANGPreferences_LinkItemHint := LANGptPreferences_LinkItemHint; LANGPreferences_DotFileItem := LANGptPreferences_DotFileItem; LANGPreferences_DotFileItemHint := LANGptPreferences_DotFileItemHint; LANGPreferences_BrowseForApplication := LANGptPreferences_BrowseForApplication; LANGPreferences_DefaultS := LANGptPreferences_DefaultS; LANGPreferences_SelectFont := LANGptPreferences_SelectFont; LANGBookmarkButton_Tooltip := LANGptBookmarkButton_Tooltip; LANGUpButton_Tooltip := LANGptUpButton_Tooltip; LANGRootButton_Tooltip := LANGptRootButton_Tooltip; LANGHomeButton_Tooltip := LANGptHomeButton_Tooltip; LANGLeftEqualButton_Tooltip := LANGptLeftEqualButton_Tooltip; LANGRightEqualButton_Tooltip := LANGptRightEqualButton_Tooltip; LANGmiShowDirectorySizes_Caption := LANGptmiShowDirectorySizes_Caption; LANGmiTargetSource_Caption := LANGptmiTargetSource_Caption; LANGFileTypeDirectory := LANGptFileTypeDirectory; LANGFileTypeFile := LANGptFileTypeFile; LANGFileTypeMetafile := LANGptFileTypeMetafile; LANGPreferencesPanelsPage := LANGptPreferencesPanelsPage; LANGPreferencesApplicationsPage := LANGptPreferencesApplicationsPage; LANGPreferencesExperimentalPage := LANGptPreferencesExperimentalPage; LANGPreferencesSelectAllDirectoriesCheckBox_Caption := LANGptPreferencesSelectAllDirectoriesCheckBox_Caption; LANGPreferencesNewStyleAltOCheckBox_Caption := LANGptPreferencesNewStyleAltOCheckBox_Caption; LANGPreferencesNewStyleAltOCheckBox_Tooltip := LANGptPreferencesNewStyleAltOCheckBox_Tooltip; LANGPreferencesShowFuncButtonsCheckBox_Caption := LANGptPreferencesShowFuncButtonsCheckBox_Caption; LANGPreferencesSizeFormatLabel_Caption := LANGptPreferencesSizeFormatLabel_Caption; LANGPreferencesmiSizeFormat1 := LANGptPreferencesmiSizeFormat1; LANGPreferencesmiSizeFormat6 := LANGptPreferencesmiSizeFormat6; LANGPreferencesAutodetectXApp := LANGptPreferencesAutodetectXApp; LANGPreferencesAlwaysRunInTerminal := LANGptPreferencesAlwaysRunInTerminal; LANGPreferencesNeverRunInTerminal := LANGptPreferencesNeverRunInTerminal; LANGPreferencesCmdLineBehaviourLabel_Caption := LANGptPreferencesCmdLineBehaviourLabel_Caption; LANGPreferencesFeatures := LANGptPreferencesFeatures; LANGPreferencesDisableMouseRename_Tooltip := LANGptPreferencesDisableMouseRename_Tooltip; LANGPreferencesDisableFileTipsCheckBox_Caption := LANGptPreferencesDisableFileTipsCheckBox_Caption; LANGPreferencesDisableFileTipsCheckBox_Tooltip := LANGptPreferencesDisableFileTipsCheckBox_Tooltip; LANGPreferencesShow := LANGptPreferencesShow; LANGPreferencesDirsInBoldCheckBox_Caption := LANGptPreferencesDirsInBoldCheckBox_Caption; LANGPreferencesDisableDirectoryBracketsCheckBox_Caption := LANGptPreferencesDisableDirectoryBracketsCheckBox_Caption; LANGPreferencesOctalPermissionsCheckBox_Caption := LANGptPreferencesOctalPermissionsCheckBox_Caption; LANGPreferencesOctalPermissionsCheckBox_Tooltip := LANGptPreferencesOctalPermissionsCheckBox_Tooltip; LANGPreferencesMovement := LANGptPreferencesMovement; LANGPreferencesLynxLikeMotionCheckBox_Caption := LANGptPreferencesLynxLikeMotionCheckBox_Caption; LANGPreferencesInsertMovesDownCheckBox_Caption := LANGptPreferencesInsertMovesDownCheckBox_Caption; LANGPreferencesSpaceMovesDownCheckBox_Caption := LANGptPreferencesSpaceMovesDownCheckBox_Caption; LANGPreferencesViewer := LANGptPreferencesViewer; LANGPreferencesCommandSC := LANGptPreferencesCommandSC; LANGPreferencesUseInternalViewer := LANGptPreferencesUseInternalViewer; LANGPreferencesEditor := LANGptPreferencesEditor; LANGPreferencesTerminal := LANGptPreferencesTerminal; LANGPreferencesExperimentalFeatures := LANGptPreferencesExperimentalFeatures; LANGPreferencesExperimentalWarningLabel_Caption := LANGptPreferencesExperimentalWarningLabel_Caption; LANGPreferencesFocusRefreshCheckBox_Caption := LANGptPreferencesFocusRefreshCheckBox_Caption; LANGPreferencesFocusRefreshCheckBox_Tooltip := LANGptPreferencesFocusRefreshCheckBox_Tooltip; LANGPreferencesWMCompatModeCheckBox_Caption := LANGptPreferencesWMCompatModeCheckBox_Caption; LANGPreferencesWMCompatModeCheckBox_Tooltip := LANGptPreferencesWMCompatModeCheckBox_Tooltip; LANGPreferencesCompatUseLibcSystemCheckBox_Caption := LANGptPreferencesCompatUseLibcSystemCheckBox_Caption; LANGPreferencesCompatUseLibcSystemCheckBox_Tooltip := LANGptPreferencesCompatUseLibcSystemCheckBox_Tooltip; LANGmiSearchCaption2 := LANGptmiSearchCaption2; LANGmiNoMounterBarCaption := LANGptmiNoMounterBarCaption; LANGmiShowOneMounterBarCaption := LANGptmiShowOneMounterBarCaption; LANGmiShowTwoMounterBarCaption := LANGptmiShowTwoMounterBarCaption; LANGmnuNetworkCaption := LANGptmnuNetworkCaption; LANGmiConnectionsCaption := LANGptmiConnectionsCaption; LANGmiOpenConnectionCaption := LANGptmiOpenConnectionCaption; LANGmiQuickConnectCaption := LANGptmiQuickConnectCaption; LANGmnuPluginsCaption := LANGptmnuPluginsCaption; LANGmiTestPluginCaption := LANGptmiTestPluginCaption; LANGmiMounterSettingsCaption := LANGptmiMounterSettingsCaption; LANGmiColumnsCaption := LANGptmiColumnsCaption; LANGmiSavePositionCaption := LANGptmiSavePositionCaption; LANGmiMountCaption := LANGptmiMountCaption; LANGmiUmountCaption := LANGptmiUmountCaption; LANGmiEjectCaption := LANGptmiEjectCaption; LANGmiDuplicateTabCaption := LANGptmiDuplicateTabCaption; LANGmiCloseTabCaption := LANGptmiCloseTabCaption; LANGmiCloseAllTabsCaption := LANGptmiCloseAllTabsCaption; LANGCannotDetermineDestinationEngine := LANGptCannotDetermineDestinationEngine; LANGCannotLoadFile := LANGptCannotLoadFile; LANGMountPointDevice := LANGptMountPointDevice; LANGMountSC := LANGptMountSC; LANGNoPluginsFound := LANGptNoPluginsFound; LANGPluginAbout := LANGptPluginAbout; LANGCouldntOpenURI := LANGptCouldntOpenURI; LANGPluginAboutInside := LANGptPluginAboutInside; LANGAreYouSureCloseAllTabs := LANGptAreYouSureCloseAllTabs; LANGCouldntOpenURIArchive := LANGptCouldntOpenURIArchive; LANGThereIsNoModuleAvailable := LANGptThereIsNoModuleAvailable; LANGIgnoreError := LANGptIgnoreError; LANGErrorMount := LANGptErrorMount; LANGErrorUmount := LANGptErrorUmount; LANGErrorEject := LANGptErrorEject; LANGMounterPrefs_Caption := LANGptMounterPrefs_Caption; LANGMounterPrefs_TitleLabelCaption := LANGptMounterPrefs_TitleLabelCaption; LANGMounterPrefs_ListViewFrameCaption := LANGptMounterPrefs_ListViewFrameCaption; LANGMounterPrefs_MountName := LANGptMounterPrefs_MountName; LANGMounterPrefs_MountPoint := LANGptMounterPrefs_MountPoint; LANGMounterPrefs_Device := LANGptMounterPrefs_Device; LANGMounterPrefs_MoveUpButtonTooltip := LANGptMounterPrefs_MoveUpButtonTooltip; LANGMounterPrefs_MoveDownButtonTooltip := LANGptMounterPrefs_MoveDownButtonTooltip; LANGMounterPrefs_UseFSTabDefaultsCheckBox := LANGptMounterPrefs_UseFSTabDefaultsCheckBox; LANGMounterPrefs_UseFSTabDefaultsCheckBoxTooltip := LANGptMounterPrefs_UseFSTabDefaultsCheckBoxTooltip; LANGMounterPrefs_ToggleModeCheckBox := LANGptMounterPrefs_ToggleModeCheckBox; LANGMounterPrefs_ToggleModeCheckBoxTooltip := LANGptMounterPrefs_ToggleModeCheckBoxTooltip; LANGMounterPrefs_PropertiesFrameCaption := LANGptMounterPrefs_PropertiesFrameCaption; LANGMounterPrefs_DisplayTextLabelCaption := LANGptMounterPrefs_DisplayTextLabelCaption; LANGMounterPrefs_MountPointLabelCaption := LANGptMounterPrefs_MountPointLabelCaption; LANGMounterPrefs_MountDeviceLabelCaption := LANGptMounterPrefs_MountDeviceLabelCaption; LANGMounterPrefs_DeviceTypeLabelCaption := LANGptMounterPrefs_DeviceTypeLabelCaption; LANGMounterPrefs_miLocalDiskCaption := LANGptMounterPrefs_miLocalDiskCaption; LANGMounterPrefs_miRemovableCaption := LANGptMounterPrefs_miRemovableCaption; LANGMounterPrefs_miCDCaption := LANGptMounterPrefs_miCDCaption; LANGMounterPrefs_miFloppyCaption := LANGptMounterPrefs_miFloppyCaption; LANGMounterPrefs_miNetworkCaption := LANGptMounterPrefs_miNetworkCaption; LANGMounterPrefs_MountCommandLabelCaption := LANGptMounterPrefs_MountCommandLabelCaption; LANGMounterPrefs_UmountCommandLabelCaption := LANGptMounterPrefs_UmountCommandLabelCaption; LANGMounterPrefs_MountCommandEntryTooltip := LANGptMounterPrefs_MountCommandEntryTooltip; LANGMounterPrefs_UmountCommandEntryTooltip := LANGptMounterPrefs_UmountCommandEntryTooltip; LANGMounterPrefs_IconLabelCaption := LANGptMounterPrefs_IconLabelCaption; LANGConnMgr_Caption := LANGptConnMgr_Caption; LANGConnMgr_ConnectButton := LANGptConnMgr_ConnectButton; LANGConnMgr_OpenConnection := LANGptConnMgr_OpenConnection; LANGConnMgr_NameColumn := LANGptConnMgr_NameColumn; LANGConnMgr_URIColumn := LANGptConnMgr_URIColumn; LANGConnMgr_AddConnectionButtonCaption := LANGptConnMgr_AddConnectionButtonCaption; LANGConnMgr_AddConnectionButtonTooltip := LANGptConnMgr_AddConnectionButtonTooltip; LANGConnMgr_EditButtonCaption := LANGptConnMgr_EditButtonCaption; LANGConnMgr_EditButtonTooltip := LANGptConnMgr_EditButtonTooltip; LANGConnMgr_RemoveButtonCaption := LANGptConnMgr_RemoveButtonCaption; LANGConnMgr_RemoveButtonTooltip := LANGptConnMgr_RemoveButtonTooltip; LANGConnMgr_DoYouWantDelete := LANGptConnMgr_DoYouWantDelete; LANGConnProp_FTP := LANGptConnProp_FTP; LANGConnProp_SFTP := LANGptConnProp_SFTP; LANGConnProp_SMB := LANGptConnProp_SMB; LANGConnProp_HTTP := LANGptConnProp_HTTP; LANGConnProp_HTTPS := LANGptConnProp_HTTPS; LANGConnProp_Other := LANGptConnProp_Other; LANGConnProp_Caption := LANGptConnProp_Caption; LANGConnProp_VFSModule := LANGptConnProp_VFSModule; LANGConnProp_URI := LANGptConnProp_URI; LANGConnProp_URIEntryTooltip := LANGptConnProp_URIEntryTooltip; LANGConnProp_DetailedInformations := LANGptConnProp_DetailedInformations; LANGConnProp_Name := LANGptConnProp_Name; LANGConnProp_Server := LANGptConnProp_Server; LANGConnProp_Username := LANGptConnProp_Username; LANGConnProp_UserNameEntryTooltip := LANGptConnProp_UserNameEntryTooltip; LANGConnProp_Password := LANGptConnProp_Password; LANGConnProp_TargetDirectory := LANGptConnProp_TargetDirectory; LANGConnProp_ServiceType := LANGptConnProp_ServiceType; LANGConnProp_MaskPassword := LANGptConnProp_MaskPassword; LANGConnProp_MenuItemCaption := LANGptConnProp_MenuItemCaption; LANGConnLogin_Caption := LANGptConnLogin_Caption; LANGConnLogin_Login := LANGptConnLogin_Login; LANGConnLogin_ExperimentalWarningLabelCaption := LANGptConnLogin_ExperimentalWarningLabelCaption; LANGConnLogin_Username := LANGptConnLogin_Username; LANGConnLogin_Password := LANGptConnLogin_Password; LANGConnLogin_AnonymousCheckButton := LANGptConnLogin_AnonymousCheckButton; LANGColumns_Caption := LANGptColumns_Caption; LANGColumns_Title := LANGptColumns_Title; LANGColumns_MoveUpButtonTooltip := LANGptColumns_MoveUpButtonTooltip; LANGColumns_MoveDownButtonTooltip := LANGptColumns_MoveDownButtonTooltip; LANGColumns_TitlesLongName := LANGptColumns_TitlesLongName; LANGColumns_TitlesLongNameExt := LANGptColumns_TitlesLongNameExt; LANGColumns_TitlesLongExt := LANGptColumns_TitlesLongExt; LANGColumns_TitlesLongSize := LANGptColumns_TitlesLongSize; LANGColumns_TitlesLongDateTime := LANGptColumns_TitlesLongDateTime; LANGColumns_TitlesLongDate := LANGptColumns_TitlesLongDate; LANGColumns_TitlesLongTime := LANGptColumns_TitlesLongTime; LANGColumns_TitlesLongUser := LANGptColumns_TitlesLongUser; LANGColumns_TitlesLongGroup := LANGptColumns_TitlesLongGroup; LANGColumns_TitlesLongAttr := LANGptColumns_TitlesLongAttr; LANGColumns_TitlesShortName := LANGptColumns_TitlesShortName; LANGColumns_TitlesShortNameExt := LANGptColumns_TitlesShortNameExt; LANGColumns_TitlesShortExt := LANGptColumns_TitlesShortExt; LANGColumns_TitlesShortSize := LANGptColumns_TitlesShortSize; LANGColumns_TitlesShortDateTime := LANGptColumns_TitlesShortDateTime; LANGColumns_TitlesShortDate := LANGptColumns_TitlesShortDate; LANGColumns_TitlesShortTime := LANGptColumns_TitlesShortTime; LANGColumns_TitlesShortUser := LANGptColumns_TitlesShortUser; LANGColumns_TitlesShortGroup := LANGptColumns_TitlesShortGroup; LANGColumns_TitlesShortAttr := LANGptColumns_TitlesShortAttr; LANGTestPlugin_Caption := LANGptTestPlugin_Caption; LANGTestPlugin_Title := LANGptTestPlugin_Title; LANGTestPlugin_ExperimentalWarningLabelCaption := LANGptTestPlugin_ExperimentalWarningLabelCaption; LANGTestPlugin_Plugin := LANGptTestPlugin_Plugin; LANGTestPlugin_Command := LANGptTestPlugin_Command; LANGTestPlugin_Username := LANGptTestPlugin_Username; LANGTestPlugin_Password := LANGptTestPlugin_Password; LANGTestPlugin_AnonymousCheckButton := LANGptTestPlugin_AnonymousCheckButton; LANGTestPlugin_NoPluginsFound := LANGptTestPlugin_NoPluginsFound; LANGRemoteWait_Caption := LANGptRemoteWait_Caption; LANGRemoteWait_OperationInProgress := LANGptRemoteWait_OperationInProgress; LANGRemoteWait_ItemsFound := LANGptRemoteWait_ItemsFound; LANGSearch_Bytes := LANGptSearch_Bytes; LANGSearch_kB := LANGptSearch_kB; LANGSearch_MB := LANGptSearch_MB; LANGSearch_days := LANGptSearch_days; LANGSearch_weeks := LANGptSearch_weeks; LANGSearch_months := LANGptSearch_months; LANGSearch_years := LANGptSearch_years; LANGSearch_Caption := LANGptSearch_Caption; LANGSearch_General := LANGptSearch_General; LANGSearch_Advanced := LANGptSearch_Advanced; LANGSearch_SearchResults := LANGptSearch_SearchResults; LANGSearch_SearchFor := LANGptSearch_SearchFor; LANGSearch_FileMaskEntryTooltip := LANGptSearch_FileMaskEntryTooltip; LANGSearch_SearchIn := LANGptSearch_SearchIn; LANGSearch_SearchArchivesCheckButton := LANGptSearch_SearchArchivesCheckButton; LANGSearch_FindText := LANGptSearch_FindText; LANGSearch_FindTextEntryTooltip := LANGptSearch_FindTextEntryTooltip; LANGSearch_CaseSensitiveCheckButton := LANGptSearch_CaseSensitiveCheckButton; LANGSearch_StayCurrentFSCheckButton := LANGptSearch_StayCurrentFSCheckButton; LANGSearch_CaseSensitiveMatchCheckButton := LANGptSearch_CaseSensitiveMatchCheckButton; LANGSearch_Size := LANGptSearch_Size; LANGSearch_Date := LANGptSearch_Date; LANGSearch_BiggerThan := LANGptSearch_BiggerThan; LANGSearch_SmallerThan := LANGptSearch_SmallerThan; LANGSearch_ModifiedBetweenRadioButton := LANGptSearch_ModifiedBetweenRadioButton; LANGSearch_NotModifiedAfterRadioButton := LANGptSearch_NotModifiedAfterRadioButton; LANGSearch_ModifiedLastRadioButton := LANGptSearch_ModifiedLastRadioButton; LANGSearch_ModifiedNotLastRadionButton := LANGptSearch_ModifiedNotLastRadionButton; LANGSearch_ModifiedBetweenEntry1 := LANGptSearch_ModifiedBetweenEntry1; LANGSearch_ViewButtonCaption := LANGptSearch_ViewButtonCaption; LANGSearch_NewSearchButtonCaption := LANGptSearch_NewSearchButtonCaption; LANGSearch_GoToFileButtonCaption := LANGptSearch_GoToFileButtonCaption; LANGSearch_FeedToListboxButtonCaption := LANGptSearch_FeedToListboxButtonCaption; LANGSearch_StatusSC := LANGptSearch_StatusSC; LANGSearch_Ready := LANGptSearch_Ready; LANGSearch_PreparingToSearch := LANGptSearch_PreparingToSearch; LANGSearch_SearchInProgress := LANGptSearch_SearchInProgress; LANGSearch_UserCancelled := LANGptSearch_UserCancelled; LANGSearch_SearchFinished := LANGptSearch_SearchFinished; LANGSearch_FilesFound := LANGptSearch_FilesFound; LANGSearch_And := LANGptSearch_And; LANGCloseOpenConnection := LANGptCloseOpenConnection; LANGDuplicateTabWarning := LANGptDuplicateTabWarning; LANGDontShowAgain := LANGptDontShowAgain; LANGSwitchOtherPanelWarning := LANGptSwitchOtherPanelWarning; LANGOpenConnectionsWarning := LANGptOpenConnectionsWarning; LANGmiDisconnect_Caption := LANGptmiDisconnect_Caption; LANGDisconnectButton_Tooltip := LANGptDisconnectButton_Tooltip; LANGLeaveArchiveButton_Tooltip := LANGptLeaveArchiveButton_Tooltip; LANGOpenTerminalButton_Tooltip := LANGptOpenTerminalButton_Tooltip; LANGOpenTerminalButton_Caption := LANGptOpenTerminalButton_Caption; LANGShowTextUIDsCheckBox_Caption := LANGptShowTextUIDsCheckBox_Caption; LANGShowTextUIDsCheckBox_Tooltip := LANGptShowTextUIDsCheckBox_Tooltip; LANGmiNewTab_Caption := LANGptmiNewTab_Caption; LANGFilePopupMenu_Properties := LANGptFilePopupMenu_Properties; LANGCommandEntry_Tooltip := LANGptCommandEntry_Tooltip; LANGmiFiles_Caption := LANGptmiFiles_Caption; LANGPasswordButton_Tooltip := LANGptPasswordButton_Tooltip; LANGHandleRunFromArchive_Bytes := LANGptHandleRunFromArchive_Bytes; LANGHandleRunFromArchive_FileTypeDesc_Unknown := LANGptHandleRunFromArchive_FileTypeDesc_Unknown; LANGHandleRunFromArchive_NotAssociated := LANGptHandleRunFromArchive_NotAssociated; LANGHandleRunFromArchive_SelfExecutable := LANGptHandleRunFromArchive_SelfExecutable; LANGHandleRunFromArchive_CouldntCreateTemporaryDirectory := LANGptHandleRunFromArchive_CouldntCreateTemporaryDirectory; LANGFRunFromVFS_Caption := LANGptFRunFromVFS_Caption; LANGFRunFromVFS_TitleLabel := LANGptFRunFromVFS_TitleLabel; LANGFRunFromVFS_FileNameLabel := LANGptFRunFromVFS_FileNameLabel; LANGFRunFromVFS_FileTypeLabel := LANGptFRunFromVFS_FileTypeLabel; LANGFRunFromVFS_SizeLabel := LANGptFRunFromVFS_SizeLabel; LANGFRunFromVFS_PackedSizeLabel := LANGptFRunFromVFS_PackedSizeLabel; LANGFRunFromVFS_DateLabel := LANGptFRunFromVFS_DateLabel; LANGFRunFromVFS_InfoLabel := LANGptFRunFromVFS_InfoLabel; LANGFRunFromVFS_OpensWithLabel := LANGptFRunFromVFS_OpensWithLabel; LANGFRunFromVFS_ExecuteButton := LANGptFRunFromVFS_ExecuteButton; LANGFRunFromVFS_ExecuteAllButton := LANGptFRunFromVFS_ExecuteAllButton; LANGFSetPassword_Caption := LANGptFSetPassword_Caption; LANGFSetPassword_Label1_Caption := LANGptFSetPassword_Label1_Caption; LANGFSetPassword_Label2_Caption := LANGptFSetPassword_Label2_Caption; LANGFSetPassword_ShowPasswordCheckButton := LANGptFSetPassword_ShowPasswordCheckButton; LANGCopyFileNamesToClipboard := LANGptCopyFileNamesToClipboard; LANGCopyFullPathNamesToClipboard := LANGptCopyFullPathNamesToClipboard; LANGCopyPathToClipboard := LANGptCopyPathToClipboard; LANGPreferences_DateFormatLabel_Caption := LANGptPreferences_DateFormatLabel_Caption; LANGPreferences_System := LANGptPreferences_System; LANGPreferences_Custom := LANGptPreferences_Custom; LANGPreferences_CustomDateFormatEntry_Tooltip := LANGptPreferences_CustomDateFormatEntry_Tooltip; LANGPreferences_TimeFormatLabel_Caption := LANGptPreferences_TimeFormatLabel_Caption; LANGPreferences_CustomTimeFormatEntry_Tooltip := LANGptPreferences_CustomTimeFormatEntry_Tooltip; LANGPreferences_DateTimeFormatLabel_Caption := LANGptPreferences_DateTimeFormatLabel_Caption; LANGPreferences_QuickRenameSkipExtCheckBox := LANGptPreferences_QuickRenameSkipExtCheckBox; LANGPreferences_QuickRenameSkipExtCheckBox_Tooltip := LANGptPreferences_QuickRenameSkipExtCheckBox_Tooltip; LANGPreferences_SortDirectoriesLikeFilesCheckBox := LANGptPreferences_SortDirectoriesLikeFilesCheckBox; LANGPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip := LANGptPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip; LANGPreferences_QuickSearchLabel_Caption := LANGptPreferences_QuickSearchLabel_Caption; LANGPreferences_QuickSearchOptionMenu_Tooltip := LANGptPreferences_QuickSearchOptionMenu_Tooltip; LANGPreferences_QuickSearch_Option1 := LANGptPreferences_QuickSearch_Option1; LANGPreferences_QuickSearch_Option2 := LANGptPreferences_QuickSearch_Option2; LANGPreferences_QuickSearch_Option3 := LANGptPreferences_QuickSearch_Option3; LANGPreferences_QuickSearch_Option4 := LANGptPreferences_QuickSearch_Option4; LANGPreferences_TempPathLabel_Caption := LANGptPreferences_TempPathLabel_Caption; LANGPreferences_VFSTempPathLabel_Caption := LANGptPreferences_VFSTempPathLabel_Caption; LANGPreferences_VFSTempPathEntry_Tooltip := LANGptPreferences_VFSTempPathEntry_Tooltip; LANGPreferences_RightClickSelectCheckBox := LANGptPreferences_RightClickSelectCheckBox; LANGPreferences_RightClickSelectCheckBox_Tooltip := LANGptPreferences_RightClickSelectCheckBox_Tooltip; LANGGtkMountOperation_ConnectAnonymously := LANGptGtkMountOperation_ConnectAnonymously; LANGGtkMountOperation_ConnectAsUser := LANGptGtkMountOperation_ConnectAsUser; LANGGtkMountOperation_Username := LANGptGtkMountOperation_Username; LANGGtkMountOperation_Domain := LANGptGtkMountOperation_Domain; LANGGtkMountOperation_Password := LANGptGtkMountOperation_Password; LANGGtkMountOperation_DoNotSavePassword := LANGptGtkMountOperation_DoNotSavePassword; LANGGtkMountOperation_ForgetPasswordImmediately := LANGptGtkMountOperation_ForgetPasswordImmediately; LANGGtkMountOperation_RememberPasswordUntilYouLogout := LANGptGtkMountOperation_RememberPasswordUntilYouLogout; LANGGtkMountOperation_SavePasswordInConnectionManager := LANGptGtkMountOperation_SavePasswordInConnectionManager; LANGGtkMountOperation_RememberForever := LANGptGtkMountOperation_RememberForever; LANGFSymlink_RelativePath := LANGptFSymlink_RelativePath; LANGFConnectionManager_DuplicateButton_Caption := LANGptFConnectionManager_DuplicateButton_Caption; LANGFConnectionManager_DuplicateButton_Tooltip := LANGptFConnectionManager_DuplicateButton_Tooltip; LANGFConnectionManager_DoNotSavePasswordsCheckBox_Label := LANGptFConnectionManager_DoNotSavePasswordsCheckBox_Label; LANGFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip := LANGptFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip; LANGFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label := LANGptFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label; LANGFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip := LANGptFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip; LANGFConnectionManager_DuplicateMenuItem_Caption := LANGptFConnectionManager_DuplicateMenuItem_Caption; LANGFQuickConnect_Caption := LANGptFQuickConnect_Caption; LANGFQuickConnect_TitleLabel_Caption := LANGptFQuickConnect_TitleLabel_Caption; LANGFQuickConnect_ConnectToURILabel_Caption := LANGptFQuickConnect_ConnectToURILabel_Caption; LANGLinkToS := LANGptLinkToS; LANGOpenDirectoryInBackgroundTab := LANGptOpenDirectoryInBackgroundTab; LANGTheActiveConnectionHasNotBeenSaved := LANGptTheActiveConnectionHasNotBeenSaved; LANGTheArchiveIsEncryptedAndRequiresPassword := LANGptTheArchiveIsEncryptedAndRequiresPassword; end; initialization AddTranslation('pt', @SetTranslation); AddTranslation('PT', @SetTranslation); AddTranslation('pt_PT', @SetTranslation); end. tuxcmd-0.6.70+dfsg/translations/UTranslation_CHS.pas0000644000175000017500000024606311300022643021415 0ustar salvisalvi(* Tux Commander - UTranslation_CHS - Simplified Chinese Localization constants Copyright (C) 2008 Kend Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UTranslation_CHS; (*************************************************************************** * Info for translators: - please use UTF-8 encoding when making translations, the whole GTK+ 2 is using it to display non-ASCII characters properly - please change the few lines at the bottom of this file to your locale string (e.g. en_US for English translation) ***************************************************************************) interface implementation uses ULocale; const LANGchsF2Button_Caption = 'F2 - é‡å‘½å'; LANGchsF3Button_Caption = 'F3 - 查看'; LANGchsF4Button_Caption = 'F4 - 编辑'; LANGchsF5Button_Caption = 'F5 - å¤åˆ¶'; LANGchsF6Button_Caption = 'F6 - 移动'; LANGchsF7Button_Caption = 'F7 - 新建目录'; LANGchsF8Button_Caption = 'F8 - 删除'; LANGchsmnuFile_Caption = '文件(_F)'; LANGchsmnuMark_Caption = '标记_M)'; LANGchsmnuCommands_Caption = '命令(_C)'; LANGchsmnuHelp_Caption = '帮助(_H)'; LANGchsmiExit_Caption = '退出(_X)'; LANGchsmiSelectGroup_Caption = '选择组(_G)...'; LANGchsmiUnselectGroup_Caption = 'å–æ¶ˆé€‰æ‹©ç»„(_U)...'; LANGchsmiSelectAll_Caption = '全选(_S)'; LANGchsmiUnselectAll_Caption = 'å–æ¶ˆå…¨é€‰(_N)'; LANGchsmiInvertSelection_Caption = 'å选(_I)'; LANGchsmiRefresh_Caption = '刷新(_R)'; LANGchsmiAbout_Caption = '关于(_A)...'; LANGchsColumn1_Caption = 'åç§°'; LANGchsColumn2_Caption = '扩展å'; LANGchsColumn3_Caption = '大å°'; LANGchsColumn4_Caption = '日期'; LANGchsColumn5_Caption = '属性'; LANGchsExpandSelection = '扩大选择'; LANGchsShrinkSelection = '收缩选择'; LANGchsNoMatchesFound = '没有找到匹é…项'; LANGchsNoFilesSelected = '没有文件被选择!'; LANGchsSelectedFilesDirectories = '%d 文件/目录被选择'; LANGchsDirectoryS = '目录 %s'; LANGchsFileS = '文件 %s'; LANGchsDoYouReallyWantToDeleteTheS = '你真的想删除 %s ?'; LANGchsDoYouReallyWantToDeleteTheSS = '你真的想删除 %s ?'#10'%s'; LANGchsCopyFiles = 'å¤åˆ¶æ–‡ä»¶'; LANGchsMoveRenameFiles = '移动/é‡å‘½å文件'; LANGchsCopyDFileDirectoriesTo = 'å¤åˆ¶ %d 文件/目录到'; LANGchsMoveRenameDFileDirectoriesTo = '移动/é‡å‘½å %d 文件/目录到'; LANGchsCopySC = 'å¤åˆ¶:'; LANGchsMoveRenameSC = '移动/é‡å‘½å:'; LANGchsQuickFind = ' 快速查找:'; LANGchsAboutString = 'Tux Commander'#10'版本 %s'#10'建立日期: %s'#10#10'ç‰ˆæƒæ‰€æœ‰ (c) 2008 Tomas Bzatek'#10'E-mail: tbzatek@users.sourceforge.net'#10'Website: http://tuxcmd.sourceforge.net/'#10'汉化: Kend [kendling@21cn.com]'; LANGchsAboutStringGnome = '版本 %s'#10'建立日期: %s'#10'网站: http://tuxcmd.sourceforge.net/'; LANGchsDiskStatFmt = '%s 空闲,å…± %s'; LANGchsDiskStatVolNameFmt = '[%s] %s 空闲,å…± %s'; LANGchsStatusLineFmt = '%s å…± %s 在 %d å…± %d 文件被选择'; LANGchsPanelStrings : array[boolean] of string = ('right', 'left'); LANGchsDIR = ''; LANGchsErrorGettingListingForSPanel = 'èŽ·å– %s 颿¿çš„列表时出错:'#10' %s'#10#10'路径 = ''%s'''; LANGchsErrorGettingListingForSPanelNoPath = 'èŽ·å– %s 颿¿çš„列表时出错:'#10' %s'; LANGchsErrorCreatingNewDirectorySInSPanel = '新建目录 ''%s'' 在 %s 颿¿æ—¶å‡ºé”™:'#10' %s'; LANGchsErrorCreatingNewDirectorySInSPanelNoPath = '新建目录在 %s 颿¿æ—¶å‡ºé”™:'#10' %s'; LANGchsTheFileDirectory = '文件/目录'; LANGchsCouldNotBeDeleted = 'ä¸èƒ½åˆ é™¤'; LANGchsCouldNotBeDeletedS = 'ä¸èƒ½åˆ é™¤: %s'; LANGchsUserCancelled = 'ç”¨æˆ·å·²å–æ¶ˆ!'; LANGchsTheDirectorySIsNotEmpty = '目录 %s ä¸ä¸ºç©º!'; LANGchsCannotCopyFile = 'ä¸èƒ½å¤åˆ¶æ–‡ä»¶'; LANGchsCopyError = 'å¤åˆ¶é”™è¯¯'; LANGchsMoveError = '移动错误'; LANGchsOverwriteS = 'å¤ç›–: %s'; LANGchsWithFileS = '为文件: %s'; LANGchsOvewriteSBytesS = '%s 字节, %s'; LANGchsTheFile = '文件'; LANGchsCopy = 'å¤åˆ¶'; LANGchsMove = '移动'; LANGchsTheDirectory = '目录'; LANGchsTheSymbolicLink = '符å·è¿žæŽ¥'; LANGchsCannotMoveFile = 'ä¸èƒ½ç§»åŠ¨æ–‡ä»¶'; LANGchsCouldNotBeCreated = 'ä¸èƒ½åˆ›å»º'; LANGchsCouldNotBeCreatedS = 'ä¸èƒ½åˆ›å»ºåˆ›: %s'; LANGchsFromS = '从: %s'; LANGchsToS = '到: %s'; LANGchsCannotCopyFileToItself = 'ä¸èƒ½å¤åˆ¶æ–‡ä»¶åˆ°è‡ªèº«'; LANGchsMemoryAllocationFailed = '内存分é…失败:'; LANGchsCannotOpenSourceFile = 'ä¸èƒ½æ‰“å¼€æºæ–‡ä»¶'; LANGchsCannotOpenDestinationFile = 'ä¸èƒ½æ‰“开目标文件'; LANGchsCannotCloseDestinationFile = 'ä¸èƒ½å…³é—­ç›®æ ‡æ–‡ä»¶'; LANGchsCannotCloseSourceFile = 'ä¸èƒ½å…³é—­æºæ–‡ä»¶'; LANGchsCannotReadFromSourceFile = 'ä¸èƒ½ä»Žæºæ–‡ä»¶è¯»å–'; LANGchsCannotWriteToDestinationFile = 'ä¸èƒ½å†™åˆ°ç›®æ ‡æ–‡ä»¶'; LANGchsUnknownException = '未知异常'; LANGchsNoAccess = '没有访问'; LANGchsUnknownError = '未知错误'; LANGchsCreateANewDirectory = '创建新目录'; LANGchsEnterDirectoryName = '输入目录å(_D):'; LANGchsOverwriteQuestion = 'å¤ç›–æç¤º'; LANGchsOverwriteButton_Caption = 'å¤ç›–(_O)'; LANGchsOverwriteAllButton_Caption = 'å¤ç›–所有(_A)'; LANGchsSkipButton_Caption = '跳过(_S)'; LANGchsOverwriteAllOlderButton_Caption = 'å¤ç›–旧文件(_D)'; LANGchsSkipAllButton_Caption = '全部跳过(_K)'; LANGchsRenameButton_Caption = 'é‡å‘½å(_R)'; LANGchsAppendButton_Caption = '附加(_P)'; LANGchsRename = 'é‡å‘½å'; LANGchsRenameFile = 'é‡å‘½å文件 ''%s'' 到'; LANGchsIgnoreButton_Caption = '忽略(_I)'; LANGchsProgress = '进度'; LANGchsCancel = 'å–æ¶ˆ(_C)'; LANGchsDelete = '删除:'; LANGchsSpecifyFileType = '指定文件类型(_S):'; LANGchsRemoveDirectory = '删除目录'; LANGchsDoYouWantToDeleteItWithAllItsFilesAndSubdirectories = '你确定删除该目录以åŠé‡Œé¢çš„æ‰€æœ‰æ–‡ä»¶å’Œå­ç›®å½•?'; LANGchsRetry = 'é‡è¯•(_R)'; LANGchsDeleteButton_Caption = '删除(_D)'; LANGchsAll = '全部(_A)'; LANGchsCopyFilesSC = 'å¤åˆ¶æ–‡ä»¶:'; LANGchsAppendQuestion = '你确定è¦é™„加文件 ''%s'' 到 ''%s''?'; LANGchsPreparingList = '正在准备列表...'; LANGchsYouMustSelectAValidFile = '你必需选择一个有效的文件!'; LANGchsmiVerifyChecksums = '检验校验和(_V)'; LANGchsVerifyChecksumsCaption = '检验校验和'; LANGchsCheckButtonCaptionCheck = '检查(_C)'; LANGchsCheckButtonCaptionStop = 'åœæ­¢(_S)'; LANGchsFileListTooltip = '[?] - 没有选择'#10'[OK] - 校验和正确'#10'[BAD] - 校验和失败'#10'[N/A] - 文件ä¸å¯ç”¨'; LANGchsFilenameColumnCaption = '文件å'; LANGchsTheFileSYouAreTryingToOpenIsQuiteBig = 'ä½ å°è¯•打开的文件 ''%s'' 太大 (%s 字节). 它å¯èƒ½ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„æ ¡éªŒå’Œæ–‡ä»¶.'#10#10'ä½ æ˜¯å¦æƒ³åŠ è½½å®ƒ?'; LANGchsAnErrorOccuredWhileInitializingMemoryBlock = 'åˆå§‹åŒ–å†…å­˜å—æ—¶å‘生错误. 请关闭一些程åºåŽå†è¯•.'; LANGchsAnErrorOccuredWhileOpeningFileSS = '打开文件 ''%s'' æ—¶å‘生错误:'#10' %s'; LANGchsAnErrorOccuredWhileReadingFileSS = 'è¯»å–æ–‡ä»¶ ''%s'' æ—¶å‘生错误:'#10' %s'; LANGchsChecksumNotChecked = '状æ€: 没有选择'; LANGchsChecksumChecking = '状æ€: 正在检验...'; LANGchsChecksumInterrupted = '状æ€: 中断'; LANGchsChecksumDOK = '状æ€: %d%% 正确'; LANGchsmiCreateChecksumsCaption = '创建校验和(_C)...'; LANGchsYouMustSelectAtLeastOneFileToCalculateChecksum = '你必须选择一个或多个文件进行校验和计算!'; LANGchsCreateChecksumsCaption = '创建校验和'; LANGchsCCHKSUMPage1Text = '你正在为选择的文件创建校验和文件.'#10'如果你没有选择文件,'#10'è¯·å…³é—­å¹¶é‡æ–°é€‰æ‹©æ–‡ä»¶.'; LANGchsCCHKSUMPage4Text = 'ä½ å·²ç»å‡†å¤‡å¥½ä¸ºé€‰æ‹©çš„æ–‡ä»¶åˆ›å»ºæ ¡éªŒå’Œ.'#10'这个æ“作å¯èƒ½éœ€è¦å‡ åˆ†é’Ÿæ—¶é—´.'#10'å•击å‰è¿›ç»§ç»­.'; LANGchsCCHKSUMPage6Text = '创建校验和时å‘生以下错误:'; LANGchsCCHKSUMPage7Text = '校验和创建完æˆ.'#10#10'å•击 "完æˆ" 按钮退出.'; LANGchsCCHKSUMPage1Title = '为校验和准备文件'; LANGchsCCHKSUMPage2Title = '选择校验和文件类型'; LANGchsCCHKSUMPage3Title = '选择文件å'; LANGchsCCHKSUMPage4Title = '准备检验'; LANGchsCCHKSUMPage5Title = '正在检验...'; LANGchsCCHKSUMPage6Title = '错误!'; LANGchsCCHKSUMPage7Title = '完æˆ'; LANGchsCCHKSUMSFVFile = 'SFV 文件'; LANGchsCCHKSUMMD5sumFile = 'MD5sum 文件'; LANGchsCCHKSUMFileName = '文件å(_N):'; LANGchsCCHKSUMCreateSeparateChecksumFiles = '为æ¯ä¸ªæ–‡ä»¶ç‹¬ç«‹åˆ›å»ºæ ¡éªŒå’Œæ–‡ä»¶(_S)'; LANGchsCCHKSUMNowProcessingFileS = 'æ­£åœ¨å¤„ç†æ–‡ä»¶: %s'; LANGchsCCHKSUMFinishCaption = '完æˆ(_F)'; LANGchsCCHKSUMAreYouSureYouWantToAbortTheProcessing = '你确定è¦ä¸­æ–­å½“剿“作?'; LANGchsCCHKSUMAnErrorOccuredWhileOpeningFileSS = '打开文件 ''%s'' æ—¶å‘生一个错误: %s'#10; LANGchsCCHKSUMAnErrorOccuredWhileReadingFileSS = 'è¯»å–æ–‡ä»¶ ''%s'' æ—¶å‘生一个错误: %s'#10; LANGchsCCHKSUMAnErrorOccuredWhileWritingFileSS = '写入文件 ''%s'' æ—¶å‘生一个错误: %s'#10; LANGchsAnErrorOccuredWhileWritingFileSS = '写入文件 ''%s'' æ—¶å‘生一个错误:'#10' %s'; LANGchsTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt = '目标文件 ''%s'' å·²ç»å­˜åœ¨. 你是å¦è¦å¤ç›–它?'; LANGchsTheTargetFileSCannotBeRemovedS = '目标文件 ''%s'' ä¸èƒ½åˆ›å»º: %s'; LANGchsMergeCaption = 'åˆå¹¶'; LANGchsPleaseInsertNextDiskOrGiveDifferentLocation = '请æ’入下一个ç£ç›˜, 或选择其他路径:'; LANGchsMergeOfSSucceeded = 'åˆå¹¶ ''%s'' æˆåŠŸ (CRC 校验和正确).'; LANGchsWarningCreatedFileFailsCRCCheck = '警告: 创建文件失败 CRC 检查!'; LANGchsMergeOfSSucceeded_NoCRCFileAvailable = 'åˆå¹¶ ''%s'' æˆåŠŸ (没有 CRC 文件å¯ç”¨).'; LANGchsMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory = '以字æ¯é¡ºåºåˆå¹¶ ''%s'' 和所有文件到以下目录:'; LANGchsMergeSC = 'åˆå¹¶:'; LANGchsmiSplitFileCaption = '拆分文件(_S)...'; LANGchsmiMergeFilesCaption = 'åˆå¹¶æ–‡ä»¶(_M)...'; LANGchsSplitTheFileSToDirectory = '拆分文件 ''%s'' 到目录(_S):'; LANGchsSplitSC = '拆分:'; LANGchsSplitFile = '拆分文件'; LANGchsBytesPerFile = 'æ¯ä¸ªæ–‡ä»¶å­—节数(_B):'; LANGchsAutomatic = '自动'; LANGchsDeleteFilesOnTargetDisk = '在目标ç£ç›˜åˆ é™¤æ–‡ä»¶(_D) (ä»…å¯ç§»åŠ¨åª’ä½“)'; LANGchsSplitCaption = '拆分'; LANGchsCannotOpenFileS = 'ä¸èƒ½æ‰“开文件 ''%s'''; LANGchsCannotSplitTheFileToMoreThan999Parts = 'ä¸èƒ½æŠŠæ–‡ä»¶æ‹†åˆ†ä¸º 999 部份以上!'; LANGchsThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem = 'æŸäº›æ–‡ä»¶å·²ç»åœ¨ç›®æ ‡ç›®å½•存在:'#10'%s'#10'是å¦åˆ é™¤è¿™äº›æ–‡ä»¶?'; LANGchsThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem = '%d 文件在目标目录中. 是å¦åˆ é™¤è¿™äº›æ–‡ä»¶?'; LANGchsAnErrorOccuredWhileOperationS = '执行æ“作时å‘生下一个错误: %s'; LANGchsSplitOfSSucceeded = '拆分 ''%s'' æˆåŠŸ.'; LANGchsSplitOfSFailed = '拆分 ''%s'' 失败!'; LANGchsmnuShow_Caption = '显示(_W)'; LANGchsmiShowDotFiles_Caption = '显示以"."开头的文件(_D)(éšè—文件)'; LANGchsTheFileYouAreTryingToOpenIsQuiteBig = 'ä½ å°è¯•打开的文件太大. 在外部程åº(å¯èƒ½ä¸º gedit)中加载å¯èƒ½å¯¼è‡´ç³»ç»Ÿç¼“æ…¢.'#10'是å¦ç»§ç»­?'; LANGchsCannotExecuteSPleaseCheckTheConfiguration = 'ä¸èƒ½æ‰§è¡Œ ''%s''. 请检查é…ç½®æˆ–è®¾ç½®æ–‡ä»¶å¯æ‰§è¡Œå±žæ€§æ˜¯å¦æ­£å¸¸.'; LANGchsEdit = '编辑'; LANGchsEnterFilenameToEdit = '输入è¦ç¼–辑的文件å(_E):'; LANGchsmnuSettings_Caption = '设置(_T)'; LANGchsmiFileTypes_Caption = '文件类型(_T)...'; LANGchsThereIsNoApplicationAssociatedWithS = '没有程åºå…³è”到 "%s".'#10#10'ä½ å¯ä»¥é…ç½® Tux Commander å…³è”到该文件类型. 是å¦çŽ°åœ¨å…³è”该文件类型到一个程åº?'; LANGchsErrorExecutingCommand = '执行命令错误!'; LANGchsEditFileTypesCaption = '编辑文件类型'; LANGchsTitleLabel_Caption = '文件类型é…ç½®'; LANGchsExtensionsColumn = '扩展å'; LANGchsDescriptionColumn = 'æè¿°'; LANGchsFileTypesList = '文件类型列表'; LANGchsActionName = 'è¿ä½œåç§°'; LANGchsCommand = '命令'; LANGchsSetDefaultActionButton_Caption = '设为缺çœ(_S)'; LANGchsRunInTerminalCheckBox_Caption = '在终端中è¿è¡Œ(_T)'; LANGchsAutodetectCheckBox_Caption = '自动检测 _GUI 程åº'; LANGchsBrowseButton_Caption = 'æµè§ˆ(_B)...'; LANGchsCommandLabel_Caption = '命令(_M):'; LANGchsDescriptionLabel_Caption = 'æè¿°(_E):'; LANGchsFNameExtLabel_Caption = '添加扩展å(_D):'; LANGchsNotebookPageExtensions = '文件类型'; LANGchsNotebookPageActions = 'è¿ä½œ'; LANGchsDefault = ' (缺çœ)'; LANGchsCannotSaveFileTypeAssociationsBecauseOtherProcess = 'ä¸èƒ½ä¿å­˜æ–‡ä»¶ç±»åž‹å…³è”, 因为该程åºçš„å¦ä¸€ä¸ªå®žä¾‹å·²ç»æ›´æ–°.'; LANGchsDefaultColor = '缺çœé¢œè‰²(_F)'; LANGchsIcon = '图标(_I):'; LANGchsBrowseForIcon = 'æµè§ˆå›¾æ ‡'; LANGchsSelectFileTypeColor = '选择文件类型颜色'; LANGchsColor = '颜色(_L):'; LANGchsmiChangePermissions_Caption = '更改æƒé™(_M)...'; LANGchsmiChangeOwner_Caption = '更改所有者/组...'; LANGchsmiCreateSymlink_Caption = '创建符å·è¿žæŽ¥(_L)...'; LANGchsmiEditSymlink_Caption = '编辑符å·è¿žæŽ¥(_E)...'; LANGchsChmodProgress = '更改æƒé™:'; LANGchsChownProgress = '更改所有者:'; LANGchsYouMustSelectAValidSymbolicLink = '你必需选择一个有效的符å·ä¸ºè¿žæŽ¥!'; LANGchsPopupRunS = '执行(_X) %s'; LANGchsPopupOpenS = '打开(_P) %s'; LANGchsPopupGoUp = '上一级(_G)'; LANGchsPopupOpenWithS = '打开为 %s'; LANGchsPopupDefault = ' (缺çœ)'; LANGchsPopupOpenWith = '打开为(_P)...'; LANGchsPopupViewFile = '查看文件(_V)'; LANGchsPopupEditFile = '编辑文件(_I))'; LANGchsPopupMakeSymlink = '创建符å·è¿žæŽ¥(_S)'; LANGchsPopupRename = 'é‡å‘½å(_R)'; LANGchsPopupDelete = '删除(_D)'; LANGchsDialogChangePermissions = '更改仅é™'; LANGchsCouldNotBeChmoddedS = 'ä¸èƒ½æ›´æ”¹æƒé™: %s'; LANGchsDialogChangeOwner = '更改所有者'; LANGchsCouldNotBeChownedS = 'ä¸èƒ½æ›´æ”¹æ‰€æœ‰è€…: %s'; LANGchsDialogMakeSymlink = '创建符å·è¿žæŽ¥'; LANGchsDialogEditSymlink = '编辑符å·è¿žæŽ¥'; LANGchsFEditSymlink_Caption = '编辑符å·è¿žæŽ¥'; LANGchsFEditSymlink_SymbolicLinkFilename = '编辑符å·è¿žæŽ¥æ–‡ä»¶å(_S):'; LANGchsFEditSymlink_SymbolicLinkPointsTo = '符å·è¿žæŽ¥åˆ°(_T):'; LANGchsFChmod_Caption = '访问æƒé™'; LANGchsFChmod_PermissionFrame = ''; LANGchsFChmod_FileFrame = '文件'; LANGchsFChmod_ApplyRecursivelyFor = 'åº”ç”¨åˆ°å­æ–‡ä»¶å’Œç›®å½•(_R)'; LANGchsFChmod_miAllFiles = '所有文件和目录'; LANGchsFChmod_miDirectories = '仅目录'; LANGchsFChmod_OctalLabel = '八进制(_O):'; LANGchsFChmod_SUID = 'SUID - è¿è¡Œæ—¶è®¾ç½®ç”¨æˆ· ID'; LANGchsFChmod_SGID = 'SGID - è¿è¡Œæ—¶è®¾ç½®ç»„ ID'; LANGchsFChmod_Sticky = '粘贴ä½'; LANGchsFChmod_RUSR = 'RUSR - 以所有者读'; LANGchsFChmod_WUSR = 'WUSR - 以所有者写'; LANGchsFChmod_XUSR = 'XUSR - 以所有者执行/æœç´¢'; LANGchsFChmod_RGRP = 'RGRP - 以组读'; LANGchsFChmod_WGRP = 'WGRP - 以组写'; LANGchsFChmod_XGRP = 'XGRP - 以组执行/æœç´¢'; LANGchsFChmod_ROTH = 'ROTH - 以其他读'; LANGchsFChmod_WOTH = 'WOTH - 以其他写'; LANGchsFChmod_XOTH = 'XOTH - 以其他执行/æœç´¢'; LANGchsFChmod_TextLabel = '文本: %s'; LANGchsFChmod_FileLabel = '文件: %s'#10'文本: %s'#10 + '八进制: %d'#10'所有者: %s'#10 + '组: %s'; LANGchsFChown_Caption = '更改 所有者/组'; LANGchsFChown_OwnerFrame = '用户å'; LANGchsFChown_GroupFrame = '组å'; LANGchsFChown_FileFrame = '文件'; LANGchsFChown_ApplyRecursively = 'åº”ç”¨åˆ°å­æ–‡ä»¶å’Œç›®å½•(_R)'; LANGchsFSymlink_Caption = '创建符å·è¿žæŽ¥'; LANGchsFSymlink_ExistingFilename = '已存在文件å(_E) (符å·è¿žæŽ¥åˆ°çš„æ–‡ä»¶å):'; LANGchsFSymlink_SymlinkFilename = '符å·è¿žæŽ¥æ–‡ä»¶å(_S):'; LANGchsmnuBookmarks_Caption = '书签(_B)'; LANGchsmiAddBookmark_Caption = '添加添加'; LANGchsmiEditBookmarks_Caption = '编辑编辑'; LANGchsBookmarkPopupDelete_Caption = '删除(_D)'; LANGchsmiPreferences_Caption = '傿•°(_P)...'; LANGchsTheCurrentDirectoryAlreadyExistsInTheBookmarksList = '当å‰ç›®å½•å·²ç»åœ¨ä¹¦ç­¾ä¸­'; LANGchsSomeOtherInstanceChanged = 'å…¶ä»– Tux Commander å®žä¾‹å·²ç»æ›´æ”¹é…ç½®. 是å¦åº”到新新设置?'#10#10'警告: 如果你点击"å¦", 当å‰é…置将会å¤ç›–最新设置'' 退出!'; LANGchsPreferences_Caption = '傿•°'; LANGchsPreferences_TitleLabel_Caption = '程åºå‚æ•°'; LANGchsPreferences_GeneralPage = '常规'; LANGchsPreferences_FontsPage = '字体'; LANGchsPreferences_ColorsPage = '颜色'; LANGchsPreferences_RowHeight = '行高度(_H):'; LANGchsPreferences_NumHistoryItems = '命令行历å²é¡¹ç›®æ•°(_M):'; LANGchsPreferences_Default = '缺çœ(_D)'; LANGchsPreferences_ClearReadonlyAttribute = '从 CD-ROM å¤åˆ¶æ–‡ä»¶æ™¨æ¸…除åªè¯»å±žæ€§(_R)'; LANGchsPreferences_DisableMouseRenaming = 'ç¦ç”¨é¼ æ ‡é‡å‘½å(_M)'; LANGchsPreferences_ShowFiletypeIconsInList = '显示文件类型图标(_F)'; LANGchsPreferences_ExternalAppsLabel = '外部程åº'; LANGchsPreferences_Viewer = '查看器(_V):'; LANGchsPreferences_Editor = '编辑器(_E):'; LANGchsPreferences_Terminal = '终端(_T):'; LANGchsPreferences_ListFont = '列表字体:'; LANGchsPreferences_Change = '更改...'; LANGchsPreferences_UseDefaultFont = '使用缺çœå­—体(_D)'; LANGchsPreferences_Foreground = '剿™¯'; LANGchsPreferences_Background = '背景'; LANGchsPreferences_NormalItem = '缺çœé¡¹:'; LANGchsPreferences_SetToDefaultToUseGTKThemeColors = '设置缺çœä¸º GTK 主题颜色'; LANGchsPreferences_Cursor = '颜色:'; LANGchsPreferences_InactiveItem = '䏿¿€åЍ项:'; LANGchsPreferences_SelectedItem = '已选择项:'; LANGchsPreferences_LinkItem = '符å·è¿žæŽ¥:'; LANGchsPreferences_LinkItemHint = '设置缺çœä¸ºæ˜¾ç¤ºç¬¦å·è¿žæŽ¥é¢œè‰²ä½¿ç”¨æ­£å¸¸é¡¹é¢œè‰²'; LANGchsPreferences_DotFileItem = '以"."开头的文件:'; LANGchsPreferences_DotFileItemHint = '设置缺çœä¸ºæ˜¾ç¤ºä»¥"."开头的文件使用正常项颜色'; LANGchsPreferences_BrowseForApplication = 'æµè§ˆåº”用程åº'; LANGchsPreferences_DefaultS = '缺çœ: %s'; LANGchsPreferences_SelectFont = '选择字体'; (*************** STRINGS ADDED TO v0.4.101 **********************************************************************************) LANGchsBookmarkButton_Tooltip = '显示书签'; LANGchsUpButton_Tooltip = '转到上一层目录'; LANGchsRootButton_Tooltip = '转到根目录 (/)'; LANGchsHomeButton_Tooltip = '转到用户目录 (/home/user)'; LANGchsLeftEqualButton_Tooltip = '切æ¢å³é¢æ¿åˆ°ç›¸åŒç›®å½•'; LANGchsRightEqualButton_Tooltip = '切æ¢å·¦é¢æ¿åˆ°ç›¸åŒç›®å½•'; LANGchsmiShowDirectorySizes_Caption = '显示目录大å°(_I)'; LANGchsmiTargetSource_Caption = '目标 = æº(_O)'; LANGchsFileTypeDirectory = '目录'; LANGchsFileTypeFile = '文件'; LANGchsFileTypeMetafile = '这是一个公用媒体项'; LANGchsPreferencesPanelsPage = '颿¿'; LANGchsPreferencesApplicationsPage = '应用程åº'; LANGchsPreferencesExperimentalPage = '实验项'; LANGchsPreferencesSelectAllDirectoriesCheckBox_Caption = '全选时包括目录(_A)'; LANGchsPreferencesNewStyleAltOCheckBox_Caption = 'æ–°æ ·å¼(_N) Alt+O'; LANGchsPreferencesNewStyleAltOCheckBox_Tooltip = '按 Ctrl/Alt+O 切æ¢ç›®æ ‡é¢æ¿çš„目录时åœç•™åœ¨ç›¸åŒçš„目录'; LANGchsPreferencesShowFuncButtonsCheckBox_Caption = '显示功能按钮(_K)'; LANGchsPreferencesSizeFormatLabel_Caption = '大尿 ¼å¼(_S):'; LANGchsPreferencesmiSizeFormat1 = '系统'; LANGchsPreferencesmiSizeFormat6 = '组'; LANGchsPreferencesAutodetectXApp = '自动检测 X 程åº'; LANGchsPreferencesAlwaysRunInTerminal = '总是在终端中è¿è¡Œ'; LANGchsPreferencesNeverRunInTerminal = 'æ°¸ä¸åœ¨ç»ˆç«¯ä¸­è¿è¡Œ'; LANGchsPreferencesCmdLineBehaviourLabel_Caption = '从命令行执行(_E):'; LANGchsPreferencesFeatures = '功能'; LANGchsPreferencesDisableMouseRename_Tooltip = 'ä½ ä»ç„¶å¯ä»¥é€šè¿‡ Shift+F6 快速é‡å‘½å'; LANGchsPreferencesDisableFileTipsCheckBox_Caption = 'ç¦ç”¨æ–‡ä»¶æç¤º(_T)'; LANGchsPreferencesDisableFileTipsCheckBox_Tooltip = '颿¿ä¸­çš„æ–‡å­—è¢«æˆªæ–­æ—¶ä¸æ˜¾ç¤ºæç¤º'; LANGchsPreferencesShow = '显示'; LANGchsPreferencesDirsInBoldCheckBox_Caption = '目录使用粗体(_B)'; LANGchsPreferencesDisableDirectoryBracketsCheckBox_Caption = 'éšè—目录的方括å·(_R)'; LANGchsPreferencesOctalPermissionsCheckBox_Caption = '显示八进制æƒé™(_O)'; LANGchsPreferencesOctalPermissionsCheckBox_Tooltip = 'ä»¥æ•°å­—æ ¼å¼æ˜¾ç¤ºæ–‡ä»¶/目录æƒé™ï¼Œé»˜è®¤ä»¥ (-rw-rw-rw-) æ ¼å¼'; LANGchsPreferencesMovement = 'Movement'; LANGchsPreferencesLynxLikeMotionCheckBox_Caption = '_Lynx-like motion'; LANGchsPreferencesInsertMovesDownCheckBox_Caption = '按 _Insert 光标下移'; LANGchsPreferencesSpaceMovesDownCheckBox_Caption = '按空格光标下移(_S)'; LANGchsPreferencesViewer = '查看器'; LANGchsPreferencesCommandSC = '命令:'; LANGchsPreferencesUseInternalViewer = '使用内置查看器(_I)'; LANGchsPreferencesEditor = '编辑器'; LANGchsPreferencesTerminal = '终端'; LANGchsPreferencesExperimentalFeatures = '体验功能'; LANGchsPreferencesExperimentalWarningLabel_Caption = '警告: 这些功能当å‰è¿˜åœ¨å¼€å‘阶段, å¯èƒ½å¹¶ä¸èƒ½æ­£å¸¸å·¥ä½œ. 使用他们你将自行承担风险!'; LANGchsPreferencesFocusRefreshCheckBox_Caption = '窗å£èŽ·å–焦点时进行刷新(_R)'; LANGchsPreferencesFocusRefreshCheckBox_Tooltip = 'è¿™æ—¶å€™é¢æ¿åˆ·æ–°éžå¸¸æ…¢'; LANGchsPreferencesWMCompatModeCheckBox_Caption = '_WM 兼容模å¼'; LANGchsPreferencesWMCompatModeCheckBox_Tooltip = '当你使用一些窗å£ç®¡ç†å™¨æ—¶å¯ä»¥ä½¿ç”¨æ­¤é€‰é¡¹(例如 IceWM ä¸èƒ½ä½¿çª—壿­£å¸¸æœ€å¤§åŒ–)'; LANGchsPreferencesCompatUseLibcSystemCheckBox_Caption = '使用 libc _system() 执行程åº'; LANGchsPreferencesCompatUseLibcSystemCheckBox_Tooltip = 'æ‰§è¡Œå¤–éƒ¨ç¨‹åºæ—¶å‘生错误时使用'; (*************** STRINGS ADDED TO v0.5.70 **********************************************************************************) LANGchsmiSearchCaption2 = '正在æœç´¢(_S)...'; LANGchsmiNoMounterBarCaption = '䏿˜¾ç¤ºé©±åЍ噍工具æ '; LANGchsmiShowOneMounterBarCaption = '显示一个驱动器工具æ (_O)'; LANGchsmiShowTwoMounterBarCaption = '显示两个驱动器工具æ (_T)'; LANGchsmnuNetworkCaption = '网络(_E)'; LANGchsmiConnectionsCaption = '连接(_C)...'; LANGchsmiOpenConnectionCaption = '打开连接(_Open)...'; LANGchsmiQuickConnectCaption = '快速连接(_Q)...'; LANGchsmnuPluginsCaption = 'æ’ä»¶(_U)'; LANGchsmiTestPluginCaption = '测试æ’ä»¶(_T)...'; LANGchsmiMounterSettingsCaption = '驱动器设置(_M)...'; LANGchsmiColumnsCaption = '颿¿åˆ—(_A)...'; LANGchsmiSavePositionCaption = 'ä¿å­˜ä½ç½®(_S)'; LANGchsmiMountCaption = '加载(_M)'; LANGchsmiUmountCaption = 'å¸è½½(_U)'; LANGchsmiEjectCaption = '弹出(_E)'; LANGchsmiDuplicateTabCaption = 'å¤åˆ¶å½“剿 ‡ç­¾'; LANGchsmiCloseTabCaption = '关闭当剿 ‡ç­¾'; LANGchsmiCloseAllTabsCaption = '关闭所有标签'; LANGchsCannotDetermineDestinationEngine = 'ä¸èƒ½ç¡®å®šç›®æ ‡å¼•擎. 请输入正确的路径é‡è¯•.'; LANGchsCannotLoadFile = 'ä¸èƒ½åŠ è½½æ–‡ä»¶ ''%s''. 请检查æƒé™.'; LANGchsMountPointDevice = '加载点: %s'#10'设备: %s'; LANGchsMountSC = '加载:'; LANGchsNoPluginsFound = '没有找到æ’ä»¶'; LANGchsPluginAbout = '关于...'; LANGchsCouldntOpenURI = 'ä¸èƒ½æ‰“开指定的URI. è¯·æ£€æŸ¥èµ„æºæ ‡è¯†çš„一致性和访问æƒé™.'; LANGchsPluginAboutInside = 'æ’ä»¶: %s'#10#10'%s'#10'%s'; LANGchsAreYouSureCloseAllTabs = '确定è¦å…³é—­æ‰€æœ‰éžæ´»åŠ¨çš„æ ‡ç­¾?'; LANGchsCouldntOpenURIArchive = 'ä¸èƒ½æ‰“开文档. 请检查一致性和访问æƒé™.'; LANGchsThereIsNoModuleAvailable = '没有å¯ç”¨çš„ VFS 模å—能处ç†å½“å‰è¿žæŽ¥'; LANGchsIgnoreError = '确定è¦å¿½ç•¥è¿™ä¸ªé”™è¯¯? æºæ–‡ä»¶å°†ä¼šè¢«åˆ é™¤'; LANGchsErrorMount = '加载设备 ''%s'' æ—¶å‘生错误:'#10#10; LANGchsErrorUmount = 'å¸è½½ ''%s'' æ—¶å‘生错误:'#10#10; LANGchsErrorEject = '弹出 ''%s'' æ—¶å‘生错误:'#10#10; LANGchsMounterPrefs_Caption = '驱动器设置'; LANGchsMounterPrefs_TitleLabelCaption = '驱动器设置'; LANGchsMounterPrefs_ListViewFrameCaption = '驱动器'; LANGchsMounterPrefs_MountName = '加载åç§°'; LANGchsMounterPrefs_MountPoint = '加载点'; LANGchsMounterPrefs_Device = '设备'; LANGchsMounterPrefs_MoveUpButtonTooltip = '上移项目'; LANGchsMounterPrefs_MoveDownButtonTooltip = '下移项目'; LANGchsMounterPrefs_UseFSTabDefaultsCheckBox = '使用 _fstab 缺çœé¡¹ç›®'; LANGchsMounterPrefs_UseFSTabDefaultsCheckBoxTooltip = '选中时, 驱动器工具æ å°†ä¼šåœ¨ /etc/fstab (系统加载列表文件) 文件中查找驱动器'; LANGchsMounterPrefs_ToggleModeCheckBox = '加载完æˆåŽä¿æŒæŒ‰é’®æŒ‰ä¸‹'; LANGchsMounterPrefs_ToggleModeCheckBoxTooltip = '选中时, 当设备加载完æˆåŽåŠ è½½æŒ‰é’®å°†ä¿æŒæŒ‰ä¸‹çжæ€; å†ç‚¹å‡»å°†ä¼šå¸è½½å®ƒä»¬ (å¯èƒ½æ˜¯å¼¹å‡º)'; LANGchsMounterPrefs_PropertiesFrameCaption = '驱动器属性'; LANGchsMounterPrefs_DisplayTextLabelCaption = '显示文本(_T):'; LANGchsMounterPrefs_MountPointLabelCaption = '加载点(_P):'; LANGchsMounterPrefs_MountDeviceLabelCaption = '设备(_D):'; LANGchsMounterPrefs_DeviceTypeLabelCaption = '设备类型(_Y):'; LANGchsMounterPrefs_miLocalDiskCaption = '本地ç£ç›˜'; LANGchsMounterPrefs_miRemovableCaption = 'å¯ç§»åЍç£ç›˜'; LANGchsMounterPrefs_miCDCaption = 'CD/DVD 驱动器'; LANGchsMounterPrefs_miFloppyCaption = '软盘驱动器'; LANGchsMounterPrefs_miNetworkCaption = '网络'; LANGchsMounterPrefs_MountCommandLabelCaption = '加载命令(_C):'; LANGchsMounterPrefs_UmountCommandLabelCaption = 'å¸è½½å‘½ä»¤(_O):'; LANGchsMounterPrefs_MountCommandEntryTooltip = '语法: 使用 %dev 代替设备和 %dir 的加载点或者空白使用缺çœåŠ è½½'#10'注æ„: 谨防交互å¼å‘½ä»¤, tuxcmd å°†ä¼šå‡æ­»!'#10'例å­: smbmount %dev %dir -o username=netuser,password=somepass'; LANGchsMounterPrefs_UmountCommandEntryTooltip = '语法: | %dev 代替设备和 %dir 的加载点或者空白使用缺çœå¸è½½'#10'例å­: smbumount $dir'; LANGchsMounterPrefs_IconLabelCaption = '图标(_I):'; LANGchsConnMgr_Caption = '打开新连接'; LANGchsConnMgr_ConnectButton = '连接(_N)'; LANGchsConnMgr_OpenConnection = '打开连接'; LANGchsConnMgr_NameColumn = 'åç§°'; LANGchsConnMgr_URIColumn = 'URI'; LANGchsConnMgr_AddConnectionButtonCaption = '添加站点(_A)...'; LANGchsConnMgr_AddConnectionButtonTooltip = '添加新连接'; LANGchsConnMgr_EditButtonCaption = '编辑(_E)...'; LANGchsConnMgr_EditButtonTooltip = '编辑选择的连接'; LANGchsConnMgr_RemoveButtonCaption = '删除站点(_R)'; LANGchsConnMgr_RemoveButtonTooltip = '删除选择的连接'; LANGchsConnMgr_DoYouWantDelete = '确定è¦åˆ é™¤è¿™ä¸ªè¿žæŽ¥ ''%s''?'; LANGchsConnProp_FTP = 'FTP'; LANGchsConnProp_SFTP = 'SFTP (ssh å­ç³»ç»Ÿ)'; LANGchsConnProp_SMB = 'Windows 共享 (SMB)'; LANGchsConnProp_HTTP = 'WebDAV (HTTP)'; LANGchsConnProp_HTTPS = '安装 WebDAV (HTTPS)'; LANGchsConnProp_Other = 'å…¶ä»– (在 URI 中指定)'; LANGchsConnProp_Caption = '连接属性'; LANGchsConnProp_VFSModule = '_VFS 模å—:'; LANGchsConnProp_URI = '_URI:'; LANGchsConnProp_URIEntryTooltip = '正确的 URI å¿…éœ€åŒ…å«æœåŠ¡ç±»åž‹å‰ç¼€å’ŒæœåŠ¡å™¨åœ°å€'; LANGchsConnProp_DetailedInformations = '详细信æ¯'; LANGchsConnProp_Name = 'åç§°(_N):'; LANGchsConnProp_Server = 'æœåС噍[:端å£](_V):'; LANGchsConnProp_Username = '用户å(_M):'; LANGchsConnProp_UserNameEntryTooltip = '空白时使用 anonymous 登录'; LANGchsConnProp_Password = '密ç (_P):'; LANGchsConnProp_TargetDirectory = '目标目录(_D):'; LANGchsConnProp_ServiceType = 'æœåŠ¡ç±»åž‹(_S):'; LANGchsConnProp_MaskPassword = 'éšè—密ç (_M)'; LANGchsConnProp_MenuItemCaption = 'ç¼ºçœ (所有适当的模å—)'; LANGchsConnLogin_Caption = '必需授æƒ'; LANGchsConnLogin_Login = '登录'; LANGchsConnLogin_ExperimentalWarningLabelCaption = '你必需登录åŽè®¿é—® %s'; LANGchsConnLogin_Username = '用户å(_U):'; LANGchsConnLogin_Password = '密ç (_P):'; LANGchsConnLogin_AnonymousCheckButton = '匿å(_A)'; LANGchsColumns_Caption = '颿¿åˆ—设置'; LANGchsColumns_Title = '颿¿åˆ—设置'; LANGchsColumns_MoveUpButtonTooltip = '上移项目'; LANGchsColumns_MoveDownButtonTooltip = '下移项目'; LANGchsColumns_TitlesLongName = 'åç§°'; LANGchsColumns_TitlesLongNameExt = 'åç§° + 扩展å'; LANGchsColumns_TitlesLongExt = '扩展å'; LANGchsColumns_TitlesLongSize = '大å°'; LANGchsColumns_TitlesLongDateTime = '日期 + æ—¶é—´'; LANGchsColumns_TitlesLongDate = '日期'; LANGchsColumns_TitlesLongTime = 'æ—¶é—´'; LANGchsColumns_TitlesLongUser = '用户'; LANGchsColumns_TitlesLongGroup = '组'; LANGchsColumns_TitlesLongAttr = '属性'; LANGchsColumns_TitlesShortName = 'åç§°'; LANGchsColumns_TitlesShortNameExt = 'åç§°'; LANGchsColumns_TitlesShortExt = '扩展å'; LANGchsColumns_TitlesShortSize = '大å°'; LANGchsColumns_TitlesShortDateTime = '日期'; LANGchsColumns_TitlesShortDate = '日期'; LANGchsColumns_TitlesShortTime = 'æ—¶é—´'; LANGchsColumns_TitlesShortUser = '用户'; LANGchsColumns_TitlesShortGroup = '组'; LANGchsColumns_TitlesShortAttr = '属性'; LANGchsTestPlugin_Caption = '测试 VFS æ’ä»¶'; LANGchsTestPlugin_Title = '测试 VFS æ’ä»¶'; LANGchsTestPlugin_ExperimentalWarningLabelCaption = '警告: VFS å­ç³»ç»Ÿå’Œå®ƒçš„æ’ä»¶è¿˜åœ¨ç´§å¼ å¼€å‘中, 它å¯èƒ½è¿˜æœ‰ BUG. 使用这个功能你将自行承担风险!'; LANGchsTestPlugin_Plugin = 'æ’ä»¶(_P):'; LANGchsTestPlugin_Command = '命令(_M):'; LANGchsTestPlugin_Username = '用户å(_U):'; LANGchsTestPlugin_Password = '密ç (_P):'; LANGchsTestPlugin_AnonymousCheckButton = '匿å登录(_A) (ä¸è°ƒç”¨ VFSLogin)'; LANGchsTestPlugin_NoPluginsFound = '没有找到æ’ä»¶'; LANGchsRemoteWait_Caption = 'æ“作正在进行'; LANGchsRemoteWait_OperationInProgress = 'æ“作正在进行, 请ç¨åŽ...'; LANGchsRemoteWait_ItemsFound = '找到项目在: %d'; LANGchsSearch_Bytes = '字节'; LANGchsSearch_kB = 'kB'; LANGchsSearch_MB = 'MB'; LANGchsSearch_days = 'æ—¥'; LANGchsSearch_weeks = '周'; LANGchsSearch_months = '月'; LANGchsSearch_years = 'å¹´'; LANGchsSearch_Caption = '找到文件'; LANGchsSearch_General = '常规'; LANGchsSearch_Advanced = '高级'; LANGchsSearch_SearchResults = 'æœç´¢ç»“æžœ(_R):'; LANGchsSearch_SearchFor = 'æœç´¢å†…容(_F):'; LANGchsSearch_FileMaskEntryTooltip = 'æç¤º: ä½¿ç”¨åˆ†å· (";") 指定多个查找项'; LANGchsSearch_SearchIn = 'æœç´¢ç›®å½•(_I):'; LANGchsSearch_SearchArchivesCheckButton = 'æœç´¢æ–‡æ¡£(_A)'; LANGchsSearch_FindText = '查找文本(_T):'; LANGchsSearch_FindTextEntryTooltip = '空为ä¸åŒ¹é…文本'#10'è¯·æ³¨æ„ GUI 部份 UTF-8'; LANGchsSearch_CaseSensitiveCheckButton = '大å°å†™æ•感(_E)'; LANGchsSearch_StayCurrentFSCheckButton = '包括其他文件系统(_Y)'; LANGchsSearch_CaseSensitiveMatchCheckButton = '大å°å†™æ•感(_S)'; LANGchsSearch_Size = '大å°'; LANGchsSearch_Date = '日期'; LANGchsSearch_BiggerThan = '>大于(_B)'; LANGchsSearch_SmallerThan = '<å°äºŽ(_S)'; LANGchsSearch_ModifiedBetweenRadioButton = '修改于(_M)'; LANGchsSearch_NotModifiedAfterRadioButton = '没有修改之åŽ(_N)'; LANGchsSearch_ModifiedLastRadioButton = '最åŽä¿®æ”¹äºŽ(_I)'; LANGchsSearch_ModifiedNotLastRadionButton = '没有修改于(_T)'; LANGchsSearch_ModifiedBetweenEntry1 = '"请使用这个日期格å¼:" c'; LANGchsSearch_ViewButtonCaption = '查看文件(_V)'; LANGchsSearch_NewSearchButtonCaption = 'æ–°æœç´¢(_N)'; LANGchsSearch_GoToFileButtonCaption = '转到文件(_G)'; LANGchsSearch_FeedToListboxButtonCaption = '填入文件列表(_L)'; LANGchsSearch_StatusSC = '状æ€:'; LANGchsSearch_Ready = '就绪.'; LANGchsSearch_PreparingToSearch = '正在准备æœç´¢.'; LANGchsSearch_SearchInProgress = '正在æœç´¢:'; LANGchsSearch_UserCancelled = 'ç”¨æˆ·å–æ¶ˆ.'; LANGchsSearch_SearchFinished = 'æœç´¢å®Œæˆ'; LANGchsSearch_FilesFound = '已找到 %d 文件'; LANGchsSearch_And = 'å’Œ'; (*************** STRINGS ADDED TO v0.5.82 **********************************************************************************) LANGchsCloseOpenConnection = '你正在å°è¯•åœ¨å½“å‰æ´»åŠ¨è¿žä¸­æ‰“å¼€æ–°è¿žæŽ¥. 如果继续, 当å‰çš„æ´»åŠ¨è¿žæŽ¥å°†ä¼šå…³é—­å¹¶è¢«æ–°è¿žæŽ¥ä»£æ›¿.'#10#10'是å¦ç»§ç»­?'; LANGchsDuplicateTabWarning = '你正在å°è¯•在新标签中打开远程目录. ä½†æ˜¯å¼•æ“Žå¹¶ä¸æ”¯æŒ. 新标签将会转到本地文件系统.'; LANGchsDontShowAgain = 'ä¸è¦å†æ˜¾ç¤ºæ­¤æ¶ˆæ¯(_D)'; LANGchsSwitchOtherPanelWarning = '你正在å°è¯•åœ¨ç›®æ ‡é¢æ¿ä¸­æ‰“开远程目录. ä½†æ˜¯å¼•æ“Žå¹¶ä¸æ”¯æŒ. 目标目录还会被切æ¢.'; LANGchsOpenConnectionsWarning = '当剿œ‰ä¸€äº›æ´»åŠ¨çš„è¿žæŽ¥åœ¨é¢æ¿ä¸­æ‰“å¼€. é€€å‡ºç¨‹åºæ—¶è¿™äº›è¿žæŽ¥å°†ä¼šè¢«å…³é—­.'#10#10'是å¦ç»§ç»­é€€å‡º?'; LANGchsmiDisconnect_Caption = 'æ–­å¼€(_D)'; LANGchsDisconnectButton_Tooltip = '断开活动的连接'; LANGchsLeaveArchiveButton_Tooltip = '关闭当剿–‡æ¡£'; LANGchsOpenTerminalButton_Tooltip = '在当å‰ç›®å½•打开一个新的终端窗å£'; LANGchsOpenTerminalButton_Caption = '打开终端(_R)'; LANGchsShowTextUIDsCheckBox_Caption = '显示文本 _UIDs'; LANGchsShowTextUIDsCheckBox_Tooltip = 'ä»¥æ–‡æœ¬æ ¼å¼æ˜¾ç¤ºç”¨æˆ·/组信æ¯(UID/GID)'; (*************** STRINGS ADDED TO v0.5.100 **********************************************************************************) LANGchsmiNewTab_Caption = '新目录标签(_T)'; LANGchsFilePopupMenu_Properties = '属性(_P)'; LANGchsCommandEntry_Tooltip = '使用 %s 作为文件/目录的å ä½ç¬¦'; LANGchsmiFiles_Caption = '仅文件'; (*************** STRINGS ADDED TO v0.6.31 **********************************************************************************) LANGchsPasswordButton_Tooltip = '文档必需使用密ç .'#10'点击设置'; LANGchsHandleRunFromArchive_Bytes = '字节'; LANGchsHandleRunFromArchive_FileTypeDesc_Unknown = '(未知)'; LANGchsHandleRunFromArchive_NotAssociated = '(未关è”)'; LANGchsHandleRunFromArchive_SelfExecutable = '(自执行)'; LANGchsHandleRunFromArchive_CouldntCreateTemporaryDirectory = 'ä¸èƒ½åˆ›å»ºä¸´æ—¶ç›®å½• "%s": %s.'#10#10'请检查临时目录设置并é‡è¯•.'; LANGchsFRunFromVFS_Caption = '打包文件属性'; LANGchsFRunFromVFS_TitleLabel = '文件属性'; LANGchsFRunFromVFS_FileNameLabel = '文件å:'; LANGchsFRunFromVFS_FileTypeLabel = '文件类型:'; LANGchsFRunFromVFS_SizeLabel = '大å°:'; LANGchsFRunFromVFS_PackedSizeLabel = '压缩åŽå¤§å°:'; LANGchsFRunFromVFS_DateLabel = '修改日期:'; LANGchsFRunFromVFS_InfoLabel = '䏿”¯æŒç›´æŽ¥ä»Žæ–‡æ¡£ä¸­æ‰“开文件. 点击文件下é¢çš„æŒ‰é’®(所有文件独立)将会解压到临时目录. 临时文件将会在关闭 Tux Commander 时删除.'; LANGchsFRunFromVFS_OpensWithLabel = '打开为:'; LANGchsFRunFromVFS_ExecuteButton = '解压并打开(_X)'; LANGchsFRunFromVFS_ExecuteAllButton = '解压所有并打开(_A)'; LANGchsFSetPassword_Caption = '设置密ç '; LANGchsFSetPassword_Label1_Caption = '必需输入密ç '; LANGchsFSetPassword_Label2_Caption = '该文档已ç»åР坆, ä½ å¿…éœ€è¾“å…¥å¯†ç æ‰èƒ½è§£åŽ‹æ–‡æ¡£å†…çš„æ–‡ä»¶'; LANGchsFSetPassword_ShowPasswordCheckButton = '显示密ç (_M)'; (*************** STRINGS ADDED TO v0.6.48 **********************************************************************************) LANGchsCopyFileNamesToClipboard = 'å¤åˆ¶æ–‡ä»¶å到剪贴æ¿(_C)'; LANGchsCopyFullPathNamesToClipboard = 'å¤åˆ¶æ–‡ä»¶å…¨è·¯å¾„到剪贴æ¿(_F)'; LANGchsCopyPathToClipboard = 'å¤åˆ¶è·¯å¾„到剪贴æ¿(_C)'; LANGchsPreferences_DateFormatLabel_Caption = '日期格å¼(_F):'; LANGchsPreferences_System = '系统'; LANGchsPreferences_Custom = '自定义...'; LANGchsPreferences_CustomDateFormatEntry_Tooltip = '输入自定义日期格å¼.'#10'æ ¼å¼è¯­æ³•请å‚考 "man strftime" 命令.'; LANGchsPreferences_TimeFormatLabel_Caption = 'æ—¶é—´æ ¼å¼(_T):'; LANGchsPreferences_CustomTimeFormatEntry_Tooltip = '输入自定义时间格å¼.'#10'æ ¼å¼è¯­æ³•请å‚考 "man strftime" 命令.'; LANGchsPreferences_DateTimeFormatLabel_Caption = '日期/时间排åº(_O):'; LANGchsPreferences_QuickRenameSkipExtCheckBox = '快速é‡å‘½å时仅选择文件å'; LANGchsPreferences_QuickRenameSkipExtCheckBox_Tooltip = '快速é‡å‘½åæ—¶ä¸é€‰æ‹©æ‰©å±•å'; LANGchsPreferences_SortDirectoriesLikeFilesCheckBox = '目录排在文件列表上é¢(_E)'; LANGchsPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip = '选中åŽç›®å½•永远排在文件列表上é¢.'#10'未选: ç›®å½•æ€»æ˜¯æŒ‰ç›®å½•åæŽ’åº.'; LANGchsPreferences_QuickSearchLabel_Caption = '快速æœç´¢æŒ‰é”®(_K):'; LANGchsPreferences_QuickSearchOptionMenu_Tooltip = 'Ctrl+S/Alt+S å’Œ "/" 按钮永久å¯ç”¨, å¹¶ä¸å—此设置影å“.'; LANGchsPreferences_QuickSearch_Option1 = 'ä»… Ctrl+S/Alt+S å’Œ "/"'; LANGchsPreferences_QuickSearch_Option2 = 'Ctrl + Alt + å­—æ¯'; LANGchsPreferences_QuickSearch_Option3 = 'Alt + å­—æ¯'; LANGchsPreferences_QuickSearch_Option4 = 'ä»…å­—æ¯'; LANGchsPreferences_TempPathLabel_Caption = '临时文件'; LANGchsPreferences_VFSTempPathLabel_Caption = '_VFS 临时文件:'; LANGchsPreferences_VFSTempPathEntry_Tooltip = 'VFS å­ç³»ç»Ÿä½¿ç”¨çš„临时文件路径, 例如. 当直接从压缩文档中打开文件时. 所有临时文件将在退出时删除.'; (*************** STRINGS ADDED TO v0.6.67 **********************************************************************************) LANGchsPreferences_RightClickSelectCheckBox = 'Right mouse button selection mode'; LANGchsPreferences_RightClickSelectCheckBox_Tooltip = 'Use right mouse button to select, like mc.'; LANGchsGtkMountOperation_ConnectAnonymously = 'Connect _anonymously'; LANGchsGtkMountOperation_ConnectAsUser = 'Connect as u_ser:'; LANGchsGtkMountOperation_Username = '_Username:'; LANGchsGtkMountOperation_Domain = '_Domain:'; LANGchsGtkMountOperation_Password = '_Password:'; LANGchsGtkMountOperation_DoNotSavePassword = 'Do not save password'; LANGchsGtkMountOperation_ForgetPasswordImmediately = 'Forget password _immediately'; LANGchsGtkMountOperation_RememberPasswordUntilYouLogout = 'Remember password until you _logout'; LANGchsGtkMountOperation_SavePasswordInConnectionManager = '_Save password in Connection Manager'; LANGchsGtkMountOperation_RememberForever = 'Remember _forever'; LANGchsFSymlink_RelativePath = '_Relative path'; LANGchsFConnectionManager_DuplicateButton_Caption = 'D_uplicate...'; LANGchsFConnectionManager_DuplicateButton_Tooltip = 'Duplicate selected connection'; LANGchsFConnectionManager_DoNotSavePasswordsCheckBox_Label = '_Do not store passwords internally (but still use gnome-keyring)'; LANGchsFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip = 'By checking this option on, Tux Commander will never save passwords into its connection list. Due to the GVFS nature, gnome-keyring will still be used to retrieve stored passwords from your desktop session.'; LANGchsFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label = 'Do not synchronize passwords to gnome-_keyring'; LANGchsFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip = 'Don''t tell gnome-keyring to save any passwords.'; LANGchsFConnectionManager_DuplicateMenuItem_Caption = 'D_uplicate...'; LANGchsFQuickConnect_Caption = 'Quick connect'; LANGchsFQuickConnect_TitleLabel_Caption = 'Quick connect'; LANGchsFQuickConnect_ConnectToURILabel_Caption = 'C_onnect to URI:'; LANGchsLinkToS = 'Link to %s'; LANGchsOpenDirectoryInBackgroundTab = 'Open directory in _background tab'; LANGchsTheActiveConnectionHasNotBeenSaved = 'The active connection has not been saved. Do you want to save it to Connection Manager?'#10#10'%s'; LANGchsTheArchiveIsEncryptedAndRequiresPassword = 'The archive is encrypted and requires password'; (********************************************************************************************************************************) procedure SetTranslation; begin LANGF2Button_Caption := LANGchsF2Button_Caption; LANGF3Button_Caption := LANGchsF3Button_Caption; LANGF4Button_Caption := LANGchsF4Button_Caption; LANGF5Button_Caption := LANGchsF5Button_Caption; LANGF6Button_Caption := LANGchsF6Button_Caption; LANGF7Button_Caption := LANGchsF7Button_Caption; LANGF8Button_Caption := LANGchsF8Button_Caption; LANGmnuFile_Caption := LANGchsmnuFile_Caption; LANGmnuMark_Caption := LANGchsmnuMark_Caption; LANGmnuCommands_Caption := LANGchsmnuCommands_Caption; LANGmnuHelp_Caption := LANGchsmnuHelp_Caption; LANGmiExit_Caption := LANGchsmiExit_Caption; LANGmiSelectGroup_Caption := LANGchsmiSelectGroup_Caption; LANGmiUnselectGroup_Caption := LANGchsmiUnselectGroup_Caption; LANGmiSelectAll_Caption := LANGchsmiSelectAll_Caption; LANGmiUnselectAll_Caption := LANGchsmiUnselectAll_Caption; LANGmiInvertSelection_Caption := LANGchsmiInvertSelection_Caption; LANGmiRefresh_Caption := LANGchsmiRefresh_Caption; LANGmiAbout_Caption := LANGchsmiAbout_Caption; LANGColumn1_Caption := LANGchsColumn1_Caption; LANGColumn2_Caption := LANGchsColumn2_Caption; LANGColumn3_Caption := LANGchsColumn3_Caption; LANGColumn4_Caption := LANGchsColumn4_Caption; LANGColumn5_Caption := LANGchsColumn5_Caption; LANGExpandSelection := LANGchsExpandSelection; LANGShrinkSelection := LANGchsShrinkSelection; LANGNoMatchesFound := LANGchsNoMatchesFound; LANGNoFilesSelected := LANGchsNoFilesSelected; LANGSelectedFilesDirectories := LANGchsSelectedFilesDirectories; LANGDirectoryS := LANGchsDirectoryS; LANGFileS := LANGchsFileS; LANGDoYouReallyWantToDeleteTheS := LANGchsDoYouReallyWantToDeleteTheS; LANGDoYouReallyWantToDeleteTheSS := LANGchsDoYouReallyWantToDeleteTheSS; LANGCopyFiles := LANGchsCopyFiles; LANGMoveRenameFiles := LANGchsMoveRenameFiles; LANGCopyDFileDirectoriesTo := LANGchsCopyDFileDirectoriesTo; LANGMoveRenameDFileDirectoriesTo := LANGchsMoveRenameDFileDirectoriesTo; LANGCopySC := LANGchsCopySC; LANGMoveRenameSC := LANGchsMoveRenameSC; LANGQuickFind := LANGchsQuickFind; LANGAboutString := LANGchsAboutString; LANGAboutStringGnome := LANGchsAboutStringGnome; LANGDiskStatFmt := LANGchsDiskStatFmt; LANGDiskStatVolNameFmt := LANGchsDiskStatVolNameFmt; LANGStatusLineFmt := LANGchsStatusLineFmt; LANGPanelStrings[False] := LANGchsPanelStrings[False]; LANGPanelStrings[True] := LANGchsPanelStrings[True]; LANGDIR := LANGchsDIR; LANGErrorGettingListingForSPanel := LANGchsErrorGettingListingForSPanel; LANGErrorGettingListingForSPanelNoPath := LANGchsErrorGettingListingForSPanelNoPath; LANGErrorCreatingNewDirectorySInSPanel := LANGchsErrorCreatingNewDirectorySInSPanel; LANGErrorCreatingNewDirectorySInSPanelNoPath := LANGchsErrorCreatingNewDirectorySInSPanelNoPath; LANGTheFileDirectory := LANGchsTheFileDirectory; LANGCouldNotBeDeleted := LANGchsCouldNotBeDeleted; LANGCouldNotBeDeletedS := LANGchsCouldNotBeDeletedS; LANGUserCancelled := LANGchsUserCancelled; LANGTheDirectorySIsNotEmpty := LANGchsTheDirectorySIsNotEmpty; LANGCannotCopyFile := LANGchsCannotCopyFile; LANGCopyError := LANGchsCopyError; LANGMoveError := LANGchsMoveError; LANGOverwriteS := LANGchsOverwriteS; LANGWithFileS := LANGchsWithFileS; LANGOvewriteSBytesS := LANGchsOvewriteSBytesS; LANGTheFile := LANGchsTheFile; LANGCopy := LANGchsCopy; LANGMove := LANGchsMove; LANGTheDirectory := LANGchsTheDirectory; LANGTheSymbolicLink := LANGchsTheSymbolicLink; LANGCannotMoveFile := LANGchsCannotMoveFile; LANGCouldNotBeCreated := LANGchsCouldNotBeCreated; LANGCouldNotBeCreatedS := LANGchsCouldNotBeCreatedS; LANGFromS := LANGchsFromS; LANGToS := LANGchsToS; LANGCannotCopyFileToItself := LANGchsCannotCopyFileToItself; LANGMemoryAllocationFailed := LANGchsMemoryAllocationFailed; LANGCannotOpenSourceFile := LANGchsCannotOpenSourceFile; LANGCannotOpenDestinationFile := LANGchsCannotOpenDestinationFile; LANGCannotCloseDestinationFile := LANGchsCannotCloseDestinationFile; LANGCannotCloseSourceFile := LANGchsCannotCloseSourceFile; LANGCannotReadFromSourceFile := LANGchsCannotReadFromSourceFile; LANGCannotWriteToDestinationFile := LANGchsCannotWriteToDestinationFile; LANGUnknownException := LANGchsUnknownException; LANGNoAccess := LANGchsNoAccess; LANGUnknownError := LANGchsUnknownError; LANGCreateANewDirectory := LANGchsCreateANewDirectory; LANGEnterDirectoryName := LANGchsEnterDirectoryName; LANGOverwriteQuestion := LANGchsOverwriteQuestion; LANGOverwriteButton_Caption := LANGchsOverwriteButton_Caption; LANGOverwriteAllButton_Caption := LANGchsOverwriteAllButton_Caption; LANGSkipButton_Caption := LANGchsSkipButton_Caption; LANGOverwriteAllOlderButton_Caption := LANGchsOverwriteAllOlderButton_Caption; LANGSkipAllButton_Caption := LANGchsSkipAllButton_Caption; LANGRenameButton_Caption := LANGchsRenameButton_Caption; LANGAppendButton_Caption := LANGchsAppendButton_Caption; LANGRename := LANGchsRename; LANGRenameFile := LANGchsRenameFile; LANGIgnoreButton_Caption := LANGchsIgnoreButton_Caption; LANGProgress := LANGchsProgress; LANGCancel := LANGchsCancel; LANGDelete := LANGchsDelete; LANGSpecifyFileType := LANGchsSpecifyFileType; LANGRemoveDirectory := LANGchsRemoveDirectory; LANGDoYouWantToDeleteItWithAllItsFilesAndSubdirectories := LANGchsDoYouWantToDeleteItWithAllItsFilesAndSubdirectories; LANGRetry := LANGchsRetry; LANGDeleteButton_Caption := LANGchsDeleteButton_Caption; LANGAll := LANGchsAll; LANGCopyFilesSC := LANGchsCopyFilesSC; LANGAppendQuestion := LANGchsAppendQuestion; LANGPreparingList := LANGchsPreparingList; LANGYouMustSelectAValidFile := LANGchsYouMustSelectAValidFile; LANGmiVerifyChecksums := LANGchsmiVerifyChecksums; LANGVerifyChecksumsCaption := LANGchsVerifyChecksumsCaption; LANGCheckButtonCaptionCheck := LANGchsCheckButtonCaptionCheck; LANGCheckButtonCaptionStop := LANGchsCheckButtonCaptionStop; LANGFileListTooltip := LANGchsFileListTooltip; LANGFilenameColumnCaption := LANGchsFilenameColumnCaption; LANGTheFileSYouAreTryingToOpenIsQuiteBig := LANGchsTheFileSYouAreTryingToOpenIsQuiteBig; LANGAnErrorOccuredWhileInitializingMemoryBlock := LANGchsAnErrorOccuredWhileInitializingMemoryBlock; LANGAnErrorOccuredWhileOpeningFileSS := LANGchsAnErrorOccuredWhileOpeningFileSS; LANGAnErrorOccuredWhileReadingFileSS := LANGchsAnErrorOccuredWhileReadingFileSS; LANGChecksumNotChecked := LANGchsChecksumNotChecked; LANGChecksumChecking := LANGchsChecksumChecking; LANGChecksumInterrupted := LANGchsChecksumInterrupted; LANGChecksumDOK := LANGchsChecksumDOK; LANGmiCreateChecksumsCaption := LANGchsmiCreateChecksumsCaption; LANGYouMustSelectAtLeastOneFileToCalculateChecksum := LANGchsYouMustSelectAtLeastOneFileToCalculateChecksum; LANGCreateChecksumsCaption := LANGchsCreateChecksumsCaption; LANGCCHKSUMPage1Text := LANGchsCCHKSUMPage1Text; LANGCCHKSUMPage4Text := LANGchsCCHKSUMPage4Text; LANGCCHKSUMPage6Text := LANGchsCCHKSUMPage6Text; LANGCCHKSUMPage7Text := LANGchsCCHKSUMPage7Text; LANGCCHKSUMPage1Title := LANGchsCCHKSUMPage1Title; LANGCCHKSUMPage2Title := LANGchsCCHKSUMPage2Title; LANGCCHKSUMPage3Title := LANGchsCCHKSUMPage3Title; LANGCCHKSUMPage4Title := LANGchsCCHKSUMPage4Title; LANGCCHKSUMPage5Title := LANGchsCCHKSUMPage5Title; LANGCCHKSUMPage6Title := LANGchsCCHKSUMPage6Title; LANGCCHKSUMPage7Title := LANGchsCCHKSUMPage7Title; LANGCCHKSUMSFVFile := LANGchsCCHKSUMSFVFile; LANGCCHKSUMMD5sumFile := LANGchsCCHKSUMMD5sumFile; LANGCCHKSUMFileName := LANGchsCCHKSUMFileName; LANGCCHKSUMCreateSeparateChecksumFiles := LANGchsCCHKSUMCreateSeparateChecksumFiles; LANGCCHKSUMNowProcessingFileS := LANGchsCCHKSUMNowProcessingFileS; LANGCCHKSUMFinishCaption := LANGchsCCHKSUMFinishCaption; LANGCCHKSUMAreYouSureYouWantToAbortTheProcessing := LANGchsCCHKSUMAreYouSureYouWantToAbortTheProcessing; LANGCCHKSUMAnErrorOccuredWhileOpeningFileSS := LANGchsCCHKSUMAnErrorOccuredWhileOpeningFileSS; LANGCCHKSUMAnErrorOccuredWhileReadingFileSS := LANGchsCCHKSUMAnErrorOccuredWhileReadingFileSS; LANGCCHKSUMAnErrorOccuredWhileWritingFileSS := LANGchsCCHKSUMAnErrorOccuredWhileWritingFileSS; LANGAnErrorOccuredWhileWritingFileSS := LANGchsAnErrorOccuredWhileWritingFileSS; LANGTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt := LANGchsTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt; LANGTheTargetFileSCannotBeRemovedS := LANGchsTheTargetFileSCannotBeRemovedS; LANGMergeCaption := LANGchsMergeCaption; LANGPleaseInsertNextDiskOrGiveDifferentLocation := LANGchsPleaseInsertNextDiskOrGiveDifferentLocation; LANGMergeOfSSucceeded := LANGchsMergeOfSSucceeded; LANGWarningCreatedFileFailsCRCCheck := LANGchsWarningCreatedFileFailsCRCCheck; LANGMergeOfSSucceeded_NoCRCFileAvailable := LANGchsMergeOfSSucceeded_NoCRCFileAvailable; LANGMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory := LANGchsMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory; LANGMergeSC := LANGchsMergeSC; LANGmiSplitFileCaption := LANGchsmiSplitFileCaption; LANGmiMergeFilesCaption := LANGchsmiMergeFilesCaption; LANGSplitTheFileSToDirectory := LANGchsSplitTheFileSToDirectory; LANGSplitSC := LANGchsSplitSC; LANGSplitFile := LANGchsSplitFile; LANGBytesPerFile := LANGchsBytesPerFile; LANGAutomatic := LANGchsAutomatic; LANGDeleteFilesOnTargetDisk := LANGchsDeleteFilesOnTargetDisk; LANGSplitCaption := LANGchsSplitCaption; LANGCannotOpenFileS := LANGchsCannotOpenFileS; LANGCannotSplitTheFileToMoreThan999Parts := LANGchsCannotSplitTheFileToMoreThan999Parts; LANGThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem := LANGchsThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem; LANGThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem := LANGchsThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem; LANGAnErrorOccuredWhileOperationS := LANGchsAnErrorOccuredWhileOperationS; LANGSplitOfSSucceeded := LANGchsSplitOfSSucceeded; LANGSplitOfSFailed := LANGchsSplitOfSFailed; LANGmnuShow_Caption := LANGchsmnuShow_Caption; LANGmiShowDotFiles_Caption := LANGchsmiShowDotFiles_Caption; LANGTheFileYouAreTryingToOpenIsQuiteBig := LANGchsTheFileYouAreTryingToOpenIsQuiteBig; LANGCannotExecuteSPleaseCheckTheConfiguration := LANGchsCannotExecuteSPleaseCheckTheConfiguration; LANGEdit := LANGchsEdit; LANGEnterFilenameToEdit := LANGchsEnterFilenameToEdit; LANGmnuSettings_Caption := LANGchsmnuSettings_Caption; LANGmiFileTypes_Caption := LANGchsmiFileTypes_Caption; LANGThereIsNoApplicationAssociatedWithS := LANGchsThereIsNoApplicationAssociatedWithS; LANGErrorExecutingCommand := LANGchsErrorExecutingCommand; LANGEditFileTypesCaption := LANGchsEditFileTypesCaption; LANGTitleLabel_Caption := LANGchsTitleLabel_Caption; LANGExtensionsColumn := LANGchsExtensionsColumn; LANGDescriptionColumn := LANGchsDescriptionColumn; LANGFileTypesList := LANGchsFileTypesList; LANGActionName := LANGchsActionName; LANGCommand := LANGchsCommand; LANGSetDefaultActionButton_Caption := LANGchsSetDefaultActionButton_Caption; LANGRunInTerminalCheckBox_Caption := LANGchsRunInTerminalCheckBox_Caption; LANGAutodetectCheckBox_Caption := LANGchsAutodetectCheckBox_Caption; LANGBrowseButton_Caption := LANGchsBrowseButton_Caption; LANGCommandLabel_Caption := LANGchsCommandLabel_Caption; LANGDescriptionLabel_Caption := LANGchsDescriptionLabel_Caption; LANGFNameExtLabel_Caption := LANGchsFNameExtLabel_Caption; LANGNotebookPageExtensions := LANGchsNotebookPageExtensions; LANGNotebookPageActions := LANGchsNotebookPageActions; LANGDefault := LANGchsDefault; LANGCannotSaveFileTypeAssociationsBecauseOtherProcess := LANGchsCannotSaveFileTypeAssociationsBecauseOtherProcess; LANGDefaultColor := LANGchsDefaultColor; LANGIcon := LANGchsIcon; LANGBrowseForIcon := LANGchsBrowseForIcon; LANGSelectFileTypeColor := LANGchsSelectFileTypeColor; LANGColor := LANGchsColor; LANGmiChangePermissions_Caption := LANGchsmiChangePermissions_Caption; LANGmiChangeOwner_Caption := LANGchsmiChangeOwner_Caption; LANGmiCreateSymlink_Caption := LANGchsmiCreateSymlink_Caption; LANGmiEditSymlink_Caption := LANGchsmiEditSymlink_Caption; LANGChmodProgress := LANGchsChmodProgress; LANGChownProgress := LANGchsChownProgress; LANGYouMustSelectAValidSymbolicLink := LANGchsYouMustSelectAValidSymbolicLink; LANGPopupRunS := LANGchsPopupRunS; LANGPopupOpenS := LANGchsPopupOpenS; LANGPopupGoUp := LANGchsPopupGoUp; LANGPopupOpenWithS := LANGchsPopupOpenWithS; LANGPopupDefault := LANGchsPopupDefault; LANGPopupOpenWith := LANGchsPopupOpenWith; LANGPopupViewFile := LANGchsPopupViewFile; LANGPopupEditFile := LANGchsPopupEditFile; LANGPopupMakeSymlink := LANGchsPopupMakeSymlink; LANGPopupRename := LANGchsPopupRename; LANGPopupDelete := LANGchsPopupDelete; LANGDialogChangePermissions := LANGchsDialogChangePermissions; LANGCouldNotBeChmoddedS := LANGchsCouldNotBeChmoddedS; LANGDialogChangeOwner := LANGchsDialogChangeOwner; LANGCouldNotBeChownedS := LANGchsCouldNotBeChownedS; LANGDialogMakeSymlink := LANGchsDialogMakeSymlink; LANGDialogEditSymlink := LANGchsDialogEditSymlink; LANGFEditSymlink_Caption := LANGchsFEditSymlink_Caption; LANGFEditSymlink_SymbolicLinkFilename := LANGchsFEditSymlink_SymbolicLinkFilename; LANGFEditSymlink_SymbolicLinkPointsTo := LANGchsFEditSymlink_SymbolicLinkPointsTo; LANGFChmod_Caption := LANGchsFChmod_Caption; LANGFChmod_PermissionFrame := LANGchsFChmod_PermissionFrame; LANGFChmod_FileFrame := LANGchsFChmod_FileFrame; LANGFChmod_ApplyRecursivelyFor := LANGchsFChmod_ApplyRecursivelyFor; LANGFChmod_miAllFiles := LANGchsFChmod_miAllFiles; LANGFChmod_miDirectories := LANGchsFChmod_miDirectories; LANGFChmod_OctalLabel := LANGchsFChmod_OctalLabel; LANGFChmod_SUID := LANGchsFChmod_SUID; LANGFChmod_SGID := LANGchsFChmod_SGID; LANGFChmod_Sticky := LANGchsFChmod_Sticky; LANGFChmod_RUSR := LANGchsFChmod_RUSR; LANGFChmod_WUSR := LANGchsFChmod_WUSR; LANGFChmod_XUSR := LANGchsFChmod_XUSR; LANGFChmod_RGRP := LANGchsFChmod_RGRP; LANGFChmod_WGRP := LANGchsFChmod_WGRP; LANGFChmod_XGRP := LANGchsFChmod_XGRP; LANGFChmod_ROTH := LANGchsFChmod_ROTH; LANGFChmod_WOTH := LANGchsFChmod_WOTH; LANGFChmod_XOTH := LANGchsFChmod_XOTH; LANGFChmod_TextLabel := LANGchsFChmod_TextLabel; LANGFChmod_FileLabel := LANGchsFChmod_FileLabel; LANGFChown_Caption := LANGchsFChown_Caption; LANGFChown_OwnerFrame := LANGchsFChown_OwnerFrame; LANGFChown_GroupFrame := LANGchsFChown_GroupFrame; LANGFChown_FileFrame := LANGchsFChown_FileFrame; LANGFChown_ApplyRecursively := LANGchsFChown_ApplyRecursively; LANGFSymlink_Caption := LANGchsFSymlink_Caption; LANGFSymlink_ExistingFilename := LANGchsFSymlink_ExistingFilename; LANGFSymlink_SymlinkFilename := LANGchsFSymlink_SymlinkFilename; LANGmnuBookmarks_Caption := LANGchsmnuBookmarks_Caption; LANGmiAddBookmark_Caption := LANGchsmiAddBookmark_Caption; LANGmiEditBookmarks_Caption := LANGchsmiEditBookmarks_Caption; LANGBookmarkPopupDelete_Caption := LANGchsBookmarkPopupDelete_Caption; LANGmiPreferences_Caption := LANGchsmiPreferences_Caption; LANGTheCurrentDirectoryAlreadyExistsInTheBookmarksList := LANGchsTheCurrentDirectoryAlreadyExistsInTheBookmarksList; LANGSomeOtherInstanceChanged := LANGchsSomeOtherInstanceChanged; LANGPreferences_Caption := LANGchsPreferences_Caption; LANGPreferences_TitleLabel_Caption := LANGchsPreferences_TitleLabel_Caption; LANGPreferences_GeneralPage := LANGchsPreferences_GeneralPage; LANGPreferences_FontsPage := LANGchsPreferences_FontsPage; LANGPreferences_ColorsPage := LANGchsPreferences_ColorsPage; LANGPreferences_RowHeight := LANGchsPreferences_RowHeight; LANGPreferences_NumHistoryItems := LANGchsPreferences_NumHistoryItems; LANGPreferences_Default := LANGchsPreferences_Default; LANGPreferences_ClearReadonlyAttribute := LANGchsPreferences_ClearReadonlyAttribute; LANGPreferences_DisableMouseRenaming := LANGchsPreferences_DisableMouseRenaming; LANGPreferences_ShowFiletypeIconsInList := LANGchsPreferences_ShowFiletypeIconsInList; LANGPreferences_ExternalAppsLabel := LANGchsPreferences_ExternalAppsLabel; LANGPreferences_Viewer := LANGchsPreferences_Viewer; LANGPreferences_Editor := LANGchsPreferences_Editor; LANGPreferences_Terminal := LANGchsPreferences_Terminal; LANGPreferences_ListFont := LANGchsPreferences_ListFont; LANGPreferences_Change := LANGchsPreferences_Change; LANGPreferences_UseDefaultFont := LANGchsPreferences_UseDefaultFont; LANGPreferences_Foreground := LANGchsPreferences_Foreground; LANGPreferences_Background := LANGchsPreferences_Background; LANGPreferences_NormalItem := LANGchsPreferences_NormalItem; LANGPreferences_SetToDefaultToUseGTKThemeColors := LANGchsPreferences_SetToDefaultToUseGTKThemeColors; LANGPreferences_Cursor := LANGchsPreferences_Cursor; LANGPreferences_InactiveItem := LANGchsPreferences_InactiveItem; LANGPreferences_SelectedItem := LANGchsPreferences_SelectedItem; LANGPreferences_LinkItem := LANGchsPreferences_LinkItem; LANGPreferences_LinkItemHint := LANGchsPreferences_LinkItemHint; LANGPreferences_DotFileItem := LANGchsPreferences_DotFileItem; LANGPreferences_DotFileItemHint := LANGchsPreferences_DotFileItemHint; LANGPreferences_BrowseForApplication := LANGchsPreferences_BrowseForApplication; LANGPreferences_DefaultS := LANGchsPreferences_DefaultS; LANGPreferences_SelectFont := LANGchsPreferences_SelectFont; LANGBookmarkButton_Tooltip := LANGchsBookmarkButton_Tooltip; LANGUpButton_Tooltip := LANGchsUpButton_Tooltip; LANGRootButton_Tooltip := LANGchsRootButton_Tooltip; LANGHomeButton_Tooltip := LANGchsHomeButton_Tooltip; LANGLeftEqualButton_Tooltip := LANGchsLeftEqualButton_Tooltip; LANGRightEqualButton_Tooltip := LANGchsRightEqualButton_Tooltip; LANGmiShowDirectorySizes_Caption := LANGchsmiShowDirectorySizes_Caption; LANGmiTargetSource_Caption := LANGchsmiTargetSource_Caption; LANGFileTypeDirectory := LANGchsFileTypeDirectory; LANGFileTypeFile := LANGchsFileTypeFile; LANGFileTypeMetafile := LANGchsFileTypeMetafile; LANGPreferencesPanelsPage := LANGchsPreferencesPanelsPage; LANGPreferencesApplicationsPage := LANGchsPreferencesApplicationsPage; LANGPreferencesExperimentalPage := LANGchsPreferencesExperimentalPage; LANGPreferencesSelectAllDirectoriesCheckBox_Caption := LANGchsPreferencesSelectAllDirectoriesCheckBox_Caption; LANGPreferencesNewStyleAltOCheckBox_Caption := LANGchsPreferencesNewStyleAltOCheckBox_Caption; LANGPreferencesNewStyleAltOCheckBox_Tooltip := LANGchsPreferencesNewStyleAltOCheckBox_Tooltip; LANGPreferencesShowFuncButtonsCheckBox_Caption := LANGchsPreferencesShowFuncButtonsCheckBox_Caption; LANGPreferencesSizeFormatLabel_Caption := LANGchsPreferencesSizeFormatLabel_Caption; LANGPreferencesmiSizeFormat1 := LANGchsPreferencesmiSizeFormat1; LANGPreferencesmiSizeFormat6 := LANGchsPreferencesmiSizeFormat6; LANGPreferencesAutodetectXApp := LANGchsPreferencesAutodetectXApp; LANGPreferencesAlwaysRunInTerminal := LANGchsPreferencesAlwaysRunInTerminal; LANGPreferencesNeverRunInTerminal := LANGchsPreferencesNeverRunInTerminal; LANGPreferencesCmdLineBehaviourLabel_Caption := LANGchsPreferencesCmdLineBehaviourLabel_Caption; LANGPreferencesFeatures := LANGchsPreferencesFeatures; LANGPreferencesDisableMouseRename_Tooltip := LANGchsPreferencesDisableMouseRename_Tooltip; LANGPreferencesDisableFileTipsCheckBox_Caption := LANGchsPreferencesDisableFileTipsCheckBox_Caption; LANGPreferencesDisableFileTipsCheckBox_Tooltip := LANGchsPreferencesDisableFileTipsCheckBox_Tooltip; LANGPreferencesShow := LANGchsPreferencesShow; LANGPreferencesDirsInBoldCheckBox_Caption := LANGchsPreferencesDirsInBoldCheckBox_Caption; LANGPreferencesDisableDirectoryBracketsCheckBox_Caption := LANGchsPreferencesDisableDirectoryBracketsCheckBox_Caption; LANGPreferencesOctalPermissionsCheckBox_Caption := LANGchsPreferencesOctalPermissionsCheckBox_Caption; LANGPreferencesOctalPermissionsCheckBox_Tooltip := LANGchsPreferencesOctalPermissionsCheckBox_Tooltip; LANGPreferencesMovement := LANGchsPreferencesMovement; LANGPreferencesLynxLikeMotionCheckBox_Caption := LANGchsPreferencesLynxLikeMotionCheckBox_Caption; LANGPreferencesInsertMovesDownCheckBox_Caption := LANGchsPreferencesInsertMovesDownCheckBox_Caption; LANGPreferencesSpaceMovesDownCheckBox_Caption := LANGchsPreferencesSpaceMovesDownCheckBox_Caption; LANGPreferencesViewer := LANGchsPreferencesViewer; LANGPreferencesCommandSC := LANGchsPreferencesCommandSC; LANGPreferencesUseInternalViewer := LANGchsPreferencesUseInternalViewer; LANGPreferencesEditor := LANGchsPreferencesEditor; LANGPreferencesTerminal := LANGchsPreferencesTerminal; LANGPreferencesExperimentalFeatures := LANGchsPreferencesExperimentalFeatures; LANGPreferencesExperimentalWarningLabel_Caption := LANGchsPreferencesExperimentalWarningLabel_Caption; LANGPreferencesFocusRefreshCheckBox_Caption := LANGchsPreferencesFocusRefreshCheckBox_Caption; LANGPreferencesFocusRefreshCheckBox_Tooltip := LANGchsPreferencesFocusRefreshCheckBox_Tooltip; LANGPreferencesWMCompatModeCheckBox_Caption := LANGchsPreferencesWMCompatModeCheckBox_Caption; LANGPreferencesWMCompatModeCheckBox_Tooltip := LANGchsPreferencesWMCompatModeCheckBox_Tooltip; LANGPreferencesCompatUseLibcSystemCheckBox_Caption := LANGchsPreferencesCompatUseLibcSystemCheckBox_Caption; LANGPreferencesCompatUseLibcSystemCheckBox_Tooltip := LANGchsPreferencesCompatUseLibcSystemCheckBox_Tooltip; LANGmiSearchCaption2 := LANGchsmiSearchCaption2; LANGmiNoMounterBarCaption := LANGchsmiNoMounterBarCaption; LANGmiShowOneMounterBarCaption := LANGchsmiShowOneMounterBarCaption; LANGmiShowTwoMounterBarCaption := LANGchsmiShowTwoMounterBarCaption; LANGmnuNetworkCaption := LANGchsmnuNetworkCaption; LANGmiConnectionsCaption := LANGchsmiConnectionsCaption; LANGmiOpenConnectionCaption := LANGchsmiOpenConnectionCaption; LANGmiQuickConnectCaption := LANGchsmiQuickConnectCaption; LANGmnuPluginsCaption := LANGchsmnuPluginsCaption; LANGmiTestPluginCaption := LANGchsmiTestPluginCaption; LANGmiMounterSettingsCaption := LANGchsmiMounterSettingsCaption; LANGmiColumnsCaption := LANGchsmiColumnsCaption; LANGmiSavePositionCaption := LANGchsmiSavePositionCaption; LANGmiMountCaption := LANGchsmiMountCaption; LANGmiUmountCaption := LANGchsmiUmountCaption; LANGmiEjectCaption := LANGchsmiEjectCaption; LANGmiDuplicateTabCaption := LANGchsmiDuplicateTabCaption; LANGmiCloseTabCaption := LANGchsmiCloseTabCaption; LANGmiCloseAllTabsCaption := LANGchsmiCloseAllTabsCaption; LANGCannotDetermineDestinationEngine := LANGchsCannotDetermineDestinationEngine; LANGCannotLoadFile := LANGchsCannotLoadFile; LANGMountPointDevice := LANGchsMountPointDevice; LANGMountSC := LANGchsMountSC; LANGNoPluginsFound := LANGchsNoPluginsFound; LANGPluginAbout := LANGchsPluginAbout; LANGCouldntOpenURI := LANGchsCouldntOpenURI; LANGPluginAboutInside := LANGchsPluginAboutInside; LANGAreYouSureCloseAllTabs := LANGchsAreYouSureCloseAllTabs; LANGCouldntOpenURIArchive := LANGchsCouldntOpenURIArchive; LANGThereIsNoModuleAvailable := LANGchsThereIsNoModuleAvailable; LANGIgnoreError := LANGchsIgnoreError; LANGErrorMount := LANGchsErrorMount; LANGErrorUmount := LANGchsErrorUmount; LANGErrorEject := LANGchsErrorEject; LANGMounterPrefs_Caption := LANGchsMounterPrefs_Caption; LANGMounterPrefs_TitleLabelCaption := LANGchsMounterPrefs_TitleLabelCaption; LANGMounterPrefs_ListViewFrameCaption := LANGchsMounterPrefs_ListViewFrameCaption; LANGMounterPrefs_MountName := LANGchsMounterPrefs_MountName; LANGMounterPrefs_MountPoint := LANGchsMounterPrefs_MountPoint; LANGMounterPrefs_Device := LANGchsMounterPrefs_Device; LANGMounterPrefs_MoveUpButtonTooltip := LANGchsMounterPrefs_MoveUpButtonTooltip; LANGMounterPrefs_MoveDownButtonTooltip := LANGchsMounterPrefs_MoveDownButtonTooltip; LANGMounterPrefs_UseFSTabDefaultsCheckBox := LANGchsMounterPrefs_UseFSTabDefaultsCheckBox; LANGMounterPrefs_UseFSTabDefaultsCheckBoxTooltip := LANGchsMounterPrefs_UseFSTabDefaultsCheckBoxTooltip; LANGMounterPrefs_ToggleModeCheckBox := LANGchsMounterPrefs_ToggleModeCheckBox; LANGMounterPrefs_ToggleModeCheckBoxTooltip := LANGchsMounterPrefs_ToggleModeCheckBoxTooltip; LANGMounterPrefs_PropertiesFrameCaption := LANGchsMounterPrefs_PropertiesFrameCaption; LANGMounterPrefs_DisplayTextLabelCaption := LANGchsMounterPrefs_DisplayTextLabelCaption; LANGMounterPrefs_MountPointLabelCaption := LANGchsMounterPrefs_MountPointLabelCaption; LANGMounterPrefs_MountDeviceLabelCaption := LANGchsMounterPrefs_MountDeviceLabelCaption; LANGMounterPrefs_DeviceTypeLabelCaption := LANGchsMounterPrefs_DeviceTypeLabelCaption; LANGMounterPrefs_miLocalDiskCaption := LANGchsMounterPrefs_miLocalDiskCaption; LANGMounterPrefs_miRemovableCaption := LANGchsMounterPrefs_miRemovableCaption; LANGMounterPrefs_miCDCaption := LANGchsMounterPrefs_miCDCaption; LANGMounterPrefs_miFloppyCaption := LANGchsMounterPrefs_miFloppyCaption; LANGMounterPrefs_miNetworkCaption := LANGchsMounterPrefs_miNetworkCaption; LANGMounterPrefs_MountCommandLabelCaption := LANGchsMounterPrefs_MountCommandLabelCaption; LANGMounterPrefs_UmountCommandLabelCaption := LANGchsMounterPrefs_UmountCommandLabelCaption; LANGMounterPrefs_MountCommandEntryTooltip := LANGchsMounterPrefs_MountCommandEntryTooltip; LANGMounterPrefs_UmountCommandEntryTooltip := LANGchsMounterPrefs_UmountCommandEntryTooltip; LANGMounterPrefs_IconLabelCaption := LANGchsMounterPrefs_IconLabelCaption; LANGConnMgr_Caption := LANGchsConnMgr_Caption; LANGConnMgr_ConnectButton := LANGchsConnMgr_ConnectButton; LANGConnMgr_OpenConnection := LANGchsConnMgr_OpenConnection; LANGConnMgr_NameColumn := LANGchsConnMgr_NameColumn; LANGConnMgr_URIColumn := LANGchsConnMgr_URIColumn; LANGConnMgr_AddConnectionButtonCaption := LANGchsConnMgr_AddConnectionButtonCaption; LANGConnMgr_AddConnectionButtonTooltip := LANGchsConnMgr_AddConnectionButtonTooltip; LANGConnMgr_EditButtonCaption := LANGchsConnMgr_EditButtonCaption; LANGConnMgr_EditButtonTooltip := LANGchsConnMgr_EditButtonTooltip; LANGConnMgr_RemoveButtonCaption := LANGchsConnMgr_RemoveButtonCaption; LANGConnMgr_RemoveButtonTooltip := LANGchsConnMgr_RemoveButtonTooltip; LANGConnMgr_DoYouWantDelete := LANGchsConnMgr_DoYouWantDelete; LANGConnProp_FTP := LANGchsConnProp_FTP; LANGConnProp_SFTP := LANGchsConnProp_SFTP; LANGConnProp_SMB := LANGchsConnProp_SMB; LANGConnProp_HTTP := LANGchsConnProp_HTTP; LANGConnProp_HTTPS := LANGchsConnProp_HTTPS; LANGConnProp_Other := LANGchsConnProp_Other; LANGConnProp_Caption := LANGchsConnProp_Caption; LANGConnProp_VFSModule := LANGchsConnProp_VFSModule; LANGConnProp_URI := LANGchsConnProp_URI; LANGConnProp_URIEntryTooltip := LANGchsConnProp_URIEntryTooltip; LANGConnProp_DetailedInformations := LANGchsConnProp_DetailedInformations; LANGConnProp_Name := LANGchsConnProp_Name; LANGConnProp_Server := LANGchsConnProp_Server; LANGConnProp_Username := LANGchsConnProp_Username; LANGConnProp_UserNameEntryTooltip := LANGchsConnProp_UserNameEntryTooltip; LANGConnProp_Password := LANGchsConnProp_Password; LANGConnProp_TargetDirectory := LANGchsConnProp_TargetDirectory; LANGConnProp_ServiceType := LANGchsConnProp_ServiceType; LANGConnProp_MaskPassword := LANGchsConnProp_MaskPassword; LANGConnProp_MenuItemCaption := LANGchsConnProp_MenuItemCaption; LANGConnLogin_Caption := LANGchsConnLogin_Caption; LANGConnLogin_Login := LANGchsConnLogin_Login; LANGConnLogin_ExperimentalWarningLabelCaption := LANGchsConnLogin_ExperimentalWarningLabelCaption; LANGConnLogin_Username := LANGchsConnLogin_Username; LANGConnLogin_Password := LANGchsConnLogin_Password; LANGConnLogin_AnonymousCheckButton := LANGchsConnLogin_AnonymousCheckButton; LANGColumns_Caption := LANGchsColumns_Caption; LANGColumns_Title := LANGchsColumns_Title; LANGColumns_MoveUpButtonTooltip := LANGchsColumns_MoveUpButtonTooltip; LANGColumns_MoveDownButtonTooltip := LANGchsColumns_MoveDownButtonTooltip; LANGColumns_TitlesLongName := LANGchsColumns_TitlesLongName; LANGColumns_TitlesLongNameExt := LANGchsColumns_TitlesLongNameExt; LANGColumns_TitlesLongExt := LANGchsColumns_TitlesLongExt; LANGColumns_TitlesLongSize := LANGchsColumns_TitlesLongSize; LANGColumns_TitlesLongDateTime := LANGchsColumns_TitlesLongDateTime; LANGColumns_TitlesLongDate := LANGchsColumns_TitlesLongDate; LANGColumns_TitlesLongTime := LANGchsColumns_TitlesLongTime; LANGColumns_TitlesLongUser := LANGchsColumns_TitlesLongUser; LANGColumns_TitlesLongGroup := LANGchsColumns_TitlesLongGroup; LANGColumns_TitlesLongAttr := LANGchsColumns_TitlesLongAttr; LANGColumns_TitlesShortName := LANGchsColumns_TitlesShortName; LANGColumns_TitlesShortNameExt := LANGchsColumns_TitlesShortNameExt; LANGColumns_TitlesShortExt := LANGchsColumns_TitlesShortExt; LANGColumns_TitlesShortSize := LANGchsColumns_TitlesShortSize; LANGColumns_TitlesShortDateTime := LANGchsColumns_TitlesShortDateTime; LANGColumns_TitlesShortDate := LANGchsColumns_TitlesShortDate; LANGColumns_TitlesShortTime := LANGchsColumns_TitlesShortTime; LANGColumns_TitlesShortUser := LANGchsColumns_TitlesShortUser; LANGColumns_TitlesShortGroup := LANGchsColumns_TitlesShortGroup; LANGColumns_TitlesShortAttr := LANGchsColumns_TitlesShortAttr; LANGTestPlugin_Caption := LANGchsTestPlugin_Caption; LANGTestPlugin_Title := LANGchsTestPlugin_Title; LANGTestPlugin_ExperimentalWarningLabelCaption := LANGchsTestPlugin_ExperimentalWarningLabelCaption; LANGTestPlugin_Plugin := LANGchsTestPlugin_Plugin; LANGTestPlugin_Command := LANGchsTestPlugin_Command; LANGTestPlugin_Username := LANGchsTestPlugin_Username; LANGTestPlugin_Password := LANGchsTestPlugin_Password; LANGTestPlugin_AnonymousCheckButton := LANGchsTestPlugin_AnonymousCheckButton; LANGTestPlugin_NoPluginsFound := LANGchsTestPlugin_NoPluginsFound; LANGRemoteWait_Caption := LANGchsRemoteWait_Caption; LANGRemoteWait_OperationInProgress := LANGchsRemoteWait_OperationInProgress; LANGRemoteWait_ItemsFound := LANGchsRemoteWait_ItemsFound; LANGSearch_Bytes := LANGchsSearch_Bytes; LANGSearch_kB := LANGchsSearch_kB; LANGSearch_MB := LANGchsSearch_MB; LANGSearch_days := LANGchsSearch_days; LANGSearch_weeks := LANGchsSearch_weeks; LANGSearch_months := LANGchsSearch_months; LANGSearch_years := LANGchsSearch_years; LANGSearch_Caption := LANGchsSearch_Caption; LANGSearch_General := LANGchsSearch_General; LANGSearch_Advanced := LANGchsSearch_Advanced; LANGSearch_SearchResults := LANGchsSearch_SearchResults; LANGSearch_SearchFor := LANGchsSearch_SearchFor; LANGSearch_FileMaskEntryTooltip := LANGchsSearch_FileMaskEntryTooltip; LANGSearch_SearchIn := LANGchsSearch_SearchIn; LANGSearch_SearchArchivesCheckButton := LANGchsSearch_SearchArchivesCheckButton; LANGSearch_FindText := LANGchsSearch_FindText; LANGSearch_FindTextEntryTooltip := LANGchsSearch_FindTextEntryTooltip; LANGSearch_CaseSensitiveCheckButton := LANGchsSearch_CaseSensitiveCheckButton; LANGSearch_StayCurrentFSCheckButton := LANGchsSearch_StayCurrentFSCheckButton; LANGSearch_CaseSensitiveMatchCheckButton := LANGchsSearch_CaseSensitiveMatchCheckButton; LANGSearch_Size := LANGchsSearch_Size; LANGSearch_Date := LANGchsSearch_Date; LANGSearch_BiggerThan := LANGchsSearch_BiggerThan; LANGSearch_SmallerThan := LANGchsSearch_SmallerThan; LANGSearch_ModifiedBetweenRadioButton := LANGchsSearch_ModifiedBetweenRadioButton; LANGSearch_NotModifiedAfterRadioButton := LANGchsSearch_NotModifiedAfterRadioButton; LANGSearch_ModifiedLastRadioButton := LANGchsSearch_ModifiedLastRadioButton; LANGSearch_ModifiedNotLastRadionButton := LANGchsSearch_ModifiedNotLastRadionButton; LANGSearch_ModifiedBetweenEntry1 := LANGchsSearch_ModifiedBetweenEntry1; LANGSearch_ViewButtonCaption := LANGchsSearch_ViewButtonCaption; LANGSearch_NewSearchButtonCaption := LANGchsSearch_NewSearchButtonCaption; LANGSearch_GoToFileButtonCaption := LANGchsSearch_GoToFileButtonCaption; LANGSearch_FeedToListboxButtonCaption := LANGchsSearch_FeedToListboxButtonCaption; LANGSearch_StatusSC := LANGchsSearch_StatusSC; LANGSearch_Ready := LANGchsSearch_Ready; LANGSearch_PreparingToSearch := LANGchsSearch_PreparingToSearch; LANGSearch_SearchInProgress := LANGchsSearch_SearchInProgress; LANGSearch_UserCancelled := LANGchsSearch_UserCancelled; LANGSearch_SearchFinished := LANGchsSearch_SearchFinished; LANGSearch_FilesFound := LANGchsSearch_FilesFound; LANGSearch_And := LANGchsSearch_And; LANGCloseOpenConnection := LANGchsCloseOpenConnection; LANGDuplicateTabWarning := LANGchsDuplicateTabWarning; LANGDontShowAgain := LANGchsDontShowAgain; LANGSwitchOtherPanelWarning := LANGchsSwitchOtherPanelWarning; LANGOpenConnectionsWarning := LANGchsOpenConnectionsWarning; LANGmiDisconnect_Caption := LANGchsmiDisconnect_Caption; LANGDisconnectButton_Tooltip := LANGchsDisconnectButton_Tooltip; LANGLeaveArchiveButton_Tooltip := LANGchsLeaveArchiveButton_Tooltip; LANGOpenTerminalButton_Tooltip := LANGchsOpenTerminalButton_Tooltip; LANGOpenTerminalButton_Caption := LANGchsOpenTerminalButton_Caption; LANGShowTextUIDsCheckBox_Caption := LANGchsShowTextUIDsCheckBox_Caption; LANGShowTextUIDsCheckBox_Tooltip := LANGchsShowTextUIDsCheckBox_Tooltip; LANGmiNewTab_Caption := LANGchsmiNewTab_Caption; LANGFilePopupMenu_Properties := LANGchsFilePopupMenu_Properties; LANGCommandEntry_Tooltip := LANGchsCommandEntry_Tooltip; LANGmiFiles_Caption := LANGchsmiFiles_Caption; LANGPasswordButton_Tooltip := LANGchsPasswordButton_Tooltip; LANGHandleRunFromArchive_Bytes := LANGchsHandleRunFromArchive_Bytes; LANGHandleRunFromArchive_FileTypeDesc_Unknown := LANGchsHandleRunFromArchive_FileTypeDesc_Unknown; LANGHandleRunFromArchive_NotAssociated := LANGchsHandleRunFromArchive_NotAssociated; LANGHandleRunFromArchive_SelfExecutable := LANGchsHandleRunFromArchive_SelfExecutable; LANGHandleRunFromArchive_CouldntCreateTemporaryDirectory := LANGchsHandleRunFromArchive_CouldntCreateTemporaryDirectory; LANGFRunFromVFS_Caption := LANGchsFRunFromVFS_Caption; LANGFRunFromVFS_TitleLabel := LANGchsFRunFromVFS_TitleLabel; LANGFRunFromVFS_FileNameLabel := LANGchsFRunFromVFS_FileNameLabel; LANGFRunFromVFS_FileTypeLabel := LANGchsFRunFromVFS_FileTypeLabel; LANGFRunFromVFS_SizeLabel := LANGchsFRunFromVFS_SizeLabel; LANGFRunFromVFS_PackedSizeLabel := LANGchsFRunFromVFS_PackedSizeLabel; LANGFRunFromVFS_DateLabel := LANGchsFRunFromVFS_DateLabel; LANGFRunFromVFS_InfoLabel := LANGchsFRunFromVFS_InfoLabel; LANGFRunFromVFS_OpensWithLabel := LANGchsFRunFromVFS_OpensWithLabel; LANGFRunFromVFS_ExecuteButton := LANGchsFRunFromVFS_ExecuteButton; LANGFRunFromVFS_ExecuteAllButton := LANGchsFRunFromVFS_ExecuteAllButton; LANGFSetPassword_Caption := LANGchsFSetPassword_Caption; LANGFSetPassword_Label1_Caption := LANGchsFSetPassword_Label1_Caption; LANGFSetPassword_Label2_Caption := LANGchsFSetPassword_Label2_Caption; LANGFSetPassword_ShowPasswordCheckButton := LANGchsFSetPassword_ShowPasswordCheckButton; LANGCopyFileNamesToClipboard := LANGchsCopyFileNamesToClipboard; LANGCopyFullPathNamesToClipboard := LANGchsCopyFullPathNamesToClipboard; LANGCopyPathToClipboard := LANGchsCopyPathToClipboard; LANGPreferences_DateFormatLabel_Caption := LANGchsPreferences_DateFormatLabel_Caption; LANGPreferences_System := LANGchsPreferences_System; LANGPreferences_Custom := LANGchsPreferences_Custom; LANGPreferences_CustomDateFormatEntry_Tooltip := LANGchsPreferences_CustomDateFormatEntry_Tooltip; LANGPreferences_TimeFormatLabel_Caption := LANGchsPreferences_TimeFormatLabel_Caption; LANGPreferences_CustomTimeFormatEntry_Tooltip := LANGchsPreferences_CustomTimeFormatEntry_Tooltip; LANGPreferences_DateTimeFormatLabel_Caption := LANGchsPreferences_DateTimeFormatLabel_Caption; LANGPreferences_QuickRenameSkipExtCheckBox := LANGchsPreferences_QuickRenameSkipExtCheckBox; LANGPreferences_QuickRenameSkipExtCheckBox_Tooltip := LANGchsPreferences_QuickRenameSkipExtCheckBox_Tooltip; LANGPreferences_SortDirectoriesLikeFilesCheckBox := LANGchsPreferences_SortDirectoriesLikeFilesCheckBox; LANGPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip := LANGchsPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip; LANGPreferences_QuickSearchLabel_Caption := LANGchsPreferences_QuickSearchLabel_Caption; LANGPreferences_QuickSearchOptionMenu_Tooltip := LANGchsPreferences_QuickSearchOptionMenu_Tooltip; LANGPreferences_QuickSearch_Option1 := LANGchsPreferences_QuickSearch_Option1; LANGPreferences_QuickSearch_Option2 := LANGchsPreferences_QuickSearch_Option2; LANGPreferences_QuickSearch_Option3 := LANGchsPreferences_QuickSearch_Option3; LANGPreferences_QuickSearch_Option4 := LANGchsPreferences_QuickSearch_Option4; LANGPreferences_TempPathLabel_Caption := LANGchsPreferences_TempPathLabel_Caption; LANGPreferences_VFSTempPathLabel_Caption := LANGchsPreferences_VFSTempPathLabel_Caption; LANGPreferences_VFSTempPathEntry_Tooltip := LANGchsPreferences_VFSTempPathEntry_Tooltip; LANGPreferences_RightClickSelectCheckBox := LANGchsPreferences_RightClickSelectCheckBox; LANGPreferences_RightClickSelectCheckBox_Tooltip := LANGchsPreferences_RightClickSelectCheckBox_Tooltip; LANGGtkMountOperation_ConnectAnonymously := LANGchsGtkMountOperation_ConnectAnonymously; LANGGtkMountOperation_ConnectAsUser := LANGchsGtkMountOperation_ConnectAsUser; LANGGtkMountOperation_Username := LANGchsGtkMountOperation_Username; LANGGtkMountOperation_Domain := LANGchsGtkMountOperation_Domain; LANGGtkMountOperation_Password := LANGchsGtkMountOperation_Password; LANGGtkMountOperation_DoNotSavePassword := LANGchsGtkMountOperation_DoNotSavePassword; LANGGtkMountOperation_ForgetPasswordImmediately := LANGchsGtkMountOperation_ForgetPasswordImmediately; LANGGtkMountOperation_RememberPasswordUntilYouLogout := LANGchsGtkMountOperation_RememberPasswordUntilYouLogout; LANGGtkMountOperation_SavePasswordInConnectionManager := LANGchsGtkMountOperation_SavePasswordInConnectionManager; LANGGtkMountOperation_RememberForever := LANGchsGtkMountOperation_RememberForever; LANGFSymlink_RelativePath := LANGchsFSymlink_RelativePath; LANGFConnectionManager_DuplicateButton_Caption := LANGchsFConnectionManager_DuplicateButton_Caption; LANGFConnectionManager_DuplicateButton_Tooltip := LANGchsFConnectionManager_DuplicateButton_Tooltip; LANGFConnectionManager_DoNotSavePasswordsCheckBox_Label := LANGchsFConnectionManager_DoNotSavePasswordsCheckBox_Label; LANGFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip := LANGchsFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip; LANGFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label := LANGchsFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label; LANGFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip := LANGchsFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip; LANGFConnectionManager_DuplicateMenuItem_Caption := LANGchsFConnectionManager_DuplicateMenuItem_Caption; LANGFQuickConnect_Caption := LANGchsFQuickConnect_Caption; LANGFQuickConnect_TitleLabel_Caption := LANGchsFQuickConnect_TitleLabel_Caption; LANGFQuickConnect_ConnectToURILabel_Caption := LANGchsFQuickConnect_ConnectToURILabel_Caption; LANGLinkToS := LANGchsLinkToS; LANGOpenDirectoryInBackgroundTab := LANGchsOpenDirectoryInBackgroundTab; LANGTheActiveConnectionHasNotBeenSaved := LANGchsTheActiveConnectionHasNotBeenSaved; LANGTheArchiveIsEncryptedAndRequiresPassword := LANGchsTheArchiveIsEncryptedAndRequiresPassword; end; initialization AddTranslation('ZH', @SetTranslation); AddTranslation('CN', @SetTranslation); AddTranslation('zh_CN', @SetTranslation); end. tuxcmd-0.6.70+dfsg/translations/UTranslation_SV.pas0000644000175000017500000024531211300022643021324 0ustar salvisalvi(* Tux Commander - UTranslation_SV - Swedish Localization constants Copyright (C) 2004 Johan Åkesson !! Currently unmaintained, new translator needed !! 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UTranslation_SV; interface implementation uses ULocale; const LANGsvF2Button_Caption = 'F2 - Byt namn'; LANGsvF3Button_Caption = 'F3 - Läs'; LANGsvF4Button_Caption = 'F4 - Editera'; LANGsvF5Button_Caption = 'F5 - Kopiera'; LANGsvF6Button_Caption = 'F6 - Flytta'; LANGsvF7Button_Caption = 'F7 - MkDir'; LANGsvF8Button_Caption = 'F8 - Ta bort'; LANGsvmnuFile_Caption = '_Arkiv'; LANGsvmnuMark_Caption = '_Markera'; LANGsvmnuCommands_Caption = '_Kommandon'; LANGsvmnuHelp_Caption = '_Hjälp'; LANGsvmiExit_Caption = 'E_xit'; LANGsvmiSelectGroup_Caption = 'Välj _Grupp...'; LANGsvmiUnselectGroup_Caption = '_Avmarkera Grupp...'; LANGsvmiSelectAll_Caption = '_Välj Alla'; LANGsvmiUnselectAll_Caption = 'A_vmarkera Allt'; LANGsvmiInvertSelection_Caption = '_Omvänt Val'; LANGsvmiRefresh_Caption = '_Uppdatera'; LANGsvmiAbout_Caption = '_Om...'; LANGsvColumn1_Caption = 'Namn'; LANGsvColumn2_Caption = 'Ext'; LANGsvColumn3_Caption = 'Strl'; LANGsvColumn4_Caption = 'Datum'; LANGsvColumn5_Caption = 'Attr'; LANGsvExpandSelection = 'Expandera val'; LANGsvShrinkSelection = 'Minimera val'; LANGsvNoMatchesFound = 'Inga träffar funna'; LANGsvNoFilesSelected = 'Inga filer valda!'; LANGsvSelectedFilesDirectories = '%d valda filer/kataloger'; LANGsvDirectoryS = 'katalog %s'; LANGsvFileS = 'fil %s'; LANGsvDoYouReallyWantToDeleteTheS = 'Vill du verkligen radera %s ?'; LANGsvDoYouReallyWantToDeleteTheSS = 'Vill du verkligen radera %s ?'#10'%s'; LANGsvCopyFiles = 'Kopiera filer'; LANGsvMoveRenameFiles = 'Flytta/Döp om files'; LANGsvCopyDFileDirectoriesTo = 'Kopiera %d fil/kataloger till'; LANGsvMoveRenameDFileDirectoriesTo = 'Flytta/Döp om %d fil/kataloger till'; LANGsvCopySC = 'Kopiera:'; LANGsvMoveRenameSC = 'Flytta/Döp om:'; LANGsvQuickFind = ' Snabbsök:'; LANGsvAboutString = 'Tux Commander'#10'Version %s'#10'Build date: %s'#10#10'Copyright (c) 2008 Tomas Bzatek'#10'E-mail: tbzatek@users.sourceforge.net'#10'Website: http://tuxcmd.sourceforge.net/'; LANGsvAboutStringGnome = 'version %s'#10'Build date: %s'#10'Website: http://tuxcmd.sourceforge.net/'; LANGsvDiskStatFmt = '%s of %s kB ledigt'; LANGsvDiskStatVolNameFmt = '[%s] %s av %s kB ledigt'; LANGsvStatusLineFmt = '%s of %s kB i %d av %d filer valda'; LANGsvPanelStrings : array[boolean] of string = ('höger', 'vänster'); LANGsvDIR = ''; LANGsvErrorGettingListingForSPanel = 'Fel vid hämtning av listning for %s panel:'#10' %s'#10#10'Sökväg = ''%s'''; LANGsvErrorGettingListingForSPanelNoPath = 'Fel vid hämtning av listning för %s panel:'#10' %s'; LANGsvErrorCreatingNewDirectorySInSPanel = 'Fel vid skapande av ny katalog ''%s'' i %s panel:'#10' %s'; LANGsvErrorCreatingNewDirectorySInSPanelNoPath = 'Fel vid skapande av ny katalog i %s panel:'#10' %s'; LANGsvTheFileDirectory = 'Filen/katalogen'; LANGsvCouldNotBeDeleted = 'kunde inte raderas'; LANGsvCouldNotBeDeletedS = 'kunde inte raderas: %s'; LANGsvUserCancelled = 'Användaren avbröt!'; LANGsvTheDirectorySIsNotEmpty = 'Katalogen %s är inte tom!'; LANGsvCannotCopyFile = 'Kan inte kopiera fil'; LANGsvCopyError = 'Kopieringsfel'; LANGsvMoveError = 'Flyttningsfel'; LANGsvOverwriteS = 'Skriv över: %s'; LANGsvWithFileS = 'Med fil: %s'; LANGsvOvewriteSBytesS = '%s bytes, %s'; LANGsvTheFile = 'Filen'; LANGsvCopy = 'Kopiera'; LANGsvMove = 'Flytta'; LANGsvTheDirectory = 'Katalogen'; LANGsvTheSymbolicLink = 'Den symboliska länken'; LANGsvCannotMoveFile = 'Kan inte flytta fil'; LANGsvCouldNotBeCreated = 'kunde inte skapas'; LANGsvCouldNotBeCreatedS = 'kunde inte skapas: %s'; LANGsvFromS = 'FrÃ¥n: %s'; LANGsvToS = 'Till: %s'; LANGsvCannotCopyFileToItself = 'Kan inte kopiera fil till sig själv'; LANGsvMemoryAllocationFailed = 'Minnesallokation misslyckades:'; LANGsvCannotOpenSourceFile = 'Kan inte öppna källfil'; LANGsvCannotOpenDestinationFile = 'Kan inte öppna mÃ¥lfil'; LANGsvCannotCloseDestinationFile = 'Kan inte stänga mÃ¥lfil'; LANGsvCannotCloseSourceFile = 'Kan inte stänga källfil'; LANGsvCannotReadFromSourceFile = 'Kan inte läsa frÃ¥n källfil'; LANGsvCannotWriteToDestinationFile = 'Kan inte skriva till mÃ¥lfil'; LANGsvUnknownException = 'Okänd Avvikelse'; LANGsvNoAccess = 'Ingen Behörighet'; LANGsvUnknownError = 'Okänt Fel'; LANGsvCreateANewDirectory = 'Skapa en ny katalog'; LANGsvEnterDirectoryName = 'Fyll i _katalognamn:'; LANGsvOverwriteQuestion = 'Skriv över frÃ¥ga'; LANGsvOverwriteButton_Caption = '_Skriv över'; LANGsvOverwriteAllButton_Caption = 'Skriv över _allt'; LANGsvSkipButton_Caption = '_Skippa'; LANGsvOverwriteAllOlderButton_Caption = 'Skriv över alla äldre'; LANGsvSkipAllButton_Caption = 'S_kippa alla'; LANGsvRenameButton_Caption = '_Byt namn'; LANGsvAppendButton_Caption = 'L_ägg till'; LANGsvRename = 'Byt namn'; LANGsvRenameFile = 'Byt namn pÃ¥ ''%s'' till'; LANGsvIgnoreButton_Caption = '_Ignorera'; LANGsvProgress = 'Framsteg'; LANGsvCancel = '_Avbryt'; LANGsvDelete = 'Radera:'; LANGsvSpecifyFileType = '_Specifiera filtyp:'; LANGsvRemoveDirectory = 'Radera katalog'; LANGsvDoYouWantToDeleteItWithAllItsFilesAndSubdirectories = 'Vill du radera den med alla dess filer och underkataloger?'; LANGsvRetry = '_Försök igen'; LANGsvDeleteButton_Caption = '_Radera'; LANGsvAll = '_Allt'; LANGsvCopyFilesSC = 'Kopiera filer:'; LANGsvAppendQuestion = 'Är du säker pÃ¥ att du vill lägga till fil ''%s'' till ''%s''?'; LANGsvPreparingList = 'Förbereder lista...'; LANGsvYouMustSelectAValidFile = 'Du mÃ¥ste välja en giltig fil!'; LANGsvmiVerifyChecksums = '_Verifierar checksums'; LANGsvVerifyChecksumsCaption = 'Verifiera checksums'; LANGsvCheckButtonCaptionCheck = '_Kontrollera'; LANGsvCheckButtonCaptionStop = '_Stopp'; LANGsvFileListTooltip = '[?] - Inte kontrollerad'#10'[OK] - Checksum OK'#10'[BAD] - Checksum BAD'#10'[N/A] - Filen inte tillgänglig'; LANGsvFilenameColumnCaption = 'Filnamn'; LANGsvTheFileSYouAreTryingToOpenIsQuiteBig = 'Filen ''%s'' som du försöker öppna är relativt stor (%s bytes). Det kanske inte är en giltig checksum-fil.'#10#10'Vill du ladda den ändÃ¥?'; LANGsvAnErrorOccuredWhileInitializingMemoryBlock = 'Ett fel uppstod medan minnesblocket initierades. Stäng alla program och försök igen.'; LANGsvAnErrorOccuredWhileOpeningFileSS = 'Ett fel uppstod vid öppnandet av ''%s'':'#10' %s'; LANGsvAnErrorOccuredWhileReadingFileSS = 'Ett fel uppstod vid läsning av ''%s'':'#10' %s'; LANGsvChecksumNotChecked = 'Status: Inte kontrollerad'; LANGsvChecksumChecking = 'Status: Kontrollerar...'; LANGsvChecksumInterrupted = 'Status: Avbruten'; LANGsvChecksumDOK = 'Status: %d%% OK'; LANGsvmiCreateChecksumsCaption = '_Skapa checksums...'; LANGsvYouMustSelectAtLeastOneFileToCalculateChecksum = 'Du mÃ¥ste välja Ã¥tminstone en fil för att räkna ut checksums!'; LANGsvCreateChecksumsCaption = 'Skapa checksums'; LANGsvCCHKSUMPage1Text = 'Du kommer att skapa checksums för'#10'de valda filerna. Om du inte valde'#10'alla filer du vill användat, stäng den här druiden och'#10'välj fler filer.'; LANGsvCCHKSUMPage4Text = 'Druiden är redo att skapa checksums för dina'#10'valda filer. Den här processen kan ta ett par minuter.'#10'Tryck FramÃ¥t för att fortsätta.'; LANGsvCCHKSUMPage6Text = 'Det uppstod fel vid skapandet av checksums:'; LANGsvCCHKSUMPage7Text = 'Skapandet av checksums är färdigt och'#10'dina filer är färdiga.'#10#10'Klicka "Avsluta" för att avsluta.'; LANGsvCCHKSUMPage1Title = 'Förbered filer för checksum'; LANGsvCCHKSUMPage2Title = 'Välj checksums-filtyper'; LANGsvCCHKSUMPage3Title = 'Välj filnamn'; LANGsvCCHKSUMPage4Title = 'Redo att kontrollera'; LANGsvCCHKSUMPage5Title = 'Kontrollerar...'; LANGsvCCHKSUMPage6Title = 'Fel!'; LANGsvCCHKSUMPage7Title = 'Färdig'; LANGsvCCHKSUMSFVFile = 'SFV-fil'; LANGsvCCHKSUMMD5sumFile = 'MD5sum-fil'; LANGsvCCHKSUMFileName = 'Fil _namn:'; LANGsvCCHKSUMCreateSeparateChecksumFiles = 'Skapa _separata checksum-filer'; LANGsvCCHKSUMNowProcessingFileS = 'Kontrollerar nu fil: %s'; LANGsvCCHKSUMFinishCaption = '_Avsluta'; LANGsvCCHKSUMAreYouSureYouWantToAbortTheProcessing = 'Är du säker pÃ¥ att du vill avbryta?'; LANGsvCCHKSUMAnErrorOccuredWhileOpeningFileSS = 'Ett fel uppstod vid öppnandet av ''%s'': %s'#10; LANGsvCCHKSUMAnErrorOccuredWhileReadingFileSS = 'Ett fel uppstod vid läsandet av ''%s'': %s'#10; LANGsvCCHKSUMAnErrorOccuredWhileWritingFileSS = 'Ett fel uppstod vid skrivandet till ''%s'': %s'#10; LANGsvAnErrorOccuredWhileWritingFileSS = 'Ett fel uppstod vid skrivandet till ''%s'':'#10' %s'; LANGsvTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt = 'MÃ¥lfilen ''%s'' existerar redan. Vill du skriva över den?'; LANGsvTheTargetFileSCannotBeRemovedS = 'MÃ¥lfilen ''%s'' kan inte raderas: %s'; LANGsvMergeCaption = 'Förena'; LANGsvPleaseInsertNextDiskOrGiveDifferentLocation = 'Var god sätt i nästa disk eller ange annan plats:'; LANGsvMergeOfSSucceeded = 'Förening av ''%s'' lyckades (CRC checksum OK).'; LANGsvWarningCreatedFileFailsCRCCheck = 'Varning: Skapad fil passerar inte CRC-kontrollen!'; LANGsvMergeOfSSucceeded_NoCRCFileAvailable = 'Förening av ''%s'' lyckades (ingen CRC-fil tillgänglig).'; LANGsvMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory = 'Förena ''%s'' och alla filer med stigande namn till följande katalog:'; LANGsvMergeSC = 'Förena:'; LANGsvmiSplitFileCaption = '_Dela Fil...'; LANGsvmiMergeFilesCaption = '_Förena Filer...'; LANGsvSplitTheFileSToDirectory = '_Dela filen ''%s'' till katalog:'; LANGsvSplitSC = 'Dela:'; LANGsvSplitFile = 'Dela Fil'; LANGsvBytesPerFile = '_Bytes per fil:'; LANGsvAutomatic = 'Automatisk'; LANGsvDeleteFilesOnTargetDisk = '_Radera filer pÃ¥ mÃ¥ldisk (användbart pÃ¥ flyttbara enheter)'; LANGsvSplitCaption = 'Dela'; LANGsvCannotOpenFileS = 'Kan inte öppna fil ''%s'''; LANGsvCannotSplitTheFileToMoreThan999Parts = 'Kan inte dela filen i mer än 999 delar!'; LANGsvThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem = 'Det existerar nÃ¥gra filer i mÃ¥lkatalogen:'#10'%s'#10'Vill du radera dem?'; LANGsvThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem = 'Det finns %d filer i mÃ¥lkatalogen. Vill du radera dem?'; LANGsvAnErrorOccuredWhileOperationS = 'Ett fel uppstod vid: %s'; LANGsvSplitOfSSucceeded = 'Delning av ''%s'' lyckades.'; LANGsvSplitOfSFailed = 'Delning av ''%s'' misslyckades!'; LANGsvmnuShow_Caption = 'Vis_a'; LANGsvmiShowDotFiles_Caption = 'Visa _punktfiler'; LANGsvTheFileYouAreTryingToOpenIsQuiteBig = 'Filen du försöker öppna är relativt stor. Genom att ladda den i ett externt program (som gedit) kan systemet bli lÃ¥ngsamt.'#10'Vill du fortsätta?'; LANGsvCannotExecuteSPleaseCheckTheConfiguration = 'Kan inte exekvera ''%s''. Var god kontrollera konfigurationen eller ställ in filtyps-associationen korrekt.'; LANGsvEdit = 'Editera'; LANGsvEnterFilenameToEdit = '_Fyll i filnamn att editera:'; LANGsvmnuSettings_Caption = 'In_ställningar'; LANGsvmiFileTypes_Caption = 'Fil_typer...'; LANGsvThereIsNoApplicationAssociatedWithS = 'Det finns inget program associerat med "%s".'#10#10'Du kan konfigurera Tux Commander att associera program med filtyper. Vill du associera ett program med den här filen?'; LANGsvErrorExecutingCommand = 'Kommandot misslyckades!'; LANGsvEditFileTypesCaption = 'Editera filtyper'; LANGsvTitleLabel_Caption = 'Filtypskonfiguration'; LANGsvExtensionsColumn = 'Extensions'; LANGsvDescriptionColumn = 'Beskrivning'; LANGsvFileTypesList = 'Filtypslista'; LANGsvActionName = 'Händelsenamn'; LANGsvCommand = 'Kommando'; LANGsvSetDefaultActionButton_Caption = '_Sätt som standard'; LANGsvRunInTerminalCheckBox_Caption = 'Kör i _Terminal'; LANGsvAutodetectCheckBox_Caption = 'Autoupptäck _GUI-program'; LANGsvBrowseButton_Caption = '_Bläddra...'; LANGsvCommandLabel_Caption = 'Ko_mmando:'; LANGsvDescriptionLabel_Caption = 'B_eskrivning:'; LANGsvFNameExtLabel_Caption = 'L_ägg till extension:'; LANGsvNotebookPageExtensions = 'Filtyp'; LANGsvNotebookPageActions = 'Händelser'; LANGsvDefault = ' (standard)'; LANGsvCannotSaveFileTypeAssociationsBecauseOtherProcess = 'Kan inte spara filtypsassociation därför att en annan process har uppdaterat den under tiden som det här programmet körts.'; LANGsvDefaultColor = 'St_andardfärg'; LANGsvIcon = '_Ikon:'; LANGsvBrowseForIcon = 'Bläddra efter ikon'; LANGsvSelectFileTypeColor = 'Välj filtypsfärg'; LANGsvColor = 'Fä_rg:'; LANGsvmiChangePermissions_Caption = 'Ändra Rät_ttigheter...'; LANGsvmiChangeOwner_Caption = 'Ändra _Ägare/Grupp...'; LANGsvmiCreateSymlink_Caption = 'Skapa Sym_länk...'; LANGsvmiEditSymlink_Caption = '_Editera Symlänk...'; LANGsvChmodProgress = 'Ändra rättigheter:'; LANGsvChownProgress = 'Ändra ägare:'; LANGsvYouMustSelectAValidSymbolicLink = 'Du mÃ¥ste välja en giltig symbolisk länk!'; LANGsvPopupRunS = 'E_xekvera %s'; LANGsvPopupOpenS = 'Ö_ppna %s'; LANGsvPopupGoUp = '_GÃ¥ upp'; LANGsvPopupOpenWithS = 'Öppna med %s'; LANGsvPopupDefault = ' (standard)'; LANGsvPopupOpenWith = 'Ö_ppna med...'; LANGsvPopupViewFile = '_Läs fil'; LANGsvPopupEditFile = 'Ed_itera fil'; LANGsvPopupMakeSymlink = 'Skapa _symlänk'; LANGsvPopupRename = '_Döp om'; LANGsvPopupDelete = '_Radera'; LANGsvDialogChangePermissions = 'Ändra rättigheter'; LANGsvCouldNotBeChmoddedS = 'kunde inte chmoddas: %s'; LANGsvDialogChangeOwner = 'Ändra ägare'; LANGsvCouldNotBeChownedS = 'kunde inte chownas: %s'; LANGsvDialogMakeSymlink = 'Skapa symlänk'; LANGsvDialogEditSymlink = 'Editera symlänk'; LANGsvFEditSymlink_Caption = 'Editera symbolisk länk'; LANGsvFEditSymlink_SymbolicLinkFilename = '_Symbolisk länk filnamn:'; LANGsvFEditSymlink_SymbolicLinkPointsTo = 'Symbolisk länk pekar _pÃ¥:'; LANGsvFChmod_Caption = 'TillgÃ¥ Rättigheter'; LANGsvFChmod_PermissionFrame = 'Rättigheter'; LANGsvFChmod_FileFrame = 'Fil'; LANGsvFChmod_ApplyRecursivelyFor = 'Applicera _rekursivt för'; LANGsvFChmod_miAllFiles = 'Alla filer och kataloger'; LANGsvFChmod_miDirectories = 'Endast kataloger'; LANGsvFChmod_OctalLabel = '_Oktal:'; LANGsvFChmod_SUID = 'SUID - Sätt användar ID vid exekvering'; LANGsvFChmod_SGID = 'SGID - Sätt användar group ID vid exekvering'; LANGsvFChmod_Sticky = 'Sticky bit'; LANGsvFChmod_RUSR = 'RUSR - Läs av ägare'; LANGsvFChmod_WUSR = 'WUSR - Skriv av ägare'; LANGsvFChmod_XUSR = 'XUSR - Exekvera/Sök av ägare'; LANGsvFChmod_RGRP = 'RGRP - Läs av grupp'; LANGsvFChmod_WGRP = 'WGRP - Skriv av grupp'; LANGsvFChmod_XGRP = 'XGRP - Exekvera/Sök av grupp'; LANGsvFChmod_ROTH = 'ROTH - Läs av andra'; LANGsvFChmod_WOTH = 'WOTH - Skriv av andra'; LANGsvFChmod_XOTH = 'XOTH - Exekvera/Sök av andra'; LANGsvFChmod_TextLabel = 'Text: %s'; LANGsvFChmod_FileLabel = 'Fil: %s'#10'Text: %s'#10 + 'Oktal: %d'#10'Ägare: %s'#10 + 'Grupp: %s'; LANGsvFChown_Caption = 'Ändra ägare/grupp'; LANGsvFChown_OwnerFrame = 'Användarnamn'; LANGsvFChown_GroupFrame = 'Gruppname'; LANGsvFChown_FileFrame = 'Fil'; LANGsvFChown_ApplyRecursively = 'Applicera _rekursivt'; LANGsvFSymlink_Caption = 'Skapa symbolisk länk'; LANGsvFSymlink_ExistingFilename = '_Befintligt filnamn (filnamnets symlänk kommer peka pÃ¥):'; LANGsvFSymlink_SymlinkFilename = '_Symbolisk länks filnamn:'; LANGsvmnuBookmarks_Caption = '_Bokmärken'; LANGsvmiAddBookmark_Caption = 'Lägg till Bokmärke'; LANGsvmiEditBookmarks_Caption = 'Editera Bokmärken'; LANGsvBookmarkPopupDelete_Caption = '_Radera'; LANGsvmiPreferences_Caption = '_Inställningar...'; LANGsvTheCurrentDirectoryAlreadyExistsInTheBookmarksList = 'Nuvarande katalog finns redan i bokmärkelistan'; LANGsvSomeOtherInstanceChanged = 'En annan instans av Tux Commander ändrade konfigurationen. Vill du applicera de nya inställningarna?'#10#10'Varning: Om du trycker Nej nu kommer konfigurationen skrivas över frÃ¥n den här instansen'' exit!'; LANGsvPreferences_Caption = 'Inställningar'; LANGsvPreferences_TitleLabel_Caption = 'Applikationsinställningar'; LANGsvPreferences_GeneralPage = 'Allmänt'; LANGsvPreferences_FontsPage = 'Teckensnitt'; LANGsvPreferences_ColorsPage = 'Färger'; LANGsvPreferences_RowHeight = 'Rad _höjd:'; LANGsvPreferences_NumHistoryItems = '_Kommandoradens gamla poster:'; LANGsvPreferences_Default = 'Standard'; LANGsvPreferences_ClearReadonlyAttribute = 'Ta bort _skrivskydd-sattribut vid kopiering frÃ¥n CD-ROM'; LANGsvPreferences_DisableMouseRenaming = 'Inaktivera namnbyte via _mus'; LANGsvPreferences_ShowFiletypeIconsInList = 'Visa _filtypsikoner'; LANGsvPreferences_ExternalAppsLabel = 'Externa program'; LANGsvPreferences_Viewer = '_Visningsprogram:'; LANGsvPreferences_Editor = '_Editerare:'; LANGsvPreferences_Terminal = '_Terminal:'; LANGsvPreferences_ListFont = 'List-teckensnitt:'; LANGsvPreferences_Change = 'Ändra...'; LANGsvPreferences_UseDefaultFont = 'Använd _standardteckensnitt'; LANGsvPreferences_Foreground = 'Förgrund'; LANGsvPreferences_Background = 'Bakgrund'; LANGsvPreferences_NormalItem = 'Normalt:'; LANGsvPreferences_SetToDefaultToUseGTKThemeColors = 'Sätt som standard att använda GTK-temafärger'; LANGsvPreferences_Cursor = 'Muspekare:'; LANGsvPreferences_InactiveItem = 'Inaktiva:'; LANGsvPreferences_SelectedItem = 'Valda:'; LANGsvPreferences_LinkItem = 'Symboliska länkar:'; LANGsvPreferences_LinkItemHint = 'Sätt som standard att visa symlänkar med normala färger'; LANGsvPreferences_DotFileItem = 'Punktfiler:'; LANGsvPreferences_DotFileItemHint = 'Sätt som standard att visa punktfiler med normala färger'; LANGsvPreferences_BrowseForApplication = 'Bläddra efter applikation'; LANGsvPreferences_DefaultS = 'Standard: %s'; LANGsvPreferences_SelectFont = 'Välj teckensnitt'; (*************** STRINGS ADDED TO v0.4.101 **********************************************************************************) LANGsvBookmarkButton_Tooltip = 'Visa bokmärken'; LANGsvUpButton_Tooltip = 'GÃ¥ till övre katalog'; LANGsvRootButton_Tooltip = 'GÃ¥ till rotkatalog (/)'; LANGsvHomeButton_Tooltip = 'GÃ¥ till hemkatalog (/home/user)'; LANGsvLeftEqualButton_Tooltip = 'Byt högerpanalen till samma katalog'; LANGsvRightEqualButton_Tooltip = 'Byt högerpanalen till samma katalog'; LANGsvmiShowDirectorySizes_Caption = 'Visa k_atalogstorlek'; LANGsvmiTargetSource_Caption = 'MÃ¥l = Källa'; LANGsvFileTypeDirectory = 'Katalog'; LANGsvFileTypeFile = 'Fil'; LANGsvFileTypeMetafile = 'Detta är en vanlig meta'; LANGsvPreferencesPanelsPage = 'Paneler'; LANGsvPreferencesApplicationsPage = 'Applikationer'; LANGsvPreferencesExperimentalPage = 'Experimentiell'; LANGsvPreferencesSelectAllDirectoriesCheckBox_Caption = 'Välj _även kataloger när allt markeras'; LANGsvPreferencesNewStyleAltOCheckBox_Caption = '_Ny stil Alt+O'; LANGsvPreferencesNewStyleAltOCheckBox_Tooltip = 'Stanna i samma katalog vid byte av katalog mittemot panel genom att trycka Ctrl/Alt+O'; LANGsvPreferencesShowFuncButtonsCheckBox_Caption = 'Visa funktion_knappar'; LANGsvPreferencesSizeFormatLabel_Caption = '_Storleksformat:'; LANGsvPreferencesmiSizeFormat1 = 'System'; LANGsvPreferencesmiSizeFormat6 = 'Grupperad'; LANGsvPreferencesAutodetectXApp = 'Autodetecta X app'; LANGsvPreferencesAlwaysRunInTerminal = 'Kör alltid i terminal'; LANGsvPreferencesNeverRunInTerminal = 'Kör aldrig i terminal'; LANGsvPreferencesCmdLineBehaviourLabel_Caption = '_Exekverar frÃ¥n kommandoraden:'; LANGsvPreferencesFeatures = 'Finesser'; LANGsvPreferencesDisableMouseRename_Tooltip = 'Du kan fortfarande göra snabb omdöpning av filer genom att trycka Shift+F6'; LANGsvPreferencesDisableFileTipsCheckBox_Caption = 'Avaktivera fil _tips'; LANGsvPreferencesDisableFileTipsCheckBox_Tooltip = 'Visa inte tips om texten i en kolumn är avskuren'; LANGsvPreferencesShow = 'Visa'; LANGsvPreferencesDirsInBoldCheckBox_Caption = 'Kataloger i _fetstil'; LANGsvPreferencesDisableDirectoryBracketsCheckBox_Caption = 'Avaktivera katalog p_aranteser'; LANGsvPreferencesOctalPermissionsCheckBox_Caption = 'Visa _oktala rättigheter'; LANGsvPreferencesOctalPermissionsCheckBox_Tooltip = 'Visa fil/katalog-rättigheter som nummer istället för i textform (-rw-rw-rw-)'; LANGsvPreferencesMovement = 'Rörelse'; LANGsvPreferencesLynxLikeMotionCheckBox_Caption = '_Lynx-liknande rörelse'; LANGsvPreferencesInsertMovesDownCheckBox_Caption = '_Insert scrollar uppÃ¥t'; LANGsvPreferencesSpaceMovesDownCheckBox_Caption = '_Space scrollar nerÃ¥t'; LANGsvPreferencesViewer = 'Läsare'; LANGsvPreferencesCommandSC = 'Kommando:'; LANGsvPreferencesUseInternalViewer = 'Använd _intern läsare'; LANGsvPreferencesEditor = 'Redigerare'; LANGsvPreferencesTerminal = 'Terminal'; LANGsvPreferencesExperimentalFeatures = 'Experimentiella finesser'; LANGsvPreferencesExperimentalWarningLabel_Caption = 'Warning: Dessa funktioner är under utveckling och kanske inte fungerar som väntat. Använd dem pÃ¥ egen risk!'; LANGsvPreferencesFocusRefreshCheckBox_Caption = '_Uppdatera vid fönsterfokusering'; LANGsvPreferencesFocusRefreshCheckBox_Tooltip = 'Väldigt lÃ¥ngsam panel-uppdatering just nu'; LANGsvPreferencesWMCompatModeCheckBox_Caption = '_WM Kompatibilitetsläge'; LANGsvPreferencesWMCompatModeCheckBox_Tooltip = 'Använd om du har problem med din window manager (IceWM kan inte maximera fönster riktigt tex.)'; LANGsvPreferencesCompatUseLibcSystemCheckBox_Caption = 'Använd libc _system() för att köra program'; LANGsvPreferencesCompatUseLibcSystemCheckBox_Tooltip = 'Använd mot frysning eller krasch vid start av externa applikationer'; (*************** STRINGS ADDED TO v0.5.70 **********************************************************************************) LANGsvmiSearchCaption2 = '_Search...'; LANGsvmiNoMounterBarCaption = 'Do_n''t show mounter bar'; LANGsvmiShowOneMounterBarCaption = 'Show _one mounter bar'; LANGsvmiShowTwoMounterBarCaption = 'Show _two mounter bars'; LANGsvmnuNetworkCaption = 'N_etwork'; LANGsvmiConnectionsCaption = '_Connections...'; LANGsvmiOpenConnectionCaption = '_Open connection...'; LANGsvmiQuickConnectCaption = '_Quick connect...'; LANGsvmnuPluginsCaption = 'Pl_ugins'; LANGsvmiTestPluginCaption = '_Test plugin...'; LANGsvmiMounterSettingsCaption = '_Mounter Settings...'; LANGsvmiColumnsCaption = 'P_anel Columns...'; LANGsvmiSavePositionCaption = '_Save position'; LANGsvmiMountCaption = '_Mount'; LANGsvmiUmountCaption = '_Umount'; LANGsvmiEjectCaption = '_Eject'; LANGsvmiDuplicateTabCaption = 'Duplicate current tab'; LANGsvmiCloseTabCaption = 'Close current tab'; LANGsvmiCloseAllTabsCaption = 'Close all tabs'; LANGsvCannotDetermineDestinationEngine = 'Cannot determine destination engine. Please enter correct path and try it again.'; LANGsvCannotLoadFile = 'Cannot load file ''%s''. Please check the permissions.'; LANGsvMountPointDevice = 'Mount Point: %s'#10'Device: %s'; LANGsvMountSC = 'Mount:'; LANGsvNoPluginsFound = 'No plugins found'; LANGsvPluginAbout = 'About...'; LANGsvCouldntOpenURI = 'Couldn''t open the URI specified. Please check the consistency of the resource identifier and the access permission.'; LANGsvPluginAboutInside = 'Plugin: %s'#10#10'%s'#10'%s'; LANGsvAreYouSureCloseAllTabs = 'Are you sure you want to close all inactive tabs?'; LANGsvCouldntOpenURIArchive = 'Couldn''t open the archive. Please check consistency and access permissions.'; LANGsvThereIsNoModuleAvailable = 'There are no VFS modules available that can handle this connection'; LANGsvIgnoreError = 'Do you really want to ignore the error? The source file will be then deleted'; LANGsvErrorMount = 'There was an error while mounting the device ''%s'':'#10#10; LANGsvErrorUmount = 'There was an error while umounting the device ''%s'':'#10#10; LANGsvErrorEject = 'There was an error while ejecting the device ''%s'':'#10#10; LANGsvMounterPrefs_Caption = 'Mounter Settings'; LANGsvMounterPrefs_TitleLabelCaption = 'Mounter Settings'; LANGsvMounterPrefs_ListViewFrameCaption = 'Mounter'; LANGsvMounterPrefs_MountName = 'Mount Name'; LANGsvMounterPrefs_MountPoint = 'Mount Point'; LANGsvMounterPrefs_Device = 'Device'; LANGsvMounterPrefs_MoveUpButtonTooltip = 'Move item up'; LANGsvMounterPrefs_MoveDownButtonTooltip = 'Move item down'; LANGsvMounterPrefs_UseFSTabDefaultsCheckBox = 'Use _fstab default items'; LANGsvMounterPrefs_UseFSTabDefaultsCheckBoxTooltip = 'By checking this, the mounter bar will be filled by default items found in the /etc/fstab (system mountlist file)'; LANGsvMounterPrefs_ToggleModeCheckBox = 'Buttons stay _down when mounted'; LANGsvMounterPrefs_ToggleModeCheckBoxTooltip = 'When checked, the mounter buttons will stay down if the device is mounted; another click will cause umounting them (eject in this case)'; LANGsvMounterPrefs_PropertiesFrameCaption = 'Mounter item properties'; LANGsvMounterPrefs_DisplayTextLabelCaption = 'Displayed _Text:'; LANGsvMounterPrefs_MountPointLabelCaption = 'Mount _Point:'; LANGsvMounterPrefs_MountDeviceLabelCaption = '_Device:'; LANGsvMounterPrefs_DeviceTypeLabelCaption = 'Device T_ype:'; LANGsvMounterPrefs_miLocalDiskCaption = 'Local disk'; LANGsvMounterPrefs_miRemovableCaption = 'Removable'; LANGsvMounterPrefs_miCDCaption = 'CD/DVD drive'; LANGsvMounterPrefs_miFloppyCaption = 'Floppy drive'; LANGsvMounterPrefs_miNetworkCaption = 'Network'; LANGsvMounterPrefs_MountCommandLabelCaption = 'Mount _Command:'; LANGsvMounterPrefs_UmountCommandLabelCaption = 'Umount C_ommand:'; LANGsvMounterPrefs_MountCommandEntryTooltip = 'Syntax: use %dev for substitution of the device and %dir for the mount point or leave blank for default mount'#10'Note: beware of interactive commands, tuxcmd could freeze!'#10'Example: smbmount %dev %dir -o username=netuser,password=somepass'; LANGsvMounterPrefs_UmountCommandEntryTooltip = 'Syntax: use %dev for substitution of the device and %dir for the mount point or leave blank for default umount'#10'Example: smbumount $dir'; LANGsvMounterPrefs_IconLabelCaption = '_Icon:'; LANGsvConnMgr_Caption = 'Open New Connection'; LANGsvConnMgr_ConnectButton = 'Co_nnect'; LANGsvConnMgr_OpenConnection = 'Open Connection'; LANGsvConnMgr_NameColumn = 'Name'; LANGsvConnMgr_URIColumn = 'URI'; LANGsvConnMgr_AddConnectionButtonCaption = '_Add site...'; LANGsvConnMgr_AddConnectionButtonTooltip = 'Add new connection'; LANGsvConnMgr_EditButtonCaption = '_Edit...'; LANGsvConnMgr_EditButtonTooltip = 'Edit selected connection'; LANGsvConnMgr_RemoveButtonCaption = '_Remove site'; LANGsvConnMgr_RemoveButtonTooltip = 'Delete selected connection'; LANGsvConnMgr_DoYouWantDelete = 'Do you really want to delete the connection ''%s''?'; LANGsvConnProp_FTP = 'FTP'; LANGsvConnProp_SFTP = 'SFTP (ssh subsystem)'; LANGsvConnProp_SMB = 'Windows share (SMB)'; LANGsvConnProp_HTTP = 'WebDAV (HTTP)'; LANGsvConnProp_HTTPS = 'Secure WebDAV (HTTPS)'; LANGsvConnProp_Other = 'Other (please specify in URI)'; LANGsvConnProp_Caption = 'Connection properties'; LANGsvConnProp_VFSModule = '_VFS module:'; LANGsvConnProp_URI = '_URI:'; LANGsvConnProp_URIEntryTooltip = 'Correct URI should contain service type prefix and server address'; LANGsvConnProp_DetailedInformations = 'Detailed informations'; LANGsvConnProp_Name = '_Name:'; LANGsvConnProp_Server = 'Ser_ver[:port]:'; LANGsvConnProp_Username = 'Userna_me:'; LANGsvConnProp_UserNameEntryTooltip = 'Leave blank for anonymous login'; LANGsvConnProp_Password = '_Password:'; LANGsvConnProp_TargetDirectory = 'Target _directory:'; LANGsvConnProp_ServiceType = '_Service type:'; LANGsvConnProp_MaskPassword = '_Mask password'; LANGsvConnProp_MenuItemCaption = 'Default (all suitable modules)'; LANGsvConnLogin_Caption = 'Authentication required'; LANGsvConnLogin_Login = 'Login'; LANGsvConnLogin_ExperimentalWarningLabelCaption = 'You must log in to access %s'; LANGsvConnLogin_Username = '_Username:'; LANGsvConnLogin_Password = '_Password:'; LANGsvConnLogin_AnonymousCheckButton = '_Anonymous'; LANGsvColumns_Caption = 'Panel Columns Settings'; LANGsvColumns_Title = 'Panel Columns Settings'; LANGsvColumns_MoveUpButtonTooltip = 'Move item up'; LANGsvColumns_MoveDownButtonTooltip = 'Move item down'; LANGsvColumns_TitlesLongName = 'Name'; LANGsvColumns_TitlesLongNameExt = 'Name + Extension'; LANGsvColumns_TitlesLongExt = 'Extension'; LANGsvColumns_TitlesLongSize = 'Size'; LANGsvColumns_TitlesLongDateTime = 'Date + Time'; LANGsvColumns_TitlesLongDate = 'Date'; LANGsvColumns_TitlesLongTime = 'Time'; LANGsvColumns_TitlesLongUser = 'User'; LANGsvColumns_TitlesLongGroup = 'Group'; LANGsvColumns_TitlesLongAttr = 'Attributes'; LANGsvColumns_TitlesShortName = 'Name'; LANGsvColumns_TitlesShortNameExt = 'Name'; LANGsvColumns_TitlesShortExt = 'Ext'; LANGsvColumns_TitlesShortSize = 'Size'; LANGsvColumns_TitlesShortDateTime = 'Date'; LANGsvColumns_TitlesShortDate = 'Date'; LANGsvColumns_TitlesShortTime = 'Time'; LANGsvColumns_TitlesShortUser = 'User'; LANGsvColumns_TitlesShortGroup = 'Group'; LANGsvColumns_TitlesShortAttr = 'Attr'; LANGsvTestPlugin_Caption = 'Test VFS Plugin'; LANGsvTestPlugin_Title = 'Test VFS Plugin'; LANGsvTestPlugin_ExperimentalWarningLabelCaption = 'Warning: The VFS subsystem and its plugins are under heavy development and may contain bugs. Use this function under your own risk!'; LANGsvTestPlugin_Plugin = '_Plugin:'; LANGsvTestPlugin_Command = 'Co_mmand:'; LANGsvTestPlugin_Username = '_Username:'; LANGsvTestPlugin_Password = '_Password:'; LANGsvTestPlugin_AnonymousCheckButton = '_Anonymous login (doesn''t call VFSLogin)'; LANGsvTestPlugin_NoPluginsFound = 'No plugins found'; LANGsvRemoteWait_Caption = 'Operation in progress'; LANGsvRemoteWait_OperationInProgress = 'Operation in progress, please be patient...'; LANGsvRemoteWait_ItemsFound = 'Items found so far: %d'; LANGsvSearch_Bytes = 'Bytes'; LANGsvSearch_kB = 'kB'; LANGsvSearch_MB = 'MB'; LANGsvSearch_days = 'days'; LANGsvSearch_weeks = 'weeks'; LANGsvSearch_months = 'months'; LANGsvSearch_years = 'years'; LANGsvSearch_Caption = 'Find Files'; LANGsvSearch_General = 'General'; LANGsvSearch_Advanced = 'Advanced'; LANGsvSearch_SearchResults = 'Search _Results:'; LANGsvSearch_SearchFor = 'Search _for:'; LANGsvSearch_FileMaskEntryTooltip = 'Tip: Use colons (";") to specify multiple files to find'; LANGsvSearch_SearchIn = 'Search _in:'; LANGsvSearch_SearchArchivesCheckButton = 'Search _archives'; LANGsvSearch_FindText = 'Find _text:'; LANGsvSearch_FindTextEntryTooltip = 'Leave blank for no text matching'#10'Please note that we are using UTF-8 in GUI part'; LANGsvSearch_CaseSensitiveCheckButton = 'Cas_e sensitive'; LANGsvSearch_StayCurrentFSCheckButton = 'Include other files_ystems'; LANGsvSearch_CaseSensitiveMatchCheckButton = 'Ca_se sensitive'; LANGsvSearch_Size = 'Size'; LANGsvSearch_Date = 'Date'; LANGsvSearch_BiggerThan = '_Bigger than'; LANGsvSearch_SmallerThan = '_Smaller than'; LANGsvSearch_ModifiedBetweenRadioButton = '_Modified between'; LANGsvSearch_NotModifiedAfterRadioButton = '_Not modified after'; LANGsvSearch_ModifiedLastRadioButton = 'Mod_ified in the last'; LANGsvSearch_ModifiedNotLastRadionButton = 'No_t modified in the last'; LANGsvSearch_ModifiedBetweenEntry1 = '"Please use this date format:" c'; LANGsvSearch_ViewButtonCaption = '_View file'; LANGsvSearch_NewSearchButtonCaption = '_New search'; LANGsvSearch_GoToFileButtonCaption = '_Go to file'; LANGsvSearch_FeedToListboxButtonCaption = 'Feed to _listbox'; LANGsvSearch_StatusSC = 'Status:'; LANGsvSearch_Ready = 'Ready.'; LANGsvSearch_PreparingToSearch = 'Preparing to search.'; LANGsvSearch_SearchInProgress = 'Search in progress:'; LANGsvSearch_UserCancelled = 'User cancelled.'; LANGsvSearch_SearchFinished = 'Search finished'; LANGsvSearch_FilesFound = '%d files found'; LANGsvSearch_And = 'and'; (*************** STRINGS ADDED TO v0.5.82 **********************************************************************************) LANGsvCloseOpenConnection = 'You''re trying to open new connection over the another active connection. By continuing, the previous connection will be closed and replaced by the new requested one.'#10#10'Do you want to continue?'; LANGsvDuplicateTabWarning = 'You are trying to open a new tab from a remote directory. However, engine cloning is not supported. The directory in the new tab will point to a local filesystem.'; LANGsvDontShowAgain = '_Don''t show this message again'; LANGsvSwitchOtherPanelWarning = 'You are trying to open the remote directory in the opposite panel. However, engine cloning is not supported. The target directory will not be switched.'; LANGsvOpenConnectionsWarning = 'There are some active connections opened in the panel. By closing the application, these connections will be disconnected.'#10#10'Do you want to continue quit?'; LANGsvmiDisconnect_Caption = '_Disconnect'; LANGsvDisconnectButton_Tooltip = 'Disconnect active connection'; LANGsvLeaveArchiveButton_Tooltip = 'Close current archive'; LANGsvOpenTerminalButton_Tooltip = 'Opens a new terminal windows from the current directory'; LANGsvOpenTerminalButton_Caption = 'Open Te_rminal'; LANGsvShowTextUIDsCheckBox_Caption = 'Show text _UIDs'; LANGsvShowTextUIDsCheckBox_Tooltip = 'Show textual User and Group informations instead of numbers (UID/GID)'; (*************** STRINGS ADDED TO v0.5.100 **********************************************************************************) LANGsvmiNewTab_Caption = 'New folder _tab'; LANGsvFilePopupMenu_Properties = '_Properties'; LANGsvCommandEntry_Tooltip = 'Use %s as file/directory placeholder'; LANGsvmiFiles_Caption = 'Files only'; (*************** STRINGS ADDED TO v0.6.31 **********************************************************************************) LANGsvPasswordButton_Tooltip = 'Archive requires password.'#10'Click to set'; LANGsvHandleRunFromArchive_Bytes = 'bytes'; LANGsvHandleRunFromArchive_FileTypeDesc_Unknown = '(unknown)'; LANGsvHandleRunFromArchive_NotAssociated = '(not associated)'; LANGsvHandleRunFromArchive_SelfExecutable = '(self-executable)'; LANGsvHandleRunFromArchive_CouldntCreateTemporaryDirectory = 'Couldn''t create temporary directory "%s": %s.'#10#10'Please check the temporary directory settings and try it again.'; LANGsvFRunFromVFS_Caption = 'Packed file properties'; LANGsvFRunFromVFS_TitleLabel = 'File Properties'; LANGsvFRunFromVFS_FileNameLabel = 'File name:'; LANGsvFRunFromVFS_FileTypeLabel = 'File type:'; LANGsvFRunFromVFS_SizeLabel = 'Size:'; LANGsvFRunFromVFS_PackedSizeLabel = 'Compressed size:'; LANGsvFRunFromVFS_DateLabel = 'Modify date:'; LANGsvFRunFromVFS_InfoLabel = 'Opening files directly from archives is not supported. By clicking the buttons below the file (all files respectively) will be extracted to a temporary location. Temporary files will be deleted when you close Tux Commander.'; LANGsvFRunFromVFS_OpensWithLabel = 'Open with:'; LANGsvFRunFromVFS_ExecuteButton = 'E_xtract and open'; LANGsvFRunFromVFS_ExecuteAllButton = 'Extract _all and open'; LANGsvFSetPassword_Caption = 'Set password'; LANGsvFSetPassword_Label1_Caption = 'Password required'; LANGsvFSetPassword_Label2_Caption = 'The archive is encrypted and requires password in order to extract the data'; LANGsvFSetPassword_ShowPasswordCheckButton = 'Un_mask password'; (*************** STRINGS ADDED TO v0.6.48 **********************************************************************************) LANGsvCopyFileNamesToClipboard = '_Copy file names to clipboard'; LANGsvCopyFullPathNamesToClipboard = 'Copy _full path names to clipboard'; LANGsvCopyPathToClipboard = '_Copy path to clipboard'; LANGsvPreferences_DateFormatLabel_Caption = 'Date _format:'; LANGsvPreferences_System = 'System'; LANGsvPreferences_Custom = 'Custom...'; LANGsvPreferences_CustomDateFormatEntry_Tooltip = 'Enter custom date format string.'#10'Please see "man strftime" for syntax reference.'; LANGsvPreferences_TimeFormatLabel_Caption = '_Time format:'; LANGsvPreferences_CustomTimeFormatEntry_Tooltip = 'Enter custom time format string.'#10'Please see "man strftime" for syntax reference.'; LANGsvPreferences_DateTimeFormatLabel_Caption = 'Date/time _order:'; LANGsvPreferences_QuickRenameSkipExtCheckBox = 'Select name part only on quick-rename'; LANGsvPreferences_QuickRenameSkipExtCheckBox_Tooltip = 'Exclude filename extension from the selection when doing quick-rename'; LANGsvPreferences_SortDirectoriesLikeFilesCheckBox = 'Sort directories lik_e files'; LANGsvPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip = 'Check this to allow sorting directories along with files. Directories are always first in the list.'#10'Unchecked: directories are always sorted by name.'; LANGsvPreferences_QuickSearchLabel_Caption = 'Quick search _keystroke:'; LANGsvPreferences_QuickSearchOptionMenu_Tooltip = 'The Ctrl+S/Alt+S and "/" keystrokes are always active, regardless on this setting.'; LANGsvPreferences_QuickSearch_Option1 = 'Ctrl+S/Alt+S and "/" only'; LANGsvPreferences_QuickSearch_Option2 = 'Ctrl+Alt+letters'; LANGsvPreferences_QuickSearch_Option3 = 'Alt+letters'; LANGsvPreferences_QuickSearch_Option4 = 'letters directly'; LANGsvPreferences_TempPathLabel_Caption = 'Temporary files'; LANGsvPreferences_VFSTempPathLabel_Caption = '_VFS temp files:'; LANGsvPreferences_VFSTempPathEntry_Tooltip = 'Location of temporary files used by VFS subsystem, e.g. when opening files directly from archives. All temporary files are cleaned on exit.'; (*************** STRINGS ADDED TO v0.6.67 **********************************************************************************) LANGsvPreferences_RightClickSelectCheckBox = 'Right mouse button selection mode'; LANGsvPreferences_RightClickSelectCheckBox_Tooltip = 'Use right mouse button to select, like mc.'; LANGsvGtkMountOperation_ConnectAnonymously = 'Connect _anonymously'; LANGsvGtkMountOperation_ConnectAsUser = 'Connect as u_ser:'; LANGsvGtkMountOperation_Username = '_Username:'; LANGsvGtkMountOperation_Domain = '_Domain:'; LANGsvGtkMountOperation_Password = '_Password:'; LANGsvGtkMountOperation_DoNotSavePassword = 'Do not save password'; LANGsvGtkMountOperation_ForgetPasswordImmediately = 'Forget password _immediately'; LANGsvGtkMountOperation_RememberPasswordUntilYouLogout = 'Remember password until you _logout'; LANGsvGtkMountOperation_SavePasswordInConnectionManager = '_Save password in Connection Manager'; LANGsvGtkMountOperation_RememberForever = 'Remember _forever'; LANGsvFSymlink_RelativePath = '_Relative path'; LANGsvFConnectionManager_DuplicateButton_Caption = 'D_uplicate...'; LANGsvFConnectionManager_DuplicateButton_Tooltip = 'Duplicate selected connection'; LANGsvFConnectionManager_DoNotSavePasswordsCheckBox_Label = '_Do not store passwords internally (but still use gnome-keyring)'; LANGsvFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip = 'By checking this option on, Tux Commander will never save passwords into its connection list. Due to the GVFS nature, gnome-keyring will still be used to retrieve stored passwords from your desktop session.'; LANGsvFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label = 'Do not synchronize passwords to gnome-_keyring'; LANGsvFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip = 'Don''t tell gnome-keyring to save any passwords.'; LANGsvFConnectionManager_DuplicateMenuItem_Caption = 'D_uplicate...'; LANGsvFQuickConnect_Caption = 'Quick connect'; LANGsvFQuickConnect_TitleLabel_Caption = 'Quick connect'; LANGsvFQuickConnect_ConnectToURILabel_Caption = 'C_onnect to URI:'; LANGsvLinkToS = 'Link to %s'; LANGsvOpenDirectoryInBackgroundTab = 'Open directory in _background tab'; LANGsvTheActiveConnectionHasNotBeenSaved = 'The active connection has not been saved. Do you want to save it to Connection Manager?'#10#10'%s'; LANGsvTheArchiveIsEncryptedAndRequiresPassword = 'The archive is encrypted and requires password'; (********************************************************************************************************************************) procedure SetTranslation; begin LANGF2Button_Caption := LANGsvF2Button_Caption; LANGF3Button_Caption := LANGsvF3Button_Caption; LANGF4Button_Caption := LANGsvF4Button_Caption; LANGF5Button_Caption := LANGsvF5Button_Caption; LANGF6Button_Caption := LANGsvF6Button_Caption; LANGF7Button_Caption := LANGsvF7Button_Caption; LANGF8Button_Caption := LANGsvF8Button_Caption; LANGmnuFile_Caption := LANGsvmnuFile_Caption; LANGmnuMark_Caption := LANGsvmnuMark_Caption; LANGmnuCommands_Caption := LANGsvmnuCommands_Caption; LANGmnuHelp_Caption := LANGsvmnuHelp_Caption; LANGmiExit_Caption := LANGsvmiExit_Caption; LANGmiSelectGroup_Caption := LANGsvmiSelectGroup_Caption; LANGmiUnselectGroup_Caption := LANGsvmiUnselectGroup_Caption; LANGmiSelectAll_Caption := LANGsvmiSelectAll_Caption; LANGmiUnselectAll_Caption := LANGsvmiUnselectAll_Caption; LANGmiInvertSelection_Caption := LANGsvmiInvertSelection_Caption; LANGmiRefresh_Caption := LANGsvmiRefresh_Caption; LANGmiAbout_Caption := LANGsvmiAbout_Caption; LANGColumn1_Caption := LANGsvColumn1_Caption; LANGColumn2_Caption := LANGsvColumn2_Caption; LANGColumn3_Caption := LANGsvColumn3_Caption; LANGColumn4_Caption := LANGsvColumn4_Caption; LANGColumn5_Caption := LANGsvColumn5_Caption; LANGExpandSelection := LANGsvExpandSelection; LANGShrinkSelection := LANGsvShrinkSelection; LANGNoMatchesFound := LANGsvNoMatchesFound; LANGNoFilesSelected := LANGsvNoFilesSelected; LANGSelectedFilesDirectories := LANGsvSelectedFilesDirectories; LANGDirectoryS := LANGsvDirectoryS; LANGFileS := LANGsvFileS; LANGDoYouReallyWantToDeleteTheS := LANGsvDoYouReallyWantToDeleteTheS; LANGDoYouReallyWantToDeleteTheSS := LANGsvDoYouReallyWantToDeleteTheSS; LANGCopyFiles := LANGsvCopyFiles; LANGMoveRenameFiles := LANGsvMoveRenameFiles; LANGCopyDFileDirectoriesTo := LANGsvCopyDFileDirectoriesTo; LANGMoveRenameDFileDirectoriesTo := LANGsvMoveRenameDFileDirectoriesTo; LANGCopySC := LANGsvCopySC; LANGMoveRenameSC := LANGsvMoveRenameSC; LANGQuickFind := LANGsvQuickFind; LANGAboutString := LANGsvAboutString; LANGAboutStringGnome := LANGsvAboutStringGnome; LANGDiskStatFmt := LANGsvDiskStatFmt; LANGDiskStatVolNameFmt := LANGsvDiskStatVolNameFmt; LANGStatusLineFmt := LANGsvStatusLineFmt; LANGPanelStrings[False] := LANGsvPanelStrings[False]; LANGPanelStrings[True] := LANGsvPanelStrings[True]; LANGDIR := LANGsvDIR; LANGErrorGettingListingForSPanel := LANGsvErrorGettingListingForSPanel; LANGErrorGettingListingForSPanelNoPath := LANGsvErrorGettingListingForSPanelNoPath; LANGErrorCreatingNewDirectorySInSPanel := LANGsvErrorCreatingNewDirectorySInSPanel; LANGErrorCreatingNewDirectorySInSPanelNoPath := LANGsvErrorCreatingNewDirectorySInSPanelNoPath; LANGTheFileDirectory := LANGsvTheFileDirectory; LANGCouldNotBeDeleted := LANGsvCouldNotBeDeleted; LANGCouldNotBeDeletedS := LANGsvCouldNotBeDeletedS; LANGUserCancelled := LANGsvUserCancelled; LANGTheDirectorySIsNotEmpty := LANGsvTheDirectorySIsNotEmpty; LANGCannotCopyFile := LANGsvCannotCopyFile; LANGCopyError := LANGsvCopyError; LANGMoveError := LANGsvMoveError; LANGOverwriteS := LANGsvOverwriteS; LANGWithFileS := LANGsvWithFileS; LANGOvewriteSBytesS := LANGsvOvewriteSBytesS; LANGTheFile := LANGsvTheFile; LANGCopy := LANGsvCopy; LANGMove := LANGsvMove; LANGTheDirectory := LANGsvTheDirectory; LANGTheSymbolicLink := LANGsvTheSymbolicLink; LANGCannotMoveFile := LANGsvCannotMoveFile; LANGCouldNotBeCreated := LANGsvCouldNotBeCreated; LANGCouldNotBeCreatedS := LANGsvCouldNotBeCreatedS; LANGFromS := LANGsvFromS; LANGToS := LANGsvToS; LANGCannotCopyFileToItself := LANGsvCannotCopyFileToItself; LANGMemoryAllocationFailed := LANGsvMemoryAllocationFailed; LANGCannotOpenSourceFile := LANGsvCannotOpenSourceFile; LANGCannotOpenDestinationFile := LANGsvCannotOpenDestinationFile; LANGCannotCloseDestinationFile := LANGsvCannotCloseDestinationFile; LANGCannotCloseSourceFile := LANGsvCannotCloseSourceFile; LANGCannotReadFromSourceFile := LANGsvCannotReadFromSourceFile; LANGCannotWriteToDestinationFile := LANGsvCannotWriteToDestinationFile; LANGUnknownException := LANGsvUnknownException; LANGNoAccess := LANGsvNoAccess; LANGUnknownError := LANGsvUnknownError; LANGCreateANewDirectory := LANGsvCreateANewDirectory; LANGEnterDirectoryName := LANGsvEnterDirectoryName; LANGOverwriteQuestion := LANGsvOverwriteQuestion; LANGOverwriteButton_Caption := LANGsvOverwriteButton_Caption; LANGOverwriteAllButton_Caption := LANGsvOverwriteAllButton_Caption; LANGSkipButton_Caption := LANGsvSkipButton_Caption; LANGOverwriteAllOlderButton_Caption := LANGsvOverwriteAllOlderButton_Caption; LANGSkipAllButton_Caption := LANGsvSkipAllButton_Caption; LANGRenameButton_Caption := LANGsvRenameButton_Caption; LANGAppendButton_Caption := LANGsvAppendButton_Caption; LANGRename := LANGsvRename; LANGRenameFile := LANGsvRenameFile; LANGIgnoreButton_Caption := LANGsvIgnoreButton_Caption; LANGProgress := LANGsvProgress; LANGCancel := LANGsvCancel; LANGDelete := LANGsvDelete; LANGSpecifyFileType := LANGsvSpecifyFileType; LANGRemoveDirectory := LANGsvRemoveDirectory; LANGDoYouWantToDeleteItWithAllItsFilesAndSubdirectories := LANGsvDoYouWantToDeleteItWithAllItsFilesAndSubdirectories; LANGRetry := LANGsvRetry; LANGDeleteButton_Caption := LANGsvDeleteButton_Caption; LANGAll := LANGsvAll; LANGCopyFilesSC := LANGsvCopyFilesSC; LANGAppendQuestion := LANGsvAppendQuestion; LANGPreparingList := LANGsvPreparingList; LANGYouMustSelectAValidFile := LANGsvYouMustSelectAValidFile; LANGmiVerifyChecksums := LANGsvmiVerifyChecksums; LANGVerifyChecksumsCaption := LANGsvVerifyChecksumsCaption; LANGCheckButtonCaptionCheck := LANGsvCheckButtonCaptionCheck; LANGCheckButtonCaptionStop := LANGsvCheckButtonCaptionStop; LANGFileListTooltip := LANGsvFileListTooltip; LANGFilenameColumnCaption := LANGsvFilenameColumnCaption; LANGTheFileSYouAreTryingToOpenIsQuiteBig := LANGsvTheFileSYouAreTryingToOpenIsQuiteBig; LANGAnErrorOccuredWhileInitializingMemoryBlock := LANGsvAnErrorOccuredWhileInitializingMemoryBlock; LANGAnErrorOccuredWhileOpeningFileSS := LANGsvAnErrorOccuredWhileOpeningFileSS; LANGAnErrorOccuredWhileReadingFileSS := LANGsvAnErrorOccuredWhileReadingFileSS; LANGChecksumNotChecked := LANGsvChecksumNotChecked; LANGChecksumChecking := LANGsvChecksumChecking; LANGChecksumInterrupted := LANGsvChecksumInterrupted; LANGChecksumDOK := LANGsvChecksumDOK; LANGmiCreateChecksumsCaption := LANGsvmiCreateChecksumsCaption; LANGYouMustSelectAtLeastOneFileToCalculateChecksum := LANGsvYouMustSelectAtLeastOneFileToCalculateChecksum; LANGCreateChecksumsCaption := LANGsvCreateChecksumsCaption; LANGCCHKSUMPage1Text := LANGsvCCHKSUMPage1Text; LANGCCHKSUMPage4Text := LANGsvCCHKSUMPage4Text; LANGCCHKSUMPage6Text := LANGsvCCHKSUMPage6Text; LANGCCHKSUMPage7Text := LANGsvCCHKSUMPage7Text; LANGCCHKSUMPage1Title := LANGsvCCHKSUMPage1Title; LANGCCHKSUMPage2Title := LANGsvCCHKSUMPage2Title; LANGCCHKSUMPage3Title := LANGsvCCHKSUMPage3Title; LANGCCHKSUMPage4Title := LANGsvCCHKSUMPage4Title; LANGCCHKSUMPage5Title := LANGsvCCHKSUMPage5Title; LANGCCHKSUMPage6Title := LANGsvCCHKSUMPage6Title; LANGCCHKSUMPage7Title := LANGsvCCHKSUMPage7Title; LANGCCHKSUMSFVFile := LANGsvCCHKSUMSFVFile; LANGCCHKSUMMD5sumFile := LANGsvCCHKSUMMD5sumFile; LANGCCHKSUMFileName := LANGsvCCHKSUMFileName; LANGCCHKSUMCreateSeparateChecksumFiles := LANGsvCCHKSUMCreateSeparateChecksumFiles; LANGCCHKSUMNowProcessingFileS := LANGsvCCHKSUMNowProcessingFileS; LANGCCHKSUMFinishCaption := LANGsvCCHKSUMFinishCaption; LANGCCHKSUMAreYouSureYouWantToAbortTheProcessing := LANGsvCCHKSUMAreYouSureYouWantToAbortTheProcessing; LANGCCHKSUMAnErrorOccuredWhileOpeningFileSS := LANGsvCCHKSUMAnErrorOccuredWhileOpeningFileSS; LANGCCHKSUMAnErrorOccuredWhileReadingFileSS := LANGsvCCHKSUMAnErrorOccuredWhileReadingFileSS; LANGCCHKSUMAnErrorOccuredWhileWritingFileSS := LANGsvCCHKSUMAnErrorOccuredWhileWritingFileSS; LANGAnErrorOccuredWhileWritingFileSS := LANGsvAnErrorOccuredWhileWritingFileSS; LANGTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt := LANGsvTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt; LANGTheTargetFileSCannotBeRemovedS := LANGsvTheTargetFileSCannotBeRemovedS; LANGMergeCaption := LANGsvMergeCaption; LANGPleaseInsertNextDiskOrGiveDifferentLocation := LANGsvPleaseInsertNextDiskOrGiveDifferentLocation; LANGMergeOfSSucceeded := LANGsvMergeOfSSucceeded; LANGWarningCreatedFileFailsCRCCheck := LANGsvWarningCreatedFileFailsCRCCheck; LANGMergeOfSSucceeded_NoCRCFileAvailable := LANGsvMergeOfSSucceeded_NoCRCFileAvailable; LANGMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory := LANGsvMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory; LANGMergeSC := LANGsvMergeSC; LANGmiSplitFileCaption := LANGsvmiSplitFileCaption; LANGmiMergeFilesCaption := LANGsvmiMergeFilesCaption; LANGSplitTheFileSToDirectory := LANGsvSplitTheFileSToDirectory; LANGSplitSC := LANGsvSplitSC; LANGSplitFile := LANGsvSplitFile; LANGBytesPerFile := LANGsvBytesPerFile; LANGAutomatic := LANGsvAutomatic; LANGDeleteFilesOnTargetDisk := LANGsvDeleteFilesOnTargetDisk; LANGSplitCaption := LANGsvSplitCaption; LANGCannotOpenFileS := LANGsvCannotOpenFileS; LANGCannotSplitTheFileToMoreThan999Parts := LANGsvCannotSplitTheFileToMoreThan999Parts; LANGThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem := LANGsvThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem; LANGThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem := LANGsvThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem; LANGAnErrorOccuredWhileOperationS := LANGsvAnErrorOccuredWhileOperationS; LANGSplitOfSSucceeded := LANGsvSplitOfSSucceeded; LANGSplitOfSFailed := LANGsvSplitOfSFailed; LANGmnuShow_Caption := LANGsvmnuShow_Caption; LANGmiShowDotFiles_Caption := LANGsvmiShowDotFiles_Caption; LANGTheFileYouAreTryingToOpenIsQuiteBig := LANGsvTheFileYouAreTryingToOpenIsQuiteBig; LANGCannotExecuteSPleaseCheckTheConfiguration := LANGsvCannotExecuteSPleaseCheckTheConfiguration; LANGEdit := LANGsvEdit; LANGEnterFilenameToEdit := LANGsvEnterFilenameToEdit; LANGmnuSettings_Caption := LANGsvmnuSettings_Caption; LANGmiFileTypes_Caption := LANGsvmiFileTypes_Caption; LANGThereIsNoApplicationAssociatedWithS := LANGsvThereIsNoApplicationAssociatedWithS; LANGErrorExecutingCommand := LANGsvErrorExecutingCommand; LANGEditFileTypesCaption := LANGsvEditFileTypesCaption; LANGTitleLabel_Caption := LANGsvTitleLabel_Caption; LANGExtensionsColumn := LANGsvExtensionsColumn; LANGDescriptionColumn := LANGsvDescriptionColumn; LANGFileTypesList := LANGsvFileTypesList; LANGActionName := LANGsvActionName; LANGCommand := LANGsvCommand; LANGSetDefaultActionButton_Caption := LANGsvSetDefaultActionButton_Caption; LANGRunInTerminalCheckBox_Caption := LANGsvRunInTerminalCheckBox_Caption; LANGAutodetectCheckBox_Caption := LANGsvAutodetectCheckBox_Caption; LANGBrowseButton_Caption := LANGsvBrowseButton_Caption; LANGCommandLabel_Caption := LANGsvCommandLabel_Caption; LANGDescriptionLabel_Caption := LANGsvDescriptionLabel_Caption; LANGFNameExtLabel_Caption := LANGsvFNameExtLabel_Caption; LANGNotebookPageExtensions := LANGsvNotebookPageExtensions; LANGNotebookPageActions := LANGsvNotebookPageActions; LANGDefault := LANGsvDefault; LANGCannotSaveFileTypeAssociationsBecauseOtherProcess := LANGsvCannotSaveFileTypeAssociationsBecauseOtherProcess; LANGDefaultColor := LANGsvDefaultColor; LANGIcon := LANGsvIcon; LANGBrowseForIcon := LANGsvBrowseForIcon; LANGSelectFileTypeColor := LANGsvSelectFileTypeColor; LANGColor := LANGsvColor; LANGmiChangePermissions_Caption := LANGsvmiChangePermissions_Caption; LANGmiChangeOwner_Caption := LANGsvmiChangeOwner_Caption; LANGmiCreateSymlink_Caption := LANGsvmiCreateSymlink_Caption; LANGmiEditSymlink_Caption := LANGsvmiEditSymlink_Caption; LANGChmodProgress := LANGsvChmodProgress; LANGChownProgress := LANGsvChownProgress; LANGYouMustSelectAValidSymbolicLink := LANGsvYouMustSelectAValidSymbolicLink; LANGPopupRunS := LANGsvPopupRunS; LANGPopupOpenS := LANGsvPopupOpenS; LANGPopupGoUp := LANGsvPopupGoUp; LANGPopupOpenWithS := LANGsvPopupOpenWithS; LANGPopupDefault := LANGsvPopupDefault; LANGPopupOpenWith := LANGsvPopupOpenWith; LANGPopupViewFile := LANGsvPopupViewFile; LANGPopupEditFile := LANGsvPopupEditFile; LANGPopupMakeSymlink := LANGsvPopupMakeSymlink; LANGPopupRename := LANGsvPopupRename; LANGPopupDelete := LANGsvPopupDelete; LANGDialogChangePermissions := LANGsvDialogChangePermissions; LANGCouldNotBeChmoddedS := LANGsvCouldNotBeChmoddedS; LANGDialogChangeOwner := LANGsvDialogChangeOwner; LANGCouldNotBeChownedS := LANGsvCouldNotBeChownedS; LANGDialogMakeSymlink := LANGsvDialogMakeSymlink; LANGDialogEditSymlink := LANGsvDialogEditSymlink; LANGFEditSymlink_Caption := LANGsvFEditSymlink_Caption; LANGFEditSymlink_SymbolicLinkFilename := LANGsvFEditSymlink_SymbolicLinkFilename; LANGFEditSymlink_SymbolicLinkPointsTo := LANGsvFEditSymlink_SymbolicLinkPointsTo; LANGFChmod_Caption := LANGsvFChmod_Caption; LANGFChmod_PermissionFrame := LANGsvFChmod_PermissionFrame; LANGFChmod_FileFrame := LANGsvFChmod_FileFrame; LANGFChmod_ApplyRecursivelyFor := LANGsvFChmod_ApplyRecursivelyFor; LANGFChmod_miAllFiles := LANGsvFChmod_miAllFiles; LANGFChmod_miDirectories := LANGsvFChmod_miDirectories; LANGFChmod_OctalLabel := LANGsvFChmod_OctalLabel; LANGFChmod_SUID := LANGsvFChmod_SUID; LANGFChmod_SGID := LANGsvFChmod_SGID; LANGFChmod_Sticky := LANGsvFChmod_Sticky; LANGFChmod_RUSR := LANGsvFChmod_RUSR; LANGFChmod_WUSR := LANGsvFChmod_WUSR; LANGFChmod_XUSR := LANGsvFChmod_XUSR; LANGFChmod_RGRP := LANGsvFChmod_RGRP; LANGFChmod_WGRP := LANGsvFChmod_WGRP; LANGFChmod_XGRP := LANGsvFChmod_XGRP; LANGFChmod_ROTH := LANGsvFChmod_ROTH; LANGFChmod_WOTH := LANGsvFChmod_WOTH; LANGFChmod_XOTH := LANGsvFChmod_XOTH; LANGFChmod_TextLabel := LANGsvFChmod_TextLabel; LANGFChmod_FileLabel := LANGsvFChmod_FileLabel; LANGFChown_Caption := LANGsvFChown_Caption; LANGFChown_OwnerFrame := LANGsvFChown_OwnerFrame; LANGFChown_GroupFrame := LANGsvFChown_GroupFrame; LANGFChown_FileFrame := LANGsvFChown_FileFrame; LANGFChown_ApplyRecursively := LANGsvFChown_ApplyRecursively; LANGFSymlink_Caption := LANGsvFSymlink_Caption; LANGFSymlink_ExistingFilename := LANGsvFSymlink_ExistingFilename; LANGFSymlink_SymlinkFilename := LANGsvFSymlink_SymlinkFilename; LANGmnuBookmarks_Caption := LANGsvmnuBookmarks_Caption; LANGmiAddBookmark_Caption := LANGsvmiAddBookmark_Caption; LANGmiEditBookmarks_Caption := LANGsvmiEditBookmarks_Caption; LANGBookmarkPopupDelete_Caption := LANGsvBookmarkPopupDelete_Caption; LANGmiPreferences_Caption := LANGsvmiPreferences_Caption; LANGTheCurrentDirectoryAlreadyExistsInTheBookmarksList := LANGsvTheCurrentDirectoryAlreadyExistsInTheBookmarksList; LANGSomeOtherInstanceChanged := LANGsvSomeOtherInstanceChanged; LANGPreferences_Caption := LANGsvPreferences_Caption; LANGPreferences_TitleLabel_Caption := LANGsvPreferences_TitleLabel_Caption; LANGPreferences_GeneralPage := LANGsvPreferences_GeneralPage; LANGPreferences_FontsPage := LANGsvPreferences_FontsPage; LANGPreferences_ColorsPage := LANGsvPreferences_ColorsPage; LANGPreferences_RowHeight := LANGsvPreferences_RowHeight; LANGPreferences_NumHistoryItems := LANGsvPreferences_NumHistoryItems; LANGPreferences_Default := LANGsvPreferences_Default; LANGPreferences_ClearReadonlyAttribute := LANGsvPreferences_ClearReadonlyAttribute; LANGPreferences_DisableMouseRenaming := LANGsvPreferences_DisableMouseRenaming; LANGPreferences_ShowFiletypeIconsInList := LANGsvPreferences_ShowFiletypeIconsInList; LANGPreferences_ExternalAppsLabel := LANGsvPreferences_ExternalAppsLabel; LANGPreferences_Viewer := LANGsvPreferences_Viewer; LANGPreferences_Editor := LANGsvPreferences_Editor; LANGPreferences_Terminal := LANGsvPreferences_Terminal; LANGPreferences_ListFont := LANGsvPreferences_ListFont; LANGPreferences_Change := LANGsvPreferences_Change; LANGPreferences_UseDefaultFont := LANGsvPreferences_UseDefaultFont; LANGPreferences_Foreground := LANGsvPreferences_Foreground; LANGPreferences_Background := LANGsvPreferences_Background; LANGPreferences_NormalItem := LANGsvPreferences_NormalItem; LANGPreferences_SetToDefaultToUseGTKThemeColors := LANGsvPreferences_SetToDefaultToUseGTKThemeColors; LANGPreferences_Cursor := LANGsvPreferences_Cursor; LANGPreferences_InactiveItem := LANGsvPreferences_InactiveItem; LANGPreferences_SelectedItem := LANGsvPreferences_SelectedItem; LANGPreferences_LinkItem := LANGsvPreferences_LinkItem; LANGPreferences_LinkItemHint := LANGsvPreferences_LinkItemHint; LANGPreferences_DotFileItem := LANGsvPreferences_DotFileItem; LANGPreferences_DotFileItemHint := LANGsvPreferences_DotFileItemHint; LANGPreferences_BrowseForApplication := LANGsvPreferences_BrowseForApplication; LANGPreferences_DefaultS := LANGsvPreferences_DefaultS; LANGPreferences_SelectFont := LANGsvPreferences_SelectFont; LANGBookmarkButton_Tooltip := LANGsvBookmarkButton_Tooltip; LANGUpButton_Tooltip := LANGsvUpButton_Tooltip; LANGRootButton_Tooltip := LANGsvRootButton_Tooltip; LANGHomeButton_Tooltip := LANGsvHomeButton_Tooltip; LANGLeftEqualButton_Tooltip := LANGsvLeftEqualButton_Tooltip; LANGRightEqualButton_Tooltip := LANGsvRightEqualButton_Tooltip; LANGmiShowDirectorySizes_Caption := LANGsvmiShowDirectorySizes_Caption; LANGmiTargetSource_Caption := LANGsvmiTargetSource_Caption; LANGFileTypeDirectory := LANGsvFileTypeDirectory; LANGFileTypeFile := LANGsvFileTypeFile; LANGFileTypeMetafile := LANGsvFileTypeMetafile; LANGPreferencesPanelsPage := LANGsvPreferencesPanelsPage; LANGPreferencesApplicationsPage := LANGsvPreferencesApplicationsPage; LANGPreferencesExperimentalPage := LANGsvPreferencesExperimentalPage; LANGPreferencesSelectAllDirectoriesCheckBox_Caption := LANGsvPreferencesSelectAllDirectoriesCheckBox_Caption; LANGPreferencesNewStyleAltOCheckBox_Caption := LANGsvPreferencesNewStyleAltOCheckBox_Caption; LANGPreferencesNewStyleAltOCheckBox_Tooltip := LANGsvPreferencesNewStyleAltOCheckBox_Tooltip; LANGPreferencesShowFuncButtonsCheckBox_Caption := LANGsvPreferencesShowFuncButtonsCheckBox_Caption; LANGPreferencesSizeFormatLabel_Caption := LANGsvPreferencesSizeFormatLabel_Caption; LANGPreferencesmiSizeFormat1 := LANGsvPreferencesmiSizeFormat1; LANGPreferencesmiSizeFormat6 := LANGsvPreferencesmiSizeFormat6; LANGPreferencesAutodetectXApp := LANGsvPreferencesAutodetectXApp; LANGPreferencesAlwaysRunInTerminal := LANGsvPreferencesAlwaysRunInTerminal; LANGPreferencesNeverRunInTerminal := LANGsvPreferencesNeverRunInTerminal; LANGPreferencesCmdLineBehaviourLabel_Caption := LANGsvPreferencesCmdLineBehaviourLabel_Caption; LANGPreferencesFeatures := LANGsvPreferencesFeatures; LANGPreferencesDisableMouseRename_Tooltip := LANGsvPreferencesDisableMouseRename_Tooltip; LANGPreferencesDisableFileTipsCheckBox_Caption := LANGsvPreferencesDisableFileTipsCheckBox_Caption; LANGPreferencesDisableFileTipsCheckBox_Tooltip := LANGsvPreferencesDisableFileTipsCheckBox_Tooltip; LANGPreferencesShow := LANGsvPreferencesShow; LANGPreferencesDirsInBoldCheckBox_Caption := LANGsvPreferencesDirsInBoldCheckBox_Caption; LANGPreferencesDisableDirectoryBracketsCheckBox_Caption := LANGsvPreferencesDisableDirectoryBracketsCheckBox_Caption; LANGPreferencesOctalPermissionsCheckBox_Caption := LANGsvPreferencesOctalPermissionsCheckBox_Caption; LANGPreferencesOctalPermissionsCheckBox_Tooltip := LANGsvPreferencesOctalPermissionsCheckBox_Tooltip; LANGPreferencesMovement := LANGsvPreferencesMovement; LANGPreferencesLynxLikeMotionCheckBox_Caption := LANGsvPreferencesLynxLikeMotionCheckBox_Caption; LANGPreferencesInsertMovesDownCheckBox_Caption := LANGsvPreferencesInsertMovesDownCheckBox_Caption; LANGPreferencesSpaceMovesDownCheckBox_Caption := LANGsvPreferencesSpaceMovesDownCheckBox_Caption; LANGPreferencesViewer := LANGsvPreferencesViewer; LANGPreferencesCommandSC := LANGsvPreferencesCommandSC; LANGPreferencesUseInternalViewer := LANGsvPreferencesUseInternalViewer; LANGPreferencesEditor := LANGsvPreferencesEditor; LANGPreferencesTerminal := LANGsvPreferencesTerminal; LANGPreferencesExperimentalFeatures := LANGsvPreferencesExperimentalFeatures; LANGPreferencesExperimentalWarningLabel_Caption := LANGsvPreferencesExperimentalWarningLabel_Caption; LANGPreferencesFocusRefreshCheckBox_Caption := LANGsvPreferencesFocusRefreshCheckBox_Caption; LANGPreferencesFocusRefreshCheckBox_Tooltip := LANGsvPreferencesFocusRefreshCheckBox_Tooltip; LANGPreferencesWMCompatModeCheckBox_Caption := LANGsvPreferencesWMCompatModeCheckBox_Caption; LANGPreferencesWMCompatModeCheckBox_Tooltip := LANGsvPreferencesWMCompatModeCheckBox_Tooltip; LANGPreferencesCompatUseLibcSystemCheckBox_Caption := LANGsvPreferencesCompatUseLibcSystemCheckBox_Caption; LANGPreferencesCompatUseLibcSystemCheckBox_Tooltip := LANGsvPreferencesCompatUseLibcSystemCheckBox_Tooltip; LANGmiSearchCaption2 := LANGsvmiSearchCaption2; LANGmiNoMounterBarCaption := LANGsvmiNoMounterBarCaption; LANGmiShowOneMounterBarCaption := LANGsvmiShowOneMounterBarCaption; LANGmiShowTwoMounterBarCaption := LANGsvmiShowTwoMounterBarCaption; LANGmnuNetworkCaption := LANGsvmnuNetworkCaption; LANGmiConnectionsCaption := LANGsvmiConnectionsCaption; LANGmiOpenConnectionCaption := LANGsvmiOpenConnectionCaption; LANGmiQuickConnectCaption := LANGsvmiQuickConnectCaption; LANGmnuPluginsCaption := LANGsvmnuPluginsCaption; LANGmiTestPluginCaption := LANGsvmiTestPluginCaption; LANGmiMounterSettingsCaption := LANGsvmiMounterSettingsCaption; LANGmiColumnsCaption := LANGsvmiColumnsCaption; LANGmiSavePositionCaption := LANGsvmiSavePositionCaption; LANGmiMountCaption := LANGsvmiMountCaption; LANGmiUmountCaption := LANGsvmiUmountCaption; LANGmiEjectCaption := LANGsvmiEjectCaption; LANGmiDuplicateTabCaption := LANGsvmiDuplicateTabCaption; LANGmiCloseTabCaption := LANGsvmiCloseTabCaption; LANGmiCloseAllTabsCaption := LANGsvmiCloseAllTabsCaption; LANGCannotDetermineDestinationEngine := LANGsvCannotDetermineDestinationEngine; LANGCannotLoadFile := LANGsvCannotLoadFile; LANGMountPointDevice := LANGsvMountPointDevice; LANGMountSC := LANGsvMountSC; LANGNoPluginsFound := LANGsvNoPluginsFound; LANGPluginAbout := LANGsvPluginAbout; LANGCouldntOpenURI := LANGsvCouldntOpenURI; LANGPluginAboutInside := LANGsvPluginAboutInside; LANGAreYouSureCloseAllTabs := LANGsvAreYouSureCloseAllTabs; LANGCouldntOpenURIArchive := LANGsvCouldntOpenURIArchive; LANGThereIsNoModuleAvailable := LANGsvThereIsNoModuleAvailable; LANGIgnoreError := LANGsvIgnoreError; LANGErrorMount := LANGsvErrorMount; LANGErrorUmount := LANGsvErrorUmount; LANGErrorEject := LANGsvErrorEject; LANGMounterPrefs_Caption := LANGsvMounterPrefs_Caption; LANGMounterPrefs_TitleLabelCaption := LANGsvMounterPrefs_TitleLabelCaption; LANGMounterPrefs_ListViewFrameCaption := LANGsvMounterPrefs_ListViewFrameCaption; LANGMounterPrefs_MountName := LANGsvMounterPrefs_MountName; LANGMounterPrefs_MountPoint := LANGsvMounterPrefs_MountPoint; LANGMounterPrefs_Device := LANGsvMounterPrefs_Device; LANGMounterPrefs_MoveUpButtonTooltip := LANGsvMounterPrefs_MoveUpButtonTooltip; LANGMounterPrefs_MoveDownButtonTooltip := LANGsvMounterPrefs_MoveDownButtonTooltip; LANGMounterPrefs_UseFSTabDefaultsCheckBox := LANGsvMounterPrefs_UseFSTabDefaultsCheckBox; LANGMounterPrefs_UseFSTabDefaultsCheckBoxTooltip := LANGsvMounterPrefs_UseFSTabDefaultsCheckBoxTooltip; LANGMounterPrefs_ToggleModeCheckBox := LANGsvMounterPrefs_ToggleModeCheckBox; LANGMounterPrefs_ToggleModeCheckBoxTooltip := LANGsvMounterPrefs_ToggleModeCheckBoxTooltip; LANGMounterPrefs_PropertiesFrameCaption := LANGsvMounterPrefs_PropertiesFrameCaption; LANGMounterPrefs_DisplayTextLabelCaption := LANGsvMounterPrefs_DisplayTextLabelCaption; LANGMounterPrefs_MountPointLabelCaption := LANGsvMounterPrefs_MountPointLabelCaption; LANGMounterPrefs_MountDeviceLabelCaption := LANGsvMounterPrefs_MountDeviceLabelCaption; LANGMounterPrefs_DeviceTypeLabelCaption := LANGsvMounterPrefs_DeviceTypeLabelCaption; LANGMounterPrefs_miLocalDiskCaption := LANGsvMounterPrefs_miLocalDiskCaption; LANGMounterPrefs_miRemovableCaption := LANGsvMounterPrefs_miRemovableCaption; LANGMounterPrefs_miCDCaption := LANGsvMounterPrefs_miCDCaption; LANGMounterPrefs_miFloppyCaption := LANGsvMounterPrefs_miFloppyCaption; LANGMounterPrefs_miNetworkCaption := LANGsvMounterPrefs_miNetworkCaption; LANGMounterPrefs_MountCommandLabelCaption := LANGsvMounterPrefs_MountCommandLabelCaption; LANGMounterPrefs_UmountCommandLabelCaption := LANGsvMounterPrefs_UmountCommandLabelCaption; LANGMounterPrefs_MountCommandEntryTooltip := LANGsvMounterPrefs_MountCommandEntryTooltip; LANGMounterPrefs_UmountCommandEntryTooltip := LANGsvMounterPrefs_UmountCommandEntryTooltip; LANGMounterPrefs_IconLabelCaption := LANGsvMounterPrefs_IconLabelCaption; LANGConnMgr_Caption := LANGsvConnMgr_Caption; LANGConnMgr_ConnectButton := LANGsvConnMgr_ConnectButton; LANGConnMgr_OpenConnection := LANGsvConnMgr_OpenConnection; LANGConnMgr_NameColumn := LANGsvConnMgr_NameColumn; LANGConnMgr_URIColumn := LANGsvConnMgr_URIColumn; LANGConnMgr_AddConnectionButtonCaption := LANGsvConnMgr_AddConnectionButtonCaption; LANGConnMgr_AddConnectionButtonTooltip := LANGsvConnMgr_AddConnectionButtonTooltip; LANGConnMgr_EditButtonCaption := LANGsvConnMgr_EditButtonCaption; LANGConnMgr_EditButtonTooltip := LANGsvConnMgr_EditButtonTooltip; LANGConnMgr_RemoveButtonCaption := LANGsvConnMgr_RemoveButtonCaption; LANGConnMgr_RemoveButtonTooltip := LANGsvConnMgr_RemoveButtonTooltip; LANGConnMgr_DoYouWantDelete := LANGsvConnMgr_DoYouWantDelete; LANGConnProp_FTP := LANGsvConnProp_FTP; LANGConnProp_SFTP := LANGsvConnProp_SFTP; LANGConnProp_SMB := LANGsvConnProp_SMB; LANGConnProp_HTTP := LANGsvConnProp_HTTP; LANGConnProp_HTTPS := LANGsvConnProp_HTTPS; LANGConnProp_Other := LANGsvConnProp_Other; LANGConnProp_Caption := LANGsvConnProp_Caption; LANGConnProp_VFSModule := LANGsvConnProp_VFSModule; LANGConnProp_URI := LANGsvConnProp_URI; LANGConnProp_URIEntryTooltip := LANGsvConnProp_URIEntryTooltip; LANGConnProp_DetailedInformations := LANGsvConnProp_DetailedInformations; LANGConnProp_Name := LANGsvConnProp_Name; LANGConnProp_Server := LANGsvConnProp_Server; LANGConnProp_Username := LANGsvConnProp_Username; LANGConnProp_UserNameEntryTooltip := LANGsvConnProp_UserNameEntryTooltip; LANGConnProp_Password := LANGsvConnProp_Password; LANGConnProp_TargetDirectory := LANGsvConnProp_TargetDirectory; LANGConnProp_ServiceType := LANGsvConnProp_ServiceType; LANGConnProp_MaskPassword := LANGsvConnProp_MaskPassword; LANGConnProp_MenuItemCaption := LANGsvConnProp_MenuItemCaption; LANGConnLogin_Caption := LANGsvConnLogin_Caption; LANGConnLogin_Login := LANGsvConnLogin_Login; LANGConnLogin_ExperimentalWarningLabelCaption := LANGsvConnLogin_ExperimentalWarningLabelCaption; LANGConnLogin_Username := LANGsvConnLogin_Username; LANGConnLogin_Password := LANGsvConnLogin_Password; LANGConnLogin_AnonymousCheckButton := LANGsvConnLogin_AnonymousCheckButton; LANGColumns_Caption := LANGsvColumns_Caption; LANGColumns_Title := LANGsvColumns_Title; LANGColumns_MoveUpButtonTooltip := LANGsvColumns_MoveUpButtonTooltip; LANGColumns_MoveDownButtonTooltip := LANGsvColumns_MoveDownButtonTooltip; LANGColumns_TitlesLongName := LANGsvColumns_TitlesLongName; LANGColumns_TitlesLongNameExt := LANGsvColumns_TitlesLongNameExt; LANGColumns_TitlesLongExt := LANGsvColumns_TitlesLongExt; LANGColumns_TitlesLongSize := LANGsvColumns_TitlesLongSize; LANGColumns_TitlesLongDateTime := LANGsvColumns_TitlesLongDateTime; LANGColumns_TitlesLongDate := LANGsvColumns_TitlesLongDate; LANGColumns_TitlesLongTime := LANGsvColumns_TitlesLongTime; LANGColumns_TitlesLongUser := LANGsvColumns_TitlesLongUser; LANGColumns_TitlesLongGroup := LANGsvColumns_TitlesLongGroup; LANGColumns_TitlesLongAttr := LANGsvColumns_TitlesLongAttr; LANGColumns_TitlesShortName := LANGsvColumns_TitlesShortName; LANGColumns_TitlesShortNameExt := LANGsvColumns_TitlesShortNameExt; LANGColumns_TitlesShortExt := LANGsvColumns_TitlesShortExt; LANGColumns_TitlesShortSize := LANGsvColumns_TitlesShortSize; LANGColumns_TitlesShortDateTime := LANGsvColumns_TitlesShortDateTime; LANGColumns_TitlesShortDate := LANGsvColumns_TitlesShortDate; LANGColumns_TitlesShortTime := LANGsvColumns_TitlesShortTime; LANGColumns_TitlesShortUser := LANGsvColumns_TitlesShortUser; LANGColumns_TitlesShortGroup := LANGsvColumns_TitlesShortGroup; LANGColumns_TitlesShortAttr := LANGsvColumns_TitlesShortAttr; LANGTestPlugin_Caption := LANGsvTestPlugin_Caption; LANGTestPlugin_Title := LANGsvTestPlugin_Title; LANGTestPlugin_ExperimentalWarningLabelCaption := LANGsvTestPlugin_ExperimentalWarningLabelCaption; LANGTestPlugin_Plugin := LANGsvTestPlugin_Plugin; LANGTestPlugin_Command := LANGsvTestPlugin_Command; LANGTestPlugin_Username := LANGsvTestPlugin_Username; LANGTestPlugin_Password := LANGsvTestPlugin_Password; LANGTestPlugin_AnonymousCheckButton := LANGsvTestPlugin_AnonymousCheckButton; LANGTestPlugin_NoPluginsFound := LANGsvTestPlugin_NoPluginsFound; LANGRemoteWait_Caption := LANGsvRemoteWait_Caption; LANGRemoteWait_OperationInProgress := LANGsvRemoteWait_OperationInProgress; LANGRemoteWait_ItemsFound := LANGsvRemoteWait_ItemsFound; LANGSearch_Bytes := LANGsvSearch_Bytes; LANGSearch_kB := LANGsvSearch_kB; LANGSearch_MB := LANGsvSearch_MB; LANGSearch_days := LANGsvSearch_days; LANGSearch_weeks := LANGsvSearch_weeks; LANGSearch_months := LANGsvSearch_months; LANGSearch_years := LANGsvSearch_years; LANGSearch_Caption := LANGsvSearch_Caption; LANGSearch_General := LANGsvSearch_General; LANGSearch_Advanced := LANGsvSearch_Advanced; LANGSearch_SearchResults := LANGsvSearch_SearchResults; LANGSearch_SearchFor := LANGsvSearch_SearchFor; LANGSearch_FileMaskEntryTooltip := LANGsvSearch_FileMaskEntryTooltip; LANGSearch_SearchIn := LANGsvSearch_SearchIn; LANGSearch_SearchArchivesCheckButton := LANGsvSearch_SearchArchivesCheckButton; LANGSearch_FindText := LANGsvSearch_FindText; LANGSearch_FindTextEntryTooltip := LANGsvSearch_FindTextEntryTooltip; LANGSearch_CaseSensitiveCheckButton := LANGsvSearch_CaseSensitiveCheckButton; LANGSearch_StayCurrentFSCheckButton := LANGsvSearch_StayCurrentFSCheckButton; LANGSearch_CaseSensitiveMatchCheckButton := LANGsvSearch_CaseSensitiveMatchCheckButton; LANGSearch_Size := LANGsvSearch_Size; LANGSearch_Date := LANGsvSearch_Date; LANGSearch_BiggerThan := LANGsvSearch_BiggerThan; LANGSearch_SmallerThan := LANGsvSearch_SmallerThan; LANGSearch_ModifiedBetweenRadioButton := LANGsvSearch_ModifiedBetweenRadioButton; LANGSearch_NotModifiedAfterRadioButton := LANGsvSearch_NotModifiedAfterRadioButton; LANGSearch_ModifiedLastRadioButton := LANGsvSearch_ModifiedLastRadioButton; LANGSearch_ModifiedNotLastRadionButton := LANGsvSearch_ModifiedNotLastRadionButton; LANGSearch_ModifiedBetweenEntry1 := LANGsvSearch_ModifiedBetweenEntry1; LANGSearch_ViewButtonCaption := LANGsvSearch_ViewButtonCaption; LANGSearch_NewSearchButtonCaption := LANGsvSearch_NewSearchButtonCaption; LANGSearch_GoToFileButtonCaption := LANGsvSearch_GoToFileButtonCaption; LANGSearch_FeedToListboxButtonCaption := LANGsvSearch_FeedToListboxButtonCaption; LANGSearch_StatusSC := LANGsvSearch_StatusSC; LANGSearch_Ready := LANGsvSearch_Ready; LANGSearch_PreparingToSearch := LANGsvSearch_PreparingToSearch; LANGSearch_SearchInProgress := LANGsvSearch_SearchInProgress; LANGSearch_UserCancelled := LANGsvSearch_UserCancelled; LANGSearch_SearchFinished := LANGsvSearch_SearchFinished; LANGSearch_FilesFound := LANGsvSearch_FilesFound; LANGSearch_And := LANGsvSearch_And; LANGCloseOpenConnection := LANGsvCloseOpenConnection; LANGDuplicateTabWarning := LANGsvDuplicateTabWarning; LANGDontShowAgain := LANGsvDontShowAgain; LANGSwitchOtherPanelWarning := LANGsvSwitchOtherPanelWarning; LANGOpenConnectionsWarning := LANGsvOpenConnectionsWarning; LANGmiDisconnect_Caption := LANGsvmiDisconnect_Caption; LANGDisconnectButton_Tooltip := LANGsvDisconnectButton_Tooltip; LANGLeaveArchiveButton_Tooltip := LANGsvLeaveArchiveButton_Tooltip; LANGOpenTerminalButton_Tooltip := LANGsvOpenTerminalButton_Tooltip; LANGOpenTerminalButton_Caption := LANGsvOpenTerminalButton_Caption; LANGShowTextUIDsCheckBox_Caption := LANGsvShowTextUIDsCheckBox_Caption; LANGShowTextUIDsCheckBox_Tooltip := LANGsvShowTextUIDsCheckBox_Tooltip; LANGmiNewTab_Caption := LANGsvmiNewTab_Caption; LANGFilePopupMenu_Properties := LANGsvFilePopupMenu_Properties; LANGCommandEntry_Tooltip := LANGsvCommandEntry_Tooltip; LANGmiFiles_Caption := LANGsvmiFiles_Caption; LANGPasswordButton_Tooltip := LANGsvPasswordButton_Tooltip; LANGHandleRunFromArchive_Bytes := LANGsvHandleRunFromArchive_Bytes; LANGHandleRunFromArchive_FileTypeDesc_Unknown := LANGsvHandleRunFromArchive_FileTypeDesc_Unknown; LANGHandleRunFromArchive_NotAssociated := LANGsvHandleRunFromArchive_NotAssociated; LANGHandleRunFromArchive_SelfExecutable := LANGsvHandleRunFromArchive_SelfExecutable; LANGHandleRunFromArchive_CouldntCreateTemporaryDirectory := LANGsvHandleRunFromArchive_CouldntCreateTemporaryDirectory; LANGFRunFromVFS_Caption := LANGsvFRunFromVFS_Caption; LANGFRunFromVFS_TitleLabel := LANGsvFRunFromVFS_TitleLabel; LANGFRunFromVFS_FileNameLabel := LANGsvFRunFromVFS_FileNameLabel; LANGFRunFromVFS_FileTypeLabel := LANGsvFRunFromVFS_FileTypeLabel; LANGFRunFromVFS_SizeLabel := LANGsvFRunFromVFS_SizeLabel; LANGFRunFromVFS_PackedSizeLabel := LANGsvFRunFromVFS_PackedSizeLabel; LANGFRunFromVFS_DateLabel := LANGsvFRunFromVFS_DateLabel; LANGFRunFromVFS_InfoLabel := LANGsvFRunFromVFS_InfoLabel; LANGFRunFromVFS_OpensWithLabel := LANGsvFRunFromVFS_OpensWithLabel; LANGFRunFromVFS_ExecuteButton := LANGsvFRunFromVFS_ExecuteButton; LANGFRunFromVFS_ExecuteAllButton := LANGsvFRunFromVFS_ExecuteAllButton; LANGFSetPassword_Caption := LANGsvFSetPassword_Caption; LANGFSetPassword_Label1_Caption := LANGsvFSetPassword_Label1_Caption; LANGFSetPassword_Label2_Caption := LANGsvFSetPassword_Label2_Caption; LANGFSetPassword_ShowPasswordCheckButton := LANGsvFSetPassword_ShowPasswordCheckButton; LANGCopyFileNamesToClipboard := LANGsvCopyFileNamesToClipboard; LANGCopyFullPathNamesToClipboard := LANGsvCopyFullPathNamesToClipboard; LANGCopyPathToClipboard := LANGsvCopyPathToClipboard; LANGPreferences_DateFormatLabel_Caption := LANGsvPreferences_DateFormatLabel_Caption; LANGPreferences_System := LANGsvPreferences_System; LANGPreferences_Custom := LANGsvPreferences_Custom; LANGPreferences_CustomDateFormatEntry_Tooltip := LANGsvPreferences_CustomDateFormatEntry_Tooltip; LANGPreferences_TimeFormatLabel_Caption := LANGsvPreferences_TimeFormatLabel_Caption; LANGPreferences_CustomTimeFormatEntry_Tooltip := LANGsvPreferences_CustomTimeFormatEntry_Tooltip; LANGPreferences_DateTimeFormatLabel_Caption := LANGsvPreferences_DateTimeFormatLabel_Caption; LANGPreferences_QuickRenameSkipExtCheckBox := LANGsvPreferences_QuickRenameSkipExtCheckBox; LANGPreferences_QuickRenameSkipExtCheckBox_Tooltip := LANGsvPreferences_QuickRenameSkipExtCheckBox_Tooltip; LANGPreferences_SortDirectoriesLikeFilesCheckBox := LANGsvPreferences_SortDirectoriesLikeFilesCheckBox; LANGPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip := LANGsvPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip; LANGPreferences_QuickSearchLabel_Caption := LANGsvPreferences_QuickSearchLabel_Caption; LANGPreferences_QuickSearchOptionMenu_Tooltip := LANGsvPreferences_QuickSearchOptionMenu_Tooltip; LANGPreferences_QuickSearch_Option1 := LANGsvPreferences_QuickSearch_Option1; LANGPreferences_QuickSearch_Option2 := LANGsvPreferences_QuickSearch_Option2; LANGPreferences_QuickSearch_Option3 := LANGsvPreferences_QuickSearch_Option3; LANGPreferences_QuickSearch_Option4 := LANGsvPreferences_QuickSearch_Option4; LANGPreferences_TempPathLabel_Caption := LANGsvPreferences_TempPathLabel_Caption; LANGPreferences_VFSTempPathLabel_Caption := LANGsvPreferences_VFSTempPathLabel_Caption; LANGPreferences_VFSTempPathEntry_Tooltip := LANGsvPreferences_VFSTempPathEntry_Tooltip; LANGPreferences_RightClickSelectCheckBox := LANGsvPreferences_RightClickSelectCheckBox; LANGPreferences_RightClickSelectCheckBox_Tooltip := LANGsvPreferences_RightClickSelectCheckBox_Tooltip; LANGGtkMountOperation_ConnectAnonymously := LANGsvGtkMountOperation_ConnectAnonymously; LANGGtkMountOperation_ConnectAsUser := LANGsvGtkMountOperation_ConnectAsUser; LANGGtkMountOperation_Username := LANGsvGtkMountOperation_Username; LANGGtkMountOperation_Domain := LANGsvGtkMountOperation_Domain; LANGGtkMountOperation_Password := LANGsvGtkMountOperation_Password; LANGGtkMountOperation_DoNotSavePassword := LANGsvGtkMountOperation_DoNotSavePassword; LANGGtkMountOperation_ForgetPasswordImmediately := LANGsvGtkMountOperation_ForgetPasswordImmediately; LANGGtkMountOperation_RememberPasswordUntilYouLogout := LANGsvGtkMountOperation_RememberPasswordUntilYouLogout; LANGGtkMountOperation_SavePasswordInConnectionManager := LANGsvGtkMountOperation_SavePasswordInConnectionManager; LANGGtkMountOperation_RememberForever := LANGsvGtkMountOperation_RememberForever; LANGFSymlink_RelativePath := LANGsvFSymlink_RelativePath; LANGFConnectionManager_DuplicateButton_Caption := LANGsvFConnectionManager_DuplicateButton_Caption; LANGFConnectionManager_DuplicateButton_Tooltip := LANGsvFConnectionManager_DuplicateButton_Tooltip; LANGFConnectionManager_DoNotSavePasswordsCheckBox_Label := LANGsvFConnectionManager_DoNotSavePasswordsCheckBox_Label; LANGFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip := LANGsvFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip; LANGFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label := LANGsvFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label; LANGFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip := LANGsvFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip; LANGFConnectionManager_DuplicateMenuItem_Caption := LANGsvFConnectionManager_DuplicateMenuItem_Caption; LANGFQuickConnect_Caption := LANGsvFQuickConnect_Caption; LANGFQuickConnect_TitleLabel_Caption := LANGsvFQuickConnect_TitleLabel_Caption; LANGFQuickConnect_ConnectToURILabel_Caption := LANGsvFQuickConnect_ConnectToURILabel_Caption; LANGLinkToS := LANGsvLinkToS; LANGOpenDirectoryInBackgroundTab := LANGsvOpenDirectoryInBackgroundTab; LANGTheActiveConnectionHasNotBeenSaved := LANGsvTheActiveConnectionHasNotBeenSaved; LANGTheArchiveIsEncryptedAndRequiresPassword := LANGsvTheArchiveIsEncryptedAndRequiresPassword; end; initialization AddTranslation('sv_SE', @SetTranslation); AddTranslation('SV', @SetTranslation); end. tuxcmd-0.6.70+dfsg/translations/UTranslation_IT.pas0000644000175000017500000025126111300022643021310 0ustar salvisalvi(* Tux Commander - UTranslation_IT - Italian Localization constants Copyright (C) 2007 by Francesco Turco Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UTranslation_IT; interface implementation uses ULocale; const LANGitF2Button_Caption = 'F2 - Rinomina'; LANGitF3Button_Caption = 'F3 - Visualizza'; LANGitF4Button_Caption = 'F4 - Modifica'; LANGitF5Button_Caption = 'F5 - Copia'; LANGitF6Button_Caption = 'F6 - Sposta'; LANGitF7Button_Caption = 'F7 - CreaDir'; LANGitF8Button_Caption = 'F8 - Elimina'; LANGitmnuFile_Caption = '_File'; LANGitmnuMark_Caption = '_Marca'; LANGitmnuCommands_Caption = '_Comandi'; LANGitmnuHelp_Caption = '_Aiuto'; LANGitmiExit_Caption = 'E_sci'; LANGitmiSelectGroup_Caption = 'Seleziona _Gruppo...'; LANGitmiUnselectGroup_Caption = '_Deseleziona Gruppo...'; LANGitmiSelectAll_Caption = '_Seleziona Tutto'; LANGitmiUnselectAll_Caption = 'D_eseleziona Tutto'; LANGitmiInvertSelection_Caption = '_Inverti Selezione'; LANGitmiRefresh_Caption = '_Aggiorna'; LANGitmiAbout_Caption = '_Informazioni...'; LANGitColumn1_Caption = 'Nome'; LANGitColumn2_Caption = 'Est'; LANGitColumn3_Caption = 'Dim'; LANGitColumn4_Caption = 'Data'; LANGitColumn5_Caption = 'Attr'; LANGitExpandSelection = 'Espandi selezione'; LANGitShrinkSelection = 'Shrink selection'; LANGitNoMatchesFound = 'Nessuna occorrenza trovata'; LANGitNoFilesSelected = 'Nessun file selezionato!'; LANGitSelectedFilesDirectories = '%d file/directory selezionate'; LANGitDirectoryS = 'directory %s'; LANGitFileS = 'file %s'; LANGitDoYouReallyWantToDeleteTheS = 'Vuoi veramente eliminare %s ?'; LANGitDoYouReallyWantToDeleteTheSS = 'Vuoi veramente eliminare %s ?'#10'%s'; LANGitCopyFiles = 'Copia file'; LANGitMoveRenameFiles = 'Sposta/Rinomina file'; LANGitCopyDFileDirectoriesTo = 'Copia %d file/directory in'; LANGitMoveRenameDFileDirectoriesTo = 'Sposta/Rinomina %d file/directory in'; LANGitCopySC = 'Copia:'; LANGitMoveRenameSC = 'Sposta/Rinomina:'; LANGitQuickFind = ' Ricerca Veloce:'; LANGitAboutString = 'Tux Commander'#10'Versione %s'#10'Compilato il: %s'#10#10'Copyright (c) 2008 Tomas Bzatek'#10'E-mail: tbzatek@users.sourceforge.net'#10'Sito WEB: http://tuxcmd.sourceforge.net/'; LANGitAboutStringGnome = 'versione %s'#10'Compilato il: %s'#10'Sito WEB: http://tuxcmd.sourceforge.net/'; LANGitDiskStatFmt = '%s di %s liberi'; LANGitDiskStatVolNameFmt = '[%s] %s di %s liberi'; LANGitStatusLineFmt = '%s di %s in %d di %d file selezionati'; LANGitPanelStrings : array[boolean] of string = ('destra', 'sinistra'); LANGitDIR = ''; LANGitErrorGettingListingForSPanel = 'Impossibile visualizzare il contenuto del pannello %s:'#10' %s'#10#10'Percorso = ''%s'''; LANGitErrorGettingListingForSPanelNoPath = 'Impossibile visualizzare il contenuto del pannelo %s:'#10' %s'; LANGitErrorCreatingNewDirectorySInSPanel = 'Impossibile creare la nuova directory ''%s'' nel pannello %s:'#10' %s'; LANGitErrorCreatingNewDirectorySInSPanelNoPath = 'Impossibile creare una nuova directory nel pannello %s:'#10' %s'; LANGitTheFileDirectory = 'Il file/directory'; LANGitCouldNotBeDeleted = 'non può essere eliminato'; LANGitCouldNotBeDeletedS = 'non può essere eliminato: %s'; LANGitUserCancelled = 'Azione interrotta dall''utente!'; LANGitTheDirectorySIsNotEmpty = 'La directory %s non è vuota!'; LANGitCannotCopyFile = 'Impossibile copiare il file'; LANGitCopyError = 'Errore nella copiatura'; LANGitMoveError = 'Errore nello spostamento'; LANGitOverwriteS = 'Sovrascrivere: %s'; LANGitWithFileS = 'Con il file: %s'; LANGitOvewriteSBytesS = '%s byte, %s'; LANGitTheFile = 'Il file'; LANGitCopy = 'Copia'; LANGitMove = 'Sposta'; LANGitTheDirectory = 'La directory'; LANGitTheSymbolicLink = 'Il link simbolico'; LANGitCannotMoveFile = 'Impossibile spostare il file'; LANGitCouldNotBeCreated = 'non può essere creato'; LANGitCouldNotBeCreatedS = 'non può essere creato: %s'; LANGitFromS = 'Da: %s'; LANGitToS = 'A: %s'; LANGitCannotCopyFileToItself = 'Impossibile copiare un file verso se stesso'; LANGitMemoryAllocationFailed = 'Errore nell''allocazione della memoria:'; LANGitCannotOpenSourceFile = 'Impossibile aprire il file di partenza'; LANGitCannotOpenDestinationFile = 'Impossibile aprire il file di destinazione'; LANGitCannotCloseDestinationFile = 'Impossibile chiudere il file di destinazione'; LANGitCannotCloseSourceFile = 'Impossibile chiudere il file di partenza'; LANGitCannotReadFromSourceFile = 'Impossibile leggere dal file di partenza'; LANGitCannotWriteToDestinationFile = 'Impossibile scrivere sul file di destinazione'; LANGitUnknownException = 'Eccezione sconosciuta'; LANGitNoAccess = 'Nessun accesso'; LANGitUnknownError = 'Errore sconosciuto'; LANGitCreateANewDirectory = 'Crea una nuova directory'; LANGitEnterDirectoryName = 'Digita il nome della _directory:'; LANGitOverwriteQuestion = 'Conferma sovrascrittura'; LANGitOverwriteButton_Caption = '_Sovrascrivi'; LANGitOverwriteAllButton_Caption = 'Sovrascrivi _tutti'; LANGitSkipButton_Caption = '_Salta'; LANGitOverwriteAllOlderButton_Caption = 'Sovrascrivi tutti i più _vecchi'; LANGitSkipAllButton_Caption = 'S_alta tutti'; LANGitRenameButton_Caption = '_Rinomina'; LANGitAppendButton_Caption = 'A_ggiungi'; LANGitRename = 'Rinomina'; LANGitRenameFile = 'Rinomina il file ''%s'' in'; LANGitIgnoreButton_Caption = '_Ignora'; LANGitProgress = 'Progresso'; LANGitCancel = '_Annulla'; LANGitDelete = 'Elimina:'; LANGitSpecifyFileType = '_Specifica il tipo di file:'; LANGitRemoveDirectory = 'Rimuovi directory'; LANGitDoYouWantToDeleteItWithAllItsFilesAndSubdirectories = 'Vuoi veramente eliminarla (compresi i file e le directory in essa contenuti)?'; LANGitRetry = '_Riprova'; LANGitDeleteButton_Caption = '_Elimina'; LANGitAll = '_Tutti'; LANGitCopyFilesSC = 'Copia i file:'; LANGitAppendQuestion = 'Vuoi veramente aggiungere il file ''%s'' a ''%s''?'; LANGitPreparingList = 'Preparazione della lista...'; LANGitYouMustSelectAValidFile = 'Devi selezionare un file valido!'; LANGitmiVerifyChecksums = '_Verifica le checksum'; LANGitVerifyChecksumsCaption = 'Verifica le checksum'; LANGitCheckButtonCaptionCheck = '_Controlla'; LANGitCheckButtonCaptionStop = '_Annulla'; LANGitFileListTooltip = '[?] - Non controllati'#10'[OK] - Checksum OK'#10'[ERR] - Checksum ERRATO'#10'[N/A] - File non disponibile'; LANGitFilenameColumnCaption = 'Nome del file'; LANGitTheFileSYouAreTryingToOpenIsQuiteBig = 'Il file ''%s'' che stai cercando di aprire è molto grosso (%s byte). Potrebbe non essere un file di checksum valido.'#10#10'Vuoi aprirlo comunque?'; LANGitAnErrorOccuredWhileInitializingMemoryBlock = 'Errore nell''inizializzazione dei blocchi di memoria. Chiudi qualche programma e prova ancora.'; LANGitAnErrorOccuredWhileOpeningFileSS = 'Errore nell''apertura del file ''%s'':'#10' %s'; LANGitAnErrorOccuredWhileReadingFileSS = 'Errore nella lettura del file ''%s'':'#10' %s'; LANGitChecksumNotChecked = 'Status: Non controllato'; LANGitChecksumChecking = 'Status: Controllo in corso...'; LANGitChecksumInterrupted = 'Status: Interrotto'; LANGitChecksumDOK = 'Status: %d%% OK'; LANGitmiCreateChecksumsCaption = '_Crea checksum...'; LANGitYouMustSelectAtLeastOneFileToCalculateChecksum = 'Devi selezionare almeno un file per poterne calcolare la checksum!'; LANGitCreateChecksumsCaption = 'Crea checksum'; LANGitCCHKSUMPage1Text = 'Stai per creare la checksum dei'#10'file selezionati. Se hai dimenticato di selezionare'#10'qualche file, chiudi questo wizard e'#10'riprova.'; LANGitCCHKSUMPage4Text = 'Il wizard è pronto per calcolare la checksum dei'#10'file selezionati. Questa operazione può richiedere alcuni minuti.'#10'Premi Continua per continuare.'; LANGitCCHKSUMPage6Text = 'Ci sono stati degli errori nel calcolare la checksum:'; LANGitCCHKSUMPage7Text = 'La creazione della checksum è terminata e'#10'i tuoi file sono pronti.'#10#10'Clicca "Fine" per uscire.'; LANGitCCHKSUMPage1Title = 'Prepara i file per la checksum'; LANGitCCHKSUMPage2Title = 'Seleziona il tipo di checksum'; LANGitCCHKSUMPage3Title = 'Scegli il nome del file'; LANGitCCHKSUMPage4Title = 'Pronto per controllare'; LANGitCCHKSUMPage5Title = 'Processo in corso...'; LANGitCCHKSUMPage6Title = 'Errore!'; LANGitCCHKSUMPage7Title = 'Finito'; LANGitCCHKSUMSFVFile = 'File SFV'; LANGitCCHKSUMMD5sumFile = 'File MD5'; LANGitCCHKSUMFileName = '_Nome del file:'; LANGitCCHKSUMCreateSeparateChecksumFiles = 'Crea file di checksum _separati'; LANGitCCHKSUMNowProcessingFileS = 'Sto processando il file: %s'; LANGitCCHKSUMFinishCaption = '_Fine'; LANGitCCHKSUMAreYouSureYouWantToAbortTheProcessing = 'Sei veramente sicuro di voler interrompere il processo?'; LANGitCCHKSUMAnErrorOccuredWhileOpeningFileSS = 'Errore nell''apertura del file ''%s'': %s'#10; LANGitCCHKSUMAnErrorOccuredWhileReadingFileSS = 'Errore nella lettura del file ''%s'': %s'#10; LANGitCCHKSUMAnErrorOccuredWhileWritingFileSS = 'Errore nella scrittura del file ''%s'': %s'#10; LANGitAnErrorOccuredWhileWritingFileSS = 'Errore nella scrittura del file ''%s'':'#10' %s'; LANGitTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt = 'Il file di destinazione ''%s'' esiste già. Vuoi sovrascriverlo?'; LANGitTheTargetFileSCannotBeRemovedS = 'Il file di destinazione ''%s'' non può essere rimosso: %s'; LANGitMergeCaption = 'Fusione'; LANGitPleaseInsertNextDiskOrGiveDifferentLocation = 'Inserisci il prossimo disco oppure indica una diversa posizione:'; LANGitMergeOfSSucceeded = 'La fusione di ''%s'' ha avuto successo (checksum CRC OK).'; LANGitWarningCreatedFileFailsCRCCheck = 'Attenzione: il file creato non ha superato il test CRC!'; LANGitMergeOfSSucceeded_NoCRCFileAvailable = 'La fusione di ''%s'' ha avuto successo (il file CRC non è disponibile).'; LANGitMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory = 'Fondi ''%s'' e tutti i file con nome crescente nella seguente directory:'; LANGitMergeSC = 'Fondi:'; LANGitmiSplitFileCaption = '_Dividi File...'; LANGitmiMergeFilesCaption = '_Fondi File...'; LANGitSplitTheFileSToDirectory = '_Dividi il file ''%s'' nella directory:'; LANGitSplitSC = 'Dividi:'; LANGitSplitFile = 'Dividi il file'; LANGitBytesPerFile = '_Byte per file:'; LANGitAutomatic = 'Automatico'; LANGitDeleteFilesOnTargetDisk = '_Elimina i file dal disco di destinazione (per supporti rimovibili)'; LANGitSplitCaption = 'Dividi'; LANGitCannotOpenFileS = 'Impossibile aprire il file ''%s'''; LANGitCannotSplitTheFileToMoreThan999Parts = 'Impossibile suddividere il file in più di 999 parti!'; LANGitThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem = 'Ci sono alcuni file nella directory di destinazione:'#10'%s'#10'Vuoi veramente eliminarli?'; LANGitThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem = 'Ci sono %d file nella directory di destinazione. Vuoi veramente eliminarli?'; LANGitAnErrorOccuredWhileOperationS = 'Errore durante l''operazione: %s'; LANGitSplitOfSSucceeded = 'La suddivisione di ''%s'' ha avuto successo.'; LANGitSplitOfSFailed = 'La suddivisione di ''%s'' è fallita!'; LANGitmnuShow_Caption = 'Mostra'; LANGitmiShowDotFiles_Caption = 'Mostra i _dot files'; LANGitTheFileYouAreTryingToOpenIsQuiteBig = 'Il file che stai per aprire è molto grande. Aprirlo in un''applicazione esterna (come gedit) può causare il rallentamento del sistema.'#10'Vuoi veramente continuare?'; LANGitCannotExecuteSPleaseCheckTheConfiguration = 'Impossibile eseguire ''%s''. Controlla la configurazione oppure imposta correttamente l''associazione dei file.'; LANGitEdit = 'Modifica'; LANGitEnterFilenameToEdit = '_Digita il nome del file da modificare:'; LANGitmnuSettings_Caption = 'I_mpostazioni'; LANGitmiFileTypes_Caption = '_Tipi di file...'; LANGitThereIsNoApplicationAssociatedWithS = 'Non esiste alcuna applicazione associata a "%s".'#10#10'Puoi configurare Tux Commander in modo da associare un''applicazione ad un tipo di file. Vuoi associare un''applicazione a questo tipo di file?'; LANGitErrorExecutingCommand = 'Errore nell''esecuzione del comando!'; LANGitEditFileTypesCaption = 'Modifica i Tipi di File'; LANGitTitleLabel_Caption = 'Configurazione dei Tipi di File'; LANGitExtensionsColumn = 'Estensioni'; LANGitDescriptionColumn = 'Descrizione'; LANGitFileTypesList = 'Lista dei tipi di file'; LANGitActionName = 'Nome dell''azione'; LANGitCommand = 'Comando'; LANGitSetDefaultActionButton_Caption = '_Imposta come predefinito'; LANGitRunInTerminalCheckBox_Caption = 'Esegui nel _Terminale'; LANGitAutodetectCheckBox_Caption = 'Rileva automaticamente applicazioni _grafiche'; LANGitBrowseButton_Caption = '_Esplora...'; LANGitCommandLabel_Caption = 'Co_mando:'; LANGitDescriptionLabel_Caption = 'D_escrizione:'; LANGitFNameExtLabel_Caption = 'A_ggiungi estensione:'; LANGitNotebookPageExtensions = 'Tipo di File'; LANGitNotebookPageActions = 'Azioni'; LANGitDefault = ' (predefinito)'; LANGitCannotSaveFileTypeAssociationsBecauseOtherProcess = 'Impossibile memorizzare l''associazione al tipo di file in quanto un altro processo l''ha aggiorna nel frattempo.'; LANGitDefaultColor = 'Colore P_redefinito'; LANGitIcon = '_Icona:'; LANGitBrowseForIcon = 'Ricerca un''icona'; LANGitSelectFileTypeColor = 'Seleziona un colore per il tipo di file'; LANGitColor = 'Co_lore:'; LANGitmiChangePermissions_Caption = 'Cambia i Per_messi...'; LANGitmiChangeOwner_Caption = 'Cambia il _Proprietario/Gruppo...'; LANGitmiCreateSymlink_Caption = 'Crea un link Sim_bolico...'; LANGitmiEditSymlink_Caption = '_Modifica link Simbolico...'; LANGitChmodProgress = 'Cambia i permessi:'; LANGitChownProgress = 'Cambia il proprietario:'; LANGitYouMustSelectAValidSymbolicLink = 'Devi selezionare un link simbolico valido!'; LANGitPopupRunS = 'E_segui %s'; LANGitPopupOpenS = 'A_pri %s'; LANGitPopupGoUp = '_Vai su'; LANGitPopupOpenWithS = 'Apri con %s'; LANGitPopupDefault = ' (predefinito)'; LANGitPopupOpenWith = 'A_pri con...'; LANGitPopupViewFile = '_Visualizza file'; LANGitPopupEditFile = 'Modifica file'; LANGitPopupMakeSymlink = 'Crea link _simbolico'; LANGitPopupRename = '_Rinomina'; LANGitPopupDelete = '_Elimina'; LANGitDialogChangePermissions = 'Cambia i permessi'; LANGitCouldNotBeChmoddedS = 'impossibile eseguire il comando chmod: %s'; LANGitDialogChangeOwner = 'Cambia proprietario'; LANGitCouldNotBeChownedS = 'impossibile eseguire il comando chown: %s'; LANGitDialogMakeSymlink = 'Crea un link simbolico'; LANGitDialogEditSymlink = 'Modifica il link simbolico'; LANGitFEditSymlink_Caption = 'Modifica il link simbolico'; LANGitFEditSymlink_SymbolicLinkFilename = 'Nome del link _Simbolico:'; LANGitFEditSymlink_SymbolicLinkPointsTo = 'Il link simbolico punta _verso:'; LANGitFChmod_Caption = 'Permessi di accesso'; LANGitFChmod_PermissionFrame = 'Permessi'; LANGitFChmod_FileFrame = 'File'; LANGitFChmod_ApplyRecursivelyFor = 'Applica _ricorsivamente per'; LANGitFChmod_miAllFiles = 'Tutti i file e le directory'; LANGitFChmod_miDirectories = 'Solo directory'; LANGitFChmod_OctalLabel = '_Ottale:'; LANGitFChmod_SUID = 'SUID - Imposta user ID in esecuzione'; LANGitFChmod_SGID = 'SGID - Imposta group ID in esecuzione'; LANGitFChmod_Sticky = 'Sticky bit'; LANGitFChmod_RUSR = 'RUSR - Leggi dal proprietario'; LANGitFChmod_WUSR = 'WUSR - Scrivi dal proprietario'; LANGitFChmod_XUSR = 'XUSR - Esegui/Cerca dal proprietario'; LANGitFChmod_RGRP = 'RGRP - Leggi dal gruppo'; LANGitFChmod_WGRP = 'WGRP - Scrivi dal gruppo'; LANGitFChmod_XGRP = 'XGRP - Esegui/Cerca dal gruppo'; LANGitFChmod_ROTH = 'ROTH - Leggi da altri'; LANGitFChmod_WOTH = 'WOTH - Scrivi da altri'; LANGitFChmod_XOTH = 'XOTH - Esegui/Cerca da altri'; LANGitFChmod_TextLabel = 'Testo: %s'; LANGitFChmod_FileLabel = 'File: %s'#10'Testo: %s'#10 + 'Ottale: %d'#10'Proprietario: %s'#10 + 'Gruppo: %s'; LANGitFChown_Caption = 'Cambia proprietario/gruppo'; LANGitFChown_OwnerFrame = 'Nome dell''utente'; LANGitFChown_GroupFrame = 'Nome del gruppo'; LANGitFChown_FileFrame = 'File'; LANGitFChown_ApplyRecursively = 'Applica _ricorsivamente'; LANGitFSymlink_Caption = 'Crea link simbolico'; LANGitFSymlink_ExistingFilename = 'Nome del file _esistente (il nome del file del link simbolico punterà verso):'; LANGitFSymlink_SymlinkFilename = 'Nome del link _simbolico:'; LANGitmnuBookmarks_Caption = '_Segnalibri'; LANGitmiAddBookmark_Caption = 'Aggiungi Segnalibro'; LANGitmiEditBookmarks_Caption = 'Modifica Segnalibri'; LANGitBookmarkPopupDelete_Caption = '_Elimina'; LANGitmiPreferences_Caption = '_Preferenze...'; LANGitTheCurrentDirectoryAlreadyExistsInTheBookmarksList = 'La directory corrente esiste già nella lista dei segnalibri'; LANGitSomeOtherInstanceChanged = 'Qualche altra istanza di Tux Commander ha cambiato la configurazione. Vuoi applicare i nuovi cambiamenti?'#10#10'Attenzione: Se premi No a questo punto, la configurazione sarà sovrascritta su questa istanza'' esci!'; LANGitPreferences_Caption = 'Preferenze'; LANGitPreferences_TitleLabel_Caption = 'Preferenze Applicazione'; LANGitPreferences_GeneralPage = 'Generale'; LANGitPreferences_FontsPage = 'Caratteri'; LANGitPreferences_ColorsPage = 'Colori'; LANGitPreferences_RowHeight = '_Altezza Righe:'; LANGitPreferences_NumHistoryItems = 'Cronologia _comandi da terminale:'; LANGitPreferences_Default = '_Predefinito'; LANGitPreferences_ClearReadonlyAttribute = 'Pulisci attributo solo _lettura quando copia da CD-ROM'; LANGitPreferences_DisableMouseRenaming = 'Disabilita possibilità di rinominare col _mouse'; LANGitPreferences_ShowFiletypeIconsInList = 'Mostra icone dei tipi di _file'; LANGitPreferences_ExternalAppsLabel = 'Programmi Esterni'; LANGitPreferences_Viewer = '_Visualizzatore:'; LANGitPreferences_Editor = '_Editor:'; LANGitPreferences_Terminal = '_Terminale:'; LANGitPreferences_ListFont = 'Lista Caratteri:'; LANGitPreferences_Change = 'Cambia...'; LANGitPreferences_UseDefaultFont = 'Usa font _predefinito'; LANGitPreferences_Foreground = 'Foreground'; LANGitPreferences_Background = 'Background'; LANGitPreferences_NormalItem = 'Elemento Normale:'; LANGitPreferences_SetToDefaultToUseGTKThemeColors = 'Imposta come predefinito l''uso dei colori del tema GTK'; LANGitPreferences_Cursor = 'Cursore:'; LANGitPreferences_InactiveItem = 'Elemento Inattivo:'; LANGitPreferences_SelectedItem = 'Elemento Selezionato:'; LANGitPreferences_LinkItem = 'Link simbolici:'; LANGitPreferences_LinkItemHint = 'Imposta come predefinita la visualizzazione dei link simbolici usando i colori normali degli elementi'; LANGitPreferences_DotFileItem = 'Dot files:'; LANGitPreferences_DotFileItemHint = 'Imposta come predefinita la visualizzazione dei dot-files usando i colori normali degli elementi'; LANGitPreferences_BrowseForApplication = 'Cerca un''applicazione'; LANGitPreferences_DefaultS = 'Predefinito: %s'; LANGitPreferences_SelectFont = 'Seleziona un carattere'; (*************** STRINGS ADDED TO v0.4.101 **********************************************************************************) LANGitBookmarkButton_Tooltip = 'Mostra segnalibri'; LANGitUpButton_Tooltip = 'Vai alla directory superiore'; LANGitRootButton_Tooltip = 'Vai alla directory principale (/)'; LANGitHomeButton_Tooltip = 'Vai alla directory dell''utente (/home/user)'; LANGitLeftEqualButton_Tooltip = 'Carica nel pannello destro la stessa directory'; LANGitRightEqualButton_Tooltip = 'Carica nel pannello sinistro la stessa directory'; LANGitmiShowDirectorySizes_Caption = 'Mostra le dimensioni delle d_irectory'; LANGitmiTargetSource_Caption = '_Destinazione = Sorgente'; LANGitFileTypeDirectory = 'Directory'; LANGitFileTypeFile = 'File'; LANGitFileTypeMetafile = 'Questo è un meta-item comune'; LANGitPreferencesPanelsPage = 'Pannelli'; LANGitPreferencesApplicationsPage = 'Applicazioni'; LANGitPreferencesExperimentalPage = 'Sperimentale'; LANGitPreferencesSelectAllDirectoriesCheckBox_Caption = 'Seleziona _anche le directory quando selezioni tutto'; LANGitPreferencesNewStyleAltOCheckBox_Caption = '_Nuovo stile Alt+O'; LANGitPreferencesNewStyleAltOCheckBox_Tooltip = 'Resta nella stessa directory quando quando cambi la directory del pannello opposto premendo Ctrl/Alt+O'; LANGitPreferencesShowFuncButtonsCheckBox_Caption = 'Mostra le funzioni dei bottoni _chiave'; LANGitPreferencesSizeFormatLabel_Caption = 'Formato _dimensione:'; LANGitPreferencesmiSizeFormat1 = 'Sistema'; LANGitPreferencesmiSizeFormat6 = 'Raggruppato'; LANGitPreferencesAutodetectXApp = 'Rileva automaticamente applicazioni X'; LANGitPreferencesAlwaysRunInTerminal = 'Esegui sempre da terminale'; LANGitPreferencesNeverRunInTerminal = 'Non eseguire mai da terminale'; LANGitPreferencesCmdLineBehaviourLabel_Caption = '_Esegui da linea di comando:'; LANGitPreferencesFeatures = 'Feature'; LANGitPreferencesDisableMouseRename_Tooltip = 'Puoi ancora eseguire un quick-rename premendo Shift+F6'; LANGitPreferencesDisableFileTipsCheckBox_Caption = 'Disabilita i _tooltip'; LANGitPreferencesDisableFileTipsCheckBox_Tooltip = 'Non visualizzare i tooltip del pannello se il testo in una colonna è troncato'; LANGitPreferencesShow = 'Mostra'; LANGitPreferencesDirsInBoldCheckBox_Caption = 'Directory in _grassetto'; LANGitPreferencesDisableDirectoryBracketsCheckBox_Caption = 'Disabilita le parentesi attorno al nome delle directory'; LANGitPreferencesOctalPermissionsCheckBox_Caption = 'Mostra i permessi in _ottale'; LANGitPreferencesOctalPermissionsCheckBox_Tooltip = 'Mostra i permessi di file e directory come numeri anziché come testo (-rw-rw-rw-)'; LANGitPreferencesMovement = 'Movimento'; LANGitPreferencesLynxLikeMotionCheckBox_Caption = 'Movimento _Lynx-like'; LANGitPreferencesInsertMovesDownCheckBox_Caption = '_Insert muove in basso'; LANGitPreferencesSpaceMovesDownCheckBox_Caption = '_Space muove in alto'; LANGitPreferencesViewer = 'Visualizzatore'; LANGitPreferencesCommandSC = 'Comando:'; LANGitPreferencesUseInternalViewer = 'Usa il visualizzatore _interno'; LANGitPreferencesEditor = 'Editor'; LANGitPreferencesTerminal = 'Terminale'; LANGitPreferencesExperimentalFeatures = 'Features sperimentali'; LANGitPreferencesExperimentalWarningLabel_Caption = 'Attenzione: Queste feature sono sperimentali e potrebbero non funzionare correttamente. Usale a tuo rischio!'; LANGitPreferencesFocusRefreshCheckBox_Caption = 'Effettua il refresh quando una finestra viene selezionata'; LANGitPreferencesFocusRefreshCheckBox_Tooltip = 'Al momento il refresh è molto lento'; LANGitPreferencesWMCompatModeCheckBox_Caption = 'Modalità compatibile _WM'; LANGitPreferencesWMCompatModeCheckBox_Tooltip = 'Usa se riscontri problemi con un window manager (ad esempio IceWM non effettua l''ingrandimento delle finestre correttamente)'; LANGitPreferencesCompatUseLibcSystemCheckBox_Caption = 'Usa libc _system() per eseguire i programmi'; LANGitPreferencesCompatUseLibcSystemCheckBox_Tooltip = 'Usare in caso freeze o crash nell''avvio di applicazioni esterne'; (*************** STRINGS ADDED TO v0.5.70 **********************************************************************************) LANGitmiSearchCaption2 = '_Cerca...'; LANGitmiNoMounterBarCaption = 'No_n visualizzare la barra dei dispositivi montati'; LANGitmiShowOneMounterBarCaption = 'Visualizza _una barra dei dispositivi montati'; LANGitmiShowTwoMounterBarCaption = 'Visualizza _due barre dei dispositivi montati'; LANGitmnuNetworkCaption = 'R_ete'; LANGitmiConnectionsCaption = '_Connessioni...'; LANGitmiOpenConnectionCaption = '_Apri connessione...'; LANGitmiQuickConnectCaption = 'Connessione _veloce...'; LANGitmnuPluginsCaption = 'Pl_ugin'; LANGitmiTestPluginCaption = '_Prova plugin...'; LANGitmiMounterSettingsCaption = 'Impostazioni montaggio...'; LANGitmiColumnsCaption = 'Colonne del pannello...'; LANGitmiSavePositionCaption = '_Salva la posizione'; LANGitmiMountCaption = '_Monta'; LANGitmiUmountCaption = '_Smonta'; LANGitmiEjectCaption = '_Espelli'; LANGitmiDuplicateTabCaption = 'Duplica il tab corrente'; LANGitmiCloseTabCaption = 'Chiudi il tab corrente'; LANGitmiCloseAllTabsCaption = 'Chiudi tutti i tab'; LANGitCannotDetermineDestinationEngine = 'Impossibile determinare la destinazione. Inserisci il percorso corretto e prova ancora.'; LANGitCannotLoadFile = 'Impossibile caricare il file ''%s''. Controlla i permessi.'; LANGitMountPointDevice = 'Mount Point: %s'#10'Dispositivo: %s'; LANGitMountSC = 'Monta:'; LANGitNoPluginsFound = 'Nessun plugin trovato'; LANGitPluginAbout = 'Informazioni...'; LANGitCouldntOpenURI = 'Impossibile aprire l''URI specificato. Controlla l''URI specificato e i permessi d''accesso.'; LANGitPluginAboutInside = 'Plugin: %s'#10#10'%s'#10'%s'; LANGitAreYouSureCloseAllTabs = 'Vuoi veramente chiudere tutti i tab inattivi?'; LANGitCouldntOpenURIArchive = 'Impossibile aprire l''archivio. Controlla la consistenza e i permessi d''accesso.'; LANGitThereIsNoModuleAvailable = 'Non esistono moduli VFS disponibili che possano gestire questa connessione'; LANGitIgnoreError = 'Vuoi veramente ignorare l''errore? Il file sorgente verrà eliminato'; LANGitErrorMount = 'Impossibile montare il dispositivo ''%s'':'#10#10; LANGitErrorUmount = 'Impossibile smontare il dispositivo ''%s'':'#10#10; LANGitErrorEject = 'Impossibile espellere il dispositivo ''%s'':'#10#10; LANGitMounterPrefs_Caption = 'Impostazioni del Mounter'; LANGitMounterPrefs_TitleLabelCaption = 'Impostazioni del Mounter'; LANGitMounterPrefs_ListViewFrameCaption = 'Mounter'; LANGitMounterPrefs_MountName = 'Mount Name'; LANGitMounterPrefs_MountPoint = 'Mount Point'; LANGitMounterPrefs_Device = 'Dispositivo'; LANGitMounterPrefs_MoveUpButtonTooltip = 'Sposta l''elemento su'; LANGitMounterPrefs_MoveDownButtonTooltip = 'Sposta l''elemento giù'; LANGitMounterPrefs_UseFSTabDefaultsCheckBox = 'Usa gli elementi predefiniti di _fstab'; LANGitMounterPrefs_UseFSTabDefaultsCheckBoxTooltip = 'Selezionando questa opzione, la barra dei dispositivi montati verrà popolata dagli elementi presenti nel file /etc/fstab (system mountlist file)'; LANGitMounterPrefs_ToggleModeCheckBox = 'I bottoni stanno _giù quando montati'; LANGitMounterPrefs_ToggleModeCheckBoxTooltip = 'Selezionando questa opzione, i bottoni della barra dei dispositivi montati resteranno giù se il dispositivo è montato; un altro clic per smontare (espellere in questo caso)'; LANGitMounterPrefs_PropertiesFrameCaption = 'Proprietà degli elementi del Mounter'; LANGitMounterPrefs_DisplayTextLabelCaption = '_Testo Visualizzato:'; LANGitMounterPrefs_MountPointLabelCaption = 'Mount _Point:'; LANGitMounterPrefs_MountDeviceLabelCaption = '_Dispositivo:'; LANGitMounterPrefs_DeviceTypeLabelCaption = 'T_ipo di Dispositivo:'; LANGitMounterPrefs_miLocalDiskCaption = 'Disco locale'; LANGitMounterPrefs_miRemovableCaption = 'Rimovibile'; LANGitMounterPrefs_miCDCaption = 'Unità CD/DVD'; LANGitMounterPrefs_miFloppyCaption = 'Unità Floppy'; LANGitMounterPrefs_miNetworkCaption = 'Rete'; LANGitMounterPrefs_MountCommandLabelCaption = 'Comando per il montaggio:'; LANGitMounterPrefs_UmountCommandLabelCaption = 'Comando per lo smontaggio:'; LANGitMounterPrefs_MountCommandEntryTooltip = 'Sintassi: usa %dev per sostituire il dispositivo e %dir per il mount point oppure lascia vuoto per predefinito montaggio'#10 + 'Nota: presta attenzione ai comandi interattivi, Tux Commander può bloccarsi!'#10'Esempio: smbmount %dev %dir -o username=netuser,password=somepass'; LANGitMounterPrefs_UmountCommandEntryTooltip = 'Sintassi: usa %dev per sostituire il dispositivo e %dir per il mount point oppure lascia vuoto per predefinito smontaggio'#10'Esempio: smbumount $dir'; LANGitMounterPrefs_IconLabelCaption = '_Icona:'; LANGitConnMgr_Caption = 'Apri Nuova Connessione'; LANGitConnMgr_ConnectButton = 'Co_nnetti'; LANGitConnMgr_OpenConnection = 'Apri Connessione'; LANGitConnMgr_NameColumn = 'Nome'; LANGitConnMgr_URIColumn = 'URI'; LANGitConnMgr_AddConnectionButtonCaption = '_Aggiungi sito...'; LANGitConnMgr_AddConnectionButtonTooltip = 'Aggiungi nuova connessione'; LANGitConnMgr_EditButtonCaption = '_Modifica...'; LANGitConnMgr_EditButtonTooltip = 'Modifica la connessione selezionata'; LANGitConnMgr_RemoveButtonCaption = '_Rimuovi il sito'; LANGitConnMgr_RemoveButtonTooltip = 'Rimuovi la connessione selezionata'; LANGitConnMgr_DoYouWantDelete = 'Vuoi veramente eliminare la connessione ''%s''?'; LANGitConnProp_FTP = 'FTP'; LANGitConnProp_SFTP = 'SFTP (ssh subsystem)'; LANGitConnProp_SMB = 'Windows share (SMB)'; LANGitConnProp_HTTP = 'WebDAV (HTTP)'; LANGitConnProp_HTTPS = 'Secure WebDAV (HTTPS)'; LANGitConnProp_Other = 'Altro (specificare l''URI)'; LANGitConnProp_Caption = 'Proprietà Connessione'; LANGitConnProp_VFSModule = 'Modulo _VFS:'; LANGitConnProp_URI = '_URI:'; LANGitConnProp_URIEntryTooltip = 'Un URI corretto deve contenere un service type prefix e un indirizzo server'; LANGitConnProp_DetailedInformations = 'Informazioni dettagliate'; LANGitConnProp_Name = '_Nome:'; LANGitConnProp_Server = 'Ser_ver[:porta]:'; LANGitConnProp_Username = 'Userna_me:'; LANGitConnProp_UserNameEntryTooltip = 'Lascia vuoto per un login anonimo'; LANGitConnProp_Password = '_Password:'; LANGitConnProp_TargetDirectory = '_Directory di destinazione:'; LANGitConnProp_ServiceType = 'Tipo di _servizio:'; LANGitConnProp_MaskPassword = '_Nascondi password'; LANGitConnProp_MenuItemCaption = 'Predefinito (tutti i moduli adatti)'; LANGitConnLogin_Caption = 'Autenticazione richiesta'; LANGitConnLogin_Login = 'Login'; LANGitConnLogin_ExperimentalWarningLabelCaption = 'Devi effettuare il log in per accedere %s'; LANGitConnLogin_Username = '_Username:'; LANGitConnLogin_Password = '_Password:'; LANGitConnLogin_AnonymousCheckButton = '_Anonimo'; LANGitColumns_Caption = 'Impostazioni Colonne del Pannello'; LANGitColumns_Title = 'Impostazioni Colonne del Pannello'; LANGitColumns_MoveUpButtonTooltip = 'Sposta l''elemento su'; LANGitColumns_MoveDownButtonTooltip = 'Sposta l''elemento giu'; LANGitColumns_TitlesLongName = 'Nome'; LANGitColumns_TitlesLongNameExt = 'Nome + Estensione'; LANGitColumns_TitlesLongExt = 'Estensione'; LANGitColumns_TitlesLongSize = 'Dimensione'; LANGitColumns_TitlesLongDateTime = 'Data + Orario'; LANGitColumns_TitlesLongDate = 'Data'; LANGitColumns_TitlesLongTime = 'Orario'; LANGitColumns_TitlesLongUser = 'Utente'; LANGitColumns_TitlesLongGroup = 'Gruppo'; LANGitColumns_TitlesLongAttr = 'Attributi'; LANGitColumns_TitlesShortName = 'Nome'; LANGitColumns_TitlesShortNameExt = 'Nome'; LANGitColumns_TitlesShortExt = 'Estensione'; LANGitColumns_TitlesShortSize = 'Dimensione'; LANGitColumns_TitlesShortDateTime = 'Data'; LANGitColumns_TitlesShortDate = 'Data'; LANGitColumns_TitlesShortTime = 'Orario'; LANGitColumns_TitlesShortUser = 'Utente'; LANGitColumns_TitlesShortGroup = 'Gruppo'; LANGitColumns_TitlesShortAttr = 'Attributi'; LANGitTestPlugin_Caption = 'Test VFS Plugin'; LANGitTestPlugin_Title = 'Test VFS Plugin'; LANGitTestPlugin_ExperimentalWarningLabelCaption = 'Warning: Il sottosistema VFS e i suoi plugin sono sperimentali e potrebbero contenere bachi. Usa questa funzionalità a tuo rischio!'; LANGitTestPlugin_Plugin = '_Plugin:'; LANGitTestPlugin_Command = 'Co_mando:'; LANGitTestPlugin_Username = '_Username:'; LANGitTestPlugin_Password = '_Password:'; LANGitTestPlugin_AnonymousCheckButton = 'Login _anonimo (non chiama VFSLogin)'; LANGitTestPlugin_NoPluginsFound = 'Nessun plugins trovato'; LANGitRemoteWait_Caption = 'Operazione in corso'; LANGitRemoteWait_OperationInProgress = 'Operazione in corso, sii paziente...'; LANGitRemoteWait_ItemsFound = 'Elementi trovati: %d'; LANGitSearch_Bytes = 'Byte'; LANGitSearch_kB = 'kB'; LANGitSearch_MB = 'MB'; LANGitSearch_days = 'giorni'; LANGitSearch_weeks = 'settimane'; LANGitSearch_months = 'mesi'; LANGitSearch_years = 'anni'; LANGitSearch_Caption = 'Trova File'; LANGitSearch_General = 'Generale'; LANGitSearch_Advanced = 'Avanzato'; LANGitSearch_SearchResults = 'Trova Risultati:'; LANGitSearch_SearchFor = 'Trova _per:'; LANGitSearch_FileMaskEntryTooltip = 'Suggerimento: Usa dei punto e virgola (";") per specificare più file da cercare'; LANGitSearch_SearchIn = 'Cerca _in:'; LANGitSearch_SearchArchivesCheckButton = 'Cerca _archivi'; LANGitSearch_FindText = 'Cerca _testo:'; LANGitSearch_FindTextEntryTooltip = 'Lascia vuoto per escludere il text matching'#10'Nota che stiamo usando UTF-8 nella parte GUI'; LANGitSearch_CaseSensitiveCheckButton = 'Cas_e sensitive'; LANGitSearch_StayCurrentFSCheckButton = 'Includi altri files_ystems'; LANGitSearch_CaseSensitiveMatchCheckButton = 'Ca_se sensitive'; LANGitSearch_Size = 'Dimensione'; LANGitSearch_Date = 'Data'; LANGitSearch_BiggerThan = 'Più _grande di'; LANGitSearch_SmallerThan = 'Più _piccolo di'; LANGitSearch_ModifiedBetweenRadioButton = '_Modificato tra'; LANGitSearch_NotModifiedAfterRadioButton = '_Non modificato dopo'; LANGitSearch_ModifiedLastRadioButton = 'Mod_ificato nello scorso'; LANGitSearch_ModifiedNotLastRadionButton = 'No_n modificato nello scorso'; LANGitSearch_ModifiedBetweenEntry1 = '"Usa il seguente formato per la data:" c'; LANGitSearch_ViewButtonCaption = '_Visualizza file'; LANGitSearch_NewSearchButtonCaption = '_Nuova ricerca'; LANGitSearch_GoToFileButtonCaption = '_Vai al file'; LANGitSearch_FeedToListboxButtonCaption = 'Feed to _listbox'; LANGitSearch_StatusSC = 'Status:'; LANGitSearch_Ready = 'Pronto.'; LANGitSearch_PreparingToSearch = 'Preparazione alla ricerca.'; LANGitSearch_SearchInProgress = 'Ricerca in corso:'; LANGitSearch_UserCancelled = 'Annullato dall''utente.'; LANGitSearch_SearchFinished = 'Ricerca conclusa'; LANGitSearch_FilesFound = '%d file trovati'; LANGitSearch_And = 'e'; (*************** STRINGS ADDED TO v0.5.82 **********************************************************************************) LANGitCloseOpenConnection = 'Stai cercando di aprire una nuova connessione al posto di un''altra attualmente attiva. Continuando, la connessione precedente verrà chiusa e sostituita dalla nuova connessione.'#10#10'Vuoi continuare?'; LANGitDuplicateTabWarning = 'Stai cercando di aprire una nuova scheda da una directory remota. Tuttavia, la funzionalità "engine cloning" non è supportata. La directory nella nuova scheda punterà al filesystem locale.'; LANGitDontShowAgain = '_Non mostrare più questo messaggio'; LANGitSwitchOtherPanelWarning = 'Stai cercando di aprire una directory remota nell''altro pannello. Tuttavia, la funzionalità "engine cloning" non è supportata. La directory di destinazione non verrà modificata.'; LANGitOpenConnectionsWarning = 'Sono state rilevate alcune connessioni ancora aperte. Chiudendo l''applicazione, queste connessioni verranno chiuse.'#10#10'Vuoi continuare?'; LANGitmiDisconnect_Caption = '_Disconnetti'; LANGitDisconnectButton_Tooltip = 'Disconnetti la connessione attiva'; LANGitLeaveArchiveButton_Tooltip = 'Chiudi l''archivio corrente'; LANGitOpenTerminalButton_Tooltip = 'Apre una nuova finestra terminale dalla directory corrente'; LANGitOpenTerminalButton_Caption = 'Apre il te_rminale'; LANGitShowTextUIDsCheckBox_Caption = 'Mostra _UIDs testuali'; LANGitShowTextUIDsCheckBox_Tooltip = 'Mostra informazioni sull''Utente e sul Gruppo in forma testuale anzichè in forma numerica (UID/GID)'; (*************** STRINGS ADDED TO v0.5.100 **********************************************************************************) LANGitmiNewTab_Caption = 'Nuova _scheda'; LANGitFilePopupMenu_Properties = '_Proprietà'; LANGitCommandEntry_Tooltip = 'Utilizza %s come segnaposto per file/directory'; LANGitmiFiles_Caption = 'Solo file'; (*************** STRINGS ADDED TO v0.6.31 **********************************************************************************) LANGitPasswordButton_Tooltip = 'Archive requires password.'#10'Click to set'; LANGitHandleRunFromArchive_Bytes = 'bytes'; LANGitHandleRunFromArchive_FileTypeDesc_Unknown = '(unknown)'; LANGitHandleRunFromArchive_NotAssociated = '(not associated)'; LANGitHandleRunFromArchive_SelfExecutable = '(self-executable)'; LANGitHandleRunFromArchive_CouldntCreateTemporaryDirectory = 'Couldn''t create temporary directory "%s": %s.'#10#10'Please check the temporary directory settings and try it again.'; LANGitFRunFromVFS_Caption = 'Packed file properties'; LANGitFRunFromVFS_TitleLabel = 'File Properties'; LANGitFRunFromVFS_FileNameLabel = 'File name:'; LANGitFRunFromVFS_FileTypeLabel = 'File type:'; LANGitFRunFromVFS_SizeLabel = 'Size:'; LANGitFRunFromVFS_PackedSizeLabel = 'Compressed size:'; LANGitFRunFromVFS_DateLabel = 'Modify date:'; LANGitFRunFromVFS_InfoLabel = 'Opening files directly from archives is not supported. By clicking the buttons below the file (all files respectively) will be extracted to a temporary location. Temporary files will be deleted when you close Tux Commander.'; LANGitFRunFromVFS_OpensWithLabel = 'Open with:'; LANGitFRunFromVFS_ExecuteButton = 'E_xtract and open'; LANGitFRunFromVFS_ExecuteAllButton = 'Extract _all and open'; LANGitFSetPassword_Caption = 'Set password'; LANGitFSetPassword_Label1_Caption = 'Password required'; LANGitFSetPassword_Label2_Caption = 'The archive is encrypted and requires password in order to extract the data'; LANGitFSetPassword_ShowPasswordCheckButton = 'Un_mask password'; (*************** STRINGS ADDED TO v0.6.48 **********************************************************************************) LANGitCopyFileNamesToClipboard = '_Copy file names to clipboard'; LANGitCopyFullPathNamesToClipboard = 'Copy _full path names to clipboard'; LANGitCopyPathToClipboard = '_Copy path to clipboard'; LANGitPreferences_DateFormatLabel_Caption = 'Date _format:'; LANGitPreferences_System = 'System'; LANGitPreferences_Custom = 'Custom...'; LANGitPreferences_CustomDateFormatEntry_Tooltip = 'Enter custom date format string.'#10'Please see "man strftime" for syntax reference.'; LANGitPreferences_TimeFormatLabel_Caption = '_Time format:'; LANGitPreferences_CustomTimeFormatEntry_Tooltip = 'Enter custom time format string.'#10'Please see "man strftime" for syntax reference.'; LANGitPreferences_DateTimeFormatLabel_Caption = 'Date/time _order:'; LANGitPreferences_QuickRenameSkipExtCheckBox = 'Select name part only on quick-rename'; LANGitPreferences_QuickRenameSkipExtCheckBox_Tooltip = 'Exclude filename extension from the selection when doing quick-rename'; LANGitPreferences_SortDirectoriesLikeFilesCheckBox = 'Sort directories lik_e files'; LANGitPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip = 'Check this to allow sorting directories along with files. Directories are always first in the list.'#10'Unchecked: directories are always sorted by name.'; LANGitPreferences_QuickSearchLabel_Caption = 'Quick search _keystroke:'; LANGitPreferences_QuickSearchOptionMenu_Tooltip = 'The Ctrl+S/Alt+S and "/" keystrokes are always active, regardless on this setting.'; LANGitPreferences_QuickSearch_Option1 = 'Ctrl+S/Alt+S and "/" only'; LANGitPreferences_QuickSearch_Option2 = 'Ctrl+Alt+letters'; LANGitPreferences_QuickSearch_Option3 = 'Alt+letters'; LANGitPreferences_QuickSearch_Option4 = 'letters directly'; LANGitPreferences_TempPathLabel_Caption = 'Temporary files'; LANGitPreferences_VFSTempPathLabel_Caption = '_VFS temp files:'; LANGitPreferences_VFSTempPathEntry_Tooltip = 'Location of temporary files used by VFS subsystem, e.g. when opening files directly from archives. All temporary files are cleaned on exit.'; (*************** STRINGS ADDED TO v0.6.67 **********************************************************************************) LANGitPreferences_RightClickSelectCheckBox = 'Right mouse button selection mode'; LANGitPreferences_RightClickSelectCheckBox_Tooltip = 'Use right mouse button to select, like mc.'; LANGitGtkMountOperation_ConnectAnonymously = 'Connect _anonymously'; LANGitGtkMountOperation_ConnectAsUser = 'Connect as u_ser:'; LANGitGtkMountOperation_Username = '_Username:'; LANGitGtkMountOperation_Domain = '_Domain:'; LANGitGtkMountOperation_Password = '_Password:'; LANGitGtkMountOperation_DoNotSavePassword = 'Do not save password'; LANGitGtkMountOperation_ForgetPasswordImmediately = 'Forget password _immediately'; LANGitGtkMountOperation_RememberPasswordUntilYouLogout = 'Remember password until you _logout'; LANGitGtkMountOperation_SavePasswordInConnectionManager = '_Save password in Connection Manager'; LANGitGtkMountOperation_RememberForever = 'Remember _forever'; LANGitFSymlink_RelativePath = '_Relative path'; LANGitFConnectionManager_DuplicateButton_Caption = 'D_uplicate...'; LANGitFConnectionManager_DuplicateButton_Tooltip = 'Duplicate selected connection'; LANGitFConnectionManager_DoNotSavePasswordsCheckBox_Label = '_Do not store passwords internally (but still use gnome-keyring)'; LANGitFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip = 'By checking this option on, Tux Commander will never save passwords into its connection list. Due to the GVFS nature, gnome-keyring will still be used to retrieve stored passwords from your desktop session.'; LANGitFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label = 'Do not synchronize passwords to gnome-_keyring'; LANGitFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip = 'Don''t tell gnome-keyring to save any passwords.'; LANGitFConnectionManager_DuplicateMenuItem_Caption = 'D_uplicate...'; LANGitFQuickConnect_Caption = 'Quick connect'; LANGitFQuickConnect_TitleLabel_Caption = 'Quick connect'; LANGitFQuickConnect_ConnectToURILabel_Caption = 'C_onnect to URI:'; LANGitLinkToS = 'Link to %s'; LANGitOpenDirectoryInBackgroundTab = 'Open directory in _background tab'; LANGitTheActiveConnectionHasNotBeenSaved = 'The active connection has not been saved. Do you want to save it to Connection Manager?'#10#10'%s'; LANGitTheArchiveIsEncryptedAndRequiresPassword = 'The archive is encrypted and requires password'; (********************************************************************************************************************************) procedure SetTranslation; begin LANGF2Button_Caption := LANGitF2Button_Caption; LANGF3Button_Caption := LANGitF3Button_Caption; LANGF4Button_Caption := LANGitF4Button_Caption; LANGF5Button_Caption := LANGitF5Button_Caption; LANGF6Button_Caption := LANGitF6Button_Caption; LANGF7Button_Caption := LANGitF7Button_Caption; LANGF8Button_Caption := LANGitF8Button_Caption; LANGmnuFile_Caption := LANGitmnuFile_Caption; LANGmnuMark_Caption := LANGitmnuMark_Caption; LANGmnuCommands_Caption := LANGitmnuCommands_Caption; LANGmnuHelp_Caption := LANGitmnuHelp_Caption; LANGmiExit_Caption := LANGitmiExit_Caption; LANGmiSelectGroup_Caption := LANGitmiSelectGroup_Caption; LANGmiUnselectGroup_Caption := LANGitmiUnselectGroup_Caption; LANGmiSelectAll_Caption := LANGitmiSelectAll_Caption; LANGmiUnselectAll_Caption := LANGitmiUnselectAll_Caption; LANGmiInvertSelection_Caption := LANGitmiInvertSelection_Caption; LANGmiRefresh_Caption := LANGitmiRefresh_Caption; LANGmiAbout_Caption := LANGitmiAbout_Caption; LANGColumn1_Caption := LANGitColumn1_Caption; LANGColumn2_Caption := LANGitColumn2_Caption; LANGColumn3_Caption := LANGitColumn3_Caption; LANGColumn4_Caption := LANGitColumn4_Caption; LANGColumn5_Caption := LANGitColumn5_Caption; LANGExpandSelection := LANGitExpandSelection; LANGShrinkSelection := LANGitShrinkSelection; LANGNoMatchesFound := LANGitNoMatchesFound; LANGNoFilesSelected := LANGitNoFilesSelected; LANGSelectedFilesDirectories := LANGitSelectedFilesDirectories; LANGDirectoryS := LANGitDirectoryS; LANGFileS := LANGitFileS; LANGDoYouReallyWantToDeleteTheS := LANGitDoYouReallyWantToDeleteTheS; LANGDoYouReallyWantToDeleteTheSS := LANGitDoYouReallyWantToDeleteTheSS; LANGCopyFiles := LANGitCopyFiles; LANGMoveRenameFiles := LANGitMoveRenameFiles; LANGCopyDFileDirectoriesTo := LANGitCopyDFileDirectoriesTo; LANGMoveRenameDFileDirectoriesTo := LANGitMoveRenameDFileDirectoriesTo; LANGCopySC := LANGitCopySC; LANGMoveRenameSC := LANGitMoveRenameSC; LANGQuickFind := LANGitQuickFind; LANGAboutString := LANGitAboutString; LANGAboutStringGnome := LANGitAboutStringGnome; LANGDiskStatFmt := LANGitDiskStatFmt; LANGDiskStatVolNameFmt := LANGitDiskStatVolNameFmt; LANGStatusLineFmt := LANGitStatusLineFmt; LANGPanelStrings[False] := LANGitPanelStrings[False]; LANGPanelStrings[True] := LANGitPanelStrings[True]; LANGDIR := LANGitDIR; LANGErrorGettingListingForSPanel := LANGitErrorGettingListingForSPanel; LANGErrorGettingListingForSPanelNoPath := LANGitErrorGettingListingForSPanelNoPath; LANGErrorCreatingNewDirectorySInSPanel := LANGitErrorCreatingNewDirectorySInSPanel; LANGErrorCreatingNewDirectorySInSPanelNoPath := LANGitErrorCreatingNewDirectorySInSPanelNoPath; LANGTheFileDirectory := LANGitTheFileDirectory; LANGCouldNotBeDeleted := LANGitCouldNotBeDeleted; LANGCouldNotBeDeletedS := LANGitCouldNotBeDeletedS; LANGUserCancelled := LANGitUserCancelled; LANGTheDirectorySIsNotEmpty := LANGitTheDirectorySIsNotEmpty; LANGCannotCopyFile := LANGitCannotCopyFile; LANGCopyError := LANGitCopyError; LANGMoveError := LANGitMoveError; LANGOverwriteS := LANGitOverwriteS; LANGWithFileS := LANGitWithFileS; LANGOvewriteSBytesS := LANGitOvewriteSBytesS; LANGTheFile := LANGitTheFile; LANGCopy := LANGitCopy; LANGMove := LANGitMove; LANGTheDirectory := LANGitTheDirectory; LANGTheSymbolicLink := LANGitTheSymbolicLink; LANGCannotMoveFile := LANGitCannotMoveFile; LANGCouldNotBeCreated := LANGitCouldNotBeCreated; LANGCouldNotBeCreatedS := LANGitCouldNotBeCreatedS; LANGFromS := LANGitFromS; LANGToS := LANGitToS; LANGCannotCopyFileToItself := LANGitCannotCopyFileToItself; LANGMemoryAllocationFailed := LANGitMemoryAllocationFailed; LANGCannotOpenSourceFile := LANGitCannotOpenSourceFile; LANGCannotOpenDestinationFile := LANGitCannotOpenDestinationFile; LANGCannotCloseDestinationFile := LANGitCannotCloseDestinationFile; LANGCannotCloseSourceFile := LANGitCannotCloseSourceFile; LANGCannotReadFromSourceFile := LANGitCannotReadFromSourceFile; LANGCannotWriteToDestinationFile := LANGitCannotWriteToDestinationFile; LANGUnknownException := LANGitUnknownException; LANGNoAccess := LANGitNoAccess; LANGUnknownError := LANGitUnknownError; LANGCreateANewDirectory := LANGitCreateANewDirectory; LANGEnterDirectoryName := LANGitEnterDirectoryName; LANGOverwriteQuestion := LANGitOverwriteQuestion; LANGOverwriteButton_Caption := LANGitOverwriteButton_Caption; LANGOverwriteAllButton_Caption := LANGitOverwriteAllButton_Caption; LANGSkipButton_Caption := LANGitSkipButton_Caption; LANGOverwriteAllOlderButton_Caption := LANGitOverwriteAllOlderButton_Caption; LANGSkipAllButton_Caption := LANGitSkipAllButton_Caption; LANGRenameButton_Caption := LANGitRenameButton_Caption; LANGAppendButton_Caption := LANGitAppendButton_Caption; LANGRename := LANGitRename; LANGRenameFile := LANGitRenameFile; LANGIgnoreButton_Caption := LANGitIgnoreButton_Caption; LANGProgress := LANGitProgress; LANGCancel := LANGitCancel; LANGDelete := LANGitDelete; LANGSpecifyFileType := LANGitSpecifyFileType; LANGRemoveDirectory := LANGitRemoveDirectory; LANGDoYouWantToDeleteItWithAllItsFilesAndSubdirectories := LANGitDoYouWantToDeleteItWithAllItsFilesAndSubdirectories; LANGRetry := LANGitRetry; LANGDeleteButton_Caption := LANGitDeleteButton_Caption; LANGAll := LANGitAll; LANGCopyFilesSC := LANGitCopyFilesSC; LANGAppendQuestion := LANGitAppendQuestion; LANGPreparingList := LANGitPreparingList; LANGYouMustSelectAValidFile := LANGitYouMustSelectAValidFile; LANGmiVerifyChecksums := LANGitmiVerifyChecksums; LANGVerifyChecksumsCaption := LANGitVerifyChecksumsCaption; LANGCheckButtonCaptionCheck := LANGitCheckButtonCaptionCheck; LANGCheckButtonCaptionStop := LANGitCheckButtonCaptionStop; LANGFileListTooltip := LANGitFileListTooltip; LANGFilenameColumnCaption := LANGitFilenameColumnCaption; LANGTheFileSYouAreTryingToOpenIsQuiteBig := LANGitTheFileSYouAreTryingToOpenIsQuiteBig; LANGAnErrorOccuredWhileInitializingMemoryBlock := LANGitAnErrorOccuredWhileInitializingMemoryBlock; LANGAnErrorOccuredWhileOpeningFileSS := LANGitAnErrorOccuredWhileOpeningFileSS; LANGAnErrorOccuredWhileReadingFileSS := LANGitAnErrorOccuredWhileReadingFileSS; LANGChecksumNotChecked := LANGitChecksumNotChecked; LANGChecksumChecking := LANGitChecksumChecking; LANGChecksumInterrupted := LANGitChecksumInterrupted; LANGChecksumDOK := LANGitChecksumDOK; LANGmiCreateChecksumsCaption := LANGitmiCreateChecksumsCaption; LANGYouMustSelectAtLeastOneFileToCalculateChecksum := LANGitYouMustSelectAtLeastOneFileToCalculateChecksum; LANGCreateChecksumsCaption := LANGitCreateChecksumsCaption; LANGCCHKSUMPage1Text := LANGitCCHKSUMPage1Text; LANGCCHKSUMPage4Text := LANGitCCHKSUMPage4Text; LANGCCHKSUMPage6Text := LANGitCCHKSUMPage6Text; LANGCCHKSUMPage7Text := LANGitCCHKSUMPage7Text; LANGCCHKSUMPage1Title := LANGitCCHKSUMPage1Title; LANGCCHKSUMPage2Title := LANGitCCHKSUMPage2Title; LANGCCHKSUMPage3Title := LANGitCCHKSUMPage3Title; LANGCCHKSUMPage4Title := LANGitCCHKSUMPage4Title; LANGCCHKSUMPage5Title := LANGitCCHKSUMPage5Title; LANGCCHKSUMPage6Title := LANGitCCHKSUMPage6Title; LANGCCHKSUMPage7Title := LANGitCCHKSUMPage7Title; LANGCCHKSUMSFVFile := LANGitCCHKSUMSFVFile; LANGCCHKSUMMD5sumFile := LANGitCCHKSUMMD5sumFile; LANGCCHKSUMFileName := LANGitCCHKSUMFileName; LANGCCHKSUMCreateSeparateChecksumFiles := LANGitCCHKSUMCreateSeparateChecksumFiles; LANGCCHKSUMNowProcessingFileS := LANGitCCHKSUMNowProcessingFileS; LANGCCHKSUMFinishCaption := LANGitCCHKSUMFinishCaption; LANGCCHKSUMAreYouSureYouWantToAbortTheProcessing := LANGitCCHKSUMAreYouSureYouWantToAbortTheProcessing; LANGCCHKSUMAnErrorOccuredWhileOpeningFileSS := LANGitCCHKSUMAnErrorOccuredWhileOpeningFileSS; LANGCCHKSUMAnErrorOccuredWhileReadingFileSS := LANGitCCHKSUMAnErrorOccuredWhileReadingFileSS; LANGCCHKSUMAnErrorOccuredWhileWritingFileSS := LANGitCCHKSUMAnErrorOccuredWhileWritingFileSS; LANGAnErrorOccuredWhileWritingFileSS := LANGitAnErrorOccuredWhileWritingFileSS; LANGTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt := LANGitTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt; LANGTheTargetFileSCannotBeRemovedS := LANGitTheTargetFileSCannotBeRemovedS; LANGMergeCaption := LANGitMergeCaption; LANGPleaseInsertNextDiskOrGiveDifferentLocation := LANGitPleaseInsertNextDiskOrGiveDifferentLocation; LANGMergeOfSSucceeded := LANGitMergeOfSSucceeded; LANGWarningCreatedFileFailsCRCCheck := LANGitWarningCreatedFileFailsCRCCheck; LANGMergeOfSSucceeded_NoCRCFileAvailable := LANGitMergeOfSSucceeded_NoCRCFileAvailable; LANGMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory := LANGitMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory; LANGMergeSC := LANGitMergeSC; LANGmiSplitFileCaption := LANGitmiSplitFileCaption; LANGmiMergeFilesCaption := LANGitmiMergeFilesCaption; LANGSplitTheFileSToDirectory := LANGitSplitTheFileSToDirectory; LANGSplitSC := LANGitSplitSC; LANGSplitFile := LANGitSplitFile; LANGBytesPerFile := LANGitBytesPerFile; LANGAutomatic := LANGitAutomatic; LANGDeleteFilesOnTargetDisk := LANGitDeleteFilesOnTargetDisk; LANGSplitCaption := LANGitSplitCaption; LANGCannotOpenFileS := LANGitCannotOpenFileS; LANGCannotSplitTheFileToMoreThan999Parts := LANGitCannotSplitTheFileToMoreThan999Parts; LANGThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem := LANGitThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem; LANGThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem := LANGitThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem; LANGAnErrorOccuredWhileOperationS := LANGitAnErrorOccuredWhileOperationS; LANGSplitOfSSucceeded := LANGitSplitOfSSucceeded; LANGSplitOfSFailed := LANGitSplitOfSFailed; LANGmnuShow_Caption := LANGitmnuShow_Caption; LANGmiShowDotFiles_Caption := LANGitmiShowDotFiles_Caption; LANGTheFileYouAreTryingToOpenIsQuiteBig := LANGitTheFileYouAreTryingToOpenIsQuiteBig; LANGCannotExecuteSPleaseCheckTheConfiguration := LANGitCannotExecuteSPleaseCheckTheConfiguration; LANGEdit := LANGitEdit; LANGEnterFilenameToEdit := LANGitEnterFilenameToEdit; LANGmnuSettings_Caption := LANGitmnuSettings_Caption; LANGmiFileTypes_Caption := LANGitmiFileTypes_Caption; LANGThereIsNoApplicationAssociatedWithS := LANGitThereIsNoApplicationAssociatedWithS; LANGErrorExecutingCommand := LANGitErrorExecutingCommand; LANGEditFileTypesCaption := LANGitEditFileTypesCaption; LANGTitleLabel_Caption := LANGitTitleLabel_Caption; LANGExtensionsColumn := LANGitExtensionsColumn; LANGDescriptionColumn := LANGitDescriptionColumn; LANGFileTypesList := LANGitFileTypesList; LANGActionName := LANGitActionName; LANGCommand := LANGitCommand; LANGSetDefaultActionButton_Caption := LANGitSetDefaultActionButton_Caption; LANGRunInTerminalCheckBox_Caption := LANGitRunInTerminalCheckBox_Caption; LANGAutodetectCheckBox_Caption := LANGitAutodetectCheckBox_Caption; LANGBrowseButton_Caption := LANGitBrowseButton_Caption; LANGCommandLabel_Caption := LANGitCommandLabel_Caption; LANGDescriptionLabel_Caption := LANGitDescriptionLabel_Caption; LANGFNameExtLabel_Caption := LANGitFNameExtLabel_Caption; LANGNotebookPageExtensions := LANGitNotebookPageExtensions; LANGNotebookPageActions := LANGitNotebookPageActions; LANGDefault := LANGitDefault; LANGCannotSaveFileTypeAssociationsBecauseOtherProcess := LANGitCannotSaveFileTypeAssociationsBecauseOtherProcess; LANGDefaultColor := LANGitDefaultColor; LANGIcon := LANGitIcon; LANGBrowseForIcon := LANGitBrowseForIcon; LANGSelectFileTypeColor := LANGitSelectFileTypeColor; LANGColor := LANGitColor; LANGmiChangePermissions_Caption := LANGitmiChangePermissions_Caption; LANGmiChangeOwner_Caption := LANGitmiChangeOwner_Caption; LANGmiCreateSymlink_Caption := LANGitmiCreateSymlink_Caption; LANGmiEditSymlink_Caption := LANGitmiEditSymlink_Caption; LANGChmodProgress := LANGitChmodProgress; LANGChownProgress := LANGitChownProgress; LANGYouMustSelectAValidSymbolicLink := LANGitYouMustSelectAValidSymbolicLink; LANGPopupRunS := LANGitPopupRunS; LANGPopupOpenS := LANGitPopupOpenS; LANGPopupGoUp := LANGitPopupGoUp; LANGPopupOpenWithS := LANGitPopupOpenWithS; LANGPopupDefault := LANGitPopupDefault; LANGPopupOpenWith := LANGitPopupOpenWith; LANGPopupViewFile := LANGitPopupViewFile; LANGPopupEditFile := LANGitPopupEditFile; LANGPopupMakeSymlink := LANGitPopupMakeSymlink; LANGPopupRename := LANGitPopupRename; LANGPopupDelete := LANGitPopupDelete; LANGDialogChangePermissions := LANGitDialogChangePermissions; LANGCouldNotBeChmoddedS := LANGitCouldNotBeChmoddedS; LANGDialogChangeOwner := LANGitDialogChangeOwner; LANGCouldNotBeChownedS := LANGitCouldNotBeChownedS; LANGDialogMakeSymlink := LANGitDialogMakeSymlink; LANGDialogEditSymlink := LANGitDialogEditSymlink; LANGFEditSymlink_Caption := LANGitFEditSymlink_Caption; LANGFEditSymlink_SymbolicLinkFilename := LANGitFEditSymlink_SymbolicLinkFilename; LANGFEditSymlink_SymbolicLinkPointsTo := LANGitFEditSymlink_SymbolicLinkPointsTo; LANGFChmod_Caption := LANGitFChmod_Caption; LANGFChmod_PermissionFrame := LANGitFChmod_PermissionFrame; LANGFChmod_FileFrame := LANGitFChmod_FileFrame; LANGFChmod_ApplyRecursivelyFor := LANGitFChmod_ApplyRecursivelyFor; LANGFChmod_miAllFiles := LANGitFChmod_miAllFiles; LANGFChmod_miDirectories := LANGitFChmod_miDirectories; LANGFChmod_OctalLabel := LANGitFChmod_OctalLabel; LANGFChmod_SUID := LANGitFChmod_SUID; LANGFChmod_SGID := LANGitFChmod_SGID; LANGFChmod_Sticky := LANGitFChmod_Sticky; LANGFChmod_RUSR := LANGitFChmod_RUSR; LANGFChmod_WUSR := LANGitFChmod_WUSR; LANGFChmod_XUSR := LANGitFChmod_XUSR; LANGFChmod_RGRP := LANGitFChmod_RGRP; LANGFChmod_WGRP := LANGitFChmod_WGRP; LANGFChmod_XGRP := LANGitFChmod_XGRP; LANGFChmod_ROTH := LANGitFChmod_ROTH; LANGFChmod_WOTH := LANGitFChmod_WOTH; LANGFChmod_XOTH := LANGitFChmod_XOTH; LANGFChmod_TextLabel := LANGitFChmod_TextLabel; LANGFChmod_FileLabel := LANGitFChmod_FileLabel; LANGFChown_Caption := LANGitFChown_Caption; LANGFChown_OwnerFrame := LANGitFChown_OwnerFrame; LANGFChown_GroupFrame := LANGitFChown_GroupFrame; LANGFChown_FileFrame := LANGitFChown_FileFrame; LANGFChown_ApplyRecursively := LANGitFChown_ApplyRecursively; LANGFSymlink_Caption := LANGitFSymlink_Caption; LANGFSymlink_ExistingFilename := LANGitFSymlink_ExistingFilename; LANGFSymlink_SymlinkFilename := LANGitFSymlink_SymlinkFilename; LANGmnuBookmarks_Caption := LANGitmnuBookmarks_Caption; LANGmiAddBookmark_Caption := LANGitmiAddBookmark_Caption; LANGmiEditBookmarks_Caption := LANGitmiEditBookmarks_Caption; LANGBookmarkPopupDelete_Caption := LANGitBookmarkPopupDelete_Caption; LANGmiPreferences_Caption := LANGitmiPreferences_Caption; LANGTheCurrentDirectoryAlreadyExistsInTheBookmarksList := LANGitTheCurrentDirectoryAlreadyExistsInTheBookmarksList; LANGSomeOtherInstanceChanged := LANGitSomeOtherInstanceChanged; LANGPreferences_Caption := LANGitPreferences_Caption; LANGPreferences_TitleLabel_Caption := LANGitPreferences_TitleLabel_Caption; LANGPreferences_GeneralPage := LANGitPreferences_GeneralPage; LANGPreferences_FontsPage := LANGitPreferences_FontsPage; LANGPreferences_ColorsPage := LANGitPreferences_ColorsPage; LANGPreferences_RowHeight := LANGitPreferences_RowHeight; LANGPreferences_NumHistoryItems := LANGitPreferences_NumHistoryItems; LANGPreferences_Default := LANGitPreferences_Default; LANGPreferences_ClearReadonlyAttribute := LANGitPreferences_ClearReadonlyAttribute; LANGPreferences_DisableMouseRenaming := LANGitPreferences_DisableMouseRenaming; LANGPreferences_ShowFiletypeIconsInList := LANGitPreferences_ShowFiletypeIconsInList; LANGPreferences_ExternalAppsLabel := LANGitPreferences_ExternalAppsLabel; LANGPreferences_Viewer := LANGitPreferences_Viewer; LANGPreferences_Editor := LANGitPreferences_Editor; LANGPreferences_Terminal := LANGitPreferences_Terminal; LANGPreferences_ListFont := LANGitPreferences_ListFont; LANGPreferences_Change := LANGitPreferences_Change; LANGPreferences_UseDefaultFont := LANGitPreferences_UseDefaultFont; LANGPreferences_Foreground := LANGitPreferences_Foreground; LANGPreferences_Background := LANGitPreferences_Background; LANGPreferences_NormalItem := LANGitPreferences_NormalItem; LANGPreferences_SetToDefaultToUseGTKThemeColors := LANGitPreferences_SetToDefaultToUseGTKThemeColors; LANGPreferences_Cursor := LANGitPreferences_Cursor; LANGPreferences_InactiveItem := LANGitPreferences_InactiveItem; LANGPreferences_SelectedItem := LANGitPreferences_SelectedItem; LANGPreferences_LinkItem := LANGitPreferences_LinkItem; LANGPreferences_LinkItemHint := LANGitPreferences_LinkItemHint; LANGPreferences_DotFileItem := LANGitPreferences_DotFileItem; LANGPreferences_DotFileItemHint := LANGitPreferences_DotFileItemHint; LANGPreferences_BrowseForApplication := LANGitPreferences_BrowseForApplication; LANGPreferences_DefaultS := LANGitPreferences_DefaultS; LANGPreferences_SelectFont := LANGitPreferences_SelectFont; LANGBookmarkButton_Tooltip := LANGitBookmarkButton_Tooltip; LANGUpButton_Tooltip := LANGitUpButton_Tooltip; LANGRootButton_Tooltip := LANGitRootButton_Tooltip; LANGHomeButton_Tooltip := LANGitHomeButton_Tooltip; LANGLeftEqualButton_Tooltip := LANGitLeftEqualButton_Tooltip; LANGRightEqualButton_Tooltip := LANGitRightEqualButton_Tooltip; LANGmiShowDirectorySizes_Caption := LANGitmiShowDirectorySizes_Caption; LANGmiTargetSource_Caption := LANGitmiTargetSource_Caption; LANGFileTypeDirectory := LANGitFileTypeDirectory; LANGFileTypeFile := LANGitFileTypeFile; LANGFileTypeMetafile := LANGitFileTypeMetafile; LANGPreferencesPanelsPage := LANGitPreferencesPanelsPage; LANGPreferencesApplicationsPage := LANGitPreferencesApplicationsPage; LANGPreferencesExperimentalPage := LANGitPreferencesExperimentalPage; LANGPreferencesSelectAllDirectoriesCheckBox_Caption := LANGitPreferencesSelectAllDirectoriesCheckBox_Caption; LANGPreferencesNewStyleAltOCheckBox_Caption := LANGitPreferencesNewStyleAltOCheckBox_Caption; LANGPreferencesNewStyleAltOCheckBox_Tooltip := LANGitPreferencesNewStyleAltOCheckBox_Tooltip; LANGPreferencesShowFuncButtonsCheckBox_Caption := LANGitPreferencesShowFuncButtonsCheckBox_Caption; LANGPreferencesSizeFormatLabel_Caption := LANGitPreferencesSizeFormatLabel_Caption; LANGPreferencesmiSizeFormat1 := LANGitPreferencesmiSizeFormat1; LANGPreferencesmiSizeFormat6 := LANGitPreferencesmiSizeFormat6; LANGPreferencesAutodetectXApp := LANGitPreferencesAutodetectXApp; LANGPreferencesAlwaysRunInTerminal := LANGitPreferencesAlwaysRunInTerminal; LANGPreferencesNeverRunInTerminal := LANGitPreferencesNeverRunInTerminal; LANGPreferencesCmdLineBehaviourLabel_Caption := LANGitPreferencesCmdLineBehaviourLabel_Caption; LANGPreferencesFeatures := LANGitPreferencesFeatures; LANGPreferencesDisableMouseRename_Tooltip := LANGitPreferencesDisableMouseRename_Tooltip; LANGPreferencesDisableFileTipsCheckBox_Caption := LANGitPreferencesDisableFileTipsCheckBox_Caption; LANGPreferencesDisableFileTipsCheckBox_Tooltip := LANGitPreferencesDisableFileTipsCheckBox_Tooltip; LANGPreferencesShow := LANGitPreferencesShow; LANGPreferencesDirsInBoldCheckBox_Caption := LANGitPreferencesDirsInBoldCheckBox_Caption; LANGPreferencesDisableDirectoryBracketsCheckBox_Caption := LANGitPreferencesDisableDirectoryBracketsCheckBox_Caption; LANGPreferencesOctalPermissionsCheckBox_Caption := LANGitPreferencesOctalPermissionsCheckBox_Caption; LANGPreferencesOctalPermissionsCheckBox_Tooltip := LANGitPreferencesOctalPermissionsCheckBox_Tooltip; LANGPreferencesMovement := LANGitPreferencesMovement; LANGPreferencesLynxLikeMotionCheckBox_Caption := LANGitPreferencesLynxLikeMotionCheckBox_Caption; LANGPreferencesInsertMovesDownCheckBox_Caption := LANGitPreferencesInsertMovesDownCheckBox_Caption; LANGPreferencesSpaceMovesDownCheckBox_Caption := LANGitPreferencesSpaceMovesDownCheckBox_Caption; LANGPreferencesViewer := LANGitPreferencesViewer; LANGPreferencesCommandSC := LANGitPreferencesCommandSC; LANGPreferencesUseInternalViewer := LANGitPreferencesUseInternalViewer; LANGPreferencesEditor := LANGitPreferencesEditor; LANGPreferencesTerminal := LANGitPreferencesTerminal; LANGPreferencesExperimentalFeatures := LANGitPreferencesExperimentalFeatures; LANGPreferencesExperimentalWarningLabel_Caption := LANGitPreferencesExperimentalWarningLabel_Caption; LANGPreferencesFocusRefreshCheckBox_Caption := LANGitPreferencesFocusRefreshCheckBox_Caption; LANGPreferencesFocusRefreshCheckBox_Tooltip := LANGitPreferencesFocusRefreshCheckBox_Tooltip; LANGPreferencesWMCompatModeCheckBox_Caption := LANGitPreferencesWMCompatModeCheckBox_Caption; LANGPreferencesWMCompatModeCheckBox_Tooltip := LANGitPreferencesWMCompatModeCheckBox_Tooltip; LANGPreferencesCompatUseLibcSystemCheckBox_Caption := LANGitPreferencesCompatUseLibcSystemCheckBox_Caption; LANGPreferencesCompatUseLibcSystemCheckBox_Tooltip := LANGitPreferencesCompatUseLibcSystemCheckBox_Tooltip; LANGmiSearchCaption2 := LANGitmiSearchCaption2; LANGmiNoMounterBarCaption := LANGitmiNoMounterBarCaption; LANGmiShowOneMounterBarCaption := LANGitmiShowOneMounterBarCaption; LANGmiShowTwoMounterBarCaption := LANGitmiShowTwoMounterBarCaption; LANGmnuNetworkCaption := LANGitmnuNetworkCaption; LANGmiConnectionsCaption := LANGitmiConnectionsCaption; LANGmiOpenConnectionCaption := LANGitmiOpenConnectionCaption; LANGmiQuickConnectCaption := LANGitmiQuickConnectCaption; LANGmnuPluginsCaption := LANGitmnuPluginsCaption; LANGmiTestPluginCaption := LANGitmiTestPluginCaption; LANGmiMounterSettingsCaption := LANGitmiMounterSettingsCaption; LANGmiColumnsCaption := LANGitmiColumnsCaption; LANGmiSavePositionCaption := LANGitmiSavePositionCaption; LANGmiMountCaption := LANGitmiMountCaption; LANGmiUmountCaption := LANGitmiUmountCaption; LANGmiEjectCaption := LANGitmiEjectCaption; LANGmiDuplicateTabCaption := LANGitmiDuplicateTabCaption; LANGmiCloseTabCaption := LANGitmiCloseTabCaption; LANGmiCloseAllTabsCaption := LANGitmiCloseAllTabsCaption; LANGCannotDetermineDestinationEngine := LANGitCannotDetermineDestinationEngine; LANGCannotLoadFile := LANGitCannotLoadFile; LANGMountPointDevice := LANGitMountPointDevice; LANGMountSC := LANGitMountSC; LANGNoPluginsFound := LANGitNoPluginsFound; LANGPluginAbout := LANGitPluginAbout; LANGCouldntOpenURI := LANGitCouldntOpenURI; LANGPluginAboutInside := LANGitPluginAboutInside; LANGAreYouSureCloseAllTabs := LANGitAreYouSureCloseAllTabs; LANGCouldntOpenURIArchive := LANGitCouldntOpenURIArchive; LANGThereIsNoModuleAvailable := LANGitThereIsNoModuleAvailable; LANGIgnoreError := LANGitIgnoreError; LANGErrorMount := LANGitErrorMount; LANGErrorUmount := LANGitErrorUmount; LANGErrorEject := LANGitErrorEject; LANGMounterPrefs_Caption := LANGitMounterPrefs_Caption; LANGMounterPrefs_TitleLabelCaption := LANGitMounterPrefs_TitleLabelCaption; LANGMounterPrefs_ListViewFrameCaption := LANGitMounterPrefs_ListViewFrameCaption; LANGMounterPrefs_MountName := LANGitMounterPrefs_MountName; LANGMounterPrefs_MountPoint := LANGitMounterPrefs_MountPoint; LANGMounterPrefs_Device := LANGitMounterPrefs_Device; LANGMounterPrefs_MoveUpButtonTooltip := LANGitMounterPrefs_MoveUpButtonTooltip; LANGMounterPrefs_MoveDownButtonTooltip := LANGitMounterPrefs_MoveDownButtonTooltip; LANGMounterPrefs_UseFSTabDefaultsCheckBox := LANGitMounterPrefs_UseFSTabDefaultsCheckBox; LANGMounterPrefs_UseFSTabDefaultsCheckBoxTooltip := LANGitMounterPrefs_UseFSTabDefaultsCheckBoxTooltip; LANGMounterPrefs_ToggleModeCheckBox := LANGitMounterPrefs_ToggleModeCheckBox; LANGMounterPrefs_ToggleModeCheckBoxTooltip := LANGitMounterPrefs_ToggleModeCheckBoxTooltip; LANGMounterPrefs_PropertiesFrameCaption := LANGitMounterPrefs_PropertiesFrameCaption; LANGMounterPrefs_DisplayTextLabelCaption := LANGitMounterPrefs_DisplayTextLabelCaption; LANGMounterPrefs_MountPointLabelCaption := LANGitMounterPrefs_MountPointLabelCaption; LANGMounterPrefs_MountDeviceLabelCaption := LANGitMounterPrefs_MountDeviceLabelCaption; LANGMounterPrefs_DeviceTypeLabelCaption := LANGitMounterPrefs_DeviceTypeLabelCaption; LANGMounterPrefs_miLocalDiskCaption := LANGitMounterPrefs_miLocalDiskCaption; LANGMounterPrefs_miRemovableCaption := LANGitMounterPrefs_miRemovableCaption; LANGMounterPrefs_miCDCaption := LANGitMounterPrefs_miCDCaption; LANGMounterPrefs_miFloppyCaption := LANGitMounterPrefs_miFloppyCaption; LANGMounterPrefs_miNetworkCaption := LANGitMounterPrefs_miNetworkCaption; LANGMounterPrefs_MountCommandLabelCaption := LANGitMounterPrefs_MountCommandLabelCaption; LANGMounterPrefs_UmountCommandLabelCaption := LANGitMounterPrefs_UmountCommandLabelCaption; LANGMounterPrefs_MountCommandEntryTooltip := LANGitMounterPrefs_MountCommandEntryTooltip; LANGMounterPrefs_UmountCommandEntryTooltip := LANGitMounterPrefs_UmountCommandEntryTooltip; LANGMounterPrefs_IconLabelCaption := LANGitMounterPrefs_IconLabelCaption; LANGConnMgr_Caption := LANGitConnMgr_Caption; LANGConnMgr_ConnectButton := LANGitConnMgr_ConnectButton; LANGConnMgr_OpenConnection := LANGitConnMgr_OpenConnection; LANGConnMgr_NameColumn := LANGitConnMgr_NameColumn; LANGConnMgr_URIColumn := LANGitConnMgr_URIColumn; LANGConnMgr_AddConnectionButtonCaption := LANGitConnMgr_AddConnectionButtonCaption; LANGConnMgr_AddConnectionButtonTooltip := LANGitConnMgr_AddConnectionButtonTooltip; LANGConnMgr_EditButtonCaption := LANGitConnMgr_EditButtonCaption; LANGConnMgr_EditButtonTooltip := LANGitConnMgr_EditButtonTooltip; LANGConnMgr_RemoveButtonCaption := LANGitConnMgr_RemoveButtonCaption; LANGConnMgr_RemoveButtonTooltip := LANGitConnMgr_RemoveButtonTooltip; LANGConnMgr_DoYouWantDelete := LANGitConnMgr_DoYouWantDelete; LANGConnProp_FTP := LANGitConnProp_FTP; LANGConnProp_SFTP := LANGitConnProp_SFTP; LANGConnProp_SMB := LANGitConnProp_SMB; LANGConnProp_HTTP := LANGitConnProp_HTTP; LANGConnProp_HTTPS := LANGitConnProp_HTTPS; LANGConnProp_Other := LANGitConnProp_Other; LANGConnProp_Caption := LANGitConnProp_Caption; LANGConnProp_VFSModule := LANGitConnProp_VFSModule; LANGConnProp_URI := LANGitConnProp_URI; LANGConnProp_URIEntryTooltip := LANGitConnProp_URIEntryTooltip; LANGConnProp_DetailedInformations := LANGitConnProp_DetailedInformations; LANGConnProp_Name := LANGitConnProp_Name; LANGConnProp_Server := LANGitConnProp_Server; LANGConnProp_Username := LANGitConnProp_Username; LANGConnProp_UserNameEntryTooltip := LANGitConnProp_UserNameEntryTooltip; LANGConnProp_Password := LANGitConnProp_Password; LANGConnProp_TargetDirectory := LANGitConnProp_TargetDirectory; LANGConnProp_ServiceType := LANGitConnProp_ServiceType; LANGConnProp_MaskPassword := LANGitConnProp_MaskPassword; LANGConnProp_MenuItemCaption := LANGitConnProp_MenuItemCaption; LANGConnLogin_Caption := LANGitConnLogin_Caption; LANGConnLogin_Login := LANGitConnLogin_Login; LANGConnLogin_ExperimentalWarningLabelCaption := LANGitConnLogin_ExperimentalWarningLabelCaption; LANGConnLogin_Username := LANGitConnLogin_Username; LANGConnLogin_Password := LANGitConnLogin_Password; LANGConnLogin_AnonymousCheckButton := LANGitConnLogin_AnonymousCheckButton; LANGColumns_Caption := LANGitColumns_Caption; LANGColumns_Title := LANGitColumns_Title; LANGColumns_MoveUpButtonTooltip := LANGitColumns_MoveUpButtonTooltip; LANGColumns_MoveDownButtonTooltip := LANGitColumns_MoveDownButtonTooltip; LANGColumns_TitlesLongName := LANGitColumns_TitlesLongName; LANGColumns_TitlesLongNameExt := LANGitColumns_TitlesLongNameExt; LANGColumns_TitlesLongExt := LANGitColumns_TitlesLongExt; LANGColumns_TitlesLongSize := LANGitColumns_TitlesLongSize; LANGColumns_TitlesLongDateTime := LANGitColumns_TitlesLongDateTime; LANGColumns_TitlesLongDate := LANGitColumns_TitlesLongDate; LANGColumns_TitlesLongTime := LANGitColumns_TitlesLongTime; LANGColumns_TitlesLongUser := LANGitColumns_TitlesLongUser; LANGColumns_TitlesLongGroup := LANGitColumns_TitlesLongGroup; LANGColumns_TitlesLongAttr := LANGitColumns_TitlesLongAttr; LANGColumns_TitlesShortName := LANGitColumns_TitlesShortName; LANGColumns_TitlesShortNameExt := LANGitColumns_TitlesShortNameExt; LANGColumns_TitlesShortExt := LANGitColumns_TitlesShortExt; LANGColumns_TitlesShortSize := LANGitColumns_TitlesShortSize; LANGColumns_TitlesShortDateTime := LANGitColumns_TitlesShortDateTime; LANGColumns_TitlesShortDate := LANGitColumns_TitlesShortDate; LANGColumns_TitlesShortTime := LANGitColumns_TitlesShortTime; LANGColumns_TitlesShortUser := LANGitColumns_TitlesShortUser; LANGColumns_TitlesShortGroup := LANGitColumns_TitlesShortGroup; LANGColumns_TitlesShortAttr := LANGitColumns_TitlesShortAttr; LANGTestPlugin_Caption := LANGitTestPlugin_Caption; LANGTestPlugin_Title := LANGitTestPlugin_Title; LANGTestPlugin_ExperimentalWarningLabelCaption := LANGitTestPlugin_ExperimentalWarningLabelCaption; LANGTestPlugin_Plugin := LANGitTestPlugin_Plugin; LANGTestPlugin_Command := LANGitTestPlugin_Command; LANGTestPlugin_Username := LANGitTestPlugin_Username; LANGTestPlugin_Password := LANGitTestPlugin_Password; LANGTestPlugin_AnonymousCheckButton := LANGitTestPlugin_AnonymousCheckButton; LANGTestPlugin_NoPluginsFound := LANGitTestPlugin_NoPluginsFound; LANGRemoteWait_Caption := LANGitRemoteWait_Caption; LANGRemoteWait_OperationInProgress := LANGitRemoteWait_OperationInProgress; LANGRemoteWait_ItemsFound := LANGitRemoteWait_ItemsFound; LANGSearch_Bytes := LANGitSearch_Bytes; LANGSearch_kB := LANGitSearch_kB; LANGSearch_MB := LANGitSearch_MB; LANGSearch_days := LANGitSearch_days; LANGSearch_weeks := LANGitSearch_weeks; LANGSearch_months := LANGitSearch_months; LANGSearch_years := LANGitSearch_years; LANGSearch_Caption := LANGitSearch_Caption; LANGSearch_General := LANGitSearch_General; LANGSearch_Advanced := LANGitSearch_Advanced; LANGSearch_SearchResults := LANGitSearch_SearchResults; LANGSearch_SearchFor := LANGitSearch_SearchFor; LANGSearch_FileMaskEntryTooltip := LANGitSearch_FileMaskEntryTooltip; LANGSearch_SearchIn := LANGitSearch_SearchIn; LANGSearch_SearchArchivesCheckButton := LANGitSearch_SearchArchivesCheckButton; LANGSearch_FindText := LANGitSearch_FindText; LANGSearch_FindTextEntryTooltip := LANGitSearch_FindTextEntryTooltip; LANGSearch_CaseSensitiveCheckButton := LANGitSearch_CaseSensitiveCheckButton; LANGSearch_StayCurrentFSCheckButton := LANGitSearch_StayCurrentFSCheckButton; LANGSearch_CaseSensitiveMatchCheckButton := LANGitSearch_CaseSensitiveMatchCheckButton; LANGSearch_Size := LANGitSearch_Size; LANGSearch_Date := LANGitSearch_Date; LANGSearch_BiggerThan := LANGitSearch_BiggerThan; LANGSearch_SmallerThan := LANGitSearch_SmallerThan; LANGSearch_ModifiedBetweenRadioButton := LANGitSearch_ModifiedBetweenRadioButton; LANGSearch_NotModifiedAfterRadioButton := LANGitSearch_NotModifiedAfterRadioButton; LANGSearch_ModifiedLastRadioButton := LANGitSearch_ModifiedLastRadioButton; LANGSearch_ModifiedNotLastRadionButton := LANGitSearch_ModifiedNotLastRadionButton; LANGSearch_ModifiedBetweenEntry1 := LANGitSearch_ModifiedBetweenEntry1; LANGSearch_ViewButtonCaption := LANGitSearch_ViewButtonCaption; LANGSearch_NewSearchButtonCaption := LANGitSearch_NewSearchButtonCaption; LANGSearch_GoToFileButtonCaption := LANGitSearch_GoToFileButtonCaption; LANGSearch_FeedToListboxButtonCaption := LANGitSearch_FeedToListboxButtonCaption; LANGSearch_StatusSC := LANGitSearch_StatusSC; LANGSearch_Ready := LANGitSearch_Ready; LANGSearch_PreparingToSearch := LANGitSearch_PreparingToSearch; LANGSearch_SearchInProgress := LANGitSearch_SearchInProgress; LANGSearch_UserCancelled := LANGitSearch_UserCancelled; LANGSearch_SearchFinished := LANGitSearch_SearchFinished; LANGSearch_FilesFound := LANGitSearch_FilesFound; LANGSearch_And := LANGitSearch_And; LANGCloseOpenConnection := LANGitCloseOpenConnection; LANGDuplicateTabWarning := LANGitDuplicateTabWarning; LANGDontShowAgain := LANGitDontShowAgain; LANGSwitchOtherPanelWarning := LANGitSwitchOtherPanelWarning; LANGOpenConnectionsWarning := LANGitOpenConnectionsWarning; LANGmiDisconnect_Caption := LANGitmiDisconnect_Caption; LANGDisconnectButton_Tooltip := LANGitDisconnectButton_Tooltip; LANGLeaveArchiveButton_Tooltip := LANGitLeaveArchiveButton_Tooltip; LANGOpenTerminalButton_Tooltip := LANGitOpenTerminalButton_Tooltip; LANGOpenTerminalButton_Caption := LANGitOpenTerminalButton_Caption; LANGShowTextUIDsCheckBox_Caption := LANGitShowTextUIDsCheckBox_Caption; LANGShowTextUIDsCheckBox_Tooltip := LANGitShowTextUIDsCheckBox_Tooltip; LANGmiNewTab_Caption := LANGitmiNewTab_Caption; LANGFilePopupMenu_Properties := LANGitFilePopupMenu_Properties; LANGCommandEntry_Tooltip := LANGitCommandEntry_Tooltip; LANGmiFiles_Caption := LANGitmiFiles_Caption; LANGPasswordButton_Tooltip := LANGitPasswordButton_Tooltip; LANGHandleRunFromArchive_Bytes := LANGitHandleRunFromArchive_Bytes; LANGHandleRunFromArchive_FileTypeDesc_Unknown := LANGitHandleRunFromArchive_FileTypeDesc_Unknown; LANGHandleRunFromArchive_NotAssociated := LANGitHandleRunFromArchive_NotAssociated; LANGHandleRunFromArchive_SelfExecutable := LANGitHandleRunFromArchive_SelfExecutable; LANGHandleRunFromArchive_CouldntCreateTemporaryDirectory := LANGitHandleRunFromArchive_CouldntCreateTemporaryDirectory; LANGFRunFromVFS_Caption := LANGitFRunFromVFS_Caption; LANGFRunFromVFS_TitleLabel := LANGitFRunFromVFS_TitleLabel; LANGFRunFromVFS_FileNameLabel := LANGitFRunFromVFS_FileNameLabel; LANGFRunFromVFS_FileTypeLabel := LANGitFRunFromVFS_FileTypeLabel; LANGFRunFromVFS_SizeLabel := LANGitFRunFromVFS_SizeLabel; LANGFRunFromVFS_PackedSizeLabel := LANGitFRunFromVFS_PackedSizeLabel; LANGFRunFromVFS_DateLabel := LANGitFRunFromVFS_DateLabel; LANGFRunFromVFS_InfoLabel := LANGitFRunFromVFS_InfoLabel; LANGFRunFromVFS_OpensWithLabel := LANGitFRunFromVFS_OpensWithLabel; LANGFRunFromVFS_ExecuteButton := LANGitFRunFromVFS_ExecuteButton; LANGFRunFromVFS_ExecuteAllButton := LANGitFRunFromVFS_ExecuteAllButton; LANGFSetPassword_Caption := LANGitFSetPassword_Caption; LANGFSetPassword_Label1_Caption := LANGitFSetPassword_Label1_Caption; LANGFSetPassword_Label2_Caption := LANGitFSetPassword_Label2_Caption; LANGFSetPassword_ShowPasswordCheckButton := LANGitFSetPassword_ShowPasswordCheckButton; LANGCopyFileNamesToClipboard := LANGitCopyFileNamesToClipboard; LANGCopyFullPathNamesToClipboard := LANGitCopyFullPathNamesToClipboard; LANGCopyPathToClipboard := LANGitCopyPathToClipboard; LANGPreferences_DateFormatLabel_Caption := LANGitPreferences_DateFormatLabel_Caption; LANGPreferences_System := LANGitPreferences_System; LANGPreferences_Custom := LANGitPreferences_Custom; LANGPreferences_CustomDateFormatEntry_Tooltip := LANGitPreferences_CustomDateFormatEntry_Tooltip; LANGPreferences_TimeFormatLabel_Caption := LANGitPreferences_TimeFormatLabel_Caption; LANGPreferences_CustomTimeFormatEntry_Tooltip := LANGitPreferences_CustomTimeFormatEntry_Tooltip; LANGPreferences_DateTimeFormatLabel_Caption := LANGitPreferences_DateTimeFormatLabel_Caption; LANGPreferences_QuickRenameSkipExtCheckBox := LANGitPreferences_QuickRenameSkipExtCheckBox; LANGPreferences_QuickRenameSkipExtCheckBox_Tooltip := LANGitPreferences_QuickRenameSkipExtCheckBox_Tooltip; LANGPreferences_SortDirectoriesLikeFilesCheckBox := LANGitPreferences_SortDirectoriesLikeFilesCheckBox; LANGPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip := LANGitPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip; LANGPreferences_QuickSearchLabel_Caption := LANGitPreferences_QuickSearchLabel_Caption; LANGPreferences_QuickSearchOptionMenu_Tooltip := LANGitPreferences_QuickSearchOptionMenu_Tooltip; LANGPreferences_QuickSearch_Option1 := LANGitPreferences_QuickSearch_Option1; LANGPreferences_QuickSearch_Option2 := LANGitPreferences_QuickSearch_Option2; LANGPreferences_QuickSearch_Option3 := LANGitPreferences_QuickSearch_Option3; LANGPreferences_QuickSearch_Option4 := LANGitPreferences_QuickSearch_Option4; LANGPreferences_TempPathLabel_Caption := LANGitPreferences_TempPathLabel_Caption; LANGPreferences_VFSTempPathLabel_Caption := LANGitPreferences_VFSTempPathLabel_Caption; LANGPreferences_VFSTempPathEntry_Tooltip := LANGitPreferences_VFSTempPathEntry_Tooltip; LANGPreferences_RightClickSelectCheckBox := LANGitPreferences_RightClickSelectCheckBox; LANGPreferences_RightClickSelectCheckBox_Tooltip := LANGitPreferences_RightClickSelectCheckBox_Tooltip; LANGGtkMountOperation_ConnectAnonymously := LANGitGtkMountOperation_ConnectAnonymously; LANGGtkMountOperation_ConnectAsUser := LANGitGtkMountOperation_ConnectAsUser; LANGGtkMountOperation_Username := LANGitGtkMountOperation_Username; LANGGtkMountOperation_Domain := LANGitGtkMountOperation_Domain; LANGGtkMountOperation_Password := LANGitGtkMountOperation_Password; LANGGtkMountOperation_DoNotSavePassword := LANGitGtkMountOperation_DoNotSavePassword; LANGGtkMountOperation_ForgetPasswordImmediately := LANGitGtkMountOperation_ForgetPasswordImmediately; LANGGtkMountOperation_RememberPasswordUntilYouLogout := LANGitGtkMountOperation_RememberPasswordUntilYouLogout; LANGGtkMountOperation_SavePasswordInConnectionManager := LANGitGtkMountOperation_SavePasswordInConnectionManager; LANGGtkMountOperation_RememberForever := LANGitGtkMountOperation_RememberForever; LANGFSymlink_RelativePath := LANGitFSymlink_RelativePath; LANGFConnectionManager_DuplicateButton_Caption := LANGitFConnectionManager_DuplicateButton_Caption; LANGFConnectionManager_DuplicateButton_Tooltip := LANGitFConnectionManager_DuplicateButton_Tooltip; LANGFConnectionManager_DoNotSavePasswordsCheckBox_Label := LANGitFConnectionManager_DoNotSavePasswordsCheckBox_Label; LANGFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip := LANGitFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip; LANGFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label := LANGitFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label; LANGFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip := LANGitFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip; LANGFConnectionManager_DuplicateMenuItem_Caption := LANGitFConnectionManager_DuplicateMenuItem_Caption; LANGFQuickConnect_Caption := LANGitFQuickConnect_Caption; LANGFQuickConnect_TitleLabel_Caption := LANGitFQuickConnect_TitleLabel_Caption; LANGFQuickConnect_ConnectToURILabel_Caption := LANGitFQuickConnect_ConnectToURILabel_Caption; LANGLinkToS := LANGitLinkToS; LANGOpenDirectoryInBackgroundTab := LANGitOpenDirectoryInBackgroundTab; LANGTheActiveConnectionHasNotBeenSaved := LANGitTheActiveConnectionHasNotBeenSaved; LANGTheArchiveIsEncryptedAndRequiresPassword := LANGitTheArchiveIsEncryptedAndRequiresPassword; end; initialization AddTranslation('IT', @SetTranslation); AddTranslation('it_IT', @SetTranslation); end. tuxcmd-0.6.70+dfsg/translations/UTranslation_RU.pas0000644000175000017500000027722211300022643021327 0ustar salvisalvi(* Tux Commander - UTranslation_RU - Russian Localization constants Copyright (C) 2008 Gvorcek Spajreh Copyright (C) 2004 Maxim Baranov 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UTranslation_RU; interface implementation uses ULocale; const LANGruF2Button_Caption = 'F2 - Переименов'; LANGruF3Button_Caption = 'F3 - ПроÑмотр'; LANGruF4Button_Caption = 'F4 - Правка'; LANGruF5Button_Caption = 'F5 - КопиÑ'; LANGruF6Button_Caption = 'F6 - Перемещ'; LANGruF7Button_Caption = 'F7 - Каталог'; LANGruF8Button_Caption = 'F8 - Удалить'; LANGrumnuFile_Caption = '_Файл'; LANGrumnuMark_Caption = '_Выбор'; LANGrumnuCommands_Caption = 'Коман_ды'; LANGrumnuHelp_Caption = '_Справка'; LANGrumiExit_Caption = 'Ð’_ыход'; LANGrumiSelectGroup_Caption = 'Выделить _группу...'; LANGrumiUnselectGroup_Caption = '_СнÑть Выделение...'; LANGrumiSelectAll_Caption = 'Ð’Ñ‹_делить Ð’Ñе'; LANGrumiUnselectAll_Caption = 'Сн_Ñть вÑе выделение'; LANGrumiInvertSelection_Caption = '_Инвертировать выделение'; LANGrumiRefresh_Caption = 'О_бновить окно'; LANGrumiAbout_Caption = '_О Программе...'; LANGruColumn1_Caption = 'ИмÑ'; LANGruColumn2_Caption = 'Тип'; LANGruColumn3_Caption = 'Размер'; LANGruColumn4_Caption = 'Дата'; LANGruColumn5_Caption = 'Ðтрибуты'; LANGruExpandSelection = 'РаÑширить выделение'; LANGruShrinkSelection = 'Уменьшить выделение'; LANGruNoMatchesFound = 'Такие файлы не найдены.'; LANGruNoFilesSelected = 'Ðет выбранных файлов.'; LANGruSelectedFilesDirectories = '%d файла(ов)/каталога(ов)'; LANGruDirectoryS = 'каталог %s'; LANGruFileS = 'файл %s'; LANGruDoYouReallyWantToDeleteTheS = 'ДейÑтвительно удалить %s ?'; LANGruDoYouReallyWantToDeleteTheSS = 'ДейÑтвительно удалить %s ?'#10'%s'; LANGruCopyFiles = 'Копировать файлы'; LANGruMoveRenameFiles = 'Переименовать/ПеремеÑтить файлы'; LANGruCopyDFileDirectoriesTo = 'Копировать %d файла(ов)/каталога(ов) в'; LANGruMoveRenameDFileDirectoriesTo = 'Переименовать/ПеремеÑтить %d файла(ов)/каталога(ов) в'; LANGruCopySC = 'Копировать:'; LANGruMoveRenameSC = 'Переименовать/ПеремеÑтить:'; LANGruQuickFind = ' ПоиÑк:'; LANGruAboutString = 'Tux Commander'#10'Version %s'#10'Build date: %s'#10#10'Copyright (c) 2009 Tomáš Bžatek'#10'E-mail: tbzatek@users.sourceforge.net'#10'Website: http://tuxcmd.sourceforge.net/'#10'Об ошибках перевода пишите на gotham48@gmail.com'; LANGruAboutStringGnome = 'version %s'#10'Build date: %s'#10'Website: http://tuxcmd.sourceforge.net/'; LANGruDiskStatFmt = '%s из %s Ñвободно'; LANGruDiskStatVolNameFmt = '[%s] %s из %s кБ Ñвободно'; LANGruStatusLineFmt = 'выбрано: %s из %s , файлов: %d из %d'; LANGruPanelStrings : array[boolean] of string = ('правой', 'левой'); LANGruDIR = ''; LANGruErrorGettingListingForSPanel = 'Ðевозможно получить ÑпиÑок Ð´Ð»Ñ %s панели:'#10' %s'#10#10'Путь = ''%s'''; LANGruErrorGettingListingForSPanelNoPath = 'Ðевозможно получить ÑпиÑок Ð´Ð»Ñ %s панели:'#10' %s'; LANGruErrorCreatingNewDirectorySInSPanel = 'Ошибка ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ каталога ''%s'' в %s панели:'#10' %s'; LANGruErrorCreatingNewDirectorySInSPanelNoPath = 'Ошибка ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ каталога в %s панели:'#10' %s'; LANGruTheFileDirectory = 'Файл/Каталог'; LANGruCouldNotBeDeleted = 'не может быть удален'; LANGruCouldNotBeDeletedS = 'не может быть удален: %s'; LANGruUserCancelled = 'Прервано пользователем'; LANGruTheDirectorySIsNotEmpty = 'Каталог %s Ñодержит файлы и/или подкаталоги.'; LANGruCannotCopyFile = 'Ðе могу Ñкопировать файл'; LANGruCopyError = 'Ошибка ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð²'; LANGruMoveError = 'Ошибка Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð²'; LANGruOverwriteS = 'Заменить: %s'; LANGruWithFileS = 'Файлом: %s'; LANGruOvewriteSBytesS = '%s байт, %s'; LANGruTheFile = 'Файл'; LANGruCopy = 'Копировать'; LANGruMove = 'ПеремеÑтить'; LANGruTheDirectory = 'Каталог'; LANGruTheSymbolicLink = 'Ð¡Ð¸Ð¼Ð²Ð¾Ð»ÑŒÐ½Ð°Ñ ÑÑылка'; LANGruCannotMoveFile = 'Ðе могу преремеÑтить файл'; LANGruCouldNotBeCreated = 'не может быть Ñоздан'; LANGruCouldNotBeCreatedS = 'не может быть Ñоздан: %s'; LANGruFromS = 'Из: %s'; LANGruToS = 'Ð’: %s'; LANGruCannotCopyFileToItself = 'ÐÐµÐ»ÑŒÐ·Ñ Ñкопировать файл Ñам в ÑебÑ'; LANGruMemoryAllocationFailed = 'Ðе хватает памÑти:'; LANGruCannotOpenSourceFile = 'Ðе могу открыть иÑходный файл'; LANGruCannotOpenDestinationFile = 'Ðе могу Ñоздать выходной файл'; LANGruCannotCloseDestinationFile = 'Ðе могу закрыть выходной файл'; LANGruCannotCloseSourceFile = 'Ðе могу закрыть иÑходный файл'; LANGruCannotReadFromSourceFile = 'Ошибка Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð¸Ñходного файла'; LANGruCannotWriteToDestinationFile = 'Ошибка запиÑи в выходной файл'; LANGruUnknownException = 'ÐеизвеÑтное иÑключение'; LANGruNoAccess = 'Ðет доÑтупа'; LANGruUnknownError = 'ÐеизвеÑÑ‚Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°'; LANGruCreateANewDirectory = 'Создать новый каталог'; LANGruEnterDirectoryName = 'Укажите Ð¸Ð¼Ñ _каталога:'; LANGruOverwriteQuestion = 'Подтверждение замены'; LANGruOverwriteButton_Caption = '_Заменить'; LANGruOverwriteAllButton_Caption = 'Заменить _вÑе'; LANGruSkipButton_Caption = '_ПропуÑтить'; LANGruOverwriteAllOlderButton_Caption = 'Заменить более _Ñтарые'; LANGruSkipAllButton_Caption = 'ПропуÑтить вÑ_е'; LANGruRenameButton_Caption = 'Пере_именовать'; LANGruAppendButton_Caption = '_ДопиÑать'; LANGruRename = 'Переименовать'; LANGruRenameFile = 'Переименовать файл ''%s'' в'; LANGruIgnoreButton_Caption = '_Игнорировать'; LANGruProgress = 'ПрогреÑÑ'; LANGruCancel = '_Отмена'; LANGruDelete = 'Удалить:'; LANGruSpecifyFileType = '_Тип файла:'; LANGruRemoveDirectory = 'Удалить каталог'; LANGruDoYouWantToDeleteItWithAllItsFilesAndSubdirectories = 'Ð’Ñ‹ дейÑтвительно хотите удалить его целиком, Ñо вÑеми файлами и подкаталогами?'; LANGruRetry = '_Повторить'; LANGruDeleteButton_Caption = '_Удалить'; LANGruAll = '_Ð’Ñе'; LANGruCopyFilesSC = 'Копировать файлы:'; LANGruAppendQuestion = 'Ð’Ñ‹ дейÑтвительно хотите добавить файл ''%s'' в ''%s''?'; LANGruPreparingList = 'Подготовка ÑпиÑка...'; LANGruYouMustSelectAValidFile = 'выбран неверный файл!'; LANGrumiVerifyChecksums = 'Пров_ерить контрольную Ñумму'; LANGruVerifyChecksumsCaption = 'Проверка контрольной Ñуммы'; LANGruCheckButtonCaptionCheck = '_Проверка'; LANGruCheckButtonCaptionStop = '_ОÑтановить'; LANGruFileListTooltip = '[?] - Ðе Проверен'#10'[OK] - ÐšÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŒÐ½Ð°Ñ Ñумма ОК'#10'[BAD] - ÐŸÐ»Ð¾Ñ…Ð°Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŒÐ½Ð°Ñ Ñумма'#10'[N/A] - Файл не доÑтупен'; LANGruFilenameColumnCaption = 'Ð˜Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°'; LANGruTheFileSYouAreTryingToOpenIsQuiteBig = 'Файл ''%s'' Ñлишком большой. ВероÑтно, он не Ñодержит контрольной Ñуммы.'#10#10'Ð’Ñе равно продолжить?'; LANGruAnErrorOccuredWhileInitializingMemoryBlock = 'Ошибка инициализации блока памÑти. Закройте неÑколько программ и попробуйте еще раз.'; LANGruAnErrorOccuredWhileOpeningFileSS = 'Ошибка Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð° ''%s'':'#10' %s'; LANGruAnErrorOccuredWhileReadingFileSS = 'Ошибка Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð° ''%s'':'#10' %s'; LANGruChecksumNotChecked = 'СтатуÑ: Ðе Проверен'; LANGruChecksumChecking = 'СтатуÑ: ПроверÑÑŽ...'; LANGruChecksumInterrupted = 'СтатуÑ: Проверка прервана'; LANGruChecksumDOK = 'СтатуÑ: %d%% ОК'; LANGrumiCreateChecksumsCaption = '_Создать контрольные Ñуммы...'; LANGruYouMustSelectAtLeastOneFileToCalculateChecksum = 'Ðужно выбрать по крайней мере один файл Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŒÐ½Ð¾Ð¹ Ñуммы!'; LANGruCreateChecksumsCaption = 'Создание контрольных Ñумм'; LANGruCCHKSUMPage1Text = 'ЕÑли Ð’Ñ‹ не выбрали'#10'вÑе нужные Вам файлы, закройте Ñто окно и'#10'выберите оÑтальные файлы.'; LANGruCCHKSUMPage4Text = 'Друид готов к Ñозданию контрольных Ñумм'#10'Ð´Ð»Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ñ‹Ñ… файлов. Это может занÑть неÑколько минут.'#10'Ðажмите "Вперед" Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ.'; LANGruCCHKSUMPage6Text = 'Ошибка ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŒÐ½Ð¾Ð¹ Ñуммы:'; LANGruCCHKSUMPage7Text = 'Создание контрольных Ñумм завершено.'#10#10'Ðажмите "Завершить" Ð´Ð»Ñ Ð²Ñ‹Ñ…Ð¾Ð´Ð°.'; LANGruCCHKSUMPage1Title = 'Подготовка к Ñозданию контрольной Ñуммы'; LANGruCCHKSUMPage2Title = 'Выберите тип контрольной Ñуммы'; LANGruCCHKSUMPage3Title = 'Выберите Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°'; LANGruCCHKSUMPage4Title = 'Готов к Ñозданию контрольных Ñумм'; LANGruCCHKSUMPage5Title = 'Ð’ процеÑÑе...'; LANGruCCHKSUMPage6Title = 'Ошибка!'; LANGruCCHKSUMPage7Title = 'Готово'; LANGruCCHKSUMSFVFile = 'Файл SFV'; LANGruCCHKSUMMD5sumFile = 'Файл MD5'; LANGruCCHKSUMFileName = '_Ð˜Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°:'; LANGruCCHKSUMCreateSeparateChecksumFiles = 'Создать _отделные файлы контрольнух Ñумм'; LANGruCCHKSUMNowProcessingFileS = 'Ð’ прецеÑÑе ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð°: %s'; LANGruCCHKSUMFinishCaption = '_Завершить'; LANGruCCHKSUMAreYouSureYouWantToAbortTheProcessing = 'Хотите прервать текущий процеÑÑ?'; LANGruCCHKSUMAnErrorOccuredWhileOpeningFileSS = 'Ошибка Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð° ''%s'': %s'#10; LANGruCCHKSUMAnErrorOccuredWhileReadingFileSS = 'Ошибка Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð° ''%s'': %s'#10; LANGruCCHKSUMAnErrorOccuredWhileWritingFileSS = 'Ошибка запиÑи в файл ''%s'': %s'#10; LANGruAnErrorOccuredWhileWritingFileSS = 'Ошибка запиÑи в файл ''%s'':'#10' %s'; LANGruTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt = 'Файл ''%s'' уже ÑущеÑтвует. Хотите его заменить?'; LANGruTheTargetFileSCannotBeRemovedS = 'Ðевозможно удалить файл ''%s'' : %s'; LANGruMergeCaption = 'Объединить'; LANGruPleaseInsertNextDiskOrGiveDifferentLocation = 'ПожалуьÑта, вÑтавте Ñледующий диÑк, или укажите другой каталог: '; LANGruMergeOfSSucceeded = 'Объединение файла ''%s'' произошло уÑпешно (CRC checksum OK).'; LANGruWarningCreatedFileFailsCRCCheck = 'Внимание: Созданный файл имеет неверную контрольную Ñумму!'; LANGruMergeOfSSucceeded_NoCRCFileAvailable = 'Объединение ''%s'' произошло уÑпешно (без проверки контрольной Ñуммы).'; LANGruMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory = 'Объединить вÑе файлы начинающиеÑÑ Ñ ''%s'' в каталог:'; LANGruMergeSC = 'Объединение:'; LANGrumiSplitFileCaption = '_Разделить файл...'; LANGrumiMergeFilesCaption = '_Объеденить файлы...'; LANGruSplitTheFileSToDirectory = '_Разбить файл ''%s'' в каталог:'; LANGruSplitSC = 'Разбить:'; LANGruSplitFile = 'Разбить файл'; LANGruBytesPerFile = 'Разбить _на чаÑти размером:'; LANGruAutomatic = 'ÐвтоматичеÑки'; LANGruDeleteFilesOnTargetDisk = '_Удалить вÑе файлы на получателе (только Ð´Ð»Ñ Ñменных диÑков)'; LANGruSplitCaption = 'Разбить'; LANGruCannotOpenFileS = 'Ðевозможно открыть файл ''%s'''; LANGruCannotSplitTheFileToMoreThan999Parts = 'Ðевозможно разбить файл на более чем 999 чаÑтей!'; LANGruThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem = 'Каталог получатель %s Ñодержит файлы '#10' Ð’Ñ‹ дейÑтвительно хотите удалить его Ñодержимое?'; LANGruThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem = 'Каталог получатель Ñодержит %d файлов. Ð’Ñ‹ дейÑтвительно хотите удалить его Ñодержимое?'; LANGruAnErrorOccuredWhileOperationS = 'Ошибка во Ð²Ñ€ÐµÐ¼Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ: %s'; LANGruSplitOfSSucceeded = 'Разделение файла ''%s'' произошло уÑпешно.'; LANGruSplitOfSFailed = 'ÐевоÑможно разделить файл: %s'; LANGrumnuShow_Caption = 'Ð’_ид'; LANGrumiShowDotFiles_Caption = 'Показать _Ñкрытые файлы'; LANGruTheFileYouAreTryingToOpenIsQuiteBig = 'Открываемый файл Ñлишком большой. Программа Ð·Ð°Ð³Ñ€ÑƒÐ¶Ð°ÑŽÑ‰Ð°Ñ Ñтот файл может вызвать замедление ÑиÑтемы.'#10'Ð’Ñ‹ дейÑтвительно хотите продолжить'; LANGruCannotExecuteSPleaseCheckTheConfiguration = 'Ðевозможно выполнить ''%s''. Проверьте конфигурацию или произведите аÑÑоциацию типов файлов Ñначала.'; LANGruEdit = 'Правка'; LANGruEnterFilenameToEdit = '_Введите Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° Ð´Ð»Ñ Ð¿Ñ€Ð°Ð²ÐºÐ¸:'; LANGrumnuSettings_Caption = '_ÐаÑтройки'; LANGrumiFileTypes_Caption = '_Типы файлов...'; LANGruThereIsNoApplicationAssociatedWithS = 'Ðет приложений, аÑÑоциированных Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð¼ "%s".'#10#10'Ð’Ñ‹ хотите произвеÑти аÑÑоциацию ÑейчаÑ?'; LANGruErrorExecutingCommand = 'Ошибка Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ‹!'; LANGruEditFileTypesCaption = 'Типы файлов'; LANGruTitleLabel_Caption = 'ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ñ‚Ð¸Ð¿Ð¾Ð² файлов'; LANGruExtensionsColumn = 'Типы'; LANGruDescriptionColumn = 'ОпиÑание'; LANGruFileTypesList = 'СпиÑок типов файлов'; LANGruActionName = 'Ð˜Ð¼Ñ Ð´ÐµÐ¹ÑтвиÑ'; LANGruCommand = 'Команда'; LANGruSetDefaultActionButton_Caption = '_ИÑпользовать по умолчанию'; LANGruRunInTerminalCheckBox_Caption = 'ЗапуÑтить в _терминале'; LANGruAutodetectCheckBox_Caption = 'Ðвто-определение _графичеÑких программ'; LANGruBrowseButton_Caption = '_ПоиÑк...'; LANGruCommandLabel_Caption = 'Ко_манда:'; LANGruDescriptionLabel_Caption = '_ОпиÑание:'; LANGruFNameExtLabel_Caption = '_Добавить тип:'; LANGruNotebookPageExtensions = 'Тип файла'; LANGruNotebookPageActions = 'ДейÑтвиÑ'; LANGruDefault = ' (по умолчанию)'; LANGruCannotSaveFileTypeAssociationsBecauseOtherProcess = 'Ðевозможно Ñохранить цонфигурацию типов файлов: другой процеÑÑ Ð¾Ð±Ð½Ð¾Ð²Ð¸Ð» ее на диÑке.'; LANGruDefaultColor = 'Цвет по _умолчанию'; LANGruIcon = '_Значок:'; LANGruBrowseForIcon = 'Выбрерите значок'; LANGruSelectFileTypeColor = 'Выберите Цвет'; LANGruColor = '_Цвет:'; LANGrumiChangePermissions_Caption = 'Изменить _Права...'; LANGrumiChangeOwner_Caption = 'Изменить _Владельца/Группу...'; LANGrumiCreateSymlink_Caption = 'Со_здать СÑылку...'; LANGrumiEditSymlink_Caption = 'Пр_авить СÑылку'; LANGruChmodProgress = 'Изменить права:'; LANGruChownProgress = 'Изменить владельца:'; LANGruYouMustSelectAValidSymbolicLink = 'Ðеобходимо выбрать Ñимвольную ÑÑылку!'; LANGruPopupRunS = '_Выполнить %s'; LANGruPopupOpenS = '_Открыть %s'; LANGruPopupGoUp = 'Прейти на уровень в_ыше'; LANGruPopupOpenWithS = 'Открыть Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ %s'; LANGruPopupDefault = ' (по умолчанию)'; LANGruPopupOpenWith = 'Открыть Ñ Ð¿Ð¾Ð¼Ð¾_щью...'; LANGruPopupViewFile = '_ПроÑмотр файла'; LANGruPopupEditFile = 'Пр_авить файл'; LANGruPopupMakeSymlink = 'Ñоздать _ÑÑылку'; LANGruPopupRename = 'Переи_меновать'; LANGruPopupDelete = 'У_далить'; LANGruDialogChangePermissions = 'Изменить права'; LANGruCouldNotBeChmoddedS = 'Ðевозможно изменить права доÑтупа: %s'; LANGruDialogChangeOwner = 'Изменить владельца'; LANGruCouldNotBeChownedS = 'Ðевозможно изменить владельца: %s'; LANGruDialogMakeSymlink = 'Сим_воличеÑÐºÐ°Ñ ÑÑылка'; LANGruDialogEditSymlink = 'Пр_авить ÑÑылку'; LANGruFEditSymlink_Caption = 'Править Ñимвольную ÑÑылку'; LANGruFEditSymlink_SymbolicLinkFilename = '_Ð˜Ð¼Ñ Ñимвольной ÑÑылки:'; LANGruFEditSymlink_SymbolicLinkPointsTo = 'СÑылка указывает _на:'; LANGruFChmod_Caption = 'Права доÑтупа'; LANGruFChmod_PermissionFrame = 'Права'; LANGruFChmod_FileFrame = 'Файл'; LANGruFChmod_ApplyRecursivelyFor = 'Применить _РекурÑивно'; LANGruFChmod_miAllFiles = 'Ð”Ð»Ñ Ð²Ñех файлов и каталогов'; LANGruFChmod_miDirectories = 'Только Ð´Ð»Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ð¾Ð²'; LANGruFChmod_OctalLabel = '_ВоÑьмеричный:'; LANGruFChmod_SUID = 'SUID - УÑтановить идентификатор пользователÑ'; LANGruFChmod_SGID = 'SGID - УÑтановить идентификатор группы'; LANGruFChmod_Sticky = 'Закрепить'; LANGruFChmod_RUSR = 'RUSR - Чтение Ð´Ð»Ñ Ð²Ð»Ð°Ð´ÐµÐ»ÑŒÑ†Ð°'; LANGruFChmod_WUSR = 'WUSR - ЗапиÑÑŒ Ð´Ð»Ñ Ð²Ð»Ð°Ð´ÐµÐ»ÑŒÑ†Ð°'; LANGruFChmod_XUSR = 'XUSR - Выполнение/ПоиÑк Ð´Ð»Ñ Ð²Ð»Ð°Ð´ÐµÐ»ÑŒÑ†Ð°'; LANGruFChmod_RGRP = 'RGRP - Чтение Ð´Ð»Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ñ‹'; LANGruFChmod_WGRP = 'WGRP - ЗапиÑÑŒ Ð´Ð»Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ñ‹'; LANGruFChmod_XGRP = 'XGRP - Выполнение/ПоиÑк Ð´Ð»Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ñ‹'; LANGruFChmod_ROTH = 'ROTH - Чтение Ð´Ð»Ñ Ð¾Ñтальных'; LANGruFChmod_WOTH = 'WOTH - ЗапиÑÑŒ Ð´Ð»Ñ Ð¾Ñтальных'; LANGruFChmod_XOTH = 'XOTH - Выполнение/ПоиÑк Ð´Ð»Ñ Ð¾Ñтальных'; LANGruFChmod_TextLabel = 'ТекÑÑ‚: %s'; LANGruFChmod_FileLabel = 'Файл: %s'#10'ТекÑÑ‚: %s'#10 + 'ВоÑьмеричный: %d'#10'Владелец: %s'#10 + 'Группа: %s'; LANGruFChown_Caption = 'Изменить владельца/группу'; LANGruFChown_OwnerFrame = 'Ð˜Ð¼Ñ Ð²Ð»Ð°Ð´ÐµÐ»ÑŒÑ†Ð°'; LANGruFChown_GroupFrame = 'Ð˜Ð¼Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ñ‹'; LANGruFChown_FileFrame = 'Файл'; LANGruFChown_ApplyRecursively = 'Применить _РекуÑивно'; LANGruFSymlink_Caption = 'Создать Ñимвольную ÑÑылку'; LANGruFSymlink_ExistingFilename = 'СущеÑтвующий _файл:'; LANGruFSymlink_SymlinkFilename = 'Ð˜Ð¼Ñ Ñимвольной _ÑÑылки:'; LANGrumnuBookmarks_Caption = '_Закладки'; LANGrumiAddBookmark_Caption = 'Добавить закладку'; LANGrumiEditBookmarks_Caption = 'Изменить закладку'; LANGruBookmarkPopupDelete_Caption = 'У_далить'; LANGrumiPreferences_Caption = 'Изменить _наÑтройки...'; LANGruTheCurrentDirectoryAlreadyExistsInTheBookmarksList = 'Текущий каталог уже добавлен к закладкам'; LANGruSomeOtherInstanceChanged1 = 'Ð”Ñ€ÑƒÐ³Ð°Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð° изменила файл конфигурации на диÑке. Ð’Ñ‹ хотите применить нове уÑтановки?'#10#10'Внимание: ЕÑли Ð’Ñ‹ ÑÐµÐ¹Ñ‡Ð°Ñ Ð½Ð°Ð¶Ð¼ÐµÑ‚Ðµ '; LANGruSomeOtherInstanceChanged2 = '"Ðет", ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð±ÑƒÐ´ÐµÑ‚ перезапиÑана во Ð²Ñ€ÐµÐ¼Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ñ‹!'; LANGruPreferences_Caption = 'ÐаÑтройки'; LANGruPreferences_TitleLabel_Caption = 'ÐаÑтройки программы'; LANGruPreferences_GeneralPage = 'Общие'; LANGruPreferences_FontsPage = 'Шрифты'; LANGruPreferences_ColorsPage = 'Цвета'; LANGruPreferences_RowHeight = ' _Ð’Ñ‹Ñота Ñтрок:'; LANGruPreferences_NumHistoryItems = '_ИÑÑ‚Ð¾Ñ€Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¹ Ñтроки:'; LANGruPreferences_Default = 'По умолчанию'; LANGruPreferences_ClearReadonlyAttribute = 'Во Ð²Ñ€ÐµÐ¼Ñ ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ CD-ROM ÑбраÑывать _атрибут "только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ"'; LANGruPreferences_DisableMouseRenaming = 'Запретить переименование _мышью'; LANGruPreferences_ShowFiletypeIconsInList = 'Показывать _значки'; LANGruPreferences_ExternalAppsLabel = 'Внешние программы'; LANGruPreferences_Viewer = '_ПроÑмотр:'; LANGruPreferences_Editor = '_Редактор:'; LANGruPreferences_Terminal = '_Терминал:'; LANGruPreferences_ListFont = 'Шрифт ÑпиÑков:'; LANGruPreferences_Change = 'Изменить...'; LANGruPreferences_UseDefaultFont = 'ИÑпользовать шрифт по _умолчанию'; LANGruPreferences_Foreground = 'Передний план'; LANGruPreferences_Background = 'Фон'; LANGruPreferences_NormalItem = 'Обычный Ñлемент:'; LANGruPreferences_SetToDefaultToUseGTKThemeColors = 'ИÑпользовать цвета темы GTK'; LANGruPreferences_Cursor = 'КурÑор:'; LANGruPreferences_InactiveItem = 'Ðеактивный Ñлемент:'; LANGruPreferences_SelectedItem = 'Выбранный Ñлемент:'; LANGruPreferences_LinkItem = 'Сымвольные ÑÑылки:'; LANGruPreferences_LinkItemHint = 'ИÑпользовать цвета нормальных Ñлементов Ð´Ð»Ñ ÑÑылок'; LANGruPreferences_DotFileItem = 'СпрÑтанные файлы:'; LANGruPreferences_DotFileItemHint = 'ИÑпользовать цвета нормальных Ñлементов Ð´Ð»Ñ ÑпрÑтанных файлов'; LANGruPreferences_BrowseForApplication = 'ПоиÑк программы'; LANGruPreferences_DefaultS = 'По умолчанию: %s'; LANGruPreferences_SelectFont = 'Выберите шрифт'; (*************** from here trabslated by Gvorcek Spajreh gotham48@gmail.com Превед, подонге **********************************) (*************** STRINGS ADDED TO v0.4.101 **********************************************************************************) LANGruBookmarkButton_Tooltip = 'Показать закладки'; LANGruUpButton_Tooltip = 'Перейти на уровень выше'; LANGruRootButton_Tooltip = 'Перейти в корневую папку (/)'; LANGruHomeButton_Tooltip = 'Перейти в домашнюю папку (/home/user)'; LANGruLeftEqualButton_Tooltip = 'Переключить правую панель на Ñту папку'; LANGruRightEqualButton_Tooltip = 'Переключить левую панель на Ñту папку'; LANGrumiShowDirectorySizes_Caption = 'Показать Ñ€_азмеры папок'; LANGrumiTargetSource_Caption = 'Target = Source'; LANGruFileTypeDirectory = 'Папка'; LANGruFileTypeFile = 'Файл'; LANGruFileTypeMetafile = 'Это мета-файл'; LANGruPreferencesPanelsPage = 'Панели'; LANGruPreferencesApplicationsPage = 'ПриложениÑ'; LANGruPreferencesExperimentalPage = 'ЭкÑпериментальные'; LANGruPreferencesSelectAllDirectoriesCheckBox_Caption = 'Выбирать _папки при выборе вÑех файлов'; LANGruPreferencesNewStyleAltOCheckBox_Caption = '_Ðовый Ñтиль Alt+O'; LANGruPreferencesNewStyleAltOCheckBox_Tooltip = 'ОÑтаватьÑÑ Ð² прежней папке, когда ÑоÑеднÑÑ Ð¿Ð°Ð½ÐµÐ»ÑŒ переключаетÑÑ Ctrl/Alt+O'; LANGruPreferencesShowFuncButtonsCheckBox_Caption = 'Показывать ленту функциональных _кнопок'; LANGruPreferencesSizeFormatLabel_Caption = '_Стиль размера:'; LANGruPreferencesmiSizeFormat1 = 'СиÑтемный'; LANGruPreferencesmiSizeFormat6 = 'Компактный'; LANGruPreferencesAutodetectXApp = 'Обнаруживать графичеÑкие'; LANGruPreferencesAlwaysRunInTerminal = 'Ð’Ñегда в терминале'; LANGruPreferencesNeverRunInTerminal = 'Ðикогда в терминале'; LANGruPreferencesCmdLineBehaviourLabel_Caption = '_ЗапуÑк из коммандной Ñтроки:'; LANGruPreferencesFeatures = 'ОÑобенноÑти'; LANGruPreferencesDisableMouseRename_Tooltip = 'Ð’Ñ‹ можете быÑтро переименовывать файлы нажатием Shift+F6'; LANGruPreferencesDisableFileTipsCheckBox_Caption = 'Выключить _подÑказки к файлам'; LANGruPreferencesDisableFileTipsCheckBox_Tooltip = 'Ðе показывать подÑказки в панелÑÑ…, еÑли текÑÑ‚ урезан'; LANGruPreferencesShow = 'Показать'; LANGruPreferencesDirsInBoldCheckBox_Caption = 'Выделить папки _жирным'; LANGruPreferencesDisableDirectoryBracketsCheckBox_Caption = 'Выключить _Ñкобки в именах папок'; LANGruPreferencesOctalPermissionsCheckBox_Caption = '_ВоÑьмиричные права'; LANGruPreferencesOctalPermissionsCheckBox_Tooltip = 'Показывать права доÑтупа цифрами (0666), а не Ñтрокой (-rw-rw-rw-)'; LANGruPreferencesMovement = 'Перемещение'; LANGruPreferencesLynxLikeMotionCheckBox_Caption = 'Перемещение как в _Lynx'; LANGruPreferencesInsertMovesDownCheckBox_Caption = '_Insert Ñдвигает курÑор ниже'; LANGruPreferencesSpaceMovesDownCheckBox_Caption = '_Пробел Ñдвигает курÑор ниже'; LANGruPreferencesViewer = 'ПроÑмотр'; LANGruPreferencesCommandSC = 'Комманда:'; LANGruPreferencesUseInternalViewer = 'ИÑпользовать _вÑтроенный проÑмотрщик'; LANGruPreferencesEditor = 'Редактор'; LANGruPreferencesTerminal = 'Терминал'; LANGruPreferencesExperimentalFeatures = 'ЭкÑпериментальные'; LANGruPreferencesExperimentalWarningLabel_Caption = 'ОÑторожно: Эти наÑтройки ещё в разработке.ИÑпользуйте на Ñвой Ñтрах и риÑк!'; LANGruPreferencesFocusRefreshCheckBox_Caption = '_ОбновлÑть при получении окном фокуÑа'; LANGruPreferencesFocusRefreshCheckBox_Tooltip = 'Очень медленно обновлÑет панели'; LANGruPreferencesWMCompatModeCheckBox_Caption = '_СовмеÑтимоÑть Ñ Ð¾ÐºÐ¾Ð½Ð½Ñ‹Ð¼ менеджером'; LANGruPreferencesWMCompatModeCheckBox_Tooltip = 'Выберите, еÑли еÑть оÑобенноÑти оконнгого менеджера (IceWM, например, неправильно развёртывает окно)'; LANGruPreferencesCompatUseLibcSystemCheckBox_Caption = 'ИÑпользовать libc _system() Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑка программ'; LANGruPreferencesCompatUseLibcSystemCheckBox_Tooltip = 'Выберите, еÑли программы глючат или тормозÑÑ‚.'; (*************** STRINGS ADDED TO v0.5.70 **********************************************************************************) LANGrumiSearchCaption2 = '_ПоиÑк...'; LANGrumiNoMounterBarCaption = '_Ðе показывать панель диÑков'; LANGrumiShowOneMounterBarCaption = 'Показывать _одну диÑковую панель'; LANGrumiShowTwoMounterBarCaption = 'Показывать _две диÑковых панели'; LANGrumnuNetworkCaption = 'С_еть'; LANGrumiConnectionsCaption = '_ПодключениÑ...'; LANGrumiOpenConnectionCaption = '_Ðовое Ñоединение...'; LANGrumiQuickConnectCaption = '_БыÑтрое Ñоединение...'; LANGrumnuPluginsCaption = '_ДополнениÑ'; LANGrumiTestPluginCaption = '_ТеÑÑ‚ дополнений...'; LANGrumiMounterSettingsCaption = 'ÐаÑтройки _монтированиÑ...'; LANGrumiColumnsCaption = 'С_толбцы панели...'; LANGrumiSavePositionCaption = '_Сохранить позицию'; LANGrumiMountCaption = '_Монтировать'; LANGrumiUmountCaption = '_Размонтировать'; LANGrumiEjectCaption = '_Извлечь'; LANGrumiDuplicateTabCaption = 'Дублировать вкладку'; LANGrumiCloseTabCaption = 'Закрыть вкладку'; LANGrumiCloseAllTabsCaption = 'Закрыть вÑе вкладки'; LANGruCannotDetermineDestinationEngine = 'Ðе могу определить путь назначениÑ. Введите правильный путь и повторите дейÑтвие.'; LANGruCannotLoadFile = 'Ðе могу открыть ''%s''. Проверьте права доÑтупа.'; LANGruMountPointDevice = 'Точка монтированиÑ: %s'#10'УÑтройÑтво: %s'; LANGruMountSC = 'Монтировать:'; LANGruNoPluginsFound = 'Дополнений не найдено'; LANGruPluginAbout = 'О программе...'; LANGruCouldntOpenURI = 'Ðе могу открыть заданный URI. Проверьте права доÑтупа.'; LANGruPluginAboutInside = 'Дополнение: %s'#10#10'%s'#10'%s'; LANGruAreYouSureCloseAllTabs = 'Ð’Ñ‹ дейÑтвительно хотите закрыть неактивные вкладки??'; LANGruCouldntOpenURIArchive = 'Ðе могу открыть архив. Проверьте доÑтупноÑть и права.'; LANGruThereIsNoModuleAvailable = 'Ðи один VFS-модуль не поддерживает Ñтого типа ÑоединениÑ.'; LANGruIgnoreError = 'Ð’Ñ‹ дейÑтвительно хотите игнорировать Ñту ошибку? ИÑходный файл будет удалён.'; LANGruErrorMount = 'Произошла ошибка при монтировании уÑтройÑтва ''%s'':'#10#10; LANGruErrorUmount = 'Произошла ошибка при размонтировании уÑтройÑтва ''%s'':'#10#10; LANGruErrorEject = 'Произошла ошибка при извлечении уÑтройÑтва ''%s'':'#10#10; LANGruMounterPrefs_Caption = 'ÐаÑтройки монтированиÑ'; LANGruMounterPrefs_TitleLabelCaption = 'ÐаÑтройки монтированиÑ'; LANGruMounterPrefs_ListViewFrameCaption = 'Монтирование'; LANGruMounterPrefs_MountName = 'Ðазвание'; LANGruMounterPrefs_MountPoint = 'Точка монтированиÑ'; LANGruMounterPrefs_Device = 'УÑтройÑтво'; LANGruMounterPrefs_MoveUpButtonTooltip = 'Выше'; LANGruMounterPrefs_MoveDownButtonTooltip = 'Ðиже'; LANGruMounterPrefs_UseFSTabDefaultsCheckBox = 'ИÑпользовать запиÑи _fstab'; LANGruMounterPrefs_UseFSTabDefaultsCheckBoxTooltip = 'При включении панель уÑтройÑтв будет заполнена из /etc/fstab (ÑиÑтемный файл наÑтроек монтированиÑ)'; LANGruMounterPrefs_ToggleModeCheckBox = 'Кнопки _углублены когда уÑтройÑтво примонтировано'; LANGruMounterPrefs_ToggleModeCheckBoxTooltip = 'Выберите, чтобы кнопки примонтированных уÑтройÑтв выглÑдели нажатыми, при Ñтом нажатие размонтирует (извлечёт) уÑтройÑтво.'; LANGruMounterPrefs_PropertiesFrameCaption = 'ÐаÑтройки точки монтированиÑ'; LANGruMounterPrefs_DisplayTextLabelCaption = '_Ðазвание:'; LANGruMounterPrefs_MountPointLabelCaption = 'Точка _монтированиÑ:'; LANGruMounterPrefs_MountDeviceLabelCaption = '_УÑтройÑтво:'; LANGruMounterPrefs_DeviceTypeLabelCaption = 'Т_ип уÑтройÑтва:'; LANGruMounterPrefs_miLocalDiskCaption = 'Локальный диÑк'; LANGruMounterPrefs_miRemovableCaption = 'ПереноÑной'; LANGruMounterPrefs_miCDCaption = 'CD/DVD привод'; LANGruMounterPrefs_miFloppyCaption = 'ДиÑк 3,5'; LANGruMounterPrefs_miNetworkCaption = 'Сетевой'; LANGruMounterPrefs_MountCommandLabelCaption = '_Комманда монтированиÑ:'; LANGruMounterPrefs_UmountCommandLabelCaption = 'Комманда раз_монтированиÑ:'; LANGruMounterPrefs_MountCommandEntryTooltip = 'СинтакÑиÑ: иÑпользуйте %dev Ð´Ð»Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ ÑƒÑтройÑтва и %dir Ð´Ð»Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ (оÑтавьте пуÑтым Ð´Ð»Ñ ÑƒÑтановок по умолчанию)'#10 + 'Помните: избегайте иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð½Ñ‚ÐµÑ€Ð°ÐºÑ‚Ð¸Ð²Ð½Ñ‹Ñ… комманд, они могут замедлить программу'#10'Пример: smbmount %dev %dir -o username=netuser,password=somepass'; LANGruMounterPrefs_UmountCommandEntryTooltip = 'СинтакÑиÑ: иÑпользуйте %dev Ð´Ð»Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ ÑƒÑтройÑтва и %dir Ð´Ð»Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ (оÑтавьте пуÑтым Ð´Ð»Ñ ÑƒÑтановок по умолчанию)'#10 + 'Пример: smbumount $dir'; LANGruMounterPrefs_IconLabelCaption = '_Значок:'; LANGruConnMgr_Caption = 'Открыть новое Ñоединение'; LANGruConnMgr_ConnectButton = 'Соеди_нитьÑÑ'; LANGruConnMgr_OpenConnection = 'Открыть Ñоединение'; LANGruConnMgr_NameColumn = 'ИмÑ'; LANGruConnMgr_URIColumn = 'ÐдреÑ'; LANGruConnMgr_AddConnectionButtonCaption = '_Ðовый хоÑÑ‚...'; LANGruConnMgr_AddConnectionButtonTooltip = 'Добавить Ñоединение'; LANGruConnMgr_EditButtonCaption = '_Изменить...'; LANGruConnMgr_EditButtonTooltip = 'Изменить выбранное Ñоединение'; LANGruConnMgr_RemoveButtonCaption = '_Удалить хоÑÑ‚'; LANGruConnMgr_RemoveButtonTooltip = 'Удалить выбранное Ñоединение'; LANGruConnMgr_DoYouWantDelete = 'Ð’Ñ‹ дейÑтвительно хотите удалить Ñоединение ''%s''?'; LANGruConnProp_FTP = 'FTP'; LANGruConnProp_SFTP = 'SFTP (ssh subsystem)'; LANGruConnProp_SMB = 'Windows (SMB)'; LANGruConnProp_HTTP = 'WebDAV (HTTP)'; LANGruConnProp_HTTPS = 'Защищенное WebDAV (HTTPS)'; LANGruConnProp_Other = 'Другое (укажите в адреÑе)'; LANGruConnProp_Caption = 'СвойÑтва ÑоединениÑ'; LANGruConnProp_VFSModule = '_VFS module:'; LANGruConnProp_URI = '_ÐдреÑ:'; LANGruConnProp_URIEntryTooltip = 'Правильный Ð°Ð´Ñ€ÐµÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ Ñодержать тип ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¸ Ð°Ð´Ñ€ÐµÑ ÑƒÐ´Ð°Ð»Ñ‘Ð½Ð½Ð¾Ð³Ð¾ хоÑта'; LANGruConnProp_DetailedInformations = 'Подробнее'; LANGruConnProp_Name = '_Ðазвание:'; LANGruConnProp_Server = 'Сер_вер[:порт]:'; LANGruConnProp_Username = 'И_Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ:'; LANGruConnProp_UserNameEntryTooltip = 'ОÑтавьте пуÑтым Ð´Ð»Ñ Ð°Ð½Ð¾Ð½Ð¸Ð¼Ð½Ð¾Ð³Ð¾ подключениÑ'; LANGruConnProp_Password = '_Пароль:'; LANGruConnProp_TargetDirectory = 'Ð£Ð´Ð°Ð»Ñ‘Ð½Ð½Ð°Ñ _директориÑ:'; LANGruConnProp_ServiceType = 'Тип _ÑервиÑа:'; LANGruConnProp_MaskPassword = '_Скрыть пароль'; LANGruConnProp_MenuItemCaption = 'По умолчанию (Ð´Ð»Ñ Ð²Ñех доÑтупных модулей)'; LANGruConnLogin_Caption = 'необходима авторизациÑ'; LANGruConnLogin_Login = 'Логин'; LANGruConnLogin_ExperimentalWarningLabelCaption = 'Ð’Ñ‹ должны авторизоватьÑÑ Ð´Ð»Ñ Ð´Ð¾Ñтупа к %s'; LANGruConnLogin_Username = '_Логин:'; LANGruConnLogin_Password = '_Пароль:'; LANGruConnLogin_AnonymousCheckButton = '_Ðнонимно'; LANGruColumns_Caption = 'ÐаÑтройки Ñтолбцов панели'; LANGruColumns_Title = 'ÐаÑтройки Ñтолбцов панели'; LANGruColumns_MoveUpButtonTooltip = 'ПеремеÑтить выше'; LANGruColumns_MoveDownButtonTooltip = 'ПеремеÑтить ниже'; LANGruColumns_TitlesLongName = 'ИмÑ'; LANGruColumns_TitlesLongNameExt = 'Ð˜Ð¼Ñ + РаÑширение'; LANGruColumns_TitlesLongExt = 'РаÑширение'; LANGruColumns_TitlesLongSize = 'Размер'; LANGruColumns_TitlesLongDateTime = 'Дата + ВремÑ'; LANGruColumns_TitlesLongDate = 'Дата'; LANGruColumns_TitlesLongTime = 'ВремÑ'; LANGruColumns_TitlesLongUser = 'Пользователь'; LANGruColumns_TitlesLongGroup = 'Группа'; LANGruColumns_TitlesLongAttr = 'Ðттрибуты'; LANGruColumns_TitlesShortName = 'ИмÑ'; LANGruColumns_TitlesShortNameExt = 'ИмÑ'; LANGruColumns_TitlesShortExt = 'РаÑш'; LANGruColumns_TitlesShortSize = 'Разм'; LANGruColumns_TitlesShortDateTime = 'Дата'; LANGruColumns_TitlesShortDate = 'Дата'; LANGruColumns_TitlesShortTime = 'ВремÑ'; LANGruColumns_TitlesShortUser = 'Польз'; LANGruColumns_TitlesShortGroup = 'Группа'; LANGruColumns_TitlesShortAttr = 'Ðттр'; LANGruTestPlugin_Caption = 'ТеÑÑ‚ VFS-дополнениÑ'; LANGruTestPlugin_Title = 'TeÑÑ‚ VFS-дополнениÑ'; LANGruTestPlugin_ExperimentalWarningLabelCaption = 'Внимание: СиÑтема VFS и её Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ñильно недоработаны. ИÑпользуйте на Ñвой Ñтрах и риÑк!'; LANGruTestPlugin_Plugin = '_Дополнение:'; LANGruTestPlugin_Command = 'Ко_мманда:'; LANGruTestPlugin_Username = '_Логин:'; LANGruTestPlugin_Password = '_Пароль:'; LANGruTestPlugin_AnonymousCheckButton = '_Ðнонимный доÑтуп'; LANGruTestPlugin_NoPluginsFound = 'Ð”Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð½Ðµ найдены'; LANGruRemoteWait_Caption = 'ВыполнÑетÑÑ Ð´ÐµÐ¹Ñтвие'; LANGruRemoteWait_OperationInProgress = 'ДейÑтвие выполнÑетÑÑ, ждите...'; LANGruRemoteWait_ItemsFound = 'Items found so far: %d'; LANGruSearch_Bytes = 'Байт'; LANGruSearch_kB = 'кБ'; LANGruSearch_MB = 'МБ'; LANGruSearch_days = 'дней'; LANGruSearch_weeks = 'недель'; LANGruSearch_months = 'меÑÑцев'; LANGruSearch_years = 'лет'; LANGruSearch_Caption = 'Ðайти файлы'; LANGruSearch_General = 'ОÑновные'; LANGruSearch_Advanced = 'Дополнительные'; LANGruSearch_SearchResults = '_Результаты:'; LANGruSearch_SearchFor = '_ИÑкать:'; LANGruSearch_FileMaskEntryTooltip = 'ПодÑказка: ИÑпользуйте знак (";") Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка неÑкольки файлов'; LANGruSearch_SearchIn = 'ИÑкать _в:'; LANGruSearch_SearchArchivesCheckButton = 'ИÑкать в _архивах'; LANGruSearch_FindText = 'Содержит _текÑÑ‚:'; LANGruSearch_FindTextEntryTooltip = 'Ðе заполнÑйте, еÑли не хотите иÑкать по текÑтам'#10'Помните, что мы иÑкользуем UTF-8'; LANGruSearch_CaseSensitiveCheckButton = 'Ðе чувÑтвительно к Ñ€_егиÑтру'; LANGruSearch_StayCurrentFSCheckButton = 'ИÑкать в других файловых Ñ_иÑтемах'; LANGruSearch_CaseSensitiveMatchCheckButton = 'ЧуÑÑ‚Ñвительно к реги_Ñтру'; LANGruSearch_Size = 'Размер'; LANGruSearch_Date = 'Дата'; LANGruSearch_BiggerThan = '_Больше чем'; LANGruSearch_SmallerThan = '_Меньше чем'; LANGruSearch_ModifiedBetweenRadioButton = '_Изменено между'; LANGruSearch_NotModifiedAfterRadioButton = '_Ðе изменÑлоÑÑŒ поÑле'; LANGruSearch_ModifiedLastRadioButton = 'И_зменÑлоÑÑŒ раньше'; LANGruSearch_ModifiedNotLastRadionButton = 'Ð_е изменÑлоÑÑŒ раньше'; LANGruSearch_ModifiedBetweenEntry1 = '"ИÑпользуйте Ñтот формат даты:" c'; LANGruSearch_ViewButtonCaption = '_Показать файл'; LANGruSearch_NewSearchButtonCaption = '_Ðовый поиÑк'; LANGruSearch_GoToFileButtonCaption = 'Пе_рейти к файлу'; LANGruSearch_FeedToListboxButtonCaption = 'ВывеÑти на _панель'; LANGruSearch_StatusSC = 'СтатуÑ:'; LANGruSearch_Ready = 'Готово.'; LANGruSearch_PreparingToSearch = 'Подготовка к поиÑку.'; LANGruSearch_SearchInProgress = 'ВедётÑÑ Ð¿Ð¾Ð¸Ñк:'; LANGruSearch_UserCancelled = 'Отменено пользователем.'; LANGruSearch_SearchFinished = 'ПоиÑк завершён'; LANGruSearch_FilesFound = '%d файлов найдено'; LANGruSearch_And = 'и'; (*************** STRINGS ADDED TO v0.5.82 **********************************************************************************) LANGruCloseOpenConnection = 'Ð’Ñ‹ пытаетеÑÑŒ Ñоздать новое подключение поверх Ñтарого. ЕÑли продолжить, то Ñтарое подключение будет заменено новым..'#10#10'Ð’Ñ‹ уверены?'; LANGruDuplicateTabWarning = 'Ð’Ñ‹ пытаетеÑÑŒ Ñоздать новую вкладку Ñ ÑƒÐ´Ð°Ð»Ñ‘Ð½Ð½Ð¾Ð¹ директорией, однако Ñто не поддерживаетÑÑ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð¾Ð¹. ' + 'ÐÐ¾Ð²Ð°Ñ Ð²ÐºÐ»Ð°Ð´ÐºÐ° будет Ñоздана в локальной директории.'; LANGruDontShowAgain = '_Ðе показывать Ñто Ñообщение'; LANGruSwitchOtherPanelWarning = 'Ð’Ñ‹ пытаетеÑÑŒ переключить панель, ÑÑылающуюÑÑ Ð½Ð° удалённую директорию, однако Ñто дейÑтвие не поддерживаетÑÑ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð¾Ð¹. ' + 'Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ðµ будет изменена.'; LANGruOpenConnectionsWarning = 'Ð’ данный момент активны одно или неÑколько Ñоединений. Закрыв приложение, вы разорвёте ÑоединениÑ.'#10#10'Ð’Ñ‹ точно хотите выйти?'; LANGrumiDisconnect_Caption = '_ОтключитьÑÑ'; LANGruDisconnectButton_Tooltip = 'Отключить активное Ñоединение'; LANGruLeaveArchiveButton_Tooltip = 'Закрыть архив'; LANGruOpenTerminalButton_Tooltip = 'Открывает окно терминала Ñ Ð´Ð°Ð½Ð½Ð¾Ð¹ директорией.'; LANGruOpenTerminalButton_Caption = 'Тер_минал'; LANGruShowTextUIDsCheckBox_Caption = 'Показывать текÑтовые _UID'; LANGruShowTextUIDsCheckBox_Tooltip = 'Показывать Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸ группу в виде текÑта, а не чиÑел (UID/GID)'; (*************** STRINGS ADDED TO v0.5.100 **********************************************************************************) LANGrumiNewTab_Caption = 'ÐÐ¾Ð²Ð°Ñ _вкладка'; LANGruFilePopupMenu_Properties = '_ÐаÑтройки'; LANGruCommandEntry_Tooltip = 'ИÑпользовать %s как меÑто Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ð°/папки'; LANGrumiFiles_Caption = 'Только файлы'; (*************** STRINGS ADDED TO v0.6.31 **********************************************************************************) LANGruPasswordButton_Tooltip = 'Ðрхив требует Ð²Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ..'#10'Ðажмите, чтобы указать.'; LANGruHandleRunFromArchive_Bytes = 'байт'; LANGruHandleRunFromArchive_FileTypeDesc_Unknown = '(неизвеÑтно)'; LANGruHandleRunFromArchive_NotAssociated = '(не ÑвÑзан)'; LANGruHandleRunFromArchive_SelfExecutable = '(Ñамо-запуÑкающийÑÑ)'; LANGruHandleRunFromArchive_CouldntCreateTemporaryDirectory = 'Ðе могу Ñоздать временную директорию "%s": %s.'#10#10'ПожалуйÑта, проверьте наÑтройки временных путей и повторите дейÑтвие.'; LANGruFRunFromVFS_Caption = 'СвойÑтва упакованных файлов'; LANGruFRunFromVFS_TitleLabel = 'СвойÑтва файла'; LANGruFRunFromVFS_FileNameLabel = 'Ð˜Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°:'; LANGruFRunFromVFS_FileTypeLabel = 'Тип файла:'; LANGruFRunFromVFS_SizeLabel = 'Размер:'; LANGruFRunFromVFS_PackedSizeLabel = 'Размер при Ñжатии:'; LANGruFRunFromVFS_DateLabel = 'Дата изменениÑ:'; LANGruFRunFromVFS_InfoLabel = 'ДоÑтуп к запакованным файлам не поддерживаетÑÑ. ' + 'При нажатии на кнопку ниже, вÑе файлы раÑпакуютÑÑ Ð²Ð¾ временную директорию, и будут удалены при закрытии программы.'; LANGruFRunFromVFS_OpensWithLabel = 'Открыть Ñ:'; LANGruFRunFromVFS_ExecuteButton = 'И_звлечь и открыть'; LANGruFRunFromVFS_ExecuteAllButton = 'Извлечь _вÑе и открыть'; LANGruFSetPassword_Caption = 'УÑтановить пароль'; LANGruFSetPassword_Label1_Caption = 'Ðеобходим пароль'; LANGruFSetPassword_Label2_Caption = 'Ðрхив зашифрован. ТребуетÑÑ Ð¿Ð°Ñ€Ð¾Ð»ÑŒ Ð´Ð»Ñ Ñ€Ð°Ñшифровки и Ð¸Ð·Ð²Ð»ÐµÑ‡ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð².'; LANGruFSetPassword_ShowPasswordCheckButton = 'Пока_зать пароль'; (*************** STRINGS ADDED TO v0.6.48 **********************************************************************************) LANGruCopyFileNamesToClipboard = '_Копировать Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° в буфер обмена'; LANGruCopyFullPathNamesToClipboard = 'Копировать _полный путь к файлам в буфер обмена'; LANGruCopyPathToClipboard = 'К_опировать в буфер обмена'; LANGruPreferences_DateFormatLabel_Caption = '_Формат даты:'; LANGruPreferences_System = 'СиÑтемный'; LANGruPreferences_Custom = 'Другой...'; LANGruPreferences_CustomDateFormatEntry_Tooltip = 'Введите Ñвой формат даты.'#10'ПожалуйÑта, обратитеÑÑŒ к "man strftime" за примерами.'; LANGruPreferences_TimeFormatLabel_Caption = 'Формат _времени:'; LANGruPreferences_CustomTimeFormatEntry_Tooltip = 'Введите Ñвой формат Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð²Ñ€ÐµÐ¼ÐµÐ½Ð¸.'#10'ПожалуйÑта, обратитеÑÑŒ к "man strftime" за примерами.'; LANGruPreferences_DateTimeFormatLabel_Caption = 'По_Ñ€Ñдок даты/времени:'; LANGruPreferences_QuickRenameSkipExtCheckBox = 'Выбирать только Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° при переименовании'; LANGruPreferences_QuickRenameSkipExtCheckBox_Tooltip = 'Скрыть раÑширение при быÑтром переименовании файла.'; LANGruPreferences_SortDirectoriesLikeFilesCheckBox = 'Сортировать папки _как файлы'; LANGruPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip = 'Выберите, еÑли хотите Ñортировать папки вмеÑте Ñ Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸, иначе папки вÑегда будут вначале ÑпиÑка.'; LANGruPreferences_QuickSearchLabel_Caption = '_Строка быÑтрого поиÑка:'; LANGruPreferences_QuickSearchOptionMenu_Tooltip = 'ПоиÑк активизируетÑÑ ÑочетаниÑми Ctrl+S, Alt+S и "/", пока не включена Ñта опциÑ.'; LANGruPreferences_QuickSearch_Option1 = 'Только Ctrl+S/Alt+S и "/"'; LANGruPreferences_QuickSearch_Option2 = 'Ctrl+Alt+буквы'; LANGruPreferences_QuickSearch_Option3 = 'Alt+буквы'; LANGruPreferences_QuickSearch_Option4 = 'при вводе букв'; LANGruPreferences_TempPathLabel_Caption = 'Временные файлы'; LANGruPreferences_VFSTempPathLabel_Caption = 'Временные файлы _VFS:'; LANGruPreferences_VFSTempPathEntry_Tooltip = 'Путь к временным файлам ÑиÑтемы VFS, например при открытии архивов. При выходе вÑе временные файлы удалÑÑŽÑ‚ÑÑ.'; (*************** STRINGS ADDED TO v0.6.67 **********************************************************************************) LANGruPreferences_RightClickSelectCheckBox = 'Режим выбора правой кнопкой мыши'; LANGruPreferences_RightClickSelectCheckBox_Tooltip = 'Выделение файлов зажатием правой кнопки мыши, как в mc.'; LANGruGtkMountOperation_ConnectAnonymously = 'ПодключитьÑÑ _анонимно'; LANGruGtkMountOperation_ConnectAsUser = 'Как п_ользователь:'; LANGruGtkMountOperation_Username = '_Логин:'; LANGruGtkMountOperation_Domain = '_Домен:'; LANGruGtkMountOperation_Password = '_Пароль:'; LANGruGtkMountOperation_DoNotSavePassword = 'Ðе ÑохранÑть пароли'; LANGruGtkMountOperation_ForgetPasswordImmediately = '_Забыть пароль'; LANGruGtkMountOperation_RememberPasswordUntilYouLogout = 'Запомнить пароль до _выхода'; LANGruGtkMountOperation_SavePasswordInConnectionManager = '_Сохранить пароль в менеджере Ñоединений.'; LANGruGtkMountOperation_RememberForever = 'Запомнить _навÑегда'; LANGruFSymlink_RelativePath = '_ОтноÑительный путь'; LANGruFConnectionManager_DuplicateButton_Caption = 'К_опиÑ...'; LANGruFConnectionManager_DuplicateButton_Tooltip = 'Создать копию ÑоединениÑ'; LANGruFConnectionManager_DoNotSavePasswordsCheckBox_Label = '_Ðе хранить пароли в программе (однако, иÑпользовать Ð´Ð»Ñ Ñтих целей gnome keyring)'; LANGruFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip = 'Ð’ÐºÐ»ÑŽÑ‡Ð°Ñ Ñту опцию, вы запретите программе хранить пароли. Специфика GVFS такова, что пароль вÑÑ‘ равно будет Ñохранён в gnome-keyring.'; LANGruFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label = 'Ðе Ñинхронизировать пароли Ñ gnome-_keyring'; LANGruFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip = 'Ðе разрешать gnome-keyring ÑохранÑть пароли.'; LANGruFConnectionManager_DuplicateMenuItem_Caption = 'К_опиÑ...'; LANGruFQuickConnect_Caption = 'БыÑтрое Ñоединение'; LANGruFQuickConnect_TitleLabel_Caption = 'БыÑтрое Ñоединение'; LANGruFQuickConnect_ConnectToURILabel_Caption = 'С_оединитьÑÑ Ñ Ñ€ÐµÑурÑом:'; LANGruLinkToS = 'СÑылка на %s'; LANGruOpenDirectoryInBackgroundTab = 'Открыть папку в _фоновой вкладке'; LANGruTheActiveConnectionHasNotBeenSaved = 'Ðктивное Ñоединение не было Ñохранено! Сделать Ñто?'#10#10'%s'; LANGruTheArchiveIsEncryptedAndRequiresPassword = 'Ðрхив зашифрован и требует ввода паролÑ'; (********************************************************************************************************************************) procedure SetTranslation; begin LANGF2Button_Caption := LANGruF2Button_Caption; LANGF3Button_Caption := LANGruF3Button_Caption; LANGF4Button_Caption := LANGruF4Button_Caption; LANGF5Button_Caption := LANGruF5Button_Caption; LANGF6Button_Caption := LANGruF6Button_Caption; LANGF7Button_Caption := LANGruF7Button_Caption; LANGF8Button_Caption := LANGruF8Button_Caption; LANGmnuFile_Caption := LANGrumnuFile_Caption; LANGmnuMark_Caption := LANGrumnuMark_Caption; LANGmnuCommands_Caption := LANGrumnuCommands_Caption; LANGmnuHelp_Caption := LANGrumnuHelp_Caption; LANGmiExit_Caption := LANGrumiExit_Caption; LANGmiSelectGroup_Caption := LANGrumiSelectGroup_Caption; LANGmiUnselectGroup_Caption := LANGrumiUnselectGroup_Caption; LANGmiSelectAll_Caption := LANGrumiSelectAll_Caption; LANGmiUnselectAll_Caption := LANGrumiUnselectAll_Caption; LANGmiInvertSelection_Caption := LANGrumiInvertSelection_Caption; LANGmiRefresh_Caption := LANGrumiRefresh_Caption; LANGmiAbout_Caption := LANGrumiAbout_Caption; LANGColumn1_Caption := LANGruColumn1_Caption; LANGColumn2_Caption := LANGruColumn2_Caption; LANGColumn3_Caption := LANGruColumn3_Caption; LANGColumn4_Caption := LANGruColumn4_Caption; LANGColumn5_Caption := LANGruColumn5_Caption; LANGExpandSelection := LANGruExpandSelection; LANGShrinkSelection := LANGruShrinkSelection; LANGNoMatchesFound := LANGruNoMatchesFound; LANGNoFilesSelected := LANGruNoFilesSelected; LANGSelectedFilesDirectories := LANGruSelectedFilesDirectories; LANGDirectoryS := LANGruDirectoryS; LANGFileS := LANGruFileS; LANGDoYouReallyWantToDeleteTheS := LANGruDoYouReallyWantToDeleteTheS; LANGDoYouReallyWantToDeleteTheSS := LANGruDoYouReallyWantToDeleteTheSS; LANGCopyFiles := LANGruCopyFiles; LANGMoveRenameFiles := LANGruMoveRenameFiles; LANGCopyDFileDirectoriesTo := LANGruCopyDFileDirectoriesTo; LANGMoveRenameDFileDirectoriesTo := LANGruMoveRenameDFileDirectoriesTo; LANGCopySC := LANGruCopySC; LANGMoveRenameSC := LANGruMoveRenameSC; LANGQuickFind := LANGruQuickFind; LANGAboutString := LANGruAboutString; LANGAboutStringGnome := LANGruAboutStringGnome; LANGDiskStatFmt := LANGruDiskStatFmt; LANGDiskStatVolNameFmt := LANGruDiskStatVolNameFmt; LANGStatusLineFmt := LANGruStatusLineFmt; LANGPanelStrings[False] := LANGruPanelStrings[False]; LANGPanelStrings[True] := LANGruPanelStrings[True]; LANGDIR := LANGruDIR; LANGErrorGettingListingForSPanel := LANGruErrorGettingListingForSPanel; LANGErrorGettingListingForSPanelNoPath := LANGruErrorGettingListingForSPanelNoPath; LANGErrorCreatingNewDirectorySInSPanel := LANGruErrorCreatingNewDirectorySInSPanel; LANGErrorCreatingNewDirectorySInSPanelNoPath := LANGruErrorCreatingNewDirectorySInSPanelNoPath; LANGTheFileDirectory := LANGruTheFileDirectory; LANGCouldNotBeDeleted := LANGruCouldNotBeDeleted; LANGCouldNotBeDeletedS := LANGruCouldNotBeDeletedS; LANGUserCancelled := LANGruUserCancelled; LANGTheDirectorySIsNotEmpty := LANGruTheDirectorySIsNotEmpty; LANGCannotCopyFile := LANGruCannotCopyFile; LANGCopyError := LANGruCopyError; LANGMoveError := LANGruMoveError; LANGOverwriteS := LANGruOverwriteS; LANGWithFileS := LANGruWithFileS; LANGOvewriteSBytesS := LANGruOvewriteSBytesS; LANGTheFile := LANGruTheFile; LANGCopy := LANGruCopy; LANGMove := LANGruMove; LANGTheDirectory := LANGruTheDirectory; LANGTheSymbolicLink := LANGruTheSymbolicLink; LANGCannotMoveFile := LANGruCannotMoveFile; LANGCouldNotBeCreated := LANGruCouldNotBeCreated; LANGCouldNotBeCreatedS := LANGruCouldNotBeCreatedS; LANGFromS := LANGruFromS; LANGToS := LANGruToS; LANGCannotCopyFileToItself := LANGruCannotCopyFileToItself; LANGMemoryAllocationFailed := LANGruMemoryAllocationFailed; LANGCannotOpenSourceFile := LANGruCannotOpenSourceFile; LANGCannotOpenDestinationFile := LANGruCannotOpenDestinationFile; LANGCannotCloseDestinationFile := LANGruCannotCloseDestinationFile; LANGCannotCloseSourceFile := LANGruCannotCloseSourceFile; LANGCannotReadFromSourceFile := LANGruCannotReadFromSourceFile; LANGCannotWriteToDestinationFile := LANGruCannotWriteToDestinationFile; LANGUnknownException := LANGruUnknownException; LANGNoAccess := LANGruNoAccess; LANGUnknownError := LANGruUnknownError; LANGCreateANewDirectory := LANGruCreateANewDirectory; LANGEnterDirectoryName := LANGruEnterDirectoryName; LANGOverwriteQuestion := LANGruOverwriteQuestion; LANGOverwriteButton_Caption := LANGruOverwriteButton_Caption; LANGOverwriteAllButton_Caption := LANGruOverwriteAllButton_Caption; LANGSkipButton_Caption := LANGruSkipButton_Caption; LANGOverwriteAllOlderButton_Caption := LANGruOverwriteAllOlderButton_Caption; LANGSkipAllButton_Caption := LANGruSkipAllButton_Caption; LANGRenameButton_Caption := LANGruRenameButton_Caption; LANGAppendButton_Caption := LANGruAppendButton_Caption; LANGRename := LANGruRename; LANGRenameFile := LANGruRenameFile; LANGIgnoreButton_Caption := LANGruIgnoreButton_Caption; LANGProgress := LANGruProgress; LANGCancel := LANGruCancel; LANGDelete := LANGruDelete; LANGSpecifyFileType := LANGruSpecifyFileType; LANGRemoveDirectory := LANGruRemoveDirectory; LANGDoYouWantToDeleteItWithAllItsFilesAndSubdirectories := LANGruDoYouWantToDeleteItWithAllItsFilesAndSubdirectories; LANGRetry := LANGruRetry; LANGDeleteButton_Caption := LANGruDeleteButton_Caption; LANGAll := LANGruAll; LANGCopyFilesSC := LANGruCopyFilesSC; LANGAppendQuestion := LANGruAppendQuestion; LANGPreparingList := LANGruPreparingList; LANGYouMustSelectAValidFile := LANGruYouMustSelectAValidFile; LANGmiVerifyChecksums := LANGrumiVerifyChecksums; LANGVerifyChecksumsCaption := LANGruVerifyChecksumsCaption; LANGCheckButtonCaptionCheck := LANGruCheckButtonCaptionCheck; LANGCheckButtonCaptionStop := LANGruCheckButtonCaptionStop; LANGFileListTooltip := LANGruFileListTooltip; LANGFilenameColumnCaption := LANGruFilenameColumnCaption; LANGTheFileSYouAreTryingToOpenIsQuiteBig := LANGruTheFileSYouAreTryingToOpenIsQuiteBig; LANGAnErrorOccuredWhileInitializingMemoryBlock := LANGruAnErrorOccuredWhileInitializingMemoryBlock; LANGAnErrorOccuredWhileOpeningFileSS := LANGruAnErrorOccuredWhileOpeningFileSS; LANGAnErrorOccuredWhileReadingFileSS := LANGruAnErrorOccuredWhileReadingFileSS; LANGChecksumNotChecked := LANGruChecksumNotChecked; LANGChecksumChecking := LANGruChecksumChecking; LANGChecksumInterrupted := LANGruChecksumInterrupted; LANGChecksumDOK := LANGruChecksumDOK; LANGmiCreateChecksumsCaption := LANGrumiCreateChecksumsCaption; LANGYouMustSelectAtLeastOneFileToCalculateChecksum := LANGruYouMustSelectAtLeastOneFileToCalculateChecksum; LANGCreateChecksumsCaption := LANGruCreateChecksumsCaption; LANGCCHKSUMPage1Text := LANGruCCHKSUMPage1Text; LANGCCHKSUMPage4Text := LANGruCCHKSUMPage4Text; LANGCCHKSUMPage6Text := LANGruCCHKSUMPage6Text; LANGCCHKSUMPage7Text := LANGruCCHKSUMPage7Text; LANGCCHKSUMPage1Title := LANGruCCHKSUMPage1Title; LANGCCHKSUMPage2Title := LANGruCCHKSUMPage2Title; LANGCCHKSUMPage3Title := LANGruCCHKSUMPage3Title; LANGCCHKSUMPage4Title := LANGruCCHKSUMPage4Title; LANGCCHKSUMPage5Title := LANGruCCHKSUMPage5Title; LANGCCHKSUMPage6Title := LANGruCCHKSUMPage6Title; LANGCCHKSUMPage7Title := LANGruCCHKSUMPage7Title; LANGCCHKSUMSFVFile := LANGruCCHKSUMSFVFile; LANGCCHKSUMMD5sumFile := LANGruCCHKSUMMD5sumFile; LANGCCHKSUMFileName := LANGruCCHKSUMFileName; LANGCCHKSUMCreateSeparateChecksumFiles := LANGruCCHKSUMCreateSeparateChecksumFiles; LANGCCHKSUMNowProcessingFileS := LANGruCCHKSUMNowProcessingFileS; LANGCCHKSUMFinishCaption := LANGruCCHKSUMFinishCaption; LANGCCHKSUMAreYouSureYouWantToAbortTheProcessing := LANGruCCHKSUMAreYouSureYouWantToAbortTheProcessing; LANGCCHKSUMAnErrorOccuredWhileOpeningFileSS := LANGruCCHKSUMAnErrorOccuredWhileOpeningFileSS; LANGCCHKSUMAnErrorOccuredWhileReadingFileSS := LANGruCCHKSUMAnErrorOccuredWhileReadingFileSS; LANGCCHKSUMAnErrorOccuredWhileWritingFileSS := LANGruCCHKSUMAnErrorOccuredWhileWritingFileSS; LANGAnErrorOccuredWhileWritingFileSS := LANGruAnErrorOccuredWhileWritingFileSS; LANGTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt := LANGruTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt; LANGTheTargetFileSCannotBeRemovedS := LANGruTheTargetFileSCannotBeRemovedS; LANGMergeCaption := LANGruMergeCaption; LANGPleaseInsertNextDiskOrGiveDifferentLocation := LANGruPleaseInsertNextDiskOrGiveDifferentLocation; LANGMergeOfSSucceeded := LANGruMergeOfSSucceeded; LANGWarningCreatedFileFailsCRCCheck := LANGruWarningCreatedFileFailsCRCCheck; LANGMergeOfSSucceeded_NoCRCFileAvailable := LANGruMergeOfSSucceeded_NoCRCFileAvailable; LANGMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory := LANGruMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory; LANGMergeSC := LANGruMergeSC; LANGmiSplitFileCaption := LANGrumiSplitFileCaption; LANGmiMergeFilesCaption := LANGrumiMergeFilesCaption; LANGSplitTheFileSToDirectory := LANGruSplitTheFileSToDirectory; LANGSplitSC := LANGruSplitSC; LANGSplitFile := LANGruSplitFile; LANGBytesPerFile := LANGruBytesPerFile; LANGAutomatic := LANGruAutomatic; LANGDeleteFilesOnTargetDisk := LANGruDeleteFilesOnTargetDisk; LANGSplitCaption := LANGruSplitCaption; LANGCannotOpenFileS := LANGruCannotOpenFileS; LANGCannotSplitTheFileToMoreThan999Parts := LANGruCannotSplitTheFileToMoreThan999Parts; LANGThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem := LANGruThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem; LANGThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem := LANGruThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem; LANGAnErrorOccuredWhileOperationS := LANGruAnErrorOccuredWhileOperationS; LANGSplitOfSSucceeded := LANGruSplitOfSSucceeded; LANGSplitOfSFailed := LANGruSplitOfSFailed; LANGmnuShow_Caption := LANGrumnuShow_Caption; LANGmiShowDotFiles_Caption := LANGrumiShowDotFiles_Caption; LANGTheFileYouAreTryingToOpenIsQuiteBig := LANGruTheFileYouAreTryingToOpenIsQuiteBig; LANGCannotExecuteSPleaseCheckTheConfiguration := LANGruCannotExecuteSPleaseCheckTheConfiguration; LANGEdit := LANGruEdit; LANGEnterFilenameToEdit := LANGruEnterFilenameToEdit; LANGmnuSettings_Caption := LANGrumnuSettings_Caption; LANGmiFileTypes_Caption := LANGrumiFileTypes_Caption; LANGThereIsNoApplicationAssociatedWithS := LANGruThereIsNoApplicationAssociatedWithS; LANGErrorExecutingCommand := LANGruErrorExecutingCommand; LANGEditFileTypesCaption := LANGruEditFileTypesCaption; LANGTitleLabel_Caption := LANGruTitleLabel_Caption; LANGExtensionsColumn := LANGruExtensionsColumn; LANGDescriptionColumn := LANGruDescriptionColumn; LANGFileTypesList := LANGruFileTypesList; LANGActionName := LANGruActionName; LANGCommand := LANGruCommand; LANGSetDefaultActionButton_Caption := LANGruSetDefaultActionButton_Caption; LANGRunInTerminalCheckBox_Caption := LANGruRunInTerminalCheckBox_Caption; LANGAutodetectCheckBox_Caption := LANGruAutodetectCheckBox_Caption; LANGBrowseButton_Caption := LANGruBrowseButton_Caption; LANGCommandLabel_Caption := LANGruCommandLabel_Caption; LANGDescriptionLabel_Caption := LANGruDescriptionLabel_Caption; LANGFNameExtLabel_Caption := LANGruFNameExtLabel_Caption; LANGNotebookPageExtensions := LANGruNotebookPageExtensions; LANGNotebookPageActions := LANGruNotebookPageActions; LANGDefault := LANGruDefault; LANGCannotSaveFileTypeAssociationsBecauseOtherProcess := LANGruCannotSaveFileTypeAssociationsBecauseOtherProcess; LANGDefaultColor := LANGruDefaultColor; LANGIcon := LANGruIcon; LANGBrowseForIcon := LANGruBrowseForIcon; LANGSelectFileTypeColor := LANGruSelectFileTypeColor; LANGColor := LANGruColor; LANGmiChangePermissions_Caption := LANGrumiChangePermissions_Caption; LANGmiChangeOwner_Caption := LANGrumiChangeOwner_Caption; LANGmiCreateSymlink_Caption := LANGrumiCreateSymlink_Caption; LANGmiEditSymlink_Caption := LANGrumiEditSymlink_Caption; LANGChmodProgress := LANGruChmodProgress; LANGChownProgress := LANGruChownProgress; LANGYouMustSelectAValidSymbolicLink := LANGruYouMustSelectAValidSymbolicLink; LANGPopupRunS := LANGruPopupRunS; LANGPopupOpenS := LANGruPopupOpenS; LANGPopupGoUp := LANGruPopupGoUp; LANGPopupOpenWithS := LANGruPopupOpenWithS; LANGPopupDefault := LANGruPopupDefault; LANGPopupOpenWith := LANGruPopupOpenWith; LANGPopupViewFile := LANGruPopupViewFile; LANGPopupEditFile := LANGruPopupEditFile; LANGPopupMakeSymlink := LANGruPopupMakeSymlink; LANGPopupRename := LANGruPopupRename; LANGPopupDelete := LANGruPopupDelete; LANGDialogChangePermissions := LANGruDialogChangePermissions; LANGCouldNotBeChmoddedS := LANGruCouldNotBeChmoddedS; LANGDialogChangeOwner := LANGruDialogChangeOwner; LANGCouldNotBeChownedS := LANGruCouldNotBeChownedS; LANGDialogMakeSymlink := LANGruDialogMakeSymlink; LANGDialogEditSymlink := LANGruDialogEditSymlink; LANGFEditSymlink_Caption := LANGruFEditSymlink_Caption; LANGFEditSymlink_SymbolicLinkFilename := LANGruFEditSymlink_SymbolicLinkFilename; LANGFEditSymlink_SymbolicLinkPointsTo := LANGruFEditSymlink_SymbolicLinkPointsTo; LANGFChmod_Caption := LANGruFChmod_Caption; LANGFChmod_PermissionFrame := LANGruFChmod_PermissionFrame; LANGFChmod_FileFrame := LANGruFChmod_FileFrame; LANGFChmod_ApplyRecursivelyFor := LANGruFChmod_ApplyRecursivelyFor; LANGFChmod_miAllFiles := LANGruFChmod_miAllFiles; LANGFChmod_miDirectories := LANGruFChmod_miDirectories; LANGFChmod_OctalLabel := LANGruFChmod_OctalLabel; LANGFChmod_SUID := LANGruFChmod_SUID; LANGFChmod_SGID := LANGruFChmod_SGID; LANGFChmod_Sticky := LANGruFChmod_Sticky; LANGFChmod_RUSR := LANGruFChmod_RUSR; LANGFChmod_WUSR := LANGruFChmod_WUSR; LANGFChmod_XUSR := LANGruFChmod_XUSR; LANGFChmod_RGRP := LANGruFChmod_RGRP; LANGFChmod_WGRP := LANGruFChmod_WGRP; LANGFChmod_XGRP := LANGruFChmod_XGRP; LANGFChmod_ROTH := LANGruFChmod_ROTH; LANGFChmod_WOTH := LANGruFChmod_WOTH; LANGFChmod_XOTH := LANGruFChmod_XOTH; LANGFChmod_TextLabel := LANGruFChmod_TextLabel; LANGFChmod_FileLabel := LANGruFChmod_FileLabel; LANGFChown_Caption := LANGruFChown_Caption; LANGFChown_OwnerFrame := LANGruFChown_OwnerFrame; LANGFChown_GroupFrame := LANGruFChown_GroupFrame; LANGFChown_FileFrame := LANGruFChown_FileFrame; LANGFChown_ApplyRecursively := LANGruFChown_ApplyRecursively; LANGFSymlink_Caption := LANGruFSymlink_Caption; LANGFSymlink_ExistingFilename := LANGruFSymlink_ExistingFilename; LANGFSymlink_SymlinkFilename := LANGruFSymlink_SymlinkFilename; LANGmnuBookmarks_Caption := LANGrumnuBookmarks_Caption; LANGmiAddBookmark_Caption := LANGrumiAddBookmark_Caption; LANGmiEditBookmarks_Caption := LANGrumiEditBookmarks_Caption; LANGBookmarkPopupDelete_Caption := LANGruBookmarkPopupDelete_Caption; LANGmiPreferences_Caption := LANGrumiPreferences_Caption; LANGTheCurrentDirectoryAlreadyExistsInTheBookmarksList := LANGruTheCurrentDirectoryAlreadyExistsInTheBookmarksList; LANGSomeOtherInstanceChanged := LANGruSomeOtherInstanceChanged1 + LANGruSomeOtherInstanceChanged2; LANGPreferences_Caption := LANGruPreferences_Caption; LANGPreferences_TitleLabel_Caption := LANGruPreferences_TitleLabel_Caption; LANGPreferences_GeneralPage := LANGruPreferences_GeneralPage; LANGPreferences_FontsPage := LANGruPreferences_FontsPage; LANGPreferences_ColorsPage := LANGruPreferences_ColorsPage; LANGPreferences_RowHeight := LANGruPreferences_RowHeight; LANGPreferences_NumHistoryItems := LANGruPreferences_NumHistoryItems; LANGPreferences_Default := LANGruPreferences_Default; LANGPreferences_ClearReadonlyAttribute := LANGruPreferences_ClearReadonlyAttribute; LANGPreferences_DisableMouseRenaming := LANGruPreferences_DisableMouseRenaming; LANGPreferences_ShowFiletypeIconsInList := LANGruPreferences_ShowFiletypeIconsInList; LANGPreferences_ExternalAppsLabel := LANGruPreferences_ExternalAppsLabel; LANGPreferences_Viewer := LANGruPreferences_Viewer; LANGPreferences_Editor := LANGruPreferences_Editor; LANGPreferences_Terminal := LANGruPreferences_Terminal; LANGPreferences_ListFont := LANGruPreferences_ListFont; LANGPreferences_Change := LANGruPreferences_Change; LANGPreferences_UseDefaultFont := LANGruPreferences_UseDefaultFont; LANGPreferences_Foreground := LANGruPreferences_Foreground; LANGPreferences_Background := LANGruPreferences_Background; LANGPreferences_NormalItem := LANGruPreferences_NormalItem; LANGPreferences_SetToDefaultToUseGTKThemeColors := LANGruPreferences_SetToDefaultToUseGTKThemeColors; LANGPreferences_Cursor := LANGruPreferences_Cursor; LANGPreferences_InactiveItem := LANGruPreferences_InactiveItem; LANGPreferences_SelectedItem := LANGruPreferences_SelectedItem; LANGPreferences_LinkItem := LANGruPreferences_LinkItem; LANGPreferences_LinkItemHint := LANGruPreferences_LinkItemHint; LANGPreferences_DotFileItem := LANGruPreferences_DotFileItem; LANGPreferences_DotFileItemHint := LANGruPreferences_DotFileItemHint; LANGPreferences_BrowseForApplication := LANGruPreferences_BrowseForApplication; LANGPreferences_DefaultS := LANGruPreferences_DefaultS; LANGPreferences_SelectFont := LANGruPreferences_SelectFont; LANGBookmarkButton_Tooltip := LANGruBookmarkButton_Tooltip; LANGUpButton_Tooltip := LANGruUpButton_Tooltip; LANGRootButton_Tooltip := LANGruRootButton_Tooltip; LANGHomeButton_Tooltip := LANGruHomeButton_Tooltip; LANGLeftEqualButton_Tooltip := LANGruLeftEqualButton_Tooltip; LANGRightEqualButton_Tooltip := LANGruRightEqualButton_Tooltip; LANGmiShowDirectorySizes_Caption := LANGrumiShowDirectorySizes_Caption; LANGmiTargetSource_Caption := LANGrumiTargetSource_Caption; LANGFileTypeDirectory := LANGruFileTypeDirectory; LANGFileTypeFile := LANGruFileTypeFile; LANGFileTypeMetafile := LANGruFileTypeMetafile; LANGPreferencesPanelsPage := LANGruPreferencesPanelsPage; LANGPreferencesApplicationsPage := LANGruPreferencesApplicationsPage; LANGPreferencesExperimentalPage := LANGruPreferencesExperimentalPage; LANGPreferencesSelectAllDirectoriesCheckBox_Caption := LANGruPreferencesSelectAllDirectoriesCheckBox_Caption; LANGPreferencesNewStyleAltOCheckBox_Caption := LANGruPreferencesNewStyleAltOCheckBox_Caption; LANGPreferencesNewStyleAltOCheckBox_Tooltip := LANGruPreferencesNewStyleAltOCheckBox_Tooltip; LANGPreferencesShowFuncButtonsCheckBox_Caption := LANGruPreferencesShowFuncButtonsCheckBox_Caption; LANGPreferencesSizeFormatLabel_Caption := LANGruPreferencesSizeFormatLabel_Caption; LANGPreferencesmiSizeFormat1 := LANGruPreferencesmiSizeFormat1; LANGPreferencesmiSizeFormat6 := LANGruPreferencesmiSizeFormat6; LANGPreferencesAutodetectXApp := LANGruPreferencesAutodetectXApp; LANGPreferencesAlwaysRunInTerminal := LANGruPreferencesAlwaysRunInTerminal; LANGPreferencesNeverRunInTerminal := LANGruPreferencesNeverRunInTerminal; LANGPreferencesCmdLineBehaviourLabel_Caption := LANGruPreferencesCmdLineBehaviourLabel_Caption; LANGPreferencesFeatures := LANGruPreferencesFeatures; LANGPreferencesDisableMouseRename_Tooltip := LANGruPreferencesDisableMouseRename_Tooltip; LANGPreferencesDisableFileTipsCheckBox_Caption := LANGruPreferencesDisableFileTipsCheckBox_Caption; LANGPreferencesDisableFileTipsCheckBox_Tooltip := LANGruPreferencesDisableFileTipsCheckBox_Tooltip; LANGPreferencesShow := LANGruPreferencesShow; LANGPreferencesDirsInBoldCheckBox_Caption := LANGruPreferencesDirsInBoldCheckBox_Caption; LANGPreferencesDisableDirectoryBracketsCheckBox_Caption := LANGruPreferencesDisableDirectoryBracketsCheckBox_Caption; LANGPreferencesOctalPermissionsCheckBox_Caption := LANGruPreferencesOctalPermissionsCheckBox_Caption; LANGPreferencesOctalPermissionsCheckBox_Tooltip := LANGruPreferencesOctalPermissionsCheckBox_Tooltip; LANGPreferencesMovement := LANGruPreferencesMovement; LANGPreferencesLynxLikeMotionCheckBox_Caption := LANGruPreferencesLynxLikeMotionCheckBox_Caption; LANGPreferencesInsertMovesDownCheckBox_Caption := LANGruPreferencesInsertMovesDownCheckBox_Caption; LANGPreferencesSpaceMovesDownCheckBox_Caption := LANGruPreferencesSpaceMovesDownCheckBox_Caption; LANGPreferencesViewer := LANGruPreferencesViewer; LANGPreferencesCommandSC := LANGruPreferencesCommandSC; LANGPreferencesUseInternalViewer := LANGruPreferencesUseInternalViewer; LANGPreferencesEditor := LANGruPreferencesEditor; LANGPreferencesTerminal := LANGruPreferencesTerminal; LANGPreferencesExperimentalFeatures := LANGruPreferencesExperimentalFeatures; LANGPreferencesExperimentalWarningLabel_Caption := LANGruPreferencesExperimentalWarningLabel_Caption; LANGPreferencesFocusRefreshCheckBox_Caption := LANGruPreferencesFocusRefreshCheckBox_Caption; LANGPreferencesFocusRefreshCheckBox_Tooltip := LANGruPreferencesFocusRefreshCheckBox_Tooltip; LANGPreferencesWMCompatModeCheckBox_Caption := LANGruPreferencesWMCompatModeCheckBox_Caption; LANGPreferencesWMCompatModeCheckBox_Tooltip := LANGruPreferencesWMCompatModeCheckBox_Tooltip; LANGPreferencesCompatUseLibcSystemCheckBox_Caption := LANGruPreferencesCompatUseLibcSystemCheckBox_Caption; LANGPreferencesCompatUseLibcSystemCheckBox_Tooltip := LANGruPreferencesCompatUseLibcSystemCheckBox_Tooltip; LANGmiSearchCaption2 := LANGrumiSearchCaption2; LANGmiNoMounterBarCaption := LANGrumiNoMounterBarCaption; LANGmiShowOneMounterBarCaption := LANGrumiShowOneMounterBarCaption; LANGmiShowTwoMounterBarCaption := LANGrumiShowTwoMounterBarCaption; LANGmnuNetworkCaption := LANGrumnuNetworkCaption; LANGmiConnectionsCaption := LANGrumiConnectionsCaption; LANGmiOpenConnectionCaption := LANGrumiOpenConnectionCaption; LANGmiQuickConnectCaption := LANGrumiQuickConnectCaption; LANGmnuPluginsCaption := LANGrumnuPluginsCaption; LANGmiTestPluginCaption := LANGrumiTestPluginCaption; LANGmiMounterSettingsCaption := LANGrumiMounterSettingsCaption; LANGmiColumnsCaption := LANGrumiColumnsCaption; LANGmiSavePositionCaption := LANGrumiSavePositionCaption; LANGmiMountCaption := LANGrumiMountCaption; LANGmiUmountCaption := LANGrumiUmountCaption; LANGmiEjectCaption := LANGrumiEjectCaption; LANGmiDuplicateTabCaption := LANGrumiDuplicateTabCaption; LANGmiCloseTabCaption := LANGrumiCloseTabCaption; LANGmiCloseAllTabsCaption := LANGrumiCloseAllTabsCaption; LANGCannotDetermineDestinationEngine := LANGruCannotDetermineDestinationEngine; LANGCannotLoadFile := LANGruCannotLoadFile; LANGMountPointDevice := LANGruMountPointDevice; LANGMountSC := LANGruMountSC; LANGNoPluginsFound := LANGruNoPluginsFound; LANGPluginAbout := LANGruPluginAbout; LANGCouldntOpenURI := LANGruCouldntOpenURI; LANGPluginAboutInside := LANGruPluginAboutInside; LANGAreYouSureCloseAllTabs := LANGruAreYouSureCloseAllTabs; LANGCouldntOpenURIArchive := LANGruCouldntOpenURIArchive; LANGThereIsNoModuleAvailable := LANGruThereIsNoModuleAvailable; LANGIgnoreError := LANGruIgnoreError; LANGErrorMount := LANGruErrorMount; LANGErrorUmount := LANGruErrorUmount; LANGErrorEject := LANGruErrorEject; LANGMounterPrefs_Caption := LANGruMounterPrefs_Caption; LANGMounterPrefs_TitleLabelCaption := LANGruMounterPrefs_TitleLabelCaption; LANGMounterPrefs_ListViewFrameCaption := LANGruMounterPrefs_ListViewFrameCaption; LANGMounterPrefs_MountName := LANGruMounterPrefs_MountName; LANGMounterPrefs_MountPoint := LANGruMounterPrefs_MountPoint; LANGMounterPrefs_Device := LANGruMounterPrefs_Device; LANGMounterPrefs_MoveUpButtonTooltip := LANGruMounterPrefs_MoveUpButtonTooltip; LANGMounterPrefs_MoveDownButtonTooltip := LANGruMounterPrefs_MoveDownButtonTooltip; LANGMounterPrefs_UseFSTabDefaultsCheckBox := LANGruMounterPrefs_UseFSTabDefaultsCheckBox; LANGMounterPrefs_UseFSTabDefaultsCheckBoxTooltip := LANGruMounterPrefs_UseFSTabDefaultsCheckBoxTooltip; LANGMounterPrefs_ToggleModeCheckBox := LANGruMounterPrefs_ToggleModeCheckBox; LANGMounterPrefs_ToggleModeCheckBoxTooltip := LANGruMounterPrefs_ToggleModeCheckBoxTooltip; LANGMounterPrefs_PropertiesFrameCaption := LANGruMounterPrefs_PropertiesFrameCaption; LANGMounterPrefs_DisplayTextLabelCaption := LANGruMounterPrefs_DisplayTextLabelCaption; LANGMounterPrefs_MountPointLabelCaption := LANGruMounterPrefs_MountPointLabelCaption; LANGMounterPrefs_MountDeviceLabelCaption := LANGruMounterPrefs_MountDeviceLabelCaption; LANGMounterPrefs_DeviceTypeLabelCaption := LANGruMounterPrefs_DeviceTypeLabelCaption; LANGMounterPrefs_miLocalDiskCaption := LANGruMounterPrefs_miLocalDiskCaption; LANGMounterPrefs_miRemovableCaption := LANGruMounterPrefs_miRemovableCaption; LANGMounterPrefs_miCDCaption := LANGruMounterPrefs_miCDCaption; LANGMounterPrefs_miFloppyCaption := LANGruMounterPrefs_miFloppyCaption; LANGMounterPrefs_miNetworkCaption := LANGruMounterPrefs_miNetworkCaption; LANGMounterPrefs_MountCommandLabelCaption := LANGruMounterPrefs_MountCommandLabelCaption; LANGMounterPrefs_UmountCommandLabelCaption := LANGruMounterPrefs_UmountCommandLabelCaption; LANGMounterPrefs_MountCommandEntryTooltip := LANGruMounterPrefs_MountCommandEntryTooltip; LANGMounterPrefs_UmountCommandEntryTooltip := LANGruMounterPrefs_UmountCommandEntryTooltip; LANGMounterPrefs_IconLabelCaption := LANGruMounterPrefs_IconLabelCaption; LANGConnMgr_Caption := LANGruConnMgr_Caption; LANGConnMgr_ConnectButton := LANGruConnMgr_ConnectButton; LANGConnMgr_OpenConnection := LANGruConnMgr_OpenConnection; LANGConnMgr_NameColumn := LANGruConnMgr_NameColumn; LANGConnMgr_URIColumn := LANGruConnMgr_URIColumn; LANGConnMgr_AddConnectionButtonCaption := LANGruConnMgr_AddConnectionButtonCaption; LANGConnMgr_AddConnectionButtonTooltip := LANGruConnMgr_AddConnectionButtonTooltip; LANGConnMgr_EditButtonCaption := LANGruConnMgr_EditButtonCaption; LANGConnMgr_EditButtonTooltip := LANGruConnMgr_EditButtonTooltip; LANGConnMgr_RemoveButtonCaption := LANGruConnMgr_RemoveButtonCaption; LANGConnMgr_RemoveButtonTooltip := LANGruConnMgr_RemoveButtonTooltip; LANGConnMgr_DoYouWantDelete := LANGruConnMgr_DoYouWantDelete; LANGConnProp_FTP := LANGruConnProp_FTP; LANGConnProp_SFTP := LANGruConnProp_SFTP; LANGConnProp_SMB := LANGruConnProp_SMB; LANGConnProp_HTTP := LANGruConnProp_HTTP; LANGConnProp_HTTPS := LANGruConnProp_HTTPS; LANGConnProp_Other := LANGruConnProp_Other; LANGConnProp_Caption := LANGruConnProp_Caption; LANGConnProp_VFSModule := LANGruConnProp_VFSModule; LANGConnProp_URI := LANGruConnProp_URI; LANGConnProp_URIEntryTooltip := LANGruConnProp_URIEntryTooltip; LANGConnProp_DetailedInformations := LANGruConnProp_DetailedInformations; LANGConnProp_Name := LANGruConnProp_Name; LANGConnProp_Server := LANGruConnProp_Server; LANGConnProp_Username := LANGruConnProp_Username; LANGConnProp_UserNameEntryTooltip := LANGruConnProp_UserNameEntryTooltip; LANGConnProp_Password := LANGruConnProp_Password; LANGConnProp_TargetDirectory := LANGruConnProp_TargetDirectory; LANGConnProp_ServiceType := LANGruConnProp_ServiceType; LANGConnProp_MaskPassword := LANGruConnProp_MaskPassword; LANGConnProp_MenuItemCaption := LANGruConnProp_MenuItemCaption; LANGConnLogin_Caption := LANGruConnLogin_Caption; LANGConnLogin_Login := LANGruConnLogin_Login; LANGConnLogin_ExperimentalWarningLabelCaption := LANGruConnLogin_ExperimentalWarningLabelCaption; LANGConnLogin_Username := LANGruConnLogin_Username; LANGConnLogin_Password := LANGruConnLogin_Password; LANGConnLogin_AnonymousCheckButton := LANGruConnLogin_AnonymousCheckButton; LANGColumns_Caption := LANGruColumns_Caption; LANGColumns_Title := LANGruColumns_Title; LANGColumns_MoveUpButtonTooltip := LANGruColumns_MoveUpButtonTooltip; LANGColumns_MoveDownButtonTooltip := LANGruColumns_MoveDownButtonTooltip; LANGColumns_TitlesLongName := LANGruColumns_TitlesLongName; LANGColumns_TitlesLongNameExt := LANGruColumns_TitlesLongNameExt; LANGColumns_TitlesLongExt := LANGruColumns_TitlesLongExt; LANGColumns_TitlesLongSize := LANGruColumns_TitlesLongSize; LANGColumns_TitlesLongDateTime := LANGruColumns_TitlesLongDateTime; LANGColumns_TitlesLongDate := LANGruColumns_TitlesLongDate; LANGColumns_TitlesLongTime := LANGruColumns_TitlesLongTime; LANGColumns_TitlesLongUser := LANGruColumns_TitlesLongUser; LANGColumns_TitlesLongGroup := LANGruColumns_TitlesLongGroup; LANGColumns_TitlesLongAttr := LANGruColumns_TitlesLongAttr; LANGColumns_TitlesShortName := LANGruColumns_TitlesShortName; LANGColumns_TitlesShortNameExt := LANGruColumns_TitlesShortNameExt; LANGColumns_TitlesShortExt := LANGruColumns_TitlesShortExt; LANGColumns_TitlesShortSize := LANGruColumns_TitlesShortSize; LANGColumns_TitlesShortDateTime := LANGruColumns_TitlesShortDateTime; LANGColumns_TitlesShortDate := LANGruColumns_TitlesShortDate; LANGColumns_TitlesShortTime := LANGruColumns_TitlesShortTime; LANGColumns_TitlesShortUser := LANGruColumns_TitlesShortUser; LANGColumns_TitlesShortGroup := LANGruColumns_TitlesShortGroup; LANGColumns_TitlesShortAttr := LANGruColumns_TitlesShortAttr; LANGTestPlugin_Caption := LANGruTestPlugin_Caption; LANGTestPlugin_Title := LANGruTestPlugin_Title; LANGTestPlugin_ExperimentalWarningLabelCaption := LANGruTestPlugin_ExperimentalWarningLabelCaption; LANGTestPlugin_Plugin := LANGruTestPlugin_Plugin; LANGTestPlugin_Command := LANGruTestPlugin_Command; LANGTestPlugin_Username := LANGruTestPlugin_Username; LANGTestPlugin_Password := LANGruTestPlugin_Password; LANGTestPlugin_AnonymousCheckButton := LANGruTestPlugin_AnonymousCheckButton; LANGTestPlugin_NoPluginsFound := LANGruTestPlugin_NoPluginsFound; LANGRemoteWait_Caption := LANGruRemoteWait_Caption; LANGRemoteWait_OperationInProgress := LANGruRemoteWait_OperationInProgress; LANGRemoteWait_ItemsFound := LANGruRemoteWait_ItemsFound; LANGSearch_Bytes := LANGruSearch_Bytes; LANGSearch_kB := LANGruSearch_kB; LANGSearch_MB := LANGruSearch_MB; LANGSearch_days := LANGruSearch_days; LANGSearch_weeks := LANGruSearch_weeks; LANGSearch_months := LANGruSearch_months; LANGSearch_years := LANGruSearch_years; LANGSearch_Caption := LANGruSearch_Caption; LANGSearch_General := LANGruSearch_General; LANGSearch_Advanced := LANGruSearch_Advanced; LANGSearch_SearchResults := LANGruSearch_SearchResults; LANGSearch_SearchFor := LANGruSearch_SearchFor; LANGSearch_FileMaskEntryTooltip := LANGruSearch_FileMaskEntryTooltip; LANGSearch_SearchIn := LANGruSearch_SearchIn; LANGSearch_SearchArchivesCheckButton := LANGruSearch_SearchArchivesCheckButton; LANGSearch_FindText := LANGruSearch_FindText; LANGSearch_FindTextEntryTooltip := LANGruSearch_FindTextEntryTooltip; LANGSearch_CaseSensitiveCheckButton := LANGruSearch_CaseSensitiveCheckButton; LANGSearch_StayCurrentFSCheckButton := LANGruSearch_StayCurrentFSCheckButton; LANGSearch_CaseSensitiveMatchCheckButton := LANGruSearch_CaseSensitiveMatchCheckButton; LANGSearch_Size := LANGruSearch_Size; LANGSearch_Date := LANGruSearch_Date; LANGSearch_BiggerThan := LANGruSearch_BiggerThan; LANGSearch_SmallerThan := LANGruSearch_SmallerThan; LANGSearch_ModifiedBetweenRadioButton := LANGruSearch_ModifiedBetweenRadioButton; LANGSearch_NotModifiedAfterRadioButton := LANGruSearch_NotModifiedAfterRadioButton; LANGSearch_ModifiedLastRadioButton := LANGruSearch_ModifiedLastRadioButton; LANGSearch_ModifiedNotLastRadionButton := LANGruSearch_ModifiedNotLastRadionButton; LANGSearch_ModifiedBetweenEntry1 := LANGruSearch_ModifiedBetweenEntry1; LANGSearch_ViewButtonCaption := LANGruSearch_ViewButtonCaption; LANGSearch_NewSearchButtonCaption := LANGruSearch_NewSearchButtonCaption; LANGSearch_GoToFileButtonCaption := LANGruSearch_GoToFileButtonCaption; LANGSearch_FeedToListboxButtonCaption := LANGruSearch_FeedToListboxButtonCaption; LANGSearch_StatusSC := LANGruSearch_StatusSC; LANGSearch_Ready := LANGruSearch_Ready; LANGSearch_PreparingToSearch := LANGruSearch_PreparingToSearch; LANGSearch_SearchInProgress := LANGruSearch_SearchInProgress; LANGSearch_UserCancelled := LANGruSearch_UserCancelled; LANGSearch_SearchFinished := LANGruSearch_SearchFinished; LANGSearch_FilesFound := LANGruSearch_FilesFound; LANGSearch_And := LANGruSearch_And; LANGCloseOpenConnection := LANGruCloseOpenConnection; LANGDuplicateTabWarning := LANGruDuplicateTabWarning; LANGDontShowAgain := LANGruDontShowAgain; LANGSwitchOtherPanelWarning := LANGruSwitchOtherPanelWarning; LANGOpenConnectionsWarning := LANGruOpenConnectionsWarning; LANGmiDisconnect_Caption := LANGrumiDisconnect_Caption; LANGDisconnectButton_Tooltip := LANGruDisconnectButton_Tooltip; LANGLeaveArchiveButton_Tooltip := LANGruLeaveArchiveButton_Tooltip; LANGOpenTerminalButton_Tooltip := LANGruOpenTerminalButton_Tooltip; LANGOpenTerminalButton_Caption := LANGruOpenTerminalButton_Caption; LANGShowTextUIDsCheckBox_Caption := LANGruShowTextUIDsCheckBox_Caption; LANGShowTextUIDsCheckBox_Tooltip := LANGruShowTextUIDsCheckBox_Tooltip; LANGmiNewTab_Caption := LANGrumiNewTab_Caption; LANGFilePopupMenu_Properties := LANGruFilePopupMenu_Properties; LANGCommandEntry_Tooltip := LANGruCommandEntry_Tooltip; LANGmiFiles_Caption := LANGrumiFiles_Caption; LANGPasswordButton_Tooltip := LANGruPasswordButton_Tooltip; LANGHandleRunFromArchive_Bytes := LANGruHandleRunFromArchive_Bytes; LANGHandleRunFromArchive_FileTypeDesc_Unknown := LANGruHandleRunFromArchive_FileTypeDesc_Unknown; LANGHandleRunFromArchive_NotAssociated := LANGruHandleRunFromArchive_NotAssociated; LANGHandleRunFromArchive_SelfExecutable := LANGruHandleRunFromArchive_SelfExecutable; LANGHandleRunFromArchive_CouldntCreateTemporaryDirectory := LANGruHandleRunFromArchive_CouldntCreateTemporaryDirectory; LANGFRunFromVFS_Caption := LANGruFRunFromVFS_Caption; LANGFRunFromVFS_TitleLabel := LANGruFRunFromVFS_TitleLabel; LANGFRunFromVFS_FileNameLabel := LANGruFRunFromVFS_FileNameLabel; LANGFRunFromVFS_FileTypeLabel := LANGruFRunFromVFS_FileTypeLabel; LANGFRunFromVFS_SizeLabel := LANGruFRunFromVFS_SizeLabel; LANGFRunFromVFS_PackedSizeLabel := LANGruFRunFromVFS_PackedSizeLabel; LANGFRunFromVFS_DateLabel := LANGruFRunFromVFS_DateLabel; LANGFRunFromVFS_InfoLabel := LANGruFRunFromVFS_InfoLabel; LANGFRunFromVFS_OpensWithLabel := LANGruFRunFromVFS_OpensWithLabel; LANGFRunFromVFS_ExecuteButton := LANGruFRunFromVFS_ExecuteButton; LANGFRunFromVFS_ExecuteAllButton := LANGruFRunFromVFS_ExecuteAllButton; LANGFSetPassword_Caption := LANGruFSetPassword_Caption; LANGFSetPassword_Label1_Caption := LANGruFSetPassword_Label1_Caption; LANGFSetPassword_Label2_Caption := LANGruFSetPassword_Label2_Caption; LANGFSetPassword_ShowPasswordCheckButton := LANGruFSetPassword_ShowPasswordCheckButton; LANGCopyFileNamesToClipboard := LANGruCopyFileNamesToClipboard; LANGCopyFullPathNamesToClipboard := LANGruCopyFullPathNamesToClipboard; LANGCopyPathToClipboard := LANGruCopyPathToClipboard; LANGPreferences_DateFormatLabel_Caption := LANGruPreferences_DateFormatLabel_Caption; LANGPreferences_System := LANGruPreferences_System; LANGPreferences_Custom := LANGruPreferences_Custom; LANGPreferences_CustomDateFormatEntry_Tooltip := LANGruPreferences_CustomDateFormatEntry_Tooltip; LANGPreferences_TimeFormatLabel_Caption := LANGruPreferences_TimeFormatLabel_Caption; LANGPreferences_CustomTimeFormatEntry_Tooltip := LANGruPreferences_CustomTimeFormatEntry_Tooltip; LANGPreferences_DateTimeFormatLabel_Caption := LANGruPreferences_DateTimeFormatLabel_Caption; LANGPreferences_QuickRenameSkipExtCheckBox := LANGruPreferences_QuickRenameSkipExtCheckBox; LANGPreferences_QuickRenameSkipExtCheckBox_Tooltip := LANGruPreferences_QuickRenameSkipExtCheckBox_Tooltip; LANGPreferences_SortDirectoriesLikeFilesCheckBox := LANGruPreferences_SortDirectoriesLikeFilesCheckBox; LANGPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip := LANGruPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip; LANGPreferences_QuickSearchLabel_Caption := LANGruPreferences_QuickSearchLabel_Caption; LANGPreferences_QuickSearchOptionMenu_Tooltip := LANGruPreferences_QuickSearchOptionMenu_Tooltip; LANGPreferences_QuickSearch_Option1 := LANGruPreferences_QuickSearch_Option1; LANGPreferences_QuickSearch_Option2 := LANGruPreferences_QuickSearch_Option2; LANGPreferences_QuickSearch_Option3 := LANGruPreferences_QuickSearch_Option3; LANGPreferences_QuickSearch_Option4 := LANGruPreferences_QuickSearch_Option4; LANGPreferences_TempPathLabel_Caption := LANGruPreferences_TempPathLabel_Caption; LANGPreferences_VFSTempPathLabel_Caption := LANGruPreferences_VFSTempPathLabel_Caption; LANGPreferences_VFSTempPathEntry_Tooltip := LANGruPreferences_VFSTempPathEntry_Tooltip; LANGPreferences_RightClickSelectCheckBox := LANGruPreferences_RightClickSelectCheckBox; LANGPreferences_RightClickSelectCheckBox_Tooltip := LANGruPreferences_RightClickSelectCheckBox_Tooltip; LANGGtkMountOperation_ConnectAnonymously := LANGruGtkMountOperation_ConnectAnonymously; LANGGtkMountOperation_ConnectAsUser := LANGruGtkMountOperation_ConnectAsUser; LANGGtkMountOperation_Username := LANGruGtkMountOperation_Username; LANGGtkMountOperation_Domain := LANGruGtkMountOperation_Domain; LANGGtkMountOperation_Password := LANGruGtkMountOperation_Password; LANGGtkMountOperation_DoNotSavePassword := LANGruGtkMountOperation_DoNotSavePassword; LANGGtkMountOperation_ForgetPasswordImmediately := LANGruGtkMountOperation_ForgetPasswordImmediately; LANGGtkMountOperation_RememberPasswordUntilYouLogout := LANGruGtkMountOperation_RememberPasswordUntilYouLogout; LANGGtkMountOperation_SavePasswordInConnectionManager := LANGruGtkMountOperation_SavePasswordInConnectionManager; LANGGtkMountOperation_RememberForever := LANGruGtkMountOperation_RememberForever; LANGFSymlink_RelativePath := LANGruFSymlink_RelativePath; LANGFConnectionManager_DuplicateButton_Caption := LANGruFConnectionManager_DuplicateButton_Caption; LANGFConnectionManager_DuplicateButton_Tooltip := LANGruFConnectionManager_DuplicateButton_Tooltip; LANGFConnectionManager_DoNotSavePasswordsCheckBox_Label := LANGruFConnectionManager_DoNotSavePasswordsCheckBox_Label; LANGFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip := LANGruFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip; LANGFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label := LANGruFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label; LANGFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip := LANGruFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip; LANGFConnectionManager_DuplicateMenuItem_Caption := LANGruFConnectionManager_DuplicateMenuItem_Caption; LANGFQuickConnect_Caption := LANGruFQuickConnect_Caption; LANGFQuickConnect_TitleLabel_Caption := LANGruFQuickConnect_TitleLabel_Caption; LANGFQuickConnect_ConnectToURILabel_Caption := LANGruFQuickConnect_ConnectToURILabel_Caption; LANGLinkToS := LANGruLinkToS; LANGOpenDirectoryInBackgroundTab := LANGruOpenDirectoryInBackgroundTab; LANGTheActiveConnectionHasNotBeenSaved := LANGruTheActiveConnectionHasNotBeenSaved; LANGTheArchiveIsEncryptedAndRequiresPassword := LANGruTheArchiveIsEncryptedAndRequiresPassword; end; initialization AddTranslation('ru_RU', @SetTranslation); AddTranslation('ru_RU.utf8', @SetTranslation); AddTranslation('RU', @SetTranslation); end. tuxcmd-0.6.70+dfsg/translations/UTranslation_ES.pas0000644000175000017500000025242411300022643021305 0ustar salvisalvi(* Tux Commander - UTranslation_ES - Spanish Localization constants Copyright (C) 2007 Daniel Areiza Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UTranslation_ES; interface implementation uses ULocale; const LANGesF2Button_Caption = 'F2 - Renombrar'; LANGesF3Button_Caption = 'F3 - Ver'; LANGesF4Button_Caption = 'F4 - Editar'; LANGesF5Button_Caption = 'F5 - Copiar'; LANGesF6Button_Caption = 'F6 - Mover'; LANGesF7Button_Caption = 'F7 - Nuevo Dir'; LANGesF8Button_Caption = 'F8 - Eliminar'; LANGesmnuFile_Caption = '_Archivo'; LANGesmnuMark_Caption = '_Seleccionar'; LANGesmnuCommands_Caption = '_Comandos'; LANGesmnuHelp_Caption = 'A_yuda'; LANGesmiExit_Caption = 'Sa_lir'; LANGesmiSelectGroup_Caption = 'Seleccionar _Grupo...'; LANGesmiUnselectGroup_Caption = '_Deseleccionar Grupo...'; LANGesmiSelectAll_Caption = '_Seleccionar Todo'; LANGesmiUnselectAll_Caption = 'D_eseleccinar Todo'; LANGesmiInvertSelection_Caption = '_Invertir Selección'; LANGesmiRefresh_Caption = '_Actualizar'; LANGesmiAbout_Caption = '_Acerca de...'; LANGesColumn1_Caption = 'Nombre'; LANGesColumn2_Caption = 'Ext'; LANGesColumn3_Caption = 'Tamaño'; LANGesColumn4_Caption = 'Fecha'; LANGesColumn5_Caption = 'Atrib'; LANGesExpandSelection = 'Expandir selección'; LANGesShrinkSelection = 'Restringir selección'; LANGesNoMatchesFound = 'No hubo coincidencias'; LANGesNoFilesSelected = '¡No hay archivos seleccionados!'; LANGesSelectedFilesDirectories = '%d archivos/directorios seleccionados'; LANGesDirectoryS = 'directorio %s'; LANGesFileS = 'archivo %s'; LANGesDoYouReallyWantToDeleteTheS = '¿Realmente desea eliminar el %s?'; LANGesDoYouReallyWantToDeleteTheSS = '¿Realmente desea eliminar %s?'#10'%s'; LANGesCopyFiles = 'Copiar archivos'; LANGesMoveRenameFiles = 'Mover/Renombrar archivos'; LANGesCopyDFileDirectoriesTo = 'Copiar %d archivo/directorios a'; LANGesMoveRenameDFileDirectoriesTo = 'Mover/Renombrar %d archivo/directorios a'; LANGesCopySC = 'Copiar:'; LANGesMoveRenameSC = 'Mover/Renombrar:'; LANGesQuickFind = 'Búsqueda rápida:'; LANGesAboutString = 'Tux Commander'#10'Version %s'#10'Build date: %s'#10#10'Copyright (c) 2008 Tomas Bzatek'#10'E-mail: tbzatek@users.sourceforge.net'#10'Website: http://tuxcmd.sourceforge.net/'; LANGesAboutStringGnome = 'version %s'#10'Build date: %s'#10'Website: http://tuxcmd.sourceforge.net/'; LANGesDiskStatFmt = '%s de %s libres'; LANGesDiskStatVolNameFmt = '[%s] %s de %s libres'; LANGesStatusLineFmt = '%s de %s en %d de %d archivos seleccionados'; LANGesPanelStrings : array[boolean] of string = ('derecho', 'izquierdo'); LANGesDIR = ''; LANGesErrorGettingListingForSPanel = 'Ha ocurrido un error actualizando el panel %s:'#10' %s'#10#10'Ruta = ''%s'''; LANGesErrorGettingListingForSPanelNoPath = 'Error actualizando el panel %s:'#10' %s'; LANGesErrorCreatingNewDirectorySInSPanel = 'Error creando el nuevo directorio ''%s'' en el panel %s:'#10' %s'; LANGesErrorCreatingNewDirectorySInSPanelNoPath = 'Error creando el nuevo directorio en el panel %s:'#10' %s'; LANGesTheFileDirectory = 'El archivo/directorio'; LANGesCouldNotBeDeleted = 'no se pudo eliminar'; LANGesCouldNotBeDeletedS = 'no se pudo eliminar: %s'; LANGesUserCancelled = '¡Cancelado por el usuario!'; LANGesTheDirectorySIsNotEmpty = '¡El directorio %s no esta vacío!'; LANGesCannotCopyFile = 'No se puede copiar el archivo'; LANGesCopyError = 'Ha ocurrido un error copiando'; LANGesMoveError = 'Ha ocurrido un error moviendo'; LANGesOverwriteS = 'Sobrescribir: %s'; LANGesWithFileS = 'Con el archivo: %s'; LANGesOvewriteSBytesS = '%s bytes, %s'; LANGesTheFile = 'El archivo'; LANGesCopy = 'Copiar'; LANGesMove = 'Mover'; LANGesTheDirectory = 'El directorio'; LANGesTheSymbolicLink = 'El enlace simbólico'; LANGesCannotMoveFile = 'No se puede mover el archivo'; LANGesCouldNotBeCreated = 'no se pudo crear'; LANGesCouldNotBeCreatedS = 'no se pudo crear: %s'; LANGesFromS = 'Desde: %s'; LANGesToS = 'Hasta: %s'; LANGesCannotCopyFileToItself = 'No se puede copiar el archivo hacia si mismo'; LANGesMemoryAllocationFailed = 'Fallo de alocación de memoria:'; LANGesCannotOpenSourceFile = 'No se puede abrir el archivo de origen'; LANGesCannotOpenDestinationFile = 'No se puede abrir el archivo de destino'; LANGesCannotCloseDestinationFile = 'No se puede cerrar el archivo de destino'; LANGesCannotCloseSourceFile = 'No se puede cerrar el archivo de origen'; LANGesCannotReadFromSourceFile = 'No se puede leer desde el archivo de origen'; LANGesCannotWriteToDestinationFile = 'No se puede escribir el archivo de destino'; LANGesUnknownException = 'Excepción Desconocida'; LANGesNoAccess = 'No Hay Acceso'; LANGesUnknownError = 'Error Desconocido'; LANGesCreateANewDirectory = 'Crear directorio'; LANGesEnterDirectoryName = 'Introduzca el nombre del _directorio:'; LANGesOverwriteQuestion = 'Advertencia'; LANGesOverwriteButton_Caption = '_Sobrescribir'; LANGesOverwriteAllButton_Caption = 'Sobrescribir t_odo'; LANGesSkipButton_Caption = 'S_altar'; LANGesOverwriteAllOlderButton_Caption = 'Sobrescribir lo vi_ejo'; LANGesSkipAllButton_Caption = 'Sal_tar todo'; LANGesRenameButton_Caption = '_Renombrar'; LANGesAppendButton_Caption = 'Aña_dir'; LANGesRename = 'Renombrar'; LANGesRenameFile = 'Renombrar el archivo ''%s'' a'; LANGesIgnoreButton_Caption = '_Ignorar'; LANGesProgress = 'Progreso'; LANGesCancel = '_Cancelar'; LANGesDelete = 'Eliminar:'; LANGesSpecifyFileType = 'E_specificar tipo de archivo:'; LANGesRemoveDirectory = 'Eliminar directorio'; LANGesDoYouWantToDeleteItWithAllItsFilesAndSubdirectories = '¿Lo desea eliminar con todos sus archivos y subdirectorios?'; LANGesRetry = '_Reintentar'; LANGesDeleteButton_Caption = '_Eliminar'; LANGesAll = '_Todo'; LANGesCopyFilesSC = 'Copiar archivos:'; LANGesAppendQuestion = '¿Esta seguro que quiere añadir el archivo ''%s'' a ''%s''?'; LANGesPreparingList = 'Preparando lista...'; LANGesYouMustSelectAValidFile = '¡Debe seleccionar un archivo valido!'; LANGesmiVerifyChecksums = '_Verificar checksums'; LANGesVerifyChecksumsCaption = 'Verificar checksums'; LANGesCheckButtonCaptionCheck = '_Seleccionar'; LANGesCheckButtonCaptionStop = '_Parar'; LANGesFileListTooltip = '[?] - No seleccionado'#10'[OK] - Checksum OK'#10'[Erroneo] - Checksum Erroneo'#10'[N/A] - Archivo no disponible'; LANGesFilenameColumnCaption = 'Nombre de archivo'; LANGesTheFileSYouAreTryingToOpenIsQuiteBig = 'El archivo ''%s'', que esta intentando de abrir es muy grande (%s bytes). Puede que no sea un archivo valido.'#10#10'¿Lo desea abrir de todas formas?'; LANGesAnErrorOccuredWhileInitializingMemoryBlock = 'Ha ocurrido un error mientras se inicializaba el bloque de memoria. Cierre algunas aplicaciones e intente de nuevo.'; LANGesAnErrorOccuredWhileOpeningFileSS = 'Ha ocurrido un error abriendo el archivo ''%s'':'#10' %s'; LANGesAnErrorOccuredWhileReadingFileSS = 'Ha ocurrido un error leyendo el archivo ''%s'':'#10' %s'; LANGesChecksumNotChecked = 'Estado: No seleccionado'; LANGesChecksumChecking = 'Estado: Comprobando...'; LANGesChecksumInterrupted = 'Estado: Interrumpido'; LANGesChecksumDOK = 'Estado: %d%% OK'; LANGesmiCreateChecksumsCaption = '_Crear checksums...'; LANGesYouMustSelectAtLeastOneFileToCalculateChecksum = '¡Debe de seleccionar al menos un archivo para calcular el checksum!'; LANGesCreateChecksumsCaption = 'Crear checksums'; LANGesCCHKSUMPage1Text = 'Va a crear los checksums para'#10'los archivos seleccionados. Si no ha seleccionado'#10'todos los archivos que desea, cierre esta ventana y'#10'seleccione más archivos.'; LANGesCCHKSUMPage4Text = 'El programa esta listo para crear los checksums de'#10'los archivos seleccionados. Esta operacion puede tardar varios minutos.'#10'Presione Siguiente para continuar.'; LANGesCCHKSUMPage6Text = 'Hubo errores creando el/los checksum:'; LANGesCCHKSUMPage7Text = 'La creación del checksum a finalizado, y'#10'los archivos estan listos.'#10#10'Presione Finalizar para salir.'; LANGesCCHKSUMPage1Title = 'Preparar archivos'; LANGesCCHKSUMPage2Title = 'Seleccione el tipo de archivo'; LANGesCCHKSUMPage3Title = 'Elige nombre de archivo'; LANGesCCHKSUMPage4Title = 'Listos'; LANGesCCHKSUMPage5Title = 'Procesando...'; LANGesCCHKSUMPage6Title = '¡Error!'; LANGesCCHKSUMPage7Title = 'Finalizado'; LANGesCCHKSUMSFVFile = 'Archivo SFV'; LANGesCCHKSUMMD5sumFile = 'Archivo MD5sum'; LANGesCCHKSUMFileName = '_Nombre de archivo:'; LANGesCCHKSUMCreateSeparateChecksumFiles = 'Crear archivos _individuales'; LANGesCCHKSUMNowProcessingFileS = 'Procesando archivo: %s'; LANGesCCHKSUMFinishCaption = '_Finalizar'; LANGesCCHKSUMAreYouSureYouWantToAbortTheProcessing = '¿Esta seguro que desea cancelarlo?'; LANGesCCHKSUMAnErrorOccuredWhileOpeningFileSS = 'Ha ocurrido un error abriendo el archivo ''%s'': %s'#10; LANGesCCHKSUMAnErrorOccuredWhileReadingFileSS = 'Ha ocurrido un error leyendo el archivo ''%s'': %s'#10; LANGesCCHKSUMAnErrorOccuredWhileWritingFileSS = 'Ha ocurrido un error escribiendo el archivo ''%s'': %s'#10; LANGesAnErrorOccuredWhileWritingFileSS = 'Ha ocurrido un error escribiendo el archivo ''%s'':'#10' %s'; LANGesTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt = 'El archivo de destino ''%s'' ya existe. ¿Lo desea sobrescribir?'; LANGesTheTargetFileSCannotBeRemovedS = 'El archivo de destino ''%s'' no se puede eliminar: %s'; LANGesMergeCaption = 'Unir'; LANGesPleaseInsertNextDiskOrGiveDifferentLocation = 'Por favor inserte un nuevo disco, o una ruta diferente:'; LANGesMergeOfSSucceeded = 'Unión de ''%s'' exitosa (CRC checksum OK).'; LANGesWarningCreatedFileFailsCRCCheck = 'Advertencia: ¡El archivo creado falla la comprobación CRC!'; LANGesMergeOfSSucceeded_NoCRCFileAvailable = 'Unión de ''%s'' exitosa (no esta disponible el archivo CRC).'; LANGesMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory = 'Unir ''%s'' y todos los archivos con nombres ascendentes al siguiente directorio:'; LANGesMergeSC = 'Unir:'; LANGesmiSplitFileCaption = '_Dividir archivo...'; LANGesmiMergeFilesCaption = '_Unir archivos...'; LANGesSplitTheFileSToDirectory = '_Dividir el archivo ''%s'' al directorio:'; LANGesSplitSC = 'Dividir:'; LANGesSplitFile = 'Dividir archivo'; LANGesBytesPerFile = '_Bytes por archivo:'; LANGesAutomatic = 'Automático'; LANGesDeleteFilesOnTargetDisk = '_Eliminar archivos en el disco de destino (útil para discos extraibles)'; LANGesSplitCaption = 'Dividir'; LANGesCannotOpenFileS = 'No se puede abrir el archivo ''%s'''; LANGesCannotSplitTheFileToMoreThan999Parts = '¡No se puede dividir el archivo en más de 999 partes!'; LANGesThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem = 'Hay algunos archivos en el directorio de destino:'#10'%s'#10'¿Los desea eliminar?'; LANGesThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem = 'Hay %d archivos en el directorio de destino. ¿Los quiere eliminar?'; LANGesAnErrorOccuredWhileOperationS = 'Ha ocurrido un error: %s'; LANGesSplitOfSSucceeded = 'División de ''%s'' exitosa.'; LANGesSplitOfSFailed = '¡División de ''%s'' fallida!'; LANGesmnuShow_Caption = '_Ver'; LANGesmiShowDotFiles_Caption = 'Ver archiv_os ocultos'; LANGesTheFileYouAreTryingToOpenIsQuiteBig = 'El archivo que esta intentando de abrir es muy grande. Abrirlo en una aplicación externa (como gedit) puede causar que el sistema se torne lento.'#10'¿Desea continuar?'; LANGesCannotExecuteSPleaseCheckTheConfiguration = 'No se puede ejecutar ''%s''. Por favor compruebe la configuración o asigne correctamente el tipo de archivo.'; LANGesEdit = 'Editar'; LANGesEnterFilenameToEdit = '_Ingrese el nombre de archivo a editar:'; LANGesmnuSettings_Caption = 'C_onfiguración'; LANGesmiFileTypes_Caption = '_Tipos de archivo...'; LANGesThereIsNoApplicationAssociatedWithS = 'No hay una aplicación asociada con "%s".'#10#10'Puede configurar Tux Commander para asociar aplicaciones con los diferentes tipos de archivo. ¿Desea asociar una aplicación con este tipo de archivo?'; LANGesErrorExecutingCommand = '¡Error ejecutando el comando!'; LANGesEditFileTypesCaption = 'Editar Tipos de Archivo'; LANGesTitleLabel_Caption = 'Configuración de Tipos de Archivo'; LANGesExtensionsColumn = 'Extensión'; LANGesDescriptionColumn = 'Descripción'; LANGesFileTypesList = 'Lista de tipos de archivo'; LANGesActionName = 'Nombre de la acción'; LANGesCommand = 'Comando'; LANGesSetDefaultActionButton_Caption = '_Valor predeterminado'; LANGesRunInTerminalCheckBox_Caption = 'Lanzar en _Terminal'; LANGesAutodetectCheckBox_Caption = 'Autodetectar aplicación _GUI'; LANGesBrowseButton_Caption = '_Buscar...'; LANGesCommandLabel_Caption = 'Co_mando:'; LANGesDescriptionLabel_Caption = 'D_escripción:'; LANGesFNameExtLabel_Caption = 'A_gregar extensión:'; LANGesNotebookPageExtensions = 'Tipo de archivo'; LANGesNotebookPageActions = 'Acción'; LANGesDefault = ' (predeterminado)'; LANGesCannotSaveFileTypeAssociationsBecauseOtherProcess = 'No se puede guardar el archivo de asociación, porque otro proceso lo ha actualizado.'; LANGesDefaultColor = 'Color p_redeterminado'; LANGesIcon = '_Icono:'; LANGesBrowseForIcon = 'Buscar icono'; LANGesSelectFileTypeColor = 'Seleccionar color para el tipo de archivo'; LANGesColor = 'Co_lor:'; LANGesmiChangePermissions_Caption = 'Cambiar Per_misos...'; LANGesmiChangeOwner_Caption = 'Cambiar Dueño/Grupo...'; LANGesmiCreateSymlink_Caption = 'Crear enlace simbólico...'; LANGesmiEditSymlink_Caption = '_Editar enlace simbólico...'; LANGesChmodProgress = 'Cambiar permisos:'; LANGesChownProgress = 'Cambiar dueño:'; LANGesYouMustSelectAValidSymbolicLink = '¡Debe seleccionar un enlace simbólico valido!'; LANGesPopupRunS = 'E_jecutar %s'; LANGesPopupOpenS = 'A_brir %s'; LANGesPopupGoUp = '_Subir'; LANGesPopupOpenWithS = 'Abrir con %s'; LANGesPopupDefault = ' (predeterminado)'; LANGesPopupOpenWith = 'A_brir con...'; LANGesPopupViewFile = '_Ver archivo'; LANGesPopupEditFile = 'Ed_itar archivo'; LANGesPopupMakeSymlink = 'Crear enlace simbólico'; LANGesPopupRename = '_Renombrar'; LANGesPopupDelete = '_Eliminar'; LANGesDialogChangePermissions = 'Cambiar permisos'; LANGesCouldNotBeChmoddedS = 'No se pudo cambiar los permisos: %s'; LANGesDialogChangeOwner = 'Cambiar dueño'; LANGesCouldNotBeChownedS = 'No se pudo cambiar el dueño: %s'; LANGesDialogMakeSymlink = 'Crear enlace simbólico'; LANGesDialogEditSymlink = 'Editar enlace simbólico'; LANGesFEditSymlink_Caption = 'Editar enlace simbólico'; LANGesFEditSymlink_SymbolicLinkFilename = 'Nombre del enlace _simbólico:'; LANGesFEditSymlink_SymbolicLinkPointsTo = 'El enlace simbólico apun_ta a:'; LANGesFChmod_Caption = 'Permisos de Acceso'; LANGesFChmod_PermissionFrame = 'Permisos'; LANGesFChmod_FileFrame = 'Archivo'; LANGesFChmod_ApplyRecursivelyFor = 'Aplicar _recursivamente para'; LANGesFChmod_miAllFiles = 'Todos los archivos y carpetas'; LANGesFChmod_miDirectories = 'Solo directorios'; LANGesFChmod_OctalLabel = '_Octal:'; LANGesFChmod_SUID = 'SUID - Asignar ID de usuario al ejecutar'; LANGesFChmod_SGID = 'SGID - Asignar ID de grupo al ejecutar'; LANGesFChmod_Sticky = 'Sticky bit'; LANGesFChmod_RUSR = 'RUSR - Leer por dueño'; LANGesFChmod_WUSR = 'WUSR - Escribir por dueño'; LANGesFChmod_XUSR = 'XUSR - Ejecutar/buscar por dueño'; LANGesFChmod_RGRP = 'RGRP - Leer por grupo'; LANGesFChmod_WGRP = 'WGRP - Escribir por grupo'; LANGesFChmod_XGRP = 'XGRP - Ejecutar/buscar por grupo'; LANGesFChmod_ROTH = 'ROTH - Leer por otros'; LANGesFChmod_WOTH = 'WOTH - Escribir por otros'; LANGesFChmod_XOTH = 'XOTH - Ejecutar/buscar por otros'; LANGesFChmod_TextLabel = 'Texto: %s'; LANGesFChmod_FileLabel = 'Archivo: %s'#10'Texto: %s'#10 + 'Octal: %d'#10'Dueño: %s'#10 + 'Grupo: %s'; LANGesFChown_Caption = 'Cambiar dueño/grupo'; LANGesFChown_OwnerFrame = 'Nombre de usuario'; LANGesFChown_GroupFrame = 'Nombre del grupo'; LANGesFChown_FileFrame = 'Archivo'; LANGesFChown_ApplyRecursively = 'Aplicar _recursivamente'; LANGesFSymlink_Caption = 'Crear enlace simbólico'; LANGesFSymlink_ExistingFilename = 'Nombre de archivo _existente (nombre de archivo al cual el enlace simbólico apuntara):'; LANGesFSymlink_SymlinkFilename = 'Nombre del enlace _simbólico:'; LANGesmnuBookmarks_Caption = '_Favoritos'; LANGesmiAddBookmark_Caption = 'Agregar Favorito'; LANGesmiEditBookmarks_Caption = 'Editar Favoritos'; LANGesBookmarkPopupDelete_Caption = 'E_liminar'; LANGesmiPreferences_Caption = '_Preferencias...'; LANGesTheCurrentDirectoryAlreadyExistsInTheBookmarksList = 'El directorio actual ya existe en la lista de favoritos'; LANGesSomeOtherInstanceChanged = 'Una segunda instancia de Tux Commander a cambiado la configución. ¿Desea aplicar la nueva configuración?'#10#10'Advertencia: Si presiona No en este punto, la configuración se sobrescribirá en esta instancia'; LANGesPreferences_Caption = 'Preferencias de la Aplicación'; LANGesPreferences_TitleLabel_Caption = 'Preferencias'; LANGesPreferences_GeneralPage = 'General'; LANGesPreferences_FontsPage = 'Fuentes'; LANGesPreferences_ColorsPage = 'Colores'; LANGesPreferences_RowHeight = '_Altura del cuadro:'; LANGesPreferences_NumHistoryItems = 'Ele_mentos en el historial:'; LANGesPreferences_Default = 'P_redeterminado'; LANGesPreferences_ClearReadonlyAttribute = 'Borrar el atributo de solo lectura cuando se copia desde el CD-ROM'; LANGesPreferences_DisableMouseRenaming = 'Deshabilitar renombrar con el _mouse'; LANGesPreferences_ShowFiletypeIconsInList = 'Mostrar iconos del tipo de archivo'; LANGesPreferences_ExternalAppsLabel = 'Programas Externos'; LANGesPreferences_Viewer = '_Visor:'; LANGesPreferences_Editor = '_Editor:'; LANGesPreferences_Terminal = '_Terminal:'; LANGesPreferences_ListFont = 'Fuente:'; LANGesPreferences_Change = 'Cambiar...'; LANGesPreferences_UseDefaultFont = 'Utilizar fuente _predeterminada'; LANGesPreferences_Foreground = 'Foreground'; LANGesPreferences_Background = 'Background'; LANGesPreferences_NormalItem = 'Elemento Normal:'; LANGesPreferences_SetToDefaultToUseGTKThemeColors = 'Seleccionar predeterminado para utilizar los colores del tema GTK'; LANGesPreferences_Cursor = 'Cursor:'; LANGesPreferences_InactiveItem = 'Elemento Inactivo::'; LANGesPreferences_SelectedItem = 'Elemento Seleccionado:'; LANGesPreferences_LinkItem = 'Enlaces simbólicos:'; LANGesPreferences_LinkItemHint = 'Seleccionar predeterminado para mostrar los enlaces simbólicos utilizando los colores de los elementos normales'; LANGesPreferences_DotFileItem = 'Archivos ocultos:'; LANGesPreferences_DotFileItemHint = 'Seleccionar predeterminado para mostrar los archivos ocultos utilizando los colores de los elementos normales'; LANGesPreferences_BrowseForApplication = 'Buscar aplicación'; LANGesPreferences_DefaultS = 'Predeterminado: %s'; LANGesPreferences_SelectFont = 'Seleccionar fuente'; (*************** STRINGS ADDED TO v0.4.101 **********************************************************************************) LANGesBookmarkButton_Tooltip = 'Mostrar favoritos'; LANGesUpButton_Tooltip = 'Ir al directorio anterior'; LANGesRootButton_Tooltip = 'Ir al directrio raiz (/)'; LANGesHomeButton_Tooltip = 'Ir al directorio de usuario (/home/user)'; LANGesLeftEqualButton_Tooltip = 'Cambiar el panel derecho al mismo directorio'; LANGesRightEqualButton_Tooltip = 'Cambiar el panel izquierdo al mismo directorio'; LANGesmiShowDirectorySizes_Caption = 'Mostar tamaño de los d_irectorios'; LANGesmiTargetSource_Caption = '_Destino = Origen'; LANGesFileTypeDirectory = 'Directorio'; LANGesFileTypeFile = 'Archivo'; LANGesFileTypeMetafile = 'Esto es un meta-ítem común'; LANGesPreferencesPanelsPage = 'Paneles'; LANGesPreferencesApplicationsPage = 'Aplicaciones'; LANGesPreferencesExperimentalPage = 'Experimental'; LANGesPreferencesSelectAllDirectoriesCheckBox_Caption = 'Seleccionar directorios _cuando se selecciona todo'; LANGesPreferencesNewStyleAltOCheckBox_Caption = '_Nuevo estilo Alt+O'; LANGesPreferencesNewStyleAltOCheckBox_Tooltip = 'Permanecer en el mismo directorio cuando se cambia el directorio del panel contrario al presionar Ctrl/Alt+O'; LANGesPreferencesShowFuncButtonsCheckBox_Caption = 'Mostrar los _botones de funciones'; LANGesPreferencesSizeFormatLabel_Caption = 'Formato del t_amaño:'; LANGesPreferencesmiSizeFormat1 = 'Sistema'; LANGesPreferencesmiSizeFormat6 = 'Agrupado'; LANGesPreferencesAutodetectXApp = 'Autodetectar la aplicación'; LANGesPreferencesAlwaysRunInTerminal = 'Siempre lanzar en terminal'; LANGesPreferencesNeverRunInTerminal = 'Nunca ejecutar en terminal'; LANGesPreferencesCmdLineBehaviourLabel_Caption = '_Ejecutar desde la línea de comandos:'; LANGesPreferencesFeatures = 'Preferencias'; LANGesPreferencesDisableMouseRename_Tooltip = 'Aun podrá renombrar rápidamente presionando Shift+F6'; LANGesPreferencesDisableFileTipsCheckBox_Caption = 'Deshabilitar _tooltips'; LANGesPreferencesDisableFileTipsCheckBox_Tooltip = 'No mostrar los tooltips del panel si el texto en una columna esta truncado'; LANGesPreferencesShow = 'Ver'; LANGesPreferencesDirsInBoldCheckBox_Caption = 'Directorios _resaltados'; LANGesPreferencesDisableDirectoryBracketsCheckBox_Caption = 'No mostrar los co_rchetes de los directorios'; LANGesPreferencesOctalPermissionsCheckBox_Caption = 'Mostrar permisos en _octal'; LANGesPreferencesOctalPermissionsCheckBox_Tooltip = 'Mostrar permisos de archivo/directorio como un numero en vez de la forma de texto (-rw-rw-rw-)'; LANGesPreferencesMovement = 'Movimiento'; LANGesPreferencesLynxLikeMotionCheckBox_Caption = 'Movimiento como en _Lynx'; LANGesPreferencesInsertMovesDownCheckBox_Caption = '_Insertar desplaza hacia abajo'; LANGesPreferencesSpaceMovesDownCheckBox_Caption = 'E_spaciadora desplaza hacia abajo'; LANGesPreferencesViewer = 'Visor'; LANGesPreferencesCommandSC = 'Comando:'; LANGesPreferencesUseInternalViewer = 'Utilizar visor _interno'; LANGesPreferencesEditor = 'Editor'; LANGesPreferencesTerminal = 'Terminal'; LANGesPreferencesExperimentalFeatures = 'Preferencias Experimentales'; LANGesPreferencesExperimentalWarningLabel_Caption = 'Advertencia: Estas opciones están actualmente en desarrollo y puede que no funcionen correctamente. ¡Uselas bajo su propio riesgo!'; LANGesPreferencesFocusRefreshCheckBox_Caption = '_Actualizar cuando se enfoque la ventana'; LANGesPreferencesFocusRefreshCheckBox_Tooltip = 'Actualización de los paneles muy lenta en este momento'; LANGesPreferencesWMCompatModeCheckBox_Caption = 'Compatibilidad con _WM'; LANGesPreferencesWMCompatModeCheckBox_Tooltip = 'Utilícelo si tiene problemas con su administrador de ventanas (por ejemplo IceWM no maximiza correctamente)'; LANGesPreferencesCompatUseLibcSystemCheckBox_Caption = 'Utilizar las librerías libc del _sistema para ejecutar programas'; LANGesPreferencesCompatUseLibcSystemCheckBox_Tooltip = 'Utilizar en caso de congelamientos o problemas de bloqueo cuando se lanza una aplicación externa'; (*************** STRINGS ADDED TO v0.5.70 **********************************************************************************) LANGesmiSearchCaption2 = '_Buscar...'; LANGesmiNoMounterBarCaption = '_No mostrar la barra de montajes'; LANGesmiShowOneMounterBarCaption = 'Mostrar _una barra de montaje'; LANGesmiShowTwoMounterBarCaption = 'Mostrar _dos barras de montaje'; LANGesmnuNetworkCaption = 'R_ed'; LANGesmiConnectionsCaption = '_Conexiones...'; LANGesmiOpenConnectionCaption = '_Abrir conexión...'; LANGesmiQuickConnectCaption = 'Conexión _rápida...'; LANGesmnuPluginsCaption = 'Pl_ugins'; LANGesmiTestPluginCaption = '_Probar plugin...'; LANGesmiMounterSettingsCaption = '_Montajes...'; LANGesmiColumnsCaption = 'Columnas del P_anel...'; LANGesmiSavePositionCaption = '_Salvar posición'; LANGesmiMountCaption = '_Montar'; LANGesmiUmountCaption = '_Desmontar'; LANGesmiEjectCaption = '_Ejecutar'; LANGesmiDuplicateTabCaption = 'Duplicar pestaña actual'; LANGesmiCloseTabCaption = 'Cerrar pestaña actual'; LANGesmiCloseAllTabsCaption = 'Cerrar todas las pestañas'; LANGesCannotDetermineDestinationEngine = 'No se puede determinar la maquina de destino. Por favor ingrese la ruta correcta e intente de nuevo.'; LANGesCannotLoadFile = 'No se puede cargar el archivo ''%s''. Por favor verifique los permisos.'; LANGesMountPointDevice = 'Punto de montaje: %s'#10'Dispositivo: %s'; LANGesMountSC = 'Montar:'; LANGesNoPluginsFound = 'No se encontraron plugins'; LANGesPluginAbout = 'Acerca de...'; LANGesCouldntOpenURI = 'No se puede abrir el URI especificado. Por favor verifique la consistencia y los permisos de acceso.'; LANGesPluginAboutInside = 'Plugin: %s'#10#10'%s'#10'%s'; LANGesAreYouSureCloseAllTabs = '¿Esta seguro que desea cerrar todas las pestañas inactivas?'; LANGesCouldntOpenURIArchive = 'No se puede abrir el archivo. Por favor verifique la consistencia y los permisos de acceso.'; LANGesThereIsNoModuleAvailable = 'No hay módulos VFS disponibles que puedan realizar esta conexión'; LANGesIgnoreError = '¿Esta seguro que desea ignorar el error? El archivo de origen será eliminado'; LANGesErrorMount = 'Ocurrió un error montando el dispositivo ''%s'':'#10#10; LANGesErrorUmount = 'Ocurrió un error desmontando el dispositivo ''%s'':'#10#10; LANGesErrorEject = 'Ocurrió un error ejecutando el dispositivo ''%s'':'#10#10; LANGesMounterPrefs_Caption = 'Configuración de Montajes'; LANGesMounterPrefs_TitleLabelCaption = 'Configuración de Montajes'; LANGesMounterPrefs_ListViewFrameCaption = 'Montajes'; LANGesMounterPrefs_MountName = 'Nombre del Montaje'; LANGesMounterPrefs_MountPoint = 'Punto de Montaje'; LANGesMounterPrefs_Device = 'Dispositivo'; LANGesMounterPrefs_MoveUpButtonTooltip = 'Mover arriba'; LANGesMounterPrefs_MoveDownButtonTooltip = 'Mover abajo'; LANGesMounterPrefs_UseFSTabDefaultsCheckBox = 'Utilizar _fstab como predeterminado'; LANGesMounterPrefs_UseFSTabDefaultsCheckBoxTooltip = 'Seleccionando esta opción, la barra de montaje mostrara los dispositivos encontrados en /etc/fstab (archivo de montajes del sistema)'; LANGesMounterPrefs_ToggleModeCheckBox = 'Los botones permanecen presionados cuando se monta'; LANGesMounterPrefs_ToggleModeCheckBoxTooltip = 'Seleccionándolo, los botones de montaje permanecerán presionados si el dispositivo es montado; Otro clic lo desmontara (ejecutara en este caso)'; LANGesMounterPrefs_PropertiesFrameCaption = 'Propiedades de montaje'; LANGesMounterPrefs_DisplayTextLabelCaption = '_Texto para mostrar:'; LANGesMounterPrefs_MountPointLabelCaption = '_Punto de Montaje:'; LANGesMounterPrefs_MountDeviceLabelCaption = '_Dispositivo:'; LANGesMounterPrefs_DeviceTypeLabelCaption = 'T_ipo de Dispositivo:'; LANGesMounterPrefs_miLocalDiskCaption = 'Disco local'; LANGesMounterPrefs_miRemovableCaption = 'Removible'; LANGesMounterPrefs_miCDCaption = 'CD/DVD'; LANGesMounterPrefs_miFloppyCaption = 'Floppy'; LANGesMounterPrefs_miNetworkCaption = 'Red'; LANGesMounterPrefs_MountCommandLabelCaption = '_Comando Montaje:'; LANGesMounterPrefs_UmountCommandLabelCaption = 'C_omando desmontaje:'; LANGesMounterPrefs_MountCommandEntryTooltip = 'Sintaxis: utilice %dev para sustituir el dispositivo y %dir para el punto de montaje o dejar en blanco para utilizar el montaje predeterminado'#10+'Nota: tenga cuidado con estos comandos, ¡tuxcmd puede congelarse!'#10'Ejemplo: smbmount %dev %dir -o username=usuario, password=contraseña'; LANGesMounterPrefs_UmountCommandEntryTooltip = 'Sintaxis: utilice %dev para sustituir el dispositivo y %dir para el punto de montaje o dejar en blanco para utilizar el desmontaje predeterminado'#10'Ejemplo: smbumount $dir'; LANGesMounterPrefs_IconLabelCaption = '_Icono:'; LANGesConnMgr_Caption = 'Abrir Nueva Conexión'; LANGesConnMgr_ConnectButton = 'Co_nectar'; LANGesConnMgr_OpenConnection = 'Abrir Conexión'; LANGesConnMgr_NameColumn = 'Nombre'; LANGesConnMgr_URIColumn = 'URI'; LANGesConnMgr_AddConnectionButtonCaption = '_Agregar sitio...'; LANGesConnMgr_AddConnectionButtonTooltip = 'Agregar nueva conexión'; LANGesConnMgr_EditButtonCaption = '_Editar...'; LANGesConnMgr_EditButtonTooltip = 'Editar conexión seleccionada'; LANGesConnMgr_RemoveButtonCaption = '_Remover sitio'; LANGesConnMgr_RemoveButtonTooltip = 'Eliminar conexión seleccionada'; LANGesConnMgr_DoYouWantDelete = '¿Realmente desea eliminar la conexión ''%s''?'; LANGesConnProp_FTP = 'FTP'; LANGesConnProp_SFTP = 'SFTP (subsistema ssh)'; LANGesConnProp_SMB = 'Directorio compartido Windows (SMB)'; LANGesConnProp_HTTP = 'WebDAV (HTTP)'; LANGesConnProp_HTTPS = 'Secure WebDAV (HTTPS)'; LANGesConnProp_Other = 'Otro (por favor especificarlo con un URI)'; LANGesConnProp_Caption = 'Propiedades de conexión'; LANGesConnProp_VFSModule = 'Modulo _VFS:'; LANGesConnProp_URI = '_URI:'; LANGesConnProp_URIEntryTooltip = 'Una correcta URI debe contener el prefijo del tipo de servicio y dirección del servidor'; LANGesConnProp_DetailedInformations = 'Información detallada'; LANGesConnProp_Name = '_Nombre:'; LANGesConnProp_Server = 'Ser_vidor[:puerto]:'; LANGesConnProp_Username = 'No_mbre de Usuario:'; LANGesConnProp_UserNameEntryTooltip = 'Dejar en blanco para un login anónimo'; LANGesConnProp_Password = '_Contraseña:'; LANGesConnProp_TargetDirectory = '_Directorio de destino:'; LANGesConnProp_ServiceType = 'Tipo de _Servicio:'; LANGesConnProp_MaskPassword = '_Ocultar Contraseña'; LANGesConnProp_MenuItemCaption = 'Predeterminado (todos los módulos)'; LANGesConnLogin_Caption = 'Autenticación requerida'; LANGesConnLogin_Login = 'Login'; LANGesConnLogin_ExperimentalWarningLabelCaption = 'Debe estar identificado para acceder a %s'; LANGesConnLogin_Username = 'Nombre de _Usuario:'; LANGesConnLogin_Password = '_Contraseña:'; LANGesConnLogin_AnonymousCheckButton = '_Anónimo'; LANGesColumns_Caption = 'Configuración de Columnas del Panel'; LANGesColumns_Title = 'Configuración de Columnas del Panel'; LANGesColumns_MoveUpButtonTooltip = 'Mover arriba'; LANGesColumns_MoveDownButtonTooltip = 'Mover abajo'; LANGesColumns_TitlesLongName = 'Nombre'; LANGesColumns_TitlesLongNameExt = 'Nombre + Extensión'; LANGesColumns_TitlesLongExt = 'Extensión'; LANGesColumns_TitlesLongSize = 'Tamaño'; LANGesColumns_TitlesLongDateTime = 'Fecha + Hora'; LANGesColumns_TitlesLongDate = 'Fecha'; LANGesColumns_TitlesLongTime = 'Hora'; LANGesColumns_TitlesLongUser = 'Usuario'; LANGesColumns_TitlesLongGroup = 'Grupo'; LANGesColumns_TitlesLongAttr = 'Atributos'; LANGesColumns_TitlesShortName = 'Nombre'; LANGesColumns_TitlesShortNameExt = 'Nombre'; LANGesColumns_TitlesShortExt = 'Ext'; LANGesColumns_TitlesShortSize = 'Tamaño'; LANGesColumns_TitlesShortDateTime = 'Fecha'; LANGesColumns_TitlesShortDate = 'Fecha'; LANGesColumns_TitlesShortTime = 'Hora'; LANGesColumns_TitlesShortUser = 'Usuario'; LANGesColumns_TitlesShortGroup = 'Grupo'; LANGesColumns_TitlesShortAttr = 'Atrib'; LANGesTestPlugin_Caption = 'Probar Plugin VFS'; LANGesTestPlugin_Title = 'Probar Plugin VFS'; LANGesTestPlugin_ExperimentalWarningLabelCaption = 'Advertencia: El subsistema VFS y sus plugins están bajo desarrollo y pueden contener errores. ¡Use esta función bajo su propio riesgo!'; LANGesTestPlugin_Plugin = '_Plugin:'; LANGesTestPlugin_Command = 'Co_mando:'; LANGesTestPlugin_Username = 'Nombre de _Usuario:'; LANGesTestPlugin_Password = '_Contraseña:'; LANGesTestPlugin_AnonymousCheckButton = 'Login _Anónimo (no utiliza VFSLogin)'; LANGesTestPlugin_NoPluginsFound = 'No se encontraron plugins'; LANGesRemoteWait_Caption = 'Operación en progreso'; LANGesRemoteWait_OperationInProgress = 'Operación en progreso, por favor espere...'; LANGesRemoteWait_ItemsFound = 'Elementos encontrados: %d'; LANGesSearch_Bytes = 'Bytes'; LANGesSearch_kB = 'kB'; LANGesSearch_MB = 'MB'; LANGesSearch_days = 'días'; LANGesSearch_weeks = 'semanas'; LANGesSearch_months = 'meses'; LANGesSearch_years = 'años'; LANGesSearch_Caption = 'Buscar Archivos'; LANGesSearch_General = 'General'; LANGesSearch_Advanced = 'Avanzado'; LANGesSearch_SearchResults = '_Resultados de búsqueda:'; LANGesSearch_SearchFor = '_Buscar:'; LANGesSearch_FileMaskEntryTooltip = 'Sugerencia: Si desea buscar múltiples archivos, separelos por ";"'; LANGesSearch_SearchIn = 'Buscar _en:'; LANGesSearch_SearchArchivesCheckButton = 'Buscar _archivos'; LANGesSearch_FindText = 'Buscar _texto:'; LANGesSearch_FindTextEntryTooltip = 'Dejar en blanco para no buscar texto'#10'Por favor note que estamos utilizando UTF-8 en la parte del GUI'; LANGesSearch_CaseSensitiveCheckButton = 'Coincidir mayúscu_las y minúsculas'; LANGesSearch_StayCurrentFSCheckButton = 'Incluir otros archivos de s_istema'; LANGesSearch_CaseSensitiveMatchCheckButton = 'Coinci_dir mayúsculas y minúsculas'; LANGesSearch_Size = 'Tamaño'; LANGesSearch_Date = 'Fecha'; LANGesSearch_BiggerThan = '_Mayor que'; LANGesSearch_SmallerThan = 'Me_nor que'; LANGesSearch_ModifiedBetweenRadioButton = 'M_odificado entre'; LANGesSearch_NotModifiedAfterRadioButton = 'No modificado _después de'; LANGesSearch_ModifiedLastRadioButton = 'Mod_ificado en los ultimos'; LANGesSearch_ModifiedNotLastRadionButton = 'No modi_ficado en los ultimos'; LANGesSearch_ModifiedBetweenEntry1 = '"Por favor use este tipo de formato:" c'; LANGesSearch_ViewButtonCaption = '_Ver archivo'; LANGesSearch_NewSearchButtonCaption = '_Nueva búsqueda'; LANGesSearch_GoToFileButtonCaption = '_Ir al archivo'; LANGesSearch_FeedToListboxButtonCaption = 'Agregar al _listbox'; LANGesSearch_StatusSC = 'Estado:'; LANGesSearch_Ready = 'Preparado.'; LANGesSearch_PreparingToSearch = 'Preparándose para buscar.'; LANGesSearch_SearchInProgress = 'Búsqueda en progreso:'; LANGesSearch_UserCancelled = 'Cancelado por el usuario.'; LANGesSearch_SearchFinished = 'Búsqueda finalizada'; LANGesSearch_FilesFound = '%d archivos encontrados'; LANGesSearch_And = 'y'; (*************** STRINGS ADDED TO v0.5.82 **********************************************************************************) LANGesCloseOpenConnection = 'Está intentando hacer una nueva conexión sobre una conexión activa. Si continua, la conexión anterior se cerrara y será reemplazada por la nueva.'#10#10'¿Desea continuar?'; LANGesDuplicateTabWarning = 'Está intentando abrir una nueva pestaña desde un directorio remoto. Sin embargo, la clonación no esta soportada. El directorio de la nueva pestaña apuntara a un sistema de archivos local.'; LANGesDontShowAgain = '_No mostrar este mensaje de nuevo'; LANGesSwitchOtherPanelWarning = 'Está intentando abrir el directorio remoto en el panel opuesto. Sin embargo, la clonación no esta soportada. El directorio de destino no será cambiado.'; LANGesOpenConnectionsWarning = 'Hay algunas conexiones activas en el panel abierto. Si cierra la aplicación, estas conexiones serán cerradas.'#10#10'¿Desea salir?'; LANGesmiDisconnect_Caption = '_Desconectar'; LANGesDisconnectButton_Tooltip = 'Desconectar conexión activa'; LANGesLeaveArchiveButton_Tooltip = 'Cierra archivo actual'; LANGesOpenTerminalButton_Tooltip = 'Abre una nueva terminal desde el directorio actual'; LANGesOpenTerminalButton_Caption = 'Abrir Te_rminal'; LANGesShowTextUIDsCheckBox_Caption = 'Mostrar _UIDs en texto'; LANGesShowTextUIDsCheckBox_Tooltip = 'Muestra la información de Usuario y Grupo en forma de texto en vez de números (UID/GID)'; (*************** STRINGS ADDED TO v0.5.100 **********************************************************************************) LANGesmiNewTab_Caption = 'Nueva _pestaña'; LANGesFilePopupMenu_Properties = '_Propiedades'; LANGesCommandEntry_Tooltip = 'Utilizar %s como el archivo/directorio contenedor'; LANGesmiFiles_Caption = 'Solo archivos'; (*************** STRINGS ADDED TO v0.6.31 **********************************************************************************) LANGesPasswordButton_Tooltip = 'El archivo necesitara contraseña.'#10'Haga clic para asignarla'; LANGesHandleRunFromArchive_Bytes = 'bytes'; LANGesHandleRunFromArchive_FileTypeDesc_Unknown = '(desconocido)'; LANGesHandleRunFromArchive_NotAssociated = '(sin aplicación asociada)'; LANGesHandleRunFromArchive_SelfExecutable = '(auto-ejecutable)'; LANGesHandleRunFromArchive_CouldntCreateTemporaryDirectory = 'No se pudo crear el directorio temporal "%s": %s.'#10#10'Por favor verifique la configuración del directorio temporal e intente de nuevo.'; LANGesFRunFromVFS_Caption = 'Propiedades del archivo comprimido'; LANGesFRunFromVFS_TitleLabel = 'Propiedades del archivo'; LANGesFRunFromVFS_FileNameLabel = 'Nombre del archivo:'; LANGesFRunFromVFS_FileTypeLabel = 'Tipo de archivo:'; LANGesFRunFromVFS_SizeLabel = 'Tamaño:'; LANGesFRunFromVFS_PackedSizeLabel = 'Tamaño comprimido:'; LANGesFRunFromVFS_DateLabel = 'Fecha de modificación:'; LANGesFRunFromVFS_InfoLabel = 'Abrir los archivos directamente no está soportado. Haciendo clic en los botones bajo el archivo (todos los archivos respectivamente) será extraído a un directorio temporal. Los archivos temporales serán eliminados cuando cierre Tux Commander.'; LANGesFRunFromVFS_OpensWithLabel = 'Abrir con:'; LANGesFRunFromVFS_ExecuteButton = 'E_xtraer y abrir'; LANGesFRunFromVFS_ExecuteAllButton = 'Extraer _todo y abrir'; LANGesFSetPassword_Caption = 'Asignar contraseña'; LANGesFSetPassword_Label1_Caption = 'Se necesita contraseña'; LANGesFSetPassword_Label2_Caption = 'El archivo esta encriptado y necesita de una contraseña para poder extraer la información'; LANGesFSetPassword_ShowPasswordCheckButton = '_Mostrar contraseña'; (*************** STRINGS ADDED TO v0.6.48 **********************************************************************************) LANGesCopyFileNamesToClipboard = '_Copiar los nombres de archivo al portapapeles'; LANGesCopyFullPathNamesToClipboard = 'Co_piar nombres con ruta completa al portapapeles'; LANGesCopyPathToClipboard = '_Copiar ruta al portapapeles'; LANGesPreferences_DateFormatLabel_Caption = 'Formato de _fecha:'; LANGesPreferences_System = 'Sistema'; LANGesPreferences_Custom = 'Personalizado...'; LANGesPreferences_CustomDateFormatEntry_Tooltip = 'Ingrese el formato personalizado para la fecha.'#10'Por favor ver "man strftime" para obtener la sintaxis de referencia.'; LANGesPreferences_TimeFormatLabel_Caption = 'Formato de _hora:'; LANGesPreferences_CustomTimeFormatEntry_Tooltip = 'Ingrese el formato personalizado para la hora.'#10'Por favor ver "man strftime" para obtener la sintaxis de referencia.'; LANGesPreferences_DateTimeFormatLabel_Caption = '_Orden fecha/hora:'; LANGesPreferences_QuickRenameSkipExtCheckBox = 'Solo seleccionar el nombre del archivo cuando se utiliza renombrado rápido'; LANGesPreferences_QuickRenameSkipExtCheckBox_Tooltip = 'No se selecciona la extensión del archivo cuando se hace renombrado rápido (Shift-F6)'; LANGesPreferences_SortDirectoriesLikeFilesCheckBox = 'Ordenar dir_ectorios como archivos'; LANGesPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip = 'Selecciónelo para ordenar los directorios como si fueran archivos. Los directorios siempre son los primeros de la lista.'#10'No seleccionado: los directorios siempre son ordenados por nombre.'; LANGesPreferences_QuickSearchLabel_Caption = '_Combinación búsqueda rápida:'; LANGesPreferences_QuickSearchOptionMenu_Tooltip = 'Las combinaciones Ctrl+S/Alt+S y "/" se podrán seguir utilizando, independientemente de esta combinación.'; LANGesPreferences_QuickSearch_Option1 = 'Solo Ctrl+S/Alt+S y "/"'; LANGesPreferences_QuickSearch_Option2 = 'Ctrl+Alt+letras'; LANGesPreferences_QuickSearch_Option3 = 'Alt+letras'; LANGesPreferences_QuickSearch_Option4 = 'letras directamente'; LANGesPreferences_TempPathLabel_Caption = 'Archivos temporales'; LANGesPreferences_VFSTempPathLabel_Caption = 'Archivos temporales _VFS:'; LANGesPreferences_VFSTempPathEntry_Tooltip = 'Ruta para los archivos temporales utilizados por el subsistema VFS, por ejemplo cuando se abren directamente los archivos que contiene un archivo comprimido. Todos los archivos temporales son eliminados cuando se cierra la aplicación.'; (*************** STRINGS ADDED TO v0.6.67 **********************************************************************************) LANGesPreferences_RightClickSelectCheckBox = 'Right mouse button selection mode'; LANGesPreferences_RightClickSelectCheckBox_Tooltip = 'Use right mouse button to select, like mc.'; LANGesGtkMountOperation_ConnectAnonymously = 'Connect _anonymously'; LANGesGtkMountOperation_ConnectAsUser = 'Connect as u_ser:'; LANGesGtkMountOperation_Username = '_Username:'; LANGesGtkMountOperation_Domain = '_Domain:'; LANGesGtkMountOperation_Password = '_Password:'; LANGesGtkMountOperation_DoNotSavePassword = 'Do not save password'; LANGesGtkMountOperation_ForgetPasswordImmediately = 'Forget password _immediately'; LANGesGtkMountOperation_RememberPasswordUntilYouLogout = 'Remember password until you _logout'; LANGesGtkMountOperation_SavePasswordInConnectionManager = '_Save password in Connection Manager'; LANGesGtkMountOperation_RememberForever = 'Remember _forever'; LANGesFSymlink_RelativePath = '_Relative path'; LANGesFConnectionManager_DuplicateButton_Caption = 'D_uplicate...'; LANGesFConnectionManager_DuplicateButton_Tooltip = 'Duplicate selected connection'; LANGesFConnectionManager_DoNotSavePasswordsCheckBox_Label = '_Do not store passwords internally (but still use gnome-keyring)'; LANGesFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip = 'By checking this option on, Tux Commander will never save passwords into its connection list. Due to the GVFS nature, gnome-keyring will still be used to retrieve stored passwords from your desktop session.'; LANGesFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label = 'Do not synchronize passwords to gnome-_keyring'; LANGesFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip = 'Don''t tell gnome-keyring to save any passwords.'; LANGesFConnectionManager_DuplicateMenuItem_Caption = 'D_uplicate...'; LANGesFQuickConnect_Caption = 'Quick connect'; LANGesFQuickConnect_TitleLabel_Caption = 'Quick connect'; LANGesFQuickConnect_ConnectToURILabel_Caption = 'C_onnect to URI:'; LANGesLinkToS = 'Link to %s'; LANGesOpenDirectoryInBackgroundTab = 'Open directory in _background tab'; LANGesTheActiveConnectionHasNotBeenSaved = 'The active connection has not been saved. Do you want to save it to Connection Manager?'#10#10'%s'; LANGesTheArchiveIsEncryptedAndRequiresPassword = 'The archive is encrypted and requires password'; (********************************************************************************************************************************) procedure SetTranslation; begin LANGF2Button_Caption := LANGesF2Button_Caption; LANGF3Button_Caption := LANGesF3Button_Caption; LANGF4Button_Caption := LANGesF4Button_Caption; LANGF5Button_Caption := LANGesF5Button_Caption; LANGF6Button_Caption := LANGesF6Button_Caption; LANGF7Button_Caption := LANGesF7Button_Caption; LANGF8Button_Caption := LANGesF8Button_Caption; LANGmnuFile_Caption := LANGesmnuFile_Caption; LANGmnuMark_Caption := LANGesmnuMark_Caption; LANGmnuCommands_Caption := LANGesmnuCommands_Caption; LANGmnuHelp_Caption := LANGesmnuHelp_Caption; LANGmiExit_Caption := LANGesmiExit_Caption; LANGmiSelectGroup_Caption := LANGesmiSelectGroup_Caption; LANGmiUnselectGroup_Caption := LANGesmiUnselectGroup_Caption; LANGmiSelectAll_Caption := LANGesmiSelectAll_Caption; LANGmiUnselectAll_Caption := LANGesmiUnselectAll_Caption; LANGmiInvertSelection_Caption := LANGesmiInvertSelection_Caption; LANGmiRefresh_Caption := LANGesmiRefresh_Caption; LANGmiAbout_Caption := LANGesmiAbout_Caption; LANGColumn1_Caption := LANGesColumn1_Caption; LANGColumn2_Caption := LANGesColumn2_Caption; LANGColumn3_Caption := LANGesColumn3_Caption; LANGColumn4_Caption := LANGesColumn4_Caption; LANGColumn5_Caption := LANGesColumn5_Caption; LANGExpandSelection := LANGesExpandSelection; LANGShrinkSelection := LANGesShrinkSelection; LANGNoMatchesFound := LANGesNoMatchesFound; LANGNoFilesSelected := LANGesNoFilesSelected; LANGSelectedFilesDirectories := LANGesSelectedFilesDirectories; LANGDirectoryS := LANGesDirectoryS; LANGFileS := LANGesFileS; LANGDoYouReallyWantToDeleteTheS := LANGesDoYouReallyWantToDeleteTheS; LANGDoYouReallyWantToDeleteTheSS := LANGesDoYouReallyWantToDeleteTheSS; LANGCopyFiles := LANGesCopyFiles; LANGMoveRenameFiles := LANGesMoveRenameFiles; LANGCopyDFileDirectoriesTo := LANGesCopyDFileDirectoriesTo; LANGMoveRenameDFileDirectoriesTo := LANGesMoveRenameDFileDirectoriesTo; LANGCopySC := LANGesCopySC; LANGMoveRenameSC := LANGesMoveRenameSC; LANGQuickFind := LANGesQuickFind; LANGAboutString := LANGesAboutString; LANGAboutStringGnome := LANGesAboutStringGnome; LANGDiskStatFmt := LANGesDiskStatFmt; LANGDiskStatVolNameFmt := LANGesDiskStatVolNameFmt; LANGStatusLineFmt := LANGesStatusLineFmt; LANGPanelStrings[False] := LANGesPanelStrings[False]; LANGPanelStrings[True] := LANGesPanelStrings[True]; LANGDIR := LANGesDIR; LANGErrorGettingListingForSPanel := LANGesErrorGettingListingForSPanel; LANGErrorGettingListingForSPanelNoPath := LANGesErrorGettingListingForSPanelNoPath; LANGErrorCreatingNewDirectorySInSPanel := LANGesErrorCreatingNewDirectorySInSPanel; LANGErrorCreatingNewDirectorySInSPanelNoPath := LANGesErrorCreatingNewDirectorySInSPanelNoPath; LANGTheFileDirectory := LANGesTheFileDirectory; LANGCouldNotBeDeleted := LANGesCouldNotBeDeleted; LANGCouldNotBeDeletedS := LANGesCouldNotBeDeletedS; LANGUserCancelled := LANGesUserCancelled; LANGTheDirectorySIsNotEmpty := LANGesTheDirectorySIsNotEmpty; LANGCannotCopyFile := LANGesCannotCopyFile; LANGCopyError := LANGesCopyError; LANGMoveError := LANGesMoveError; LANGOverwriteS := LANGesOverwriteS; LANGWithFileS := LANGesWithFileS; LANGOvewriteSBytesS := LANGesOvewriteSBytesS; LANGTheFile := LANGesTheFile; LANGCopy := LANGesCopy; LANGMove := LANGesMove; LANGTheDirectory := LANGesTheDirectory; LANGTheSymbolicLink := LANGesTheSymbolicLink; LANGCannotMoveFile := LANGesCannotMoveFile; LANGCouldNotBeCreated := LANGesCouldNotBeCreated; LANGCouldNotBeCreatedS := LANGesCouldNotBeCreatedS; LANGFromS := LANGesFromS; LANGToS := LANGesToS; LANGCannotCopyFileToItself := LANGesCannotCopyFileToItself; LANGMemoryAllocationFailed := LANGesMemoryAllocationFailed; LANGCannotOpenSourceFile := LANGesCannotOpenSourceFile; LANGCannotOpenDestinationFile := LANGesCannotOpenDestinationFile; LANGCannotCloseDestinationFile := LANGesCannotCloseDestinationFile; LANGCannotCloseSourceFile := LANGesCannotCloseSourceFile; LANGCannotReadFromSourceFile := LANGesCannotReadFromSourceFile; LANGCannotWriteToDestinationFile := LANGesCannotWriteToDestinationFile; LANGUnknownException := LANGesUnknownException; LANGNoAccess := LANGesNoAccess; LANGUnknownError := LANGesUnknownError; LANGCreateANewDirectory := LANGesCreateANewDirectory; LANGEnterDirectoryName := LANGesEnterDirectoryName; LANGOverwriteQuestion := LANGesOverwriteQuestion; LANGOverwriteButton_Caption := LANGesOverwriteButton_Caption; LANGOverwriteAllButton_Caption := LANGesOverwriteAllButton_Caption; LANGSkipButton_Caption := LANGesSkipButton_Caption; LANGOverwriteAllOlderButton_Caption := LANGesOverwriteAllOlderButton_Caption; LANGSkipAllButton_Caption := LANGesSkipAllButton_Caption; LANGRenameButton_Caption := LANGesRenameButton_Caption; LANGAppendButton_Caption := LANGesAppendButton_Caption; LANGRename := LANGesRename; LANGRenameFile := LANGesRenameFile; LANGIgnoreButton_Caption := LANGesIgnoreButton_Caption; LANGProgress := LANGesProgress; LANGCancel := LANGesCancel; LANGDelete := LANGesDelete; LANGSpecifyFileType := LANGesSpecifyFileType; LANGRemoveDirectory := LANGesRemoveDirectory; LANGDoYouWantToDeleteItWithAllItsFilesAndSubdirectories := LANGesDoYouWantToDeleteItWithAllItsFilesAndSubdirectories; LANGRetry := LANGesRetry; LANGDeleteButton_Caption := LANGesDeleteButton_Caption; LANGAll := LANGesAll; LANGCopyFilesSC := LANGesCopyFilesSC; LANGAppendQuestion := LANGesAppendQuestion; LANGPreparingList := LANGesPreparingList; LANGYouMustSelectAValidFile := LANGesYouMustSelectAValidFile; LANGmiVerifyChecksums := LANGesmiVerifyChecksums; LANGVerifyChecksumsCaption := LANGesVerifyChecksumsCaption; LANGCheckButtonCaptionCheck := LANGesCheckButtonCaptionCheck; LANGCheckButtonCaptionStop := LANGesCheckButtonCaptionStop; LANGFileListTooltip := LANGesFileListTooltip; LANGFilenameColumnCaption := LANGesFilenameColumnCaption; LANGTheFileSYouAreTryingToOpenIsQuiteBig := LANGesTheFileSYouAreTryingToOpenIsQuiteBig; LANGAnErrorOccuredWhileInitializingMemoryBlock := LANGesAnErrorOccuredWhileInitializingMemoryBlock; LANGAnErrorOccuredWhileOpeningFileSS := LANGesAnErrorOccuredWhileOpeningFileSS; LANGAnErrorOccuredWhileReadingFileSS := LANGesAnErrorOccuredWhileReadingFileSS; LANGChecksumNotChecked := LANGesChecksumNotChecked; LANGChecksumChecking := LANGesChecksumChecking; LANGChecksumInterrupted := LANGesChecksumInterrupted; LANGChecksumDOK := LANGesChecksumDOK; LANGmiCreateChecksumsCaption := LANGesmiCreateChecksumsCaption; LANGYouMustSelectAtLeastOneFileToCalculateChecksum := LANGesYouMustSelectAtLeastOneFileToCalculateChecksum; LANGCreateChecksumsCaption := LANGesCreateChecksumsCaption; LANGCCHKSUMPage1Text := LANGesCCHKSUMPage1Text; LANGCCHKSUMPage4Text := LANGesCCHKSUMPage4Text; LANGCCHKSUMPage6Text := LANGesCCHKSUMPage6Text; LANGCCHKSUMPage7Text := LANGesCCHKSUMPage7Text; LANGCCHKSUMPage1Title := LANGesCCHKSUMPage1Title; LANGCCHKSUMPage2Title := LANGesCCHKSUMPage2Title; LANGCCHKSUMPage3Title := LANGesCCHKSUMPage3Title; LANGCCHKSUMPage4Title := LANGesCCHKSUMPage4Title; LANGCCHKSUMPage5Title := LANGesCCHKSUMPage5Title; LANGCCHKSUMPage6Title := LANGesCCHKSUMPage6Title; LANGCCHKSUMPage7Title := LANGesCCHKSUMPage7Title; LANGCCHKSUMSFVFile := LANGesCCHKSUMSFVFile; LANGCCHKSUMMD5sumFile := LANGesCCHKSUMMD5sumFile; LANGCCHKSUMFileName := LANGesCCHKSUMFileName; LANGCCHKSUMCreateSeparateChecksumFiles := LANGesCCHKSUMCreateSeparateChecksumFiles; LANGCCHKSUMNowProcessingFileS := LANGesCCHKSUMNowProcessingFileS; LANGCCHKSUMFinishCaption := LANGesCCHKSUMFinishCaption; LANGCCHKSUMAreYouSureYouWantToAbortTheProcessing := LANGesCCHKSUMAreYouSureYouWantToAbortTheProcessing; LANGCCHKSUMAnErrorOccuredWhileOpeningFileSS := LANGesCCHKSUMAnErrorOccuredWhileOpeningFileSS; LANGCCHKSUMAnErrorOccuredWhileReadingFileSS := LANGesCCHKSUMAnErrorOccuredWhileReadingFileSS; LANGCCHKSUMAnErrorOccuredWhileWritingFileSS := LANGesCCHKSUMAnErrorOccuredWhileWritingFileSS; LANGAnErrorOccuredWhileWritingFileSS := LANGesAnErrorOccuredWhileWritingFileSS; LANGTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt := LANGesTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt; LANGTheTargetFileSCannotBeRemovedS := LANGesTheTargetFileSCannotBeRemovedS; LANGMergeCaption := LANGesMergeCaption; LANGPleaseInsertNextDiskOrGiveDifferentLocation := LANGesPleaseInsertNextDiskOrGiveDifferentLocation; LANGMergeOfSSucceeded := LANGesMergeOfSSucceeded; LANGWarningCreatedFileFailsCRCCheck := LANGesWarningCreatedFileFailsCRCCheck; LANGMergeOfSSucceeded_NoCRCFileAvailable := LANGesMergeOfSSucceeded_NoCRCFileAvailable; LANGMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory := LANGesMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory; LANGMergeSC := LANGesMergeSC; LANGmiSplitFileCaption := LANGesmiSplitFileCaption; LANGmiMergeFilesCaption := LANGesmiMergeFilesCaption; LANGSplitTheFileSToDirectory := LANGesSplitTheFileSToDirectory; LANGSplitSC := LANGesSplitSC; LANGSplitFile := LANGesSplitFile; LANGBytesPerFile := LANGesBytesPerFile; LANGAutomatic := LANGesAutomatic; LANGDeleteFilesOnTargetDisk := LANGesDeleteFilesOnTargetDisk; LANGSplitCaption := LANGesSplitCaption; LANGCannotOpenFileS := LANGesCannotOpenFileS; LANGCannotSplitTheFileToMoreThan999Parts := LANGesCannotSplitTheFileToMoreThan999Parts; LANGThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem := LANGesThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem; LANGThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem := LANGesThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem; LANGAnErrorOccuredWhileOperationS := LANGesAnErrorOccuredWhileOperationS; LANGSplitOfSSucceeded := LANGesSplitOfSSucceeded; LANGSplitOfSFailed := LANGesSplitOfSFailed; LANGmnuShow_Caption := LANGesmnuShow_Caption; LANGmiShowDotFiles_Caption := LANGesmiShowDotFiles_Caption; LANGTheFileYouAreTryingToOpenIsQuiteBig := LANGesTheFileYouAreTryingToOpenIsQuiteBig; LANGCannotExecuteSPleaseCheckTheConfiguration := LANGesCannotExecuteSPleaseCheckTheConfiguration; LANGEdit := LANGesEdit; LANGEnterFilenameToEdit := LANGesEnterFilenameToEdit; LANGmnuSettings_Caption := LANGesmnuSettings_Caption; LANGmiFileTypes_Caption := LANGesmiFileTypes_Caption; LANGThereIsNoApplicationAssociatedWithS := LANGesThereIsNoApplicationAssociatedWithS; LANGErrorExecutingCommand := LANGesErrorExecutingCommand; LANGEditFileTypesCaption := LANGesEditFileTypesCaption; LANGTitleLabel_Caption := LANGesTitleLabel_Caption; LANGExtensionsColumn := LANGesExtensionsColumn; LANGDescriptionColumn := LANGesDescriptionColumn; LANGFileTypesList := LANGesFileTypesList; LANGActionName := LANGesActionName; LANGCommand := LANGesCommand; LANGSetDefaultActionButton_Caption := LANGesSetDefaultActionButton_Caption; LANGRunInTerminalCheckBox_Caption := LANGesRunInTerminalCheckBox_Caption; LANGAutodetectCheckBox_Caption := LANGesAutodetectCheckBox_Caption; LANGBrowseButton_Caption := LANGesBrowseButton_Caption; LANGCommandLabel_Caption := LANGesCommandLabel_Caption; LANGDescriptionLabel_Caption := LANGesDescriptionLabel_Caption; LANGFNameExtLabel_Caption := LANGesFNameExtLabel_Caption; LANGNotebookPageExtensions := LANGesNotebookPageExtensions; LANGNotebookPageActions := LANGesNotebookPageActions; LANGDefault := LANGesDefault; LANGCannotSaveFileTypeAssociationsBecauseOtherProcess := LANGesCannotSaveFileTypeAssociationsBecauseOtherProcess; LANGDefaultColor := LANGesDefaultColor; LANGIcon := LANGesIcon; LANGBrowseForIcon := LANGesBrowseForIcon; LANGSelectFileTypeColor := LANGesSelectFileTypeColor; LANGColor := LANGesColor; LANGmiChangePermissions_Caption := LANGesmiChangePermissions_Caption; LANGmiChangeOwner_Caption := LANGesmiChangeOwner_Caption; LANGmiCreateSymlink_Caption := LANGesmiCreateSymlink_Caption; LANGmiEditSymlink_Caption := LANGesmiEditSymlink_Caption; LANGChmodProgress := LANGesChmodProgress; LANGChownProgress := LANGesChownProgress; LANGYouMustSelectAValidSymbolicLink := LANGesYouMustSelectAValidSymbolicLink; LANGPopupRunS := LANGesPopupRunS; LANGPopupOpenS := LANGesPopupOpenS; LANGPopupGoUp := LANGesPopupGoUp; LANGPopupOpenWithS := LANGesPopupOpenWithS; LANGPopupDefault := LANGesPopupDefault; LANGPopupOpenWith := LANGesPopupOpenWith; LANGPopupViewFile := LANGesPopupViewFile; LANGPopupEditFile := LANGesPopupEditFile; LANGPopupMakeSymlink := LANGesPopupMakeSymlink; LANGPopupRename := LANGesPopupRename; LANGPopupDelete := LANGesPopupDelete; LANGDialogChangePermissions := LANGesDialogChangePermissions; LANGCouldNotBeChmoddedS := LANGesCouldNotBeChmoddedS; LANGDialogChangeOwner := LANGesDialogChangeOwner; LANGCouldNotBeChownedS := LANGesCouldNotBeChownedS; LANGDialogMakeSymlink := LANGesDialogMakeSymlink; LANGDialogEditSymlink := LANGesDialogEditSymlink; LANGFEditSymlink_Caption := LANGesFEditSymlink_Caption; LANGFEditSymlink_SymbolicLinkFilename := LANGesFEditSymlink_SymbolicLinkFilename; LANGFEditSymlink_SymbolicLinkPointsTo := LANGesFEditSymlink_SymbolicLinkPointsTo; LANGFChmod_Caption := LANGesFChmod_Caption; LANGFChmod_PermissionFrame := LANGesFChmod_PermissionFrame; LANGFChmod_FileFrame := LANGesFChmod_FileFrame; LANGFChmod_ApplyRecursivelyFor := LANGesFChmod_ApplyRecursivelyFor; LANGFChmod_miAllFiles := LANGesFChmod_miAllFiles; LANGFChmod_miDirectories := LANGesFChmod_miDirectories; LANGFChmod_OctalLabel := LANGesFChmod_OctalLabel; LANGFChmod_SUID := LANGesFChmod_SUID; LANGFChmod_SGID := LANGesFChmod_SGID; LANGFChmod_Sticky := LANGesFChmod_Sticky; LANGFChmod_RUSR := LANGesFChmod_RUSR; LANGFChmod_WUSR := LANGesFChmod_WUSR; LANGFChmod_XUSR := LANGesFChmod_XUSR; LANGFChmod_RGRP := LANGesFChmod_RGRP; LANGFChmod_WGRP := LANGesFChmod_WGRP; LANGFChmod_XGRP := LANGesFChmod_XGRP; LANGFChmod_ROTH := LANGesFChmod_ROTH; LANGFChmod_WOTH := LANGesFChmod_WOTH; LANGFChmod_XOTH := LANGesFChmod_XOTH; LANGFChmod_TextLabel := LANGesFChmod_TextLabel; LANGFChmod_FileLabel := LANGesFChmod_FileLabel; LANGFChown_Caption := LANGesFChown_Caption; LANGFChown_OwnerFrame := LANGesFChown_OwnerFrame; LANGFChown_GroupFrame := LANGesFChown_GroupFrame; LANGFChown_FileFrame := LANGesFChown_FileFrame; LANGFChown_ApplyRecursively := LANGesFChown_ApplyRecursively; LANGFSymlink_Caption := LANGesFSymlink_Caption; LANGFSymlink_ExistingFilename := LANGesFSymlink_ExistingFilename; LANGFSymlink_SymlinkFilename := LANGesFSymlink_SymlinkFilename; LANGmnuBookmarks_Caption := LANGesmnuBookmarks_Caption; LANGmiAddBookmark_Caption := LANGesmiAddBookmark_Caption; LANGmiEditBookmarks_Caption := LANGesmiEditBookmarks_Caption; LANGBookmarkPopupDelete_Caption := LANGesBookmarkPopupDelete_Caption; LANGmiPreferences_Caption := LANGesmiPreferences_Caption; LANGTheCurrentDirectoryAlreadyExistsInTheBookmarksList := LANGesTheCurrentDirectoryAlreadyExistsInTheBookmarksList; LANGSomeOtherInstanceChanged := LANGesSomeOtherInstanceChanged; LANGPreferences_Caption := LANGesPreferences_Caption; LANGPreferences_TitleLabel_Caption := LANGesPreferences_TitleLabel_Caption; LANGPreferences_GeneralPage := LANGesPreferences_GeneralPage; LANGPreferences_FontsPage := LANGesPreferences_FontsPage; LANGPreferences_ColorsPage := LANGesPreferences_ColorsPage; LANGPreferences_RowHeight := LANGesPreferences_RowHeight; LANGPreferences_NumHistoryItems := LANGesPreferences_NumHistoryItems; LANGPreferences_Default := LANGesPreferences_Default; LANGPreferences_ClearReadonlyAttribute := LANGesPreferences_ClearReadonlyAttribute; LANGPreferences_DisableMouseRenaming := LANGesPreferences_DisableMouseRenaming; LANGPreferences_ShowFiletypeIconsInList := LANGesPreferences_ShowFiletypeIconsInList; LANGPreferences_ExternalAppsLabel := LANGesPreferences_ExternalAppsLabel; LANGPreferences_Viewer := LANGesPreferences_Viewer; LANGPreferences_Editor := LANGesPreferences_Editor; LANGPreferences_Terminal := LANGesPreferences_Terminal; LANGPreferences_ListFont := LANGesPreferences_ListFont; LANGPreferences_Change := LANGesPreferences_Change; LANGPreferences_UseDefaultFont := LANGesPreferences_UseDefaultFont; LANGPreferences_Foreground := LANGesPreferences_Foreground; LANGPreferences_Background := LANGesPreferences_Background; LANGPreferences_NormalItem := LANGesPreferences_NormalItem; LANGPreferences_SetToDefaultToUseGTKThemeColors := LANGesPreferences_SetToDefaultToUseGTKThemeColors; LANGPreferences_Cursor := LANGesPreferences_Cursor; LANGPreferences_InactiveItem := LANGesPreferences_InactiveItem; LANGPreferences_SelectedItem := LANGesPreferences_SelectedItem; LANGPreferences_LinkItem := LANGesPreferences_LinkItem; LANGPreferences_LinkItemHint := LANGesPreferences_LinkItemHint; LANGPreferences_DotFileItem := LANGesPreferences_DotFileItem; LANGPreferences_DotFileItemHint := LANGesPreferences_DotFileItemHint; LANGPreferences_BrowseForApplication := LANGesPreferences_BrowseForApplication; LANGPreferences_DefaultS := LANGesPreferences_DefaultS; LANGPreferences_SelectFont := LANGesPreferences_SelectFont; LANGBookmarkButton_Tooltip := LANGesBookmarkButton_Tooltip; LANGUpButton_Tooltip := LANGesUpButton_Tooltip; LANGRootButton_Tooltip := LANGesRootButton_Tooltip; LANGHomeButton_Tooltip := LANGesHomeButton_Tooltip; LANGLeftEqualButton_Tooltip := LANGesLeftEqualButton_Tooltip; LANGRightEqualButton_Tooltip := LANGesRightEqualButton_Tooltip; LANGmiShowDirectorySizes_Caption := LANGesmiShowDirectorySizes_Caption; LANGmiTargetSource_Caption := LANGesmiTargetSource_Caption; LANGFileTypeDirectory := LANGesFileTypeDirectory; LANGFileTypeFile := LANGesFileTypeFile; LANGFileTypeMetafile := LANGesFileTypeMetafile; LANGPreferencesPanelsPage := LANGesPreferencesPanelsPage; LANGPreferencesApplicationsPage := LANGesPreferencesApplicationsPage; LANGPreferencesExperimentalPage := LANGesPreferencesExperimentalPage; LANGPreferencesSelectAllDirectoriesCheckBox_Caption := LANGesPreferencesSelectAllDirectoriesCheckBox_Caption; LANGPreferencesNewStyleAltOCheckBox_Caption := LANGesPreferencesNewStyleAltOCheckBox_Caption; LANGPreferencesNewStyleAltOCheckBox_Tooltip := LANGesPreferencesNewStyleAltOCheckBox_Tooltip; LANGPreferencesShowFuncButtonsCheckBox_Caption := LANGesPreferencesShowFuncButtonsCheckBox_Caption; LANGPreferencesSizeFormatLabel_Caption := LANGesPreferencesSizeFormatLabel_Caption; LANGPreferencesmiSizeFormat1 := LANGesPreferencesmiSizeFormat1; LANGPreferencesmiSizeFormat6 := LANGesPreferencesmiSizeFormat6; LANGPreferencesAutodetectXApp := LANGesPreferencesAutodetectXApp; LANGPreferencesAlwaysRunInTerminal := LANGesPreferencesAlwaysRunInTerminal; LANGPreferencesNeverRunInTerminal := LANGesPreferencesNeverRunInTerminal; LANGPreferencesCmdLineBehaviourLabel_Caption := LANGesPreferencesCmdLineBehaviourLabel_Caption; LANGPreferencesFeatures := LANGesPreferencesFeatures; LANGPreferencesDisableMouseRename_Tooltip := LANGesPreferencesDisableMouseRename_Tooltip; LANGPreferencesDisableFileTipsCheckBox_Caption := LANGesPreferencesDisableFileTipsCheckBox_Caption; LANGPreferencesDisableFileTipsCheckBox_Tooltip := LANGesPreferencesDisableFileTipsCheckBox_Tooltip; LANGPreferencesShow := LANGesPreferencesShow; LANGPreferencesDirsInBoldCheckBox_Caption := LANGesPreferencesDirsInBoldCheckBox_Caption; LANGPreferencesDisableDirectoryBracketsCheckBox_Caption := LANGesPreferencesDisableDirectoryBracketsCheckBox_Caption; LANGPreferencesOctalPermissionsCheckBox_Caption := LANGesPreferencesOctalPermissionsCheckBox_Caption; LANGPreferencesOctalPermissionsCheckBox_Tooltip := LANGesPreferencesOctalPermissionsCheckBox_Tooltip; LANGPreferencesMovement := LANGesPreferencesMovement; LANGPreferencesLynxLikeMotionCheckBox_Caption := LANGesPreferencesLynxLikeMotionCheckBox_Caption; LANGPreferencesInsertMovesDownCheckBox_Caption := LANGesPreferencesInsertMovesDownCheckBox_Caption; LANGPreferencesSpaceMovesDownCheckBox_Caption := LANGesPreferencesSpaceMovesDownCheckBox_Caption; LANGPreferencesViewer := LANGesPreferencesViewer; LANGPreferencesCommandSC := LANGesPreferencesCommandSC; LANGPreferencesUseInternalViewer := LANGesPreferencesUseInternalViewer; LANGPreferencesEditor := LANGesPreferencesEditor; LANGPreferencesTerminal := LANGesPreferencesTerminal; LANGPreferencesExperimentalFeatures := LANGesPreferencesExperimentalFeatures; LANGPreferencesExperimentalWarningLabel_Caption := LANGesPreferencesExperimentalWarningLabel_Caption; LANGPreferencesFocusRefreshCheckBox_Caption := LANGesPreferencesFocusRefreshCheckBox_Caption; LANGPreferencesFocusRefreshCheckBox_Tooltip := LANGesPreferencesFocusRefreshCheckBox_Tooltip; LANGPreferencesWMCompatModeCheckBox_Caption := LANGesPreferencesWMCompatModeCheckBox_Caption; LANGPreferencesWMCompatModeCheckBox_Tooltip := LANGesPreferencesWMCompatModeCheckBox_Tooltip; LANGPreferencesCompatUseLibcSystemCheckBox_Caption := LANGesPreferencesCompatUseLibcSystemCheckBox_Caption; LANGPreferencesCompatUseLibcSystemCheckBox_Tooltip := LANGesPreferencesCompatUseLibcSystemCheckBox_Tooltip; LANGmiSearchCaption2 := LANGesmiSearchCaption2; LANGmiNoMounterBarCaption := LANGesmiNoMounterBarCaption; LANGmiShowOneMounterBarCaption := LANGesmiShowOneMounterBarCaption; LANGmiShowTwoMounterBarCaption := LANGesmiShowTwoMounterBarCaption; LANGmnuNetworkCaption := LANGesmnuNetworkCaption; LANGmiConnectionsCaption := LANGesmiConnectionsCaption; LANGmiOpenConnectionCaption := LANGesmiOpenConnectionCaption; LANGmiQuickConnectCaption := LANGesmiQuickConnectCaption; LANGmnuPluginsCaption := LANGesmnuPluginsCaption; LANGmiTestPluginCaption := LANGesmiTestPluginCaption; LANGmiMounterSettingsCaption := LANGesmiMounterSettingsCaption; LANGmiColumnsCaption := LANGesmiColumnsCaption; LANGmiSavePositionCaption := LANGesmiSavePositionCaption; LANGmiMountCaption := LANGesmiMountCaption; LANGmiUmountCaption := LANGesmiUmountCaption; LANGmiEjectCaption := LANGesmiEjectCaption; LANGmiDuplicateTabCaption := LANGesmiDuplicateTabCaption; LANGmiCloseTabCaption := LANGesmiCloseTabCaption; LANGmiCloseAllTabsCaption := LANGesmiCloseAllTabsCaption; LANGCannotDetermineDestinationEngine := LANGesCannotDetermineDestinationEngine; LANGCannotLoadFile := LANGesCannotLoadFile; LANGMountPointDevice := LANGesMountPointDevice; LANGMountSC := LANGesMountSC; LANGNoPluginsFound := LANGesNoPluginsFound; LANGPluginAbout := LANGesPluginAbout; LANGCouldntOpenURI := LANGesCouldntOpenURI; LANGPluginAboutInside := LANGesPluginAboutInside; LANGAreYouSureCloseAllTabs := LANGesAreYouSureCloseAllTabs; LANGCouldntOpenURIArchive := LANGesCouldntOpenURIArchive; LANGThereIsNoModuleAvailable := LANGesThereIsNoModuleAvailable; LANGIgnoreError := LANGesIgnoreError; LANGErrorMount := LANGesErrorMount; LANGErrorUmount := LANGesErrorUmount; LANGErrorEject := LANGesErrorEject; LANGMounterPrefs_Caption := LANGesMounterPrefs_Caption; LANGMounterPrefs_TitleLabelCaption := LANGesMounterPrefs_TitleLabelCaption; LANGMounterPrefs_ListViewFrameCaption := LANGesMounterPrefs_ListViewFrameCaption; LANGMounterPrefs_MountName := LANGesMounterPrefs_MountName; LANGMounterPrefs_MountPoint := LANGesMounterPrefs_MountPoint; LANGMounterPrefs_Device := LANGesMounterPrefs_Device; LANGMounterPrefs_MoveUpButtonTooltip := LANGesMounterPrefs_MoveUpButtonTooltip; LANGMounterPrefs_MoveDownButtonTooltip := LANGesMounterPrefs_MoveDownButtonTooltip; LANGMounterPrefs_UseFSTabDefaultsCheckBox := LANGesMounterPrefs_UseFSTabDefaultsCheckBox; LANGMounterPrefs_UseFSTabDefaultsCheckBoxTooltip := LANGesMounterPrefs_UseFSTabDefaultsCheckBoxTooltip; LANGMounterPrefs_ToggleModeCheckBox := LANGesMounterPrefs_ToggleModeCheckBox; LANGMounterPrefs_ToggleModeCheckBoxTooltip := LANGesMounterPrefs_ToggleModeCheckBoxTooltip; LANGMounterPrefs_PropertiesFrameCaption := LANGesMounterPrefs_PropertiesFrameCaption; LANGMounterPrefs_DisplayTextLabelCaption := LANGesMounterPrefs_DisplayTextLabelCaption; LANGMounterPrefs_MountPointLabelCaption := LANGesMounterPrefs_MountPointLabelCaption; LANGMounterPrefs_MountDeviceLabelCaption := LANGesMounterPrefs_MountDeviceLabelCaption; LANGMounterPrefs_DeviceTypeLabelCaption := LANGesMounterPrefs_DeviceTypeLabelCaption; LANGMounterPrefs_miLocalDiskCaption := LANGesMounterPrefs_miLocalDiskCaption; LANGMounterPrefs_miRemovableCaption := LANGesMounterPrefs_miRemovableCaption; LANGMounterPrefs_miCDCaption := LANGesMounterPrefs_miCDCaption; LANGMounterPrefs_miFloppyCaption := LANGesMounterPrefs_miFloppyCaption; LANGMounterPrefs_miNetworkCaption := LANGesMounterPrefs_miNetworkCaption; LANGMounterPrefs_MountCommandLabelCaption := LANGesMounterPrefs_MountCommandLabelCaption; LANGMounterPrefs_UmountCommandLabelCaption := LANGesMounterPrefs_UmountCommandLabelCaption; LANGMounterPrefs_MountCommandEntryTooltip := LANGesMounterPrefs_MountCommandEntryTooltip; LANGMounterPrefs_UmountCommandEntryTooltip := LANGesMounterPrefs_UmountCommandEntryTooltip; LANGMounterPrefs_IconLabelCaption := LANGesMounterPrefs_IconLabelCaption; LANGConnMgr_Caption := LANGesConnMgr_Caption; LANGConnMgr_ConnectButton := LANGesConnMgr_ConnectButton; LANGConnMgr_OpenConnection := LANGesConnMgr_OpenConnection; LANGConnMgr_NameColumn := LANGesConnMgr_NameColumn; LANGConnMgr_URIColumn := LANGesConnMgr_URIColumn; LANGConnMgr_AddConnectionButtonCaption := LANGesConnMgr_AddConnectionButtonCaption; LANGConnMgr_AddConnectionButtonTooltip := LANGesConnMgr_AddConnectionButtonTooltip; LANGConnMgr_EditButtonCaption := LANGesConnMgr_EditButtonCaption; LANGConnMgr_EditButtonTooltip := LANGesConnMgr_EditButtonTooltip; LANGConnMgr_RemoveButtonCaption := LANGesConnMgr_RemoveButtonCaption; LANGConnMgr_RemoveButtonTooltip := LANGesConnMgr_RemoveButtonTooltip; LANGConnMgr_DoYouWantDelete := LANGesConnMgr_DoYouWantDelete; LANGConnProp_FTP := LANGesConnProp_FTP; LANGConnProp_SFTP := LANGesConnProp_SFTP; LANGConnProp_SMB := LANGesConnProp_SMB; LANGConnProp_HTTP := LANGesConnProp_HTTP; LANGConnProp_HTTPS := LANGesConnProp_HTTPS; LANGConnProp_Other := LANGesConnProp_Other; LANGConnProp_Caption := LANGesConnProp_Caption; LANGConnProp_VFSModule := LANGesConnProp_VFSModule; LANGConnProp_URI := LANGesConnProp_URI; LANGConnProp_URIEntryTooltip := LANGesConnProp_URIEntryTooltip; LANGConnProp_DetailedInformations := LANGesConnProp_DetailedInformations; LANGConnProp_Name := LANGesConnProp_Name; LANGConnProp_Server := LANGesConnProp_Server; LANGConnProp_Username := LANGesConnProp_Username; LANGConnProp_UserNameEntryTooltip := LANGesConnProp_UserNameEntryTooltip; LANGConnProp_Password := LANGesConnProp_Password; LANGConnProp_TargetDirectory := LANGesConnProp_TargetDirectory; LANGConnProp_ServiceType := LANGesConnProp_ServiceType; LANGConnProp_MaskPassword := LANGesConnProp_MaskPassword; LANGConnProp_MenuItemCaption := LANGesConnProp_MenuItemCaption; LANGConnLogin_Caption := LANGesConnLogin_Caption; LANGConnLogin_Login := LANGesConnLogin_Login; LANGConnLogin_ExperimentalWarningLabelCaption := LANGesConnLogin_ExperimentalWarningLabelCaption; LANGConnLogin_Username := LANGesConnLogin_Username; LANGConnLogin_Password := LANGesConnLogin_Password; LANGConnLogin_AnonymousCheckButton := LANGesConnLogin_AnonymousCheckButton; LANGColumns_Caption := LANGesColumns_Caption; LANGColumns_Title := LANGesColumns_Title; LANGColumns_MoveUpButtonTooltip := LANGesColumns_MoveUpButtonTooltip; LANGColumns_MoveDownButtonTooltip := LANGesColumns_MoveDownButtonTooltip; LANGColumns_TitlesLongName := LANGesColumns_TitlesLongName; LANGColumns_TitlesLongNameExt := LANGesColumns_TitlesLongNameExt; LANGColumns_TitlesLongExt := LANGesColumns_TitlesLongExt; LANGColumns_TitlesLongSize := LANGesColumns_TitlesLongSize; LANGColumns_TitlesLongDateTime := LANGesColumns_TitlesLongDateTime; LANGColumns_TitlesLongDate := LANGesColumns_TitlesLongDate; LANGColumns_TitlesLongTime := LANGesColumns_TitlesLongTime; LANGColumns_TitlesLongUser := LANGesColumns_TitlesLongUser; LANGColumns_TitlesLongGroup := LANGesColumns_TitlesLongGroup; LANGColumns_TitlesLongAttr := LANGesColumns_TitlesLongAttr; LANGColumns_TitlesShortName := LANGesColumns_TitlesShortName; LANGColumns_TitlesShortNameExt := LANGesColumns_TitlesShortNameExt; LANGColumns_TitlesShortExt := LANGesColumns_TitlesShortExt; LANGColumns_TitlesShortSize := LANGesColumns_TitlesShortSize; LANGColumns_TitlesShortDateTime := LANGesColumns_TitlesShortDateTime; LANGColumns_TitlesShortDate := LANGesColumns_TitlesShortDate; LANGColumns_TitlesShortTime := LANGesColumns_TitlesShortTime; LANGColumns_TitlesShortUser := LANGesColumns_TitlesShortUser; LANGColumns_TitlesShortGroup := LANGesColumns_TitlesShortGroup; LANGColumns_TitlesShortAttr := LANGesColumns_TitlesShortAttr; LANGTestPlugin_Caption := LANGesTestPlugin_Caption; LANGTestPlugin_Title := LANGesTestPlugin_Title; LANGTestPlugin_ExperimentalWarningLabelCaption := LANGesTestPlugin_ExperimentalWarningLabelCaption; LANGTestPlugin_Plugin := LANGesTestPlugin_Plugin; LANGTestPlugin_Command := LANGesTestPlugin_Command; LANGTestPlugin_Username := LANGesTestPlugin_Username; LANGTestPlugin_Password := LANGesTestPlugin_Password; LANGTestPlugin_AnonymousCheckButton := LANGesTestPlugin_AnonymousCheckButton; LANGTestPlugin_NoPluginsFound := LANGesTestPlugin_NoPluginsFound; LANGRemoteWait_Caption := LANGesRemoteWait_Caption; LANGRemoteWait_OperationInProgress := LANGesRemoteWait_OperationInProgress; LANGRemoteWait_ItemsFound := LANGesRemoteWait_ItemsFound; LANGSearch_Bytes := LANGesSearch_Bytes; LANGSearch_kB := LANGesSearch_kB; LANGSearch_MB := LANGesSearch_MB; LANGSearch_days := LANGesSearch_days; LANGSearch_weeks := LANGesSearch_weeks; LANGSearch_months := LANGesSearch_months; LANGSearch_years := LANGesSearch_years; LANGSearch_Caption := LANGesSearch_Caption; LANGSearch_General := LANGesSearch_General; LANGSearch_Advanced := LANGesSearch_Advanced; LANGSearch_SearchResults := LANGesSearch_SearchResults; LANGSearch_SearchFor := LANGesSearch_SearchFor; LANGSearch_FileMaskEntryTooltip := LANGesSearch_FileMaskEntryTooltip; LANGSearch_SearchIn := LANGesSearch_SearchIn; LANGSearch_SearchArchivesCheckButton := LANGesSearch_SearchArchivesCheckButton; LANGSearch_FindText := LANGesSearch_FindText; LANGSearch_FindTextEntryTooltip := LANGesSearch_FindTextEntryTooltip; LANGSearch_CaseSensitiveCheckButton := LANGesSearch_CaseSensitiveCheckButton; LANGSearch_StayCurrentFSCheckButton := LANGesSearch_StayCurrentFSCheckButton; LANGSearch_CaseSensitiveMatchCheckButton := LANGesSearch_CaseSensitiveMatchCheckButton; LANGSearch_Size := LANGesSearch_Size; LANGSearch_Date := LANGesSearch_Date; LANGSearch_BiggerThan := LANGesSearch_BiggerThan; LANGSearch_SmallerThan := LANGesSearch_SmallerThan; LANGSearch_ModifiedBetweenRadioButton := LANGesSearch_ModifiedBetweenRadioButton; LANGSearch_NotModifiedAfterRadioButton := LANGesSearch_NotModifiedAfterRadioButton; LANGSearch_ModifiedLastRadioButton := LANGesSearch_ModifiedLastRadioButton; LANGSearch_ModifiedNotLastRadionButton := LANGesSearch_ModifiedNotLastRadionButton; LANGSearch_ModifiedBetweenEntry1 := LANGesSearch_ModifiedBetweenEntry1; LANGSearch_ViewButtonCaption := LANGesSearch_ViewButtonCaption; LANGSearch_NewSearchButtonCaption := LANGesSearch_NewSearchButtonCaption; LANGSearch_GoToFileButtonCaption := LANGesSearch_GoToFileButtonCaption; LANGSearch_FeedToListboxButtonCaption := LANGesSearch_FeedToListboxButtonCaption; LANGSearch_StatusSC := LANGesSearch_StatusSC; LANGSearch_Ready := LANGesSearch_Ready; LANGSearch_PreparingToSearch := LANGesSearch_PreparingToSearch; LANGSearch_SearchInProgress := LANGesSearch_SearchInProgress; LANGSearch_UserCancelled := LANGesSearch_UserCancelled; LANGSearch_SearchFinished := LANGesSearch_SearchFinished; LANGSearch_FilesFound := LANGesSearch_FilesFound; LANGSearch_And := LANGesSearch_And; LANGCloseOpenConnection := LANGesCloseOpenConnection; LANGDuplicateTabWarning := LANGesDuplicateTabWarning; LANGDontShowAgain := LANGesDontShowAgain; LANGSwitchOtherPanelWarning := LANGesSwitchOtherPanelWarning; LANGOpenConnectionsWarning := LANGesOpenConnectionsWarning; LANGmiDisconnect_Caption := LANGesmiDisconnect_Caption; LANGDisconnectButton_Tooltip := LANGesDisconnectButton_Tooltip; LANGLeaveArchiveButton_Tooltip := LANGesLeaveArchiveButton_Tooltip; LANGOpenTerminalButton_Tooltip := LANGesOpenTerminalButton_Tooltip; LANGOpenTerminalButton_Caption := LANGesOpenTerminalButton_Caption; LANGShowTextUIDsCheckBox_Caption := LANGesShowTextUIDsCheckBox_Caption; LANGShowTextUIDsCheckBox_Tooltip := LANGesShowTextUIDsCheckBox_Tooltip; LANGmiNewTab_Caption := LANGesmiNewTab_Caption; LANGFilePopupMenu_Properties := LANGesFilePopupMenu_Properties; LANGCommandEntry_Tooltip := LANGesCommandEntry_Tooltip; LANGmiFiles_Caption := LANGesmiFiles_Caption; LANGPasswordButton_Tooltip := LANGesPasswordButton_Tooltip; LANGHandleRunFromArchive_Bytes := LANGesHandleRunFromArchive_Bytes; LANGHandleRunFromArchive_FileTypeDesc_Unknown := LANGesHandleRunFromArchive_FileTypeDesc_Unknown; LANGHandleRunFromArchive_NotAssociated := LANGesHandleRunFromArchive_NotAssociated; LANGHandleRunFromArchive_SelfExecutable := LANGesHandleRunFromArchive_SelfExecutable; LANGHandleRunFromArchive_CouldntCreateTemporaryDirectory := LANGesHandleRunFromArchive_CouldntCreateTemporaryDirectory; LANGFRunFromVFS_Caption := LANGesFRunFromVFS_Caption; LANGFRunFromVFS_TitleLabel := LANGesFRunFromVFS_TitleLabel; LANGFRunFromVFS_FileNameLabel := LANGesFRunFromVFS_FileNameLabel; LANGFRunFromVFS_FileTypeLabel := LANGesFRunFromVFS_FileTypeLabel; LANGFRunFromVFS_SizeLabel := LANGesFRunFromVFS_SizeLabel; LANGFRunFromVFS_PackedSizeLabel := LANGesFRunFromVFS_PackedSizeLabel; LANGFRunFromVFS_DateLabel := LANGesFRunFromVFS_DateLabel; LANGFRunFromVFS_InfoLabel := LANGesFRunFromVFS_InfoLabel; LANGFRunFromVFS_OpensWithLabel := LANGesFRunFromVFS_OpensWithLabel; LANGFRunFromVFS_ExecuteButton := LANGesFRunFromVFS_ExecuteButton; LANGFRunFromVFS_ExecuteAllButton := LANGesFRunFromVFS_ExecuteAllButton; LANGFSetPassword_Caption := LANGesFSetPassword_Caption; LANGFSetPassword_Label1_Caption := LANGesFSetPassword_Label1_Caption; LANGFSetPassword_Label2_Caption := LANGesFSetPassword_Label2_Caption; LANGFSetPassword_ShowPasswordCheckButton := LANGesFSetPassword_ShowPasswordCheckButton; LANGCopyFileNamesToClipboard := LANGesCopyFileNamesToClipboard; LANGCopyFullPathNamesToClipboard := LANGesCopyFullPathNamesToClipboard; LANGCopyPathToClipboard := LANGesCopyPathToClipboard; LANGPreferences_DateFormatLabel_Caption := LANGesPreferences_DateFormatLabel_Caption; LANGPreferences_System := LANGesPreferences_System; LANGPreferences_Custom := LANGesPreferences_Custom; LANGPreferences_CustomDateFormatEntry_Tooltip := LANGesPreferences_CustomDateFormatEntry_Tooltip; LANGPreferences_TimeFormatLabel_Caption := LANGesPreferences_TimeFormatLabel_Caption; LANGPreferences_CustomTimeFormatEntry_Tooltip := LANGesPreferences_CustomTimeFormatEntry_Tooltip; LANGPreferences_DateTimeFormatLabel_Caption := LANGesPreferences_DateTimeFormatLabel_Caption; LANGPreferences_QuickRenameSkipExtCheckBox := LANGesPreferences_QuickRenameSkipExtCheckBox; LANGPreferences_QuickRenameSkipExtCheckBox_Tooltip := LANGesPreferences_QuickRenameSkipExtCheckBox_Tooltip; LANGPreferences_SortDirectoriesLikeFilesCheckBox := LANGesPreferences_SortDirectoriesLikeFilesCheckBox; LANGPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip := LANGesPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip; LANGPreferences_QuickSearchLabel_Caption := LANGesPreferences_QuickSearchLabel_Caption; LANGPreferences_QuickSearchOptionMenu_Tooltip := LANGesPreferences_QuickSearchOptionMenu_Tooltip; LANGPreferences_QuickSearch_Option1 := LANGesPreferences_QuickSearch_Option1; LANGPreferences_QuickSearch_Option2 := LANGesPreferences_QuickSearch_Option2; LANGPreferences_QuickSearch_Option3 := LANGesPreferences_QuickSearch_Option3; LANGPreferences_QuickSearch_Option4 := LANGesPreferences_QuickSearch_Option4; LANGPreferences_TempPathLabel_Caption := LANGesPreferences_TempPathLabel_Caption; LANGPreferences_VFSTempPathLabel_Caption := LANGesPreferences_VFSTempPathLabel_Caption; LANGPreferences_VFSTempPathEntry_Tooltip := LANGesPreferences_VFSTempPathEntry_Tooltip; LANGPreferences_RightClickSelectCheckBox := LANGesPreferences_RightClickSelectCheckBox; LANGPreferences_RightClickSelectCheckBox_Tooltip := LANGesPreferences_RightClickSelectCheckBox_Tooltip; LANGGtkMountOperation_ConnectAnonymously := LANGesGtkMountOperation_ConnectAnonymously; LANGGtkMountOperation_ConnectAsUser := LANGesGtkMountOperation_ConnectAsUser; LANGGtkMountOperation_Username := LANGesGtkMountOperation_Username; LANGGtkMountOperation_Domain := LANGesGtkMountOperation_Domain; LANGGtkMountOperation_Password := LANGesGtkMountOperation_Password; LANGGtkMountOperation_DoNotSavePassword := LANGesGtkMountOperation_DoNotSavePassword; LANGGtkMountOperation_ForgetPasswordImmediately := LANGesGtkMountOperation_ForgetPasswordImmediately; LANGGtkMountOperation_RememberPasswordUntilYouLogout := LANGesGtkMountOperation_RememberPasswordUntilYouLogout; LANGGtkMountOperation_SavePasswordInConnectionManager := LANGesGtkMountOperation_SavePasswordInConnectionManager; LANGGtkMountOperation_RememberForever := LANGesGtkMountOperation_RememberForever; LANGFSymlink_RelativePath := LANGesFSymlink_RelativePath; LANGFConnectionManager_DuplicateButton_Caption := LANGesFConnectionManager_DuplicateButton_Caption; LANGFConnectionManager_DuplicateButton_Tooltip := LANGesFConnectionManager_DuplicateButton_Tooltip; LANGFConnectionManager_DoNotSavePasswordsCheckBox_Label := LANGesFConnectionManager_DoNotSavePasswordsCheckBox_Label; LANGFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip := LANGesFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip; LANGFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label := LANGesFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label; LANGFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip := LANGesFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip; LANGFConnectionManager_DuplicateMenuItem_Caption := LANGesFConnectionManager_DuplicateMenuItem_Caption; LANGFQuickConnect_Caption := LANGesFQuickConnect_Caption; LANGFQuickConnect_TitleLabel_Caption := LANGesFQuickConnect_TitleLabel_Caption; LANGFQuickConnect_ConnectToURILabel_Caption := LANGesFQuickConnect_ConnectToURILabel_Caption; LANGLinkToS := LANGesLinkToS; LANGOpenDirectoryInBackgroundTab := LANGesOpenDirectoryInBackgroundTab; LANGTheActiveConnectionHasNotBeenSaved := LANGesTheActiveConnectionHasNotBeenSaved; LANGTheArchiveIsEncryptedAndRequiresPassword := LANGesTheArchiveIsEncryptedAndRequiresPassword; end; initialization AddTranslation('ES', @SetTranslation); AddTranslation('es_ES', @SetTranslation); end. tuxcmd-0.6.70+dfsg/translations/UTranslation_SK.pas0000644000175000017500000025351411300022643021314 0ustar salvisalvi(* Tux Commander - UTranslation_SK - Slovak Localization constants Copyright (C) 2008 Jozef Å taffen 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UTranslation_SK; interface implementation uses ULocale; const LANGskF2Button_Caption = 'F2 - PremenovaÅ¥'; LANGskF3Button_Caption = 'F3 - ZobraziÅ¥'; LANGskF4Button_Caption = 'F4 - UpraviÅ¥'; LANGskF5Button_Caption = 'F5 - KopírovaÅ¥'; LANGskF6Button_Caption = 'F6 - Presunúť'; LANGskF7Button_Caption = 'F7 - VytvoriÅ¥ Adresár'; LANGskF8Button_Caption = 'F8 - OdstrániÅ¥'; LANGskmnuFile_Caption = 'Sú_bor'; LANGskmnuMark_Caption = 'O_znaÄenie'; LANGskmnuCommands_Caption = 'Prí_kazy'; LANGskmnuHelp_Caption = 'Nápo_veda'; LANGskmiExit_Caption = '_Koniec'; LANGskmiSelectGroup_Caption = 'OznaÄiÅ¥ _skupinu...'; LANGskmiUnselectGroup_Caption = '_OdznaÄiÅ¥ skupinu...'; LANGskmiSelectAll_Caption = '_VybraÅ¥ vÅ¡etko'; LANGskmiUnselectAll_Caption = 'O_dznaÄiÅ¥ vÅ¡etko'; LANGskmiInvertSelection_Caption = '_PrevrátiÅ¥ výber'; LANGskmiRefresh_Caption = 'O_bnoviÅ¥'; LANGskmiAbout_Caption = '_O programe...'; LANGskColumn1_Caption = 'Názov'; LANGskColumn2_Caption = 'Prípona'; LANGskColumn3_Caption = 'VeľkosÅ¥'; LANGskColumn4_Caption = 'Dátum'; LANGskColumn5_Caption = 'Atribúty'; LANGskExpandSelection = 'RozšíriÅ¥ výber'; LANGskShrinkSelection = 'ZúžiÅ¥ výber'; LANGskNoMatchesFound = 'Nenájdený žiadny výskyt'; LANGskNoFilesSelected = 'Nie je oznaÄený žiadny súbor!'; LANGskSelectedFilesDirectories = '%d oznaÄených súborov/adresárov'; LANGskDirectoryS = 'adresár %s'; LANGskFileS = 'súbor %s'; LANGskDoYouReallyWantToDeleteTheS = 'Naozaj chcete odstrániÅ¥ %s?'; LANGskDoYouReallyWantToDeleteTheSS = 'Naozaj chcete odstrániÅ¥ %s?'#10'%s'; LANGskCopyFiles = 'KopírovaÅ¥ súbory'; LANGskMoveRenameFiles = 'Presunúť/premenovaÅ¥ súbory'; LANGskCopyDFileDirectoriesTo = 'SkopírovaÅ¥ %d súborov/adresárov do'; LANGskMoveRenameDFileDirectoriesTo = 'Presunúť/premenovaÅ¥ %d súborov/adresárov do'; LANGskCopySC = 'KopírovaÅ¥:'; LANGskMoveRenameSC = 'Presunúť/premenovaÅ¥:'; LANGskQuickFind = ' VyhľadaÅ¥:'; LANGskAboutString = 'Tux Commander'#10'Verzia %s'#10'Dátum zostavenia: %s'#10#10'Copyright (c) 2008 Tomáš Bžatek'#10'E-mail: tbzatek@users.sourceforge.net'#10'WWW stránka: http://tuxcmd.sourceforge.net/'; LANGskAboutStringGnome = 'verzia %s'#10'Dátum zostavenia: %s'#10'WWW stránka: http://tuxcmd.sourceforge.net/'; LANGskDiskStatFmt = '%s z %s voľných'; LANGskDiskStatVolNameFmt = '[%s] %s z %s voľných'; LANGskStatusLineFmt = '%s z %s v %d z %d súborov oznaÄených'; LANGskPanelStrings : array[boolean] of string = ('pravom', 'ľavom'); LANGskDIR = ''; LANGskErrorGettingListingForSPanel = 'Chyba pri otváraní adresára v %s paneli:'#10' %s'#10#10'Cesta = ''%s'''; LANGskErrorGettingListingForSPanelNoPath = 'Chyba pri otváraní adresára v %s paneli:'#10' %s'; LANGskErrorCreatingNewDirectorySInSPanel = 'Nedá sa vytvoriÅ¥ adresár ''%s'' v %s paneli:'#10' %s'; LANGskErrorCreatingNewDirectorySInSPanelNoPath = 'Nedá sa vytvoriÅ¥ adresár ''%s'' v %s paneli:'#10' %s'; LANGskTheFileDirectory = 'Súbor/adresár'; LANGskCouldNotBeDeleted = 'nemohl byÅ¥ zmazaný'; LANGskCouldNotBeDeletedS = 'nemohl byÅ¥ zmazaný: %s'; LANGskUserCancelled = 'Operácia preruÅ¡ená!'; LANGskTheDirectorySIsNotEmpty = 'Adresár %s nie je prázdny!'; LANGskCannotCopyFile = 'Nedá sa skopírovaÅ¥ súbor'; LANGskCopyError = 'Chyba pri kopírovaní'; LANGskMoveError = 'Chyba pri presúvaní'; LANGskOverwriteS = 'PrepísaÅ¥: %s'; LANGskWithFileS = 'Súborom: %s'; LANGskOvewriteSBytesS = '%s bajtov, %s'; LANGskTheFile = 'Súbor'; LANGskCopy = 'KopírovaÅ¥'; LANGskMove = 'Presunúť'; LANGskTheDirectory = 'Adresár'; LANGskTheSymbolicLink = 'Symbolický odkaz'; LANGskCannotMoveFile = 'Nedá sa presunúť súbor'; LANGskCouldNotBeCreated = 'nemohol byÅ¥ vytvorený'; LANGskCouldNotBeCreatedS = 'nemohol byÅ¥ vytvorený: %s'; LANGskFromS = 'Z: %s'; LANGskToS = 'Do: %s'; LANGskCannotCopyFileToItself = 'Zdrojový a cieľový súbor sú totožné!'; LANGskMemoryAllocationFailed = 'Chyba pri alokácií pameti:'; LANGskCannotOpenSourceFile = 'Nedá sa otvoriÅ¥ zdrojový súbor'; LANGskCannotOpenDestinationFile = 'Nedá sa otvoriÅ¥ cieľový súbor'; LANGskCannotCloseDestinationFile = 'Nedá sa zatvoriÅ¥ cieľový súbor'; LANGskCannotCloseSourceFile = 'Nedá sa zatvoriÅ¥ zdrojový súbor'; LANGskCannotReadFromSourceFile = 'Zo zdrojového súboru sa nedá ÄítaÅ¥'; LANGskCannotWriteToDestinationFile = 'Do cieľového súboru sa nedá zapisovaÅ¥'; LANGskUnknownException = 'Neznáma chyba'; LANGskNoAccess = 'Prístup zamietnutý'; LANGskUnknownError = 'Neznáma chyba'; LANGskCreateANewDirectory = 'VytvoriÅ¥ nový adresár'; LANGskEnterDirectoryName = 'Zadajte me_no adresára:'; LANGskOverwriteQuestion = 'Potvrdenie prepísania'; LANGskOverwriteButton_Caption = '_PrepísaÅ¥'; LANGskOverwriteAllButton_Caption = 'PrepísaÅ¥ _vÅ¡etko'; LANGskSkipButton_Caption = 'Pre_skoÄiÅ¥'; LANGskOverwriteAllOlderButton_Caption = 'PrepísaÅ¥ sta_rší'; LANGskSkipAllButton_Caption = 'PreskoÄiÅ¥ vÅ¡_etko'; LANGskRenameButton_Caption = 'Pre_menovaÅ¥'; LANGskAppendButton_Caption = 'Pripoji_Å¥'; LANGskRename = 'PremenovaÅ¥'; LANGskRenameFile = 'PremenovaÅ¥ súbor ''%s'' na'; LANGskIgnoreButton_Caption = '_IgnorovaÅ¥'; LANGskProgress = 'Priebeh operácie'; LANGskCancel = '_Storno'; LANGskDelete = 'Mazanie:'; LANGskSpecifyFileType = 'Zvoľte _typ súboru:'; LANGskRemoveDirectory = 'OdstrániÅ¥ adresár'; LANGskDoYouWantToDeleteItWithAllItsFilesAndSubdirectories = 'Naozaj si želáte zmazaÅ¥ vÅ¡etko vrátane vnorených adresárov?'; LANGskRetry = '_OpakovaÅ¥'; LANGskDeleteButton_Caption = 'O_dstrániÅ¥'; LANGskAll = '_VÅ¡etko'; LANGskCopyFilesSC = 'KopírovaÅ¥ súbory:'; LANGskAppendQuestion = 'Naozaj si želáte pripojiÅ¥ súbor ''%s'' k súboru ''%s''?'; LANGskPreparingList = 'Pripravuje sa zoznam súborov...'; LANGskYouMustSelectAValidFile = 'Musíte oznaÄit platný súbor!'; LANGskmiVerifyChecksums = '_OveriÅ¥ kontrolné súÄty'; LANGskVerifyChecksumsCaption = 'OveriÅ¥ kontrolné súÄty'; LANGskCheckButtonCaptionCheck = '_OveriÅ¥'; LANGskCheckButtonCaptionStop = '_Stop'; LANGskFileListTooltip = '[?] - Doteraz neoverené'#10'[OK] - Kontrolný súÄet je správny'#10'[BAD] - Kontrolný súÄet je chybný'#10'[N/A] - Súbor nie je k dispozícií'; LANGskFilenameColumnCaption = 'Súbor'; LANGskTheFileSYouAreTryingToOpenIsQuiteBig = 'Súbor ''%s'', ktorý sa pokúšate naÄítaÅ¥, je veľký (%s bajtov). Nemusí ísÅ¥ o platný súbor s kontrolnými súÄtami.'#10#10'Chcete pokraÄovaÅ¥?'; LANGskAnErrorOccuredWhileInitializingMemoryBlock = 'Nastala chyba pri alokácií miesta v pamäti. Pokúste sa uvolniÅ¥ pamäť zatvorením niektorých aplikácií a skúste to znova.'; LANGskAnErrorOccuredWhileOpeningFileSS = 'Nedá sa otvoriÅ¥ súbor ''%s'':'#10' %s'; LANGskAnErrorOccuredWhileReadingFileSS = 'Nedá sa ÄítaÅ¥ zo súboru ''%s'':'#10' %s'; LANGskChecksumNotChecked = 'Stav: Nekontrolované'; LANGskChecksumChecking = 'Stav: Prebieha kontrola...'; LANGskChecksumInterrupted = 'Stav: PreruÅ¡ené'; LANGskChecksumDOK = 'Stav: %d%% OK'; LANGskmiCreateChecksumsCaption = '_VytvoriÅ¥ kontrolné súÄty...'; LANGskYouMustSelectAtLeastOneFileToCalculateChecksum = 'Musíte oznaÄiÅ¥ aspoň jeden platný súbor, pre ktorý chcete vytvoriÅ¥ kontrolné súÄty!'; LANGskCreateChecksumsCaption = 'VytvoÅ™iÅ¥ kontrolné súÄty'; LANGskCCHKSUMPage1Text = 'Chystáte sa vytvoriÅ¥ kontrolné súÄty'#10'pre oznaÄené súbory v paneli. Ak nie sú'#10'oznaÄené vÅ¡etky potrebné súbory,'#10'ukonÄite tohto sprievodcu a skúste to znova.'; LANGskCCHKSUMPage4Text = 'Sprievodca je pripravený vytvoriÅ¥ kontrolné súÄty.'#10'Táto operácia môže trvaÅ¥ niekoľko minút.'#10'StlaÄte ÄŽalej pre pokraÄovanie.'; LANGskCCHKSUMPage6Text = 'PoÄas operácie nastali nasledujúce chyby:'; LANGskCCHKSUMPage7Text = 'Kontrolné súÄty sú pripravené na použitie.'#10#10'StlaÄením DokonÄiÅ¥ ukonÄíte sprievodcu.'; LANGskCCHKSUMPage1Title = 'Príprava súborov'; LANGskCCHKSUMPage2Title = 'Vyberte typ súÄtového súboru'; LANGskCCHKSUMPage3Title = 'Zvoľte meno súboru'; LANGskCCHKSUMPage4Title = 'Pripravené na operáciu'; LANGskCCHKSUMPage5Title = 'Prebieha kontrola...'; LANGskCCHKSUMPage6Title = 'Chyba!'; LANGskCCHKSUMPage7Title = 'DokonÄené'; LANGskCCHKSUMSFVFile = 'súbor SFV'; LANGskCCHKSUMMD5sumFile = 'súbor MD5'; LANGskCCHKSUMFileName = '_Názov súboru:'; LANGskCCHKSUMCreateSeparateChecksumFiles = 'Samostatné _súbory so súÄtami'; LANGskCCHKSUMNowProcessingFileS = 'Kontroluje sa súbor: %s'; LANGskCCHKSUMFinishCaption = '_DokonÄiÅ¥'; LANGskCCHKSUMAreYouSureYouWantToAbortTheProcessing = 'Naozaj chcete preruÅ¡iÅ¥ kontrolu??'; LANGskCCHKSUMAnErrorOccuredWhileOpeningFileSS = 'Nastala chyba pri otváraní súboru ''%s'': %s'#10; LANGskCCHKSUMAnErrorOccuredWhileReadingFileSS = 'Nastala chyba pri Äítaní súboru ''%s'': %s'#10; LANGskCCHKSUMAnErrorOccuredWhileWritingFileSS = 'Nastala chyba pri pokuse o zápis do súboru ''%s'': %s'#10; LANGskAnErrorOccuredWhileWritingFileSS = 'Nedá sa zapisovaÅ¥ do súboru ''%s'':'#10' %s'; LANGskTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt = 'Cieľový súbor ''%s'' už existuje. Chcete ho prepísaÅ¥?'; LANGskTheTargetFileSCannotBeRemovedS = 'Cieľový súbor ''%s'' nemohol byÅ¥ odstranený: %s'; LANGskMergeCaption = 'SpojiÅ¥'; LANGskPleaseInsertNextDiskOrGiveDifferentLocation = 'Prosím vložte Äalší disk alebo zadajte iné umiestnenie:'; LANGskMergeOfSSucceeded = 'Spojenie súboru ''%s'' bolo úspeÅ¡ne dokonÄené (správny kontrolný súÄet).'; LANGskWarningCreatedFileFailsCRCCheck = 'Upozornenie: Vytvorený súbor nemá správny kontrolný súÄet!'; LANGskMergeOfSSucceeded_NoCRCFileAvailable = 'Spojenie súboru ''%s'' bolo úspeÅ¡ne dokonÄené (kontrolný souÄet nie je k dispozícii).'; LANGskMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory = 'SpojiÅ¥ ''%s'' a vÅ¡etky súbory s nadväzujúcimi menami do nasledujúceho adresára:'; LANGskMergeSC = 'SpojiÅ¥:'; LANGskmiSplitFileCaption = '_RozdeliÅ¥ súbor...'; LANGskmiMergeFilesCaption = 'S_pojiÅ¥ súbory...'; LANGskSplitTheFileSToDirectory = '_RozdeliÅ¥ súbor ''%s'' do cieľového adresára:'; LANGskSplitSC = 'RozdeliÅ¥:'; LANGskSplitFile = 'RozdeliÅ¥ súbor'; LANGskBytesPerFile = '_Bajtov na súbor:'; LANGskAutomatic = 'Automaticky'; LANGskDeleteFilesOnTargetDisk = '_ZmazaÅ¥ súbory na cieľovom disku (vhodné pre vymeniÅ¥eľné disky)'; LANGskSplitCaption = 'RozdeliÅ¥'; LANGskCannotOpenFileS = 'Nedá sa otvoriÅ¥ súbor ''%s'''; LANGskCannotSplitTheFileToMoreThan999Parts = 'Súbor sa nedá rozdeliÅ¥ na viac ako 999 Äastí!'; LANGskThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem = 'V cieľovom adresári sa nachádzajú tieto súbory:'#10'%s'#10'PÅ™ejete si je smazat?'; LANGskThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem = 'V cieľovom adresári sa nachádza %d súborov. Chcete ich zmazaÅ¥?'; LANGskAnErrorOccuredWhileOperationS = 'PoÄas priebehu operácie nastala chyba: %s'; LANGskSplitOfSSucceeded = 'Rozdelenie súboru ''%s'' bolo úspeÅ¡ne dokonÄené.'; LANGskSplitOfSFailed = 'Rozdelenie súboru ''%s'' nebolo úspeÅ¡né!'; LANGskmnuShow_Caption = '_ZobraziÅ¥'; LANGskmiShowDotFiles_Caption = 'ZobraziÅ¥ _skryté súbory'; LANGskTheFileYouAreTryingToOpenIsQuiteBig = 'Súbor, ktorý sa pokúšate naÄítaÅ¥, je veľký. Otvorením v externej aplikácii (napÅ™. gedit) môže dôjsÅ¥ k spomaleniu reakcií systému.'#10'Prajete si pokraÄovaÅ¥?'; LANGskCannotExecuteSPleaseCheckTheConfiguration = 'Nedá sa spustiÅ¥ ''%s''. Prosím skontrolujte nastavenia.'; LANGskEdit = 'UpraviÅ¥'; LANGskEnterFilenameToEdit = 'Zad_ajte meno súboru, ktorý chcete upraviÅ¥:'; LANGskmnuSettings_Caption = 'Nas_tavenia'; LANGskmiFileTypes_Caption = '_Typy súborov...'; LANGskThereIsNoApplicationAssociatedWithS = 'Žiadna aplikácia nie je priradená k súboru "%s".'#10#10'Prajete si otvoriÅ¥ dialóg s nastavením akcií k typom súborov?'; LANGskErrorExecutingCommand = 'Zadaný príkaz nie je možné vykonaÅ¥!'; LANGskEditFileTypesCaption = 'Nastavenia priradenia'; LANGskTitleLabel_Caption = 'Typy súborov'; LANGskExtensionsColumn = 'Prípony'; LANGskDescriptionColumn = 'Popis'; LANGskFileTypesList = 'Zoznam typov súborov'; LANGskActionName = 'Názov akcie'; LANGskCommand = 'Príkaz'; LANGskSetDefaultActionButton_Caption = '_NastaviÅ¥ ako predvolený'; LANGskRunInTerminalCheckBox_Caption = 'Spustit v _termináli'; LANGskAutodetectCheckBox_Caption = 'Autodetekcia _GUI aplikácie'; LANGskBrowseButton_Caption = '_PrehľadávaÅ¥...'; LANGskCommandLabel_Caption = 'Prí_kaz:'; LANGskDescriptionLabel_Caption = 'Náz_ov akcie:'; LANGskFNameExtLabel_Caption = 'Pri_daÅ¥ typ:'; LANGskNotebookPageExtensions = 'Typ súboru'; LANGskNotebookPageActions = 'Akcia'; LANGskDefault = ' (predvolený)'; LANGskCannotSaveFileTypeAssociationsBecauseOtherProcess = 'Nedá sa uložiÅ¥ zoznam typov súborov, pretože iný proces medzitým uložený zoznam zmenil.'; LANGskDefaultColor = 'Å tandardná _farba'; LANGskIcon = '_Ikona:'; LANGskBrowseForIcon = 'VyhľadaÅ¥ ikonu'; LANGskSelectFileTypeColor = 'VybraÅ¥ farbu pre typ súborov'; LANGskColor = 'Fa_rba:'; LANGskmiChangePermissions_Caption = 'ZmeniÅ¥ prá_va...'; LANGskmiChangeOwner_Caption = 'ZmeniÅ¥ v_lastníka/skupinu...'; LANGskmiCreateSymlink_Caption = 'VytvoriÅ¥ od_kaz...'; LANGskmiEditSymlink_Caption = '_UpraviÅ¥ odkaz...'; LANGskChmodProgress = 'Zmena práv:'; LANGskChownProgress = 'Zmena vlastníka:'; LANGskYouMustSelectAValidSymbolicLink = 'Musíte vybraÅ¥ platný odkaz!'; LANGskPopupRunS = 'Spus_tiÅ¥ %s'; LANGskPopupOpenS = '_OtvoriÅ¥ %s'; LANGskPopupGoUp = 'PrejsÅ¥ d_o nadradeného adresára'; LANGskPopupOpenWithS = 'OtvoriÅ¥ v %s'; LANGskPopupDefault = ' (predvolený)'; LANGskPopupOpenWith = '_OtvoriÅ¥ v...'; LANGskPopupViewFile = '_ZobraziÅ¥ súbor'; LANGskPopupEditFile = 'UpraviÅ¥ _súbor'; LANGskPopupMakeSymlink = 'Vytvorit od_kaz'; LANGskPopupRename = '_PremenovaÅ¥'; LANGskPopupDelete = 'O_dstrániÅ¥'; LANGskDialogChangePermissions = 'ZmeniÅ¥ práva'; LANGskCouldNotBeChmoddedS = 'nie je možné zmeniÅ¥ práva: %s'; LANGskDialogChangeOwner = 'ZmeniÅ¥ vlastníka/skupinu'; LANGskCouldNotBeChownedS = 'nie je možné zmeniÅ¥ vlastníka: %s'; LANGskDialogMakeSymlink = 'VytvoriÅ¥ odkaz'; LANGskDialogEditSymlink = 'UpraviÅ¥ odkaz'; LANGskFEditSymlink_Caption = 'UpraviÅ¥ symbolický odkaz'; LANGskFEditSymlink_SymbolicLinkFilename = '_Názov odkazu:'; LANGskFEditSymlink_SymbolicLinkPointsTo = 'Odkaz _ukazuje na:'; LANGskFChmod_Caption = 'Nastavenie prístupových práv'; LANGskFChmod_PermissionFrame = 'Natavenie práv'; LANGskFChmod_FileFrame = 'Súbor'; LANGskFChmod_ApplyRecursivelyFor = 'PoužiÅ¥ _opakovane pre'; LANGskFChmod_miAllFiles = 'VÅ¡etky súbory a adresáre'; LANGskFChmod_miDirectories = 'Iba pre adresáre'; LANGskFChmod_OctalLabel = 'Čí_selné vyjadrenie:'; LANGskFChmod_SUID = 'SUID - NastaviÅ¥ ID uživateľa pri spustení'; LANGskFChmod_SGID = 'SGID - Nastavit ID skupiny pri spustení'; LANGskFChmod_Sticky = 'bit ''sticky'''; LANGskFChmod_RUSR = 'RUSR - Čítanie vlastníkom'; LANGskFChmod_WUSR = 'WUSR - Zápis vlastníkom'; LANGskFChmod_XUSR = 'XUSR - Spúšťanie vlastníkom'; LANGskFChmod_RGRP = 'RGRP - Čítanie skupinou'; LANGskFChmod_WGRP = 'WGRP - Zápis skupinou'; LANGskFChmod_XGRP = 'XGRP - Spúšťanie skupinou'; LANGskFChmod_ROTH = 'ROTH - Čítanie ostatnými'; LANGskFChmod_WOTH = 'WOTH - Zápis ostatnými'; LANGskFChmod_XOTH = 'XOTH - Spúšťanie ostatnými'; LANGskFChmod_TextLabel = 'Textové vyjadrenie: %s'; LANGskFChmod_FileLabel = 'Zvolený súbor: %s'#10'Textové vyjadrenie: %s'#10 + 'Číselné vyjadrenie: %d'#10'Vlastník: %s'#10 + 'Skupina: %s'; LANGskFChown_Caption = 'ZmeniÅ¥ vlastníka/skupinu'; LANGskFChown_OwnerFrame = 'Vlastník'; LANGskFChown_GroupFrame = 'Názov skupiny'; LANGskFChown_FileFrame = 'Súbor'; LANGskFChown_ApplyRecursively = 'PoužiÅ¥ _opakovane'; LANGskFSymlink_Caption = 'VytvoriÅ¥ symbolický odkaz'; LANGskFSymlink_ExistingFilename = '_Existujúci súbor (na ktorý sa bude odkazovaÅ¥):'; LANGskFSymlink_SymlinkFilename = '_Názov odkazu:'; LANGskmnuBookmarks_Caption = 'Záložk_y'; LANGskmiAddBookmark_Caption = 'PridaÅ¥ záložku'; LANGskmiEditBookmarks_Caption = 'UpraviÅ¥ záložky'; LANGskBookmarkPopupDelete_Caption = '_ZmazaÅ¥'; LANGskmiPreferences_Caption = '_Nastavenia...'; LANGskTheCurrentDirectoryAlreadyExistsInTheBookmarksList = 'Adresár ktorý sa pokúšate pridaÅ¥ už existuje v zozname záložiek'; LANGskSomeOtherInstanceChanged = 'V niektorej ÄalÅ¡ej spustenej inÅ¡tancii programu bolo zmenené nastavenie. Prajete si použiÅ¥ nové nastavenie aj pre aktuálne okno?'#10#10'Upozornenie: Ak nepovolíte prijatie zmien, bude toto nové nastavenie prepísané pri ukonÄení programu!'; LANGskPreferences_Caption = 'Nastavenia aplikácie'; LANGskPreferences_TitleLabel_Caption = 'Nastavenia aplikácie'; LANGskPreferences_GeneralPage = 'VÅ¡eobecné'; LANGskPreferences_FontsPage = 'Písma'; LANGskPreferences_ColorsPage = 'Farby'; LANGskPreferences_RowHeight = 'Výš_ka riadku:'; LANGskPreferences_NumHistoryItems = 'Položiek v _histórii príkazového riadku:'; LANGskPreferences_Default = 'Predvolený'; LANGskPreferences_ClearReadonlyAttribute = '_OdstrániÅ¥ atribút ''Iba na Äítanie'' pri kopírovaní z CD-ROM'; LANGskPreferences_DisableMouseRenaming = 'ZakázaÅ¥ _rýchle premenovanie myÅ¡ou'; LANGskPreferences_ShowFiletypeIconsInList = 'ZobraziÅ¥ pridružené _ikony typov súborov '; LANGskPreferences_ExternalAppsLabel = 'Externé programy'; LANGskPreferences_Viewer = '_PrehliadaÄ:'; LANGskPreferences_Editor = '_Editor:'; LANGskPreferences_Terminal = '_Terminál:'; LANGskPreferences_ListFont = 'Písmo v paneloch:'; LANGskPreferences_Change = '_ZmeniÅ¥...'; LANGskPreferences_UseDefaultFont = 'PoužiÅ¥ _predvolené písmo'; LANGskPreferences_Foreground = 'Text'; LANGskPreferences_Background = 'Pozadie'; LANGskPreferences_NormalItem = 'Normálne položky:'; LANGskPreferences_SetToDefaultToUseGTKThemeColors = 'Pri východiskovom nastavení sa použije farba aktuálnej témy systému GTK'; LANGskPreferences_Cursor = 'Kurzor:'; LANGskPreferences_InactiveItem = 'Neaktívne položky:'; LANGskPreferences_SelectedItem = 'OznaÄené položky:'; LANGskPreferences_LinkItem = 'Symbolické odkazy:'; LANGskPreferences_LinkItemHint = 'Pri východiskovom nastavení sa použije farba normálnych položiek'; LANGskPreferences_DotFileItem = 'Skryté súbory:'; LANGskPreferences_DotFileItemHint = 'Pri východiskovom nastavení sa použije farba normálnych položiek'; LANGskPreferences_BrowseForApplication = 'ZvoliÅ¥ aplikáciu'; LANGskPreferences_DefaultS = 'Predvolený: %s'; LANGskPreferences_SelectFont = 'ZvoliÅ¥ písmo'; (*************** STRINGS ADDED TO v0.4.101 **********************************************************************************) LANGskBookmarkButton_Tooltip = 'ZobraziÅ¥ záložky'; LANGskUpButton_Tooltip = 'Presunúť o adresár vyššie'; LANGskRootButton_Tooltip = 'Presunúť do koreňového adresára (/)'; LANGskHomeButton_Tooltip = 'Presunúť do domovského adresára (/home/user)'; LANGskLeftEqualButton_Tooltip = 'ZmeniÅ¥ adresár v pravom paneli na aktuálny'; LANGskRightEqualButton_Tooltip = 'ZmeniÅ¥ adresár v ľavom paneli na aktuálny'; LANGskmiShowDirectorySizes_Caption = 'SpoÄítaÅ¥ obsadený priestor'; LANGskmiTargetSource_Caption = 'Cieľový adresár = Aktuálny adresár'; LANGskFileTypeDirectory = 'Adresára'; LANGskFileTypeFile = 'Súbory'; LANGskFileTypeMetafile = 'SpoloÄná položka'; LANGskPreferencesPanelsPage = 'Panely'; LANGskPreferencesApplicationsPage = 'Aplikácie'; LANGskPreferencesExperimentalPage = 'Experimentálne funkcie'; LANGskPreferencesSelectAllDirectoriesCheckBox_Caption = 'Pri hromadnom oznaÄení zahrnúť aj _adresáre'; LANGskPreferencesNewStyleAltOCheckBox_Caption = 'No_vý Å¡týl Alt+O'; LANGskPreferencesNewStyleAltOCheckBox_Tooltip = 'Pri prepnutí nemení aktuálny adresár'; LANGskPreferencesShowFuncButtonsCheckBox_Caption = 'ZobraziÅ¥ _funkÄné tlaÄítka (spodná liÅ¡ta)'; LANGskPreferencesSizeFormatLabel_Caption = 'For_mát Äísel:'; LANGskPreferencesmiSizeFormat1 = 'Systémový'; LANGskPreferencesmiSizeFormat6 = 'Dynamický'; LANGskPreferencesAutodetectXApp = 'Autodetekcia X aplikácie'; LANGskPreferencesAlwaysRunInTerminal = 'SpustiÅ¥ v termináli'; LANGskPreferencesNeverRunInTerminal = 'NespúšťaÅ¥ v termináli'; LANGskPreferencesCmdLineBehaviourLabel_Caption = 'Spustenie z _príkazového riadku:'; LANGskPreferencesFeatures = 'Funkcie'; LANGskPreferencesDisableMouseRename_Tooltip = 'Pre rýchle premenovanie môžete vždy použiÅ¥ klávesovú skratku Shift+F6 aj keÄ je táto voľba zakázaná'; LANGskPreferencesDisableFileTipsCheckBox_Caption = 'ZakázaÅ¥ vyskakovacie okno s plným _menom súboru'; LANGskPreferencesDisableFileTipsCheckBox_Tooltip = 'NezobrazovaÅ¥ vyskakovacie okno s plným menom súboru ak je názov súboru/adresára v paneli skrátený'; LANGskPreferencesShow = 'Zobrazenie'; LANGskPreferencesDirsInBoldCheckBox_Caption = 'Adresáre _tuÄným písmom'; LANGskPreferencesDisableDirectoryBracketsCheckBox_Caption = 'NezobrazovaÅ¥ _hranaté závorky v názvoch adresárov'; LANGskPreferencesOctalPermissionsCheckBox_Caption = 'ZobraziÅ¥ _práva Äíselne'; LANGskPreferencesOctalPermissionsCheckBox_Tooltip = 'ZobraziÅ¥ práva súboru/adresára v Äíselnom tvare'; LANGskPreferencesMovement = 'Pohyb v paneloch'; LANGskPreferencesLynxLikeMotionCheckBox_Caption = 'Pohyb v Å¡týle prehliadaÄa _Lynx'; LANGskPreferencesInsertMovesDownCheckBox_Caption = 'In_sert posunie kurzor nižšie'; LANGskPreferencesSpaceMovesDownCheckBox_Caption = '_Medzerník posunie kurzor nižšie'; LANGskPreferencesViewer = 'PrehliadaÄ'; LANGskPreferencesCommandSC = 'Príkaz:'; LANGskPreferencesUseInternalViewer = 'PoužiÅ¥ _interný prehliadaÄ'; LANGskPreferencesEditor = 'Editor'; LANGskPreferencesTerminal = 'Terminál'; LANGskPreferencesExperimentalFeatures = 'Experimentálne funkcie'; LANGskPreferencesExperimentalWarningLabel_Caption = 'Varovanie: Tieto funkcie sú momentálne vo vývoji a nie je zaruÄená ich bezchybná funkÄnosÅ¥. Používajte len na vlastné riziko!'; LANGskPreferencesFocusRefreshCheckBox_Caption = '_VykonaÅ¥ znovunaÄítanie panelov pri vstupe do okna aplikáce'; LANGskPreferencesFocusRefreshCheckBox_Tooltip = 'Táto operácia trvá dlhÅ¡iu dobu v závislosti na poÄte súborov v paneloch'; LANGskPreferencesWMCompatModeCheckBox_Caption = 'Mód _kompatibility s oknovými manažérmy'; LANGskPreferencesWMCompatModeCheckBox_Tooltip = 'Použite v prípade problémov s niektorími oknovými manažérmy (napr. IceWM nevykonáva maximalizáciu okna správne)'; LANGskPreferencesCompatUseLibcSystemCheckBox_Caption = 'PoužiÅ¥ funkciu libc _system() pre spoustenie procesov'; LANGskPreferencesCompatUseLibcSystemCheckBox_Tooltip = 'Použite v prípade problémov so zamrznutím alebo pádmi aplikácie pri spoustení programov'; (*************** STRINGS ADDED TO v0.5.70 **********************************************************************************) LANGskmiSearchCaption2 = '_VyhľadaÅ¥ súbory...'; LANGskmiNoMounterBarCaption = 'Nez_obrazovaÅ¥ panel diskov'; LANGskmiShowOneMounterBarCaption = 'ZobraziÅ¥ _jeden pruh diskov'; LANGskmiShowTwoMounterBarCaption = 'ZobraziÅ¥ _dva pruhy diskov'; LANGskmnuNetworkCaption = 'S_ieÅ¥'; LANGskmiConnectionsCaption = '_Správca pripojení...'; LANGskmiOpenConnectionCaption = '_PripojiÅ¥ sa...'; LANGskmiQuickConnectCaption = '_Rýchle pripojenie...'; LANGskmnuPluginsCaption = '_Moduly'; LANGskmiTestPluginCaption = '_Test modulov...'; LANGskmiMounterSettingsCaption = 'Nastavenia pruhu _diskov...'; LANGskmiColumnsCaption = 'Nastavenia sĺp_cov...'; LANGskmiSavePositionCaption = '_UložiÅ¥ pozíciu'; LANGskmiMountCaption = '_PripojiÅ¥'; LANGskmiUmountCaption = '_OdpojiÅ¥'; LANGskmiEjectCaption = '_Vysunúť'; LANGskmiDuplicateTabCaption = '_OtvoriÅ¥ nový panel'; LANGskmiCloseTabCaption = '_ZatvoriÅ¥ aktuálny panel'; LANGskmiCloseAllTabsCaption = 'ZatvoriÅ¥ _vÅ¡etky panely'; LANGskCannotDetermineDestinationEngine = 'Nemožno urÄiÅ¥ cieľový adresár. Prosím skontrolujte zadanú cestu a skúste to znova.'; LANGskCannotLoadFile = 'Nemožno otvoriÅ¥ súbor ''%s''. Prosím skontrolujte prístupové práva a skúste to znova.'; LANGskMountPointDevice = 'Prípojný bod: %s'#10'Zariadenie: %s'; LANGskMountSC = 'PripojiÅ¥:'; LANGskNoPluginsFound = 'Modul sa nenaÅ¡iel'; LANGskPluginAbout = 'O module...'; LANGskCouldntOpenURI = 'Nepodarilo sa otvoriÅ¥ vzdialené pripojenie. Prosím skontrolujte platnosÅ¥ adresy a prístupové práva.'; LANGskPluginAboutInside = 'Modul: %s'#10#10'%s'#10'%s'; LANGskAreYouSureCloseAllTabs = 'Naozaj chcete zatvoriÅ¥ vÅ¡etky ostatné panely?'; LANGskCouldntOpenURIArchive = 'Nepodarilo sa otvoriÅ¥ archív, pravdepodobne bude poÅ¡kodený. Prosím zkontrolujte súbor a prístupové práva.'; LANGskThereIsNoModuleAvailable = 'Nepodarilo sa nájsÅ¥ potrebný modul pre otvorenie tohto spojenia. Prosím skontrolujte aktívne moduly.'; LANGskIgnoreError = 'Naozaj chcete ignorovaÅ¥ túto chybu? Zdrojový súbor bude zmazaný'; LANGskErrorMount = 'Nastala chyba pri pripájaní zariadenia ''%s'':'#10#10; LANGskErrorUmount = 'Nastala chyba pri odpájaní zariadenia ''%s'':'#10#10; LANGskErrorEject = 'Nastala chyba pri vysúvání zariadenia ''%s'':'#10#10; LANGskMounterPrefs_Caption = 'Nastavenia pruhu diskov'; LANGskMounterPrefs_TitleLabelCaption = 'Nastavenia pruhu diskov'; LANGskMounterPrefs_ListViewFrameCaption = 'Prípojné body'; LANGskMounterPrefs_MountName = 'Názov'; LANGskMounterPrefs_MountPoint = 'Prípojný bod'; LANGskMounterPrefs_Device = 'Zariadenie'; LANGskMounterPrefs_MoveUpButtonTooltip = 'Presunúť vyššie'; LANGskMounterPrefs_MoveDownButtonTooltip = 'Presunúť nižšie'; LANGskMounterPrefs_UseFSTabDefaultsCheckBox = 'PoužiÅ¥ _systémový zoznam prípojných bodov'; LANGskMounterPrefs_UseFSTabDefaultsCheckBoxTooltip = 'Ak je táto možnosÅ¥ aktívna, použije sa zoznam prípojných bodov zo systémového súboru /etc/fstab'; LANGskMounterPrefs_ToggleModeCheckBox = 'StlaÄené tlaÄítka _diskov u pripojených zariadení'; LANGskMounterPrefs_ToggleModeCheckBoxTooltip = 'Ak je táto položka aktívna, zostanú tlaÄítka v paneli stlaÄené v prípade, že je zariadenie pripojené. Kliknutím zariadenie odpojíte, príp. vysuniete'; LANGskMounterPrefs_PropertiesFrameCaption = 'Vlastnosti prípojného bodu'; LANGskMounterPrefs_DisplayTextLabelCaption = '_Názov:'; LANGskMounterPrefs_MountPointLabelCaption = 'Prípojný _bod:'; LANGskMounterPrefs_MountDeviceLabelCaption = '_Zariadenie:'; LANGskMounterPrefs_DeviceTypeLabelCaption = 'T_yp zariadenia:'; LANGskMounterPrefs_miLocalDiskCaption = 'Lokálny disk'; LANGskMounterPrefs_miRemovableCaption = 'Vymeniteľný disk'; LANGskMounterPrefs_miCDCaption = 'CD/DVD jednotka'; LANGskMounterPrefs_miFloppyCaption = 'Disketová mechanika'; LANGskMounterPrefs_miNetworkCaption = 'SieÅ¥ový prostriedok'; LANGskMounterPrefs_MountCommandLabelCaption = 'Príkaz pre _pripojenie:'; LANGskMounterPrefs_UmountCommandLabelCaption = 'Príkaz pre _odpojenie:'; LANGskMounterPrefs_MountCommandEntryTooltip = 'Syntax: použite %dev namiesto zariadenia a %dir pre cestu prípojného bodu. V prípade, že nepoužívate neÅ¡tandardný príkaz pre pripojenie zariadenia, nechajte toto pole nevyplnené.'#10 + 'Upozornenie: nepoužívajte príkazy vyžadujúce vstupy z klávesnice užívateľa, program ich nedokáže obslúžiÅ¥!'#10'Príklad: smbmount %dev %dir -o username=netuser,password=heslo'; LANGskMounterPrefs_UmountCommandEntryTooltip = 'Syntax: použite %dev namiesto zariadenia a %dir pre cestu prípojného bodu. V prípade, že nepoužívate neÅ¡tandardný príkaz pre odpojenie zariadenia, nechajte toto pole nevyplnené.'#10'Príklad: smbumount %dir'; LANGskMounterPrefs_IconLabelCaption = '_Ikona:'; LANGskConnMgr_Caption = 'OtvoriÅ¥ nové spojenie'; LANGskConnMgr_ConnectButton = '_PripojiÅ¥'; LANGskConnMgr_OpenConnection = 'OtvoriÅ¥ nové spojenie'; LANGskConnMgr_NameColumn = 'Názov'; LANGskConnMgr_URIColumn = 'Adresa'; LANGskConnMgr_AddConnectionButtonCaption = 'N_ové spojenie...'; LANGskConnMgr_AddConnectionButtonTooltip = 'VytvoriÅ¥ nové spojenie'; LANGskConnMgr_EditButtonCaption = '_UpraviÅ¥...'; LANGskConnMgr_EditButtonTooltip = 'UpraviÅ¥ vybrané spojenie'; LANGskConnMgr_RemoveButtonCaption = 'O_dstrániÅ¥'; LANGskConnMgr_RemoveButtonTooltip = 'OdstrániÅ¥ vybrané spojenie'; LANGskConnMgr_DoYouWantDelete = 'Naozaj chcete odstrániÅ¥ spojenie ''%s''?'; LANGskConnProp_FTP = 'FTP'; LANGskConnProp_SFTP = 'SFTP (ssh podsystém)'; LANGskConnProp_SMB = 'Zdieľanie v sieti Windows (SMB)'; LANGskConnProp_HTTP = 'WebDAV (HTTP)'; LANGskConnProp_HTTPS = 'ZabezpeÄené WebDAV (HTTPS)'; LANGskConnProp_Other = 'Ostatné (prosím upresnite v adrese)'; LANGskConnProp_Caption = 'Vlastnosti pripojenia'; LANGskConnProp_VFSModule = '_VFS modul:'; LANGskConnProp_URI = '_Adresa (URI):'; LANGskConnProp_URIEntryTooltip = 'Platná adresa URI by mala obsahovaÅ¥ reÅ¥azec typu služby a adresu sieÅ¥ového servera'; LANGskConnProp_DetailedInformations = 'Upresňujúce informácie'; LANGskConnProp_Name = '_Názov:'; LANGskConnProp_Server = 'Serve_r[:port]:'; LANGskConnProp_Username = 'Užíva_teľské meno:'; LANGskConnProp_UserNameEntryTooltip = 'Nevyplňujte, ak ide o anonymný prístup'; LANGskConnProp_Password = '_Heslo:'; LANGskConnProp_TargetDirectory = '_Cieľový adresár:'; LANGskConnProp_ServiceType = 'Typ _služby:'; LANGskConnProp_MaskPassword = 'S_kryÅ¥ heslo'; LANGskConnProp_MenuItemCaption = 'Predvolené (vÅ¡etky dostupné moduly)'; LANGskConnLogin_Caption = 'Prihlásenie'; LANGskConnLogin_Login = 'Prihlásenie'; LANGskConnLogin_ExperimentalWarningLabelCaption = 'Pre prístup k prostriedku %s musíte byÅ¥ prihlásený'; LANGskConnLogin_Username = '_Užívateľské meno:'; LANGskConnLogin_Password = '_Heslo:'; LANGskConnLogin_AnonymousCheckButton = '_Anonymný prístup'; LANGskColumns_Caption = 'Nastavenie sĺpcov hlavného panelu'; LANGskColumns_Title = 'Nastavenie sĺpcov panelu'; LANGskColumns_MoveUpButtonTooltip = 'Presunúť položku vyššie'; LANGskColumns_MoveDownButtonTooltip = 'PÅ™esunout položku nižšie'; LANGskColumns_TitlesLongName = 'Meno'; LANGskColumns_TitlesLongNameExt = 'Meno + typ'; LANGskColumns_TitlesLongExt = 'Typ'; LANGskColumns_TitlesLongSize = 'VeľkosÅ¥'; LANGskColumns_TitlesLongDateTime = 'Dátum zmeny + Äas zmeny'; LANGskColumns_TitlesLongDate = 'Dátum poslednej zmeny'; LANGskColumns_TitlesLongTime = 'ÄŒas poslednej zmeny'; LANGskColumns_TitlesLongUser = 'Užívateľ'; LANGskColumns_TitlesLongGroup = 'Skupina'; LANGskColumns_TitlesLongAttr = 'Atribúty'; LANGskColumns_TitlesShortName = 'Meno'; LANGskColumns_TitlesShortNameExt = 'Meno'; LANGskColumns_TitlesShortExt = 'Typ'; LANGskColumns_TitlesShortSize = 'VeľkosÅ¥'; LANGskColumns_TitlesShortDateTime = 'Dátum'; LANGskColumns_TitlesShortDate = 'Dátum'; LANGskColumns_TitlesShortTime = 'ÄŒas'; LANGskColumns_TitlesShortUser = 'Užívateľ'; LANGskColumns_TitlesShortGroup = 'Skupina'; LANGskColumns_TitlesShortAttr = 'Atrib.'; LANGskTestPlugin_Caption = 'Test VFS modulu'; LANGskTestPlugin_Title = 'Test VFS modulu'; LANGskTestPlugin_ExperimentalWarningLabelCaption = 'Upozornenie: Podystém virtualného souborového systému (VFS) a integrované moduly sú momentálne vo vývoji a môžu obsahovaÅ¥ kritické chyby'; LANGskTestPlugin_Plugin = '_Modul:'; LANGskTestPlugin_Command = '_Adresa:'; LANGskTestPlugin_Username = '_Užívateľ:'; LANGskTestPlugin_Password = '_Heslo:'; LANGskTestPlugin_AnonymousCheckButton = '_Anonymný prístup (bez volania funkcie VFSLogin)'; LANGskTestPlugin_NoPluginsFound = 'Žiadny modul nie je k dispozícii'; LANGskRemoteWait_Caption = 'Prebieha operácia'; LANGskRemoteWait_OperationInProgress = 'Aplikácia práve spracúvava vaÅ¡u požiadavku, poÄkajte prosím...'; LANGskRemoteWait_ItemsFound = 'Nájdených položiek: %d'; LANGskSearch_Bytes = 'bajtov'; LANGskSearch_kB = 'kB'; LANGskSearch_MB = 'MB'; LANGskSearch_days = 'dňoch'; LANGskSearch_weeks = 'týždňoch'; LANGskSearch_months = 'mesiacoch'; LANGskSearch_years = 'rokoch'; LANGskSearch_Caption = 'VyhľadaÅ¥ súbory'; LANGskSearch_General = 'VÅ¡eobecné'; LANGskSearch_Advanced = 'Rozšírené'; LANGskSearch_SearchResults = '_Výsledky hľadaniaí:'; LANGskSearch_SearchFor = '_NájsÅ¥:'; LANGskSearch_FileMaskEntryTooltip = 'Tip: Používajte bodkoÄiarku (";") pre oddelenie viacerých hľadaných výrazov'; LANGskSearch_SearchIn = 'HľadaÅ¥ _v:'; LANGskSearch_SearchArchivesCheckButton = 'PrehľadávaÅ¥ _archívy'; LANGskSearch_FindText = 'NájsÅ¥ _text:'; LANGskSearch_FindTextEntryTooltip = 'Nechajte toto pole nevyplnené, pokiaľ nechcete hľadaÅ¥ súbory podľa obsahujúceho textu'#10'Upozornenie: reÅ¥azce sú v kódovaní UTF-8'; LANGskSearch_CaseSensitiveCheckButton = '_RozliÅ¡ovaÅ¥ velké a malé písmená'; LANGskSearch_StayCurrentFSCheckButton = 'HľadaÅ¥ aj na pripojených _zariadeniach'; LANGskSearch_CaseSensitiveMatchCheckButton = 'RozliÅ¡ovaÅ¥ vel_ké a malé písmená'; LANGskSearch_Size = 'VeľkosÅ¥'; LANGskSearch_Date = 'Dátum'; LANGskSearch_BiggerThan = '_VäÄÅ¡ie ako'; LANGskSearch_SmallerThan = '_MenÅ¡ie ako'; LANGskSearch_ModifiedBetweenRadioButton = '_Zmenené medzi dátumami'; LANGskSearch_NotModifiedAfterRadioButton = '_Nebolo zmenené po dátume'; LANGskSearch_ModifiedLastRadioButton = 'Zmenené v po_sledných'; LANGskSearch_ModifiedNotLastRadionButton = 'Nezmen_ené v posledných'; LANGskSearch_ModifiedBetweenEntry1 = '"Prosím použite tento formát dátumu:" c'; LANGskSearch_ViewButtonCaption = 'PrezeraÅ¥ sú_bor'; LANGskSearch_NewSearchButtonCaption = 'Nové hľa_danie'; LANGskSearch_GoToFileButtonCaption = 'PrejsÅ¥ na s_úbor'; LANGskSearch_FeedToListboxButtonCaption = 'Nap_lniÅ¥ hlavný panel'; LANGskSearch_StatusSC = 'Stav:'; LANGskSearch_Ready = 'Pripravené.'; LANGskSearch_PreparingToSearch = 'Príprava hľadania.'; LANGskSearch_SearchInProgress = 'Prebieha vyhľadávanie:'; LANGskSearch_UserCancelled = 'PreruÅ¡ené užívateľom.'; LANGskSearch_SearchFinished = 'Vyhľadávanie dokonÄené'; LANGskSearch_FilesFound = 'Nájdených %d souborov'; LANGskSearch_And = 'a'; (*************** STRINGS ADDED TO v0.5.82 **********************************************************************************) LANGskCloseOpenConnection = 'Pokúšate sa otvoriÅ¥ druhé spojenie cez ÄalÅ¡ie aktívne spojenie. PokraÄovaním bude pôvodné spojenie zatvorené a nahradené novým.'#10#10'Chcete pokraÄovaÅ¥?'; LANGskDuplicateTabWarning = 'Pokúšate sa otvoriÅ¥ nový panel obsahujúcí otvorené vzdialené spojenie. Táto operácia nemôže byÅ¥ vykonaná, pretože duplikácia spojenia nie je podporovaná. Nový panel bude presmerovaný na lokálny souborový systém.'; LANGskDontShowAgain = '_Nabudúce tento dotaz nezobrazovaÅ¥'; LANGskSwitchOtherPanelWarning = 'Pokúšate sa otvoriÅ¥ adresár vzdialeného spojenia v druhom paneli. Táto operácia nemôže byÅ¥ vykonaná, pretože duplikácia spojenia nie je podporovaná.'; LANGskOpenConnectionsWarning = 'V paneli stále existujú otvorené spojenia. UkonÄením aplikácie budú odpojené.'#10#10'Chcete aplikáciu naozaj ukonÄiÅ¥?'; LANGskmiDisconnect_Caption = 'O_dpojiÅ¥'; LANGskDisconnectButton_Tooltip = 'OdpojiÅ¥ aktuálne spojenie'; LANGskLeaveArchiveButton_Tooltip = 'ZatvoriÅ¥ archív'; LANGskOpenTerminalButton_Tooltip = 'Otvorí nové terminálove okno v aktuálnom adresári'; LANGskOpenTerminalButton_Caption = 'Te_rminál'; LANGskShowTextUIDsCheckBox_Caption = 'ZobraziÅ¥ vlastníka a sk_upinu textovo'; LANGskShowTextUIDsCheckBox_Tooltip = 'PoužiÅ¥ textové vyjadrenie vlastníka a skupiny namiesto Äíselného tvaru (UID/GID)'; (*************** STRINGS ADDED TO v0.5.100 **********************************************************************************) LANGskmiNewTab_Caption = 'Nový _panel'; LANGskFilePopupMenu_Properties = 'Vl_astnosti'; LANGskCommandEntry_Tooltip = 'Použite ''%s'' ako zástupcu pre meno súboru/adresára'; LANGskmiFiles_Caption = 'Iba pre súbory'; (*************** STRINGS ADDED TO v0.6.31 **********************************************************************************) LANGskPasswordButton_Tooltip = 'Archív je zabezpeÄený heslom.'#10'Kliknutím nastavíte heslo.'; LANGskHandleRunFromArchive_Bytes = 'bajtov'; LANGskHandleRunFromArchive_FileTypeDesc_Unknown = '(nie je k dispozícii)'; LANGskHandleRunFromArchive_NotAssociated = '(bez asociácie)'; LANGskHandleRunFromArchive_SelfExecutable = '(spustiteľný)'; LANGskHandleRunFromArchive_CouldntCreateTemporaryDirectory = 'Nepodarilo sa vytvoriÅ¥ adresár "%s" pre doÄasné súbory: %s.'#10#10'Skontrolujte prosím zadanú cestu a operáciu opakujte.'; LANGskFRunFromVFS_Caption = 'Vlastnosti súboru'; LANGskFRunFromVFS_TitleLabel = 'Vlastnosti'; LANGskFRunFromVFS_FileNameLabel = 'Názov súboru:'; LANGskFRunFromVFS_FileTypeLabel = 'Typ súboru:'; LANGskFRunFromVFS_SizeLabel = 'VeľkosÅ¥:'; LANGskFRunFromVFS_PackedSizeLabel = 'Komprimovaná veľkosÅ¥:'; LANGskFRunFromVFS_DateLabel = 'Dátum zmeny:'; LANGskFRunFromVFS_InfoLabel = 'Zobrazenie súborov priamo z archívu nie je možné. Kliknutím na tlaÄítka nižšie sa vami vybrané súbory (resp. celý archív) rozbalia do doÄasného adresára, z ktorého ich je možné jednoducho otvoriÅ¥ v zvolenej aplikácii.' + #10'VÅ¡etky doÄasné súbory budú zmazané pri ukonÄení aplikácie Tux Commander.'; LANGskFRunFromVFS_OpensWithLabel = 'OtvoriÅ¥ v:'; LANGskFRunFromVFS_ExecuteButton = 'E_xtrahovaÅ¥ a otvoriÅ¥'; LANGskFRunFromVFS_ExecuteAllButton = 'ExtrahovaÅ¥ _vÅ¡etko a otvoriÅ¥'; LANGskFSetPassword_Caption = 'Heslo archívu'; LANGskFSetPassword_Label1_Caption = 'Zadajte prosím heslo'; LANGskFSetPassword_Label2_Caption = 'Pre prístup a prácu s obsahom archívu je potrebné zadaÅ¥ heslo'; LANGskFSetPassword_ShowPasswordCheckButton = 'Od_kryÅ¥ heslo'; (*************** STRINGS ADDED TO v0.6.48 **********************************************************************************) LANGskCopyFileNamesToClipboard = '_Copy file names to clipboard'; LANGskCopyFullPathNamesToClipboard = 'Copy _full path names to clipboard'; LANGskCopyPathToClipboard = '_Copy path to clipboard'; LANGskPreferences_DateFormatLabel_Caption = 'Date _format:'; LANGskPreferences_System = 'System'; LANGskPreferences_Custom = 'Custom...'; LANGskPreferences_CustomDateFormatEntry_Tooltip = 'Enter custom date format string.'#10'Please see "man strftime" for syntax reference.'; LANGskPreferences_TimeFormatLabel_Caption = '_Time format:'; LANGskPreferences_CustomTimeFormatEntry_Tooltip = 'Enter custom time format string.'#10'Please see "man strftime" for syntax reference.'; LANGskPreferences_DateTimeFormatLabel_Caption = 'Date/time _order:'; LANGskPreferences_QuickRenameSkipExtCheckBox = 'Select name part only on quick-rename'; LANGskPreferences_QuickRenameSkipExtCheckBox_Tooltip = 'Exclude filename extension from the selection when doing quick-rename'; LANGskPreferences_SortDirectoriesLikeFilesCheckBox = 'Sort directories lik_e files'; LANGskPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip = 'Check this to allow sorting directories along with files. Directories are always first in the list.'#10'Unchecked: directories are always sorted by name.'; LANGskPreferences_QuickSearchLabel_Caption = 'Quick search _keystroke:'; LANGskPreferences_QuickSearchOptionMenu_Tooltip = 'The Ctrl+S/Alt+S and "/" keystrokes are always active, regardless on this setting.'; LANGskPreferences_QuickSearch_Option1 = 'Ctrl+S/Alt+S and "/" only'; LANGskPreferences_QuickSearch_Option2 = 'Ctrl+Alt+letters'; LANGskPreferences_QuickSearch_Option3 = 'Alt+letters'; LANGskPreferences_QuickSearch_Option4 = 'letters directly'; LANGskPreferences_TempPathLabel_Caption = 'Temporary files'; LANGskPreferences_VFSTempPathLabel_Caption = '_VFS temp files:'; LANGskPreferences_VFSTempPathEntry_Tooltip = 'Location of temporary files used by VFS subsystem, e.g. when opening files directly from archives. All temporary files are cleaned on exit.'; (*************** STRINGS ADDED TO v0.6.67 **********************************************************************************) LANGskPreferences_RightClickSelectCheckBox = 'Rig_ht mouse button selection mode'; LANGskPreferences_RightClickSelectCheckBox_Tooltip = 'Use right mouse button to select, like mc.'; LANGskGtkMountOperation_ConnectAnonymously = 'Connect _anonymously'; LANGskGtkMountOperation_ConnectAsUser = 'Connect as u_ser:'; LANGskGtkMountOperation_Username = '_Username:'; LANGskGtkMountOperation_Domain = '_Domain:'; LANGskGtkMountOperation_Password = '_Password:'; LANGskGtkMountOperation_DoNotSavePassword = 'Do no_t save password'; LANGskGtkMountOperation_ForgetPasswordImmediately = 'Forget password _immediately'; LANGskGtkMountOperation_RememberPasswordUntilYouLogout = 'Remember password until you _logout'; LANGskGtkMountOperation_SavePasswordInConnectionManager = '_Save password in Connection Manager'; LANGskGtkMountOperation_RememberForever = 'Remember _forever'; LANGskFSymlink_RelativePath = '_Relative path'; LANGskFConnectionManager_DuplicateButton_Caption = 'D_uplicate...'; LANGskFConnectionManager_DuplicateButton_Tooltip = 'Duplicate selected connection'; LANGskFConnectionManager_DoNotSavePasswordsCheckBox_Label = '_Do not store passwords internally (but still use gnome-keyring)'; LANGskFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip = 'By checking this option on, Tux Commander will never save passwords into its connection list. Due to the GVFS nature, gnome-keyring will still be used to retrieve stored passwords from your desktop session.'; LANGskFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label = 'Do not synchronize passwords to gnome-_keyring'; LANGskFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip = 'Don''t tell gnome-keyring to save any passwords.'; LANGskFConnectionManager_DuplicateMenuItem_Caption = 'D_uplicate...'; LANGskFQuickConnect_Caption = 'Quick connect'; LANGskFQuickConnect_TitleLabel_Caption = 'Quick connect'; LANGskFQuickConnect_ConnectToURILabel_Caption = 'C_onnect to URI:'; LANGskLinkToS = 'Link to %s'; LANGskOpenDirectoryInBackgroundTab = 'Open directory in _background tab'; LANGskTheActiveConnectionHasNotBeenSaved = 'The active connection has not been saved. Do you want to save it to Connection Manager?'#10#10'%s'; LANGskTheArchiveIsEncryptedAndRequiresPassword = 'The archive is encrypted and requires password'; (********************************************************************************************************************************) procedure SetTranslation; begin LANGF2Button_Caption := LANGskF2Button_Caption; LANGF3Button_Caption := LANGskF3Button_Caption; LANGF4Button_Caption := LANGskF4Button_Caption; LANGF5Button_Caption := LANGskF5Button_Caption; LANGF6Button_Caption := LANGskF6Button_Caption; LANGF7Button_Caption := LANGskF7Button_Caption; LANGF8Button_Caption := LANGskF8Button_Caption; LANGmnuFile_Caption := LANGskmnuFile_Caption; LANGmnuMark_Caption := LANGskmnuMark_Caption; LANGmnuCommands_Caption := LANGskmnuCommands_Caption; LANGmnuHelp_Caption := LANGskmnuHelp_Caption; LANGmiExit_Caption := LANGskmiExit_Caption; LANGmiSelectGroup_Caption := LANGskmiSelectGroup_Caption; LANGmiUnselectGroup_Caption := LANGskmiUnselectGroup_Caption; LANGmiSelectAll_Caption := LANGskmiSelectAll_Caption; LANGmiUnselectAll_Caption := LANGskmiUnselectAll_Caption; LANGmiInvertSelection_Caption := LANGskmiInvertSelection_Caption; LANGmiRefresh_Caption := LANGskmiRefresh_Caption; LANGmiAbout_Caption := LANGskmiAbout_Caption; LANGColumn1_Caption := LANGskColumn1_Caption; LANGColumn2_Caption := LANGskColumn2_Caption; LANGColumn3_Caption := LANGskColumn3_Caption; LANGColumn4_Caption := LANGskColumn4_Caption; LANGColumn5_Caption := LANGskColumn5_Caption; LANGExpandSelection := LANGskExpandSelection; LANGShrinkSelection := LANGskShrinkSelection; LANGNoMatchesFound := LANGskNoMatchesFound; LANGNoFilesSelected := LANGskNoFilesSelected; LANGSelectedFilesDirectories := LANGskSelectedFilesDirectories; LANGDirectoryS := LANGskDirectoryS; LANGFileS := LANGskFileS; LANGDoYouReallyWantToDeleteTheS := LANGskDoYouReallyWantToDeleteTheS; LANGDoYouReallyWantToDeleteTheSS := LANGskDoYouReallyWantToDeleteTheSS; LANGCopyFiles := LANGskCopyFiles; LANGMoveRenameFiles := LANGskMoveRenameFiles; LANGCopyDFileDirectoriesTo := LANGskCopyDFileDirectoriesTo; LANGMoveRenameDFileDirectoriesTo := LANGskMoveRenameDFileDirectoriesTo; LANGCopySC := LANGskCopySC; LANGMoveRenameSC := LANGskMoveRenameSC; LANGQuickFind := LANGskQuickFind; LANGAboutString := LANGskAboutString; LANGAboutStringGnome := LANGskAboutStringGnome; LANGDiskStatFmt := LANGskDiskStatFmt; LANGDiskStatVolNameFmt := LANGskDiskStatVolNameFmt; LANGStatusLineFmt := LANGskStatusLineFmt; LANGPanelStrings[False] := LANGskPanelStrings[False]; LANGPanelStrings[True] := LANGskPanelStrings[True]; LANGDIR := LANGskDIR; LANGErrorGettingListingForSPanel := LANGskErrorGettingListingForSPanel; LANGErrorGettingListingForSPanelNoPath := LANGskErrorGettingListingForSPanelNoPath; LANGErrorCreatingNewDirectorySInSPanel := LANGskErrorCreatingNewDirectorySInSPanel; LANGErrorCreatingNewDirectorySInSPanelNoPath := LANGskErrorCreatingNewDirectorySInSPanelNoPath; LANGTheFileDirectory := LANGskTheFileDirectory; LANGCouldNotBeDeleted := LANGskCouldNotBeDeleted; LANGCouldNotBeDeletedS := LANGskCouldNotBeDeletedS; LANGUserCancelled := LANGskUserCancelled; LANGTheDirectorySIsNotEmpty := LANGskTheDirectorySIsNotEmpty; LANGCannotCopyFile := LANGskCannotCopyFile; LANGCopyError := LANGskCopyError; LANGMoveError := LANGskMoveError; LANGOverwriteS := LANGskOverwriteS; LANGWithFileS := LANGskWithFileS; LANGOvewriteSBytesS := LANGskOvewriteSBytesS; LANGTheFile := LANGskTheFile; LANGCopy := LANGskCopy; LANGMove := LANGskMove; LANGTheDirectory := LANGskTheDirectory; LANGTheSymbolicLink := LANGskTheSymbolicLink; LANGCannotMoveFile := LANGskCannotMoveFile; LANGCouldNotBeCreated := LANGskCouldNotBeCreated; LANGCouldNotBeCreatedS := LANGskCouldNotBeCreatedS; LANGFromS := LANGskFromS; LANGToS := LANGskToS; LANGCannotCopyFileToItself := LANGskCannotCopyFileToItself; LANGMemoryAllocationFailed := LANGskMemoryAllocationFailed; LANGCannotOpenSourceFile := LANGskCannotOpenSourceFile; LANGCannotOpenDestinationFile := LANGskCannotOpenDestinationFile; LANGCannotCloseDestinationFile := LANGskCannotCloseDestinationFile; LANGCannotCloseSourceFile := LANGskCannotCloseSourceFile; LANGCannotReadFromSourceFile := LANGskCannotReadFromSourceFile; LANGCannotWriteToDestinationFile := LANGskCannotWriteToDestinationFile; LANGUnknownException := LANGskUnknownException; LANGNoAccess := LANGskNoAccess; LANGUnknownError := LANGskUnknownError; LANGCreateANewDirectory := LANGskCreateANewDirectory; LANGEnterDirectoryName := LANGskEnterDirectoryName; LANGOverwriteQuestion := LANGskOverwriteQuestion; LANGOverwriteButton_Caption := LANGskOverwriteButton_Caption; LANGOverwriteAllButton_Caption := LANGskOverwriteAllButton_Caption; LANGSkipButton_Caption := LANGskSkipButton_Caption; LANGOverwriteAllOlderButton_Caption := LANGskOverwriteAllOlderButton_Caption; LANGSkipAllButton_Caption := LANGskSkipAllButton_Caption; LANGRenameButton_Caption := LANGskRenameButton_Caption; LANGAppendButton_Caption := LANGskAppendButton_Caption; LANGRename := LANGskRename; LANGRenameFile := LANGskRenameFile; LANGIgnoreButton_Caption := LANGskIgnoreButton_Caption; LANGProgress := LANGskProgress; LANGCancel := LANGskCancel; LANGDelete := LANGskDelete; LANGSpecifyFileType := LANGskSpecifyFileType; LANGRemoveDirectory := LANGskRemoveDirectory; LANGDoYouWantToDeleteItWithAllItsFilesAndSubdirectories := LANGskDoYouWantToDeleteItWithAllItsFilesAndSubdirectories; LANGRetry := LANGskRetry; LANGDeleteButton_Caption := LANGskDeleteButton_Caption; LANGAll := LANGskAll; LANGCopyFilesSC := LANGskCopyFilesSC; LANGAppendQuestion := LANGskAppendQuestion; LANGPreparingList := LANGskPreparingList; LANGYouMustSelectAValidFile := LANGskYouMustSelectAValidFile; LANGmiVerifyChecksums := LANGskmiVerifyChecksums; LANGVerifyChecksumsCaption := LANGskVerifyChecksumsCaption; LANGCheckButtonCaptionCheck := LANGskCheckButtonCaptionCheck; LANGCheckButtonCaptionStop := LANGskCheckButtonCaptionStop; LANGFileListTooltip := LANGskFileListTooltip; LANGFilenameColumnCaption := LANGskFilenameColumnCaption; LANGTheFileSYouAreTryingToOpenIsQuiteBig := LANGskTheFileSYouAreTryingToOpenIsQuiteBig; LANGAnErrorOccuredWhileInitializingMemoryBlock := LANGskAnErrorOccuredWhileInitializingMemoryBlock; LANGAnErrorOccuredWhileOpeningFileSS := LANGskAnErrorOccuredWhileOpeningFileSS; LANGAnErrorOccuredWhileReadingFileSS := LANGskAnErrorOccuredWhileReadingFileSS; LANGChecksumNotChecked := LANGskChecksumNotChecked; LANGChecksumChecking := LANGskChecksumChecking; LANGChecksumInterrupted := LANGskChecksumInterrupted; LANGChecksumDOK := LANGskChecksumDOK; LANGmiCreateChecksumsCaption := LANGskmiCreateChecksumsCaption; LANGYouMustSelectAtLeastOneFileToCalculateChecksum := LANGskYouMustSelectAtLeastOneFileToCalculateChecksum; LANGCreateChecksumsCaption := LANGskCreateChecksumsCaption; LANGCCHKSUMPage1Text := LANGskCCHKSUMPage1Text; LANGCCHKSUMPage4Text := LANGskCCHKSUMPage4Text; LANGCCHKSUMPage6Text := LANGskCCHKSUMPage6Text; LANGCCHKSUMPage7Text := LANGskCCHKSUMPage7Text; LANGCCHKSUMPage1Title := LANGskCCHKSUMPage1Title; LANGCCHKSUMPage2Title := LANGskCCHKSUMPage2Title; LANGCCHKSUMPage3Title := LANGskCCHKSUMPage3Title; LANGCCHKSUMPage4Title := LANGskCCHKSUMPage4Title; LANGCCHKSUMPage5Title := LANGskCCHKSUMPage5Title; LANGCCHKSUMPage6Title := LANGskCCHKSUMPage6Title; LANGCCHKSUMPage7Title := LANGskCCHKSUMPage7Title; LANGCCHKSUMSFVFile := LANGskCCHKSUMSFVFile; LANGCCHKSUMMD5sumFile := LANGskCCHKSUMMD5sumFile; LANGCCHKSUMFileName := LANGskCCHKSUMFileName; LANGCCHKSUMCreateSeparateChecksumFiles := LANGskCCHKSUMCreateSeparateChecksumFiles; LANGCCHKSUMNowProcessingFileS := LANGskCCHKSUMNowProcessingFileS; LANGCCHKSUMFinishCaption := LANGskCCHKSUMFinishCaption; LANGCCHKSUMAreYouSureYouWantToAbortTheProcessing := LANGskCCHKSUMAreYouSureYouWantToAbortTheProcessing; LANGCCHKSUMAnErrorOccuredWhileOpeningFileSS := LANGskCCHKSUMAnErrorOccuredWhileOpeningFileSS; LANGCCHKSUMAnErrorOccuredWhileReadingFileSS := LANGskCCHKSUMAnErrorOccuredWhileReadingFileSS; LANGCCHKSUMAnErrorOccuredWhileWritingFileSS := LANGskCCHKSUMAnErrorOccuredWhileWritingFileSS; LANGAnErrorOccuredWhileWritingFileSS := LANGskAnErrorOccuredWhileWritingFileSS; LANGTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt := LANGskTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt; LANGTheTargetFileSCannotBeRemovedS := LANGskTheTargetFileSCannotBeRemovedS; LANGMergeCaption := LANGskMergeCaption; LANGPleaseInsertNextDiskOrGiveDifferentLocation := LANGskPleaseInsertNextDiskOrGiveDifferentLocation; LANGMergeOfSSucceeded := LANGskMergeOfSSucceeded; LANGWarningCreatedFileFailsCRCCheck := LANGskWarningCreatedFileFailsCRCCheck; LANGMergeOfSSucceeded_NoCRCFileAvailable := LANGskMergeOfSSucceeded_NoCRCFileAvailable; LANGMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory := LANGskMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory; LANGMergeSC := LANGskMergeSC; LANGmiSplitFileCaption := LANGskmiSplitFileCaption; LANGmiMergeFilesCaption := LANGskmiMergeFilesCaption; LANGSplitTheFileSToDirectory := LANGskSplitTheFileSToDirectory; LANGSplitSC := LANGskSplitSC; LANGSplitFile := LANGskSplitFile; LANGBytesPerFile := LANGskBytesPerFile; LANGAutomatic := LANGskAutomatic; LANGDeleteFilesOnTargetDisk := LANGskDeleteFilesOnTargetDisk; LANGSplitCaption := LANGskSplitCaption; LANGCannotOpenFileS := LANGskCannotOpenFileS; LANGCannotSplitTheFileToMoreThan999Parts := LANGskCannotSplitTheFileToMoreThan999Parts; LANGThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem := LANGskThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem; LANGThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem := LANGskThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem; LANGAnErrorOccuredWhileOperationS := LANGskAnErrorOccuredWhileOperationS; LANGSplitOfSSucceeded := LANGskSplitOfSSucceeded; LANGSplitOfSFailed := LANGskSplitOfSFailed; LANGmnuShow_Caption := LANGskmnuShow_Caption; LANGmiShowDotFiles_Caption := LANGskmiShowDotFiles_Caption; LANGTheFileYouAreTryingToOpenIsQuiteBig := LANGskTheFileYouAreTryingToOpenIsQuiteBig; LANGCannotExecuteSPleaseCheckTheConfiguration := LANGskCannotExecuteSPleaseCheckTheConfiguration; LANGEdit := LANGskEdit; LANGEnterFilenameToEdit := LANGskEnterFilenameToEdit; LANGmnuSettings_Caption := LANGskmnuSettings_Caption; LANGmiFileTypes_Caption := LANGskmiFileTypes_Caption; LANGThereIsNoApplicationAssociatedWithS := LANGskThereIsNoApplicationAssociatedWithS; LANGErrorExecutingCommand := LANGskErrorExecutingCommand; LANGEditFileTypesCaption := LANGskEditFileTypesCaption; LANGTitleLabel_Caption := LANGskTitleLabel_Caption; LANGExtensionsColumn := LANGskExtensionsColumn; LANGDescriptionColumn := LANGskDescriptionColumn; LANGFileTypesList := LANGskFileTypesList; LANGActionName := LANGskActionName; LANGCommand := LANGskCommand; LANGSetDefaultActionButton_Caption := LANGskSetDefaultActionButton_Caption; LANGRunInTerminalCheckBox_Caption := LANGskRunInTerminalCheckBox_Caption; LANGAutodetectCheckBox_Caption := LANGskAutodetectCheckBox_Caption; LANGBrowseButton_Caption := LANGskBrowseButton_Caption; LANGCommandLabel_Caption := LANGskCommandLabel_Caption; LANGDescriptionLabel_Caption := LANGskDescriptionLabel_Caption; LANGFNameExtLabel_Caption := LANGskFNameExtLabel_Caption; LANGNotebookPageExtensions := LANGskNotebookPageExtensions; LANGNotebookPageActions := LANGskNotebookPageActions; LANGDefault := LANGskDefault; LANGCannotSaveFileTypeAssociationsBecauseOtherProcess := LANGskCannotSaveFileTypeAssociationsBecauseOtherProcess; LANGDefaultColor := LANGskDefaultColor; LANGIcon := LANGskIcon; LANGBrowseForIcon := LANGskBrowseForIcon; LANGSelectFileTypeColor := LANGskSelectFileTypeColor; LANGColor := LANGskColor; LANGmiChangePermissions_Caption := LANGskmiChangePermissions_Caption; LANGmiChangeOwner_Caption := LANGskmiChangeOwner_Caption; LANGmiCreateSymlink_Caption := LANGskmiCreateSymlink_Caption; LANGmiEditSymlink_Caption := LANGskmiEditSymlink_Caption; LANGChmodProgress := LANGskChmodProgress; LANGChownProgress := LANGskChownProgress; LANGYouMustSelectAValidSymbolicLink := LANGskYouMustSelectAValidSymbolicLink; LANGPopupRunS := LANGskPopupRunS; LANGPopupOpenS := LANGskPopupOpenS; LANGPopupGoUp := LANGskPopupGoUp; LANGPopupOpenWithS := LANGskPopupOpenWithS; LANGPopupDefault := LANGskPopupDefault; LANGPopupOpenWith := LANGskPopupOpenWith; LANGPopupViewFile := LANGskPopupViewFile; LANGPopupEditFile := LANGskPopupEditFile; LANGPopupMakeSymlink := LANGskPopupMakeSymlink; LANGPopupRename := LANGskPopupRename; LANGPopupDelete := LANGskPopupDelete; LANGDialogChangePermissions := LANGskDialogChangePermissions; LANGCouldNotBeChmoddedS := LANGskCouldNotBeChmoddedS; LANGDialogChangeOwner := LANGskDialogChangeOwner; LANGCouldNotBeChownedS := LANGskCouldNotBeChownedS; LANGDialogMakeSymlink := LANGskDialogMakeSymlink; LANGDialogEditSymlink := LANGskDialogEditSymlink; LANGFEditSymlink_Caption := LANGskFEditSymlink_Caption; LANGFEditSymlink_SymbolicLinkFilename := LANGskFEditSymlink_SymbolicLinkFilename; LANGFEditSymlink_SymbolicLinkPointsTo := LANGskFEditSymlink_SymbolicLinkPointsTo; LANGFChmod_Caption := LANGskFChmod_Caption; LANGFChmod_PermissionFrame := LANGskFChmod_PermissionFrame; LANGFChmod_FileFrame := LANGskFChmod_FileFrame; LANGFChmod_ApplyRecursivelyFor := LANGskFChmod_ApplyRecursivelyFor; LANGFChmod_miAllFiles := LANGskFChmod_miAllFiles; LANGFChmod_miDirectories := LANGskFChmod_miDirectories; LANGFChmod_OctalLabel := LANGskFChmod_OctalLabel; LANGFChmod_SUID := LANGskFChmod_SUID; LANGFChmod_SGID := LANGskFChmod_SGID; LANGFChmod_Sticky := LANGskFChmod_Sticky; LANGFChmod_RUSR := LANGskFChmod_RUSR; LANGFChmod_WUSR := LANGskFChmod_WUSR; LANGFChmod_XUSR := LANGskFChmod_XUSR; LANGFChmod_RGRP := LANGskFChmod_RGRP; LANGFChmod_WGRP := LANGskFChmod_WGRP; LANGFChmod_XGRP := LANGskFChmod_XGRP; LANGFChmod_ROTH := LANGskFChmod_ROTH; LANGFChmod_WOTH := LANGskFChmod_WOTH; LANGFChmod_XOTH := LANGskFChmod_XOTH; LANGFChmod_TextLabel := LANGskFChmod_TextLabel; LANGFChmod_FileLabel := LANGskFChmod_FileLabel; LANGFChown_Caption := LANGskFChown_Caption; LANGFChown_OwnerFrame := LANGskFChown_OwnerFrame; LANGFChown_GroupFrame := LANGskFChown_GroupFrame; LANGFChown_FileFrame := LANGskFChown_FileFrame; LANGFChown_ApplyRecursively := LANGskFChown_ApplyRecursively; LANGFSymlink_Caption := LANGskFSymlink_Caption; LANGFSymlink_ExistingFilename := LANGskFSymlink_ExistingFilename; LANGFSymlink_SymlinkFilename := LANGskFSymlink_SymlinkFilename; LANGmnuBookmarks_Caption := LANGskmnuBookmarks_Caption; LANGmiAddBookmark_Caption := LANGskmiAddBookmark_Caption; LANGmiEditBookmarks_Caption := LANGskmiEditBookmarks_Caption; LANGBookmarkPopupDelete_Caption := LANGskBookmarkPopupDelete_Caption; LANGmiPreferences_Caption := LANGskmiPreferences_Caption; LANGTheCurrentDirectoryAlreadyExistsInTheBookmarksList := LANGskTheCurrentDirectoryAlreadyExistsInTheBookmarksList; LANGSomeOtherInstanceChanged := LANGskSomeOtherInstanceChanged; LANGPreferences_Caption := LANGskPreferences_Caption; LANGPreferences_TitleLabel_Caption := LANGskPreferences_TitleLabel_Caption; LANGPreferences_GeneralPage := LANGskPreferences_GeneralPage; LANGPreferences_FontsPage := LANGskPreferences_FontsPage; LANGPreferences_ColorsPage := LANGskPreferences_ColorsPage; LANGPreferences_RowHeight := LANGskPreferences_RowHeight; LANGPreferences_NumHistoryItems := LANGskPreferences_NumHistoryItems; LANGPreferences_Default := LANGskPreferences_Default; LANGPreferences_ClearReadonlyAttribute := LANGskPreferences_ClearReadonlyAttribute; LANGPreferences_DisableMouseRenaming := LANGskPreferences_DisableMouseRenaming; LANGPreferences_ShowFiletypeIconsInList := LANGskPreferences_ShowFiletypeIconsInList; LANGPreferences_ExternalAppsLabel := LANGskPreferences_ExternalAppsLabel; LANGPreferences_Viewer := LANGskPreferences_Viewer; LANGPreferences_Editor := LANGskPreferences_Editor; LANGPreferences_Terminal := LANGskPreferences_Terminal; LANGPreferences_ListFont := LANGskPreferences_ListFont; LANGPreferences_Change := LANGskPreferences_Change; LANGPreferences_UseDefaultFont := LANGskPreferences_UseDefaultFont; LANGPreferences_Foreground := LANGskPreferences_Foreground; LANGPreferences_Background := LANGskPreferences_Background; LANGPreferences_NormalItem := LANGskPreferences_NormalItem; LANGPreferences_SetToDefaultToUseGTKThemeColors := LANGskPreferences_SetToDefaultToUseGTKThemeColors; LANGPreferences_Cursor := LANGskPreferences_Cursor; LANGPreferences_InactiveItem := LANGskPreferences_InactiveItem; LANGPreferences_SelectedItem := LANGskPreferences_SelectedItem; LANGPreferences_LinkItem := LANGskPreferences_LinkItem; LANGPreferences_LinkItemHint := LANGskPreferences_LinkItemHint; LANGPreferences_DotFileItem := LANGskPreferences_DotFileItem; LANGPreferences_DotFileItemHint := LANGskPreferences_DotFileItemHint; LANGPreferences_BrowseForApplication := LANGskPreferences_BrowseForApplication; LANGPreferences_DefaultS := LANGskPreferences_DefaultS; LANGPreferences_SelectFont := LANGskPreferences_SelectFont; LANGBookmarkButton_Tooltip := LANGskBookmarkButton_Tooltip; LANGUpButton_Tooltip := LANGskUpButton_Tooltip; LANGRootButton_Tooltip := LANGskRootButton_Tooltip; LANGHomeButton_Tooltip := LANGskHomeButton_Tooltip; LANGLeftEqualButton_Tooltip := LANGskLeftEqualButton_Tooltip; LANGRightEqualButton_Tooltip := LANGskRightEqualButton_Tooltip; LANGmiShowDirectorySizes_Caption := LANGskmiShowDirectorySizes_Caption; LANGmiTargetSource_Caption := LANGskmiTargetSource_Caption; LANGFileTypeDirectory := LANGskFileTypeDirectory; LANGFileTypeFile := LANGskFileTypeFile; LANGFileTypeMetafile := LANGskFileTypeMetafile; LANGPreferencesPanelsPage := LANGskPreferencesPanelsPage; LANGPreferencesApplicationsPage := LANGskPreferencesApplicationsPage; LANGPreferencesExperimentalPage := LANGskPreferencesExperimentalPage; LANGPreferencesSelectAllDirectoriesCheckBox_Caption := LANGskPreferencesSelectAllDirectoriesCheckBox_Caption; LANGPreferencesNewStyleAltOCheckBox_Caption := LANGskPreferencesNewStyleAltOCheckBox_Caption; LANGPreferencesNewStyleAltOCheckBox_Tooltip := LANGskPreferencesNewStyleAltOCheckBox_Tooltip; LANGPreferencesShowFuncButtonsCheckBox_Caption := LANGskPreferencesShowFuncButtonsCheckBox_Caption; LANGPreferencesSizeFormatLabel_Caption := LANGskPreferencesSizeFormatLabel_Caption; LANGPreferencesmiSizeFormat1 := LANGskPreferencesmiSizeFormat1; LANGPreferencesmiSizeFormat6 := LANGskPreferencesmiSizeFormat6; LANGPreferencesAutodetectXApp := LANGskPreferencesAutodetectXApp; LANGPreferencesAlwaysRunInTerminal := LANGskPreferencesAlwaysRunInTerminal; LANGPreferencesNeverRunInTerminal := LANGskPreferencesNeverRunInTerminal; LANGPreferencesCmdLineBehaviourLabel_Caption := LANGskPreferencesCmdLineBehaviourLabel_Caption; LANGPreferencesFeatures := LANGskPreferencesFeatures; LANGPreferencesDisableMouseRename_Tooltip := LANGskPreferencesDisableMouseRename_Tooltip; LANGPreferencesDisableFileTipsCheckBox_Caption := LANGskPreferencesDisableFileTipsCheckBox_Caption; LANGPreferencesDisableFileTipsCheckBox_Tooltip := LANGskPreferencesDisableFileTipsCheckBox_Tooltip; LANGPreferencesShow := LANGskPreferencesShow; LANGPreferencesDirsInBoldCheckBox_Caption := LANGskPreferencesDirsInBoldCheckBox_Caption; LANGPreferencesDisableDirectoryBracketsCheckBox_Caption := LANGskPreferencesDisableDirectoryBracketsCheckBox_Caption; LANGPreferencesOctalPermissionsCheckBox_Caption := LANGskPreferencesOctalPermissionsCheckBox_Caption; LANGPreferencesOctalPermissionsCheckBox_Tooltip := LANGskPreferencesOctalPermissionsCheckBox_Tooltip; LANGPreferencesMovement := LANGskPreferencesMovement; LANGPreferencesLynxLikeMotionCheckBox_Caption := LANGskPreferencesLynxLikeMotionCheckBox_Caption; LANGPreferencesInsertMovesDownCheckBox_Caption := LANGskPreferencesInsertMovesDownCheckBox_Caption; LANGPreferencesSpaceMovesDownCheckBox_Caption := LANGskPreferencesSpaceMovesDownCheckBox_Caption; LANGPreferencesViewer := LANGskPreferencesViewer; LANGPreferencesCommandSC := LANGskPreferencesCommandSC; LANGPreferencesUseInternalViewer := LANGskPreferencesUseInternalViewer; LANGPreferencesEditor := LANGskPreferencesEditor; LANGPreferencesTerminal := LANGskPreferencesTerminal; LANGPreferencesExperimentalFeatures := LANGskPreferencesExperimentalFeatures; LANGPreferencesExperimentalWarningLabel_Caption := LANGskPreferencesExperimentalWarningLabel_Caption; LANGPreferencesFocusRefreshCheckBox_Caption := LANGskPreferencesFocusRefreshCheckBox_Caption; LANGPreferencesFocusRefreshCheckBox_Tooltip := LANGskPreferencesFocusRefreshCheckBox_Tooltip; LANGPreferencesWMCompatModeCheckBox_Caption := LANGskPreferencesWMCompatModeCheckBox_Caption; LANGPreferencesWMCompatModeCheckBox_Tooltip := LANGskPreferencesWMCompatModeCheckBox_Tooltip; LANGPreferencesCompatUseLibcSystemCheckBox_Caption := LANGskPreferencesCompatUseLibcSystemCheckBox_Caption; LANGPreferencesCompatUseLibcSystemCheckBox_Tooltip := LANGskPreferencesCompatUseLibcSystemCheckBox_Tooltip; LANGmiSearchCaption2 := LANGskmiSearchCaption2; LANGmiNoMounterBarCaption := LANGskmiNoMounterBarCaption; LANGmiShowOneMounterBarCaption := LANGskmiShowOneMounterBarCaption; LANGmiShowTwoMounterBarCaption := LANGskmiShowTwoMounterBarCaption; LANGmnuNetworkCaption := LANGskmnuNetworkCaption; LANGmiConnectionsCaption := LANGskmiConnectionsCaption; LANGmiOpenConnectionCaption := LANGskmiOpenConnectionCaption; LANGmiQuickConnectCaption := LANGskmiQuickConnectCaption; LANGmnuPluginsCaption := LANGskmnuPluginsCaption; LANGmiTestPluginCaption := LANGskmiTestPluginCaption; LANGmiMounterSettingsCaption := LANGskmiMounterSettingsCaption; LANGmiColumnsCaption := LANGskmiColumnsCaption; LANGmiSavePositionCaption := LANGskmiSavePositionCaption; LANGmiMountCaption := LANGskmiMountCaption; LANGmiUmountCaption := LANGskmiUmountCaption; LANGmiEjectCaption := LANGskmiEjectCaption; LANGmiDuplicateTabCaption := LANGskmiDuplicateTabCaption; LANGmiCloseTabCaption := LANGskmiCloseTabCaption; LANGmiCloseAllTabsCaption := LANGskmiCloseAllTabsCaption; LANGCannotDetermineDestinationEngine := LANGskCannotDetermineDestinationEngine; LANGCannotLoadFile := LANGskCannotLoadFile; LANGMountPointDevice := LANGskMountPointDevice; LANGMountSC := LANGskMountSC; LANGNoPluginsFound := LANGskNoPluginsFound; LANGPluginAbout := LANGskPluginAbout; LANGCouldntOpenURI := LANGskCouldntOpenURI; LANGPluginAboutInside := LANGskPluginAboutInside; LANGAreYouSureCloseAllTabs := LANGskAreYouSureCloseAllTabs; LANGCouldntOpenURIArchive := LANGskCouldntOpenURIArchive; LANGThereIsNoModuleAvailable := LANGskThereIsNoModuleAvailable; LANGIgnoreError := LANGskIgnoreError; LANGErrorMount := LANGskErrorMount; LANGErrorUmount := LANGskErrorUmount; LANGErrorEject := LANGskErrorEject; LANGMounterPrefs_Caption := LANGskMounterPrefs_Caption; LANGMounterPrefs_TitleLabelCaption := LANGskMounterPrefs_TitleLabelCaption; LANGMounterPrefs_ListViewFrameCaption := LANGskMounterPrefs_ListViewFrameCaption; LANGMounterPrefs_MountName := LANGskMounterPrefs_MountName; LANGMounterPrefs_MountPoint := LANGskMounterPrefs_MountPoint; LANGMounterPrefs_Device := LANGskMounterPrefs_Device; LANGMounterPrefs_MoveUpButtonTooltip := LANGskMounterPrefs_MoveUpButtonTooltip; LANGMounterPrefs_MoveDownButtonTooltip := LANGskMounterPrefs_MoveDownButtonTooltip; LANGMounterPrefs_UseFSTabDefaultsCheckBox := LANGskMounterPrefs_UseFSTabDefaultsCheckBox; LANGMounterPrefs_UseFSTabDefaultsCheckBoxTooltip := LANGskMounterPrefs_UseFSTabDefaultsCheckBoxTooltip; LANGMounterPrefs_ToggleModeCheckBox := LANGskMounterPrefs_ToggleModeCheckBox; LANGMounterPrefs_ToggleModeCheckBoxTooltip := LANGskMounterPrefs_ToggleModeCheckBoxTooltip; LANGMounterPrefs_PropertiesFrameCaption := LANGskMounterPrefs_PropertiesFrameCaption; LANGMounterPrefs_DisplayTextLabelCaption := LANGskMounterPrefs_DisplayTextLabelCaption; LANGMounterPrefs_MountPointLabelCaption := LANGskMounterPrefs_MountPointLabelCaption; LANGMounterPrefs_MountDeviceLabelCaption := LANGskMounterPrefs_MountDeviceLabelCaption; LANGMounterPrefs_DeviceTypeLabelCaption := LANGskMounterPrefs_DeviceTypeLabelCaption; LANGMounterPrefs_miLocalDiskCaption := LANGskMounterPrefs_miLocalDiskCaption; LANGMounterPrefs_miRemovableCaption := LANGskMounterPrefs_miRemovableCaption; LANGMounterPrefs_miCDCaption := LANGskMounterPrefs_miCDCaption; LANGMounterPrefs_miFloppyCaption := LANGskMounterPrefs_miFloppyCaption; LANGMounterPrefs_miNetworkCaption := LANGskMounterPrefs_miNetworkCaption; LANGMounterPrefs_MountCommandLabelCaption := LANGskMounterPrefs_MountCommandLabelCaption; LANGMounterPrefs_UmountCommandLabelCaption := LANGskMounterPrefs_UmountCommandLabelCaption; LANGMounterPrefs_MountCommandEntryTooltip := LANGskMounterPrefs_MountCommandEntryTooltip; LANGMounterPrefs_UmountCommandEntryTooltip := LANGskMounterPrefs_UmountCommandEntryTooltip; LANGMounterPrefs_IconLabelCaption := LANGskMounterPrefs_IconLabelCaption; LANGConnMgr_Caption := LANGskConnMgr_Caption; LANGConnMgr_ConnectButton := LANGskConnMgr_ConnectButton; LANGConnMgr_OpenConnection := LANGskConnMgr_OpenConnection; LANGConnMgr_NameColumn := LANGskConnMgr_NameColumn; LANGConnMgr_URIColumn := LANGskConnMgr_URIColumn; LANGConnMgr_AddConnectionButtonCaption := LANGskConnMgr_AddConnectionButtonCaption; LANGConnMgr_AddConnectionButtonTooltip := LANGskConnMgr_AddConnectionButtonTooltip; LANGConnMgr_EditButtonCaption := LANGskConnMgr_EditButtonCaption; LANGConnMgr_EditButtonTooltip := LANGskConnMgr_EditButtonTooltip; LANGConnMgr_RemoveButtonCaption := LANGskConnMgr_RemoveButtonCaption; LANGConnMgr_RemoveButtonTooltip := LANGskConnMgr_RemoveButtonTooltip; LANGConnMgr_DoYouWantDelete := LANGskConnMgr_DoYouWantDelete; LANGConnProp_FTP := LANGskConnProp_FTP; LANGConnProp_SFTP := LANGskConnProp_SFTP; LANGConnProp_SMB := LANGskConnProp_SMB; LANGConnProp_HTTP := LANGskConnProp_HTTP; LANGConnProp_HTTPS := LANGskConnProp_HTTPS; LANGConnProp_Other := LANGskConnProp_Other; LANGConnProp_Caption := LANGskConnProp_Caption; LANGConnProp_VFSModule := LANGskConnProp_VFSModule; LANGConnProp_URI := LANGskConnProp_URI; LANGConnProp_URIEntryTooltip := LANGskConnProp_URIEntryTooltip; LANGConnProp_DetailedInformations := LANGskConnProp_DetailedInformations; LANGConnProp_Name := LANGskConnProp_Name; LANGConnProp_Server := LANGskConnProp_Server; LANGConnProp_Username := LANGskConnProp_Username; LANGConnProp_UserNameEntryTooltip := LANGskConnProp_UserNameEntryTooltip; LANGConnProp_Password := LANGskConnProp_Password; LANGConnProp_TargetDirectory := LANGskConnProp_TargetDirectory; LANGConnProp_ServiceType := LANGskConnProp_ServiceType; LANGConnProp_MaskPassword := LANGskConnProp_MaskPassword; LANGConnProp_MenuItemCaption := LANGskConnProp_MenuItemCaption; LANGConnLogin_Caption := LANGskConnLogin_Caption; LANGConnLogin_Login := LANGskConnLogin_Login; LANGConnLogin_ExperimentalWarningLabelCaption := LANGskConnLogin_ExperimentalWarningLabelCaption; LANGConnLogin_Username := LANGskConnLogin_Username; LANGConnLogin_Password := LANGskConnLogin_Password; LANGConnLogin_AnonymousCheckButton := LANGskConnLogin_AnonymousCheckButton; LANGColumns_Caption := LANGskColumns_Caption; LANGColumns_Title := LANGskColumns_Title; LANGColumns_MoveUpButtonTooltip := LANGskColumns_MoveUpButtonTooltip; LANGColumns_MoveDownButtonTooltip := LANGskColumns_MoveDownButtonTooltip; LANGColumns_TitlesLongName := LANGskColumns_TitlesLongName; LANGColumns_TitlesLongNameExt := LANGskColumns_TitlesLongNameExt; LANGColumns_TitlesLongExt := LANGskColumns_TitlesLongExt; LANGColumns_TitlesLongSize := LANGskColumns_TitlesLongSize; LANGColumns_TitlesLongDateTime := LANGskColumns_TitlesLongDateTime; LANGColumns_TitlesLongDate := LANGskColumns_TitlesLongDate; LANGColumns_TitlesLongTime := LANGskColumns_TitlesLongTime; LANGColumns_TitlesLongUser := LANGskColumns_TitlesLongUser; LANGColumns_TitlesLongGroup := LANGskColumns_TitlesLongGroup; LANGColumns_TitlesLongAttr := LANGskColumns_TitlesLongAttr; LANGColumns_TitlesShortName := LANGskColumns_TitlesShortName; LANGColumns_TitlesShortNameExt := LANGskColumns_TitlesShortNameExt; LANGColumns_TitlesShortExt := LANGskColumns_TitlesShortExt; LANGColumns_TitlesShortSize := LANGskColumns_TitlesShortSize; LANGColumns_TitlesShortDateTime := LANGskColumns_TitlesShortDateTime; LANGColumns_TitlesShortDate := LANGskColumns_TitlesShortDate; LANGColumns_TitlesShortTime := LANGskColumns_TitlesShortTime; LANGColumns_TitlesShortUser := LANGskColumns_TitlesShortUser; LANGColumns_TitlesShortGroup := LANGskColumns_TitlesShortGroup; LANGColumns_TitlesShortAttr := LANGskColumns_TitlesShortAttr; LANGTestPlugin_Caption := LANGskTestPlugin_Caption; LANGTestPlugin_Title := LANGskTestPlugin_Title; LANGTestPlugin_ExperimentalWarningLabelCaption := LANGskTestPlugin_ExperimentalWarningLabelCaption; LANGTestPlugin_Plugin := LANGskTestPlugin_Plugin; LANGTestPlugin_Command := LANGskTestPlugin_Command; LANGTestPlugin_Username := LANGskTestPlugin_Username; LANGTestPlugin_Password := LANGskTestPlugin_Password; LANGTestPlugin_AnonymousCheckButton := LANGskTestPlugin_AnonymousCheckButton; LANGTestPlugin_NoPluginsFound := LANGskTestPlugin_NoPluginsFound; LANGRemoteWait_Caption := LANGskRemoteWait_Caption; LANGRemoteWait_OperationInProgress := LANGskRemoteWait_OperationInProgress; LANGRemoteWait_ItemsFound := LANGskRemoteWait_ItemsFound; LANGSearch_Bytes := LANGskSearch_Bytes; LANGSearch_kB := LANGskSearch_kB; LANGSearch_MB := LANGskSearch_MB; LANGSearch_days := LANGskSearch_days; LANGSearch_weeks := LANGskSearch_weeks; LANGSearch_months := LANGskSearch_months; LANGSearch_years := LANGskSearch_years; LANGSearch_Caption := LANGskSearch_Caption; LANGSearch_General := LANGskSearch_General; LANGSearch_Advanced := LANGskSearch_Advanced; LANGSearch_SearchResults := LANGskSearch_SearchResults; LANGSearch_SearchFor := LANGskSearch_SearchFor; LANGSearch_FileMaskEntryTooltip := LANGskSearch_FileMaskEntryTooltip; LANGSearch_SearchIn := LANGskSearch_SearchIn; LANGSearch_SearchArchivesCheckButton := LANGskSearch_SearchArchivesCheckButton; LANGSearch_FindText := LANGskSearch_FindText; LANGSearch_FindTextEntryTooltip := LANGskSearch_FindTextEntryTooltip; LANGSearch_CaseSensitiveCheckButton := LANGskSearch_CaseSensitiveCheckButton; LANGSearch_StayCurrentFSCheckButton := LANGskSearch_StayCurrentFSCheckButton; LANGSearch_CaseSensitiveMatchCheckButton := LANGskSearch_CaseSensitiveMatchCheckButton; LANGSearch_Size := LANGskSearch_Size; LANGSearch_Date := LANGskSearch_Date; LANGSearch_BiggerThan := LANGskSearch_BiggerThan; LANGSearch_SmallerThan := LANGskSearch_SmallerThan; LANGSearch_ModifiedBetweenRadioButton := LANGskSearch_ModifiedBetweenRadioButton; LANGSearch_NotModifiedAfterRadioButton := LANGskSearch_NotModifiedAfterRadioButton; LANGSearch_ModifiedLastRadioButton := LANGskSearch_ModifiedLastRadioButton; LANGSearch_ModifiedNotLastRadionButton := LANGskSearch_ModifiedNotLastRadionButton; LANGSearch_ModifiedBetweenEntry1 := LANGskSearch_ModifiedBetweenEntry1; LANGSearch_ViewButtonCaption := LANGskSearch_ViewButtonCaption; LANGSearch_NewSearchButtonCaption := LANGskSearch_NewSearchButtonCaption; LANGSearch_GoToFileButtonCaption := LANGskSearch_GoToFileButtonCaption; LANGSearch_FeedToListboxButtonCaption := LANGskSearch_FeedToListboxButtonCaption; LANGSearch_StatusSC := LANGskSearch_StatusSC; LANGSearch_Ready := LANGskSearch_Ready; LANGSearch_PreparingToSearch := LANGskSearch_PreparingToSearch; LANGSearch_SearchInProgress := LANGskSearch_SearchInProgress; LANGSearch_UserCancelled := LANGskSearch_UserCancelled; LANGSearch_SearchFinished := LANGskSearch_SearchFinished; LANGSearch_FilesFound := LANGskSearch_FilesFound; LANGSearch_And := LANGskSearch_And; LANGCloseOpenConnection := LANGskCloseOpenConnection; LANGDuplicateTabWarning := LANGskDuplicateTabWarning; LANGDontShowAgain := LANGskDontShowAgain; LANGSwitchOtherPanelWarning := LANGskSwitchOtherPanelWarning; LANGOpenConnectionsWarning := LANGskOpenConnectionsWarning; LANGmiDisconnect_Caption := LANGskmiDisconnect_Caption; LANGDisconnectButton_Tooltip := LANGskDisconnectButton_Tooltip; LANGLeaveArchiveButton_Tooltip := LANGskLeaveArchiveButton_Tooltip; LANGOpenTerminalButton_Tooltip := LANGskOpenTerminalButton_Tooltip; LANGOpenTerminalButton_Caption := LANGskOpenTerminalButton_Caption; LANGShowTextUIDsCheckBox_Caption := LANGskShowTextUIDsCheckBox_Caption; LANGShowTextUIDsCheckBox_Tooltip := LANGskShowTextUIDsCheckBox_Tooltip; LANGmiNewTab_Caption := LANGskmiNewTab_Caption; LANGFilePopupMenu_Properties := LANGskFilePopupMenu_Properties; LANGCommandEntry_Tooltip := LANGskCommandEntry_Tooltip; LANGmiFiles_Caption := LANGskmiFiles_Caption; LANGPasswordButton_Tooltip := LANGskPasswordButton_Tooltip; LANGHandleRunFromArchive_Bytes := LANGskHandleRunFromArchive_Bytes; LANGHandleRunFromArchive_FileTypeDesc_Unknown := LANGskHandleRunFromArchive_FileTypeDesc_Unknown; LANGHandleRunFromArchive_NotAssociated := LANGskHandleRunFromArchive_NotAssociated; LANGHandleRunFromArchive_SelfExecutable := LANGskHandleRunFromArchive_SelfExecutable; LANGHandleRunFromArchive_CouldntCreateTemporaryDirectory := LANGskHandleRunFromArchive_CouldntCreateTemporaryDirectory; LANGFRunFromVFS_Caption := LANGskFRunFromVFS_Caption; LANGFRunFromVFS_TitleLabel := LANGskFRunFromVFS_TitleLabel; LANGFRunFromVFS_FileNameLabel := LANGskFRunFromVFS_FileNameLabel; LANGFRunFromVFS_FileTypeLabel := LANGskFRunFromVFS_FileTypeLabel; LANGFRunFromVFS_SizeLabel := LANGskFRunFromVFS_SizeLabel; LANGFRunFromVFS_PackedSizeLabel := LANGskFRunFromVFS_PackedSizeLabel; LANGFRunFromVFS_DateLabel := LANGskFRunFromVFS_DateLabel; LANGFRunFromVFS_InfoLabel := LANGskFRunFromVFS_InfoLabel; LANGFRunFromVFS_OpensWithLabel := LANGskFRunFromVFS_OpensWithLabel; LANGFRunFromVFS_ExecuteButton := LANGskFRunFromVFS_ExecuteButton; LANGFRunFromVFS_ExecuteAllButton := LANGskFRunFromVFS_ExecuteAllButton; LANGFSetPassword_Caption := LANGskFSetPassword_Caption; LANGFSetPassword_Label1_Caption := LANGskFSetPassword_Label1_Caption; LANGFSetPassword_Label2_Caption := LANGskFSetPassword_Label2_Caption; LANGFSetPassword_ShowPasswordCheckButton := LANGskFSetPassword_ShowPasswordCheckButton; LANGCopyFileNamesToClipboard := LANGskCopyFileNamesToClipboard; LANGCopyFullPathNamesToClipboard := LANGskCopyFullPathNamesToClipboard; LANGCopyPathToClipboard := LANGskCopyPathToClipboard; LANGPreferences_DateFormatLabel_Caption := LANGskPreferences_DateFormatLabel_Caption; LANGPreferences_System := LANGskPreferences_System; LANGPreferences_Custom := LANGskPreferences_Custom; LANGPreferences_CustomDateFormatEntry_Tooltip := LANGskPreferences_CustomDateFormatEntry_Tooltip; LANGPreferences_TimeFormatLabel_Caption := LANGskPreferences_TimeFormatLabel_Caption; LANGPreferences_CustomTimeFormatEntry_Tooltip := LANGskPreferences_CustomTimeFormatEntry_Tooltip; LANGPreferences_DateTimeFormatLabel_Caption := LANGskPreferences_DateTimeFormatLabel_Caption; LANGPreferences_QuickRenameSkipExtCheckBox := LANGskPreferences_QuickRenameSkipExtCheckBox; LANGPreferences_QuickRenameSkipExtCheckBox_Tooltip := LANGskPreferences_QuickRenameSkipExtCheckBox_Tooltip; LANGPreferences_SortDirectoriesLikeFilesCheckBox := LANGskPreferences_SortDirectoriesLikeFilesCheckBox; LANGPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip := LANGskPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip; LANGPreferences_QuickSearchLabel_Caption := LANGskPreferences_QuickSearchLabel_Caption; LANGPreferences_QuickSearchOptionMenu_Tooltip := LANGskPreferences_QuickSearchOptionMenu_Tooltip; LANGPreferences_QuickSearch_Option1 := LANGskPreferences_QuickSearch_Option1; LANGPreferences_QuickSearch_Option2 := LANGskPreferences_QuickSearch_Option2; LANGPreferences_QuickSearch_Option3 := LANGskPreferences_QuickSearch_Option3; LANGPreferences_QuickSearch_Option4 := LANGskPreferences_QuickSearch_Option4; LANGPreferences_TempPathLabel_Caption := LANGskPreferences_TempPathLabel_Caption; LANGPreferences_VFSTempPathLabel_Caption := LANGskPreferences_VFSTempPathLabel_Caption; LANGPreferences_VFSTempPathEntry_Tooltip := LANGskPreferences_VFSTempPathEntry_Tooltip; LANGPreferences_RightClickSelectCheckBox := LANGskPreferences_RightClickSelectCheckBox; LANGPreferences_RightClickSelectCheckBox_Tooltip := LANGskPreferences_RightClickSelectCheckBox_Tooltip; LANGGtkMountOperation_ConnectAnonymously := LANGskGtkMountOperation_ConnectAnonymously; LANGGtkMountOperation_ConnectAsUser := LANGskGtkMountOperation_ConnectAsUser; LANGGtkMountOperation_Username := LANGskGtkMountOperation_Username; LANGGtkMountOperation_Domain := LANGskGtkMountOperation_Domain; LANGGtkMountOperation_Password := LANGskGtkMountOperation_Password; LANGGtkMountOperation_DoNotSavePassword := LANGskGtkMountOperation_DoNotSavePassword; LANGGtkMountOperation_ForgetPasswordImmediately := LANGskGtkMountOperation_ForgetPasswordImmediately; LANGGtkMountOperation_RememberPasswordUntilYouLogout := LANGskGtkMountOperation_RememberPasswordUntilYouLogout; LANGGtkMountOperation_SavePasswordInConnectionManager := LANGskGtkMountOperation_SavePasswordInConnectionManager; LANGGtkMountOperation_RememberForever := LANGskGtkMountOperation_RememberForever; LANGFSymlink_RelativePath := LANGskFSymlink_RelativePath; LANGFConnectionManager_DuplicateButton_Caption := LANGskFConnectionManager_DuplicateButton_Caption; LANGFConnectionManager_DuplicateButton_Tooltip := LANGskFConnectionManager_DuplicateButton_Tooltip; LANGFConnectionManager_DoNotSavePasswordsCheckBox_Label := LANGskFConnectionManager_DoNotSavePasswordsCheckBox_Label; LANGFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip := LANGskFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip; LANGFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label := LANGskFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label; LANGFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip := LANGskFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip; LANGFConnectionManager_DuplicateMenuItem_Caption := LANGskFConnectionManager_DuplicateMenuItem_Caption; LANGFQuickConnect_Caption := LANGskFQuickConnect_Caption; LANGFQuickConnect_TitleLabel_Caption := LANGskFQuickConnect_TitleLabel_Caption; LANGFQuickConnect_ConnectToURILabel_Caption := LANGskFQuickConnect_ConnectToURILabel_Caption; LANGLinkToS := LANGskLinkToS; LANGOpenDirectoryInBackgroundTab := LANGskOpenDirectoryInBackgroundTab; LANGTheActiveConnectionHasNotBeenSaved := LANGskTheActiveConnectionHasNotBeenSaved; LANGTheArchiveIsEncryptedAndRequiresPassword := LANGskTheArchiveIsEncryptedAndRequiresPassword; end; initialization AddTranslation('sk_SK', @SetTranslation); AddTranslation('SK', @SetTranslation); end. tuxcmd-0.6.70+dfsg/translations/UTranslation_PL.pas0000644000175000017500000022776711300022643021325 0ustar salvisalvi(* Tux Commander - UTranslation_PL - Polish Localization constants Copyright (C) 2007-2008 by Dominik ZabÅ‚otny Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UTranslation_PL; interface implementation uses ULocale; const LANGplF2Button_Caption = 'F2 - ZmieÅ„ nazwÄ™'; LANGplF3Button_Caption = 'F3 - Podejrzyj'; LANGplF4Button_Caption = 'F4 - Edytuj'; LANGplF5Button_Caption = 'F5 - Kopiuj'; LANGplF6Button_Caption = 'F6 - PrzenieÅ›'; LANGplF7Button_Caption = 'F7 - Utw katalog'; LANGplF8Button_Caption = 'F8 - UsuÅ„'; LANGplmnuFile_Caption = '_Plik'; LANGplmnuMark_Caption = '_Zaznaczenie'; LANGplmnuCommands_Caption = '_Polecenia'; LANGplmnuHelp_Caption = '_Pomoc'; LANGplmiExit_Caption = 'W_yjÅ›cie'; LANGplmiSelectGroup_Caption = 'Zaznacz _grupÄ™...'; LUnselectGroup_Caption = '_Odznacz grupÄ™...'; LANGplmiSelectAll_Caption = '_Zaznacz wszystkie'; LANGplmiUnselectAll_Caption = 'O_dznacz wszystkie'; LANGplmiInvertSelection_Caption = '_Odwróć zaznaczenie'; LANGplmiRefresh_Caption = '_OdÅ›wież'; LANGplmiAbout_Caption = '_Informacje o...'; LANGplColumn1_Caption = 'Nazwa'; LANGplColumn2_Caption = 'Rozsz.'; LANGplColumn3_Caption = 'Rozmiar'; LANGplColumn4_Caption = 'Data'; LANGplColumn5_Caption = 'Atr.'; LANGplExpandSelection = 'PowiÄ™ksz zaznaczenie'; LANGplShrinkSelection = 'Zmniejsz zaznaczenie'; LANGplNoMatchesFound = 'Nie znaleziono pasujÄ…cych'; LANGplNoFilesSelected = 'Nie zaznaczono plików!'; LANGplSelectedFilesDirectories = 'Zaznaczono %d plików/katalogów'; LANGplDirectoryS = 'katalog %s'; LANGplFileS = 'plik %s'; LANGplDoYouReallyWantToDeleteTheS = 'Czy na pewno chcesz usunąć %s ?'; LANGplDoYouReallyWantToDeleteTheSS = 'Czy na pewno chcesz usunąć %s ?'#10'%s'; LANGplCopyFiles = 'Kopiuj pliki'; LANGplMoveRenameFiles = 'PrzenieÅ›/ZmieÅ„ nazwÄ™'; LANGplCopyDFileDirectoriesTo = 'Kopiuj %d plików/katalogów do'; LANGplMoveRenameDFileDirectoriesTo = 'PrzenieÅ›/ZmieÅ„ nazwÄ™ %d plików/katalogów do'; LANGplCopySC = 'Kopiuj:'; LANGplMoveRenameSC = 'PrzenieÅ›/ZmieÅ„ nazwÄ™:'; LANGplQuickFind = ' Szybkie szukanie:'; LANGplAboutString = 'Tux Commander'#10'Wersja %s'#10'Data kompilacji: %s'#10#10'Copyright (c) 2008 Tomas Bzatek'#10'E-mail: tbzatek@users.sourceforge.net'#10'Strona domowa: http://tuxcmd.sourceforge.net/'; LANGplAboutStringGnome = 'wersja %s'#10'Data kompilacji: %s'#10'Strona domowa: http://tuxcmd.sourceforge.net/'; LANGplDiskStatFmt = 'Wolnych %s z %s'; LANGplDiskStatVolNameFmt = '[%s] %s z %s wolnych'; LANGplStatusLineFmt = 'Wybrano %s z %s w %d z %d plików'; LANGplPanelStrings : array[boolean] of string = ('prawy', 'lewy'); LANGplErrorGettingListingForSPanel = 'Błąd przy pobieraniu listy plików (panel %s):'#10' %s'#10#10'Åšcieżka = ''%s'''; LANGplErrorGettingListingForSPanelNoPath = 'Błąd przy pobieraniu listy plików (panel %s):'#10' %s'; LANGplErrorCreatingNewDirectorySInSPanel = 'Błąd przy tworzeniu katalogu ''%s'' (panel %s):'#10' %s'; LANGplErrorCreatingNewDirectorySInSPanelNoPath = 'Błąd przy tworzeniu katalogu (panel %s):'#10' %s'; LANGplTheFileDirectory = 'Plik/katalog'; LANGplCouldNotBeDeleted = 'nie mógÅ‚ zostać usuniÄ™ty'; LANGplCouldNotBeDeletedS = 'nie mógÅ‚ zostać usuniÄ™ty: %s'; LANGplUserCancelled = 'Anulowane przez użytkownika!'; LANGplTheDirectorySIsNotEmpty = 'Katalog %s nie jest pusty!'; LANGplCannotCopyFile = 'Nie można skopiować pliku'; LANGplCopyError = 'Błąd kopiowania'; LANGplMoveError = 'Błąd przenoszenia'; LANGplOverwriteS = 'Nadpisać: %s'; LANGplWithFileS = 'plikiem: %s'; LANGplOvewriteSBytesS = '%s bajtów, %s'; LANGplTheFile = 'Plik'; LANGplCopy = 'Kopiuj'; LANGplMove = 'PrzenieÅ›'; LANGplTheDirectory = 'Katalog'; LANGplTheSymbolicLink = 'DowiÄ…zanie symboliczne'; LANGplCannotMoveFile = 'Nie można przenieść pliku'; LANGplCouldNotBeCreated = 'nie mógÅ‚ zostać utworzony'; LANGplCouldNotBeCreatedS = 'nie mógÅ‚ zostać utworzony: %s'; LANGplFromS = 'Z: %s'; LANGplToS = 'Do: %s'; LANGplCannotCopyFileToItself = 'Nie można skopiować pliku na ten sam plik'; LANGplMemoryAllocationFailed = 'Błąd alokacji pamiÄ™ci:'; LANGplCannotOpenSourceFile = 'Nie można otworzyć pliku źródÅ‚owego'; LANGplCannotOpenDestinationFile = 'Nie można otworzyć pliku docelowego'; LANGplCannotCloseDestinationFile = 'Nie można zamknąć pliku docelowego'; LANGplCannotCloseSourceFile = 'Nie można zamknąć pliku źródÅ‚owego'; LANGplCannotReadFromSourceFile = 'Nie można odczytać pliku źródÅ‚owego'';liku docelowego'; LANGplUnknownException = 'Nieznany wyjÄ…tek'; LANGplNoAccess = 'Brak dostÄ™pu'; LANGplUnknownError = 'Nieznany błąd'; LANGplCreateANewDirectory = 'Utwórz nowy katalog'; LANGplEnterDirectoryName = 'Podaj nazwÄ™ _katalogu:'; LANGplOverwriteQuestion = 'Nadpisanie pliku'; LANGplOverwriteButton_Caption = '_Nadpisz'; LANGplOverwriteAllButton_Caption = 'Nadpisz _wszystkie'; LANGplSkipButton_Caption = '_PomiÅ„'; LANGplOverwriteAllOlderButton_Caption = 'Nadpisz wszystkie _starsze'; LANGplSkipAllButton_Caption = '_PomiÅ„ wszystkie'; LANGplRenameButton_Caption = 'ZmieÅ„ n_azwÄ™'; LANGplAppendButton_Caption = 'D_ołącz'; LANGplRename = 'ZmieÅ„ nazwÄ™'; LANGplRenameFile = 'ZmieÅ„ nazwÄ™ pliku ''%s'' na'; LANGplIgnoreButton_Caption = 'Z_ignoruj'; LANGplProgress = 'PostÄ™p'; LANGplCancel = '_Anuluj'; LANGplDelete = 'UsuÅ„:'; LANGplSpecifyFileType = '_Podaj typ pliku:'; LANGplRemoveDirectory = 'UsuÅ„ katalog'; LANGplDoYouWantToDeleteItWithAllItsFilesAndSubdirectories = 'Czy chcesz go usunąć razem z zawartymi plikami i katalogami?'; LANGplRetry = '_Ponów'; LANGplDeleteButton_Caption = '_UsuÅ„'; LANGplAll = '_Wszystkie'; LANGplCopyFilesSC = 'Kopiuj pliki:'; LANGplAppendQuestion = 'Czy jesteÅ› pewien, że chcesz dołączyć plik ''%s'' do ''%s''?'; LANGplPreparingList = 'PrzygotowujÄ™ listÄ™...'; LANGplYouMustSelectAValidFile = 'Musisz wybrać prawidÅ‚owy plik!'; LANGplmiVerifyChecksums = '_Sprawdź sumy kontrolne'; LANGplVerifyChecksumsCaption = 'Sprawdź sumy kontrolne'; LANGplCheckButtonCaptionCheck = '_Sprawdź'; LANGplCheckButtonCaptionStop = '_Zatrzymaj'; LANGplFileListTooltip = '[?] - Nie sprawdzone'#10'[OK] - Suma prawidÅ‚owa'#10'[ERR] - Suma błędna'#10'[N/A] - Plik niedostÄ™pny'; LANGplFilenameColumnCaption = 'Nazwa pliku'; LANGplTheFileSYouAreTryingToOpenIsQuiteBig = 'Plik ''t dość spory (%s bajtów). Być może nie jest to prawidÅ‚owy plik z sumÄ… kontrolnÄ….'#10#10'Czy chcesz go pomimo tego otworzyć?'; LANGplAnErrorOccuredWhileInitializingMemoryBlock = 'WystÄ…piÅ‚ błąd podczas inicjalizacji bloku pamiÄ™ci. Zamknij kilka innych programów i spróbuj ponownie.'; LANGplAnErrorOccuredWhileOpeningFileSS = 'WystÄ…piÅ‚ błąd podczas otwierania pliku ''%s'':'#10' %s'; LANGplAnErrorOccuredWhileReadingFileSS = 'WystÄ…piÅ‚ błąd podczas odczytu pliku ''%s'':'#10' %s'; LANGplChecksumNotChecked = 'Stan Nie sprawdzone'; LANGplChecksumChecking = 'Stan: Trwa sprawdzanie...'; LANGplChecksumInterrupted = 'Stan: Przerwane'; LANGplChecksumDOK = 'Stan: %d%% OK'; LANGplmiCreateChecksumsCaption = '_Utwórz sumy kontrolne...'; LANGplYouMustSelectAtLeastOneFileToCalculateChecksum = 'Musuisz zaznaczyć przynajmniej jeden plik, aby liczyć sumy kontrolne!'; LANGplCreateChecksumsCaption = 'Utwórz sumy kontrolne'; LANGplCCHKSUMPage1Text = 'Zamierzasz wyznaczyć sumy kontrolne dla'#10'wybranych plików. JeÅ›li nie zaznaczyÅ‚eÅ›'#10'wszystkich plików, które chciaÅ‚eÅ›, zamknij tego druida i'#10'zaznacz wiÄ™cej plików.'; LANGplCCHKSUMPage4Text = 'Druid jest gotów do wyznaczenia sum kontrolnych dla zaznaczonych plików.'#10' Ta operacja może zająć kilka minut.'#10'NaciÅ›nij Naprzód, aby kontynuować.'; LANGplCCHKSUMPage6Text = 'WystÄ…piÅ‚ błąd podczas wyznaczania sum kontrolnych:'; LANGplCCHKSUMPage7Text = 'Tworzenie sum kontrolnych zostaÅ‚o ukoÅ„czone'#10'twoje pliki sÄ… gotowe.'#10#10'NaciÅ›nij "ZakoÅ„cz" aby zamknąć okno.'; LANGplCCHKSUMPage1Title = 'Przygotuj pliki'; LANGplCCHKSUMPage2Title = 'Wybierz typ sumy kontrolnej'; LANGplCCHKSUMPage3Title = 'Gotowy do obliczenia'; LANGplCCHKSUMPage5Title = 'Przetwarzanie...'; LANGplCCHKSUMPage6Title = 'Błąd!'; LANGplCCHKSUMPage7Title = 'UkoÅ„czone'; LANGplCCHKSUMSFVFile = 'Plik SFV'; LANGplCCHKSUMMD5sumFile = 'Plik MD5sum'; LANGplCCHKSUMFileName = 'Nazwa _Pliku:'; LANGplCCHKSUMCreateSeparateChecksumFiles = 'Utwórz _osobne pliki sum kontrolnych'; LANGplCCHKSUMNowProcessingFileS = 'Trwa przetwarzanie pliku: %s'; LANGplCCHKSUMFinishCaption = '_ZakoÅ„cz'; LANGplCCHKSUMAreYouSureYouWantToAbortTheProcessing = 'Czy jesteÅ› pewien, że chcesz przerwać obliczenia?'; LANGplCCHKSUMAnErrorOccuredWhileOpeningFileSS = 'WystÄ…piÅ‚ błąd przy otwieraniu pliku ''%s'': %s'#10; LANGplCCHKSUMAnErrorOccuredWhileReadingFileSS = 'WystÄ…piÅ‚ błąd przy odczycie pliku ''%s'': %s'#10; LANGplCCHKSUMAnErrorOccuredWhileWritingFileSS = 'WystÄ…piÅ‚ błąd przy zapisie pliku ''%s'': %s'#10; LANGplAnErrorOccuredWhileWritingFileSS = 'WystÄ…piÅ‚ błąd przy zapisie pliku ''%s'':'#10' %s'; LANGplTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt = 'Docelowy plik ''%s'' już istnieje. Czy chcesz go nadpisać?'; LANGplTheTargetFileSCannotBeRemovedS = 'Nie można usunąć docelowego pliku ''%s'': %s'; LANGplMergeCaption = 'Połącz'; LANGplPleaseInsertNextDiskOrGiveDifferentLocation = 'Włóż nastÄ™pny noÅ›nik, albo podaj innÄ… lokalizacjÄ™:'; LANGplMergeOfSSucceeded = 'Połączenie ''%s'' udane (Suma kontolna CRC OK).'; LANGplWarningCreatedFileFailsCRCCheck = 'Ostrzeżenie: Utworzony plik nie przeszedÅ‚ testu CRC!'; LANGplMergeOfSSucceeded_NoCRCFileAvailable = 'Połączenie ''%s'' udane (brak CRC).'; LANGplMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory = 'Połącz ''%s'' i wszystkie pliki z kolejnymi nazwami, '; LANGplPopupDefault = ' (domyÅ›lnie)'; LANGplPopupOpenWith = 'O_twórz z...'; LANGplPopupViewFile = '_Podejrzyj plik'; LANGplPopupEditFile = 'Ed_ytuj plik'; LANGplPopupMakeSymlink = 'Utwórz dowiÄ…zanie _symboliczne'; LANGplPopupRename = '_ZmieÅ„ nazwÄ™'; LANGplPopupDelete = '_UsuÅ„'; LANGplDialogChangePermissions = 'ZmieÅ„ uprawnienia'; LANGplCouldNotBeChmoddedS = 'nie można zmienić uprawnieÅ„: %s'; LANGplDialogChangeOwner = 'ZmieÅ„ wÅ‚aÅ›ciciela'; LANGplCouldNotBeChownedS = 'nie można zmienić wÅ‚aÅ›ciciela: %s'; LANGplDialogMakeSymlink = 'Utwórz dowiÄ…zanie symboliczne'; LANGplDialogEditSymlink = 'Edytuj dowiÄ…zanie symboliczne'; LANGplFEditSymlink_Caption = 'Edytuj dowiÄ…zanie symboliczne'; LANGplFEditSymlink_SymbolicLinkFilename = 'Nazwa pliku dowiÄ…zania _symboliczne:'; LANGplFEditSymlink_SymbolicLinkPointsTo = 'DowiÄ…zanie symboliczne wskazuje _na:'; LANGplFChmod_Caption = 'Uprawnienia dostÄ™pu'; LANGplFChmod_PermissionFrame = 'Uprawnienia'; LANGplFChmod_FileFrame = 'Plik'; LANGplFChmod_ApplyRecursivelyFor = 'Zastosuj _rekursywnie do'; LANGplFChmod_miAllFiles = 'Wszystkie pliki i katalogi'; LANGplFChmod_miDirectories = 'Tylko kataloki'; LANGplFChmod_OctalLabel = '_Ósemkowo:'; LANGplFChmod_SUID = 'SUID - Ustaw ID użytkownika przy wykonaniu'; LANGplFChmod_SGID = 'SGID - Ustaw ID grupy przy wykonaniu'; LANGplFChmod_Sticky = 'Bit "sticky"'; LANGplFChmod_RUSR = 'RUSR - Odczyt przez wÅ‚aÅ›ciciela'; LANGplFChmod_WUSR = 'WUSR - Zapis przez wÅ‚aÅ›ciciela'; LANGplFChmod_XUSR = 'XUSR - Wykonanie/PrzeglÄ…danie przez wÅ‚aÅ›ciciela'; LANGplFChmod_RGRP = 'RGRP - Odczyt przez grupÄ™'; LANGplFChmod_WGRP = 'WGRP - Zapis by grupÄ™'; LANGplFChmod_XGRP = 'XGRP - Wykonanie/PrzeglÄ…danie przez grupÄ™'; LANGplFChmod_ROTH = 'ROTH - Odczyt przez innych'; LANGplFChmod_WOTH = 'WOTH - Zapis przez innyWykonanie/PrzeglÄ…danie przez innych'; LANGplFChmod_TextLabel = 'Tekst: %s'; LANGplFChmod_FileLabel = 'Plik: %s'#10'Tekst: %s'#10 + 'Ósemkowo: %d'#10'WÅ‚aÅ›ciciel %s'#10 + 'Grupa: %s'; LANGplFChown_Caption = 'ZmieÅ„ wÅ‚aÅ›ciciela/grupÄ™'; LANGplFChown_OwnerFrame = 'Nazwa wÅ‚aÅ›ciciela'; LANGplFChown_GroupFrame = 'Nazwa grupy'; LANGplFChown_FileFrame = 'Plik'; LANGplFChown_ApplyRecursively = 'Zastosuj _rekursywnie'; LANGplFSymlink_Caption = 'Utwórz dowiÄ…zanie symboliczne'; LANGplFSymlink_ExistingFilename = 'Nazwa istniejÄ…cego pliku, na który bÄ™dzie wskazywać dowiÄ…zanie:'; LANGplFSymlink_SymlinkFilename = '_Nazwa dowiÄ…zania:'; LANGplmnuBookmarks_Caption = '_ZakÅ‚adki'; LANGplmiAddBookmark_Caption = '_Dodaj zakÅ‚adkÄ™'; LANGplmiEditBookmarks_Caption = '_Edytuj zakÅ‚adki'; LANGplBookmarkPopupDelete_Caption = '_UsuÅ„'; LANGplmiPreferences_Caption = '_Preferencje...'; LANGplTheCurrentDirectoryAlreadyExistsInTheBookmarksList = 'Bieżący katalog już jest na liÅ›cie zakÅ‚adek'; LANGplSomeOtherInstanceChanged = 'Inna instancja Tux Commandera zmieniÅ‚a konfiguracjÄ™. Czy chcesz zastosować nowe ustawienia?'#10#10'Uwaga: jeÅ›li wciÅ›niesz "Nie", konfiguracja bÄ™dzie nadpisana przez tÄ… instancjÄ™'' WyjÅ›cie!'; LANGplPreferences_Caption = 'Preferencje'; LANGplPreferences_TitleLabel_Caption = 'Preferencje aplikacji'; LANGplPreferences_GeneralPage = 'Ogólne'; LANGplPreferences_FontsPage = 'Czcionki'; LANGplPreferences_ColorsPage = 'Kolory'; LANGplPreferences_RowHeight = 'Wysokość _wiersza:'; LANGplPreferences_NumHistoryItems = 'Rozmiar historii wiersza _poleceÅ„:'; LANGplPreferences_ClearReadonlyAttribute = 'Wyczyść atrybut "tylko do _odczytu" przy kopiowaniu z CD-ROMu'; LANGplPreferences_DisableMouseRenaming = 'Zablokuj zmianÄ™ nazwy przy pomocy _myszy'; LANGplPreferences_ShowFiletypeIconsInList = 'Pokaż _ikony przypisane do typów pliku'; LANGplPreferences_ExternalAppsLabel = 'ZewnÄ™trzne programy'; LANGplPreferences_Viewer = '_PodglÄ…d:'; LANGplPreferences_Editor = '_Edytor:'; LANGplPreferences_Terminal = '_Terminal:'; LANGplPreferences_ListFont = 'Lista czcionek:'; LANGplPreferences_Change = 'ZmieÅ„...'; LANGplPreferences_UseDefaultFont = 'Użyj _domyÅ›lnej czcionki'; LANGplPreferences_Foreground = 'Tekst'; LANGplPreferences_Background = 'TÅ‚o'; LANGplPreferences_NormalItem = 'Normalny element:'; LANGplPreferences_SetToDefaultToUseGTKThemeColors = 'ZmieÅ„ na domyÅ›lne kolory tematu GTK'; LANGplPreferences_Cursor = 'Kursor:'; LANGplPreferences_InactiveItem = 'Nieaktywny element:'; LANGplPreferences_SelectedItem = 'Wybrany element:'; LANGplPreferences_LinkItem = 'DowiÄ…zanie symboliczne:'; LANGplPreferences_LinkItemHint = 'Ustaw na domyÅ›lne, aby pokazywać dowiÄ…zania w kolorze normalnych elementów'; LANGplPreferences_DotFileItem = 'Ukryte pliki:'; LANGplPreferences_DotFileItemHint = 'staw na domyÅ›lne, aby pokazywać pliki ukryte w kolorze normalnych elementów'; LANGplPreferences_BrowseForApplication = 'Wybierz aplikacjÄ™'; LANGplPreferences_DefaultS = 'DomyÅ›lnie: %s'; LANGplPreferences_SelectFont = 'Wybierz czcionkÄ™'; (*************** STRINGS ADDED TO v0.4.101 **********************************************************************************) LANGplBookmarkButton_Tooltip = 'Pokaż zakÅ‚adki'; LANGplUpButton_Tooltip = 'Przejdź do katalogu nadrzÄ™dnego'; LANGplRootButton_Tooltip = 'Przejdź do głównego katalogu (/)'; LANGplHomeButton_Tooltip = 'Przejdźr)'; LANGplLeftEqualButton_Tooltip = 'Przełącz prawy panel na ten sam katalog'; LANGplRightEqualButton_Tooltip = 'Przełącz lewy panel na ten sam katalog'; LANGplmiShowDirectorySizes_Caption = 'Pokaż rozmiary _katalogów'; LANGplmiTargetSource_Caption = '_Docelowy = ŹródÅ‚owy'; LANGplFileTypeDirectory = 'Katalog'; LANGplFileTypeFile = 'Plik'; LANGplFileTypeMetafile = 'To jest ogólny meta-element'; LANGplPreferencesPanelsPage = 'Panele'; LANGplPreferencesApplicationsPage = 'Aplikacje'; LANGplPreferencesExperimentalPage = 'Eksperymentalne'; LANGplPreferencesSelectAllDirectoriesCheckBox_Caption = 'Zaznaczaj _także katalogi przy zaznaczaniu wszystkiego'; LANGplPreferencesNewStyleAltOCheckBox_Caption = '_Nowy styl Alt+O'; LANGplPreferencesNewStyleAltOCheckBox_Tooltip = 'PozostaÅ„ w tym samym katalogu po zmianie katalogu w drugim panelu przez Ctrl/Alt+O'; LANGplPreferencesShowFuncButtonsCheckBox_Caption = 'Pokazuj przyciski _klawiszy funkcyjnych'; LANGplPreferencesSizeFormatLabel_Caption = 'Sposób wyÅ›wietlania _rozmiaru:'; LANGplPreferencesmiSizeFormat1 = 'Systemowy'; LANGplPreferencesmiSizeFormat6 = 'Zgroupowany'; LANGplPreferencesAutodetectXApp = 'Automatycznie wykrywaj aplikacje X'; LANGplPreferencesAlwaysRunInTerminal = 'Zawsze uruchamiaj w terminalu'; LANGplPreferencesNeverRunInTerminal = 'Nigdy nie uruchamiaj w terminalu'; LANGplPreferencesCmdLineBehaviourLabel_Caption = '_Wykonywanie z wiersza poleceÅ„:'; LANGplPreferencesFeatures = 'WÅ‚aÅ›ciwoÅ›ci'; LANGplPreferencesDisableMouseRename_Tooltip = 'Możesz nadal dokonywać szybkiej zmiany nazwy wciskajÄ…c Shift+F6'; LANGplPreferencesDisableFileTipsCheckBox_Caption = 'Wyłącz _podpowiedzi dla plików'; LANGplPreferencesDisableFileTipsCheckBox_Tooltip = 'Nie pokazuj podpowiedzi dla panelu jeÅ›li tekst nie mieÅ›ci siÄ™ w kolumnie'; LANGplPreferencesShow = 'WyÅ›wietlanie'; LANGplPreferencesDisableDirectoryBracketsCheckBox_Caption = 'Wyłącz otaczanie katalogów nawiasami []'; LANGplPreferencesOctalPermissionsCheckBox_Caption = 'Pokazuj uprawnienia ó_semkowo'; LANGplPreferencesOctalPermissionsCheckBox_Tooltip = 'Pokzauj uprawnienia do pliku/katalogu w formie numerycnej zamiast tekstowej (-rw-rw-rw-)'; LANGplPreferencesMovement = 'Poruszanie siÄ™'; LANGplPreferencesLynxLikeMotionCheckBox_Caption = 'W stylu _Lynx''a'; LANGplPreferencesInsertMovesDownCheckBox_Caption = '_Insert przechodzi w dół'; LANGplPreferencesSpaceMovesDownCheckBox_Caption = '_Spacja przechodzi w dów'; LANGplPreferencesViewer = 'PodglÄ…d'; LANGplPreferencesCommandSC = 'Polecenie:'; LANGplPreferencesUseInternalViewer = 'Użyj _wewnÄ™trznej przeglÄ…darki'; LANGplPreferencesEditor = 'Edytor'; LANGplPreferencesTerminal = 'Terminal'; LANGplPreferencesExperimentalFeatures = 'Opcje eksperymentalne'; LANGplPreferencesExperimentalWarningLabel_Caption = 'Uwaga: Te opcje sÄ… dopiero rozwijanie i mogÄ… dziaÅ‚ać nieprawidÅ‚owo. Używaj na wÅ‚asne ryzyko!'; LANGplPreferencesFocusRefreshCheckBox_Caption = 'OdÅ›wieżaj, gdy okno odzyskuje skupienie'; LANGplPreferencesFocusRefreshCheckBox_Tooltip = 'OdÅ›wieżanie panelu dziaÅ‚a w tej chili bardzo wolno'; LANGplPreferencesWMCompatModeCheckBox_Caption = 'Tryb kompatybilnoÅ›ci z _WM (menadżerem okien)'; LANGplPreferencesWMCompatModeCheckBox_Tooltip = 'Użyj, jeÅ›li masz problemy spowodowane przez menadżera okien (np. IceWM nie maksymalizuje prawidÅ‚owo okien)'; LANGplPreferencesCompatUseLibcSystemCheckBox_Caption = 'Użyj libc _system() do wykonywania programów'; LANGplPreferencesCompatUseLibcSystemCheckBox_Tooltip = 'Używ w przypadku zamrażania lub zawieszania siÄ™ programu przy uruchamianiu zewnÄ™trznych aplikacji'; (*************** STRINGS ADDED TO v0.5.70 **********************************************************************************) LANGplmiSearchCaption2 = '_Znajdź...'; LANGplmiNoMounterBarCaption = '_Nie pokazuj paska montowania'; LANGplmiShowOneMounterBarCaption = 'Pokazuj _jeden pasek montowania'; LANGplmiShowTwoMounterBarCaption = 'Pokazuj _dwa paski montowania'; LANGplmnuNetworkCaption = '_Sieć'; LANGplmiConnectionsCaption = '_Połączenia...'; LANGplmiOpenConnectionCaption = '_Połącz...'; LANGplmiQuickConnectCaption = '_Szybkie połączenie...'; LANGplmnuPluginsCaption = 'Wt_yczki'; LANGplmiTestPluginCaption = '_Sprawdź wtyczkÄ™...'; LANGplmiMounterSettingsCaption = '_Ustawienia montowania...'; LANGplmiColumnsCaption = 'Kolumny p_anelu...'; LANGplmiSavePositionCaption = '_Zapisuj pozycjÄ™'; LANGplmiMountCaption = '_Zamontuj'; LANGplmiUmountCaption = '_Odmontuj'; LANGplmiEjectCaption = '_WysuÅ„'; LANGplmiDuplicateTabCaption = 'Podwój bieżący panel'; LANGplmiCloseTabCaption = 'Zamknij bieżący panel'; LANGplmiCloseAllTabsCaption = 'Zamknij wszystkie panele'; LANGplCannotDetermineDestinationEngine = 'Nie można ustalić docelowego mechanizmu. Podaj wÅ‚aÅ›ciwÄ… Å›cieżkÄ™ i spróbuj ponownie.'; LANGplCannotLoadFile = 'Nie można odczytać pliku ''%s''. ProszÄ™ sprawdzić uprawnienia.'; LANGplMountPointDevice = 'Punkt montowania: %s'#10'UrzÄ…dzenie: %s'; LANGplMountSC = 'Montowanie:'; LANGplNoPluginsFound = 'Nie znaleziono wtyczek'; LANGplPluginAbout = 'Informacje o...'; LANGplCouldntOpenURI = 'Nie można otworzyć podanego URI. ProszÄ™ sprawdzić stan zasobu i uprawnienia dostÄ™pu.'; LANGplPluginAboutInside = 'Wtyczka: %s'#10#10'%s'#10'%s'; LANGplAreYouSureCloseAllTabs = 'Czy na pewno chcesz zamknąć wszystkie nieaktywne panele?'; LANGplCouldntOpenURIArchive = 'Nie można otworzyć archiwum. ProszÄ™ sprawdzić stan zasobu i uprawnienia dostÄ™pu.'; LANGplThereIsNoModuleAvailable = 'Å»aden z dostÄ™pnych modułów VFS nie potrafi obsÅ‚użyć tego połączenia'; LANGplIgnoreError = 'Czy na pewno chcesz zignorować ten błąd? Plik źródÅ‚owy zostanie usuniÄ™ty'; LANGplErrorMount = 'Błąd podczas montowania urzÄ…dzenia ''%s'':'#10#10; LANGplErrorUmount = 'Błąd podczas odmontowania urzÄ…dzenia ''%s'':'#10#10; LANGplErrorEject = 'Błąd podczas wysuwania urzÄ…dzenia ''%s'':'#10#10; LANGplMounterPrefs_Caption = 'Ustawienia montowania'; LANGplMounterPrefs_TitleLabelCaption = 'Ustawienia montowania'; LANGplMounterPrefs_ListViewFrameCaption = 'Montowanie'; LANGplMounterPrefs_MountName = 'Name zasobu'; LANGplMounterPrefs_MountPoint = 'Punkt montowania'; LANGplMounterPrefs_Device = 'UrzÄ…dzenie'; LANGplMounterPrefs_MoveUpButtonTooltip = 'PrzenieÅ› w górÄ™'; LANGplMounterPrefs_MoveDownButtonTooltip = 'PrzenieÅ› w dół'; LANGplMounterPrefs_UseFSTabDefaultsCheckBox = 'Użyj domyÅ›lnych elementów _fstab'; LANGplMounterPrefs_UseFSTabDefaultsCheckBoxTooltip = 'Po zaznaczeniu, na pasek montowania znajdÄ… siÄ™ elementy z systemowej listy w /etc/fstab'; LANGplMounterPrefs_ToggleModeCheckBox = 'Przyciski wciÅ›niÄ™te gdy zasób zamontowany'; LANGplMounterPrefs_ToggleModeCheckBoxTooltip = 'Po zaznaczeniu stan "wciÅ›niÄ™ty" przycisku bÄ™dzie odzwieciedlaÅ‚ zamontowanie zasobu'; LANGplMounterPrefs_PropertiesFrameCaption = 'WłąściwoÅ›ci zasobu'; LANGplMounterPrefs_DisplayTextLabelCaption = 'WyÅ›wietlany _tekst:'; LANGplMounterPrefs_MountPointLabelCaption = '_Punkt montowania:'; LANGplMounterPrefs_MountDeviceLabelCaption = '_UrzÄ…dzenie:'; LANGplMounterPrefs_DeviceTypeLabelCaption = 'Rodzaj urzÄ…dzenia:'; LANGplMounterPrefs_miLocalDiskCaption = 'Lokalny dysk'; LANGplMounterPrefs_miRemovableCaption = 'NapÄ™d przenoÅ›ny'; LANGplMounterPrefs_miCDCaption = 'NapÄ™d CD/DVD'; LANGplMounterPrefs_miFloppyCaption = 'Stacja dyskietek'; LANGplMounterPrefs_miNetworkCaption = 'UdziaÅ‚ sieciowy'; LANGplMounterPrefs_MountCommandLabelCaption = 'Polecenie _montowania:'; LANGplMounterPrefs_UmountCommandLabelCaption = 'Polecenie _odmontowania:'; LANGplMounterPrefs_MountCommandEntryTooltip = 'SkÅ‚adnia: %dev oznacza urzÄ…dzenie, %dir punkt montowania (pusty oznacza domyÅ›lny)'#10'Uważaga: przy interaktywnych komendach, tuxcmd może przestać reagować!'#10'PrzykÅ‚ad: smbmount %dev %dir -o username=netuser,password=somepass'; LANGplMounterPrefs_UmountCommandEntryTooltip = 'SkÅ‚adnia: %dev oznacza urzÄ…dzenie, %dir punkt montowania (pusty oznacza domyÅ›lny)'#10'Example: smbumount $dir'; LANGplMounterPrefs_IconLabelCaption = '_Ikona:'; LANGplConnMgr_Caption = 'Otwórz nowe połączenie'; LANGplConnMgr_ConnectButton = '_Połącz'; LANGplConnMgr_OpenConnection = 'Open Connection'; LANGplConnMgr_NameColumn = 'Nazwa'; LANGplConnMgr_URIColumn = 'Adres (URI)'; LANGplConnMgr_AddConnectionButtonCaption = '_Dodaj...'; LANGplConnMgr_AddConnectionButtonTooltip = 'Dodaj nowe połączenie'; LANGplConnMgr_EditButtonCaption = '_Edycja'; LANGplConnMgr_EditButtonTooltip = 'Ustaw wÅ‚aÅ›ciwoÅ›ci połączenia'; LANGplConnMgr_RemoveButtonCaption = '_UsuÅ„'; LANGplConnMgr_RemoveButtonTooltip = 'UsuÅ„ zaznaczone połączenie'; LANGplConnMgr_DoYouWantDelete = 'Czy na pewno chcesz usunąć połączenie ''%s''?'; LANGplConnProp_FTP = 'FTP'; LANGplConnProp_SFTP = 'SFTP (podsystem ssh)'; LANGplConnProp_SMB = 'UdziaÅ‚ Windows (SMB)'; LANGplConnProp_HTTP = 'WebDAV (HTTP)'; LANGplConnProp_HTTPS = 'Bezpieczny WebDAV (HTTPS)'; LANGplConnProp_Other = 'Inne (podaj URI)'; LANGplConnProp_Caption = 'WÅ‚aÅ›ciwoÅ›ci połączenia'; LANGplConnProp_VFSModule = 'ModuÅ‚ _VFS:'; LANGplConnProp_URI = '_URI:'; LANGplConnProp_URIEntryTooltip = 'PrawidÅ‚owy URI powinien zawierać typ usÅ‚ugi (w prefiksie) oraz adres serwera'; LANGplConnProp_DetailedInformations = 'Szczegółowe informacje'; LANGplConnProp_Name = '_Nazwa:'; LANGplConnProp_Server = 'Ser_wer[:port]:'; LANGplConnProp_Username = 'Nazwa _użytkownika:'; LANGplConnProp_UserNameEntryTooltip = 'Pozostaw puste w celu zalogowania jako anonim'; LANGplConnProp_Password = '_HasÅ‚o:'; LANGplConnProp_TargetDirectory = 'Katalog _docelowy:'; LANGplConnProp_ServiceType = '_Typ usÅ‚ugi:'; LANGplConnProp_MaskPassword = '_Maskuj hasÅ‚o:'; LANGplConnProp_MenuItemCaption = 'DomyÅ›lne (wszystkie pasujÄ…ce moduÅ‚y)'; LANGplConnLogin_Caption = 'Wymagana autoryzacja'; LANGplConnLogin_Login = 'Login'; LANGplConnLogin_ExperimentalWarningLabelCaption = 'Musisz siÄ™ zalogować żeby uzyskać dostÄ™p do %s'; LANGplConnLogin_Username = '_Nazwa użytkownika:'; LANGplConnLogin_Password = '_HasÅ‚o:'; LANGplConnLogin_AnonymousCheckButton = '_Jako anonim'; LANGplColumns_Caption = 'Ustawienia kolumn w panelu'; LANGplColumns_Title = 'Ustawienia kolumn w panelu'; LANGplColumns_MoveUpButtonTooltip = 'PrzesuÅ„ element w górÄ™'; LANGplColumns_MoveDownButtonTooltip = 'PrzesuÅ„ element w dół'; LANGplColumns_TitlesLongName = 'Nazwa'; LANGplColumns_TitlesLongNameExt = 'Nazwa + rozszerzenie'; LANGplColumns_TitlesLongExt = 'Rozszerzenie'; LANGplColumns_TitlesLongSize = 'Rozmiar'; LANGplColumns_TitlesLongDateTime = 'Data + Czas'; LANGplColumns_TitlesLongDate = 'Data'; LANGplColumns_TitlesLongTime = 'Czas'; LANGplColumns_TitlesLongUser = 'Użytkownik'; LANGplColumns_TitlesLongGroup = 'Grupa'; LANGplColumns_TitlesLongAttr = 'Attrybuty'; LANGplColumns_TitlesShortName = 'Nazwa'; LANGplColumns_TitlesShortNameExt = 'Nazwa'; LANGplColumns_TitlesShortExt = 'Roz'; LANGplColumns_TitlesShortSize = 'Rozmiar'; LANGplColumns_TitlesShortDateTime = 'Data'; LANGplColumns_TitlesShortDate = 'Data'; LANGplColumns_TitlesShortTime = 'Czas'; LANGplColumns_TitlesShortUser = 'Użytk.'; LANGplColumns_TitlesShortGroup = 'Grupa'; LANGplColumns_TitlesShortAttr = 'Atr'; LANGplTestPlugin_Caption = 'Przetestuj wtyczkÄ™ VFS'; LANGplTestPlugin_Title = 'Przetestuj wtyczkÄ™ VFS'; LANGplTestPlugin_ExperimentalWarningLabelCaption = 'Uwaga: podsystem VFS i jego wtyczki sÄ… we wczesnych wersjach rozwojowych i mogÄ… zawierać błędy. Używaj wyÅ‚acznie na wÅ‚asne ryzyko!'; LANGplTestPlugin_Plugin = '_Wtyczka:'; LANGplTestPlugin_Command = 'Po_lecenie:'; LANGplTestPlugin_Username = '_Nazwa użytkownika:'; LANGplTestPlugin_Password = '_HasÅ‚o:'; LANGplTestPlugin_AnonymousCheckButton = '_Logowanie anonimowe (nie używa VFSLogin)'; LANGplTestPlugin_NoPluginsFound = 'Nie znaleziono wtyczek'; LANGplRemoteWait_Caption = 'Wykonywanie operacji'; LANGplRemoteWait_OperationInProgress = 'Wykonywanie operacji, proszÄ™ czekać...'; LANGplRemoteWait_ItemsFound = 'dotychczas znaleziono %d elementów'; LANGplSearch_Bytes = 'Bajty'; LANGplSearch_kB = 'kB'; LANGplSearch_MB = 'MB'; LANGplSearch_days = 'dni'; LANGplSearch_weeks = 'tygodnie'; LANGplSearch_months = 'miesiÄ…ce'; LANGplSearch_years = 'lata'; LANGplSearch_Caption = 'znajdź pliki'; LANGplSearch_General = 'Ogólne'; LANGplSearch_Advanced = 'Zaawansowane'; LANGplSearch_SearchResults = 'Wynik wyszukiwania:'; LANGplSearch_SearchFor = 'Szukaj:'; LANGplSearch_FileMaskEntryTooltip = 'Porada: Możesz wpisać kilka plików, oddzielonych Å›rednikiem (";")'; LANGplSearch_SearchIn = 'Znajdź _w:'; LANGplSearch_SearchArchivesCheckButton = 'Przeszukuj _archiwa'; LANGplSearch_FindText = 'Znajdź _tekst:'; LANGplSearch_FindTextEntryTooltip = 'Pozostaw puste by nie szukać tekstu'#10'Uwaga: GUI używa kodowania znaków UTF-8'; LANGplSearch_CaseSensitiveCheckButton = '_Rozróżnianie wielkoÅ›ci liter'; LANGplSearch_StayCurrentFSCheckButton = 'Dołącz inne systemy plików'; LANGplSearch_CaseSensitiveMatchCheckButton = '_Rozróżnianie wielkoÅ›ci liter'; LANGplSearch_Size = 'Rozmiar'; LANGplSearch_Date = 'Data'; LANGplSearch_BiggerThan = '_wiÄ™ksze niż'; LANGplSearch_SmallerThan = '_Mniejsze niż'; LANGplSearch_ModifiedBetweenRadioButton = '_Zmienione pomiÄ™dzy'; LANGplSearch_NotModifiedAfterRadioButton = '_Nie zmienione po'; LANGplSearch_ModifiedLastRadioButton = 'Zmien_ione w ciÄ…gu ostatniech'; LANGplSearch_ModifiedNotLastRadionButton = 'Nie zmienione w ciÄ…gu osta_tnich'; LANGplSearch_ModifiedBetweenEntry1 = '"Użyć daty w formacie:" c'; LANGplSearch_ViewButtonCaption = '_PodglÄ…d pliku'; LANGplSearch_NewSearchButtonCaption = '_Nowe wyszukiwanie'; LANGplSearch_GoToFileButtonCaption = '_Idź do pliku'; LANGplSearch_FeedToListboxButtonCaption = 'WyÅ›lij do _listy'; LANGplSearch_StatusSC = 'Status:'; LANGplSearch_Ready = 'Gotowe.'; LANGplSearch_PreparingToSearch = 'Przygotowanie do wyszukiwania.'; LANGplSearch_SearchInProgress = 'Trwa szukanie:'; LANGplSearch_UserCancelled = 'Anulowane przez użytkownika.'; LANGplSearch_SearchFinished = 'Szukanie zakoÅ„czone'; LANGplSearch_FilesFound = 'znaleziono %d plików'; LANGplSearch_And = 'i'; (*************** STRINGS ADDED TO v0.5.82 **********************************************************************************) LANGplCloseOpenConnection = 'Próbujesz otworzyć nowe połączenie. Kontynuacja spowoduje zamkniÄ™cie poprzedniego i zastÄ…pienie go nowym.'#10#10'Czy kontynuować?'; LANGplDuplicateTabWarning = 'Próbujesz otworzyć nowÄ… kartÄ™ zdalnego katalogu. Nie jest to możliwe, w nowej karcie otworzy siÄ™ w zamian lokalny katalog. '; LANGplDontShowAgain = '_Don''t show this message again'; LANGplSwitchOtherPanelWarning = 'Próbujesz otworzyć zdalny katalog w przeciwlegÅ‚ym panelu. Nie jest to możliwe, docelowy katalog nie bÄ™dzie zmieniony.'; LANGplOpenConnectionsWarning = 'W panelu otwarte jest połączenie sieciowe. Przy zamkniÄ™ciu aplikacji zostanÄ… one rozłączone.'#10#10'Czy na pewno zamknąć?'; LANGplmiDisconnect_Caption = '_Rozłącz'; LANGplDisconnectButton_Tooltip = 'Rozłącza aktywne połączanie'; LANGplLeaveArchiveButton_Tooltip = 'Zamykabieżące archiwum'; LANGplOpenTerminalButton_Tooltip = 'Otwiera nowe okna terminala w bieżącym katalogu'; LANGplOpenTerminalButton_Caption = 'Otwórz Te_rminal'; LANGplShowTextUIDsCheckBox_Caption = 'WyÅ›wietlaj tekstowe _UID'; LANGplShowTextUIDsCheckBox_Tooltip = 'WyÅ›wietla tekstowe informacje o użytkowniku i grupie zamiast oznaczeÅ„ cyfrowych (UID/GID)'; (*************** STRINGS ADDED TO v0.5.100 **********************************************************************************) LANGplmiNewTab_Caption = 'Nowa karta _folderu'; LANGplFilePopupMenu_Properties = '_WÅ‚aÅ›ciwoÅ›ci'; LANGplCommandEntry_Tooltip = 'Używa %s jako pliku/katalogu'; LANGplmiFiles_Caption = 'Tylko pliki'; (*************** STRINGS ADDED TO v0.6.31 **********************************************************************************) LANGplPasswordButton_Tooltip = 'Archiwum wymaga hasÅ‚a.'#10'Kliknij, aby ustawić'; LANGplHandleRunFromArchive_Bytes = 'bajtów'; LANGplHandleRunFromArchive_FileTypeDesc_Unknown = '(nie znany)'; LANGplHandleRunFromArchive_NotAssociated = '(nie powiÄ…zany)'; LANGplHandleRunFromArchive_SelfExecutable = '(samorozpakowujÄ…ce)'; LANGplHandleRunFromArchive_CouldntCreateTemporaryDirectory = 'Nie można utworzyć tymczasowego katalogu "%s": %s.'#10#10'Sprawdź ustawienia katalogu tymczowego i spróbuj ponownie.'; LANGplFRunFromVFS_Caption = 'WÅ‚aÅ›ciwoÅ›ci archiwum'; LANGplFRunFromVFS_TitleLabel = 'WÅ‚aÅ›ciwoÅ›ci pliku'; LANGplFRunFromVFS_FileNameLabel = 'Nazwa pliku:'; LANGplFRunFromVFS_FileTypeLabel = 'Typ pliku:'; LANGplFRunFromVFS_SizeLabel = 'Rozmiar:'; LANGplFRunFromVFS_PackedSizeLabel = 'Skompresowany rozmiar:'; LANGplFRunFromVFS_DateLabel = 'ZmieÅ„ datÄ™:'; LANGplFRunFromVFS_InfoLabel = 'Opening files directly from archives is not supported. By clicking the buttons below the file (all files respectively) will be extracted to a temporary location. Temporary files will be deleted when you close Tux Commander.'; LANGplFRunFromVFS_OpensWithLabel = 'Otwórz z:'; LANGplFRunFromVFS_ExecuteButton = 'Roz_pakuj i otwórz'; LANGplFRunFromVFS_ExecuteAllButton = 'Rozpakuj _wszystkie i otwórz'; LANGplFSetPassword_Caption = 'Ustaw hasÅ‚o'; LANGplFSetPassword_Label1_Caption = 'Wymagane hasÅ‚o'; LANGplFSetPassword_Label2_Caption = 'Archiwum jest zaszyfrowane; do rozpakowania wymagane jest hasÅ‚o'; LANGplFSetPassword_ShowPasswordCheckButton = 'Wi_doczne hasÅ‚o'; (*************** STRINGS ADDED TO v0.6.48 **********************************************************************************) LANGplCopyFileNamesToClipboard = 'S_kopiuj nazwy plików do schowka'; LANGplCopyFullPathNamesToClipboard = 'Skopiuj nazy plików z peÅ‚nÄ… Å›c_ieżkÄ… do schowka'; LANGplCopyPathToClipboard = 'Skopiuj Å›cieżkÄ™ do s_chowka'; LANGplPreferences_DateFormatLabel_Caption = '_Format daty:'; LANGplPreferences_System = 'Systemowy'; LANGplPreferences_Custom = 'WÅ‚asny...'; LANGplPreferences_CustomDateFormatEntry_Tooltip = 'Podaj wzorzec formatu daty.'#10'Zobacz opis skÅ‚adni w "man strftime".'; LANGplPreferences_TimeFormatLabel_Caption = 'Format _godziny:'; LANGplPreferences_CustomTimeFormatEntry_Tooltip = 'Podaj wzorzec formatu godziny.'#10'Zobacz opis skÅ‚adni w "man strftime".'; LANGplPreferences_DateTimeFormatLabel_Caption = 'K_olejność daty/godziny:'; LANGplPreferences_QuickRenameSkipExtCheckBox = 'Zaznaczanie tylko nazwy pzy szybkiej zmianie nazwy'; LANGplPreferences_QuickRenameSkipExtCheckBox_Tooltip = 'Bez zaznaczania rozszerzenia pliku przy szybkiej zmianie nazwy'; LANGplPreferences_SortDirectoriesLikeFilesCheckBox = 'Sortowanie katalogów t_ak, jak plików'; LANGplPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip = 'Zaznaczenie pozwala na sortowanie katalogów takie samo, jak plików. Katalogi sÄ… zawsze z przodu lsty.'#10'Odznaczenie: katalogi sÄ… zawsze sortowane wedÅ‚ug nazwy.'; LANGplPreferences_QuickSearchLabel_Caption = '_Klawisze szybkiego wyszukiwania:'; LANGplPreferences_QuickSearchOptionMenu_Tooltip = 'Klawisze Ctrl+S/Alt+S oraz "/" sÄ… zawsze aktywne, niezalżnie od ustawieÅ„.'; LANGplPreferences_QuickSearch_Option1 = 'Tyko Ctrl+S/Alt+S oraz "/"'; LANGplPreferences_QuickSearch_Option2 = 'Ctrl+Alt+litery'; LANGplPreferences_QuickSearch_Option3 = 'Alt+litery'; LANGplPreferences_QuickSearch_Option4 = 'Same litery'; LANGplPreferences_TempPathLabel_Caption = 'Pliki tymczasowe:'; LANGplPreferences_VFSTempPathLabel_Caption = 'Pliki tymczasowe _VFS:'; LANGplPreferences_VFSTempPathEntry_Tooltip = 'PoÅ‚ożenie tymczsowych plików używanych przez podsystem VFS np. przy otwieraniu plików bezpoÅ›rednio z archiwów. Pliki sÄ… usuwane przy wyjÅ›ciu.'; (*************** STRINGS ADDED TO v0.6.67 **********************************************************************************) LANGplPreferences_RightClickSelectCheckBox = 'Right mouse button selection mode'; LANGplPreferences_RightClickSelectCheckBox_Tooltip = 'Use right mouse button to select, like mc.'; LANGplGtkMountOperation_ConnectAnonymously = 'Connect _anonymously'; LANGplGtkMountOperation_ConnectAsUser = 'Connect as u_ser:'; LANGplGtkMountOperation_Username = '_Username:'; LANGplGtkMountOperation_Domain = '_Domain:'; LANGplGtkMountOperation_Password = '_Password:'; LANGplGtkMountOperation_DoNotSavePassword = 'Do not save password'; LANGplGtkMountOperation_ForgetPasswordImmediately = 'Forget password _immediately'; LANGplGtkMountOperation_RememberPasswordUntilYouLogout = 'Remember password until you _logout'; LANGplGtkMountOperation_SavePasswordInConnectionManager = '_Save password in Connection Manager'; LANGplGtkMountOperation_RememberForever = 'Remember _forever'; LANGplFSymlink_RelativePath = '_Relative path'; LANGplFConnectionManager_DuplicateButton_Caption = 'D_uplicate...'; LANGplFConnectionManager_DuplicateButton_Tooltip = 'Duplicate selected connection'; LANGplFConnectionManager_DoNotSavePasswordsCheckBox_Label = '_Do not store passwords internally (but still use gnome-keyring)'; LANGplFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip = 'By checking this option on, Tux Commander will never save passwords into its connection list. Due to the GVFS nature, gnome-keyring will still be used to retrieve stored passwords from your desktop session.'; LANGplFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label = 'Do not synchronize passwords to gnome-_keyring'; LANGplFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip = 'Don''t tell gnome-keyring to save any passwords.'; LANGplFConnectionManager_DuplicateMenuItem_Caption = 'D_uplicate...'; LANGplFQuickConnect_Caption = 'Quick connect'; LANGplFQuickConnect_TitleLabel_Caption = 'Quick connect'; LANGplFQuickConnect_ConnectToURILabel_Caption = 'C_onnect to URI:'; LANGplLinkToS = 'Link to %s'; LANGplOpenDirectoryInBackgroundTab = 'Open directory in _background tab'; LANGplTheActiveConnectionHasNotBeenSaved = 'The active connection has not been saved. Do you want to save it to Connection Manager?'#10#10'%s'; LANGplTheArchiveIsEncryptedAndRequiresPassword = 'The archive is encrypted and requires password'; (********************************************************************************************) procedure SetTranslation; begin LANGF2Button_Caption := LANGplF2Button_Caption; LANGF3Button_Caption := LANGplF3Button_Caption; LANGF4Button_Caption := LANGplF4Button_Caption; LANGF5Button_Caption := LANGplF5Button_Caption; LANGF6Button_Caption := LANGplF6Button_Caption; LANGF7Button_Caption := LANGplF7Button_Caption; LANGF8Button_Caption := LANGplF8Button_Caption; LANGmnuFile_Caption := LANGplmnuFile_Caption; LANGmnuMark_Caption := LANGplmnuMark_Caption; LANGmnuCommands_Caption := LANGplmnuCommands_Caption; LANGmnuHelp_Caption := LANGplmnuHelp_Caption; LANGmiExit_Caption := LANGplmiExit_Caption; LANGmiSelectGroup_Caption := LANGplmiSelectGroup_Caption; LANGmiSelectAll_Caption := LANGplmiSelectAll_Caption; LANGmiUnselectAll_Caption := LANGplmiUnselectAll_Caption; LANGmiInvertSelection_Caption := LANGplmiInvertSelection_Caption; LANGmiRefresh_Caption := LANGplmiRefresh_Caption; LANGmiAbout_Caption := LANGplmiAbout_Caption; LANGColumn1_Caption := LANGplColumn1_Caption; LANGColumn2_Caption := LANGplColumn2_Caption; LANGColumn3_Caption := LANGplColumn3_Caption; LANGColumn4_Caption := LANGplColumn4_Caption; LANGColumn5_Caption := LANGplColumn5_Caption; LANGExpandSelection := LANGplExpandSelection; LANGShrinkSelection := LANGplShrinkSelection; LANGNoMatchesFound := LANGplNoMatchesFound; LANGNoFilesSelected := LANGplNoFilesSelected; LANGSelectedFilesDirectories := LANGplSelectedFilesDirectories; LANGDirectoryS := LANGplDirectoryS; LANGFileS := LANGplFileS; LANGDoYouReallyWantToDeleteTheS := LANGplDoYouReallyWantToDeleteTheS; LANGDoYouReallyWantToDeleteTheSS := LANGplDoYouReallyWantToDeleteTheSS; LANGCopyFiles := LANGplCopyFiles; LANGMoveRenameFiles := LANGplMoveRenameFiles; LANGCopyDFileDirectoriesTo := LANGplCopyDFileDirectoriesTo; LANGMoveRenameDFileDirectoriesTo := LANGplMoveRenameDFileDirectoriesTo; LANGCopySC := LANGplCopySC; LANGMoveRenameSC := LANGplMoveRenameSC; LANGQuickFind := LANGplQuickFind; LANGAboutString := LANGplAboutString; LANGAboutStringGnome := LANGplAboutStringGnome; LANGDiskStatFmt := LANGplDiskStatFmt; LANGDiskStatVolNameFmt := LANGplDiskStatVolNameFmt; LANGStatusLineFmt := LANGplStatusLineFmt; LANGPanelStrings[False] := LANGplPanelStrings[False]; LANGPanelStrings[True] := LANGplPanelStrings[True]; LANGErrorGettingListingForSPanel := LANGplErrorGettingListingForSPanel; LANGErrorGettingListingForSPanelNoPath := LANGplErrorGettingListingForSPanelNoPath; LANGErrorCreatingNewDirectorySInSPanel := LANGplErrorCreatingNewDirectorySInSPanel; LANGErrorCreatingNewDirectorySInSPanelNoPath := LANGplErrorCreatingNewDirectorySInSPanelNoPath; LANGTheFileDirectory := LANGplTheFileDirectory; LANGCouldNotBeDeleted := LANGplCouldNotBeDeleted; LANGCouldNotBeDeletedS := LANGplCouldNotBeDeletedS; LANGUserCancelled := LANGplUserCancelled; LANGTheDirectorySIsNotEmpty := LANGplTheDirectorySIsNotEmpty; LANGCannotCopyFile := LANGplCannotCopyFile; LANGCopyError := LANGplCopyError; LANGMoveError := LANGplMoveError; LANGOverwriteS := LANGplOverwriteS; LANGWithFileS := LANGplWithFileS; LANGOvewriteSBytesS := LANGplOvewriteSBytesS; LANGTheFile := LANGplTheFile; LANGCopy := LANGplCopy; LANGMove := LANGplMove; LANGTheDirectory := LANGplTheDirectory; LANGTheSymbolicLink := LANGplTheSymbolicLink; LANGCannotMoveFile := LANGplCannotMoveFile; LANGCouldNotBeCreated := LANGplCouldNotBeCreated; LANGCouldNotBeCreatedS := LANGplCouldNotBeCreatedS; LANGFromS := LANGplFromS; LANGToS := LANGplToS; LANGCannotCopyFileToItself := LANGplCannotCopyFileToItself; LANGMemoryAllocationFailed := LANGplMemoryAllocationFailed; LANGCannotOpenSourceFile := LANGplCannotOpenSourceFile; LANGCannotOpenDestinationFile := LANGplCannotOpenDestinationFile; LANGCannotCloseDestinationFile := LANGplCannotCloseDestinationFile; LANGCannotCloseSourceFile := LANGplCannotCloseSourceFile; LANGCannotReadFromSourceFile := LANGplCannotReadFromSourceFile; LANGUnknownException := LANGplUnknownException; LANGNoAccess := LANGplNoAccess; LANGUnknownError := LANGplUnknownError; LANGCreateANewDirectory := LANGplCreateANewDirectory; LANGEnterDirectoryName := LANGplEnterDirectoryName; LANGOverwriteQuestion := LANGplOverwriteQuestion; LANGOverwriteButton_Caption := LANGplOverwriteButton_Caption; LANGOverwriteAllButton_Caption := LANGplOverwriteAllButton_Caption; LANGSkipButton_Caption := LANGplSkipButton_Caption; LANGOverwriteAllOlderButton_Caption := LANGplOverwriteAllOlderButton_Caption; LANGSkipAllButton_Caption := LANGplSkipAllButton_Caption; LANGRenameButton_Caption := LANGplRenameButton_Caption; LANGAppendButton_Caption := LANGplAppendButton_Caption; LANGRename := LANGplRename; LANGRenameFile := LANGplRenameFile; LANGIgnoreButton_Caption := LANGplIgnoreButton_Caption; LANGProgress := LANGplProgress; LANGCancel := LANGplCancel; LANGDelete := LANGplDelete; LANGSpecifyFileType := LANGplSpecifyFileType; LANGRemoveDirectory := LANGplRemoveDirectory; LANGDoYouWantToDeleteItWithAllItsFilesAndSubdirectories := LANGplDoYouWantToDeleteItWithAllItsFilesAndSubdirectories; LANGRetry := LANGplRetry; LANGDeleteButton_Caption := LANGplDeleteButton_Caption; LANGAll := LANGplAll; LANGCopyFilesSC := LANGplCopyFilesSC; LANGAppendQuestion := LANGplAppendQuestion; LANGPreparingList := LANGplPreparingList; LANGYouMustSelectAValidFile := LANGplYouMustSelectAValidFile; LANGmiVerifyChecksums := LANGplmiVerifyChecksums; LANGVerifyChecksumsCaption := LANGplVerifyChecksumsCaption; LANGCheckButtonCaptionCheck := LANGplCheckButtonCaptionCheck; LANGCheckButtonCaptionStop := LANGplCheckButtonCaptionStop; LANGFileListTooltip := LANGplFileListTooltip; LANGFilenameColumnCaption := LANGplFilenameColumnCaption; LANGTheFileSYouAreTryingToOpenIsQuiteBig := LANGplTheFileSYouAreTryingToOpenIsQuiteBig; LANGAnErrorOccuredWhileInitializingMemoryBlock := LANGplAnErrorOccuredWhileInitializingMemoryBlock; LANGAnErrorOccuredWhileOpeningFileSS := LANGplAnErrorOccuredWhileOpeningFileSS; LANGAnErrorOccuredWhileReadingFileSS := LANGplAnErrorOccuredWhileReadingFileSS; LANGChecksumNotChecked := LANGplChecksumNotChecked; LANGChecksumChecking := LANGplChecksumChecking; LANGChecksumInterrupted := LANGplChecksumInterrupted; LANGChecksumDOK := LANGplChecksumDOK; LANGmiCreateChecksumsCaption := LANGplmiCreateChecksumsCaption; LANGYouMustSelectAtLeastOneFileToCalculateChecksum := LANGplYouMustSelectAtLeastOneFileToCalculateChecksum; LANGCreateChecksumsCaption := LANGplCreateChecksumsCaption; LANGCCHKSUMPage1Text := LANGplCCHKSUMPage1Text; LANGCCHKSUMPage4Text := LANGplCCHKSUMPage4Text; LANGCCHKSUMPage6Text := LANGplCCHKSUMPage6Text; LANGCCHKSUMPage7Text := LANGplCCHKSUMPage7Text; LANGCCHKSUMPage1Title := LANGplCCHKSUMPage1Title; LANGCCHKSUMPage2Title := LANGplCCHKSUMPage2Title; LANGCCHKSUMPage3Title := LANGplCCHKSUMPage3Title; LANGCCHKSUMPage5Title := LANGplCCHKSUMPage5Title; LANGCCHKSUMPage6Title := LANGplCCHKSUMPage6Title; LANGCCHKSUMPage7Title := LANGplCCHKSUMPage7Title; LANGCCHKSUMSFVFile := LANGplCCHKSUMSFVFile; LANGCCHKSUMMD5sumFile := LANGplCCHKSUMMD5sumFile; LANGCCHKSUMFileName := LANGplCCHKSUMFileName; LANGCCHKSUMCreateSeparateChecksumFiles := LANGplCCHKSUMCreateSeparateChecksumFiles; LANGCCHKSUMNowProcessingFileS := LANGplCCHKSUMNowProcessingFileS; LANGCCHKSUMFinishCaption := LANGplCCHKSUMFinishCaption; LANGCCHKSUMAreYouSureYouWantToAbortTheProcessing := LANGplCCHKSUMAreYouSureYouWantToAbortTheProcessing; LANGCCHKSUMAnErrorOccuredWhileOpeningFileSS := LANGplCCHKSUMAnErrorOccuredWhileOpeningFileSS; LANGCCHKSUMAnErrorOccuredWhileReadingFileSS := LANGplCCHKSUMAnErrorOccuredWhileReadingFileSS; LANGCCHKSUMAnErrorOccuredWhileWritingFileSS := LANGplCCHKSUMAnErrorOccuredWhileWritingFileSS; LANGAnErrorOccuredWhileWritingFileSS := LANGplAnErrorOccuredWhileWritingFileSS; LANGTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt := LANGplTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt; LANGTheTargetFileSCannotBeRemovedS := LANGplTheTargetFileSCannotBeRemovedS; LANGMergeCaption := LANGplMergeCaption; LANGPleaseInsertNextDiskOrGiveDifferentLocation := LANGplPleaseInsertNextDiskOrGiveDifferentLocation; LANGMergeOfSSucceeded := LANGplMergeOfSSucceeded; LANGWarningCreatedFileFailsCRCCheck := LANGplWarningCreatedFileFailsCRCCheck; LANGMergeOfSSucceeded_NoCRCFileAvailable := LANGplMergeOfSSucceeded_NoCRCFileAvailable; LANGMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory := LANGplMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory; LANGPopupDefault := LANGplPopupDefault; LANGPopupOpenWith := LANGplPopupOpenWith; LANGPopupViewFile := LANGplPopupViewFile; LANGPopupEditFile := LANGplPopupEditFile; LANGPopupMakeSymlink := LANGplPopupMakeSymlink; LANGPopupRename := LANGplPopupRename; LANGPopupDelete := LANGplPopupDelete; LANGDialogChangePermissions := LANGplDialogChangePermissions; LANGCouldNotBeChmoddedS := LANGplCouldNotBeChmoddedS; LANGDialogChangeOwner := LANGplDialogChangeOwner; LANGCouldNotBeChownedS := LANGplCouldNotBeChownedS; LANGDialogMakeSymlink := LANGplDialogMakeSymlink; LANGDialogEditSymlink := LANGplDialogEditSymlink; LANGFEditSymlink_Caption := LANGplFEditSymlink_Caption; LANGFEditSymlink_SymbolicLinkFilename := LANGplFEditSymlink_SymbolicLinkFilename; LANGFEditSymlink_SymbolicLinkPointsTo := LANGplFEditSymlink_SymbolicLinkPointsTo; LANGFChmod_Caption := LANGplFChmod_Caption; LANGFChmod_PermissionFrame := LANGplFChmod_PermissionFrame; LANGFChmod_FileFrame := LANGplFChmod_FileFrame; LANGFChmod_ApplyRecursivelyFor := LANGplFChmod_ApplyRecursivelyFor; LANGFChmod_miAllFiles := LANGplFChmod_miAllFiles; LANGFChmod_miDirectories := LANGplFChmod_miDirectories; LANGFChmod_OctalLabel := LANGplFChmod_OctalLabel; LANGFChmod_SUID := LANGplFChmod_SUID; LANGFChmod_SGID := LANGplFChmod_SGID; LANGFChmod_Sticky := LANGplFChmod_Sticky; LANGFChmod_RUSR := LANGplFChmod_RUSR; LANGFChmod_WUSR := LANGplFChmod_WUSR; LANGFChmod_XUSR := LANGplFChmod_XUSR; LANGFChmod_RGRP := LANGplFChmod_RGRP; LANGFChmod_WGRP := LANGplFChmod_WGRP; LANGFChmod_XGRP := LANGplFChmod_XGRP; LANGFChmod_ROTH := LANGplFChmod_ROTH; LANGFChmod_WOTH := LANGplFChmod_WOTH; LANGFChmod_TextLabel := LANGplFChmod_TextLabel; LANGFChmod_FileLabel := LANGplFChmod_FileLabel; LANGFChown_Caption := LANGplFChown_Caption; LANGFChown_OwnerFrame := LANGplFChown_OwnerFrame; LANGFChown_GroupFrame := LANGplFChown_GroupFrame; LANGFChown_FileFrame := LANGplFChown_FileFrame; LANGFChown_ApplyRecursively := LANGplFChown_ApplyRecursively; LANGFSymlink_Caption := LANGplFSymlink_Caption; LANGFSymlink_ExistingFilename := LANGplFSymlink_ExistingFilename; LANGFSymlink_SymlinkFilename := LANGplFSymlink_SymlinkFilename; LANGmnuBookmarks_Caption := LANGplmnuBookmarks_Caption; LANGmiAddBookmark_Caption := LANGplmiAddBookmark_Caption; LANGmiEditBookmarks_Caption := LANGplmiEditBookmarks_Caption; LANGBookmarkPopupDelete_Caption := LANGplBookmarkPopupDelete_Caption; LANGmiPreferences_Caption := LANGplmiPreferences_Caption; LANGTheCurrentDirectoryAlreadyExistsInTheBookmarksList := LANGplTheCurrentDirectoryAlreadyExistsInTheBookmarksList; LANGSomeOtherInstanceChanged := LANGplSomeOtherInstanceChanged; LANGPreferences_Caption := LANGplPreferences_Caption; LANGPreferences_TitleLabel_Caption := LANGplPreferences_TitleLabel_Caption; LANGPreferences_GeneralPage := LANGplPreferences_GeneralPage; LANGPreferences_FontsPage := LANGplPreferences_FontsPage; LANGPreferences_ColorsPage := LANGplPreferences_ColorsPage; LANGPreferences_RowHeight := LANGplPreferences_RowHeight; LANGPreferences_NumHistoryItems := LANGplPreferences_NumHistoryItems; LANGPreferences_ClearReadonlyAttribute := LANGplPreferences_ClearReadonlyAttribute; LANGPreferences_DisableMouseRenaming := LANGplPreferences_DisableMouseRenaming; LANGPreferences_ShowFiletypeIconsInList := LANGplPreferences_ShowFiletypeIconsInList; LANGPreferences_ExternalAppsLabel := LANGplPreferences_ExternalAppsLabel; LANGPreferences_Viewer := LANGplPreferences_Viewer; LANGPreferences_Editor := LANGplPreferences_Editor; LANGPreferences_Terminal := LANGplPreferences_Terminal; LANGPreferences_ListFont := LANGplPreferences_ListFont; LANGPreferences_Change := LANGplPreferences_Change; LANGPreferences_UseDefaultFont := LANGplPreferences_UseDefaultFont; LANGPreferences_Foreground := LANGplPreferences_Foreground; LANGPreferences_Background := LANGplPreferences_Background; LANGPreferences_NormalItem := LANGplPreferences_NormalItem; LANGPreferences_SetToDefaultToUseGTKThemeColors := LANGplPreferences_SetToDefaultToUseGTKThemeColors; LANGPreferences_Cursor := LANGplPreferences_Cursor; LANGPreferences_InactiveItem := LANGplPreferences_InactiveItem; LANGPreferences_SelectedItem := LANGplPreferences_SelectedItem; LANGPreferences_LinkItem := LANGplPreferences_LinkItem; LANGPreferences_LinkItemHint := LANGplPreferences_LinkItemHint; LANGPreferences_DotFileItem := LANGplPreferences_DotFileItem; LANGPreferences_DotFileItemHint := LANGplPreferences_DotFileItemHint; LANGPreferences_BrowseForApplication := LANGplPreferences_BrowseForApplication; LANGPreferences_DefaultS := LANGplPreferences_DefaultS; LANGPreferences_SelectFont := LANGplPreferences_SelectFont; LANGBookmarkButton_Tooltip := LANGplBookmarkButton_Tooltip; LANGUpButton_Tooltip := LANGplUpButton_Tooltip; LANGRootButton_Tooltip := LANGplRootButton_Tooltip; LANGHomeButton_Tooltip := LANGplHomeButton_Tooltip; LANGLeftEqualButton_Tooltip := LANGplLeftEqualButton_Tooltip; LANGRightEqualButton_Tooltip := LANGplRightEqualButton_Tooltip; LANGmiShowDirectorySizes_Caption := LANGplmiShowDirectorySizes_Caption; LANGmiTargetSource_Caption := LANGplmiTargetSource_Caption; LANGFileTypeDirectory := LANGplFileTypeDirectory; LANGFileTypeFile := LANGplFileTypeFile; LANGFileTypeMetafile := LANGplFileTypeMetafile; LANGPreferencesPanelsPage := LANGplPreferencesPanelsPage; LANGPreferencesApplicationsPage := LANGplPreferencesApplicationsPage; LANGPreferencesExperimentalPage := LANGplPreferencesExperimentalPage; LANGPreferencesSelectAllDirectoriesCheckBox_Caption := LANGplPreferencesSelectAllDirectoriesCheckBox_Caption; LANGPreferencesNewStyleAltOCheckBox_Caption := LANGplPreferencesNewStyleAltOCheckBox_Caption; LANGPreferencesNewStyleAltOCheckBox_Tooltip := LANGplPreferencesNewStyleAltOCheckBox_Tooltip; LANGPreferencesShowFuncButtonsCheckBox_Caption := LANGplPreferencesShowFuncButtonsCheckBox_Caption; LANGPreferencesSizeFormatLabel_Caption := LANGplPreferencesSizeFormatLabel_Caption; LANGPreferencesmiSizeFormat1 := LANGplPreferencesmiSizeFormat1; LANGPreferencesmiSizeFormat6 := LANGplPreferencesmiSizeFormat6; LANGPreferencesAutodetectXApp := LANGplPreferencesAutodetectXApp; LANGPreferencesAlwaysRunInTerminal := LANGplPreferencesAlwaysRunInTerminal; LANGPreferencesNeverRunInTerminal := LANGplPreferencesNeverRunInTerminal; LANGPreferencesCmdLineBehaviourLabel_Caption := LANGplPreferencesCmdLineBehaviourLabel_Caption; LANGPreferencesFeatures := LANGplPreferencesFeatures; LANGPreferencesDisableMouseRename_Tooltip := LANGplPreferencesDisableMouseRename_Tooltip; LANGPreferencesDisableFileTipsCheckBox_Caption := LANGplPreferencesDisableFileTipsCheckBox_Caption; LANGPreferencesDisableFileTipsCheckBox_Tooltip := LANGplPreferencesDisableFileTipsCheckBox_Tooltip; LANGPreferencesShow := LANGplPreferencesShow; LANGPreferencesDisableDirectoryBracketsCheckBox_Caption := LANGplPreferencesDisableDirectoryBracketsCheckBox_Caption; LANGPreferencesOctalPermissionsCheckBox_Caption := LANGplPreferencesOctalPermissionsCheckBox_Caption; LANGPreferencesOctalPermissionsCheckBox_Tooltip := LANGplPreferencesOctalPermissionsCheckBox_Tooltip; LANGPreferencesMovement := LANGplPreferencesMovement; LANGPreferencesLynxLikeMotionCheckBox_Caption := LANGplPreferencesLynxLikeMotionCheckBox_Caption; LANGPreferencesInsertMovesDownCheckBox_Caption := LANGplPreferencesInsertMovesDownCheckBox_Caption; LANGPreferencesSpaceMovesDownCheckBox_Caption := LANGplPreferencesSpaceMovesDownCheckBox_Caption; LANGPreferencesViewer := LANGplPreferencesViewer; LANGPreferencesCommandSC := LANGplPreferencesCommandSC; LANGPreferencesUseInternalViewer := LANGplPreferencesUseInternalViewer; LANGPreferencesEditor := LANGplPreferencesEditor; LANGPreferencesTerminal := LANGplPreferencesTerminal; LANGPreferencesExperimentalFeatures := LANGplPreferencesExperimentalFeatures; LANGPreferencesExperimentalWarningLabel_Caption := LANGplPreferencesExperimentalWarningLabel_Caption; LANGPreferencesFocusRefreshCheckBox_Caption := LANGplPreferencesFocusRefreshCheckBox_Caption; LANGPreferencesFocusRefreshCheckBox_Tooltip := LANGplPreferencesFocusRefreshCheckBox_Tooltip; LANGPreferencesWMCompatModeCheckBox_Caption := LANGplPreferencesWMCompatModeCheckBox_Caption; LANGPreferencesWMCompatModeCheckBox_Tooltip := LANGplPreferencesWMCompatModeCheckBox_Tooltip; LANGPreferencesCompatUseLibcSystemCheckBox_Caption := LANGplPreferencesCompatUseLibcSystemCheckBox_Caption; LANGPreferencesCompatUseLibcSystemCheckBox_Tooltip := LANGplPreferencesCompatUseLibcSystemCheckBox_Tooltip; LANGmiSearchCaption2 := LANGplmiSearchCaption2; LANGmiNoMounterBarCaption := LANGplmiNoMounterBarCaption; LANGmiShowOneMounterBarCaption := LANGplmiShowOneMounterBarCaption; LANGmiShowTwoMounterBarCaption := LANGplmiShowTwoMounterBarCaption; LANGmnuNetworkCaption := LANGplmnuNetworkCaption; LANGmiConnectionsCaption := LANGplmiConnectionsCaption; LANGmiOpenConnectionCaption := LANGplmiOpenConnectionCaption; LANGmiQuickConnectCaption := LANGplmiQuickConnectCaption; LANGmnuPluginsCaption := LANGplmnuPluginsCaption; LANGmiTestPluginCaption := LANGplmiTestPluginCaption; LANGmiMounterSettingsCaption := LANGplmiMounterSettingsCaption; LANGmiColumnsCaption := LANGplmiColumnsCaption; LANGmiSavePositionCaption := LANGplmiSavePositionCaption; LANGmiMountCaption := LANGplmiMountCaption; LANGmiUmountCaption := LANGplmiUmountCaption; LANGmiEjectCaption := LANGplmiEjectCaption; LANGmiDuplicateTabCaption := LANGplmiDuplicateTabCaption; LANGmiCloseTabCaption := LANGplmiCloseTabCaption; LANGmiCloseAllTabsCaption := LANGplmiCloseAllTabsCaption; LANGCannotDetermineDestinationEngine := LANGplCannotDetermineDestinationEngine; LANGCannotLoadFile := LANGplCannotLoadFile; LANGMountPointDevice := LANGplMountPointDevice; LANGMountSC := LANGplMountSC; LANGNoPluginsFound := LANGplNoPluginsFound; LANGPluginAbout := LANGplPluginAbout; LANGCouldntOpenURI := LANGplCouldntOpenURI; LANGPluginAboutInside := LANGplPluginAboutInside; LANGAreYouSureCloseAllTabs := LANGplAreYouSureCloseAllTabs; LANGCouldntOpenURIArchive := LANGplCouldntOpenURIArchive; LANGThereIsNoModuleAvailable := LANGplThereIsNoModuleAvailable; LANGIgnoreError := LANGplIgnoreError; LANGErrorMount := LANGplErrorMount; LANGErrorUmount := LANGplErrorUmount; LANGErrorEject := LANGplErrorEject; LANGMounterPrefs_Caption := LANGplMounterPrefs_Caption; LANGMounterPrefs_TitleLabelCaption := LANGplMounterPrefs_TitleLabelCaption; LANGMounterPrefs_ListViewFrameCaption := LANGplMounterPrefs_ListViewFrameCaption; LANGMounterPrefs_MountName := LANGplMounterPrefs_MountName; LANGMounterPrefs_MountPoint := LANGplMounterPrefs_MountPoint; LANGMounterPrefs_Device := LANGplMounterPrefs_Device; LANGMounterPrefs_MoveUpButtonTooltip := LANGplMounterPrefs_MoveUpButtonTooltip; LANGMounterPrefs_MoveDownButtonTooltip := LANGplMounterPrefs_MoveDownButtonTooltip; LANGMounterPrefs_UseFSTabDefaultsCheckBox := LANGplMounterPrefs_UseFSTabDefaultsCheckBox; LANGMounterPrefs_UseFSTabDefaultsCheckBoxTooltip := LANGplMounterPrefs_UseFSTabDefaultsCheckBoxTooltip; LANGMounterPrefs_ToggleModeCheckBox := LANGplMounterPrefs_ToggleModeCheckBox; LANGMounterPrefs_ToggleModeCheckBoxTooltip := LANGplMounterPrefs_ToggleModeCheckBoxTooltip; LANGMounterPrefs_PropertiesFrameCaption := LANGplMounterPrefs_PropertiesFrameCaption; LANGMounterPrefs_DisplayTextLabelCaption := LANGplMounterPrefs_DisplayTextLabelCaption; LANGMounterPrefs_MountPointLabelCaption := LANGplMounterPrefs_MountPointLabelCaption; LANGMounterPrefs_MountDeviceLabelCaption := LANGplMounterPrefs_MountDeviceLabelCaption; LANGMounterPrefs_DeviceTypeLabelCaption := LANGplMounterPrefs_DeviceTypeLabelCaption; LANGMounterPrefs_miLocalDiskCaption := LANGplMounterPrefs_miLocalDiskCaption; LANGMounterPrefs_miRemovableCaption := LANGplMounterPrefs_miRemovableCaption; LANGMounterPrefs_miCDCaption := LANGplMounterPrefs_miCDCaption; LANGMounterPrefs_miFloppyCaption := LANGplMounterPrefs_miFloppyCaption; LANGMounterPrefs_miNetworkCaption := LANGplMounterPrefs_miNetworkCaption; LANGMounterPrefs_MountCommandLabelCaption := LANGplMounterPrefs_MountCommandLabelCaption; LANGMounterPrefs_UmountCommandLabelCaption := LANGplMounterPrefs_UmountCommandLabelCaption; LANGMounterPrefs_MountCommandEntryTooltip := LANGplMounterPrefs_MountCommandEntryTooltip; LANGMounterPrefs_UmountCommandEntryTooltip := LANGplMounterPrefs_UmountCommandEntryTooltip; LANGMounterPrefs_IconLabelCaption := LANGplMounterPrefs_IconLabelCaption; LANGConnMgr_Caption := LANGplConnMgr_Caption; LANGConnMgr_ConnectButton := LANGplConnMgr_ConnectButton; LANGConnMgr_OpenConnection := LANGplConnMgr_OpenConnection; LANGConnMgr_NameColumn := LANGplConnMgr_NameColumn; LANGConnMgr_URIColumn := LANGplConnMgr_URIColumn; LANGConnMgr_AddConnectionButtonCaption := LANGplConnMgr_AddConnectionButtonCaption; LANGConnMgr_AddConnectionButtonTooltip := LANGplConnMgr_AddConnectionButtonTooltip; LANGConnMgr_EditButtonCaption := LANGplConnMgr_EditButtonCaption; LANGConnMgr_EditButtonTooltip := LANGplConnMgr_EditButtonTooltip; LANGConnMgr_RemoveButtonCaption := LANGplConnMgr_RemoveButtonCaption; LANGConnMgr_RemoveButtonTooltip := LANGplConnMgr_RemoveButtonTooltip; LANGConnMgr_DoYouWantDelete := LANGplConnMgr_DoYouWantDelete; LANGConnProp_FTP := LANGplConnProp_FTP; LANGConnProp_SFTP := LANGplConnProp_SFTP; LANGConnProp_SMB := LANGplConnProp_SMB; LANGConnProp_HTTP := LANGplConnProp_HTTP; LANGConnProp_HTTPS := LANGplConnProp_HTTPS; LANGConnProp_Other := LANGplConnProp_Other; LANGConnProp_Caption := LANGplConnProp_Caption; LANGConnProp_VFSModule := LANGplConnProp_VFSModule; LANGConnProp_URI := LANGplConnProp_URI; LANGConnProp_URIEntryTooltip := LANGplConnProp_URIEntryTooltip; LANGConnProp_DetailedInformations := LANGplConnProp_DetailedInformations; LANGConnProp_Name := LANGplConnProp_Name; LANGConnProp_Server := LANGplConnProp_Server; LANGConnProp_Username := LANGplConnProp_Username; LANGConnProp_UserNameEntryTooltip := LANGplConnProp_UserNameEntryTooltip; LANGConnProp_Password := LANGplConnProp_Password; LANGConnProp_TargetDirectory := LANGplConnProp_TargetDirectory; LANGConnProp_ServiceType := LANGplConnProp_ServiceType; LANGConnProp_MaskPassword := LANGplConnProp_MaskPassword; LANGConnProp_MenuItemCaption := LANGplConnProp_MenuItemCaption; LANGConnLogin_Caption := LANGplConnLogin_Caption; LANGConnLogin_Login := LANGplConnLogin_Login; LANGConnLogin_ExperimentalWarningLabelCaption := LANGplConnLogin_ExperimentalWarningLabelCaption; LANGConnLogin_Username := LANGplConnLogin_Username; LANGConnLogin_Password := LANGplConnLogin_Password; LANGConnLogin_AnonymousCheckButton := LANGplConnLogin_AnonymousCheckButton; LANGColumns_Caption := LANGplColumns_Caption; LANGColumns_Title := LANGplColumns_Title; LANGColumns_MoveUpButtonTooltip := LANGplColumns_MoveUpButtonTooltip; LANGColumns_MoveDownButtonTooltip := LANGplColumns_MoveDownButtonTooltip; LANGColumns_TitlesLongName := LANGplColumns_TitlesLongName; LANGColumns_TitlesLongNameExt := LANGplColumns_TitlesLongNameExt; LANGColumns_TitlesLongExt := LANGplColumns_TitlesLongExt; LANGColumns_TitlesLongSize := LANGplColumns_TitlesLongSize; LANGColumns_TitlesLongDateTime := LANGplColumns_TitlesLongDateTime; LANGColumns_TitlesLongDate := LANGplColumns_TitlesLongDate; LANGColumns_TitlesLongTime := LANGplColumns_TitlesLongTime; LANGColumns_TitlesLongUser := LANGplColumns_TitlesLongUser; LANGColumns_TitlesLongGroup := LANGplColumns_TitlesLongGroup; LANGColumns_TitlesLongAttr := LANGplColumns_TitlesLongAttr; LANGColumns_TitlesShortName := LANGplColumns_TitlesShortName; LANGColumns_TitlesShortNameExt := LANGplColumns_TitlesShortNameExt; LANGColumns_TitlesShortExt := LANGplColumns_TitlesShortExt; LANGColumns_TitlesShortSize := LANGplColumns_TitlesShortSize; LANGColumns_TitlesShortDateTime := LANGplColumns_TitlesShortDateTime; LANGColumns_TitlesShortDate := LANGplColumns_TitlesShortDate; LANGColumns_TitlesShortTime := LANGplColumns_TitlesShortTime; LANGColumns_TitlesShortUser := LANGplColumns_TitlesShortUser; LANGColumns_TitlesShortGroup := LANGplColumns_TitlesShortGroup; LANGColumns_TitlesShortAttr := LANGplColumns_TitlesShortAttr; LANGTestPlugin_Caption := LANGplTestPlugin_Caption; LANGTestPlugin_Title := LANGplTestPlugin_Title; LANGTestPlugin_ExperimentalWarningLabelCaption := LANGplTestPlugin_ExperimentalWarningLabelCaption; LANGTestPlugin_Plugin := LANGplTestPlugin_Plugin; LANGTestPlugin_Command := LANGplTestPlugin_Command; LANGTestPlugin_Username := LANGplTestPlugin_Username; LANGTestPlugin_Password := LANGplTestPlugin_Password; LANGTestPlugin_AnonymousCheckButton := LANGplTestPlugin_AnonymousCheckButton; LANGTestPlugin_NoPluginsFound := LANGplTestPlugin_NoPluginsFound; LANGRemoteWait_Caption := LANGplRemoteWait_Caption; LANGRemoteWait_OperationInProgress := LANGplRemoteWait_OperationInProgress; LANGRemoteWait_ItemsFound := LANGplRemoteWait_ItemsFound; LANGSearch_Bytes := LANGplSearch_Bytes; LANGSearch_kB := LANGplSearch_kB; LANGSearch_MB := LANGplSearch_MB; LANGSearch_days := LANGplSearch_days; LANGSearch_weeks := LANGplSearch_weeks; LANGSearch_months := LANGplSearch_months; LANGSearch_years := LANGplSearch_years; LANGSearch_Caption := LANGplSearch_Caption; LANGSearch_General := LANGplSearch_General; LANGSearch_Advanced := LANGplSearch_Advanced; LANGSearch_SearchResults := LANGplSearch_SearchResults; LANGSearch_SearchFor := LANGplSearch_SearchFor; LANGSearch_FileMaskEntryTooltip := LANGplSearch_FileMaskEntryTooltip; LANGSearch_SearchIn := LANGplSearch_SearchIn; LANGSearch_SearchArchivesCheckButton := LANGplSearch_SearchArchivesCheckButton; LANGSearch_FindText := LANGplSearch_FindText; LANGSearch_FindTextEntryTooltip := LANGplSearch_FindTextEntryTooltip; LANGSearch_CaseSensitiveCheckButton := LANGplSearch_CaseSensitiveCheckButton; LANGSearch_StayCurrentFSCheckButton := LANGplSearch_StayCurrentFSCheckButton; LANGSearch_CaseSensitiveMatchCheckButton := LANGplSearch_CaseSensitiveMatchCheckButton; LANGSearch_Size := LANGplSearch_Size; LANGSearch_Date := LANGplSearch_Date; LANGSearch_BiggerThan := LANGplSearch_BiggerThan; LANGSearch_SmallerThan := LANGplSearch_SmallerThan; LANGSearch_ModifiedBetweenRadioButton := LANGplSearch_ModifiedBetweenRadioButton; LANGSearch_NotModifiedAfterRadioButton := LANGplSearch_NotModifiedAfterRadioButton; LANGSearch_ModifiedLastRadioButton := LANGplSearch_ModifiedLastRadioButton; LANGSearch_ModifiedNotLastRadionButton := LANGplSearch_ModifiedNotLastRadionButton; LANGSearch_ModifiedBetweenEntry1 := LANGplSearch_ModifiedBetweenEntry1; LANGSearch_ViewButtonCaption := LANGplSearch_ViewButtonCaption; LANGSearch_NewSearchButtonCaption := LANGplSearch_NewSearchButtonCaption; LANGSearch_GoToFileButtonCaption := LANGplSearch_GoToFileButtonCaption; LANGSearch_FeedToListboxButtonCaption := LANGplSearch_FeedToListboxButtonCaption; LANGSearch_StatusSC := LANGplSearch_StatusSC; LANGSearch_Ready := LANGplSearch_Ready; LANGSearch_PreparingToSearch := LANGplSearch_PreparingToSearch; LANGSearch_SearchInProgress := LANGplSearch_SearchInProgress; LANGSearch_UserCancelled := LANGplSearch_UserCancelled; LANGSearch_SearchFinished := LANGplSearch_SearchFinished; LANGSearch_FilesFound := LANGplSearch_FilesFound; LANGSearch_And := LANGplSearch_And; LANGCloseOpenConnection := LANGplCloseOpenConnection; LANGDuplicateTabWarning := LANGplDuplicateTabWarning; LANGDontShowAgain := LANGplDontShowAgain; LANGSwitchOtherPanelWarning := LANGplSwitchOtherPanelWarning; LANGOpenConnectionsWarning := LANGplOpenConnectionsWarning; LANGmiDisconnect_Caption := LANGplmiDisconnect_Caption; LANGDisconnectButton_Tooltip := LANGplDisconnectButton_Tooltip; LANGLeaveArchiveButton_Tooltip := LANGplLeaveArchiveButton_Tooltip; LANGOpenTerminalButton_Tooltip := LANGplOpenTerminalButton_Tooltip; LANGOpenTerminalButton_Caption := LANGplOpenTerminalButton_Caption; LANGShowTextUIDsCheckBox_Caption := LANGplShowTextUIDsCheckBox_Caption; LANGShowTextUIDsCheckBox_Tooltip := LANGplShowTextUIDsCheckBox_Tooltip; LANGmiNewTab_Caption := LANGplmiNewTab_Caption; LANGFilePopupMenu_Properties := LANGplFilePopupMenu_Properties; LANGCommandEntry_Tooltip := LANGplCommandEntry_Tooltip; LANGmiFiles_Caption := LANGplmiFiles_Caption; LANGPasswordButton_Tooltip := LANGplPasswordButton_Tooltip; LANGHandleRunFromArchive_Bytes := LANGplHandleRunFromArchive_Bytes; LANGHandleRunFromArchive_FileTypeDesc_Unknown := LANGplHandleRunFromArchive_FileTypeDesc_Unknown; LANGHandleRunFromArchive_NotAssociated := LANGplHandleRunFromArchive_NotAssociated; LANGHandleRunFromArchive_SelfExecutable := LANGplHandleRunFromArchive_SelfExecutable; LANGHandleRunFromArchive_CouldntCreateTemporaryDirectory := LANGplHandleRunFromArchive_CouldntCreateTemporaryDirectory; LANGFRunFromVFS_Caption := LANGplFRunFromVFS_Caption; LANGFRunFromVFS_TitleLabel := LANGplFRunFromVFS_TitleLabel; LANGFRunFromVFS_FileNameLabel := LANGplFRunFromVFS_FileNameLabel; LANGFRunFromVFS_FileTypeLabel := LANGplFRunFromVFS_FileTypeLabel; LANGFRunFromVFS_SizeLabel := LANGplFRunFromVFS_SizeLabel; LANGFRunFromVFS_PackedSizeLabel := LANGplFRunFromVFS_PackedSizeLabel; LANGFRunFromVFS_DateLabel := LANGplFRunFromVFS_DateLabel; LANGFRunFromVFS_InfoLabel := LANGplFRunFromVFS_InfoLabel; LANGFRunFromVFS_OpensWithLabel := LANGplFRunFromVFS_OpensWithLabel; LANGFRunFromVFS_ExecuteButton := LANGplFRunFromVFS_ExecuteButton; LANGFRunFromVFS_ExecuteAllButton := LANGplFRunFromVFS_ExecuteAllButton; LANGFSetPassword_Caption := LANGplFSetPassword_Caption; LANGFSetPassword_Label1_Caption := LANGplFSetPassword_Label1_Caption; LANGFSetPassword_Label2_Caption := LANGplFSetPassword_Label2_Caption; LANGFSetPassword_ShowPasswordCheckButton := LANGplFSetPassword_ShowPasswordCheckButton; LANGCopyFileNamesToClipboard := LANGplCopyFileNamesToClipboard; LANGCopyFullPathNamesToClipboard := LANGplCopyFullPathNamesToClipboard; LANGCopyPathToClipboard := LANGplCopyPathToClipboard; LANGPreferences_DateFormatLabel_Caption := LANGplPreferences_DateFormatLabel_Caption; LANGPreferences_System := LANGplPreferences_System; LANGPreferences_Custom := LANGplPreferences_Custom; LANGPreferences_CustomDateFormatEntry_Tooltip := LANGplPreferences_CustomDateFormatEntry_Tooltip; LANGPreferences_TimeFormatLabel_Caption := LANGplPreferences_TimeFormatLabel_Caption; LANGPreferences_CustomTimeFormatEntry_Tooltip := LANGplPreferences_CustomTimeFormatEntry_Tooltip; LANGPreferences_DateTimeFormatLabel_Caption := LANGplPreferences_DateTimeFormatLabel_Caption; LANGPreferences_QuickRenameSkipExtCheckBox := LANGplPreferences_QuickRenameSkipExtCheckBox; LANGPreferences_QuickRenameSkipExtCheckBox_Tooltip := LANGplPreferences_QuickRenameSkipExtCheckBox_Tooltip; LANGPreferences_SortDirectoriesLikeFilesCheckBox := LANGplPreferences_SortDirectoriesLikeFilesCheckBox; LANGPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip := LANGplPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip; LANGPreferences_QuickSearchLabel_Caption := LANGplPreferences_QuickSearchLabel_Caption; LANGPreferences_QuickSearchOptionMenu_Tooltip := LANGplPreferences_QuickSearchOptionMenu_Tooltip; LANGPreferences_QuickSearch_Option1 := LANGplPreferences_QuickSearch_Option1; LANGPreferences_QuickSearch_Option2 := LANGplPreferences_QuickSearch_Option2; LANGPreferences_QuickSearch_Option3 := LANGplPreferences_QuickSearch_Option3; LANGPreferences_QuickSearch_Option4 := LANGplPreferences_QuickSearch_Option4; LANGPreferences_TempPathLabel_Caption := LANGplPreferences_TempPathLabel_Caption; LANGPreferences_VFSTempPathLabel_Caption := LANGplPreferences_VFSTempPathLabel_Caption; LANGPreferences_VFSTempPathEntry_Tooltip := LANGplPreferences_VFSTempPathEntry_Tooltip; LANGPreferences_RightClickSelectCheckBox := LANGplPreferences_RightClickSelectCheckBox; LANGPreferences_RightClickSelectCheckBox_Tooltip := LANGplPreferences_RightClickSelectCheckBox_Tooltip; LANGGtkMountOperation_ConnectAnonymously := LANGplGtkMountOperation_ConnectAnonymously; LANGGtkMountOperation_ConnectAsUser := LANGplGtkMountOperation_ConnectAsUser; LANGGtkMountOperation_Username := LANGplGtkMountOperation_Username; LANGGtkMountOperation_Domain := LANGplGtkMountOperation_Domain; LANGGtkMountOperation_Password := LANGplGtkMountOperation_Password; LANGGtkMountOperation_DoNotSavePassword := LANGplGtkMountOperation_DoNotSavePassword; LANGGtkMountOperation_ForgetPasswordImmediately := LANGplGtkMountOperation_ForgetPasswordImmediately; LANGGtkMountOperation_RememberPasswordUntilYouLogout := LANGplGtkMountOperation_RememberPasswordUntilYouLogout; LANGGtkMountOperation_SavePasswordInConnectionManager := LANGplGtkMountOperation_SavePasswordInConnectionManager; LANGGtkMountOperation_RememberForever := LANGplGtkMountOperation_RememberForever; LANGFSymlink_RelativePath := LANGplFSymlink_RelativePath; LANGFConnectionManager_DuplicateButton_Caption := LANGplFConnectionManager_DuplicateButton_Caption; LANGFConnectionManager_DuplicateButton_Tooltip := LANGplFConnectionManager_DuplicateButton_Tooltip; LANGFConnectionManager_DoNotSavePasswordsCheckBox_Label := LANGplFConnectionManager_DoNotSavePasswordsCheckBox_Label; LANGFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip := LANGplFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip; LANGFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label := LANGplFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label; LANGFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip := LANGplFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip; LANGFConnectionManager_DuplicateMenuItem_Caption := LANGplFConnectionManager_DuplicateMenuItem_Caption; LANGFQuickConnect_Caption := LANGplFQuickConnect_Caption; LANGFQuickConnect_TitleLabel_Caption := LANGplFQuickConnect_TitleLabel_Caption; LANGFQuickConnect_ConnectToURILabel_Caption := LANGplFQuickConnect_ConnectToURILabel_Caption; LANGLinkToS := LANGplLinkToS; LANGOpenDirectoryInBackgroundTab := LANGplOpenDirectoryInBackgroundTab; LANGTheActiveConnectionHasNotBeenSaved := LANGplTheActiveConnectionHasNotBeenSaved; LANGTheArchiveIsEncryptedAndRequiresPassword := LANGplTheArchiveIsEncryptedAndRequiresPassword; end; initialization AddTranslation('PL', @SetTranslation); AddTranslation('pl_PL', @SetTranslation); end. tuxcmd-0.6.70+dfsg/translations/UTranslation_SR.pas0000644000175000017500000030233111300022643021313 0ustar salvisalvi(* Tux Commander - UTranslation_SR - Serbian Localization constants Copyright (C) 2008 Nikola Radovanovic Copyright (C) 2005 Bojan Bozovic 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UTranslation_SR; interface implementation uses ULocale; const LANGsrF2Button_Caption = 'F2 - Преименуј'; LANGsrF3Button_Caption = 'F3 - Преглед'; LANGsrF4Button_Caption = 'F4 - Измена'; LANGsrF5Button_Caption = 'F5 - Копирај'; LANGsrF6Button_Caption = 'F6 - ПремеÑти'; LANGsrF7Button_Caption = 'F7 - ÐовиДир'; LANGsrF8Button_Caption = 'F8 - Обриши'; LANGsrmnuFile_Caption = '_Фајл'; LANGsrmnuMark_Caption = '_Обележи'; LANGsrmnuCommands_Caption = '_Команде'; LANGsrmnuHelp_Caption = '_Помоћ'; LANGsrmiExit_Caption = 'И_злаз'; LANGsrmiSelectGroup_Caption = 'Изабери _Групу...'; LANGsrmiUnselectGroup_Caption = '_Поништи Избор...'; LANGsrmiSelectAll_Caption = '_Обележи Све'; LANGsrmiUnselectAll_Caption = 'П_оништи Избор'; LANGsrmiInvertSelection_Caption = '_Окрени Избор'; LANGsrmiRefresh_Caption = '_ОÑвежи'; LANGsrmiAbout_Caption = '_О програму...'; LANGsrColumn1_Caption = 'Име'; LANGsrColumn2_Caption = 'ЕкÑÑ‚'; LANGsrColumn3_Caption = 'Величина'; LANGsrColumn4_Caption = 'Датум'; LANGsrColumn5_Caption = 'Ðтр'; LANGsrExpandSelection = 'Прошири избор'; LANGsrShrinkSelection = 'Смањи избор'; LANGsrNoMatchesFound = 'ÐиÑам пронашао поклапања'; LANGsrNoFilesSelected = 'Ðема изабраних фајлова!'; LANGsrSelectedFilesDirectories = '%d изабрани фајлови/директоријуми'; LANGsrDirectoryS = 'директоријум %s'; LANGsrFileS = 'фајл %s'; LANGsrDoYouReallyWantToDeleteTheS = 'Да ли Ñтварно желите да обришете %s ?'; LANGsrDoYouReallyWantToDeleteTheSS = 'Да ли Ñтварно желите да обришете %s ?'#10'%s'; LANGsrCopyFiles = 'Копирај фајлове'; LANGsrMoveRenameFiles = 'ПремеÑти/Преименуј фајлове'; LANGsrCopyDFileDirectoriesTo = 'Копирај %d фајл/директоријуме у'; LANGsrMoveRenameDFileDirectoriesTo = 'ПремеÑти/Преименуј %d фајл/директоријуме у'; LANGsrCopySC = 'Копирај:'; LANGsrMoveRenameSC = 'ПремеÑти/Преименуј:'; LANGsrQuickFind = ' Брза Претрага:'; LANGsrAboutString = 'Tux Commander'#10'Верзија %s'#10'Датум градње: %s'#10#10'Copyright (c) 2009 Tomas Bzatek'#10'Е-пошта: tbzatek@users.sourceforge.net'#10'Сајт: http://tuxcmd.sourceforge.net/'; LANGsrAboutStringGnome = 'верзија %s'#10'Датум градње: %s'#10'Сајт: http://tuxcmd.sourceforge.net/'; LANGsrDiskStatFmt = '%s од %s Ñлободно'; LANGsrDiskStatVolNameFmt = '[%s] %s од %s Ñлободно'; LANGsrStatusLineFmt = '%s од %s у %d од %d изабраних фајлова'; LANGsrPanelStrings : array[boolean] of string = ('деÑно', 'лево'); LANGsrDIR = '<ДИР>'; LANGsrErrorGettingListingForSPanel = 'Грешка при добављању лиÑтинга за %s панел:'#10' %s'#10#10'Путања = ''%s'''; LANGsrErrorGettingListingForSPanelNoPath = 'Грешка при добављању лиÑтинга за %s панел:'#10' %s'; LANGsrErrorCreatingNewDirectorySInSPanel = 'Грешка при прављењу новог директоријума ''%s'' у %s панелу:'#10' %s'; LANGsrErrorCreatingNewDirectorySInSPanelNoPath = 'Грешка при прављењу новог директоријума у %s панелу:'#10' %s'; LANGsrTheFileDirectory = 'Фајл/директоријум'; LANGsrCouldNotBeDeleted = 'није могуће обриÑати'; LANGsrCouldNotBeDeletedS = 'није могуће обриÑати: %s'; LANGsrUserCancelled = 'КориÑник поништио!'; LANGsrTheDirectorySIsNotEmpty = 'Директоријум %s није празан!'; LANGsrCannotCopyFile = 'Ðе могу да копирам фајл'; LANGsrCopyError = 'Грешка при копирању'; LANGsrMoveError = 'Грешка при премештању'; LANGsrOverwriteS = 'Препиши: %s'; LANGsrWithFileS = 'Фајлом: %s'; LANGsrOvewriteSBytesS = '%s бајта, %s'; LANGsrTheFile = 'Фајл'; LANGsrCopy = 'Копирај'; LANGsrMove = 'ПремеÑти'; LANGsrTheDirectory = 'Директоријум'; LANGsrTheSymbolicLink = 'Симболичка веза'; LANGsrCannotMoveFile = 'Ðе могу да премеÑтим фајл'; LANGsrCouldNotBeCreated = 'није могуће направити'; LANGsrCouldNotBeCreatedS = 'није могуће направити: %s'; LANGsrFromS = 'Од: %s'; LANGsrToS = 'За: %s'; LANGsrCannotCopyFileToItself = 'Ðе могу да копирам фајл у њега Ñамог'; LANGsrMemoryAllocationFailed = 'Премештање меморије није уÑпело:'; LANGsrCannotOpenSourceFile = 'Ðе могу да отворим изворни фајл'; LANGsrCannotOpenDestinationFile = 'Ðе могу да отворим одредишни фајл'; LANGsrCannotCloseDestinationFile = 'Ðе могу да затворим одредишни фајл'; LANGsrCannotCloseSourceFile = 'Ðе могу да затворим изворни фајл'; LANGsrCannotReadFromSourceFile = 'Ðе могу да читам из изворног фајла'; LANGsrCannotWriteToDestinationFile = 'Ðе могу да упиÑујем у одредишни фајл'; LANGsrUnknownException = 'Ðепознат Изузетак'; LANGsrNoAccess = 'Ðема ПриÑтупа'; LANGsrUnknownError = 'Ðепозната Грешка'; LANGsrCreateANewDirectory = 'Ðаправи нови директоријум'; LANGsrEnterDirectoryName = 'УнеÑите _име директоријума:'; LANGsrOverwriteQuestion = 'Препиши питање'; LANGsrOverwriteButton_Caption = '_Препиши'; LANGsrOverwriteAllButton_Caption = 'Препиши _Ñве'; LANGsrSkipButton_Caption = '_ПреÑкочи'; LANGsrOverwriteAllOlderButton_Caption = 'Препиши Ñве ÑÑ‚_арије'; LANGsrSkipAllButton_Caption = 'П_реÑкочи Ñве'; LANGsrRenameButton_Caption = '_Преименуј'; LANGsrAppendButton_Caption = 'П_римени'; LANGsrRename = 'Преименуј'; LANGsrRenameFile = 'Преименуј фајл ''%s'' у'; LANGsrIgnoreButton_Caption = '_Игнориши'; LANGsrProgress = 'Ðапредак'; LANGsrCancel = '_Поништи'; LANGsrDelete = 'Обриши:'; LANGsrSpecifyFileType = '_Прецизирајте врÑте фајлова:'; LANGsrRemoveDirectory = 'Уклони директоријум'; LANGsrDoYouWantToDeleteItWithAllItsFilesAndSubdirectories = 'Да ли желите да га обришете Ñа Ñвим фајловима и поддиректоријумима?'; LANGsrRetry = '_Покушај поново'; LANGsrDeleteButton_Caption = '_Обриши'; LANGsrAll = '_Све'; LANGsrCopyFilesSC = 'Копирај фајлове:'; LANGsrAppendQuestion = 'Да ли Ñте Ñигурни да желите да примените фајл ''%s'' на ''%s''?'; LANGsrPreparingList = 'Припремам лиÑту...'; LANGsrYouMustSelectAValidFile = 'Морате изабрати иÑправан фајл!'; LANGsrmiVerifyChecksums = '_Потврди чекÑуме'; LANGsrVerifyChecksumsCaption = 'Потврди чекÑуме'; LANGsrCheckButtonCaptionCheck = '_Провери'; LANGsrCheckButtonCaptionStop = '_ЗауÑтави'; LANGsrFileListTooltip = '[?] - Ðије проверено'#10'[У реду] - ЧекÑума у реду'#10'[ЛОШЕ] - Лоша чекÑума'#10'[Ð/Д] - Фајл није доÑтупан'; LANGsrFilenameColumnCaption = 'Име фајла'; LANGsrTheFileSYouAreTryingToOpenIsQuiteBig = 'Фајл ''%s'' који покушавате да отворите је прилично велики (%s бајта). Можда то није иÑправан фајл чекÑуме.'#10#10'Да ли Ñвакако желите да га учитате?'; LANGsrAnErrorOccuredWhileInitializingMemoryBlock = 'Дошло је до грешке приликом покретања меморијÑког блока. Затворите неке програме и покушајте поново.'; LANGsrAnErrorOccuredWhileOpeningFileSS = 'Дошло је до грешке приликом отварања фајла ''%s'':'#10' %s'; LANGsrAnErrorOccuredWhileReadingFileSS = 'Дошло је до грешке приликом читања фајла ''%s'':'#10' %s'; LANGsrChecksumNotChecked = 'СтатуÑ: Ðије проверено'; LANGsrChecksumChecking = 'СтатуÑ: Проверавам...'; LANGsrChecksumInterrupted = 'СтатуÑ: Прекинуто'; LANGsrChecksumDOK = 'СтатуÑ: %d%% У реду'; LANGsrmiCreateChecksumsCaption = '_Ðаправи чекÑуму...'; LANGsrYouMustSelectAtLeastOneFileToCalculateChecksum = 'Морате изабрати бар један фајл како би чекÑума била израчуната!'; LANGsrCreateChecksumsCaption = 'Ðаправи чекÑуме'; LANGsrCCHKSUMPage1Text = 'Ðаправићете чекÑуме за'#10'изабраних фајлова. Ðко ниÑте изабрали'#10'Ñве фајлове које желите, затворите овај друид и'#10'изаберите још фајлова.'; LANGsrCCHKSUMPage4Text = 'Друид је Ñпреман да направи чекÑуме за '#10' фајлова које Ñте изабрали. ' + 'Ово може да потраје неколико минута.'#10'ПритиÑните Ðапред да биÑте наÑтавили.'; LANGsrCCHKSUMPage6Text = 'Дошло је до грешака при прављењу чекÑума:'; LANGsrCCHKSUMPage7Text = 'Прављење чекÑума је завршено и'#10'Ваших фајлова је Ñпремно.'#10#10'Кликните "Заврши" да биÑте изашли.'; LANGsrCCHKSUMPage1Title = 'Припремите фајлове за чекÑуме'; LANGsrCCHKSUMPage2Title = 'Изаберите врÑту фајлова за чекÑуме'; LANGsrCCHKSUMPage3Title = 'Изаберите имена фајлова'; LANGsrCCHKSUMPage4Title = 'Спреман за проверу'; LANGsrCCHKSUMPage5Title = 'Обрађујем...'; LANGsrCCHKSUMPage6Title = 'Грешка!'; LANGsrCCHKSUMPage7Title = 'Готово'; LANGsrCCHKSUMSFVFile = 'SFV Фајл'; LANGsrCCHKSUMMD5sumFile = 'MD5sum Фајл'; LANGsrCCHKSUMFileName = 'Име _Фајла:'; LANGsrCCHKSUMCreateSeparateChecksumFiles = 'Ðаправи _одвојене фајлове чекÑума'; LANGsrCCHKSUMNowProcessingFileS = 'Тренутно обрађујем фајл: %s'; LANGsrCCHKSUMFinishCaption = '_Заврши'; LANGsrCCHKSUMAreYouSureYouWantToAbortTheProcessing = 'Да ли Ñте Ñигурни да желите да прекинете обраду?'; LANGsrCCHKSUMAnErrorOccuredWhileOpeningFileSS = 'Дошло је до грешке при отварању фајла ''%s'': %s'#10; LANGsrCCHKSUMAnErrorOccuredWhileReadingFileSS = 'Дошло је до грешке при читању фајла ''%s'': %s'#10; LANGsrCCHKSUMAnErrorOccuredWhileWritingFileSS = 'Дошло је до грешке при упиÑивању фајла ''%s'': %s'#10; LANGsrAnErrorOccuredWhileWritingFileSS = 'Дошло је до грешке при упиÑивању фајла ''%s'':'#10' %s'; LANGsrTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt = 'Одредишни фајл ''%s'' већ поÑтоји. Да ли желите да га препишете?'; LANGsrTheTargetFileSCannotBeRemovedS = 'Одредишни фајл ''%s'' не може бити уклоњен: %s'; LANGsrMergeCaption = 'Споји'; LANGsrPleaseInsertNextDiskOrGiveDifferentLocation = 'Молим Ð’Ð°Ñ ÑƒÐ±Ð°Ñ†Ð¸Ñ‚Ðµ Ñледећи диÑк, или унеÑите другачију локацију:'; LANGsrMergeOfSSucceeded = 'Спајање ''%s'' уÑпело (CRC чекÑума у реду).'; LANGsrWarningCreatedFileFailsCRCCheck = 'Упозорење: Ðаправљени фајл не пролази CRC проверу!'; LANGsrMergeOfSSucceeded_NoCRCFileAvailable = 'Спајање ''%s'' уÑпело (није доÑтупан CRC фајл).'; LANGsrMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory = 'Спајање ''%s'' и Ñвих фајлова Ñа опадајућим именима у Ñледећи директоријум:'; LANGsrMergeSC = 'Споји:'; LANGsrmiSplitFileCaption = '_Подели фајл...'; LANGsrmiMergeFilesCaption = '_Споји фајлове...'; LANGsrSplitTheFileSToDirectory = '_Подели фајл ''%s'' у директоријум:'; LANGsrSplitSC = 'Подели:'; LANGsrSplitFile = 'Подели Фајл'; LANGsrBytesPerFile = '_Бајта по фајлу:'; LANGsrAutomatic = 'ÐутоматÑки'; LANGsrDeleteFilesOnTargetDisk = '_Обриши фајлове на одредишном диÑку (usable for removable media)'; LANGsrSplitCaption = 'Подели'; LANGsrCannotOpenFileS = 'Ðе могу да отворим фајл ''%s'''; LANGsrCannotSplitTheFileToMoreThan999Parts = 'Ðе могу да поделим фајл на више од 999 делова!'; LANGsrThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem = 'У одредишном директоријуму има фајлова:'#10'%s'#10'Да ли желите да их обришете?'; LANGsrThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem = 'Има %d фајлова у одредишном директоријуму. Да ли желите да их обришете?'; LANGsrAnErrorOccuredWhileOperationS = 'Дошло је до грешке током операције: %s'; LANGsrSplitOfSSucceeded = 'Дељење ''%s'' уÑпело.'; LANGsrSplitOfSFailed = 'Дељење ''%s'' није уÑпело!'; LANGsrmnuShow_Caption = 'Прикаж_и'; LANGsrmiShowDotFiles_Caption = 'Прикажи фајлове Ñа _тачком '; LANGsrTheFileYouAreTryingToOpenIsQuiteBig = 'Фајл који покушавате да отворите је прилично велики. Његово учитавање у Ñпољном програму ' + '(као што је gedit) може изазвати уÑпорење ÑиÑтема.'#10'Да ли желите да наÑтавите?'; LANGsrCannotExecuteSPleaseCheckTheConfiguration = 'Ðе могу да извршим ''%s''. Молим Ð’Ð°Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚Ðµ подешавања или иÑправно поÑтавите везе Ñа врÑтама фајлова.'; LANGsrEdit = 'Измени'; LANGsrEnterFilenameToEdit = '_УнеÑите име фајла за измену:'; LANGsrmnuSettings_Caption = 'По_дешавања'; LANGsrmiFileTypes_Caption = '_Ð’Ñ€Ñте фајлова...'; LANGsrThereIsNoApplicationAssociatedWithS = 'Ðиједан програм није повезан Ñа "%s".'#10#10'Можете подеÑити Tux Commander да повезује програме Ñа ' + 'врÑтама фајлова. Да ли Ñада желите да повежете програм Ñа овом врÑтом фајла?'; LANGsrErrorExecutingCommand = 'Грешка при извршавању наредбе!'; LANGsrEditFileTypesCaption = 'Измени врÑте фајлова'; LANGsrTitleLabel_Caption = 'Подешавање врÑта фајлова'; LANGsrExtensionsColumn = 'ЕкÑтензије'; LANGsrDescriptionColumn = 'ОпиÑ'; LANGsrFileTypesList = 'ЛиÑта врÑта фајлова'; LANGsrActionName = 'Име акције'; LANGsrCommand = 'Ðаредба'; LANGsrSetDefaultActionButton_Caption = '_ПоÑтави као подразумевано'; LANGsrRunInTerminalCheckBox_Caption = 'Покрени _Терминалу'; LANGsrAutodetectCheckBox_Caption = 'ÐутоматÑко препознавање _GUI програма'; LANGsrBrowseButton_Caption = '_Прегледај...'; LANGsrCommandLabel_Caption = 'Ðа_редба:'; LANGsrDescriptionLabel_Caption = 'О_пиÑ:'; LANGsrFNameExtLabel_Caption = 'Д_одај екÑтензију:'; LANGsrNotebookPageExtensions = 'Ð’Ñ€Ñта фајла'; LANGsrNotebookPageActions = 'Ðкције'; LANGsrDefault = ' (подразумевано)'; LANGsrCannotSaveFileTypeAssociationsBecauseOtherProcess = 'Ðе могу да Ñнимим везу Ñа врÑтом фајла зато што је други Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¾Ð±Ð½Ð¾Ð²Ð¸Ð¾ док је био покренут овај део програма.'; LANGsrDefaultColor = 'По_дразумевана боја'; LANGsrIcon = '_Икона:'; LANGsrBrowseForIcon = 'Прегледај за икону'; LANGsrSelectFileTypeColor = 'Изаберите боју за врÑту фајла'; LANGsrColor = 'Бо_ја:'; LANGsrmiChangePermissions_Caption = 'Промени Доз_воле...'; LANGsrmiChangeOwner_Caption = 'Промени _ВлаÑника/Групу...'; LANGsrmiCreateSymlink_Caption = 'Ðаправи Симболичку_везу...'; LANGsrmiEditSymlink_Caption = '_Измени Ñимболичку везу...'; LANGsrChmodProgress = 'Промени дозволе:'; LANGsrChownProgress = 'Промени влаÑника:'; LANGsrYouMustSelectAValidSymbolicLink = 'Морате изабрати иÑправну Ñимболичку везу!'; LANGsrPopupRunS = 'И_зврши %s'; LANGsrPopupOpenS = 'О_твори %s'; LANGsrPopupGoUp = '_Иди горе'; LANGsrPopupOpenWithS = 'Отвори помоћу %s'; LANGsrPopupDefault = ' (подразумевано)'; LANGsrPopupOpenWith = 'О_твори помоћу...'; LANGsrPopupViewFile = '_Прегледај фајл'; LANGsrPopupEditFile = 'Из_мени фајл'; LANGsrPopupMakeSymlink = 'Ðаправи _Ñимболичку везу'; LANGsrPopupRename = '_Преименуј'; LANGsrPopupDelete = '_Обриши'; LANGsrDialogChangePermissions = 'Промени дозволе'; LANGsrCouldNotBeChmoddedS = 'није могуће извршити chmod: %s'; LANGsrDialogChangeOwner = 'Промени влаÑника'; LANGsrCouldNotBeChownedS = 'није могуће извршити chown: %s'; LANGsrDialogMakeSymlink = 'Ðаправи Ñимболичку везу'; LANGsrDialogEditSymlink = 'Измени Ñимболичку везу'; LANGsrFEditSymlink_Caption = 'Измени Ñимболичку везу'; LANGsrFEditSymlink_SymbolicLinkFilename = 'Име фајла _Ñимболичке везе:'; LANGsrFEditSymlink_SymbolicLinkPointsTo = 'Симболичка веза показује _на:'; LANGsrFChmod_Caption = 'Дозволе ПриÑтупа'; LANGsrFChmod_PermissionFrame = 'Дозволе'; LANGsrFChmod_FileFrame = 'Фајл'; LANGsrFChmod_ApplyRecursivelyFor = 'Примени _рекурзивно за'; LANGsrFChmod_miAllFiles = 'Сви фајлови и директоријуми'; LANGsrFChmod_miDirectories = 'Само директоријуми'; LANGsrFChmod_OctalLabel = '_Octal:'; LANGsrFChmod_SUID = 'SUID - ПоÑтави ИД кориÑника по извршавању'; LANGsrFChmod_SGID = 'SGID - ПоÑтави ИД групе по извршавању'; LANGsrFChmod_Sticky = 'Лепљиви део'; LANGsrFChmod_RUSR = 'RUSR - Читање од Ñтране влаÑника'; LANGsrFChmod_WUSR = 'WUSR - УпиÑивање од Ñтране влаÑника'; LANGsrFChmod_XUSR = 'XUSR - Извршавање/Претрага од Ñтране влаÑника'; LANGsrFChmod_RGRP = 'RGRP - Читање од Ñтране групе'; LANGsrFChmod_WGRP = 'WGRP - УпиÑивање од Ñтране групе'; LANGsrFChmod_XGRP = 'XGRP - Извршавање/Претрага од Ñтране групе'; LANGsrFChmod_ROTH = 'ROTH - Читање од Ñтране оÑталих'; LANGsrFChmod_WOTH = 'WOTH - УпиÑивање од Ñтране оÑталих'; LANGsrFChmod_XOTH = 'XOTH - Извршавање/Претрага од Ñтране оÑталих'; LANGsrFChmod_TextLabel = 'ТекÑÑ‚: %s'; LANGsrFChmod_FileLabel = 'Фајл: %s'#10'ТекÑÑ‚: %s'#10 + 'Octal: %d'#10'ВлаÑник: %s'#10 + 'Група: %s'; LANGsrFChown_Caption = 'Промени влаÑника/групу'; LANGsrFChown_OwnerFrame = 'КориÑничко име'; LANGsrFChown_GroupFrame = 'Име групе'; LANGsrFChown_FileFrame = 'Фајл'; LANGsrFChown_ApplyRecursively = 'Примени _рекурзивно'; LANGsrFSymlink_Caption = 'Ðаправи Ñимболичку везу'; LANGsrFSymlink_ExistingFilename = '_ПоÑтојеће име фајла (име фајла на које ће указивати Ñимболичка веза):'; LANGsrFSymlink_SymlinkFilename = '_Име фајла Ñимболичке везе:'; LANGsrmnuBookmarks_Caption = '_Маркер'; LANGsrmiAddBookmark_Caption = 'Додај Маркер'; LANGsrmiEditBookmarks_Caption = 'Измени Маркере'; LANGsrBookmarkPopupDelete_Caption = '_Обриши'; LANGsrmiPreferences_Caption = '_ПоÑтавке...'; LANGsrTheCurrentDirectoryAlreadyExistsInTheBookmarksList = 'Текући директоријум већ поÑтоји у лиÑти маркера'; LANGsrSomeOtherInstanceChanged = 'Ðеки други Tux Commander је променио подешавања. Да ли желите да примените нова подешавања?'#10#10'Упозорење: Ðко притиÑнете Ðе у овом ' + 'тренутку, подешавања ће бити препиÑана у овом прозору'' изађи!'; LANGsrPreferences_Caption = 'ПоÑтавке'; LANGsrPreferences_TitleLabel_Caption = 'ПоÑтавке програма'; LANGsrPreferences_GeneralPage = 'Опште'; LANGsrPreferences_FontsPage = 'Фонтови'; LANGsrPreferences_ColorsPage = 'Боје'; LANGsrPreferences_RowHeight = '_ВиÑина реда:'; LANGsrPreferences_NumHistoryItems = 'ИÑторија Ко_мандне линије:'; LANGsrPreferences_Default = '_Подразумевано'; LANGsrPreferences_ClearReadonlyAttribute = 'Уклони _readonly атрибуте при копирању Ñа CD-ROM-а'; LANGsrPreferences_DisableMouseRenaming = 'Онемогући преименовање помоћу _миша '; LANGsrPreferences_ShowFiletypeIconsInList = 'Прикажи иконе за _врÑте фајлова'; LANGsrPreferences_ExternalAppsLabel = 'Спољни програми'; LANGsrPreferences_Viewer = '_Прегледач:'; LANGsrPreferences_Editor = '_Измењивач:'; LANGsrPreferences_Terminal = '_Терминал:'; LANGsrPreferences_ListFont = 'Фонт лиÑте:'; LANGsrPreferences_Change = 'Промени...'; LANGsrPreferences_UseDefaultFont = 'КориÑти _подразумевани фонт'; LANGsrPreferences_Foreground = 'Спреда'; LANGsrPreferences_Background = 'Позадина'; LANGsrPreferences_NormalItem = 'Ðормална Ставка:'; LANGsrPreferences_SetToDefaultToUseGTKThemeColors = 'ПоÑтави коришћење GTK тема за боје као подразумевано'; LANGsrPreferences_Cursor = 'КурÑор:'; LANGsrPreferences_InactiveItem = 'Ðеактивна Ñтавка:'; LANGsrPreferences_SelectedItem = 'Изабрана Ñтавка:'; LANGsrPreferences_LinkItem = 'Симболичке везе:'; LANGsrPreferences_LinkItemHint = 'ПоÑтави као подразумевано да Ñе Ñимболичке везе приказују коришћењем подразумеваних нормалних боја за Ñтавке'; LANGsrPreferences_DotFileItem = 'Фајлови Ñа тачком:'; LANGsrPreferences_DotFileItemHint = 'ПоÑтави као подразумевано да Ñе фајлови Ñа тачком приказују коришћењем подразумеваних нормалних боја за Ñтавке'; LANGsrPreferences_BrowseForApplication = 'Прегледај за програм'; LANGsrPreferences_DefaultS = 'Подразумевано: %s'; LANGsrPreferences_SelectFont = 'Изаберите фонт'; (*************** STRINGS ADDED TO v0.4.101 **********************************************************************************) LANGsrBookmarkButton_Tooltip = 'Прикажи маркере'; LANGsrUpButton_Tooltip = 'Иди у претходни директоријум'; LANGsrRootButton_Tooltip = 'Иди у корени директоријум (/)'; LANGsrHomeButton_Tooltip = 'Иди у матични директоријум (/home/user)'; LANGsrLeftEqualButton_Tooltip = 'Пребаци деÑну таблу на иÑти директоријум'; LANGsrRightEqualButton_Tooltip = 'Пребаци леву таблу на иÑти директоријум'; LANGsrmiShowDirectorySizes_Caption = 'Прикажи величине д_иректоријума'; LANGsrmiTargetSource_Caption = '_Одредиште = Извор'; LANGsrFileTypeDirectory = 'Директоријум'; LANGsrFileTypeFile = 'Фајл'; LANGsrFileTypeMetafile = 'Ово је уобичајена мета-Ñтавка'; LANGsrPreferencesPanelsPage = 'Табла'; LANGsrPreferencesApplicationsPage = 'Програми'; LANGsrPreferencesExperimentalPage = 'ЕкÑпериментално'; LANGsrPreferencesSelectAllDirectoriesCheckBox_Caption = 'Обележи _и директоријуме када Ñе обележава Ñве'; LANGsrPreferencesNewStyleAltOCheckBox_Caption = '_Ðови Ñтил Alt+O'; LANGsrPreferencesNewStyleAltOCheckBox_Tooltip = 'ОÑтани у иÑтом директоријуму при промени директоријума на Ñупротној табли притиÑкањем Ctrl/Alt+O'; LANGsrPreferencesShowFuncButtonsCheckBox_Caption = 'Прикажи дугмад функцијÑких _таÑтера'; LANGsrPreferencesSizeFormatLabel_Caption = '_Формат величине:'; LANGsrPreferencesmiSizeFormat1 = 'СиÑтемÑко'; LANGsrPreferencesmiSizeFormat6 = 'ГрупиÑано'; LANGsrPreferencesAutodetectXApp = 'ÐутоматÑки препознај X програм'; LANGsrPreferencesAlwaysRunInTerminal = 'Увек покрени у терминалу'; LANGsrPreferencesNeverRunInTerminal = 'Ðикада немој да покренеш у терминалу'; LANGsrPreferencesCmdLineBehaviourLabel_Caption = '_Извршавање из командне линије:'; LANGsrPreferencesFeatures = 'МогућноÑти'; LANGsrPreferencesDisableMouseRename_Tooltip = 'Још увек можете извршити брзо преименовање притиÑкањем Shift+F6'; LANGsrPreferencesDisableFileTipsCheckBox_Caption = 'Онемогући _облачиће за фајлове'; LANGsrPreferencesDisableFileTipsCheckBox_Tooltip = 'Ðемој да приказујеш облачиће на табли ако је текÑÑ‚ у колони Ñкраћен'; LANGsrPreferencesShow = 'Прикажи'; LANGsrPreferencesDirsInBoldCheckBox_Caption = 'Директоријуми _подебљани'; LANGsrPreferencesDisableDirectoryBracketsCheckBox_Caption = 'Онемогући з_аграде за директоријуме'; LANGsrPreferencesOctalPermissionsCheckBox_Caption = 'Прикажи _octal дозволе'; LANGsrPreferencesOctalPermissionsCheckBox_Tooltip = 'Прикажи дозволе за фајлове/директоријуме као број умеÑто у текÑтуалном облику (-rw-rw-rw-)'; LANGsrPreferencesMovement = 'Кретање'; LANGsrPreferencesLynxLikeMotionCheckBox_Caption = 'Кретање попут _Lynx-а'; LANGsrPreferencesInsertMovesDownCheckBox_Caption = '_Insert помера на доле'; LANGsrPreferencesSpaceMovesDownCheckBox_Caption = '_Space помера на доле'; LANGsrPreferencesViewer = 'Прегледач'; LANGsrPreferencesCommandSC = 'Ðаредба:'; LANGsrPreferencesUseInternalViewer = 'КориÑти _унутрашњи прегледач'; LANGsrPreferencesEditor = 'Измењивач'; LANGsrPreferencesTerminal = 'Терминал'; LANGsrPreferencesExperimentalFeatures = 'ЕкÑперименталне могућноÑти'; LANGsrPreferencesExperimentalWarningLabel_Caption = 'Упозорење: Ове могућноÑти Ñу тренутно у развоју и можда не раде како треба. КориÑтите их на ÑопÑтвени ризик!'; LANGsrPreferencesFocusRefreshCheckBox_Caption = 'Обави _оÑвежење при фокуÑирању прозора'; LANGsrPreferencesFocusRefreshCheckBox_Tooltip = 'Веома Ñпоро оÑвежавање табле у овом тренутку'; LANGsrPreferencesWMCompatModeCheckBox_Caption = '_WM режим компатибилноÑти'; LANGsrPreferencesWMCompatModeCheckBox_Tooltip = 'КориÑтите ако имате неких проблема Ñа управљачем прозорима (на пример IceWM не обавља увеличавање прозора иÑправно)'; LANGsrPreferencesCompatUseLibcSystemCheckBox_Caption = 'КориÑти libc _ÑиÑтем() за извршавање програма'; LANGsrPreferencesCompatUseLibcSystemCheckBox_Tooltip = 'КориÑтите у Ñлучају проблема Ñа замрзавањем и падањем при покретању Ñпољних програма'; (*************** STRINGS ADDED TO v0.5.70 **********************************************************************************) LANGsrmiSearchCaption2 = '_Претрага...'; LANGsrmiNoMounterBarCaption = '_Ðе приказуј линију за монтирање'; LANGsrmiShowOneMounterBarCaption = 'Прикажи _једну линију за монтирање'; LANGsrmiShowTwoMounterBarCaption = 'Прикажи _две линије за монтирање'; LANGsrmnuNetworkCaption = 'М_режа'; LANGsrmiConnectionsCaption = '_Везе...'; LANGsrmiOpenConnectionCaption = '_Отвори везу...'; LANGsrmiQuickConnectCaption = '_Брзо повезивање...'; LANGsrmnuPluginsCaption = 'Пр_икључци'; LANGsrmiTestPluginCaption = '_ТеÑтирај прикључак...'; LANGsrmiMounterSettingsCaption = 'Подешавања за _монтирање...'; LANGsrmiColumnsCaption = 'Колоне Ñ‚_абле...'; LANGsrmiSavePositionCaption = '_Сними позицију'; LANGsrmiMountCaption = '_Mount'; LANGsrmiUmountCaption = '_Umount'; LANGsrmiEjectCaption = '_Отвори'; LANGsrmiDuplicateTabCaption = 'Дуплирај текући језичак'; LANGsrmiCloseTabCaption = 'Затвори текући језичак'; LANGsrmiCloseAllTabsCaption = 'Затвори Ñве језичке'; LANGsrCannotDetermineDestinationEngine = 'Ðе могу да утврдим одредишни мотор. Молим Ð’Ð°Ñ ÑƒÐ½ÐµÑите иÑправну путању и покушајте поново.'; LANGsrCannotLoadFile = 'Ðе могу да учитам фајл ''%s''. Молим Ð’Ð°Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚Ðµ дозволе.'; LANGsrMountPointDevice = 'Тачка Монтирања: %s'#10'Уређај: %s'; LANGsrMountSC = 'Монтирај:'; LANGsrNoPluginsFound = 'ÐиÑу пронађени прикључци'; LANGsrPluginAbout = 'О програму...'; LANGsrCouldntOpenURI = 'ÐиÑам могао да отворим наведени URI. Молим Ð’Ð°Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚Ðµ поÑтојаноÑÑ‚ идентификатора извора и дозволе приÑтупа.'; LANGsrPluginAboutInside = 'Прикључак: %s'#10#10'%s'#10'%s'; LANGsrAreYouSureCloseAllTabs = 'Да ли Ñте Ñигурни да желите да затворите Ñве активне језичке?'; LANGsrCouldntOpenURIArchive = 'ÐиÑам могао да отворим архиву. Молим Ð’Ð°Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚Ðµ поÑтојаноÑÑ‚ и дозволе приÑтупа.'; LANGsrThereIsNoModuleAvailable = 'Ðема доÑтупних VFS модула који могу да раде Ñа овом везом'; LANGsrIgnoreError = 'Да ли Ñтварно желите да игноришете грешку? Изворни фајл ће бити обриÑан'; LANGsrErrorMount = 'Дошло је до грешке при монтирању уређаја ''%s'':'#10#10; LANGsrErrorUmount = 'Дошло је до грешке при одмонтиравању уређаја ''%s'':'#10#10; LANGsrErrorEject = 'Дошло је до грешке при отварању уређаја ''%s'':'#10#10; LANGsrMounterPrefs_Caption = 'Подешавања Монтера'; LANGsrMounterPrefs_TitleLabelCaption = 'Подешавања Монтера'; LANGsrMounterPrefs_ListViewFrameCaption = 'Монтер'; LANGsrMounterPrefs_MountName = 'Име за монтирање'; LANGsrMounterPrefs_MountPoint = 'Тачка монтирања'; LANGsrMounterPrefs_Device = 'Уређај'; LANGsrMounterPrefs_MoveUpButtonTooltip = 'Помери Ñтавку на горе'; LANGsrMounterPrefs_MoveDownButtonTooltip = 'Помери Ñтавку на доле'; LANGsrMounterPrefs_UseFSTabDefaultsCheckBox = 'КориÑти _fstab подразумеване Ñтавке'; LANGsrMounterPrefs_UseFSTabDefaultsCheckBoxTooltip = 'Штиклирањем овога, линија монтера ће бити попуњена подразумеваним Ñтавкама које Ñе ' + 'могу пронаћи у /etc/fstab (ÑиÑтемÑки фајл Ñа лиÑтом монтирања)'; LANGsrMounterPrefs_ToggleModeCheckBox = 'Дугмад оÑтају _притиÑнута када је уређај монтиран'; LANGsrMounterPrefs_ToggleModeCheckBoxTooltip = 'Када је штиклирано, дугмад монтера ће оÑтати притиÑнута ако је уређај монтиран; још један клик ће ' + 'резултовати одмонтиравањем (отварањем у овом Ñлучају)'; LANGsrMounterPrefs_PropertiesFrameCaption = 'ПоÑтавке Ñтавки монтера'; LANGsrMounterPrefs_DisplayTextLabelCaption = 'Приказани _ТекÑÑ‚:'; LANGsrMounterPrefs_MountPointLabelCaption = 'Тачка _Монтирања:'; LANGsrMounterPrefs_MountDeviceLabelCaption = '_Уређај:'; LANGsrMounterPrefs_DeviceTypeLabelCaption = '_Ð’Ñ€Ñта Уређаја:'; LANGsrMounterPrefs_miLocalDiskCaption = 'Локални диÑк'; LANGsrMounterPrefs_miRemovableCaption = 'Измењиви'; LANGsrMounterPrefs_miCDCaption = 'CD/DVD уређај'; LANGsrMounterPrefs_miFloppyCaption = 'Флопи драјв'; LANGsrMounterPrefs_miNetworkCaption = 'Мрежа'; LANGsrMounterPrefs_MountCommandLabelCaption = '_Команда Монтирања:'; LANGsrMounterPrefs_UmountCommandLabelCaption = 'К_оманда Одмонтиравања:'; LANGsrMounterPrefs_MountCommandEntryTooltip = 'СинтакÑа: кориÑтите %dev умеÑто уређаја и %dir умеÑто тачке монтирања или оÑтавите празно за подразумевано монтирање'#10'Обратите пажњу: ' + 'чувајте Ñе интерактивних команди, tuxcmd би могао да Ñе укочи!'#10'Пример: smbmount %dev %dir -o username=netuser,password=somepass'; LANGsrMounterPrefs_UmountCommandEntryTooltip = 'СинтакÑа: кориÑтите %dev умеÑто уређаја и %dir умеÑто тачке монтирања или оÑтавите празно за подразумевано монтирање'#10'Пример: smbumount $dir'; LANGsrMounterPrefs_IconLabelCaption = '_Икона:'; LANGsrConnMgr_Caption = 'Отвори Ðову Везу'; LANGsrConnMgr_ConnectButton = 'По_вежи Ñе'; LANGsrConnMgr_OpenConnection = 'Отвори Везу'; LANGsrConnMgr_NameColumn = 'Име'; LANGsrConnMgr_URIColumn = 'URI'; LANGsrConnMgr_AddConnectionButtonCaption = '_Додај Ñајт...'; LANGsrConnMgr_AddConnectionButtonTooltip = 'Додај нову везу'; LANGsrConnMgr_EditButtonCaption = '_Измени...'; LANGsrConnMgr_EditButtonTooltip = 'Измени изабрану везу'; LANGsrConnMgr_RemoveButtonCaption = '_Уклони Ñајт'; LANGsrConnMgr_RemoveButtonTooltip = 'Обриши изабрану везу'; LANGsrConnMgr_DoYouWantDelete = 'Да ли Ñтварно желите да обришете везу ''%s''?'; LANGsrConnProp_FTP = 'FTP'; LANGsrConnProp_SFTP = 'SFTP (ssh подÑиÑтем)'; LANGsrConnProp_SMB = 'Windows share (SMB)'; LANGsrConnProp_HTTP = 'WebDAV (HTTP)'; LANGsrConnProp_HTTPS = 'Secure WebDAV (HTTPS)'; LANGsrConnProp_Other = 'Друго (молим Ð’Ð°Ñ Ð½Ð°Ð²ÐµÐ´Ð¸Ñ‚Ðµ у URI)'; LANGsrConnProp_Caption = 'ПоÑтавке везе'; LANGsrConnProp_VFSModule = '_VFS модул:'; LANGsrConnProp_URI = '_URI:'; LANGsrConnProp_URIEntryTooltip = 'ИÑправан URI би требало да Ñадржи Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ Ð²Ñ€Ñте уÑлуге и адреÑу Ñервера'; LANGsrConnProp_DetailedInformations = 'Детаљне Информације'; LANGsrConnProp_Name = '_Име:'; LANGsrConnProp_Server = 'Сер_вер[:порт]:'; LANGsrConnProp_Username = 'КориÑничко_ко име:'; LANGsrConnProp_UserNameEntryTooltip = 'ОÑтавите празно за анониман приÑтуп'; LANGsrConnProp_Password = '_Лозинка:'; LANGsrConnProp_TargetDirectory = 'Одредишни _директоријум:'; LANGsrConnProp_ServiceType = 'Ð’Ñ€Ñта _уÑлуге:'; LANGsrConnProp_MaskPassword = 'Сакриј _шифру'; LANGsrConnProp_MenuItemCaption = 'Подразумевано (Ñви погодни модули)'; LANGsrConnLogin_Caption = 'Захтевана ауторизација'; LANGsrConnLogin_Login = 'Пријава'; LANGsrConnLogin_ExperimentalWarningLabelCaption = 'Морате Ñе пријавити ради приÑтупа %s'; LANGsrConnLogin_Username = '_КориÑничко име:'; LANGsrConnLogin_Password = '_Лозинка:'; LANGsrConnLogin_AnonymousCheckButton = '_Ðнонимно'; LANGsrColumns_Caption = 'Подешавања Колона Табле'; LANGsrColumns_Title = 'Подешавања Колона Табле'; LANGsrColumns_MoveUpButtonTooltip = 'Помери Ñтавку на горе'; LANGsrColumns_MoveDownButtonTooltip = 'Помери Ñтавку на доле'; LANGsrColumns_TitlesLongName = 'Име'; LANGsrColumns_TitlesLongNameExt = 'Име + ЕкÑтензија'; LANGsrColumns_TitlesLongExt = 'ЕкÑтензија'; LANGsrColumns_TitlesLongSize = 'Величина'; LANGsrColumns_TitlesLongDateTime = 'Датум + Време'; LANGsrColumns_TitlesLongDate = 'Датум'; LANGsrColumns_TitlesLongTime = 'Време'; LANGsrColumns_TitlesLongUser = 'КориÑник'; LANGsrColumns_TitlesLongGroup = 'Група'; LANGsrColumns_TitlesLongAttr = 'Ðтрибути'; LANGsrColumns_TitlesShortName = 'Име'; LANGsrColumns_TitlesShortNameExt = 'Име'; LANGsrColumns_TitlesShortExt = 'ЕкÑÑ‚'; LANGsrColumns_TitlesShortSize = 'Величина'; LANGsrColumns_TitlesShortDateTime = 'Датум'; LANGsrColumns_TitlesShortDate = 'Датум'; LANGsrColumns_TitlesShortTime = 'Време'; LANGsrColumns_TitlesShortUser = 'КориÑник'; LANGsrColumns_TitlesShortGroup = 'Група'; LANGsrColumns_TitlesShortAttr = 'Ðтр'; LANGsrTestPlugin_Caption = 'ТеÑтирај VFS Прикључак'; LANGsrTestPlugin_Title = 'ТеÑтирај VFS Прикључак'; LANGsrTestPlugin_ExperimentalWarningLabelCaption = 'Упозорење: VFS подÑиÑтем и његови прикључци Ñу у раној фази развоја и могу Ñадржати ' + 'грешке. КориÑтите ову функцију на ÑопÑтвени ризик!'; LANGsrTestPlugin_Plugin = '_Прикључак:'; LANGsrTestPlugin_Command = 'Ðа_редба:'; LANGsrTestPlugin_Username = '_КориÑничко име:'; LANGsrTestPlugin_Password = '_Лозинка:'; LANGsrTestPlugin_AnonymousCheckButton = '_Ðнонимна пријава (не позива VFSLogin)'; LANGsrTestPlugin_NoPluginsFound = 'ÐиÑу пронађени прикључци'; LANGsrRemoteWait_Caption = 'Операција у току'; LANGsrRemoteWait_OperationInProgress = 'Операција у току, молим Ð’Ð°Ñ Ð±ÑƒÐ´Ð¸Ñ‚Ðµ Ñтрпљиви...'; LANGsrRemoteWait_ItemsFound = 'Ставке пронађене до Ñада: %d'; LANGsrSearch_Bytes = 'Бајта'; LANGsrSearch_kB = 'kB'; LANGsrSearch_MB = 'MB'; LANGsrSearch_days = 'дана'; LANGsrSearch_weeks = 'недеља'; LANGsrSearch_months = 'меÑеци'; LANGsrSearch_years = 'година'; LANGsrSearch_Caption = 'Пронађи фајлове'; LANGsrSearch_General = 'Опште'; LANGsrSearch_Advanced = 'Ðапредно'; LANGsrSearch_SearchResults = '_Резултати претраге:'; LANGsrSearch_SearchFor = '_Тражи:'; LANGsrSearch_FileMaskEntryTooltip = 'Савет: КориÑтите тачку-зарез (";") како биÑте навели више фајлова које тражите'; LANGsrSearch_SearchIn = 'Тражи _у:'; LANGsrSearch_SearchArchivesCheckButton = 'Тражи у _архивама'; LANGsrSearch_FindText = 'Ðађи _текÑÑ‚:'; LANGsrSearch_FindTextEntryTooltip = 'ОÑтавите празно ако не желите поклапање текÑта'#10'Обратите пажњу да кориÑтимо UTF-8 у GUI делу'; LANGsrSearch_CaseSensitiveCheckButton = 'ОÑетљиво на м_ала и велика Ñлова'; LANGsrSearch_StayCurrentFSCheckButton = 'Укључи и друге фајл _ÑиÑтеме'; LANGsrSearch_CaseSensitiveMatchCheckButton = 'ОÑетљиво на м_ала и велика Ñлова'; LANGsrSearch_Size = 'Величина'; LANGsrSearch_Date = 'Датум'; LANGsrSearch_BiggerThan = '_Веће од'; LANGsrSearch_SmallerThan = '_Мање од'; LANGsrSearch_ModifiedBetweenRadioButton = '_Мењано између'; LANGsrSearch_NotModifiedAfterRadioButton = '_Ðије мењано након'; LANGsrSearch_ModifiedLastRadioButton = 'Мењ_ано у поÑледњих'; LANGsrSearch_ModifiedNotLastRadionButton = 'Ðиј_е мењано у поÑледњих'; LANGsrSearch_ModifiedBetweenEntry1 = '"Молим Ð’Ð°Ñ ÐºÐ¾Ñ€Ð¸Ñтите овај облик датума:" c'; LANGsrSearch_ViewButtonCaption = '_Прегледај фајл'; LANGsrSearch_NewSearchButtonCaption = '_Ðова претрага'; LANGsrSearch_GoToFileButtonCaption = '_Иди на фајл'; LANGsrSearch_FeedToListboxButtonCaption = 'Похрани у _прозор лиÑте'; LANGsrSearch_StatusSC = 'СтатуÑ:'; LANGsrSearch_Ready = 'Спреман.'; LANGsrSearch_PreparingToSearch = 'Припрема за претрагу.'; LANGsrSearch_SearchInProgress = 'Претрага у току:'; LANGsrSearch_UserCancelled = 'Поништено од Ñтране кориÑника.'; LANGsrSearch_SearchFinished = 'Претрага завршена'; LANGsrSearch_FilesFound = '%d фајлова пронађено'; LANGsrSearch_And = 'и'; (*************** STRINGS ADDED TO v0.5.82 **********************************************************************************) LANGsrCloseOpenConnection = 'Покушавате да оÑтарите нову везу преко поÑтојеће.'#10'Ðко наÑтавите, претходна веза биће раÑкинута и замењена новом.'#10#10'Да ли желите да наÑтавите?'; LANGsrDuplicateTabWarning = 'Покушавате да отворите удаљени директорујум у товом језичку, а дуплирање везе није могуће. У новом језичку биће локални директоријум.'; LANGsrDontShowAgain = '_Ðе приказуј више ову поруку!'; LANGsrSwitchOtherPanelWarning = 'Покушавате да отворите удаљени директорујум у Ñупротном панелу, али дуплирање везе није могуће. Циљни директоријум неће бити замењен.'; LANGsrOpenConnectionsWarning = 'Тренутно поÑтоје активне везе на панелу. Затварањем програма онеће бити прекинуте.'#10#10'Да ли и даље желите да изађете?'; LANGsrmiDisconnect_Caption = '_Прекини везу'; LANGsrDisconnectButton_Tooltip = 'Прекида активну везу'; LANGsrLeaveArchiveButton_Tooltip = 'Затвори текућу архиву'; LANGsrOpenTerminalButton_Tooltip = 'Отвори текући директоријум у новом терминалу'; LANGsrOpenTerminalButton_Caption = 'Отвори _Терминал'; LANGsrShowTextUIDsCheckBox_Caption = 'Прикажи текÑтуално _UID-је'; LANGsrShowTextUIDsCheckBox_Tooltip = 'Прикажи текÑтуално КориÑника и Групу умеÑто броја (UID/GID)'; (*************** STRINGS ADDED TO v0.5.100 **********************************************************************************) LANGsrmiNewTab_Caption = 'Ðови _језичак'; LANGsrFilePopupMenu_Properties = '_ОÑобине'; LANGsrCommandEntry_Tooltip = 'КориÑти %s као пречицу до фајла/директоријума'; LANGsrmiFiles_Caption = 'Само фајлови'; (*************** STRINGS ADDED TO v0.6.31 **********************************************************************************) LANGsrPasswordButton_Tooltip = 'Ðрхива захтева лозинку.'#10'УнеÑите је.'; LANGsrHandleRunFromArchive_Bytes = 'бајта'; LANGsrHandleRunFromArchive_FileTypeDesc_Unknown = '(непознато)'; LANGsrHandleRunFromArchive_NotAssociated = '(није придружено)'; LANGsrHandleRunFromArchive_SelfExecutable = '(Ñамо-извршиво)'; LANGsrHandleRunFromArchive_CouldntCreateTemporaryDirectory = 'Ðе могу да направим привремени директоријум "%s": %s.'#10#10'Проверите/промените локацију привременог директоријума, па покушајте поново.'; LANGsrFRunFromVFS_Caption = 'ОÑобине Ñпакованог фајла'; LANGsrFRunFromVFS_TitleLabel = 'ОÑобине фајла'; LANGsrFRunFromVFS_FileNameLabel = 'Ðазив фајла:'; LANGsrFRunFromVFS_FileTypeLabel = 'Тип фајла:'; LANGsrFRunFromVFS_SizeLabel = 'Величина:'; LANGsrFRunFromVFS_PackedSizeLabel = 'Величина Ñпакованог фајла:'; LANGsrFRunFromVFS_DateLabel = 'Датум измене:'; LANGsrFRunFromVFS_InfoLabel = 'Отварање фајлова директно из архиве није подржано. РаÑпаковани фајлови биће Ñмештени на привременој локацији до затварања програма.'; LANGsrFRunFromVFS_OpensWithLabel = 'Отвори помоћу:'; LANGsrFRunFromVFS_ExecuteButton = '_РаÑпакуј и отвори'; LANGsrFRunFromVFS_ExecuteAllButton = 'РаÑпакуј _Ñве и отвори'; LANGsrFSetPassword_Caption = 'ПоÑтави лозинку'; LANGsrFSetPassword_Label1_Caption = 'Лозинка је обавезна'; LANGsrFSetPassword_Label2_Caption = 'Ðрхива је шифрована и захтева лозинку како би раÑпаковали њен Ñадржај'; LANGsrFSetPassword_ShowPasswordCheckButton = '_Прикажи лозинку'; (*************** STRINGS ADDED TO v0.6.48 **********************************************************************************) LANGsrCopyFileNamesToClipboard = '_Умножи име фајла у оÑтаву'; LANGsrCopyFullPathNamesToClipboard = 'Умножи _комплетну путању до фајла у оÑтаву'; LANGsrCopyPathToClipboard = '_Умножи путању у оÑтаву'; LANGsrPreferences_DateFormatLabel_Caption = '_Формат датума:'; LANGsrPreferences_System = 'СиÑтемÑко'; LANGsrPreferences_Custom = 'ПодеÑи...'; LANGsrPreferences_CustomDateFormatEntry_Tooltip = 'УнеÑите прилагођен формат датума.'#10'Погледајте "man strftime" за Ð¾Ð¿Ð¸Ñ ÑинтакÑе.'; LANGsrPreferences_TimeFormatLabel_Caption = 'Формат _времена:'; LANGsrPreferences_CustomTimeFormatEntry_Tooltip = 'УнеÑите прилагођен формат времена.'#10'Погледајте "man strftime" за Ð¾Ð¿Ð¸Ñ ÑинтакÑе.'; LANGsrPreferences_DateTimeFormatLabel_Caption = 'РедоÑлед приказа датум/време:'; LANGsrPreferences_QuickRenameSkipExtCheckBox = 'Изабери Ñамо назив фајла приликом брзог преименовања'; LANGsrPreferences_QuickRenameSkipExtCheckBox_Tooltip = 'ИÑкључи екÑтенжију фајла приликом брзог преименовања'; LANGsrPreferences_SortDirectoriesLikeFilesCheckBox = 'Сортирај директоријуме _као фајлове'; LANGsrPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip = 'Изаберите ово да омогућите Ñортирање директоријума заједно Ñа фајловима.'#10'У противном: директоријуми ће бити Ñортирани по имену.'; LANGsrPreferences_QuickSearchLabel_Caption = 'Пречице за _брзу претрагу:'; LANGsrPreferences_QuickSearchOptionMenu_Tooltip = 'The Ctrl+S/Alt+S и "/" пречице Ñу увек активне, без обзира на ова подешавања.'; LANGsrPreferences_QuickSearch_Option1 = 'Само Ctrl+S/Alt+S и "/"'; LANGsrPreferences_QuickSearch_Option2 = 'Ctrl+Alt+Ñлова'; LANGsrPreferences_QuickSearch_Option3 = 'Alt+Ñлова'; LANGsrPreferences_QuickSearch_Option4 = 'Слова директно'; LANGsrPreferences_TempPathLabel_Caption = 'Привремени фајлови'; LANGsrPreferences_VFSTempPathLabel_Caption = '_VFS привр. фајлови:'; LANGsrPreferences_VFSTempPathEntry_Tooltip = 'Локација привремених фајлова за потребе VFS ÑиÑтема, нпр. када отварате фајлове директно из архива. Они Ñе бришу при излаÑку из програма.'; (*************** STRINGS ADDED TO v0.6.67 **********************************************************************************) LANGsrPreferences_RightClickSelectCheckBox = 'Избор деÑним таÑтером миша'; LANGsrPreferences_RightClickSelectCheckBox_Tooltip = 'КориÑти деÑни таÑтер миша за обележавање, као у mc.'; LANGsrGtkMountOperation_ConnectAnonymously = 'Повежи Ñе _анонимно'; LANGsrGtkMountOperation_ConnectAsUser = 'Повежи Ñе као к_ориÑник:'; LANGsrGtkMountOperation_Username = '_КориÑничко име:'; LANGsrGtkMountOperation_Domain = '_Домен:'; LANGsrGtkMountOperation_Password = '_Лозинка:'; LANGsrGtkMountOperation_DoNotSavePassword = 'Ðе памти лозинку'; LANGsrGtkMountOperation_ForgetPasswordImmediately = 'Заборави _одмах лозинку'; LANGsrGtkMountOperation_RememberPasswordUntilYouLogout = 'Памти лозинку до за_тварања програма'; LANGsrGtkMountOperation_SavePasswordInConnectionManager = '_Чувај лозинку помоћу Менаџера за повезивање'; LANGsrGtkMountOperation_RememberForever = 'Памти _заувек'; LANGsrFSymlink_RelativePath = '_Релативна путања'; LANGsrFConnectionManager_DuplicateButton_Caption = 'Д_уплирај...'; LANGsrFConnectionManager_DuplicateButton_Tooltip = 'Дуплирај изабрану везу'; LANGsrFConnectionManager_DoNotSavePasswordsCheckBox_Label = '_Ðе памти лозинку интерно, већ кориÑти gnome-keyring'; LANGsrFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip = 'Укључивањем ове опције, Tux Commander никад неће памтити лозинку у Ñвоју лиÑту за повезивање. ' + 'Због природе GVFS-а, gnome-keyring ће ипак бити коришћен за чување лозинки.'; LANGsrFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label = 'Ðе Ñинхронизуј лозинку Ñа gnome-_keyring'; LANGsrFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip = 'Ðе обавештавај gnome-keyring даа памти било коју лозинку.'; LANGsrFConnectionManager_DuplicateMenuItem_Caption = 'Д_уплирај...'; LANGsrFQuickConnect_Caption = 'Брзо повезивање'; LANGsrFQuickConnect_TitleLabel_Caption = 'Брзо повезивање'; LANGsrFQuickConnect_ConnectToURILabel_Caption = 'П_овежи Ñе на URI:'; LANGsrLinkToS = 'Пречица на %s'; LANGsrOpenDirectoryInBackgroundTab = 'Отвори директоријум у _позадинÑком језичку'; LANGsrTheActiveConnectionHasNotBeenSaved = 'Ðктивна веза није Ñачувана. Да ли желите да је Менаџер за повезивање Ñачува?'#10#10'%s'; LANGsrTheArchiveIsEncryptedAndRequiresPassword = 'Ðрхива је шифрована и захтева лозинку'; (********************************************************************************************************************************) procedure SetTranslation; begin LANGF2Button_Caption := LANGsrF2Button_Caption; LANGF3Button_Caption := LANGsrF3Button_Caption; LANGF4Button_Caption := LANGsrF4Button_Caption; LANGF5Button_Caption := LANGsrF5Button_Caption; LANGF6Button_Caption := LANGsrF6Button_Caption; LANGF7Button_Caption := LANGsrF7Button_Caption; LANGF8Button_Caption := LANGsrF8Button_Caption; LANGmnuFile_Caption := LANGsrmnuFile_Caption; LANGmnuMark_Caption := LANGsrmnuMark_Caption; LANGmnuCommands_Caption := LANGsrmnuCommands_Caption; LANGmnuHelp_Caption := LANGsrmnuHelp_Caption; LANGmiExit_Caption := LANGsrmiExit_Caption; LANGmiSelectGroup_Caption := LANGsrmiSelectGroup_Caption; LANGmiUnselectGroup_Caption := LANGsrmiUnselectGroup_Caption; LANGmiSelectAll_Caption := LANGsrmiSelectAll_Caption; LANGmiUnselectAll_Caption := LANGsrmiUnselectAll_Caption; LANGmiInvertSelection_Caption := LANGsrmiInvertSelection_Caption; LANGmiRefresh_Caption := LANGsrmiRefresh_Caption; LANGmiAbout_Caption := LANGsrmiAbout_Caption; LANGColumn1_Caption := LANGsrColumn1_Caption; LANGColumn2_Caption := LANGsrColumn2_Caption; LANGColumn3_Caption := LANGsrColumn3_Caption; LANGColumn4_Caption := LANGsrColumn4_Caption; LANGColumn5_Caption := LANGsrColumn5_Caption; LANGExpandSelection := LANGsrExpandSelection; LANGShrinkSelection := LANGsrShrinkSelection; LANGNoMatchesFound := LANGsrNoMatchesFound; LANGNoFilesSelected := LANGsrNoFilesSelected; LANGSelectedFilesDirectories := LANGsrSelectedFilesDirectories; LANGDirectoryS := LANGsrDirectoryS; LANGFileS := LANGsrFileS; LANGDoYouReallyWantToDeleteTheS := LANGsrDoYouReallyWantToDeleteTheS; LANGDoYouReallyWantToDeleteTheSS := LANGsrDoYouReallyWantToDeleteTheSS; LANGCopyFiles := LANGsrCopyFiles; LANGMoveRenameFiles := LANGsrMoveRenameFiles; LANGCopyDFileDirectoriesTo := LANGsrCopyDFileDirectoriesTo; LANGMoveRenameDFileDirectoriesTo := LANGsrMoveRenameDFileDirectoriesTo; LANGCopySC := LANGsrCopySC; LANGMoveRenameSC := LANGsrMoveRenameSC; LANGQuickFind := LANGsrQuickFind; LANGAboutString := LANGsrAboutString; LANGAboutStringGnome := LANGsrAboutStringGnome; LANGDiskStatFmt := LANGsrDiskStatFmt; LANGDiskStatVolNameFmt := LANGsrDiskStatVolNameFmt; LANGStatusLineFmt := LANGsrStatusLineFmt; LANGPanelStrings[False] := LANGsrPanelStrings[False]; LANGPanelStrings[True] := LANGsrPanelStrings[True]; LANGDIR := LANGsrDIR; LANGErrorGettingListingForSPanel := LANGsrErrorGettingListingForSPanel; LANGErrorGettingListingForSPanelNoPath := LANGsrErrorGettingListingForSPanelNoPath; LANGErrorCreatingNewDirectorySInSPanel := LANGsrErrorCreatingNewDirectorySInSPanel; LANGErrorCreatingNewDirectorySInSPanelNoPath := LANGsrErrorCreatingNewDirectorySInSPanelNoPath; LANGTheFileDirectory := LANGsrTheFileDirectory; LANGCouldNotBeDeleted := LANGsrCouldNotBeDeleted; LANGCouldNotBeDeletedS := LANGsrCouldNotBeDeletedS; LANGUserCancelled := LANGsrUserCancelled; LANGTheDirectorySIsNotEmpty := LANGsrTheDirectorySIsNotEmpty; LANGCannotCopyFile := LANGsrCannotCopyFile; LANGCopyError := LANGsrCopyError; LANGMoveError := LANGsrMoveError; LANGOverwriteS := LANGsrOverwriteS; LANGWithFileS := LANGsrWithFileS; LANGOvewriteSBytesS := LANGsrOvewriteSBytesS; LANGTheFile := LANGsrTheFile; LANGCopy := LANGsrCopy; LANGMove := LANGsrMove; LANGTheDirectory := LANGsrTheDirectory; LANGTheSymbolicLink := LANGsrTheSymbolicLink; LANGCannotMoveFile := LANGsrCannotMoveFile; LANGCouldNotBeCreated := LANGsrCouldNotBeCreated; LANGCouldNotBeCreatedS := LANGsrCouldNotBeCreatedS; LANGFromS := LANGsrFromS; LANGToS := LANGsrToS; LANGCannotCopyFileToItself := LANGsrCannotCopyFileToItself; LANGMemoryAllocationFailed := LANGsrMemoryAllocationFailed; LANGCannotOpenSourceFile := LANGsrCannotOpenSourceFile; LANGCannotOpenDestinationFile := LANGsrCannotOpenDestinationFile; LANGCannotCloseDestinationFile := LANGsrCannotCloseDestinationFile; LANGCannotCloseSourceFile := LANGsrCannotCloseSourceFile; LANGCannotReadFromSourceFile := LANGsrCannotReadFromSourceFile; LANGCannotWriteToDestinationFile := LANGsrCannotWriteToDestinationFile; LANGUnknownException := LANGsrUnknownException; LANGNoAccess := LANGsrNoAccess; LANGUnknownError := LANGsrUnknownError; LANGCreateANewDirectory := LANGsrCreateANewDirectory; LANGEnterDirectoryName := LANGsrEnterDirectoryName; LANGOverwriteQuestion := LANGsrOverwriteQuestion; LANGOverwriteButton_Caption := LANGsrOverwriteButton_Caption; LANGOverwriteAllButton_Caption := LANGsrOverwriteAllButton_Caption; LANGSkipButton_Caption := LANGsrSkipButton_Caption; LANGOverwriteAllOlderButton_Caption := LANGsrOverwriteAllOlderButton_Caption; LANGSkipAllButton_Caption := LANGsrSkipAllButton_Caption; LANGRenameButton_Caption := LANGsrRenameButton_Caption; LANGAppendButton_Caption := LANGsrAppendButton_Caption; LANGRename := LANGsrRename; LANGRenameFile := LANGsrRenameFile; LANGIgnoreButton_Caption := LANGsrIgnoreButton_Caption; LANGProgress := LANGsrProgress; LANGCancel := LANGsrCancel; LANGDelete := LANGsrDelete; LANGSpecifyFileType := LANGsrSpecifyFileType; LANGRemoveDirectory := LANGsrRemoveDirectory; LANGDoYouWantToDeleteItWithAllItsFilesAndSubdirectories := LANGsrDoYouWantToDeleteItWithAllItsFilesAndSubdirectories; LANGRetry := LANGsrRetry; LANGDeleteButton_Caption := LANGsrDeleteButton_Caption; LANGAll := LANGsrAll; LANGCopyFilesSC := LANGsrCopyFilesSC; LANGAppendQuestion := LANGsrAppendQuestion; LANGPreparingList := LANGsrPreparingList; LANGYouMustSelectAValidFile := LANGsrYouMustSelectAValidFile; LANGmiVerifyChecksums := LANGsrmiVerifyChecksums; LANGVerifyChecksumsCaption := LANGsrVerifyChecksumsCaption; LANGCheckButtonCaptionCheck := LANGsrCheckButtonCaptionCheck; LANGCheckButtonCaptionStop := LANGsrCheckButtonCaptionStop; LANGFileListTooltip := LANGsrFileListTooltip; LANGFilenameColumnCaption := LANGsrFilenameColumnCaption; LANGTheFileSYouAreTryingToOpenIsQuiteBig := LANGsrTheFileSYouAreTryingToOpenIsQuiteBig; LANGAnErrorOccuredWhileInitializingMemoryBlock := LANGsrAnErrorOccuredWhileInitializingMemoryBlock; LANGAnErrorOccuredWhileOpeningFileSS := LANGsrAnErrorOccuredWhileOpeningFileSS; LANGAnErrorOccuredWhileReadingFileSS := LANGsrAnErrorOccuredWhileReadingFileSS; LANGChecksumNotChecked := LANGsrChecksumNotChecked; LANGChecksumChecking := LANGsrChecksumChecking; LANGChecksumInterrupted := LANGsrChecksumInterrupted; LANGChecksumDOK := LANGsrChecksumDOK; LANGmiCreateChecksumsCaption := LANGsrmiCreateChecksumsCaption; LANGYouMustSelectAtLeastOneFileToCalculateChecksum := LANGsrYouMustSelectAtLeastOneFileToCalculateChecksum; LANGCreateChecksumsCaption := LANGsrCreateChecksumsCaption; LANGCCHKSUMPage1Text := LANGsrCCHKSUMPage1Text; LANGCCHKSUMPage4Text := LANGsrCCHKSUMPage4Text; LANGCCHKSUMPage6Text := LANGsrCCHKSUMPage6Text; LANGCCHKSUMPage7Text := LANGsrCCHKSUMPage7Text; LANGCCHKSUMPage1Title := LANGsrCCHKSUMPage1Title; LANGCCHKSUMPage2Title := LANGsrCCHKSUMPage2Title; LANGCCHKSUMPage3Title := LANGsrCCHKSUMPage3Title; LANGCCHKSUMPage4Title := LANGsrCCHKSUMPage4Title; LANGCCHKSUMPage5Title := LANGsrCCHKSUMPage5Title; LANGCCHKSUMPage6Title := LANGsrCCHKSUMPage6Title; LANGCCHKSUMPage7Title := LANGsrCCHKSUMPage7Title; LANGCCHKSUMSFVFile := LANGsrCCHKSUMSFVFile; LANGCCHKSUMMD5sumFile := LANGsrCCHKSUMMD5sumFile; LANGCCHKSUMFileName := LANGsrCCHKSUMFileName; LANGCCHKSUMCreateSeparateChecksumFiles := LANGsrCCHKSUMCreateSeparateChecksumFiles; LANGCCHKSUMNowProcessingFileS := LANGsrCCHKSUMNowProcessingFileS; LANGCCHKSUMFinishCaption := LANGsrCCHKSUMFinishCaption; LANGCCHKSUMAreYouSureYouWantToAbortTheProcessing := LANGsrCCHKSUMAreYouSureYouWantToAbortTheProcessing; LANGCCHKSUMAnErrorOccuredWhileOpeningFileSS := LANGsrCCHKSUMAnErrorOccuredWhileOpeningFileSS; LANGCCHKSUMAnErrorOccuredWhileReadingFileSS := LANGsrCCHKSUMAnErrorOccuredWhileReadingFileSS; LANGCCHKSUMAnErrorOccuredWhileWritingFileSS := LANGsrCCHKSUMAnErrorOccuredWhileWritingFileSS; LANGAnErrorOccuredWhileWritingFileSS := LANGsrAnErrorOccuredWhileWritingFileSS; LANGTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt := LANGsrTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt; LANGTheTargetFileSCannotBeRemovedS := LANGsrTheTargetFileSCannotBeRemovedS; LANGMergeCaption := LANGsrMergeCaption; LANGPleaseInsertNextDiskOrGiveDifferentLocation := LANGsrPleaseInsertNextDiskOrGiveDifferentLocation; LANGMergeOfSSucceeded := LANGsrMergeOfSSucceeded; LANGWarningCreatedFileFailsCRCCheck := LANGsrWarningCreatedFileFailsCRCCheck; LANGMergeOfSSucceeded_NoCRCFileAvailable := LANGsrMergeOfSSucceeded_NoCRCFileAvailable; LANGMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory := LANGsrMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory; LANGMergeSC := LANGsrMergeSC; LANGmiSplitFileCaption := LANGsrmiSplitFileCaption; LANGmiMergeFilesCaption := LANGsrmiMergeFilesCaption; LANGSplitTheFileSToDirectory := LANGsrSplitTheFileSToDirectory; LANGSplitSC := LANGsrSplitSC; LANGSplitFile := LANGsrSplitFile; LANGBytesPerFile := LANGsrBytesPerFile; LANGAutomatic := LANGsrAutomatic; LANGDeleteFilesOnTargetDisk := LANGsrDeleteFilesOnTargetDisk; LANGSplitCaption := LANGsrSplitCaption; LANGCannotOpenFileS := LANGsrCannotOpenFileS; LANGCannotSplitTheFileToMoreThan999Parts := LANGsrCannotSplitTheFileToMoreThan999Parts; LANGThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem := LANGsrThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem; LANGThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem := LANGsrThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem; LANGAnErrorOccuredWhileOperationS := LANGsrAnErrorOccuredWhileOperationS; LANGSplitOfSSucceeded := LANGsrSplitOfSSucceeded; LANGSplitOfSFailed := LANGsrSplitOfSFailed; LANGmnuShow_Caption := LANGsrmnuShow_Caption; LANGmiShowDotFiles_Caption := LANGsrmiShowDotFiles_Caption; LANGTheFileYouAreTryingToOpenIsQuiteBig := LANGsrTheFileYouAreTryingToOpenIsQuiteBig; LANGCannotExecuteSPleaseCheckTheConfiguration := LANGsrCannotExecuteSPleaseCheckTheConfiguration; LANGEdit := LANGsrEdit; LANGEnterFilenameToEdit := LANGsrEnterFilenameToEdit; LANGmnuSettings_Caption := LANGsrmnuSettings_Caption; LANGmiFileTypes_Caption := LANGsrmiFileTypes_Caption; LANGThereIsNoApplicationAssociatedWithS := LANGsrThereIsNoApplicationAssociatedWithS; LANGErrorExecutingCommand := LANGsrErrorExecutingCommand; LANGEditFileTypesCaption := LANGsrEditFileTypesCaption; LANGTitleLabel_Caption := LANGsrTitleLabel_Caption; LANGExtensionsColumn := LANGsrExtensionsColumn; LANGDescriptionColumn := LANGsrDescriptionColumn; LANGFileTypesList := LANGsrFileTypesList; LANGActionName := LANGsrActionName; LANGCommand := LANGsrCommand; LANGSetDefaultActionButton_Caption := LANGsrSetDefaultActionButton_Caption; LANGRunInTerminalCheckBox_Caption := LANGsrRunInTerminalCheckBox_Caption; LANGAutodetectCheckBox_Caption := LANGsrAutodetectCheckBox_Caption; LANGBrowseButton_Caption := LANGsrBrowseButton_Caption; LANGCommandLabel_Caption := LANGsrCommandLabel_Caption; LANGDescriptionLabel_Caption := LANGsrDescriptionLabel_Caption; LANGFNameExtLabel_Caption := LANGsrFNameExtLabel_Caption; LANGNotebookPageExtensions := LANGsrNotebookPageExtensions; LANGNotebookPageActions := LANGsrNotebookPageActions; LANGDefault := LANGsrDefault; LANGCannotSaveFileTypeAssociationsBecauseOtherProcess := LANGsrCannotSaveFileTypeAssociationsBecauseOtherProcess; LANGDefaultColor := LANGsrDefaultColor; LANGIcon := LANGsrIcon; LANGBrowseForIcon := LANGsrBrowseForIcon; LANGSelectFileTypeColor := LANGsrSelectFileTypeColor; LANGColor := LANGsrColor; LANGmiChangePermissions_Caption := LANGsrmiChangePermissions_Caption; LANGmiChangeOwner_Caption := LANGsrmiChangeOwner_Caption; LANGmiCreateSymlink_Caption := LANGsrmiCreateSymlink_Caption; LANGmiEditSymlink_Caption := LANGsrmiEditSymlink_Caption; LANGChmodProgress := LANGsrChmodProgress; LANGChownProgress := LANGsrChownProgress; LANGYouMustSelectAValidSymbolicLink := LANGsrYouMustSelectAValidSymbolicLink; LANGPopupRunS := LANGsrPopupRunS; LANGPopupOpenS := LANGsrPopupOpenS; LANGPopupGoUp := LANGsrPopupGoUp; LANGPopupOpenWithS := LANGsrPopupOpenWithS; LANGPopupDefault := LANGsrPopupDefault; LANGPopupOpenWith := LANGsrPopupOpenWith; LANGPopupViewFile := LANGsrPopupViewFile; LANGPopupEditFile := LANGsrPopupEditFile; LANGPopupMakeSymlink := LANGsrPopupMakeSymlink; LANGPopupRename := LANGsrPopupRename; LANGPopupDelete := LANGsrPopupDelete; LANGDialogChangePermissions := LANGsrDialogChangePermissions; LANGCouldNotBeChmoddedS := LANGsrCouldNotBeChmoddedS; LANGDialogChangeOwner := LANGsrDialogChangeOwner; LANGCouldNotBeChownedS := LANGsrCouldNotBeChownedS; LANGDialogMakeSymlink := LANGsrDialogMakeSymlink; LANGDialogEditSymlink := LANGsrDialogEditSymlink; LANGFEditSymlink_Caption := LANGsrFEditSymlink_Caption; LANGFEditSymlink_SymbolicLinkFilename := LANGsrFEditSymlink_SymbolicLinkFilename; LANGFEditSymlink_SymbolicLinkPointsTo := LANGsrFEditSymlink_SymbolicLinkPointsTo; LANGFChmod_Caption := LANGsrFChmod_Caption; LANGFChmod_PermissionFrame := LANGsrFChmod_PermissionFrame; LANGFChmod_FileFrame := LANGsrFChmod_FileFrame; LANGFChmod_ApplyRecursivelyFor := LANGsrFChmod_ApplyRecursivelyFor; LANGFChmod_miAllFiles := LANGsrFChmod_miAllFiles; LANGFChmod_miDirectories := LANGsrFChmod_miDirectories; LANGFChmod_OctalLabel := LANGsrFChmod_OctalLabel; LANGFChmod_SUID := LANGsrFChmod_SUID; LANGFChmod_SGID := LANGsrFChmod_SGID; LANGFChmod_Sticky := LANGsrFChmod_Sticky; LANGFChmod_RUSR := LANGsrFChmod_RUSR; LANGFChmod_WUSR := LANGsrFChmod_WUSR; LANGFChmod_XUSR := LANGsrFChmod_XUSR; LANGFChmod_RGRP := LANGsrFChmod_RGRP; LANGFChmod_WGRP := LANGsrFChmod_WGRP; LANGFChmod_XGRP := LANGsrFChmod_XGRP; LANGFChmod_ROTH := LANGsrFChmod_ROTH; LANGFChmod_WOTH := LANGsrFChmod_WOTH; LANGFChmod_XOTH := LANGsrFChmod_XOTH; LANGFChmod_TextLabel := LANGsrFChmod_TextLabel; LANGFChmod_FileLabel := LANGsrFChmod_FileLabel; LANGFChown_Caption := LANGsrFChown_Caption; LANGFChown_OwnerFrame := LANGsrFChown_OwnerFrame; LANGFChown_GroupFrame := LANGsrFChown_GroupFrame; LANGFChown_FileFrame := LANGsrFChown_FileFrame; LANGFChown_ApplyRecursively := LANGsrFChown_ApplyRecursively; LANGFSymlink_Caption := LANGsrFSymlink_Caption; LANGFSymlink_ExistingFilename := LANGsrFSymlink_ExistingFilename; LANGFSymlink_SymlinkFilename := LANGsrFSymlink_SymlinkFilename; LANGmnuBookmarks_Caption := LANGsrmnuBookmarks_Caption; LANGmiAddBookmark_Caption := LANGsrmiAddBookmark_Caption; LANGmiEditBookmarks_Caption := LANGsrmiEditBookmarks_Caption; LANGBookmarkPopupDelete_Caption := LANGsrBookmarkPopupDelete_Caption; LANGmiPreferences_Caption := LANGsrmiPreferences_Caption; LANGTheCurrentDirectoryAlreadyExistsInTheBookmarksList := LANGsrTheCurrentDirectoryAlreadyExistsInTheBookmarksList; LANGSomeOtherInstanceChanged := LANGsrSomeOtherInstanceChanged; LANGPreferences_Caption := LANGsrPreferences_Caption; LANGPreferences_TitleLabel_Caption := LANGsrPreferences_TitleLabel_Caption; LANGPreferences_GeneralPage := LANGsrPreferences_GeneralPage; LANGPreferences_FontsPage := LANGsrPreferences_FontsPage; LANGPreferences_ColorsPage := LANGsrPreferences_ColorsPage; LANGPreferences_RowHeight := LANGsrPreferences_RowHeight; LANGPreferences_NumHistoryItems := LANGsrPreferences_NumHistoryItems; LANGPreferences_Default := LANGsrPreferences_Default; LANGPreferences_ClearReadonlyAttribute := LANGsrPreferences_ClearReadonlyAttribute; LANGPreferences_DisableMouseRenaming := LANGsrPreferences_DisableMouseRenaming; LANGPreferences_ShowFiletypeIconsInList := LANGsrPreferences_ShowFiletypeIconsInList; LANGPreferences_ExternalAppsLabel := LANGsrPreferences_ExternalAppsLabel; LANGPreferences_Viewer := LANGsrPreferences_Viewer; LANGPreferences_Editor := LANGsrPreferences_Editor; LANGPreferences_Terminal := LANGsrPreferences_Terminal; LANGPreferences_ListFont := LANGsrPreferences_ListFont; LANGPreferences_Change := LANGsrPreferences_Change; LANGPreferences_UseDefaultFont := LANGsrPreferences_UseDefaultFont; LANGPreferences_Foreground := LANGsrPreferences_Foreground; LANGPreferences_Background := LANGsrPreferences_Background; LANGPreferences_NormalItem := LANGsrPreferences_NormalItem; LANGPreferences_SetToDefaultToUseGTKThemeColors := LANGsrPreferences_SetToDefaultToUseGTKThemeColors; LANGPreferences_Cursor := LANGsrPreferences_Cursor; LANGPreferences_InactiveItem := LANGsrPreferences_InactiveItem; LANGPreferences_SelectedItem := LANGsrPreferences_SelectedItem; LANGPreferences_LinkItem := LANGsrPreferences_LinkItem; LANGPreferences_LinkItemHint := LANGsrPreferences_LinkItemHint; LANGPreferences_DotFileItem := LANGsrPreferences_DotFileItem; LANGPreferences_DotFileItemHint := LANGsrPreferences_DotFileItemHint; LANGPreferences_BrowseForApplication := LANGsrPreferences_BrowseForApplication; LANGPreferences_DefaultS := LANGsrPreferences_DefaultS; LANGPreferences_SelectFont := LANGsrPreferences_SelectFont; LANGBookmarkButton_Tooltip := LANGsrBookmarkButton_Tooltip; LANGUpButton_Tooltip := LANGsrUpButton_Tooltip; LANGRootButton_Tooltip := LANGsrRootButton_Tooltip; LANGHomeButton_Tooltip := LANGsrHomeButton_Tooltip; LANGLeftEqualButton_Tooltip := LANGsrLeftEqualButton_Tooltip; LANGRightEqualButton_Tooltip := LANGsrRightEqualButton_Tooltip; LANGmiShowDirectorySizes_Caption := LANGsrmiShowDirectorySizes_Caption; LANGmiTargetSource_Caption := LANGsrmiTargetSource_Caption; LANGFileTypeDirectory := LANGsrFileTypeDirectory; LANGFileTypeFile := LANGsrFileTypeFile; LANGFileTypeMetafile := LANGsrFileTypeMetafile; LANGPreferencesPanelsPage := LANGsrPreferencesPanelsPage; LANGPreferencesApplicationsPage := LANGsrPreferencesApplicationsPage; LANGPreferencesExperimentalPage := LANGsrPreferencesExperimentalPage; LANGPreferencesSelectAllDirectoriesCheckBox_Caption := LANGsrPreferencesSelectAllDirectoriesCheckBox_Caption; LANGPreferencesNewStyleAltOCheckBox_Caption := LANGsrPreferencesNewStyleAltOCheckBox_Caption; LANGPreferencesNewStyleAltOCheckBox_Tooltip := LANGsrPreferencesNewStyleAltOCheckBox_Tooltip; LANGPreferencesShowFuncButtonsCheckBox_Caption := LANGsrPreferencesShowFuncButtonsCheckBox_Caption; LANGPreferencesSizeFormatLabel_Caption := LANGsrPreferencesSizeFormatLabel_Caption; LANGPreferencesmiSizeFormat1 := LANGsrPreferencesmiSizeFormat1; LANGPreferencesmiSizeFormat6 := LANGsrPreferencesmiSizeFormat6; LANGPreferencesAutodetectXApp := LANGsrPreferencesAutodetectXApp; LANGPreferencesAlwaysRunInTerminal := LANGsrPreferencesAlwaysRunInTerminal; LANGPreferencesNeverRunInTerminal := LANGsrPreferencesNeverRunInTerminal; LANGPreferencesCmdLineBehaviourLabel_Caption := LANGsrPreferencesCmdLineBehaviourLabel_Caption; LANGPreferencesFeatures := LANGsrPreferencesFeatures; LANGPreferencesDisableMouseRename_Tooltip := LANGsrPreferencesDisableMouseRename_Tooltip; LANGPreferencesDisableFileTipsCheckBox_Caption := LANGsrPreferencesDisableFileTipsCheckBox_Caption; LANGPreferencesDisableFileTipsCheckBox_Tooltip := LANGsrPreferencesDisableFileTipsCheckBox_Tooltip; LANGPreferencesShow := LANGsrPreferencesShow; LANGPreferencesDirsInBoldCheckBox_Caption := LANGsrPreferencesDirsInBoldCheckBox_Caption; LANGPreferencesDisableDirectoryBracketsCheckBox_Caption := LANGsrPreferencesDisableDirectoryBracketsCheckBox_Caption; LANGPreferencesOctalPermissionsCheckBox_Caption := LANGsrPreferencesOctalPermissionsCheckBox_Caption; LANGPreferencesOctalPermissionsCheckBox_Tooltip := LANGsrPreferencesOctalPermissionsCheckBox_Tooltip; LANGPreferencesMovement := LANGsrPreferencesMovement; LANGPreferencesLynxLikeMotionCheckBox_Caption := LANGsrPreferencesLynxLikeMotionCheckBox_Caption; LANGPreferencesInsertMovesDownCheckBox_Caption := LANGsrPreferencesInsertMovesDownCheckBox_Caption; LANGPreferencesSpaceMovesDownCheckBox_Caption := LANGsrPreferencesSpaceMovesDownCheckBox_Caption; LANGPreferencesViewer := LANGsrPreferencesViewer; LANGPreferencesCommandSC := LANGsrPreferencesCommandSC; LANGPreferencesUseInternalViewer := LANGsrPreferencesUseInternalViewer; LANGPreferencesEditor := LANGsrPreferencesEditor; LANGPreferencesTerminal := LANGsrPreferencesTerminal; LANGPreferencesExperimentalFeatures := LANGsrPreferencesExperimentalFeatures; LANGPreferencesExperimentalWarningLabel_Caption := LANGsrPreferencesExperimentalWarningLabel_Caption; LANGPreferencesFocusRefreshCheckBox_Caption := LANGsrPreferencesFocusRefreshCheckBox_Caption; LANGPreferencesFocusRefreshCheckBox_Tooltip := LANGsrPreferencesFocusRefreshCheckBox_Tooltip; LANGPreferencesWMCompatModeCheckBox_Caption := LANGsrPreferencesWMCompatModeCheckBox_Caption; LANGPreferencesWMCompatModeCheckBox_Tooltip := LANGsrPreferencesWMCompatModeCheckBox_Tooltip; LANGPreferencesCompatUseLibcSystemCheckBox_Caption := LANGsrPreferencesCompatUseLibcSystemCheckBox_Caption; LANGPreferencesCompatUseLibcSystemCheckBox_Tooltip := LANGsrPreferencesCompatUseLibcSystemCheckBox_Tooltip; LANGmiSearchCaption2 := LANGsrmiSearchCaption2; LANGmiNoMounterBarCaption := LANGsrmiNoMounterBarCaption; LANGmiShowOneMounterBarCaption := LANGsrmiShowOneMounterBarCaption; LANGmiShowTwoMounterBarCaption := LANGsrmiShowTwoMounterBarCaption; LANGmnuNetworkCaption := LANGsrmnuNetworkCaption; LANGmiConnectionsCaption := LANGsrmiConnectionsCaption; LANGmiOpenConnectionCaption := LANGsrmiOpenConnectionCaption; LANGmiQuickConnectCaption := LANGsrmiQuickConnectCaption; LANGmnuPluginsCaption := LANGsrmnuPluginsCaption; LANGmiTestPluginCaption := LANGsrmiTestPluginCaption; LANGmiMounterSettingsCaption := LANGsrmiMounterSettingsCaption; LANGmiColumnsCaption := LANGsrmiColumnsCaption; LANGmiSavePositionCaption := LANGsrmiSavePositionCaption; LANGmiMountCaption := LANGsrmiMountCaption; LANGmiUmountCaption := LANGsrmiUmountCaption; LANGmiEjectCaption := LANGsrmiEjectCaption; LANGmiDuplicateTabCaption := LANGsrmiDuplicateTabCaption; LANGmiCloseTabCaption := LANGsrmiCloseTabCaption; LANGmiCloseAllTabsCaption := LANGsrmiCloseAllTabsCaption; LANGCannotDetermineDestinationEngine := LANGsrCannotDetermineDestinationEngine; LANGCannotLoadFile := LANGsrCannotLoadFile; LANGMountPointDevice := LANGsrMountPointDevice; LANGMountSC := LANGsrMountSC; LANGNoPluginsFound := LANGsrNoPluginsFound; LANGPluginAbout := LANGsrPluginAbout; LANGCouldntOpenURI := LANGsrCouldntOpenURI; LANGPluginAboutInside := LANGsrPluginAboutInside; LANGAreYouSureCloseAllTabs := LANGsrAreYouSureCloseAllTabs; LANGCouldntOpenURIArchive := LANGsrCouldntOpenURIArchive; LANGThereIsNoModuleAvailable := LANGsrThereIsNoModuleAvailable; LANGIgnoreError := LANGsrIgnoreError; LANGErrorMount := LANGsrErrorMount; LANGErrorUmount := LANGsrErrorUmount; LANGErrorEject := LANGsrErrorEject; LANGMounterPrefs_Caption := LANGsrMounterPrefs_Caption; LANGMounterPrefs_TitleLabelCaption := LANGsrMounterPrefs_TitleLabelCaption; LANGMounterPrefs_ListViewFrameCaption := LANGsrMounterPrefs_ListViewFrameCaption; LANGMounterPrefs_MountName := LANGsrMounterPrefs_MountName; LANGMounterPrefs_MountPoint := LANGsrMounterPrefs_MountPoint; LANGMounterPrefs_Device := LANGsrMounterPrefs_Device; LANGMounterPrefs_MoveUpButtonTooltip := LANGsrMounterPrefs_MoveUpButtonTooltip; LANGMounterPrefs_MoveDownButtonTooltip := LANGsrMounterPrefs_MoveDownButtonTooltip; LANGMounterPrefs_UseFSTabDefaultsCheckBox := LANGsrMounterPrefs_UseFSTabDefaultsCheckBox; LANGMounterPrefs_UseFSTabDefaultsCheckBoxTooltip := LANGsrMounterPrefs_UseFSTabDefaultsCheckBoxTooltip; LANGMounterPrefs_ToggleModeCheckBox := LANGsrMounterPrefs_ToggleModeCheckBox; LANGMounterPrefs_ToggleModeCheckBoxTooltip := LANGsrMounterPrefs_ToggleModeCheckBoxTooltip; LANGMounterPrefs_PropertiesFrameCaption := LANGsrMounterPrefs_PropertiesFrameCaption; LANGMounterPrefs_DisplayTextLabelCaption := LANGsrMounterPrefs_DisplayTextLabelCaption; LANGMounterPrefs_MountPointLabelCaption := LANGsrMounterPrefs_MountPointLabelCaption; LANGMounterPrefs_MountDeviceLabelCaption := LANGsrMounterPrefs_MountDeviceLabelCaption; LANGMounterPrefs_DeviceTypeLabelCaption := LANGsrMounterPrefs_DeviceTypeLabelCaption; LANGMounterPrefs_miLocalDiskCaption := LANGsrMounterPrefs_miLocalDiskCaption; LANGMounterPrefs_miRemovableCaption := LANGsrMounterPrefs_miRemovableCaption; LANGMounterPrefs_miCDCaption := LANGsrMounterPrefs_miCDCaption; LANGMounterPrefs_miFloppyCaption := LANGsrMounterPrefs_miFloppyCaption; LANGMounterPrefs_miNetworkCaption := LANGsrMounterPrefs_miNetworkCaption; LANGMounterPrefs_MountCommandLabelCaption := LANGsrMounterPrefs_MountCommandLabelCaption; LANGMounterPrefs_UmountCommandLabelCaption := LANGsrMounterPrefs_UmountCommandLabelCaption; LANGMounterPrefs_MountCommandEntryTooltip := LANGsrMounterPrefs_MountCommandEntryTooltip; LANGMounterPrefs_UmountCommandEntryTooltip := LANGsrMounterPrefs_UmountCommandEntryTooltip; LANGMounterPrefs_IconLabelCaption := LANGsrMounterPrefs_IconLabelCaption; LANGConnMgr_Caption := LANGsrConnMgr_Caption; LANGConnMgr_ConnectButton := LANGsrConnMgr_ConnectButton; LANGConnMgr_OpenConnection := LANGsrConnMgr_OpenConnection; LANGConnMgr_NameColumn := LANGsrConnMgr_NameColumn; LANGConnMgr_URIColumn := LANGsrConnMgr_URIColumn; LANGConnMgr_AddConnectionButtonCaption := LANGsrConnMgr_AddConnectionButtonCaption; LANGConnMgr_AddConnectionButtonTooltip := LANGsrConnMgr_AddConnectionButtonTooltip; LANGConnMgr_EditButtonCaption := LANGsrConnMgr_EditButtonCaption; LANGConnMgr_EditButtonTooltip := LANGsrConnMgr_EditButtonTooltip; LANGConnMgr_RemoveButtonCaption := LANGsrConnMgr_RemoveButtonCaption; LANGConnMgr_RemoveButtonTooltip := LANGsrConnMgr_RemoveButtonTooltip; LANGConnMgr_DoYouWantDelete := LANGsrConnMgr_DoYouWantDelete; LANGConnProp_FTP := LANGsrConnProp_FTP; LANGConnProp_SFTP := LANGsrConnProp_SFTP; LANGConnProp_SMB := LANGsrConnProp_SMB; LANGConnProp_HTTP := LANGsrConnProp_HTTP; LANGConnProp_HTTPS := LANGsrConnProp_HTTPS; LANGConnProp_Other := LANGsrConnProp_Other; LANGConnProp_Caption := LANGsrConnProp_Caption; LANGConnProp_VFSModule := LANGsrConnProp_VFSModule; LANGConnProp_URI := LANGsrConnProp_URI; LANGConnProp_URIEntryTooltip := LANGsrConnProp_URIEntryTooltip; LANGConnProp_DetailedInformations := LANGsrConnProp_DetailedInformations; LANGConnProp_Name := LANGsrConnProp_Name; LANGConnProp_Server := LANGsrConnProp_Server; LANGConnProp_Username := LANGsrConnProp_Username; LANGConnProp_UserNameEntryTooltip := LANGsrConnProp_UserNameEntryTooltip; LANGConnProp_Password := LANGsrConnProp_Password; LANGConnProp_TargetDirectory := LANGsrConnProp_TargetDirectory; LANGConnProp_ServiceType := LANGsrConnProp_ServiceType; LANGConnProp_MaskPassword := LANGsrConnProp_MaskPassword; LANGConnProp_MenuItemCaption := LANGsrConnProp_MenuItemCaption; LANGConnLogin_Caption := LANGsrConnLogin_Caption; LANGConnLogin_Login := LANGsrConnLogin_Login; LANGConnLogin_ExperimentalWarningLabelCaption := LANGsrConnLogin_ExperimentalWarningLabelCaption; LANGConnLogin_Username := LANGsrConnLogin_Username; LANGConnLogin_Password := LANGsrConnLogin_Password; LANGConnLogin_AnonymousCheckButton := LANGsrConnLogin_AnonymousCheckButton; LANGColumns_Caption := LANGsrColumns_Caption; LANGColumns_Title := LANGsrColumns_Title; LANGColumns_MoveUpButtonTooltip := LANGsrColumns_MoveUpButtonTooltip; LANGColumns_MoveDownButtonTooltip := LANGsrColumns_MoveDownButtonTooltip; LANGColumns_TitlesLongName := LANGsrColumns_TitlesLongName; LANGColumns_TitlesLongNameExt := LANGsrColumns_TitlesLongNameExt; LANGColumns_TitlesLongExt := LANGsrColumns_TitlesLongExt; LANGColumns_TitlesLongSize := LANGsrColumns_TitlesLongSize; LANGColumns_TitlesLongDateTime := LANGsrColumns_TitlesLongDateTime; LANGColumns_TitlesLongDate := LANGsrColumns_TitlesLongDate; LANGColumns_TitlesLongTime := LANGsrColumns_TitlesLongTime; LANGColumns_TitlesLongUser := LANGsrColumns_TitlesLongUser; LANGColumns_TitlesLongGroup := LANGsrColumns_TitlesLongGroup; LANGColumns_TitlesLongAttr := LANGsrColumns_TitlesLongAttr; LANGColumns_TitlesShortName := LANGsrColumns_TitlesShortName; LANGColumns_TitlesShortNameExt := LANGsrColumns_TitlesShortNameExt; LANGColumns_TitlesShortExt := LANGsrColumns_TitlesShortExt; LANGColumns_TitlesShortSize := LANGsrColumns_TitlesShortSize; LANGColumns_TitlesShortDateTime := LANGsrColumns_TitlesShortDateTime; LANGColumns_TitlesShortDate := LANGsrColumns_TitlesShortDate; LANGColumns_TitlesShortTime := LANGsrColumns_TitlesShortTime; LANGColumns_TitlesShortUser := LANGsrColumns_TitlesShortUser; LANGColumns_TitlesShortGroup := LANGsrColumns_TitlesShortGroup; LANGColumns_TitlesShortAttr := LANGsrColumns_TitlesShortAttr; LANGTestPlugin_Caption := LANGsrTestPlugin_Caption; LANGTestPlugin_Title := LANGsrTestPlugin_Title; LANGTestPlugin_ExperimentalWarningLabelCaption := LANGsrTestPlugin_ExperimentalWarningLabelCaption; LANGTestPlugin_Plugin := LANGsrTestPlugin_Plugin; LANGTestPlugin_Command := LANGsrTestPlugin_Command; LANGTestPlugin_Username := LANGsrTestPlugin_Username; LANGTestPlugin_Password := LANGsrTestPlugin_Password; LANGTestPlugin_AnonymousCheckButton := LANGsrTestPlugin_AnonymousCheckButton; LANGTestPlugin_NoPluginsFound := LANGsrTestPlugin_NoPluginsFound; LANGRemoteWait_Caption := LANGsrRemoteWait_Caption; LANGRemoteWait_OperationInProgress := LANGsrRemoteWait_OperationInProgress; LANGRemoteWait_ItemsFound := LANGsrRemoteWait_ItemsFound; LANGSearch_Bytes := LANGsrSearch_Bytes; LANGSearch_kB := LANGsrSearch_kB; LANGSearch_MB := LANGsrSearch_MB; LANGSearch_days := LANGsrSearch_days; LANGSearch_weeks := LANGsrSearch_weeks; LANGSearch_months := LANGsrSearch_months; LANGSearch_years := LANGsrSearch_years; LANGSearch_Caption := LANGsrSearch_Caption; LANGSearch_General := LANGsrSearch_General; LANGSearch_Advanced := LANGsrSearch_Advanced; LANGSearch_SearchResults := LANGsrSearch_SearchResults; LANGSearch_SearchFor := LANGsrSearch_SearchFor; LANGSearch_FileMaskEntryTooltip := LANGsrSearch_FileMaskEntryTooltip; LANGSearch_SearchIn := LANGsrSearch_SearchIn; LANGSearch_SearchArchivesCheckButton := LANGsrSearch_SearchArchivesCheckButton; LANGSearch_FindText := LANGsrSearch_FindText; LANGSearch_FindTextEntryTooltip := LANGsrSearch_FindTextEntryTooltip; LANGSearch_CaseSensitiveCheckButton := LANGsrSearch_CaseSensitiveCheckButton; LANGSearch_StayCurrentFSCheckButton := LANGsrSearch_StayCurrentFSCheckButton; LANGSearch_CaseSensitiveMatchCheckButton := LANGsrSearch_CaseSensitiveMatchCheckButton; LANGSearch_Size := LANGsrSearch_Size; LANGSearch_Date := LANGsrSearch_Date; LANGSearch_BiggerThan := LANGsrSearch_BiggerThan; LANGSearch_SmallerThan := LANGsrSearch_SmallerThan; LANGSearch_ModifiedBetweenRadioButton := LANGsrSearch_ModifiedBetweenRadioButton; LANGSearch_NotModifiedAfterRadioButton := LANGsrSearch_NotModifiedAfterRadioButton; LANGSearch_ModifiedLastRadioButton := LANGsrSearch_ModifiedLastRadioButton; LANGSearch_ModifiedNotLastRadionButton := LANGsrSearch_ModifiedNotLastRadionButton; LANGSearch_ModifiedBetweenEntry1 := LANGsrSearch_ModifiedBetweenEntry1; LANGSearch_ViewButtonCaption := LANGsrSearch_ViewButtonCaption; LANGSearch_NewSearchButtonCaption := LANGsrSearch_NewSearchButtonCaption; LANGSearch_GoToFileButtonCaption := LANGsrSearch_GoToFileButtonCaption; LANGSearch_FeedToListboxButtonCaption := LANGsrSearch_FeedToListboxButtonCaption; LANGSearch_StatusSC := LANGsrSearch_StatusSC; LANGSearch_Ready := LANGsrSearch_Ready; LANGSearch_PreparingToSearch := LANGsrSearch_PreparingToSearch; LANGSearch_SearchInProgress := LANGsrSearch_SearchInProgress; LANGSearch_UserCancelled := LANGsrSearch_UserCancelled; LANGSearch_SearchFinished := LANGsrSearch_SearchFinished; LANGSearch_FilesFound := LANGsrSearch_FilesFound; LANGSearch_And := LANGsrSearch_And; LANGCloseOpenConnection := LANGsrCloseOpenConnection; LANGDuplicateTabWarning := LANGsrDuplicateTabWarning; LANGDontShowAgain := LANGsrDontShowAgain; LANGSwitchOtherPanelWarning := LANGsrSwitchOtherPanelWarning; LANGOpenConnectionsWarning := LANGsrOpenConnectionsWarning; LANGmiDisconnect_Caption := LANGsrmiDisconnect_Caption; LANGDisconnectButton_Tooltip := LANGsrDisconnectButton_Tooltip; LANGLeaveArchiveButton_Tooltip := LANGsrLeaveArchiveButton_Tooltip; LANGOpenTerminalButton_Tooltip := LANGsrOpenTerminalButton_Tooltip; LANGOpenTerminalButton_Caption := LANGsrOpenTerminalButton_Caption; LANGShowTextUIDsCheckBox_Caption := LANGsrShowTextUIDsCheckBox_Caption; LANGShowTextUIDsCheckBox_Tooltip := LANGsrShowTextUIDsCheckBox_Tooltip; LANGmiNewTab_Caption := LANGsrmiNewTab_Caption; LANGFilePopupMenu_Properties := LANGsrFilePopupMenu_Properties; LANGCommandEntry_Tooltip := LANGsrCommandEntry_Tooltip; LANGmiFiles_Caption := LANGsrmiFiles_Caption; LANGPasswordButton_Tooltip := LANGsrPasswordButton_Tooltip; LANGHandleRunFromArchive_Bytes := LANGsrHandleRunFromArchive_Bytes; LANGHandleRunFromArchive_FileTypeDesc_Unknown := LANGsrHandleRunFromArchive_FileTypeDesc_Unknown; LANGHandleRunFromArchive_NotAssociated := LANGsrHandleRunFromArchive_NotAssociated; LANGHandleRunFromArchive_SelfExecutable := LANGsrHandleRunFromArchive_SelfExecutable; LANGHandleRunFromArchive_CouldntCreateTemporaryDirectory := LANGsrHandleRunFromArchive_CouldntCreateTemporaryDirectory; LANGFRunFromVFS_Caption := LANGsrFRunFromVFS_Caption; LANGFRunFromVFS_TitleLabel := LANGsrFRunFromVFS_TitleLabel; LANGFRunFromVFS_FileNameLabel := LANGsrFRunFromVFS_FileNameLabel; LANGFRunFromVFS_FileTypeLabel := LANGsrFRunFromVFS_FileTypeLabel; LANGFRunFromVFS_SizeLabel := LANGsrFRunFromVFS_SizeLabel; LANGFRunFromVFS_PackedSizeLabel := LANGsrFRunFromVFS_PackedSizeLabel; LANGFRunFromVFS_DateLabel := LANGsrFRunFromVFS_DateLabel; LANGFRunFromVFS_InfoLabel := LANGsrFRunFromVFS_InfoLabel; LANGFRunFromVFS_OpensWithLabel := LANGsrFRunFromVFS_OpensWithLabel; LANGFRunFromVFS_ExecuteButton := LANGsrFRunFromVFS_ExecuteButton; LANGFRunFromVFS_ExecuteAllButton := LANGsrFRunFromVFS_ExecuteAllButton; LANGFSetPassword_Caption := LANGsrFSetPassword_Caption; LANGFSetPassword_Label1_Caption := LANGsrFSetPassword_Label1_Caption; LANGFSetPassword_Label2_Caption := LANGsrFSetPassword_Label2_Caption; LANGFSetPassword_ShowPasswordCheckButton := LANGsrFSetPassword_ShowPasswordCheckButton; LANGCopyFileNamesToClipboard := LANGsrCopyFileNamesToClipboard; LANGCopyFullPathNamesToClipboard := LANGsrCopyFullPathNamesToClipboard; LANGCopyPathToClipboard := LANGsrCopyPathToClipboard; LANGPreferences_DateFormatLabel_Caption := LANGsrPreferences_DateFormatLabel_Caption; LANGPreferences_System := LANGsrPreferences_System; LANGPreferences_Custom := LANGsrPreferences_Custom; LANGPreferences_CustomDateFormatEntry_Tooltip := LANGsrPreferences_CustomDateFormatEntry_Tooltip; LANGPreferences_TimeFormatLabel_Caption := LANGsrPreferences_TimeFormatLabel_Caption; LANGPreferences_CustomTimeFormatEntry_Tooltip := LANGsrPreferences_CustomTimeFormatEntry_Tooltip; LANGPreferences_DateTimeFormatLabel_Caption := LANGsrPreferences_DateTimeFormatLabel_Caption; LANGPreferences_QuickRenameSkipExtCheckBox := LANGsrPreferences_QuickRenameSkipExtCheckBox; LANGPreferences_QuickRenameSkipExtCheckBox_Tooltip := LANGsrPreferences_QuickRenameSkipExtCheckBox_Tooltip; LANGPreferences_SortDirectoriesLikeFilesCheckBox := LANGsrPreferences_SortDirectoriesLikeFilesCheckBox; LANGPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip := LANGsrPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip; LANGPreferences_QuickSearchLabel_Caption := LANGsrPreferences_QuickSearchLabel_Caption; LANGPreferences_QuickSearchOptionMenu_Tooltip := LANGsrPreferences_QuickSearchOptionMenu_Tooltip; LANGPreferences_QuickSearch_Option1 := LANGsrPreferences_QuickSearch_Option1; LANGPreferences_QuickSearch_Option2 := LANGsrPreferences_QuickSearch_Option2; LANGPreferences_QuickSearch_Option3 := LANGsrPreferences_QuickSearch_Option3; LANGPreferences_QuickSearch_Option4 := LANGsrPreferences_QuickSearch_Option4; LANGPreferences_TempPathLabel_Caption := LANGsrPreferences_TempPathLabel_Caption; LANGPreferences_VFSTempPathLabel_Caption := LANGsrPreferences_VFSTempPathLabel_Caption; LANGPreferences_VFSTempPathEntry_Tooltip := LANGsrPreferences_VFSTempPathEntry_Tooltip; LANGPreferences_RightClickSelectCheckBox := LANGsrPreferences_RightClickSelectCheckBox; LANGPreferences_RightClickSelectCheckBox_Tooltip := LANGsrPreferences_RightClickSelectCheckBox_Tooltip; LANGGtkMountOperation_ConnectAnonymously := LANGsrGtkMountOperation_ConnectAnonymously; LANGGtkMountOperation_ConnectAsUser := LANGsrGtkMountOperation_ConnectAsUser; LANGGtkMountOperation_Username := LANGsrGtkMountOperation_Username; LANGGtkMountOperation_Domain := LANGsrGtkMountOperation_Domain; LANGGtkMountOperation_Password := LANGsrGtkMountOperation_Password; LANGGtkMountOperation_DoNotSavePassword := LANGsrGtkMountOperation_DoNotSavePassword; LANGGtkMountOperation_ForgetPasswordImmediately := LANGsrGtkMountOperation_ForgetPasswordImmediately; LANGGtkMountOperation_RememberPasswordUntilYouLogout := LANGsrGtkMountOperation_RememberPasswordUntilYouLogout; LANGGtkMountOperation_SavePasswordInConnectionManager := LANGsrGtkMountOperation_SavePasswordInConnectionManager; LANGGtkMountOperation_RememberForever := LANGsrGtkMountOperation_RememberForever; LANGFSymlink_RelativePath := LANGsrFSymlink_RelativePath; LANGFConnectionManager_DuplicateButton_Caption := LANGsrFConnectionManager_DuplicateButton_Caption; LANGFConnectionManager_DuplicateButton_Tooltip := LANGsrFConnectionManager_DuplicateButton_Tooltip; LANGFConnectionManager_DoNotSavePasswordsCheckBox_Label := LANGsrFConnectionManager_DoNotSavePasswordsCheckBox_Label; LANGFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip := LANGsrFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip; LANGFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label := LANGsrFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label; LANGFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip := LANGsrFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip; LANGFConnectionManager_DuplicateMenuItem_Caption := LANGsrFConnectionManager_DuplicateMenuItem_Caption; LANGFQuickConnect_Caption := LANGsrFQuickConnect_Caption; LANGFQuickConnect_TitleLabel_Caption := LANGsrFQuickConnect_TitleLabel_Caption; LANGFQuickConnect_ConnectToURILabel_Caption := LANGsrFQuickConnect_ConnectToURILabel_Caption; LANGLinkToS := LANGsrLinkToS; LANGOpenDirectoryInBackgroundTab := LANGsrOpenDirectoryInBackgroundTab; LANGTheActiveConnectionHasNotBeenSaved := LANGsrTheActiveConnectionHasNotBeenSaved; LANGTheArchiveIsEncryptedAndRequiresPassword := LANGsrTheArchiveIsEncryptedAndRequiresPassword; end; initialization AddTranslation('SR', @SetTranslation); AddTranslation('sr_RS', @SetTranslation); AddTranslation('sr_RS@UTF-8', @SetTranslation); AddTranslation('sr_YU', @SetTranslation); AddTranslation('sr_YU.ISO_8859_2', @SetTranslation); end. tuxcmd-0.6.70+dfsg/translations/UTranslation_CZ.pas0000644000175000017500000025417411300022643021316 0ustar salvisalvi(* Tux Commander - UTranslation_CZ - Czech Localization constants Copyright (C) 2008 Tomas Bzatek Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UTranslation_CZ; interface implementation uses ULocale; const LANGcsF2Button_Caption = 'F2 - PÅ™ejmenovat'; LANGcsF3Button_Caption = 'F3 - Prohlížet'; LANGcsF4Button_Caption = 'F4 - Upravit'; LANGcsF5Button_Caption = 'F5 - Kopírovat'; LANGcsF6Button_Caption = 'F6 - PÅ™esunout'; LANGcsF7Button_Caption = 'F7 - Nová složka'; LANGcsF8Button_Caption = 'F8 - Smazat'; LANGcsmnuFile_Caption = 'Sou_bor'; LANGcsmnuMark_Caption = 'O_znaÄení'; LANGcsmnuCommands_Caption = 'Pří_kazy'; LANGcsmnuHelp_Caption = 'Nápo_vÄ›da'; LANGcsmiExit_Caption = '_Konec'; LANGcsmiSelectGroup_Caption = 'OznaÄit _skupinu...'; LANGcsmiUnselectGroup_Caption = '_OdznaÄit skupinu...'; LANGcsmiSelectAll_Caption = '_Vybrat vÅ¡e'; LANGcsmiUnselectAll_Caption = 'O_doznaÄit vÅ¡e'; LANGcsmiInvertSelection_Caption = '_PÅ™evrátit výbÄ›r'; LANGcsmiRefresh_Caption = 'O_bnovit'; LANGcsmiAbout_Caption = '_O programu...'; LANGcsColumn1_Caption = 'Jméno'; LANGcsColumn2_Caption = 'Přípona'; LANGcsColumn3_Caption = 'Velikost'; LANGcsColumn4_Caption = 'Datum'; LANGcsColumn5_Caption = 'Atributy'; LANGcsExpandSelection = 'Rozšířit výbÄ›r'; LANGcsShrinkSelection = 'Zúžit výbÄ›r'; LANGcsNoMatchesFound = 'Nenalezen žádný výskyt'; LANGcsNoFilesSelected = 'Není oznaÄen žádný soubor!'; LANGcsSelectedFilesDirectories = '%d oznaÄených souborů/složek'; LANGcsDirectoryS = 'složku %s'; LANGcsFileS = 'soubor %s'; LANGcsDoYouReallyWantToDeleteTheS = 'Opravdu si pÅ™ejete odstranit %s?'; LANGcsDoYouReallyWantToDeleteTheSS = 'Opravdu si pÅ™ejete odstranit %s?'#10'%s'; LANGcsCopyFiles = 'Kopírovat soubory'; LANGcsMoveRenameFiles = 'PÅ™esunout/pÅ™ejmenovat soubory'; LANGcsCopyDFileDirectoriesTo = 'Zkopírovat %d souborů/složek do'; LANGcsMoveRenameDFileDirectoriesTo = 'PÅ™esunout/pÅ™ejmenovat %d souborů/složek do'; LANGcsCopySC = 'Kopírovat:'; LANGcsMoveRenameSC = 'PÅ™esunout/pÅ™ejmenovat:'; LANGcsQuickFind = ' Vyhledat:'; LANGcsAboutString = 'Tux Commander'#10'Verze %s'#10'Datum sestavení: %s'#10#10'Copyright (c) 2008 Tomáš Bžatek'#10'E-mail: tbzatek@users.sourceforge.net'#10'WWW stránka: http://tuxcmd.sourceforge.net/'; LANGcsAboutStringGnome = 'verze %s'#10'Datum sestavení: %s'#10'WWW stránka: http://tuxcmd.sourceforge.net/'; LANGcsDiskStatFmt = '%s z %s volných'; LANGcsDiskStatVolNameFmt = '[%s] %s z %s volných'; LANGcsStatusLineFmt = '%s z %s v %d z %d souborů oznaÄeno'; LANGcsPanelStrings : array[boolean] of string = ('pravém', 'levém'); LANGcsDIR = ''; LANGcsErrorGettingListingForSPanel = 'Chyba pÅ™i otevírání složky v %s panelu:'#10' %s'#10#10'Cesta = ''%s'''; LANGcsErrorGettingListingForSPanelNoPath = 'Chyba pÅ™i otevírání složky v %s panelu:'#10' %s'; LANGcsErrorCreatingNewDirectorySInSPanel = 'Nelze vytvoÅ™it složku ''%s'' v %s panelu:'#10' %s'; LANGcsErrorCreatingNewDirectorySInSPanelNoPath = 'Nelze vytvoÅ™it složku ''%s'' v %s panelu:'#10' %s'; LANGcsTheFileDirectory = 'Soubor/adresář'; LANGcsCouldNotBeDeleted = 'nemohl být smazán'; LANGcsCouldNotBeDeletedS = 'nemohl být smazán: %s'; LANGcsUserCancelled = 'Operace pÅ™eruÅ¡ena!'; LANGcsTheDirectorySIsNotEmpty = 'Složka %s není prázdná!'; LANGcsCannotCopyFile = 'Nelze zkopírovat soubor'; LANGcsCopyError = 'Chyba pÅ™i kopírování'; LANGcsMoveError = 'Chyba pÅ™i pÅ™esouvání'; LANGcsOverwriteS = 'PÅ™epsat: %s'; LANGcsWithFileS = 'Souborem: %s'; LANGcsOvewriteSBytesS = '%s bytů, %s'; LANGcsTheFile = 'Soubor'; LANGcsCopy = 'Kopírovat'; LANGcsMove = 'PÅ™esunout'; LANGcsTheDirectory = 'Adresář'; LANGcsTheSymbolicLink = 'Symbolický odkaz'; LANGcsCannotMoveFile = 'Nelze pÅ™esunout soubor'; LANGcsCouldNotBeCreated = 'nemohl být vytvoÅ™en'; LANGcsCouldNotBeCreatedS = 'nemohl být vytvoÅ™en: %s'; LANGcsFromS = 'Z: %s'; LANGcsToS = 'Do: %s'; LANGcsCannotCopyFileToItself = 'Zdrojový a cílový soubor jsou totožné!'; LANGcsMemoryAllocationFailed = 'Chyba pÅ™i alokaci pamÄ›ti:'; LANGcsCannotOpenSourceFile = 'Nelze otevřít zdrojový soubor'; LANGcsCannotOpenDestinationFile = 'Nelze otevřít cílový soubor'; LANGcsCannotCloseDestinationFile = 'Nelze uzavřít cílový soubor'; LANGcsCannotCloseSourceFile = 'Nelze uzavřít zdrojový soubor'; LANGcsCannotReadFromSourceFile = 'Nelze Äíst ze zdrojového souboru'; LANGcsCannotWriteToDestinationFile = 'Nelze zapisovat do cílového souboru'; LANGcsUnknownException = 'Neznámá chyba'; LANGcsNoAccess = 'Přístup zamítnut'; LANGcsUnknownError = 'Neznámá chyba'; LANGcsCreateANewDirectory = 'VytvoÅ™it novou složku'; LANGcsEnterDirectoryName = 'Zadejte jmé_no složky:'; LANGcsOverwriteQuestion = 'Potvrzení pÅ™epsání'; LANGcsOverwriteButton_Caption = '_PÅ™epsat'; LANGcsOverwriteAllButton_Caption = 'PÅ™epsat _vÅ¡e'; LANGcsSkipButton_Caption = 'PÅ™e_skoÄit'; LANGcsOverwriteAllOlderButton_Caption = 'PÅ™epsat sta_rší'; LANGcsSkipAllButton_Caption = 'PÅ™eskoÄit vÅ¡_e'; LANGcsRenameButton_Caption = 'PÅ™ej_menovat'; LANGcsAppendButton_Caption = 'PÅ™ipoji_t'; LANGcsRename = 'PÅ™ejmenovat'; LANGcsRenameFile = 'PÅ™ejmenovat soubor ''%s'' na'; LANGcsIgnoreButton_Caption = '_Ignorovat'; LANGcsProgress = 'PrůbÄ›h operace'; LANGcsCancel = '_Storno'; LANGcsDelete = 'Mazání:'; LANGcsSpecifyFileType = 'Zvolte _typ souboru:'; LANGcsRemoveDirectory = 'Odstranit složku'; LANGcsDoYouWantToDeleteItWithAllItsFilesAndSubdirectories = 'Opravdu si pÅ™ejete vÅ¡e smazat vÄetnÄ› vnoÅ™ených složek?'; LANGcsRetry = '_Opakovat'; LANGcsDeleteButton_Caption = 'O_dstranit'; LANGcsAll = '_VÅ¡e'; LANGcsCopyFilesSC = 'Kopírovat soubory:'; LANGcsAppendQuestion = 'Opravdu si pÅ™ejete pÅ™ipojit soubor ''%s'' k souboru ''%s''?'; LANGcsPreparingList = 'PÅ™ipravuje se seznam souborů...'; LANGcsYouMustSelectAValidFile = 'Musíte oznaÄit platný soubor!'; LANGcsmiVerifyChecksums = '_Ověřit kontrolní souÄty'; LANGcsVerifyChecksumsCaption = 'Ověřit kontrolní souÄty'; LANGcsCheckButtonCaptionCheck = '_Ověřit'; LANGcsCheckButtonCaptionStop = '_Stop'; LANGcsFileListTooltip = '[?] - Dosud neověřeno'#10'[OK] - Kontrolní souÄet je správný'#10'[BAD] - Kontrolní souÄet je Å¡patný'#10'[N/A] - Soubor není k dispozici'; LANGcsFilenameColumnCaption = 'Soubor'; LANGcsTheFileSYouAreTryingToOpenIsQuiteBig = 'Soubor ''%s'' který se pokoušíte naÄíst, je velký (%s bajtů). Nemusí se jednat o platný soubor s kontrolními souÄty.'#10#10'PÅ™ejete si pokraÄovat?'; LANGcsAnErrorOccuredWhileInitializingMemoryBlock = 'Nastala chyba pÅ™i alokaci místa v pamÄ›ti. Pokuste se uvolnit paměť uzavÅ™ením nÄ›kolika aplikací a zkuste to znovu.'; LANGcsAnErrorOccuredWhileOpeningFileSS = 'Nelze otevřít soubor ''%s'':'#10' %s'; LANGcsAnErrorOccuredWhileReadingFileSS = 'Nelze Äíst ze souboru ''%s'':'#10' %s'; LANGcsChecksumNotChecked = 'Stav: Nekontrolováno'; LANGcsChecksumChecking = 'Stav: Probíhá kontrola...'; LANGcsChecksumInterrupted = 'Stav: PÅ™eruÅ¡eno'; LANGcsChecksumDOK = 'Stav: %d%% OK'; LANGcsmiCreateChecksumsCaption = '_VytvoÅ™it kontrolní souÄty...'; LANGcsYouMustSelectAtLeastOneFileToCalculateChecksum = 'Musíte oznaÄit alespoň jeden platný soubor, pro který chcete vytvoÅ™it kontrolní souÄty!'; LANGcsCreateChecksumsCaption = 'VytvoÅ™it kontrolní souÄty'; LANGcsCCHKSUMPage1Text = 'Chystáte se vytvoÅ™it kontrolní souÄty pro'#10'oznaÄené soubory v panelu. Jestliže nejsou'#10'oznaÄeny vÅ¡echny potÅ™ebné soubory,'#10'ukonÄete tohoto průvodce a zkuste to znovu.'; LANGcsCCHKSUMPage4Text = 'Průvodce je pÅ™ipraven vytvoÅ™it kontrolní souÄty.'#10'Tato operace může trvat nÄ›kolik minut.'#10'StisknÄ›te VpÅ™ed pro pokraÄování.'; LANGcsCCHKSUMPage6Text = 'BÄ›hem operace nastaly následující chyby:'; LANGcsCCHKSUMPage7Text = 'Kontrolní souÄty jsou pÅ™ipraveny k použití.'#10#10'Stisknutím DokonÄit ukonÄíte průvodce.'; LANGcsCCHKSUMPage1Title = 'Příprava souborů'; LANGcsCCHKSUMPage2Title = 'Vyberte typ souÄtového souboru'; LANGcsCCHKSUMPage3Title = 'Zvolte jméno souboru'; LANGcsCCHKSUMPage4Title = 'PÅ™ipraveno pro operaci'; LANGcsCCHKSUMPage5Title = 'Probíhá kontrola...'; LANGcsCCHKSUMPage6Title = 'Chyba!'; LANGcsCCHKSUMPage7Title = 'DokonÄeno'; LANGcsCCHKSUMSFVFile = 'soubor SFV'; LANGcsCCHKSUMMD5sumFile = 'soubor MD5'; LANGcsCCHKSUMFileName = '_Název souboru:'; LANGcsCCHKSUMCreateSeparateChecksumFiles = 'Samostatné _soubory se souÄty'; LANGcsCCHKSUMNowProcessingFileS = 'Kontroluje se soubor: %s'; LANGcsCCHKSUMFinishCaption = '_DokonÄit'; LANGcsCCHKSUMAreYouSureYouWantToAbortTheProcessing = 'Opravdu si pÅ™ejete pÅ™eruÅ¡it kontrolu?'; LANGcsCCHKSUMAnErrorOccuredWhileOpeningFileSS = 'Nastala chyba pÅ™i otevírání souboru ''%s'': %s'#10; LANGcsCCHKSUMAnErrorOccuredWhileReadingFileSS = 'Nastala chyba pÅ™i Ätení souboru ''%s'': %s'#10; LANGcsCCHKSUMAnErrorOccuredWhileWritingFileSS = 'Nastala chyba pÅ™i pokusu o zápis do souboru ''%s'': %s'#10; LANGcsAnErrorOccuredWhileWritingFileSS = 'Nelze zapisovat do souboru ''%s'':'#10' %s'; LANGcsTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt = 'Cílový soubor ''%s'' existuje. PÅ™ejete si ho pÅ™epsat?'; LANGcsTheTargetFileSCannotBeRemovedS = 'Cílový soubor ''%s'' nemohl být odstranÄ›n: %s'; LANGcsMergeCaption = 'Spojit'; LANGcsPleaseInsertNextDiskOrGiveDifferentLocation = 'Prosím vložte další disk nebo zadejte jiné umístÄ›ní:'; LANGcsMergeOfSSucceeded = 'Spojení souboru ''%s'' bylo úspěšnÄ› dokonÄeno (správný kontrolní souÄet).'; LANGcsWarningCreatedFileFailsCRCCheck = 'UpozornÄ›ní: VytvoÅ™ený soubor nemá správný kontrolní souÄet!'; LANGcsMergeOfSSucceeded_NoCRCFileAvailable = 'Spojení souboru ''%s'' bylo úspěšnÄ› dokonÄeno (kontrolní souÄet není k dispozici).'; LANGcsMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory = 'Spojit ''%s'' a vÅ¡echny soubory s navazujícími jmény do následujícího adresáře:'; LANGcsMergeSC = 'Spojit:'; LANGcsmiSplitFileCaption = '_RozdÄ›lit soubor...'; LANGcsmiMergeFilesCaption = 'S_pojit soubory...'; LANGcsSplitTheFileSToDirectory = '_RozdÄ›lit soubor ''%s'' do cílového adresáře:'; LANGcsSplitSC = 'RozdÄ›lit:'; LANGcsSplitFile = 'RozdÄ›lit soubor'; LANGcsBytesPerFile = '_Bajtů na soubor:'; LANGcsAutomatic = 'Automaticky'; LANGcsDeleteFilesOnTargetDisk = '_Smazat soubory na cílovém disku (vhodné pro vyjímatelné disky)'; LANGcsSplitCaption = 'RozdÄ›lit'; LANGcsCannotOpenFileS = 'Nelze otevřít soubor ''%s'''; LANGcsCannotSplitTheFileToMoreThan999Parts = 'Soubor nelze rozdÄ›lit do více než 999 Äástí!'; LANGcsThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem = 'V cílovém adresáři se nacházejí tyto soubory:'#10'%s'#10'PÅ™ejete si je smazat?'; LANGcsThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem = 'V cílovém adresáři se nachází %d souborů. PÅ™ejete si je smazat?'; LANGcsAnErrorOccuredWhileOperationS = 'PÅ™i provádÄ›ní operace nastala chyba : %s'; LANGcsSplitOfSSucceeded = 'RozdÄ›lení souboru ''%s'' bylo úspěšnÄ› dokonÄeno.'; LANGcsSplitOfSFailed = 'RozdÄ›lení souboru ''%s'' nebylo úspěšné!'; LANGcsmnuShow_Caption = '_Zobrazení'; LANGcsmiShowDotFiles_Caption = 'Zobrazit _skryté soubory'; LANGcsTheFileYouAreTryingToOpenIsQuiteBig = 'Soubor, který se pokoušíte naÄíst, je velký. OtevÅ™ením v externí aplikaci (napÅ™. gedit) může dojít ke zpomalení reakcí systému.'#10'PÅ™ejete si pokraÄovat?'; LANGcsCannotExecuteSPleaseCheckTheConfiguration = 'Nelze spustit ''%s''. Prosím zkontrolujte nastavení.'; LANGcsEdit = 'Upravit'; LANGcsEnterFilenameToEdit = 'Zad_ejte jméno souboru, který chcete upravit:'; LANGcsmnuSettings_Caption = 'Nas_tavení'; LANGcsmiFileTypes_Caption = '_Typy souborů...'; LANGcsThereIsNoApplicationAssociatedWithS = 'Žádná aplikace není pÅ™iÅ™azena k souboru "%s".'#10#10'PÅ™ejete si otevřít dialog s nastavením akcí k typům souborů?'; LANGcsErrorExecutingCommand = 'Zadaný příkaz nelze vykonat!'; LANGcsEditFileTypesCaption = 'Nastavení pÅ™iÅ™azení'; LANGcsTitleLabel_Caption = 'Typy souborů'; LANGcsExtensionsColumn = 'Přípony'; LANGcsDescriptionColumn = 'Popis'; LANGcsFileTypesList = 'Seznam typů souborů'; LANGcsActionName = 'Název akce'; LANGcsCommand = 'Příkaz'; LANGcsSetDefaultActionButton_Caption = '_Nastavit jako výchozí'; LANGcsRunInTerminalCheckBox_Caption = 'Spustit v _terminálu'; LANGcsAutodetectCheckBox_Caption = 'Autodetekce _okenní aplikace'; LANGcsBrowseButton_Caption = '_Prohledat...'; LANGcsCommandLabel_Caption = 'Pří_kaz:'; LANGcsDescriptionLabel_Caption = 'Náz_ev akce:'; LANGcsFNameExtLabel_Caption = 'PÅ™i_dat typ:'; LANGcsNotebookPageExtensions = 'Typ souboru'; LANGcsNotebookPageActions = 'Akce'; LANGcsDefault = ' (výchozí)'; LANGcsCannotSaveFileTypeAssociationsBecauseOtherProcess = 'Nelze uložit seznam typů souborů, protože jiný proces mezitím uložený seznam zmÄ›nil.'; LANGcsDefaultColor = 'Výchozí _barva'; LANGcsIcon = '_Ikona:'; LANGcsBrowseForIcon = 'Vyhledat ikonu'; LANGcsSelectFileTypeColor = 'Zvolit barvu typu souborů'; LANGcsColor = 'Ba_rva:'; LANGcsmiChangePermissions_Caption = 'ZmÄ›nit oprá_vnÄ›ní...'; LANGcsmiChangeOwner_Caption = 'ZmÄ›nit v_lastníka/skupinu...'; LANGcsmiCreateSymlink_Caption = 'VytvoÅ™it od_kaz...'; LANGcsmiEditSymlink_Caption = '_Upravit odkaz...'; LANGcsChmodProgress = 'ZmÄ›na oprávnÄ›ní:'; LANGcsChownProgress = 'ZmÄ›na vlastníka:'; LANGcsYouMustSelectAValidSymbolicLink = 'Musíte vybrat platný odkaz!'; LANGcsPopupRunS = 'Spus_tit %s'; LANGcsPopupOpenS = '_Otevřít %s'; LANGcsPopupGoUp = 'PÅ™ejít d_o nadÅ™azeného adresáře'; LANGcsPopupOpenWithS = 'Otevřít v %s'; LANGcsPopupDefault = ' (výchozí)'; LANGcsPopupOpenWith = '_Otevřít v...'; LANGcsPopupViewFile = '_Zobrazit soubor'; LANGcsPopupEditFile = 'Upravit _soubor'; LANGcsPopupMakeSymlink = 'VytvoÅ™it od_kaz'; LANGcsPopupRename = '_PÅ™ejmenovat'; LANGcsPopupDelete = 'O_dstranit'; LANGcsDialogChangePermissions = 'ZmÄ›nit oprávnÄ›ní'; LANGcsCouldNotBeChmoddedS = 'nelze zmÄ›nit oprávnÄ›ní: %s'; LANGcsDialogChangeOwner = 'ZmÄ›nit vlastníka/skupinu'; LANGcsCouldNotBeChownedS = 'nelze zmÄ›nit vlastníka: %s'; LANGcsDialogMakeSymlink = 'VytvoÅ™it odkaz'; LANGcsDialogEditSymlink = 'Upravit odkaz'; LANGcsFEditSymlink_Caption = 'Upravit symbolický odkaz'; LANGcsFEditSymlink_SymbolicLinkFilename = '_Název odkazu:'; LANGcsFEditSymlink_SymbolicLinkPointsTo = 'Odkaz _ukazuje na:'; LANGcsFChmod_Caption = 'OprávnÄ›ní'; LANGcsFChmod_PermissionFrame = 'Příznaky oprávnÄ›ní'; LANGcsFChmod_FileFrame = 'Soubor'; LANGcsFChmod_ApplyRecursivelyFor = 'Použít _opakovanÄ› pro'; LANGcsFChmod_miAllFiles = 'VÅ¡echny soubory a adresáře'; LANGcsFChmod_miDirectories = 'Pouze pro adresáře'; LANGcsFChmod_OctalLabel = 'Čí_selné vyjádÅ™ení:'; LANGcsFChmod_SUID = 'SUID - Nastavit ID uživatele pÅ™i spuÅ¡tÄ›ní'; LANGcsFChmod_SGID = 'SGID - Nastavit ID skupiny pÅ™i spuÅ¡tÄ›ní'; LANGcsFChmod_Sticky = 'bit ''sticky'''; LANGcsFChmod_RUSR = 'RUSR - ÄŒtení vlastníkem'; LANGcsFChmod_WUSR = 'WUSR - Zápis vlastníkem'; LANGcsFChmod_XUSR = 'XUSR - SpouÅ¡tÄ›ní vlastníkem'; LANGcsFChmod_RGRP = 'RGRP - ÄŒtení skupinou'; LANGcsFChmod_WGRP = 'WGRP - Zápis skupinou'; LANGcsFChmod_XGRP = 'XGRP - SpouÅ¡tÄ›ní skupinou'; LANGcsFChmod_ROTH = 'ROTH - ÄŒtení ostatními'; LANGcsFChmod_WOTH = 'WOTH - Zápis ostatními'; LANGcsFChmod_XOTH = 'XOTH - SpouÅ¡tÄ›ní ostatními'; LANGcsFChmod_TextLabel = 'Textové vyjádÅ™ení: %s'; LANGcsFChmod_FileLabel = 'Zvolený soubor: %s'#10'Textové vyjádÅ™ení: %s'#10 + 'Číselné vyjádÅ™ení: %d'#10'Vlastník: %s'#10 + 'Skupina: %s'; LANGcsFChown_Caption = 'ZmÄ›nit vlastníka/skupinu'; LANGcsFChown_OwnerFrame = 'Vlastník'; LANGcsFChown_GroupFrame = 'Název skupiny'; LANGcsFChown_FileFrame = 'Soubor'; LANGcsFChown_ApplyRecursively = 'Použít _opakovanÄ›'; LANGcsFSymlink_Caption = 'VytvoÅ™it symbolický odkaz'; LANGcsFSymlink_ExistingFilename = '_Existující soubor (na který se bude odkazovat):'; LANGcsFSymlink_SymlinkFilename = '_Název odkazu:'; LANGcsmnuBookmarks_Caption = 'Záložk_y'; LANGcsmiAddBookmark_Caption = 'PÅ™idat záložku'; LANGcsmiEditBookmarks_Caption = 'Upravit záložky'; LANGcsBookmarkPopupDelete_Caption = '_Smazat'; LANGcsmiPreferences_Caption = '_Nastavení...'; LANGcsTheCurrentDirectoryAlreadyExistsInTheBookmarksList = 'Adresář který se pokoušíte pÅ™idat již existuje v seznamu záložek'; LANGcsSomeOtherInstanceChanged = 'V nÄ›které další spuÅ¡tÄ›né instanci programu bylo zmÄ›nÄ›no nastavení. PÅ™ejete si použít nové nastavení i pro aktuální okno?'#10#10'UpozornÄ›ní: Pokud nepovolíte provedení zmÄ›n, bude toto nové nastavení pÅ™epsáno pÅ™i ukonÄení programu!'; LANGcsPreferences_Caption = 'Nastavení aplikace'; LANGcsPreferences_TitleLabel_Caption = 'Nastavení aplikace'; LANGcsPreferences_GeneralPage = 'Obecné'; LANGcsPreferences_FontsPage = 'Písma'; LANGcsPreferences_ColorsPage = 'Barvy'; LANGcsPreferences_RowHeight = 'Výš_ka řádku:'; LANGcsPreferences_NumHistoryItems = 'Položek v _historii příkazové řádky:'; LANGcsPreferences_Default = 'Výchozí'; LANGcsPreferences_ClearReadonlyAttribute = '_Odstranit atribut jen pro Ätení pÅ™i kopírování z CD-ROM'; LANGcsPreferences_DisableMouseRenaming = 'Zakázat _rychlé pÅ™ejmenování myší'; LANGcsPreferences_ShowFiletypeIconsInList = 'Zobrazit pÅ™idružené _ikony typů souborů '; LANGcsPreferences_ExternalAppsLabel = 'Externí programy'; LANGcsPreferences_Viewer = '_ProhlížeÄ:'; LANGcsPreferences_Editor = '_Editor:'; LANGcsPreferences_Terminal = '_Terminál:'; LANGcsPreferences_ListFont = 'Písmo v panelech:'; LANGcsPreferences_Change = '_ZmÄ›nit...'; LANGcsPreferences_UseDefaultFont = 'Použít _výchozí písmo'; LANGcsPreferences_Foreground = 'Text'; LANGcsPreferences_Background = 'Pozadí'; LANGcsPreferences_NormalItem = 'Normální položky:'; LANGcsPreferences_SetToDefaultToUseGTKThemeColors = 'PÅ™i výchozím nastavení se použije barva aktuálního tématu systému GTK'; LANGcsPreferences_Cursor = 'Kurzor:'; LANGcsPreferences_InactiveItem = 'Neaktivní položky:'; LANGcsPreferences_SelectedItem = 'OznaÄené položky:'; LANGcsPreferences_LinkItem = 'Symbolické odkazy:'; LANGcsPreferences_LinkItemHint = 'PÅ™i výchozím nastavení se použije barva normálních položek'; LANGcsPreferences_DotFileItem = 'Skryté soubory:'; LANGcsPreferences_DotFileItemHint = 'PÅ™i výchozím nastavení se použije barva normálních položek'; LANGcsPreferences_BrowseForApplication = 'Zvolit aplikaci'; LANGcsPreferences_DefaultS = 'Výchozí: %s'; LANGcsPreferences_SelectFont = 'Zvolit písmo'; (*************** STRINGS ADDED TO v0.4.101 **********************************************************************************) LANGcsBookmarkButton_Tooltip = 'Zobrazit záložky'; LANGcsUpButton_Tooltip = 'PÅ™esunout se o adresář výš'; LANGcsRootButton_Tooltip = 'PÅ™esunout se do koÅ™enového adresáře (/)'; LANGcsHomeButton_Tooltip = 'PÅ™esunout se do domovského adresáře (/home/user)'; LANGcsLeftEqualButton_Tooltip = 'ZmÄ›nit adresář v pravém panelu na aktuální'; LANGcsRightEqualButton_Tooltip = 'ZmÄ›nit adresář v levém panelu na aktuální'; LANGcsmiShowDirectorySizes_Caption = 'SpoÄítat obsazený prostor'; LANGcsmiTargetSource_Caption = 'Cílový adresář = Aktuální adresář'; LANGcsFileTypeDirectory = 'Adresáře'; LANGcsFileTypeFile = 'Soubory'; LANGcsFileTypeMetafile = 'SpoleÄná položka'; LANGcsPreferencesPanelsPage = 'Panely'; LANGcsPreferencesApplicationsPage = 'Aplikace'; LANGcsPreferencesExperimentalPage = 'Experimentální funkce'; LANGcsPreferencesSelectAllDirectoriesCheckBox_Caption = 'PÅ™i hromadném oznaÄování zahrnout i _adresáře'; LANGcsPreferencesNewStyleAltOCheckBox_Caption = 'No_vý styl Alt+O'; LANGcsPreferencesNewStyleAltOCheckBox_Tooltip = 'PÅ™i pÅ™epnutí nemÄ›ní aktuální adresář'; LANGcsPreferencesShowFuncButtonsCheckBox_Caption = 'Zobrazit _funkÄní tlaÄítka (spodní liÅ¡ta)'; LANGcsPreferencesSizeFormatLabel_Caption = 'For_mát Äísel:'; LANGcsPreferencesmiSizeFormat1 = 'Systémový'; LANGcsPreferencesmiSizeFormat6 = 'Dynamický'; LANGcsPreferencesAutodetectXApp = 'Autodetekce X aplikace'; LANGcsPreferencesAlwaysRunInTerminal = 'Spustit v terminálu'; LANGcsPreferencesNeverRunInTerminal = 'NespouÅ¡tÄ›t v terminálu'; LANGcsPreferencesCmdLineBehaviourLabel_Caption = 'SpouÅ¡tÄ›ní z _příkazové řádky:'; LANGcsPreferencesFeatures = 'Funkce'; LANGcsPreferencesDisableMouseRename_Tooltip = 'Pro rychlé pÅ™ejmenování můžete vždy použít klávesovou kombinaci Shift+F6 i pÅ™i zakázané této volbÄ›'; LANGcsPreferencesDisableFileTipsCheckBox_Caption = 'Zakázat plovoucí okno s plným _jménem souboru'; LANGcsPreferencesDisableFileTipsCheckBox_Tooltip = 'Nezobrazovat plovoucí okno s plným jménem souboru jestliže je název souboru/adresáře v panelu zkrácený'; LANGcsPreferencesShow = 'Zobrazení'; LANGcsPreferencesDirsInBoldCheckBox_Caption = 'Adresáře _tuÄným fontem'; LANGcsPreferencesDisableDirectoryBracketsCheckBox_Caption = 'Nezobrazovat _hranaté závorky v názvech adresářů'; LANGcsPreferencesOctalPermissionsCheckBox_Caption = 'Zobrazit _oprávnÄ›ní ÄíselnÄ›'; LANGcsPreferencesOctalPermissionsCheckBox_Tooltip = 'Zobrazit oprávnÄ›ní souboru/adresáře v Äíselné formÄ›'; LANGcsPreferencesMovement = 'Pohyb v panelech'; LANGcsPreferencesLynxLikeMotionCheckBox_Caption = 'Pohyb ve stylu prohlížeÄe _Lynx'; LANGcsPreferencesInsertMovesDownCheckBox_Caption = 'In_sert posune kurzor dolů'; LANGcsPreferencesSpaceMovesDownCheckBox_Caption = '_Mezerník posune kurzor dolů'; LANGcsPreferencesViewer = 'ProhlížeÄ'; LANGcsPreferencesCommandSC = 'Příkaz:'; LANGcsPreferencesUseInternalViewer = 'Použít _interní prohlížeÄ'; LANGcsPreferencesEditor = 'Editor'; LANGcsPreferencesTerminal = 'Terminál'; LANGcsPreferencesExperimentalFeatures = 'Experimentální funkce'; LANGcsPreferencesExperimentalWarningLabel_Caption = 'Varování: Tyto funkce jsou momentálnÄ› ve vývoji a není zaruÄena jejich bezchybná funkÄnost. Používejte jen na vlastní nebezpeÄí!'; LANGcsPreferencesFocusRefreshCheckBox_Caption = 'P_rovést znovunaÄtení panelů pÅ™i vstupu do okna aplikace'; LANGcsPreferencesFocusRefreshCheckBox_Tooltip = 'Tato operace trvá delší dobu v závislosti na poÄtu souborů v panelech'; LANGcsPreferencesWMCompatModeCheckBox_Caption = 'Mód _kompatibility s okenními manažery'; LANGcsPreferencesWMCompatModeCheckBox_Tooltip = 'Použijte v případÄ› potíží s nÄ›kterými okenními manažery (napÅ™. IceWM neprovádí maximalizaci okna korektnÄ›)'; LANGcsPreferencesCompatUseLibcSystemCheckBox_Caption = 'Použít funkci libc _system() pro spouÅ¡tÄ›ní procesů'; LANGcsPreferencesCompatUseLibcSystemCheckBox_Tooltip = 'Použijte v případÄ› potíží se zamrznutím nebo pády aplikace pÅ™i spouÅ¡tÄ›ní programů'; (*************** STRINGS ADDED TO v0.5.70 **********************************************************************************) LANGcsmiSearchCaption2 = '_Vyhledat soubory...'; LANGcsmiNoMounterBarCaption = 'Nez_obrazovat pruh disků'; LANGcsmiShowOneMounterBarCaption = 'Zobrazit _jeden pruh disků'; LANGcsmiShowTwoMounterBarCaption = 'Zobrazit _dva pruhy disků'; LANGcsmnuNetworkCaption = 'S_íť'; LANGcsmiConnectionsCaption = '_Správce pÅ™ipojení...'; LANGcsmiOpenConnectionCaption = '_PÅ™ipojit se...'; LANGcsmiQuickConnectCaption = '_Rychlé pÅ™ipojení...'; LANGcsmnuPluginsCaption = '_Moduly'; LANGcsmiTestPluginCaption = '_Test modulu...'; LANGcsmiMounterSettingsCaption = 'Nastavení pruhu _disků...'; LANGcsmiColumnsCaption = 'Nastavení sloup_ců...'; LANGcsmiSavePositionCaption = '_Uložit pozici'; LANGcsmiMountCaption = '_PÅ™ipojit'; LANGcsmiUmountCaption = '_Odpojit'; LANGcsmiEjectCaption = '_Vysunout'; LANGcsmiDuplicateTabCaption = '_Otevřít nový panel'; LANGcsmiCloseTabCaption = '_Zavřít aktuální panel'; LANGcsmiCloseAllTabsCaption = 'Zavřít _vÅ¡echny panely'; LANGcsCannotDetermineDestinationEngine = 'Nelze urÄit cílový adresář. Prosím zkontrolujte zadanou cestu a zkuste to znovu.'; LANGcsCannotLoadFile = 'Nelze otevřít soubor ''%s''. Prosím zkontrolujte oprávnÄ›ní a zkuste to znovu.'; LANGcsMountPointDevice = 'Přípojný bod: %s'#10'Zařízení: %s'; LANGcsMountSC = 'PÅ™ipojit:'; LANGcsNoPluginsFound = 'Modul nenalezen'; LANGcsPluginAbout = 'O modulu...'; LANGcsCouldntOpenURI = 'NepodaÅ™ilo se otevřít vzdálené pÅ™ipojení. Prosím zkontrolujte platnost adresy a přístupová práva.'; LANGcsPluginAboutInside = 'Modul: %s'#10#10'%s'#10'%s'; LANGcsAreYouSureCloseAllTabs = 'Opravdu si pÅ™ejete zavřít vÅ¡echny ostatní panely?'; LANGcsCouldntOpenURIArchive = 'NepodaÅ™ilo se otevřít archív, pravdÄ›podobnÄ› bude poÅ¡kozen. Prosím zkontrolujte soubor a přístupová práva.'; LANGcsThereIsNoModuleAvailable = 'Nelze nalézt odpovídající modul potÅ™ebný pro otevÅ™ení tohoto spojení. Prosím zkontrolujte aktivní moduly.'; LANGcsIgnoreError = 'Opravdu si pÅ™ejete ignorovat tuto chybu? Zdrojový soubor bude smazán'; LANGcsErrorMount = 'Nastala chyba pÅ™i pÅ™ipojování zařízení ''%s'':'#10#10; LANGcsErrorUmount = 'Nastala chyba pÅ™i odpojování zařízení ''%s'':'#10#10; LANGcsErrorEject = 'Nastala chyba pÅ™i vysouvání zařízení ''%s'':'#10#10; LANGcsMounterPrefs_Caption = 'Nastavení panelu disků'; LANGcsMounterPrefs_TitleLabelCaption = 'Nastavení panelu disků'; LANGcsMounterPrefs_ListViewFrameCaption = 'Přípojné body'; LANGcsMounterPrefs_MountName = 'Název'; LANGcsMounterPrefs_MountPoint = 'Přípojný bod'; LANGcsMounterPrefs_Device = 'Zařízení'; LANGcsMounterPrefs_MoveUpButtonTooltip = 'PÅ™esunout nahoru'; LANGcsMounterPrefs_MoveDownButtonTooltip = 'PÅ™esunout dolů'; LANGcsMounterPrefs_UseFSTabDefaultsCheckBox = 'Použít _systémový seznam přípojných bodů'; LANGcsMounterPrefs_UseFSTabDefaultsCheckBoxTooltip = 'Je-li tato možnost aktivní, použije se seznam přípojných bodů ze systémového souboru /etc/fstab'; LANGcsMounterPrefs_ToggleModeCheckBox = 'ZamáÄklá tlaÄítka _disků u pÅ™ipojených zařízení'; LANGcsMounterPrefs_ToggleModeCheckBoxTooltip = 'Je-li tato položka aktivní, zůstanou tlaÄítka v panelu zamáÄklá v případÄ›, že je zařízení pÅ™ipojeno. Kliknutím zařízení odpojíte, příp. vysunete'; LANGcsMounterPrefs_PropertiesFrameCaption = 'Vlastnosti přípojného bodu'; LANGcsMounterPrefs_DisplayTextLabelCaption = '_Název:'; LANGcsMounterPrefs_MountPointLabelCaption = 'Přípojný _bod:'; LANGcsMounterPrefs_MountDeviceLabelCaption = '_Zařízení:'; LANGcsMounterPrefs_DeviceTypeLabelCaption = 'T_yp zařízení:'; LANGcsMounterPrefs_miLocalDiskCaption = 'Místní disk'; LANGcsMounterPrefs_miRemovableCaption = 'VýmÄ›nný disk'; LANGcsMounterPrefs_miCDCaption = 'CD/DVD jednotka'; LANGcsMounterPrefs_miFloppyCaption = 'Disketová mechanika'; LANGcsMounterPrefs_miNetworkCaption = 'Síťový prostÅ™edek'; LANGcsMounterPrefs_MountCommandLabelCaption = 'Příkaz pro _pÅ™ipojení:'; LANGcsMounterPrefs_UmountCommandLabelCaption = 'Příkaz pro _odpojení:'; LANGcsMounterPrefs_MountCommandEntryTooltip = 'Syntaxe: použijte %dev místo zařízení a %dir pro cestu přípojného bodu. V případÄ›, že nepoužíváte nestandardní příkaz pro pÅ™ipojení zařízení, nechte toto pole nevyplnÄ›né.'#10 + 'UpozornÄ›ní: nepoužívejte příkazy vyžadující vstupy z klávesnice uživatele, program je nedokáže obsloužit!'#10'Příklad: smbmount %dev %dir -o username=netuser,password=heslo'; LANGcsMounterPrefs_UmountCommandEntryTooltip = 'Syntaxe: použijte %dev místo zařízení a %dir pro cestu přípojného bodu. V případÄ›, že nepoužíváte nestandardní příkaz pro odpojení zařízení, nechte toto pole nevyplnÄ›né.'#10'Příklad: smbumount %dir'; LANGcsMounterPrefs_IconLabelCaption = '_Ikona:'; LANGcsConnMgr_Caption = 'Otevřít nové spojení'; LANGcsConnMgr_ConnectButton = '_PÅ™ipojit'; LANGcsConnMgr_OpenConnection = 'Otevřít nové spojení'; LANGcsConnMgr_NameColumn = 'Název'; LANGcsConnMgr_URIColumn = 'Adresa'; LANGcsConnMgr_AddConnectionButtonCaption = 'N_ové spojení...'; LANGcsConnMgr_AddConnectionButtonTooltip = 'VytvoÅ™it nové spojení'; LANGcsConnMgr_EditButtonCaption = '_Upravit...'; LANGcsConnMgr_EditButtonTooltip = 'Upravit vybrané spojení'; LANGcsConnMgr_RemoveButtonCaption = 'O_dstranit'; LANGcsConnMgr_RemoveButtonTooltip = 'Odstranit vybrané spojení'; LANGcsConnMgr_DoYouWantDelete = 'Opravdu si pÅ™ejete odstranit vybrané spojení ''%s''?'; LANGcsConnProp_FTP = 'FTP'; LANGcsConnProp_SFTP = 'SFTP (ssh podsystém)'; LANGcsConnProp_SMB = 'Sdílení v síti Windows (SMB)'; LANGcsConnProp_HTTP = 'WebDAV (HTTP)'; LANGcsConnProp_HTTPS = 'ZabezpeÄené WebDAV (HTTPS)'; LANGcsConnProp_Other = 'Ostatní (prosím upÅ™esnÄ›te v adrese)'; LANGcsConnProp_Caption = 'Vlastnosti pÅ™ipojení'; LANGcsConnProp_VFSModule = '_VFS modul:'; LANGcsConnProp_URI = '_Adresa (URI):'; LANGcsConnProp_URIEntryTooltip = 'Platná adresa URI by mÄ›la obsahovat Å™etÄ›zec typu služby a adresu síťového serveru'; LANGcsConnProp_DetailedInformations = 'UpÅ™esňující informace'; LANGcsConnProp_Name = '_Název:'; LANGcsConnProp_Server = 'Serve_r[:port]:'; LANGcsConnProp_Username = 'Uživa_telské jméno:'; LANGcsConnProp_UserNameEntryTooltip = 'Nevyplňujte, jedná-li se o anonymní přístup'; LANGcsConnProp_Password = '_Heslo:'; LANGcsConnProp_TargetDirectory = '_Cílový adresář:'; LANGcsConnProp_ServiceType = 'Typ _služby:'; LANGcsConnProp_MaskPassword = 'S_krýt heslo'; LANGcsConnProp_MenuItemCaption = 'Výchozí (vÅ¡sechny dostupné moduly)'; LANGcsConnLogin_Caption = 'PÅ™ihlášení'; LANGcsConnLogin_Login = 'PÅ™ihlášení'; LANGcsConnLogin_ExperimentalWarningLabelCaption = 'Pro přístup k prostÅ™edku %s musíte být pÅ™ihlášeni'; LANGcsConnLogin_Username = '_Uživatelské jméno:'; LANGcsConnLogin_Password = '_Heslo:'; LANGcsConnLogin_AnonymousCheckButton = '_Anonymní přístup'; LANGcsColumns_Caption = 'Nastavení sloupců hlavního panelu'; LANGcsColumns_Title = 'Nastavení sloupců panelu'; LANGcsColumns_MoveUpButtonTooltip = 'PÅ™esunout položku nahoru'; LANGcsColumns_MoveDownButtonTooltip = 'PÅ™esunout položku dolů'; LANGcsColumns_TitlesLongName = 'Jméno'; LANGcsColumns_TitlesLongNameExt = 'Jméno + typ'; LANGcsColumns_TitlesLongExt = 'Typ'; LANGcsColumns_TitlesLongSize = 'Velikost'; LANGcsColumns_TitlesLongDateTime = 'Datum zmÄ›ny + Äas zmÄ›ny'; LANGcsColumns_TitlesLongDate = 'Datum poslední zmÄ›ny'; LANGcsColumns_TitlesLongTime = 'ÄŒas poslední zmÄ›ny'; LANGcsColumns_TitlesLongUser = 'Uživatel'; LANGcsColumns_TitlesLongGroup = 'Skupina'; LANGcsColumns_TitlesLongAttr = 'Atributy'; LANGcsColumns_TitlesShortName = 'Jméno'; LANGcsColumns_TitlesShortNameExt = 'Jméno'; LANGcsColumns_TitlesShortExt = 'Typ'; LANGcsColumns_TitlesShortSize = 'Velikost'; LANGcsColumns_TitlesShortDateTime = 'Datum'; LANGcsColumns_TitlesShortDate = 'Datum'; LANGcsColumns_TitlesShortTime = 'ÄŒas'; LANGcsColumns_TitlesShortUser = 'Uživatel'; LANGcsColumns_TitlesShortGroup = 'Skupina'; LANGcsColumns_TitlesShortAttr = 'Atrib.'; LANGcsTestPlugin_Caption = 'Test VFS modulu'; LANGcsTestPlugin_Title = 'Test VFS modulu'; LANGcsTestPlugin_ExperimentalWarningLabelCaption = 'Varování: Podystém virtuálního souborového systému (VFS) a integrované moduly jsou momentálnÄ› ve vývoji a mohou obsahovat kritické chyby'; LANGcsTestPlugin_Plugin = '_Modul:'; LANGcsTestPlugin_Command = '_Adresa:'; LANGcsTestPlugin_Username = '_Uživatel:'; LANGcsTestPlugin_Password = '_Heslo:'; LANGcsTestPlugin_AnonymousCheckButton = '_Anonymní přístup (bez volání funkce VFSLogin)'; LANGcsTestPlugin_NoPluginsFound = 'Žádný modul není k dispozici'; LANGcsRemoteWait_Caption = 'Probíhá operace'; LANGcsRemoteWait_OperationInProgress = 'Aplikace nyní zpracovává váš požadavek, prosím o strpení...'; LANGcsRemoteWait_ItemsFound = 'Nalezených položek: %d'; LANGcsSearch_Bytes = 'bajtů'; LANGcsSearch_kB = 'kB'; LANGcsSearch_MB = 'MB'; LANGcsSearch_days = 'dnech'; LANGcsSearch_weeks = 'týdnech'; LANGcsSearch_months = 'mÄ›sícech'; LANGcsSearch_years = 'letech'; LANGcsSearch_Caption = 'Vyhledat soubory'; LANGcsSearch_General = 'Obecné'; LANGcsSearch_Advanced = 'UpÅ™esnÄ›ní'; LANGcsSearch_SearchResults = '_Výsledky hledání:'; LANGcsSearch_SearchFor = '_Najít:'; LANGcsSearch_FileMaskEntryTooltip = 'Tip: Použijte stÅ™edník pro oddÄ›lení více hledaných výrazů'; LANGcsSearch_SearchIn = 'Hledat _v:'; LANGcsSearch_SearchArchivesCheckButton = 'Prohledávat _archívy'; LANGcsSearch_FindText = 'Najít _text:'; LANGcsSearch_FindTextEntryTooltip = 'Nechte toto pole nevyplnÄ›né, nechcete-li vyhledávat text v souboru'#10'UpozornÄ›ní: Å™etÄ›zce jsou v kódování UTF-8'; LANGcsSearch_CaseSensitiveCheckButton = '_RozliÅ¡ovat velká a malá písmena'; LANGcsSearch_StayCurrentFSCheckButton = 'Vyhledávat i na pÅ™ipojených _zařízeních'; LANGcsSearch_CaseSensitiveMatchCheckButton = 'RozliÅ¡ovat vel_ká a malá písmena'; LANGcsSearch_Size = 'Velikost'; LANGcsSearch_Date = 'Datum'; LANGcsSearch_BiggerThan = '_VÄ›tší než'; LANGcsSearch_SmallerThan = '_Menší než'; LANGcsSearch_ModifiedBetweenRadioButton = '_ZmÄ›nÄ›no mezi daty'; LANGcsSearch_NotModifiedAfterRadioButton = '_Nebylo zmÄ›nÄ›no po datu'; LANGcsSearch_ModifiedLastRadioButton = 'ZmÄ›nÄ›no v po_sledních'; LANGcsSearch_ModifiedNotLastRadionButton = 'NezmÄ›nÄ›n_o v posledních'; LANGcsSearch_ModifiedBetweenEntry1 = '"Prosím použijte tento formát data:" c'; LANGcsSearch_ViewButtonCaption = 'Prohlížet sou_bor'; LANGcsSearch_NewSearchButtonCaption = 'Nové hle_dání'; LANGcsSearch_GoToFileButtonCaption = 'PÅ™ejít na so_ubor'; LANGcsSearch_FeedToListboxButtonCaption = 'Nap_lnit hlavní panel'; LANGcsSearch_StatusSC = 'Stav:'; LANGcsSearch_Ready = 'PÅ™ipraveno.'; LANGcsSearch_PreparingToSearch = 'Příprava hledání.'; LANGcsSearch_SearchInProgress = 'Probíhá vyhledávání:'; LANGcsSearch_UserCancelled = 'PÅ™eruÅ¡eno uživatelem.'; LANGcsSearch_SearchFinished = 'Vyhledávání dokonÄeno'; LANGcsSearch_FilesFound = 'Nalezeno %d souborů'; LANGcsSearch_And = 'a'; (*************** STRINGS ADDED TO v0.5.82 **********************************************************************************) LANGcsCloseOpenConnection = 'Pokoušíte se otevřít druhé spojení pÅ™es další aktivní spojení. PokraÄováním bude původní spojení uzavÅ™eno a nahrazeno novým.'#10#10'PÅ™ejete si pokraÄovat?'; LANGcsDuplicateTabWarning = 'Pokoušíte se otevřít nový panel obsahující otevÅ™ené vzdálené spojení. Tato operace nemůže být provedena, protože duplikace spojení není podporováno. Nový panel bude pÅ™esmÄ›rován na lokální souborový systém.'; LANGcsDontShowAgain = '_PříštÄ› tento dotaz nezobrazovat'; LANGcsSwitchOtherPanelWarning = 'Pokoušíte se otevřít adresář vzdáleného spojení v druhém panelu. Tato operace nemůže být provedena, protože duplikace spojení není podporováno.'; LANGcsOpenConnectionsWarning = 'V panelu stále existují otevÅ™ená spojení. UkonÄením aplikace budou odpojeny.'#10#10'PÅ™ejete si aplikaci opravdu ukonÄit?'; LANGcsmiDisconnect_Caption = 'O_dpojit'; LANGcsDisconnectButton_Tooltip = 'Odpojit aktuální spojení'; LANGcsLeaveArchiveButton_Tooltip = 'Zavřít archiv'; LANGcsOpenTerminalButton_Tooltip = 'OtevÅ™e nové terminálové okno v aktuálním adresáři'; LANGcsOpenTerminalButton_Caption = 'Te_rminál'; LANGcsShowTextUIDsCheckBox_Caption = 'Zobrazit vlastníka a sk_upinu textovÄ›'; LANGcsShowTextUIDsCheckBox_Tooltip = 'Použít textové vyjádÅ™ení vlastníka a skupiny namísto Äíselné formy (UID/GID)'; (*************** STRINGS ADDED TO v0.5.100 **********************************************************************************) LANGcsmiNewTab_Caption = 'Nový _panel'; LANGcsFilePopupMenu_Properties = 'Vl_astnosti'; LANGcsCommandEntry_Tooltip = 'Použijte ''%s'' jako zástupce pro jméno souboru/adresáře'; LANGcsmiFiles_Caption = 'Pouze pro soubory'; (*************** STRINGS ADDED TO v0.6.31 **********************************************************************************) LANGcsPasswordButton_Tooltip = 'Archív je zabezpeÄen heslem.'#10'Kliknutím nastavíte heslo.'; LANGcsHandleRunFromArchive_Bytes = 'bajtů'; LANGcsHandleRunFromArchive_FileTypeDesc_Unknown = '(není k dispozici)'; LANGcsHandleRunFromArchive_NotAssociated = '(bez asociace)'; LANGcsHandleRunFromArchive_SelfExecutable = '(spustitelný)'; LANGcsHandleRunFromArchive_CouldntCreateTemporaryDirectory = 'NepodaÅ™ilo se vytvoÅ™it adresář "%s" pro doÄasné soubory: %s.'#10#10'Zkontrolujte prosím zadanou cestu a operaci opakujte.'; LANGcsFRunFromVFS_Caption = 'Vlastnosti souboru'; LANGcsFRunFromVFS_TitleLabel = 'Vlastnosti'; LANGcsFRunFromVFS_FileNameLabel = 'Název souboru:'; LANGcsFRunFromVFS_FileTypeLabel = 'Typ souboru:'; LANGcsFRunFromVFS_SizeLabel = 'Velikost:'; LANGcsFRunFromVFS_PackedSizeLabel = 'Komprimovaná velikost:'; LANGcsFRunFromVFS_DateLabel = 'Datum zmÄ›ny:'; LANGcsFRunFromVFS_InfoLabel = 'Zobrazení souborů přímo z archívu není možné. Klepnutím na tlaÄítka níže se vámi vybrané soubory (resp. celý archív) rozbalí do doÄasného adresáře, z nÄ›jž je lze jednoduÅ¡e otevřít ve zvolené aplikaci.' + #10'VÅ¡echny doÄasné soubory budou smazány pÅ™i ukonÄení aplikace Tux Commander.'; LANGcsFRunFromVFS_OpensWithLabel = 'Otevřít v:'; LANGcsFRunFromVFS_ExecuteButton = 'E_xtrahovat a otevřít'; LANGcsFRunFromVFS_ExecuteAllButton = 'Extrahovat _vÅ¡e a otevřít'; LANGcsFSetPassword_Caption = 'Heslo archívu'; LANGcsFSetPassword_Label1_Caption = 'Zadejte prosím heslo'; LANGcsFSetPassword_Label2_Caption = 'Pro přístup a práci s obsahem archívu je potÅ™eba zadat heslo'; LANGcsFSetPassword_ShowPasswordCheckButton = 'Od_krýt heslo'; (*************** STRINGS ADDED TO v0.6.48 **********************************************************************************) LANGcsCopyFileNamesToClipboard = 'Zkopírovat jmé_na souborů do schránky'; LANGcsCopyFullPathNamesToClipboard = 'Zkopírovat _absolutní cesty do schránky'; LANGcsCopyPathToClipboard = 'Zkopírovat _cestu do schránky'; LANGcsPreferences_DateFormatLabel_Caption = '_Formát data:'; LANGcsPreferences_System = 'Systémový'; LANGcsPreferences_Custom = 'Vlastní...'; LANGcsPreferences_CustomDateFormatEntry_Tooltip = 'Zadejte prosím vlastní formát data.'#10'Formátovací znaÄky lze nalézt v manuálové stránce "man strftime".'; LANGcsPreferences_TimeFormatLabel_Caption = 'Formát Äas_u:'; LANGcsPreferences_CustomTimeFormatEntry_Tooltip = 'Zadejte prosím vlastní formát Äasu.'#10'Formátovací znaÄky lze nalézt v manuálové stránce "man strftime".'; LANGcsPreferences_DateTimeFormatLabel_Caption = '_PoÅ™adí data a Äasu:'; LANGcsPreferences_QuickRenameSkipExtCheckBox = 'PÅ™ej_menování bez koncovky souboru'; LANGcsPreferences_QuickRenameSkipExtCheckBox_Tooltip = 'Nezahrnovat do výbÄ›ru koncovku souboru pÅ™i pÅ™ejmenovávání'; LANGcsPreferences_SortDirectoriesLikeFilesCheckBox = 'Řadit adresáře po_dle souborů'; LANGcsPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip = 'Je-li tato volba aktivní, budou adresáře Å™azeny stejnÄ› jako soubory. Adresáře se zobrazují vždy na zaÄátku seznamu.'#10'Volba neaktivní: adresáře budou Å™azeny vždy podle jména.'; LANGcsPreferences_QuickSearchLabel_Caption = 'Klávesy _rychlého vyhledávání:'; LANGcsPreferences_QuickSearchOptionMenu_Tooltip = 'Klávesové zkratky Ctrl+S/Alt+S a "/" jsou aktivní vždy, nezávisle na dalším nastavení.'; LANGcsPreferences_QuickSearch_Option1 = 'Jen Ctrl+S/Alt+S a "/"'; LANGcsPreferences_QuickSearch_Option2 = 'Ctrl+Alt+písmena'; LANGcsPreferences_QuickSearch_Option3 = 'Alt+písmena'; LANGcsPreferences_QuickSearch_Option4 = 'přímo písmena'; LANGcsPreferences_TempPathLabel_Caption = 'DoÄasné soubory'; LANGcsPreferences_VFSTempPathLabel_Caption = '_VFS subsystém:'; LANGcsPreferences_VFSTempPathEntry_Tooltip = 'UmístÄ›ní doÄasných souborů VFS subsystému, použitých napÅ™. pÅ™i otevírání souborů přímo z archívu. VÅ¡echny doÄasné soubory budou odstranÄ›ny pÅ™i ukonÄení aplikace.'; (*************** STRINGS ADDED TO v0.6.67 **********************************************************************************) LANGcsPreferences_RightClickSelectCheckBox = '_VýbÄ›r pomocí pravého tlaÄítka myÅ¡i'; LANGcsPreferences_RightClickSelectCheckBox_Tooltip = 'Používat pravé tlaÄítko myÅ¡i pro oznaÄování souborů, napÅ™. jako ve správci "mc".'; LANGcsGtkMountOperation_ConnectAnonymously = 'PÅ™ipojit se _anonymnÄ›'; LANGcsGtkMountOperation_ConnectAsUser = 'PÅ™ipojit se jako uži_vatel:'; LANGcsGtkMountOperation_Username = '_Uživatelské jméno:'; LANGcsGtkMountOperation_Domain = '_Doména:'; LANGcsGtkMountOperation_Password = '_Heslo:'; LANGcsGtkMountOperation_DoNotSavePassword = '_Neukládat heslo'; LANGcsGtkMountOperation_ForgetPasswordImmediately = '_Neukládat heslo'; LANGcsGtkMountOperation_RememberPasswordUntilYouLogout = 'Pamatovat si heslo v rámci souÄasného _sezení'; LANGcsGtkMountOperation_SavePasswordInConnectionManager = 'Uložit heslo do _Správce pÅ™ipojení'; LANGcsGtkMountOperation_RememberForever = 'Zapamatovat n_avždy'; LANGcsFSymlink_RelativePath = '_Relativní cesta'; LANGcsFConnectionManager_DuplicateButton_Caption = 'D_uplikovat...'; LANGcsFConnectionManager_DuplicateButton_Tooltip = 'Zduplikuje vybrané spojení'; LANGcsFConnectionManager_DoNotSavePasswordsCheckBox_Label = '_Neukládat hesla do databáze Tux Commanderu (ale pÅ™esto používat klíÄenku gnome-keyring)'; LANGcsFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip = 'ZaÅ¡krtnutím této volby se nebudou ukládat žádná hesla do Správce pÅ™ipojení. Z podstaty systému GVFS se ale budou stále ukládat do klíÄenky gnome-keyring vaÅ¡eho desktopového sezení.'; LANGcsFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label = 'Neukládata hesla do klíÄenky gnome-_keyring'; LANGcsFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip = 'Neukládat žádná hesla do klíÄenky gnome-keyring.'; LANGcsFConnectionManager_DuplicateMenuItem_Caption = 'D_uplikovat...'; LANGcsFQuickConnect_Caption = 'Rychlé pÅ™ipojení'; LANGcsFQuickConnect_TitleLabel_Caption = 'Rychlé pÅ™ipojení'; LANGcsFQuickConnect_ConnectToURILabel_Caption = 'PÅ™ip_ojit se k URI:'; LANGcsLinkToS = 'Zástupce %s'; LANGcsOpenDirectoryInBackgroundTab = 'Otevřít adresář v nové _záložce na pozadí'; LANGcsTheActiveConnectionHasNotBeenSaved = 'Aktivní spojení nebylo uloženo. PÅ™ejete si jej uložit do Správce pÅ™ipojení?'#10#10'%s'; LANGcsTheArchiveIsEncryptedAndRequiresPassword = 'Archív je Å¡ifrovaný a vyžaduje heslo'; (********************************************************************************************************************************) procedure SetTranslation; begin LANGF2Button_Caption := LANGcsF2Button_Caption; LANGF3Button_Caption := LANGcsF3Button_Caption; LANGF4Button_Caption := LANGcsF4Button_Caption; LANGF5Button_Caption := LANGcsF5Button_Caption; LANGF6Button_Caption := LANGcsF6Button_Caption; LANGF7Button_Caption := LANGcsF7Button_Caption; LANGF8Button_Caption := LANGcsF8Button_Caption; LANGmnuFile_Caption := LANGcsmnuFile_Caption; LANGmnuMark_Caption := LANGcsmnuMark_Caption; LANGmnuCommands_Caption := LANGcsmnuCommands_Caption; LANGmnuHelp_Caption := LANGcsmnuHelp_Caption; LANGmiExit_Caption := LANGcsmiExit_Caption; LANGmiSelectGroup_Caption := LANGcsmiSelectGroup_Caption; LANGmiUnselectGroup_Caption := LANGcsmiUnselectGroup_Caption; LANGmiSelectAll_Caption := LANGcsmiSelectAll_Caption; LANGmiUnselectAll_Caption := LANGcsmiUnselectAll_Caption; LANGmiInvertSelection_Caption := LANGcsmiInvertSelection_Caption; LANGmiRefresh_Caption := LANGcsmiRefresh_Caption; LANGmiAbout_Caption := LANGcsmiAbout_Caption; LANGColumn1_Caption := LANGcsColumn1_Caption; LANGColumn2_Caption := LANGcsColumn2_Caption; LANGColumn3_Caption := LANGcsColumn3_Caption; LANGColumn4_Caption := LANGcsColumn4_Caption; LANGColumn5_Caption := LANGcsColumn5_Caption; LANGExpandSelection := LANGcsExpandSelection; LANGShrinkSelection := LANGcsShrinkSelection; LANGNoMatchesFound := LANGcsNoMatchesFound; LANGNoFilesSelected := LANGcsNoFilesSelected; LANGSelectedFilesDirectories := LANGcsSelectedFilesDirectories; LANGDirectoryS := LANGcsDirectoryS; LANGFileS := LANGcsFileS; LANGDoYouReallyWantToDeleteTheS := LANGcsDoYouReallyWantToDeleteTheS; LANGDoYouReallyWantToDeleteTheSS := LANGcsDoYouReallyWantToDeleteTheSS; LANGCopyFiles := LANGcsCopyFiles; LANGMoveRenameFiles := LANGcsMoveRenameFiles; LANGCopyDFileDirectoriesTo := LANGcsCopyDFileDirectoriesTo; LANGMoveRenameDFileDirectoriesTo := LANGcsMoveRenameDFileDirectoriesTo; LANGCopySC := LANGcsCopySC; LANGMoveRenameSC := LANGcsMoveRenameSC; LANGQuickFind := LANGcsQuickFind; LANGAboutString := LANGcsAboutString; LANGAboutStringGnome := LANGcsAboutStringGnome; LANGDiskStatFmt := LANGcsDiskStatFmt; LANGDiskStatVolNameFmt := LANGcsDiskStatVolNameFmt; LANGStatusLineFmt := LANGcsStatusLineFmt; LANGPanelStrings[False] := LANGcsPanelStrings[False]; LANGPanelStrings[True] := LANGcsPanelStrings[True]; LANGDIR := LANGcsDIR; LANGErrorGettingListingForSPanel := LANGcsErrorGettingListingForSPanel; LANGErrorGettingListingForSPanelNoPath := LANGcsErrorGettingListingForSPanelNoPath; LANGErrorCreatingNewDirectorySInSPanel := LANGcsErrorCreatingNewDirectorySInSPanel; LANGErrorCreatingNewDirectorySInSPanelNoPath := LANGcsErrorCreatingNewDirectorySInSPanelNoPath; LANGTheFileDirectory := LANGcsTheFileDirectory; LANGCouldNotBeDeleted := LANGcsCouldNotBeDeleted; LANGCouldNotBeDeletedS := LANGcsCouldNotBeDeletedS; LANGUserCancelled := LANGcsUserCancelled; LANGTheDirectorySIsNotEmpty := LANGcsTheDirectorySIsNotEmpty; LANGCannotCopyFile := LANGcsCannotCopyFile; LANGCopyError := LANGcsCopyError; LANGMoveError := LANGcsMoveError; LANGOverwriteS := LANGcsOverwriteS; LANGWithFileS := LANGcsWithFileS; LANGOvewriteSBytesS := LANGcsOvewriteSBytesS; LANGTheFile := LANGcsTheFile; LANGCopy := LANGcsCopy; LANGMove := LANGcsMove; LANGTheDirectory := LANGcsTheDirectory; LANGTheSymbolicLink := LANGcsTheSymbolicLink; LANGCannotMoveFile := LANGcsCannotMoveFile; LANGCouldNotBeCreated := LANGcsCouldNotBeCreated; LANGCouldNotBeCreatedS := LANGcsCouldNotBeCreatedS; LANGFromS := LANGcsFromS; LANGToS := LANGcsToS; LANGCannotCopyFileToItself := LANGcsCannotCopyFileToItself; LANGMemoryAllocationFailed := LANGcsMemoryAllocationFailed; LANGCannotOpenSourceFile := LANGcsCannotOpenSourceFile; LANGCannotOpenDestinationFile := LANGcsCannotOpenDestinationFile; LANGCannotCloseDestinationFile := LANGcsCannotCloseDestinationFile; LANGCannotCloseSourceFile := LANGcsCannotCloseSourceFile; LANGCannotReadFromSourceFile := LANGcsCannotReadFromSourceFile; LANGCannotWriteToDestinationFile := LANGcsCannotWriteToDestinationFile; LANGUnknownException := LANGcsUnknownException; LANGNoAccess := LANGcsNoAccess; LANGUnknownError := LANGcsUnknownError; LANGCreateANewDirectory := LANGcsCreateANewDirectory; LANGEnterDirectoryName := LANGcsEnterDirectoryName; LANGOverwriteQuestion := LANGcsOverwriteQuestion; LANGOverwriteButton_Caption := LANGcsOverwriteButton_Caption; LANGOverwriteAllButton_Caption := LANGcsOverwriteAllButton_Caption; LANGSkipButton_Caption := LANGcsSkipButton_Caption; LANGOverwriteAllOlderButton_Caption := LANGcsOverwriteAllOlderButton_Caption; LANGSkipAllButton_Caption := LANGcsSkipAllButton_Caption; LANGRenameButton_Caption := LANGcsRenameButton_Caption; LANGAppendButton_Caption := LANGcsAppendButton_Caption; LANGRename := LANGcsRename; LANGRenameFile := LANGcsRenameFile; LANGIgnoreButton_Caption := LANGcsIgnoreButton_Caption; LANGProgress := LANGcsProgress; LANGCancel := LANGcsCancel; LANGDelete := LANGcsDelete; LANGSpecifyFileType := LANGcsSpecifyFileType; LANGRemoveDirectory := LANGcsRemoveDirectory; LANGDoYouWantToDeleteItWithAllItsFilesAndSubdirectories := LANGcsDoYouWantToDeleteItWithAllItsFilesAndSubdirectories; LANGRetry := LANGcsRetry; LANGDeleteButton_Caption := LANGcsDeleteButton_Caption; LANGAll := LANGcsAll; LANGCopyFilesSC := LANGcsCopyFilesSC; LANGAppendQuestion := LANGcsAppendQuestion; LANGPreparingList := LANGcsPreparingList; LANGYouMustSelectAValidFile := LANGcsYouMustSelectAValidFile; LANGmiVerifyChecksums := LANGcsmiVerifyChecksums; LANGVerifyChecksumsCaption := LANGcsVerifyChecksumsCaption; LANGCheckButtonCaptionCheck := LANGcsCheckButtonCaptionCheck; LANGCheckButtonCaptionStop := LANGcsCheckButtonCaptionStop; LANGFileListTooltip := LANGcsFileListTooltip; LANGFilenameColumnCaption := LANGcsFilenameColumnCaption; LANGTheFileSYouAreTryingToOpenIsQuiteBig := LANGcsTheFileSYouAreTryingToOpenIsQuiteBig; LANGAnErrorOccuredWhileInitializingMemoryBlock := LANGcsAnErrorOccuredWhileInitializingMemoryBlock; LANGAnErrorOccuredWhileOpeningFileSS := LANGcsAnErrorOccuredWhileOpeningFileSS; LANGAnErrorOccuredWhileReadingFileSS := LANGcsAnErrorOccuredWhileReadingFileSS; LANGChecksumNotChecked := LANGcsChecksumNotChecked; LANGChecksumChecking := LANGcsChecksumChecking; LANGChecksumInterrupted := LANGcsChecksumInterrupted; LANGChecksumDOK := LANGcsChecksumDOK; LANGmiCreateChecksumsCaption := LANGcsmiCreateChecksumsCaption; LANGYouMustSelectAtLeastOneFileToCalculateChecksum := LANGcsYouMustSelectAtLeastOneFileToCalculateChecksum; LANGCreateChecksumsCaption := LANGcsCreateChecksumsCaption; LANGCCHKSUMPage1Text := LANGcsCCHKSUMPage1Text; LANGCCHKSUMPage4Text := LANGcsCCHKSUMPage4Text; LANGCCHKSUMPage6Text := LANGcsCCHKSUMPage6Text; LANGCCHKSUMPage7Text := LANGcsCCHKSUMPage7Text; LANGCCHKSUMPage1Title := LANGcsCCHKSUMPage1Title; LANGCCHKSUMPage2Title := LANGcsCCHKSUMPage2Title; LANGCCHKSUMPage3Title := LANGcsCCHKSUMPage3Title; LANGCCHKSUMPage4Title := LANGcsCCHKSUMPage4Title; LANGCCHKSUMPage5Title := LANGcsCCHKSUMPage5Title; LANGCCHKSUMPage6Title := LANGcsCCHKSUMPage6Title; LANGCCHKSUMPage7Title := LANGcsCCHKSUMPage7Title; LANGCCHKSUMSFVFile := LANGcsCCHKSUMSFVFile; LANGCCHKSUMMD5sumFile := LANGcsCCHKSUMMD5sumFile; LANGCCHKSUMFileName := LANGcsCCHKSUMFileName; LANGCCHKSUMCreateSeparateChecksumFiles := LANGcsCCHKSUMCreateSeparateChecksumFiles; LANGCCHKSUMNowProcessingFileS := LANGcsCCHKSUMNowProcessingFileS; LANGCCHKSUMFinishCaption := LANGcsCCHKSUMFinishCaption; LANGCCHKSUMAreYouSureYouWantToAbortTheProcessing := LANGcsCCHKSUMAreYouSureYouWantToAbortTheProcessing; LANGCCHKSUMAnErrorOccuredWhileOpeningFileSS := LANGcsCCHKSUMAnErrorOccuredWhileOpeningFileSS; LANGCCHKSUMAnErrorOccuredWhileReadingFileSS := LANGcsCCHKSUMAnErrorOccuredWhileReadingFileSS; LANGCCHKSUMAnErrorOccuredWhileWritingFileSS := LANGcsCCHKSUMAnErrorOccuredWhileWritingFileSS; LANGAnErrorOccuredWhileWritingFileSS := LANGcsAnErrorOccuredWhileWritingFileSS; LANGTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt := LANGcsTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt; LANGTheTargetFileSCannotBeRemovedS := LANGcsTheTargetFileSCannotBeRemovedS; LANGMergeCaption := LANGcsMergeCaption; LANGPleaseInsertNextDiskOrGiveDifferentLocation := LANGcsPleaseInsertNextDiskOrGiveDifferentLocation; LANGMergeOfSSucceeded := LANGcsMergeOfSSucceeded; LANGWarningCreatedFileFailsCRCCheck := LANGcsWarningCreatedFileFailsCRCCheck; LANGMergeOfSSucceeded_NoCRCFileAvailable := LANGcsMergeOfSSucceeded_NoCRCFileAvailable; LANGMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory := LANGcsMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory; LANGMergeSC := LANGcsMergeSC; LANGmiSplitFileCaption := LANGcsmiSplitFileCaption; LANGmiMergeFilesCaption := LANGcsmiMergeFilesCaption; LANGSplitTheFileSToDirectory := LANGcsSplitTheFileSToDirectory; LANGSplitSC := LANGcsSplitSC; LANGSplitFile := LANGcsSplitFile; LANGBytesPerFile := LANGcsBytesPerFile; LANGAutomatic := LANGcsAutomatic; LANGDeleteFilesOnTargetDisk := LANGcsDeleteFilesOnTargetDisk; LANGSplitCaption := LANGcsSplitCaption; LANGCannotOpenFileS := LANGcsCannotOpenFileS; LANGCannotSplitTheFileToMoreThan999Parts := LANGcsCannotSplitTheFileToMoreThan999Parts; LANGThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem := LANGcsThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem; LANGThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem := LANGcsThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem; LANGAnErrorOccuredWhileOperationS := LANGcsAnErrorOccuredWhileOperationS; LANGSplitOfSSucceeded := LANGcsSplitOfSSucceeded; LANGSplitOfSFailed := LANGcsSplitOfSFailed; LANGmnuShow_Caption := LANGcsmnuShow_Caption; LANGmiShowDotFiles_Caption := LANGcsmiShowDotFiles_Caption; LANGTheFileYouAreTryingToOpenIsQuiteBig := LANGcsTheFileYouAreTryingToOpenIsQuiteBig; LANGCannotExecuteSPleaseCheckTheConfiguration := LANGcsCannotExecuteSPleaseCheckTheConfiguration; LANGEdit := LANGcsEdit; LANGEnterFilenameToEdit := LANGcsEnterFilenameToEdit; LANGmnuSettings_Caption := LANGcsmnuSettings_Caption; LANGmiFileTypes_Caption := LANGcsmiFileTypes_Caption; LANGThereIsNoApplicationAssociatedWithS := LANGcsThereIsNoApplicationAssociatedWithS; LANGErrorExecutingCommand := LANGcsErrorExecutingCommand; LANGEditFileTypesCaption := LANGcsEditFileTypesCaption; LANGTitleLabel_Caption := LANGcsTitleLabel_Caption; LANGExtensionsColumn := LANGcsExtensionsColumn; LANGDescriptionColumn := LANGcsDescriptionColumn; LANGFileTypesList := LANGcsFileTypesList; LANGActionName := LANGcsActionName; LANGCommand := LANGcsCommand; LANGSetDefaultActionButton_Caption := LANGcsSetDefaultActionButton_Caption; LANGRunInTerminalCheckBox_Caption := LANGcsRunInTerminalCheckBox_Caption; LANGAutodetectCheckBox_Caption := LANGcsAutodetectCheckBox_Caption; LANGBrowseButton_Caption := LANGcsBrowseButton_Caption; LANGCommandLabel_Caption := LANGcsCommandLabel_Caption; LANGDescriptionLabel_Caption := LANGcsDescriptionLabel_Caption; LANGFNameExtLabel_Caption := LANGcsFNameExtLabel_Caption; LANGNotebookPageExtensions := LANGcsNotebookPageExtensions; LANGNotebookPageActions := LANGcsNotebookPageActions; LANGDefault := LANGcsDefault; LANGCannotSaveFileTypeAssociationsBecauseOtherProcess := LANGcsCannotSaveFileTypeAssociationsBecauseOtherProcess; LANGDefaultColor := LANGcsDefaultColor; LANGIcon := LANGcsIcon; LANGBrowseForIcon := LANGcsBrowseForIcon; LANGSelectFileTypeColor := LANGcsSelectFileTypeColor; LANGColor := LANGcsColor; LANGmiChangePermissions_Caption := LANGcsmiChangePermissions_Caption; LANGmiChangeOwner_Caption := LANGcsmiChangeOwner_Caption; LANGmiCreateSymlink_Caption := LANGcsmiCreateSymlink_Caption; LANGmiEditSymlink_Caption := LANGcsmiEditSymlink_Caption; LANGChmodProgress := LANGcsChmodProgress; LANGChownProgress := LANGcsChownProgress; LANGYouMustSelectAValidSymbolicLink := LANGcsYouMustSelectAValidSymbolicLink; LANGPopupRunS := LANGcsPopupRunS; LANGPopupOpenS := LANGcsPopupOpenS; LANGPopupGoUp := LANGcsPopupGoUp; LANGPopupOpenWithS := LANGcsPopupOpenWithS; LANGPopupDefault := LANGcsPopupDefault; LANGPopupOpenWith := LANGcsPopupOpenWith; LANGPopupViewFile := LANGcsPopupViewFile; LANGPopupEditFile := LANGcsPopupEditFile; LANGPopupMakeSymlink := LANGcsPopupMakeSymlink; LANGPopupRename := LANGcsPopupRename; LANGPopupDelete := LANGcsPopupDelete; LANGDialogChangePermissions := LANGcsDialogChangePermissions; LANGCouldNotBeChmoddedS := LANGcsCouldNotBeChmoddedS; LANGDialogChangeOwner := LANGcsDialogChangeOwner; LANGCouldNotBeChownedS := LANGcsCouldNotBeChownedS; LANGDialogMakeSymlink := LANGcsDialogMakeSymlink; LANGDialogEditSymlink := LANGcsDialogEditSymlink; LANGFEditSymlink_Caption := LANGcsFEditSymlink_Caption; LANGFEditSymlink_SymbolicLinkFilename := LANGcsFEditSymlink_SymbolicLinkFilename; LANGFEditSymlink_SymbolicLinkPointsTo := LANGcsFEditSymlink_SymbolicLinkPointsTo; LANGFChmod_Caption := LANGcsFChmod_Caption; LANGFChmod_PermissionFrame := LANGcsFChmod_PermissionFrame; LANGFChmod_FileFrame := LANGcsFChmod_FileFrame; LANGFChmod_ApplyRecursivelyFor := LANGcsFChmod_ApplyRecursivelyFor; LANGFChmod_miAllFiles := LANGcsFChmod_miAllFiles; LANGFChmod_miDirectories := LANGcsFChmod_miDirectories; LANGFChmod_OctalLabel := LANGcsFChmod_OctalLabel; LANGFChmod_SUID := LANGcsFChmod_SUID; LANGFChmod_SGID := LANGcsFChmod_SGID; LANGFChmod_Sticky := LANGcsFChmod_Sticky; LANGFChmod_RUSR := LANGcsFChmod_RUSR; LANGFChmod_WUSR := LANGcsFChmod_WUSR; LANGFChmod_XUSR := LANGcsFChmod_XUSR; LANGFChmod_RGRP := LANGcsFChmod_RGRP; LANGFChmod_WGRP := LANGcsFChmod_WGRP; LANGFChmod_XGRP := LANGcsFChmod_XGRP; LANGFChmod_ROTH := LANGcsFChmod_ROTH; LANGFChmod_WOTH := LANGcsFChmod_WOTH; LANGFChmod_XOTH := LANGcsFChmod_XOTH; LANGFChmod_TextLabel := LANGcsFChmod_TextLabel; LANGFChmod_FileLabel := LANGcsFChmod_FileLabel; LANGFChown_Caption := LANGcsFChown_Caption; LANGFChown_OwnerFrame := LANGcsFChown_OwnerFrame; LANGFChown_GroupFrame := LANGcsFChown_GroupFrame; LANGFChown_FileFrame := LANGcsFChown_FileFrame; LANGFChown_ApplyRecursively := LANGcsFChown_ApplyRecursively; LANGFSymlink_Caption := LANGcsFSymlink_Caption; LANGFSymlink_ExistingFilename := LANGcsFSymlink_ExistingFilename; LANGFSymlink_SymlinkFilename := LANGcsFSymlink_SymlinkFilename; LANGmnuBookmarks_Caption := LANGcsmnuBookmarks_Caption; LANGmiAddBookmark_Caption := LANGcsmiAddBookmark_Caption; LANGmiEditBookmarks_Caption := LANGcsmiEditBookmarks_Caption; LANGBookmarkPopupDelete_Caption := LANGcsBookmarkPopupDelete_Caption; LANGmiPreferences_Caption := LANGcsmiPreferences_Caption; LANGTheCurrentDirectoryAlreadyExistsInTheBookmarksList := LANGcsTheCurrentDirectoryAlreadyExistsInTheBookmarksList; LANGSomeOtherInstanceChanged := LANGcsSomeOtherInstanceChanged; LANGPreferences_Caption := LANGcsPreferences_Caption; LANGPreferences_TitleLabel_Caption := LANGcsPreferences_TitleLabel_Caption; LANGPreferences_GeneralPage := LANGcsPreferences_GeneralPage; LANGPreferences_FontsPage := LANGcsPreferences_FontsPage; LANGPreferences_ColorsPage := LANGcsPreferences_ColorsPage; LANGPreferences_RowHeight := LANGcsPreferences_RowHeight; LANGPreferences_NumHistoryItems := LANGcsPreferences_NumHistoryItems; LANGPreferences_Default := LANGcsPreferences_Default; LANGPreferences_ClearReadonlyAttribute := LANGcsPreferences_ClearReadonlyAttribute; LANGPreferences_DisableMouseRenaming := LANGcsPreferences_DisableMouseRenaming; LANGPreferences_ShowFiletypeIconsInList := LANGcsPreferences_ShowFiletypeIconsInList; LANGPreferences_ExternalAppsLabel := LANGcsPreferences_ExternalAppsLabel; LANGPreferences_Viewer := LANGcsPreferences_Viewer; LANGPreferences_Editor := LANGcsPreferences_Editor; LANGPreferences_Terminal := LANGcsPreferences_Terminal; LANGPreferences_ListFont := LANGcsPreferences_ListFont; LANGPreferences_Change := LANGcsPreferences_Change; LANGPreferences_UseDefaultFont := LANGcsPreferences_UseDefaultFont; LANGPreferences_Foreground := LANGcsPreferences_Foreground; LANGPreferences_Background := LANGcsPreferences_Background; LANGPreferences_NormalItem := LANGcsPreferences_NormalItem; LANGPreferences_SetToDefaultToUseGTKThemeColors := LANGcsPreferences_SetToDefaultToUseGTKThemeColors; LANGPreferences_Cursor := LANGcsPreferences_Cursor; LANGPreferences_InactiveItem := LANGcsPreferences_InactiveItem; LANGPreferences_SelectedItem := LANGcsPreferences_SelectedItem; LANGPreferences_LinkItem := LANGcsPreferences_LinkItem; LANGPreferences_LinkItemHint := LANGcsPreferences_LinkItemHint; LANGPreferences_DotFileItem := LANGcsPreferences_DotFileItem; LANGPreferences_DotFileItemHint := LANGcsPreferences_DotFileItemHint; LANGPreferences_BrowseForApplication := LANGcsPreferences_BrowseForApplication; LANGPreferences_DefaultS := LANGcsPreferences_DefaultS; LANGPreferences_SelectFont := LANGcsPreferences_SelectFont; LANGBookmarkButton_Tooltip := LANGcsBookmarkButton_Tooltip; LANGUpButton_Tooltip := LANGcsUpButton_Tooltip; LANGRootButton_Tooltip := LANGcsRootButton_Tooltip; LANGHomeButton_Tooltip := LANGcsHomeButton_Tooltip; LANGLeftEqualButton_Tooltip := LANGcsLeftEqualButton_Tooltip; LANGRightEqualButton_Tooltip := LANGcsRightEqualButton_Tooltip; LANGmiShowDirectorySizes_Caption := LANGcsmiShowDirectorySizes_Caption; LANGmiTargetSource_Caption := LANGcsmiTargetSource_Caption; LANGFileTypeDirectory := LANGcsFileTypeDirectory; LANGFileTypeFile := LANGcsFileTypeFile; LANGFileTypeMetafile := LANGcsFileTypeMetafile; LANGPreferencesPanelsPage := LANGcsPreferencesPanelsPage; LANGPreferencesApplicationsPage := LANGcsPreferencesApplicationsPage; LANGPreferencesExperimentalPage := LANGcsPreferencesExperimentalPage; LANGPreferencesSelectAllDirectoriesCheckBox_Caption := LANGcsPreferencesSelectAllDirectoriesCheckBox_Caption; LANGPreferencesNewStyleAltOCheckBox_Caption := LANGcsPreferencesNewStyleAltOCheckBox_Caption; LANGPreferencesNewStyleAltOCheckBox_Tooltip := LANGcsPreferencesNewStyleAltOCheckBox_Tooltip; LANGPreferencesShowFuncButtonsCheckBox_Caption := LANGcsPreferencesShowFuncButtonsCheckBox_Caption; LANGPreferencesSizeFormatLabel_Caption := LANGcsPreferencesSizeFormatLabel_Caption; LANGPreferencesmiSizeFormat1 := LANGcsPreferencesmiSizeFormat1; LANGPreferencesmiSizeFormat6 := LANGcsPreferencesmiSizeFormat6; LANGPreferencesAutodetectXApp := LANGcsPreferencesAutodetectXApp; LANGPreferencesAlwaysRunInTerminal := LANGcsPreferencesAlwaysRunInTerminal; LANGPreferencesNeverRunInTerminal := LANGcsPreferencesNeverRunInTerminal; LANGPreferencesCmdLineBehaviourLabel_Caption := LANGcsPreferencesCmdLineBehaviourLabel_Caption; LANGPreferencesFeatures := LANGcsPreferencesFeatures; LANGPreferencesDisableMouseRename_Tooltip := LANGcsPreferencesDisableMouseRename_Tooltip; LANGPreferencesDisableFileTipsCheckBox_Caption := LANGcsPreferencesDisableFileTipsCheckBox_Caption; LANGPreferencesDisableFileTipsCheckBox_Tooltip := LANGcsPreferencesDisableFileTipsCheckBox_Tooltip; LANGPreferencesShow := LANGcsPreferencesShow; LANGPreferencesDirsInBoldCheckBox_Caption := LANGcsPreferencesDirsInBoldCheckBox_Caption; LANGPreferencesDisableDirectoryBracketsCheckBox_Caption := LANGcsPreferencesDisableDirectoryBracketsCheckBox_Caption; LANGPreferencesOctalPermissionsCheckBox_Caption := LANGcsPreferencesOctalPermissionsCheckBox_Caption; LANGPreferencesOctalPermissionsCheckBox_Tooltip := LANGcsPreferencesOctalPermissionsCheckBox_Tooltip; LANGPreferencesMovement := LANGcsPreferencesMovement; LANGPreferencesLynxLikeMotionCheckBox_Caption := LANGcsPreferencesLynxLikeMotionCheckBox_Caption; LANGPreferencesInsertMovesDownCheckBox_Caption := LANGcsPreferencesInsertMovesDownCheckBox_Caption; LANGPreferencesSpaceMovesDownCheckBox_Caption := LANGcsPreferencesSpaceMovesDownCheckBox_Caption; LANGPreferencesViewer := LANGcsPreferencesViewer; LANGPreferencesCommandSC := LANGcsPreferencesCommandSC; LANGPreferencesUseInternalViewer := LANGcsPreferencesUseInternalViewer; LANGPreferencesEditor := LANGcsPreferencesEditor; LANGPreferencesTerminal := LANGcsPreferencesTerminal; LANGPreferencesExperimentalFeatures := LANGcsPreferencesExperimentalFeatures; LANGPreferencesExperimentalWarningLabel_Caption := LANGcsPreferencesExperimentalWarningLabel_Caption; LANGPreferencesFocusRefreshCheckBox_Caption := LANGcsPreferencesFocusRefreshCheckBox_Caption; LANGPreferencesFocusRefreshCheckBox_Tooltip := LANGcsPreferencesFocusRefreshCheckBox_Tooltip; LANGPreferencesWMCompatModeCheckBox_Caption := LANGcsPreferencesWMCompatModeCheckBox_Caption; LANGPreferencesWMCompatModeCheckBox_Tooltip := LANGcsPreferencesWMCompatModeCheckBox_Tooltip; LANGPreferencesCompatUseLibcSystemCheckBox_Caption := LANGcsPreferencesCompatUseLibcSystemCheckBox_Caption; LANGPreferencesCompatUseLibcSystemCheckBox_Tooltip := LANGcsPreferencesCompatUseLibcSystemCheckBox_Tooltip; LANGmiSearchCaption2 := LANGcsmiSearchCaption2; LANGmiNoMounterBarCaption := LANGcsmiNoMounterBarCaption; LANGmiShowOneMounterBarCaption := LANGcsmiShowOneMounterBarCaption; LANGmiShowTwoMounterBarCaption := LANGcsmiShowTwoMounterBarCaption; LANGmnuNetworkCaption := LANGcsmnuNetworkCaption; LANGmiConnectionsCaption := LANGcsmiConnectionsCaption; LANGmiOpenConnectionCaption := LANGcsmiOpenConnectionCaption; LANGmiQuickConnectCaption := LANGcsmiQuickConnectCaption; LANGmnuPluginsCaption := LANGcsmnuPluginsCaption; LANGmiTestPluginCaption := LANGcsmiTestPluginCaption; LANGmiMounterSettingsCaption := LANGcsmiMounterSettingsCaption; LANGmiColumnsCaption := LANGcsmiColumnsCaption; LANGmiSavePositionCaption := LANGcsmiSavePositionCaption; LANGmiMountCaption := LANGcsmiMountCaption; LANGmiUmountCaption := LANGcsmiUmountCaption; LANGmiEjectCaption := LANGcsmiEjectCaption; LANGmiDuplicateTabCaption := LANGcsmiDuplicateTabCaption; LANGmiCloseTabCaption := LANGcsmiCloseTabCaption; LANGmiCloseAllTabsCaption := LANGcsmiCloseAllTabsCaption; LANGCannotDetermineDestinationEngine := LANGcsCannotDetermineDestinationEngine; LANGCannotLoadFile := LANGcsCannotLoadFile; LANGMountPointDevice := LANGcsMountPointDevice; LANGMountSC := LANGcsMountSC; LANGNoPluginsFound := LANGcsNoPluginsFound; LANGPluginAbout := LANGcsPluginAbout; LANGCouldntOpenURI := LANGcsCouldntOpenURI; LANGPluginAboutInside := LANGcsPluginAboutInside; LANGAreYouSureCloseAllTabs := LANGcsAreYouSureCloseAllTabs; LANGCouldntOpenURIArchive := LANGcsCouldntOpenURIArchive; LANGThereIsNoModuleAvailable := LANGcsThereIsNoModuleAvailable; LANGIgnoreError := LANGcsIgnoreError; LANGErrorMount := LANGcsErrorMount; LANGErrorUmount := LANGcsErrorUmount; LANGErrorEject := LANGcsErrorEject; LANGMounterPrefs_Caption := LANGcsMounterPrefs_Caption; LANGMounterPrefs_TitleLabelCaption := LANGcsMounterPrefs_TitleLabelCaption; LANGMounterPrefs_ListViewFrameCaption := LANGcsMounterPrefs_ListViewFrameCaption; LANGMounterPrefs_MountName := LANGcsMounterPrefs_MountName; LANGMounterPrefs_MountPoint := LANGcsMounterPrefs_MountPoint; LANGMounterPrefs_Device := LANGcsMounterPrefs_Device; LANGMounterPrefs_MoveUpButtonTooltip := LANGcsMounterPrefs_MoveUpButtonTooltip; LANGMounterPrefs_MoveDownButtonTooltip := LANGcsMounterPrefs_MoveDownButtonTooltip; LANGMounterPrefs_UseFSTabDefaultsCheckBox := LANGcsMounterPrefs_UseFSTabDefaultsCheckBox; LANGMounterPrefs_UseFSTabDefaultsCheckBoxTooltip := LANGcsMounterPrefs_UseFSTabDefaultsCheckBoxTooltip; LANGMounterPrefs_ToggleModeCheckBox := LANGcsMounterPrefs_ToggleModeCheckBox; LANGMounterPrefs_ToggleModeCheckBoxTooltip := LANGcsMounterPrefs_ToggleModeCheckBoxTooltip; LANGMounterPrefs_PropertiesFrameCaption := LANGcsMounterPrefs_PropertiesFrameCaption; LANGMounterPrefs_DisplayTextLabelCaption := LANGcsMounterPrefs_DisplayTextLabelCaption; LANGMounterPrefs_MountPointLabelCaption := LANGcsMounterPrefs_MountPointLabelCaption; LANGMounterPrefs_MountDeviceLabelCaption := LANGcsMounterPrefs_MountDeviceLabelCaption; LANGMounterPrefs_DeviceTypeLabelCaption := LANGcsMounterPrefs_DeviceTypeLabelCaption; LANGMounterPrefs_miLocalDiskCaption := LANGcsMounterPrefs_miLocalDiskCaption; LANGMounterPrefs_miRemovableCaption := LANGcsMounterPrefs_miRemovableCaption; LANGMounterPrefs_miCDCaption := LANGcsMounterPrefs_miCDCaption; LANGMounterPrefs_miFloppyCaption := LANGcsMounterPrefs_miFloppyCaption; LANGMounterPrefs_miNetworkCaption := LANGcsMounterPrefs_miNetworkCaption; LANGMounterPrefs_MountCommandLabelCaption := LANGcsMounterPrefs_MountCommandLabelCaption; LANGMounterPrefs_UmountCommandLabelCaption := LANGcsMounterPrefs_UmountCommandLabelCaption; LANGMounterPrefs_MountCommandEntryTooltip := LANGcsMounterPrefs_MountCommandEntryTooltip; LANGMounterPrefs_UmountCommandEntryTooltip := LANGcsMounterPrefs_UmountCommandEntryTooltip; LANGMounterPrefs_IconLabelCaption := LANGcsMounterPrefs_IconLabelCaption; LANGConnMgr_Caption := LANGcsConnMgr_Caption; LANGConnMgr_ConnectButton := LANGcsConnMgr_ConnectButton; LANGConnMgr_OpenConnection := LANGcsConnMgr_OpenConnection; LANGConnMgr_NameColumn := LANGcsConnMgr_NameColumn; LANGConnMgr_URIColumn := LANGcsConnMgr_URIColumn; LANGConnMgr_AddConnectionButtonCaption := LANGcsConnMgr_AddConnectionButtonCaption; LANGConnMgr_AddConnectionButtonTooltip := LANGcsConnMgr_AddConnectionButtonTooltip; LANGConnMgr_EditButtonCaption := LANGcsConnMgr_EditButtonCaption; LANGConnMgr_EditButtonTooltip := LANGcsConnMgr_EditButtonTooltip; LANGConnMgr_RemoveButtonCaption := LANGcsConnMgr_RemoveButtonCaption; LANGConnMgr_RemoveButtonTooltip := LANGcsConnMgr_RemoveButtonTooltip; LANGConnMgr_DoYouWantDelete := LANGcsConnMgr_DoYouWantDelete; LANGConnProp_FTP := LANGcsConnProp_FTP; LANGConnProp_SFTP := LANGcsConnProp_SFTP; LANGConnProp_SMB := LANGcsConnProp_SMB; LANGConnProp_HTTP := LANGcsConnProp_HTTP; LANGConnProp_HTTPS := LANGcsConnProp_HTTPS; LANGConnProp_Other := LANGcsConnProp_Other; LANGConnProp_Caption := LANGcsConnProp_Caption; LANGConnProp_VFSModule := LANGcsConnProp_VFSModule; LANGConnProp_URI := LANGcsConnProp_URI; LANGConnProp_URIEntryTooltip := LANGcsConnProp_URIEntryTooltip; LANGConnProp_DetailedInformations := LANGcsConnProp_DetailedInformations; LANGConnProp_Name := LANGcsConnProp_Name; LANGConnProp_Server := LANGcsConnProp_Server; LANGConnProp_Username := LANGcsConnProp_Username; LANGConnProp_UserNameEntryTooltip := LANGcsConnProp_UserNameEntryTooltip; LANGConnProp_Password := LANGcsConnProp_Password; LANGConnProp_TargetDirectory := LANGcsConnProp_TargetDirectory; LANGConnProp_ServiceType := LANGcsConnProp_ServiceType; LANGConnProp_MaskPassword := LANGcsConnProp_MaskPassword; LANGConnProp_MenuItemCaption := LANGcsConnProp_MenuItemCaption; LANGConnLogin_Caption := LANGcsConnLogin_Caption; LANGConnLogin_Login := LANGcsConnLogin_Login; LANGConnLogin_ExperimentalWarningLabelCaption := LANGcsConnLogin_ExperimentalWarningLabelCaption; LANGConnLogin_Username := LANGcsConnLogin_Username; LANGConnLogin_Password := LANGcsConnLogin_Password; LANGConnLogin_AnonymousCheckButton := LANGcsConnLogin_AnonymousCheckButton; LANGColumns_Caption := LANGcsColumns_Caption; LANGColumns_Title := LANGcsColumns_Title; LANGColumns_MoveUpButtonTooltip := LANGcsColumns_MoveUpButtonTooltip; LANGColumns_MoveDownButtonTooltip := LANGcsColumns_MoveDownButtonTooltip; LANGColumns_TitlesLongName := LANGcsColumns_TitlesLongName; LANGColumns_TitlesLongNameExt := LANGcsColumns_TitlesLongNameExt; LANGColumns_TitlesLongExt := LANGcsColumns_TitlesLongExt; LANGColumns_TitlesLongSize := LANGcsColumns_TitlesLongSize; LANGColumns_TitlesLongDateTime := LANGcsColumns_TitlesLongDateTime; LANGColumns_TitlesLongDate := LANGcsColumns_TitlesLongDate; LANGColumns_TitlesLongTime := LANGcsColumns_TitlesLongTime; LANGColumns_TitlesLongUser := LANGcsColumns_TitlesLongUser; LANGColumns_TitlesLongGroup := LANGcsColumns_TitlesLongGroup; LANGColumns_TitlesLongAttr := LANGcsColumns_TitlesLongAttr; LANGColumns_TitlesShortName := LANGcsColumns_TitlesShortName; LANGColumns_TitlesShortNameExt := LANGcsColumns_TitlesShortNameExt; LANGColumns_TitlesShortExt := LANGcsColumns_TitlesShortExt; LANGColumns_TitlesShortSize := LANGcsColumns_TitlesShortSize; LANGColumns_TitlesShortDateTime := LANGcsColumns_TitlesShortDateTime; LANGColumns_TitlesShortDate := LANGcsColumns_TitlesShortDate; LANGColumns_TitlesShortTime := LANGcsColumns_TitlesShortTime; LANGColumns_TitlesShortUser := LANGcsColumns_TitlesShortUser; LANGColumns_TitlesShortGroup := LANGcsColumns_TitlesShortGroup; LANGColumns_TitlesShortAttr := LANGcsColumns_TitlesShortAttr; LANGTestPlugin_Caption := LANGcsTestPlugin_Caption; LANGTestPlugin_Title := LANGcsTestPlugin_Title; LANGTestPlugin_ExperimentalWarningLabelCaption := LANGcsTestPlugin_ExperimentalWarningLabelCaption; LANGTestPlugin_Plugin := LANGcsTestPlugin_Plugin; LANGTestPlugin_Command := LANGcsTestPlugin_Command; LANGTestPlugin_Username := LANGcsTestPlugin_Username; LANGTestPlugin_Password := LANGcsTestPlugin_Password; LANGTestPlugin_AnonymousCheckButton := LANGcsTestPlugin_AnonymousCheckButton; LANGTestPlugin_NoPluginsFound := LANGcsTestPlugin_NoPluginsFound; LANGRemoteWait_Caption := LANGcsRemoteWait_Caption; LANGRemoteWait_OperationInProgress := LANGcsRemoteWait_OperationInProgress; LANGRemoteWait_ItemsFound := LANGcsRemoteWait_ItemsFound; LANGSearch_Bytes := LANGcsSearch_Bytes; LANGSearch_kB := LANGcsSearch_kB; LANGSearch_MB := LANGcsSearch_MB; LANGSearch_days := LANGcsSearch_days; LANGSearch_weeks := LANGcsSearch_weeks; LANGSearch_months := LANGcsSearch_months; LANGSearch_years := LANGcsSearch_years; LANGSearch_Caption := LANGcsSearch_Caption; LANGSearch_General := LANGcsSearch_General; LANGSearch_Advanced := LANGcsSearch_Advanced; LANGSearch_SearchResults := LANGcsSearch_SearchResults; LANGSearch_SearchFor := LANGcsSearch_SearchFor; LANGSearch_FileMaskEntryTooltip := LANGcsSearch_FileMaskEntryTooltip; LANGSearch_SearchIn := LANGcsSearch_SearchIn; LANGSearch_SearchArchivesCheckButton := LANGcsSearch_SearchArchivesCheckButton; LANGSearch_FindText := LANGcsSearch_FindText; LANGSearch_FindTextEntryTooltip := LANGcsSearch_FindTextEntryTooltip; LANGSearch_CaseSensitiveCheckButton := LANGcsSearch_CaseSensitiveCheckButton; LANGSearch_StayCurrentFSCheckButton := LANGcsSearch_StayCurrentFSCheckButton; LANGSearch_CaseSensitiveMatchCheckButton := LANGcsSearch_CaseSensitiveMatchCheckButton; LANGSearch_Size := LANGcsSearch_Size; LANGSearch_Date := LANGcsSearch_Date; LANGSearch_BiggerThan := LANGcsSearch_BiggerThan; LANGSearch_SmallerThan := LANGcsSearch_SmallerThan; LANGSearch_ModifiedBetweenRadioButton := LANGcsSearch_ModifiedBetweenRadioButton; LANGSearch_NotModifiedAfterRadioButton := LANGcsSearch_NotModifiedAfterRadioButton; LANGSearch_ModifiedLastRadioButton := LANGcsSearch_ModifiedLastRadioButton; LANGSearch_ModifiedNotLastRadionButton := LANGcsSearch_ModifiedNotLastRadionButton; LANGSearch_ModifiedBetweenEntry1 := LANGcsSearch_ModifiedBetweenEntry1; LANGSearch_ViewButtonCaption := LANGcsSearch_ViewButtonCaption; LANGSearch_NewSearchButtonCaption := LANGcsSearch_NewSearchButtonCaption; LANGSearch_GoToFileButtonCaption := LANGcsSearch_GoToFileButtonCaption; LANGSearch_FeedToListboxButtonCaption := LANGcsSearch_FeedToListboxButtonCaption; LANGSearch_StatusSC := LANGcsSearch_StatusSC; LANGSearch_Ready := LANGcsSearch_Ready; LANGSearch_PreparingToSearch := LANGcsSearch_PreparingToSearch; LANGSearch_SearchInProgress := LANGcsSearch_SearchInProgress; LANGSearch_UserCancelled := LANGcsSearch_UserCancelled; LANGSearch_SearchFinished := LANGcsSearch_SearchFinished; LANGSearch_FilesFound := LANGcsSearch_FilesFound; LANGSearch_And := LANGcsSearch_And; LANGCloseOpenConnection := LANGcsCloseOpenConnection; LANGDuplicateTabWarning := LANGcsDuplicateTabWarning; LANGDontShowAgain := LANGcsDontShowAgain; LANGSwitchOtherPanelWarning := LANGcsSwitchOtherPanelWarning; LANGOpenConnectionsWarning := LANGcsOpenConnectionsWarning; LANGmiDisconnect_Caption := LANGcsmiDisconnect_Caption; LANGDisconnectButton_Tooltip := LANGcsDisconnectButton_Tooltip; LANGLeaveArchiveButton_Tooltip := LANGcsLeaveArchiveButton_Tooltip; LANGOpenTerminalButton_Tooltip := LANGcsOpenTerminalButton_Tooltip; LANGOpenTerminalButton_Caption := LANGcsOpenTerminalButton_Caption; LANGShowTextUIDsCheckBox_Caption := LANGcsShowTextUIDsCheckBox_Caption; LANGShowTextUIDsCheckBox_Tooltip := LANGcsShowTextUIDsCheckBox_Tooltip; LANGmiNewTab_Caption := LANGcsmiNewTab_Caption; LANGFilePopupMenu_Properties := LANGcsFilePopupMenu_Properties; LANGCommandEntry_Tooltip := LANGcsCommandEntry_Tooltip; LANGmiFiles_Caption := LANGcsmiFiles_Caption; LANGPasswordButton_Tooltip := LANGcsPasswordButton_Tooltip; LANGHandleRunFromArchive_Bytes := LANGcsHandleRunFromArchive_Bytes; LANGHandleRunFromArchive_FileTypeDesc_Unknown := LANGcsHandleRunFromArchive_FileTypeDesc_Unknown; LANGHandleRunFromArchive_NotAssociated := LANGcsHandleRunFromArchive_NotAssociated; LANGHandleRunFromArchive_SelfExecutable := LANGcsHandleRunFromArchive_SelfExecutable; LANGHandleRunFromArchive_CouldntCreateTemporaryDirectory := LANGcsHandleRunFromArchive_CouldntCreateTemporaryDirectory; LANGFRunFromVFS_Caption := LANGcsFRunFromVFS_Caption; LANGFRunFromVFS_TitleLabel := LANGcsFRunFromVFS_TitleLabel; LANGFRunFromVFS_FileNameLabel := LANGcsFRunFromVFS_FileNameLabel; LANGFRunFromVFS_FileTypeLabel := LANGcsFRunFromVFS_FileTypeLabel; LANGFRunFromVFS_SizeLabel := LANGcsFRunFromVFS_SizeLabel; LANGFRunFromVFS_PackedSizeLabel := LANGcsFRunFromVFS_PackedSizeLabel; LANGFRunFromVFS_DateLabel := LANGcsFRunFromVFS_DateLabel; LANGFRunFromVFS_InfoLabel := LANGcsFRunFromVFS_InfoLabel; LANGFRunFromVFS_OpensWithLabel := LANGcsFRunFromVFS_OpensWithLabel; LANGFRunFromVFS_ExecuteButton := LANGcsFRunFromVFS_ExecuteButton; LANGFRunFromVFS_ExecuteAllButton := LANGcsFRunFromVFS_ExecuteAllButton; LANGFSetPassword_Caption := LANGcsFSetPassword_Caption; LANGFSetPassword_Label1_Caption := LANGcsFSetPassword_Label1_Caption; LANGFSetPassword_Label2_Caption := LANGcsFSetPassword_Label2_Caption; LANGFSetPassword_ShowPasswordCheckButton := LANGcsFSetPassword_ShowPasswordCheckButton; LANGCopyFileNamesToClipboard := LANGcsCopyFileNamesToClipboard; LANGCopyFullPathNamesToClipboard := LANGcsCopyFullPathNamesToClipboard; LANGCopyPathToClipboard := LANGcsCopyPathToClipboard; LANGPreferences_DateFormatLabel_Caption := LANGcsPreferences_DateFormatLabel_Caption; LANGPreferences_System := LANGcsPreferences_System; LANGPreferences_Custom := LANGcsPreferences_Custom; LANGPreferences_CustomDateFormatEntry_Tooltip := LANGcsPreferences_CustomDateFormatEntry_Tooltip; LANGPreferences_TimeFormatLabel_Caption := LANGcsPreferences_TimeFormatLabel_Caption; LANGPreferences_CustomTimeFormatEntry_Tooltip := LANGcsPreferences_CustomTimeFormatEntry_Tooltip; LANGPreferences_DateTimeFormatLabel_Caption := LANGcsPreferences_DateTimeFormatLabel_Caption; LANGPreferences_QuickRenameSkipExtCheckBox := LANGcsPreferences_QuickRenameSkipExtCheckBox; LANGPreferences_QuickRenameSkipExtCheckBox_Tooltip := LANGcsPreferences_QuickRenameSkipExtCheckBox_Tooltip; LANGPreferences_SortDirectoriesLikeFilesCheckBox := LANGcsPreferences_SortDirectoriesLikeFilesCheckBox; LANGPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip := LANGcsPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip; LANGPreferences_QuickSearchLabel_Caption := LANGcsPreferences_QuickSearchLabel_Caption; LANGPreferences_QuickSearchOptionMenu_Tooltip := LANGcsPreferences_QuickSearchOptionMenu_Tooltip; LANGPreferences_QuickSearch_Option1 := LANGcsPreferences_QuickSearch_Option1; LANGPreferences_QuickSearch_Option2 := LANGcsPreferences_QuickSearch_Option2; LANGPreferences_QuickSearch_Option3 := LANGcsPreferences_QuickSearch_Option3; LANGPreferences_QuickSearch_Option4 := LANGcsPreferences_QuickSearch_Option4; LANGPreferences_TempPathLabel_Caption := LANGcsPreferences_TempPathLabel_Caption; LANGPreferences_VFSTempPathLabel_Caption := LANGcsPreferences_VFSTempPathLabel_Caption; LANGPreferences_VFSTempPathEntry_Tooltip := LANGcsPreferences_VFSTempPathEntry_Tooltip; LANGPreferences_RightClickSelectCheckBox := LANGcsPreferences_RightClickSelectCheckBox; LANGPreferences_RightClickSelectCheckBox_Tooltip := LANGcsPreferences_RightClickSelectCheckBox_Tooltip; LANGGtkMountOperation_ConnectAnonymously := LANGcsGtkMountOperation_ConnectAnonymously; LANGGtkMountOperation_ConnectAsUser := LANGcsGtkMountOperation_ConnectAsUser; LANGGtkMountOperation_Username := LANGcsGtkMountOperation_Username; LANGGtkMountOperation_Domain := LANGcsGtkMountOperation_Domain; LANGGtkMountOperation_Password := LANGcsGtkMountOperation_Password; LANGGtkMountOperation_DoNotSavePassword := LANGcsGtkMountOperation_DoNotSavePassword; LANGGtkMountOperation_ForgetPasswordImmediately := LANGcsGtkMountOperation_ForgetPasswordImmediately; LANGGtkMountOperation_RememberPasswordUntilYouLogout := LANGcsGtkMountOperation_RememberPasswordUntilYouLogout; LANGGtkMountOperation_SavePasswordInConnectionManager := LANGcsGtkMountOperation_SavePasswordInConnectionManager; LANGGtkMountOperation_RememberForever := LANGcsGtkMountOperation_RememberForever; LANGFSymlink_RelativePath := LANGcsFSymlink_RelativePath; LANGFConnectionManager_DuplicateButton_Caption := LANGcsFConnectionManager_DuplicateButton_Caption; LANGFConnectionManager_DuplicateButton_Tooltip := LANGcsFConnectionManager_DuplicateButton_Tooltip; LANGFConnectionManager_DoNotSavePasswordsCheckBox_Label := LANGcsFConnectionManager_DoNotSavePasswordsCheckBox_Label; LANGFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip := LANGcsFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip; LANGFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label := LANGcsFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label; LANGFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip := LANGcsFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip; LANGFConnectionManager_DuplicateMenuItem_Caption := LANGcsFConnectionManager_DuplicateMenuItem_Caption; LANGFQuickConnect_Caption := LANGcsFQuickConnect_Caption; LANGFQuickConnect_TitleLabel_Caption := LANGcsFQuickConnect_TitleLabel_Caption; LANGFQuickConnect_ConnectToURILabel_Caption := LANGcsFQuickConnect_ConnectToURILabel_Caption; LANGLinkToS := LANGcsLinkToS; LANGOpenDirectoryInBackgroundTab := LANGcsOpenDirectoryInBackgroundTab; LANGTheActiveConnectionHasNotBeenSaved := LANGcsTheActiveConnectionHasNotBeenSaved; LANGTheArchiveIsEncryptedAndRequiresPassword := LANGcsTheArchiveIsEncryptedAndRequiresPassword; end; initialization AddTranslation('cz_CZ', @SetTranslation); AddTranslation('CS', @SetTranslation); AddTranslation('CZ', @SetTranslation); end. tuxcmd-0.6.70+dfsg/translations/UTranslation_HU.pas0000644000175000017500000025642111300022643021313 0ustar salvisalvi(* Tux Commander - UTranslation_HU - Hungarian Localization constants Copyright (C) 2007-2009 Marián Képesi Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UTranslation_HU; interface implementation uses ULocale; const LANGhuF2Button_Caption = 'F2 - Ãtnevezés'; LANGhuF3Button_Caption = 'F3 - Megtekintés'; LANGhuF4Button_Caption = 'F4 - Módosítás'; LANGhuF5Button_Caption = 'F5 - Másolás'; LANGhuF6Button_Caption = 'F6 - Ãthelyezés'; LANGhuF7Button_Caption = 'F7 - Új könyvtár'; LANGhuF8Button_Caption = 'F8 - Törlés'; LANGhumnuFile_Caption = '_Fájl'; LANGhumnuMark_Caption = '_Kijelölés'; LANGhumnuCommands_Caption = '_Utasítások'; LANGhumnuHelp_Caption = '_Súgó'; LANGhumiExit_Caption = 'Ki_lépés'; LANGhumiSelectGroup_Caption = '_Csoport kijelölése...'; LANGhumiUnselectGroup_Caption = 'Kijelölt fájl _visszavonása...'; LANGhumiSelectAll_Caption = '_Mindent kijelöl'; LANGhumiUnselectAll_Caption = 'Min_dent visszavon'; LANGhumiInvertSelection_Caption = '_Inverz kijelölés'; LANGhumiRefresh_Caption = 'Új_ratölt'; LANGhumiAbout_Caption = '_Névjegy...'; LANGhuColumn1_Caption = 'Név'; LANGhuColumn2_Caption = 'Kiterjesztés'; LANGhuColumn3_Caption = 'Méret'; LANGhuColumn4_Caption = 'Dátum'; LANGhuColumn5_Caption = 'Attribútum'; LANGhuExpandSelection = 'Kiválasztás bövítese'; LANGhuShrinkSelection = 'Kiválasztás szükítese'; LANGhuNoMatchesFound = 'Nincs találat'; LANGhuNoFilesSelected = 'Nincs megjelölve fájl!'; LANGhuSelectedFilesDirectories = '%d kijelölt fájl/könyvtár'; LANGhuDirectoryS = 'könyvtár %s'; LANGhuFileS = 'fájl %s'; LANGhuDoYouReallyWantToDeleteTheS = 'Valóban eltávolítani kívanja a %s -t?'; LANGhuDoYouReallyWantToDeleteTheSS = 'Valóban eltávolítani kívanja a %s -t?'#10'%s'; LANGhuCopyFiles = 'Fájlok másolása'; LANGhuMoveRenameFiles = 'Fájlok áthelyezése/átnevezése'; LANGhuCopyDFileDirectoriesTo = '%d fájl/könyvtár másolása ide:'; LANGhuMoveRenameDFileDirectoriesTo = '%d fájl áthelyezése/átnevezése ide:'; LANGhuCopySC = 'Másolni:'; LANGhuMoveRenameSC = 'Ãthelyezni/átnevezni'; LANGhuQuickFind = ' Kikeresni:'; LANGhuAboutString = 'Tux Commander'#10'Verzió %s'#10'Megírásának dátuma: %s'#10#10'Copyright (c) 2009 Tomáš Bžatek'#10'E-mail: tbzatek@users.sourceforge.net'#10'WWW-lap: http://tuxcmd.sourceforge.net/'; LANGhuAboutStringGnome = 'verzió %s'#10'Megírásának dátuma: %s'#10'WWW-lap: http://tuxcmd.sourceforge.net/'; LANGhuDiskStatFmt = '%s a %s -ból szabad'; LANGhuDiskStatVolNameFmt = '[%s] %s a %s-ból szabad'; LANGhuStatusLineFmt = '%s a %s-ból és %d a %d fájlból kijelölve'; LANGhuPanelStrings : array[boolean] of string = ('jobb','bal'); LANGhuDIR = ''; LANGhuErrorGettingListingForSPanel = 'Könyvtár megnyitási hiba a %s ablakban:'#10' %s'#10#10'Útvonal = ''%s'''; LANGhuErrorGettingListingForSPanelNoPath = 'Könyvtár megnyitási hiba a %s ablakban'#10' %s'; LANGhuErrorCreatingNewDirectorySInSPanel = 'A ''%s'' könyvtárat nem lehet létrehozni a %s ablakban:'#10' %s'; LANGhuErrorCreatingNewDirectorySInSPanelNoPath = 'A ''%s'' könyvtárat nem lehet létrehozni a %s ablakban:'#10' %s'; LANGhuTheFileDirectory = 'Fájl/könyvtár'; LANGhuCouldNotBeDeleted = 'nem sikerült törölni'; LANGhuCouldNotBeDeletedS = 'nem sikerült törölni: %s'; LANGhuUserCancelled = 'Operáció megszakítva!'; LANGhuTheDirectorySIsNotEmpty = 'A %s könyvtár nem üres!'; LANGhuCannotCopyFile = 'A fájl nem másolható'; LANGhuCopyError = 'Másolási hiba'; LANGhuMoveError = 'Ãthelyezési hiba'; LANGhuOverwriteS = 'Felülírni: %s'; LANGhuWithFileS = 'a %s fájllal'; LANGhuOvewriteSBytesS = '%s byte, %s'; LANGhuTheFile = 'Fájl'; LANGhuCopy = 'Másolás'; LANGhuMove = 'Ãthelyezés'; LANGhuTheDirectory = 'Könyvtár'; LANGhuTheSymbolicLink = 'Szimbolikus hivatkozás'; LANGhuCannotMoveFile = 'Nem lehet áthelyezni a fájlot'; LANGhuCouldNotBeCreated = 'nem sikerült létrehozni'; LANGhuCouldNotBeCreatedS = 'nem sikerült létrehozni %s'; LANGhuFromS = 'innen: %s'; LANGhuToS = 'ide: %s'; LANGhuCannotCopyFileToItself = 'A forrás- és célállomány megegyezik (ugyanaz)!'; LANGhuMemoryAllocationFailed = 'Memória allokációs hiba:'; LANGhuCannotOpenSourceFile = 'Nem sikerült megnyitni a forrásállományt'; LANGhuCannotOpenDestinationFile = 'Nem sikerült megnyitni a célállományt'; LANGhuCannotCloseDestinationFile = 'Nem sikerült bezárni a célállományt'; LANGhuCannotCloseSourceFile = 'Nem sikerült bezárni a forrásállományt'; LANGhuCannotReadFromSourceFile = 'A forrásállomány nem olvasható'; LANGhuCannotWriteToDestinationFile = 'A célállomány nem írható'; LANGhuUnknownException = 'Ismeretlen hiba'; LANGhuNoAccess = 'Hozzáférés elutasítva'; LANGhuUnknownError = 'Ismeretlen hiba'; LANGhuCreateANewDirectory = 'Új könyvtár létrehozása'; LANGhuEnterDirectoryName = 'Adja be a könyvtár _nevét:'; LANGhuOverwriteQuestion = 'Felülírás jóváhagyása'; LANGhuOverwriteButton_Caption = '_Felülírni'; LANGhuOverwriteAllButton_Caption = '_Mindet felülírni'; LANGhuSkipButton_Caption = 'Ã_tugorni'; LANGhuOverwriteAllOlderButton_Caption = 'Minden _régebbi felülírása'; LANGhuSkipAllButton_Caption = '_Kihagy mindent'; LANGhuRenameButton_Caption = 'Ãtneve_zni'; LANGhuAppendButton_Caption = '_Hozzácsatolni'; LANGhuRename = 'Ãtnevezni'; LANGhuRenameFile = 'A ''%s'' fájl átnevezése erre:'; LANGhuIgnoreButton_Caption = '_Ignorálni'; LANGhuProgress = 'Müvelet folyamatban'; LANGhuCancel = '_Storno'; LANGhuDelete = 'Törlés:'; LANGhuSpecifyFileType = 'Válasszon fájl_típust:'; LANGhuRemoveDirectory = 'Könyvtárat eltávolítani'; LANGhuDoYouWantToDeleteItWithAllItsFilesAndSubdirectories = 'Az alkönyvtárakkal együtt mindent kíván törölni?'; LANGhuRetry = '_Megismételni'; LANGhuDeleteButton_Caption = '_Eltávolítani'; LANGhuAll = 'Minde_t'; LANGhuCopyFilesSC = 'A köv. fájlok másolása:'; LANGhuAppendQuestion = 'Valóban kívánja a ''%s'' fájl ''%s'' fájlhoz való csatolását?'; LANGhuPreparingList = 'Az állományok listája készül...'; LANGhuYouMustSelectAValidFile = 'Kérem, érvényes fájlot jelöljön meg!'; LANGhumiVerifyChecksums = '_Checksum ellenörzése'; LANGhuVerifyChecksumsCaption = 'Checksum ellenörzése'; LANGhuCheckButtonCaptionCheck = '_Ellenörizni'; LANGhuCheckButtonCaptionStop = '_Stop'; LANGhuFileListTooltip = '[?] - Idáig nem ellenörzött'#10'[OK] - Checksum rendben'#10'[BAD] - Checksum-hiba'#10'[N/A] - A fájl nem elérhetö'; LANGhuFilenameColumnCaption = 'Fájl'; LANGhuTheFileSYouAreTryingToOpenIsQuiteBig = 'A ''%s''fájl, melyet olvasni próbál, túl nagy (%s bájtos). Érvénytelen Checksum elöfordulhat.'#10#10'Kívánja folytatni?'; LANGhuAnErrorOccuredWhileInitializingMemoryBlock = 'Memória-allokációs hiba történt. Próbáljon meg több memóriát felszabadítani pár applikáció bezárásával, majd próbálja újra.'; LANGhuAnErrorOccuredWhileOpeningFileSS = 'Nem lehet megnyitni a fájlot ''%s'':'#10' %s'; LANGhuAnErrorOccuredWhileReadingFileSS = 'Nem lehet a fájlból olvasni ''%s'':'#10' %s'; LANGhuChecksumNotChecked = 'Stav: Nincs ellenörizve'; LANGhuChecksumChecking = 'Stav: Ellenörzés folyamatban...'; LANGhuChecksumInterrupted = 'Stav: Megszakítva'; LANGhuChecksumDOK = 'Ãllapot: %d%% OK'; LANGhumiCreateChecksumsCaption = '_Checksum létrehozása...'; LANGhuYouMustSelectAtLeastOneFileToCalculateChecksum = 'Legalább egy érvényes fájlot meg kell jelölni a Checksum létrehozásához!'; LANGhuCreateChecksumsCaption = 'Checksum létrehozása'; LANGhuCCHKSUMPage1Text = 'Az ablakban megjelölt fájlok'#10' Checksum-jának létrehozására készül. Amennyiben '#10'nincs megjelölve az összes szükséges fájl,'#10'lépjen ki ebböl az ablakból és kezdje elölröl..'; LANGhuCCHKSUMPage4Text = 'Checksum-ok létrehozására felkészülve.'#10'Ez a folyamat néhány percig is eltarthat..'#10'Folytatás a Tovább gomb lenyomásával..'; LANGhuCCHKSUMPage6Text = 'A müvelet közben a köv. hibák történtek:'; LANGhuCCHKSUMPage7Text = 'A Checksum-ok elkészültek.'#10#10'Ezt az ablakot a Befejez(Bezár) gombbal zárhatja be.'; LANGhuCCHKSUMPage1Title = 'Fájl(ok) elökészítése'; LANGhuCCHKSUMPage2Title = 'Válassza ki a kívánt Chechsum típusát'; LANGhuCCHKSUMPage3Title = 'Válasszon fájlnevet'; LANGhuCCHKSUMPage4Title = 'Müveletre felkészülve'; LANGhuCCHKSUMPage5Title = 'Az ellenörzes folyamatban...'; LANGhuCCHKSUMPage6Title = 'Hiba!'; LANGhuCCHKSUMPage7Title = 'Végrehajtva'; LANGhuCCHKSUMSFVFile = 'SFV fájl'; LANGhuCCHKSUMMD5sumFile = 'MD5 fájl'; LANGhuCCHKSUMFileName = '_Fájlnév:'; LANGhuCCHKSUMCreateSeparateChecksumFiles = '_Különálló Checksum Fájlok'; LANGhuCCHKSUMNowProcessingFileS = 'Ellenörzés alatt lévö fájl: %s'; LANGhuCCHKSUMFinishCaption = '_Befejez'; LANGhuCCHKSUMAreYouSureYouWantToAbortTheProcessing = 'Valóban meg kívánja szakítani az ellenörzést?'; LANGhuCCHKSUMAnErrorOccuredWhileOpeningFileSS = 'Hiba történt a köv. fájl megnyitásakor: ''%s'': %s'#10; LANGhuCCHKSUMAnErrorOccuredWhileReadingFileSS = 'Hiba történt a köv. fájl olvasásakor: ''%s'': %s'#10; LANGhuCCHKSUMAnErrorOccuredWhileWritingFileSS = 'Hiba történt a köv. fájlba való írás során: ''%s'': %s'#10; LANGhuAnErrorOccuredWhileWritingFileSS = 'A köv. fájl nem írható ''%s'':'#10' %s'; LANGhuTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt = 'A ''%s'' célfájl már létezik. Kívánja felülírni?'; LANGhuTheTargetFileSCannotBeRemovedS = 'A ''%s'' fájl nem távolítható el: %s'; LANGhuMergeCaption = 'Összekötni'; LANGhuPleaseInsertNextDiskOrGiveDifferentLocation = 'Kérem, helyezze be a köv. floppy-t, vagy adjon meg egy másik könyvtárat:'; LANGhuMergeOfSSucceeded = 'A ''%s'' fájl összekapcsolása sikeresen végrehajtva (Checksum OK).'; LANGhuWarningCreatedFileFailsCRCCheck = 'Figyelmeztetés: A létrehozott fájl Checksum-ja nem egyezik!'; LANGhuMergeOfSSucceeded_NoCRCFileAvailable = 'A ''%s'' fájl összekapcsolása sikeresen végrehajtva (A Checksum nem hozzáférhetö).'; LANGhuMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory = 'A ''%s'' fájl és minden nevében hozzáfüzödö fájl összekapcsolása a köv. könyvtárba::'; LANGhuMergeSC = 'Összekapcsol:'; LANGhumiSplitFileCaption = 'Fájl da_rabolása...'; LANGhumiMergeFilesCaption = 'Fájlok összeka_pcsolása...'; LANGhuSplitTheFileSToDirectory = 'A ''%s'' fájl szétda_rabolása a célkönyvtárba:'; LANGhuSplitSC = 'Szétdarabol:'; LANGhuSplitFile = 'Fájl darabolása'; LANGhuBytesPerFile = '_Byte fájlonként:'; LANGhuAutomatic = 'Automatikusan'; LANGhuDeleteFilesOnTargetDisk = 'A fájlok törlé_se a céllemezen (kivehetö lemezek esetében alkalmas)'; LANGhuSplitCaption = 'Szétdarabolás'; LANGhuCannotOpenFileS = 'Nem lehet megnyitni a ''%s'' fájlot'; LANGhuCannotSplitTheFileToMoreThan999Parts = 'A fájl max. 999 darabra metélhetö szét!'; LANGhuThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem = 'A célkönyvtárban a köv. fájlok találhatóak:'#10'%s'#10'Kívánja öket törölni?'; LANGhuThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem = 'A célkönyvtárban %d fáj található. Kívánja öket törölni?'; LANGhuAnErrorOccuredWhileOperationS = 'Hiba a müvelet végrehajtásakor: %s'; LANGhuSplitOfSSucceeded = 'A ''%s'' fájl darabolása sikeresen befejezve.'; LANGhuSplitOfSFailed = 'A ''%s'' fájl darabolása sikertelen!'; LANGhumnuShow_Caption = '_Megjelenítés'; LANGhumiShowDotFiles_Caption = 'Rejtett fájlok megjeleníté_se'; LANGhuTheFileYouAreTryingToOpenIsQuiteBig = 'A beolvasni kívánt fájl nagy méretü. Külsö appplikacióban (pl. gedit) történö megjelenítése a redszer lelassulását okozhatja.'#10'Kívánja folytatni?'; LANGhuCannotExecuteSPleaseCheckTheConfiguration = 'Nem indítható: ''%s''. Kérem, ellenörizze a beállításokat.'; LANGhuEdit = 'Módosít'; LANGhuEnterFilenameToEdit = 'Adja b_e a módosítani kívánt fájlnevet:'; LANGhumnuSettings_Caption = 'Beálli_tás'; LANGhumiFileTypes_Caption = 'Fájl_típusok...'; LANGhuThereIsNoApplicationAssociatedWithS = 'Egyetlen applikáció sincs a "%s" fájlhoz hozzárendelve.'#10#10'Kívánja a fájltípusokhoz hozzárendelt akciók dualógusának megnyitását?'; LANGhuErrorExecutingCommand = 'Az utasítást nem lehet végrehajtani!'; LANGhuEditFileTypesCaption = 'Hozzárendelés beállítása'; LANGhuTitleLabel_Caption = 'Fájltípusok'; LANGhuExtensionsColumn = 'Kiterjesztések'; LANGhuDescriptionColumn = 'Leírás'; LANGhuFileTypesList = 'Fájltípusok listája'; LANGhuActionName = 'Az akció neve'; LANGhuCommand = 'Utasítás'; LANGhuSetDefaultActionButton_Caption = 'Kii_nduló állapot beállítása'; LANGhuRunInTerminalCheckBox_Caption = 'Indí_tás a konzolban (terminál).'; LANGhuAutodetectCheckBox_Caption = 'Graf. pr_ogram autodetekciója'; LANGhuBrowseButton_Caption = 'Ãtkere_sni...'; LANGhuCommandLabel_Caption = '_Utasítás:'; LANGhuDescriptionLabel_Caption = 'Fájltí_pus leírása:'; LANGhuFNameExtLabel_Caption = 'Uj Típus hozzáa_dása:'; LANGhuNotebookPageExtensions = 'Fájltípus'; LANGhuNotebookPageActions = 'Akció'; LANGhuDefault = ' (Default)'; LANGhuCannotSaveFileTypeAssociationsBecauseOtherProcess = 'A fájltípusok listája nem menthetö el, mert közben egy másik applikáció is megváltoztatta.'; LANGhuDefaultColor = 'Default _szín'; LANGhuIcon = '_Ikon:'; LANGhuBrowseForIcon = 'Ikon kersése'; LANGhuSelectFileTypeColor = 'Fájltípus színének választása'; LANGhuColor = 'Szí_n:'; LANGhumiChangePermissions_Caption = 'Jogok meg_változtatása...'; LANGhumiChangeOwner_Caption = 'Tu_lajdonos/csoport megváltoztatása...'; LANGhumiCreateSymlink_Caption = 'Hivat_kozás létrehozása...'; LANGhumiEditSymlink_Caption = 'Hivatkozás mó_dosítasa...'; LANGhuChmodProgress = 'Jog megváltoztatása'; LANGhuChownProgress = 'Tulajdonos megváltoztatása:'; LANGhuYouMustSelectAValidSymbolicLink = 'Válasszon érvényes hivatkozást!'; LANGhuPopupRunS = 'Végrehaj_tani a %s -t'; LANGhuPopupOpenS = '_Megnyitni a : %s -t'; LANGhuPopupGoUp = 'Eggyel felje_bbi könyvtárra váltani'; LANGhuPopupOpenWithS = 'Megnyitni ebben: %s'; LANGhuPopupDefault = ' (default)'; LANGhuPopupOpenWith = 'Meg_nyitni a...'; LANGhuPopupViewFile = 'Fájl ábrá_zolása'; LANGhuPopupEditFile = 'Fájl módo_sítása'; LANGhuPopupMakeSymlink = 'Default _utasítás'; LANGhuPopupRename = 'Ãtn_evezni'; LANGhuPopupDelete = 'Eltá_volítanit'; LANGhuDialogChangePermissions = 'Jogok meg_változtatása'; LANGhuCouldNotBeChmoddedS = 'Nem lehet a jogokat megváltoztatni: %s'; LANGhuDialogChangeOwner = 'Tu_lajdonos/csoport megváltoztatása'; LANGhuCouldNotBeChownedS = 'Nem lehet a tulajdonost megváltoztatni: %s'; LANGhuDialogMakeSymlink = 'Hivatkozás létrehozása'; LANGhuDialogEditSymlink = 'Hivatkozás módosítasa'; LANGhuFEditSymlink_Caption = 'Szimbolikus hivatkozás módositasa'; LANGhuFEditSymlink_SymbolicLinkFilename = 'Hivatkozás _neve:'; LANGhuFEditSymlink_SymbolicLinkPointsTo = 'A hivatkozás ide m_utat:'; LANGhuFChmod_Caption = 'Jogok'; LANGhuFChmod_PermissionFrame = 'Jogosultságok betüi'; LANGhuFChmod_FileFrame = 'Fájl'; LANGhuFChmod_ApplyRecursivelyFor = 'Ismételten a_pplikálni ezeken:'; LANGhuFChmod_miAllFiles = 'Minden fájl és könyvtár'; LANGhuFChmod_miDirectories = 'Csak könyvtárak'; LANGhuFChmod_OctalLabel = '_Számokkal való kifejezés:'; LANGhuFChmod_SUID = 'SUID - Ãllomány tulajdonosának ID-je futtatáskor'; LANGhuFChmod_SGID = 'SGID - Csoport ID-je a futtatáskor'; LANGhuFChmod_Sticky = '''sticky'' bit'; LANGhuFChmod_RUSR = 'RUSR - Olvasás a tulajdonos által'; LANGhuFChmod_WUSR = 'WUSR - Ãrás a tulajdonos által'; LANGhuFChmod_XUSR = 'XUSR - Futtatás a tulajdonos által'; LANGhuFChmod_RGRP = 'RGRP - Olvasás a csoport által'; LANGhuFChmod_WGRP = 'WGRP - Ãrás a csoport által'; LANGhuFChmod_XGRP = 'XGRP - Futtatás a csoport által'; LANGhuFChmod_ROTH = 'ROTH - Olvasás mások által'; LANGhuFChmod_WOTH = 'WOTH - Ãrás mások által'; LANGhuFChmod_XOTH = 'XOTH - Futtatás mások által'; LANGhuFChmod_TextLabel = 'Szimbolikus kifejezés: %s'; LANGhuFChmod_FileLabel = 'Választott fájl: %s'#10'Szimbolikus kifejezés: %s'#10 + 'Számeli kifejezés: %d'#10'Tulajdonos: %s'#10 + 'Csoport: %s'; LANGhuFChown_Caption = 'Tulajdonos/csoport megváltoztatása'; LANGhuFChown_OwnerFrame = 'Tulajdonos'; LANGhuFChown_GroupFrame = 'Csoport neve'; LANGhuFChown_FileFrame = 'Fájl'; LANGhuFChown_ApplyRecursively = 'Rekurzív _alkalmazás'; LANGhuFSymlink_Caption = 'Szimbolikus hivatkozás létrehozása'; LANGhuFSymlink_ExistingFilename = 'Lét_ezö fájl (amire a hivatkozás mutat):'; LANGhuFSymlink_SymlinkFilename = 'A hivatkozás _neve:'; LANGhumnuBookmarks_Caption = 'Kön_yvjelzök'; LANGhumiAddBookmark_Caption = 'Könyvjelzö hozzáadása'; LANGhumiEditBookmarks_Caption = 'Könyvjelzö módosítása'; LANGhuBookmarkPopupDelete_Caption = '_Törölni'; LANGhumiPreferences_Caption = '_Beállítások...'; LANGhuTheCurrentDirectoryAlreadyExistsInTheBookmarksList = 'A létrehozni kívánt könyvtár már létezik a listában.'; LANGhuSomeOtherInstanceChanged = 'Egy másik futtatás során megváltoztak a program beallításai. Kívanja az új beállításokat ' + 'használni az aktuális ablakra vonatkozóan?'#10#10'Figyelmeztetés: Amennyiben nem engedélyezi a változások akceptálását, ez az új beállítás felül lesz írva az applikáció bezárásakor.'; LANGhuPreferences_Caption = 'Applikáció beállítása'; LANGhuPreferences_TitleLabel_Caption = 'Applikáció beállítása'; LANGhuPreferences_GeneralPage = 'Ãltalános'; LANGhuPreferences_FontsPage = 'Betütípus'; LANGhuPreferences_ColorsPage = 'Színek'; LANGhuPreferences_RowHeight = 'Sorma_gasság:'; LANGhuPreferences_NumHistoryItems = 'Bejegyzések száma a "Command Line _History"-ban:'; LANGhuPreferences_Default = 'Default'; LANGhuPreferences_ClearReadonlyAttribute = 'A "Csak _olvas" attribútum eltávolítása CD-ROM-ról való másoláskor'; LANGhuPreferences_DisableMouseRenaming = 'Egérrel tö_rténö gyors átnevezés tiltása'; LANGhuPreferences_ShowFiletypeIconsInList = 'Fájltípusok standard _ikonjainak ábrázolása'; LANGhuPreferences_ExternalAppsLabel = 'Külsö applikációk'; LANGhuPreferences_Viewer = '_Viewer:'; LANGhuPreferences_Editor = '_Editor:'; LANGhuPreferences_Terminal = '_Konzol:'; LANGhuPreferences_ListFont = 'Az ablakok betütípusa:'; LANGhuPreferences_Change = 'Válto_tatni...'; LANGhuPreferences_UseDefaultFont = 'Default _betütípus használata'; LANGhuPreferences_Foreground = 'Szöveg'; LANGhuPreferences_Background = 'Háttér'; LANGhuPreferences_NormalItem = 'Standard elemek:'; LANGhuPreferences_SetToDefaultToUseGTKThemeColors = 'A kiindulási beállítások esetében az aktuális GTK Theme színei lesznek alkalmazva'; LANGhuPreferences_Cursor = 'Kurzor:'; LANGhuPreferences_InactiveItem = 'Nem aktív elemek:'; LANGhuPreferences_SelectedItem = 'Kijelölt elemek:'; LANGhuPreferences_LinkItem = 'Szimbolikus hivatkozások:'; LANGhuPreferences_LinkItemHint = 'A kiindulási beállításokkor a norm. elemek színei lesznek alkalmazva'; LANGhuPreferences_DotFileItem = 'Rejtett fájlok:'; LANGhuPreferences_DotFileItemHint = 'A kiindulási beállításokkor a norm. elemek színei lesznek alkalmazva'; LANGhuPreferences_BrowseForApplication = 'Applikáció választása'; LANGhuPreferences_DefaultS = 'Default: %s'; LANGhuPreferences_SelectFont = 'Betütípus választása'; (*************** STRINGS ADDED TO v0.4.101 **********************************************************************************) LANGhuBookmarkButton_Tooltip = 'Könyvjelzök ábrázolása'; LANGhuUpButton_Tooltip = 'Egy könyvtárral feljebb lépni'; LANGhuRootButton_Tooltip = 'Ugrás a gyökérkönyvtárba (/)'; LANGhuHomeButton_Tooltip = 'Ugrás a felhasználói könyvtárba (/home/user)'; LANGhuLeftEqualButton_Tooltip = 'A jobb ablak-beli könyvtár változtatása az aktuálisra'; LANGhuRightEqualButton_Tooltip = 'A bal ablak-beli könyvtár változtatása az aktuálisra'; LANGhumiShowDirectorySizes_Caption = 'Elfoglalt t_erület számítása'; LANGhumiTargetSource_Caption = 'Célkönyv_tár = Aktuális könyvtár'; LANGhuFileTypeDirectory = 'Könyvtárak'; LANGhuFileTypeFile = 'Fájlok'; LANGhuFileTypeMetafile = 'Közös meta-elem'; LANGhuPreferencesPanelsPage = 'Ablakok'; LANGhuPreferencesApplicationsPage = 'Applikációk'; LANGhuPreferencesExperimentalPage = 'Experimentális funkciók'; LANGhuPreferencesSelectAllDirectoriesCheckBox_Caption = 'Tömeges bejelöléskor _a könyvtárakat is belefoglalni'; LANGhuPreferencesNewStyleAltOCheckBox_Caption = 'Új s_tílus Alt+O'; LANGhuPreferencesNewStyleAltOCheckBox_Tooltip = 'Ãtkapcsoláskor nem változik az aktuális könyvtár'; LANGhuPreferencesShowFuncButtonsCheckBox_Caption = '_Funkció-billentyük ábrázolása (alsó lista)'; LANGhuPreferencesSizeFormatLabel_Caption = 'Számok for_mátuma:'; LANGhuPreferencesmiSizeFormat1 = 'Rendszer'; LANGhuPreferencesmiSizeFormat6 = 'Dinamikus'; LANGhuPreferencesAutodetectXApp = 'X applikációk autodetekciója'; LANGhuPreferencesAlwaysRunInTerminal = 'Konzol-béli indítás'; LANGhuPreferencesNeverRunInTerminal = 'Ne indítsd a konzolban'; LANGhuPreferencesCmdLineBehaviourLabel_Caption = 'Utasítássorból tö_rténö indítás:'; LANGhuPreferencesFeatures = 'Funkció'; LANGhuPreferencesDisableMouseRename_Tooltip = 'Gyors átnevezéshez használható a Shift+F6 bill.-kombináció e választás letiltásakor'; LANGhuPreferencesDisableFileTipsCheckBox_Caption = 'Tipp-box tiltása a fá_jl teljes nevével'; LANGhuPreferencesDisableFileTipsCheckBox_Tooltip = 'Tipp-box tiltása a fájl teljes nevével, amennyiben a fájl/könyvtár neve az ablakban rövidítetve van.'; LANGhuPreferencesShow = 'Ãbrázolás'; LANGhuPreferencesDirsInBoldCheckBox_Caption = 'Könyvtárak vastag be_tüvel'; LANGhuPreferencesDisableDirectoryBracketsCheckBox_Caption = 'Könyvtárnevek ábrázolása szögletes zárójel nélkül'; LANGhuPreferencesOctalPermissionsCheckBox_Caption = 'Jogok megjelenítése szám_okkal'; LANGhuPreferencesOctalPermissionsCheckBox_Tooltip = 'Könyvtárakra és fájlokra vonatkozó jogosultságok megjelenítése számokkal'; LANGhuPreferencesMovement = 'Ugrálás az ablakokban'; LANGhuPreferencesLynxLikeMotionCheckBox_Caption = 'Ugrálás a _Lynx böngészö stílusában'; LANGhuPreferencesInsertMovesDownCheckBox_Caption = 'Az In_sert lefelé mozgatja a kurzort'; LANGhuPreferencesSpaceMovesDownCheckBox_Caption = 'A szóköz bill. lefelé _mozgatja a kurzort '; LANGhuPreferencesViewer = 'Böngészö'; LANGhuPreferencesCommandSC = 'Utasítás:'; LANGhuPreferencesUseInternalViewer = 'Belsö _böngészö használata'; LANGhuPreferencesEditor = 'Editor'; LANGhuPreferencesTerminal = 'Konzol'; LANGhuPreferencesExperimentalFeatures = 'Experimentáis funkciók'; LANGhuPreferencesExperimentalWarningLabel_Caption = 'Figyelmeztetés: Ezek a funkciók fejlesztés alatt állnak és hibamentes müködésük nem biztosított. Használja öket saját felelösségére!'; LANGhuPreferencesFocusRefreshCheckBox_Caption = 'A panelok új_raolvasása az applikáció ablakjaiba lépéskor'; LANGhuPreferencesFocusRefreshCheckBox_Tooltip = 'Ez a müvelet hosszabb ideig tart az ablakban lévö allományok számától függöen'; LANGhuPreferencesWMCompatModeCheckBox_Caption = '_Kompatibilitás ablakkezelökkel'; LANGhuPreferencesWMCompatModeCheckBox_Tooltip = 'Használjuk ablakkezelökkel felálló nehézségek esetén (pl. IceWM nem maximalizálja helyesen az ablakot)'; LANGhuPreferencesCompatUseLibcSystemCheckBox_Caption = 'A libc _system() funkció használata proces-ek indításához'; LANGhuPreferencesCompatUseLibcSystemCheckBox_Tooltip = 'Használjuk programindítási nehézségek vagy fagyások esetén'; (*************** STRINGS ADDED TO v0.5.70 **********************************************************************************) LANGhumiSearchCaption2 = '_Fájlok keresése..'; LANGhumiNoMounterBarCaption = 'Lemezek sávját ne ábrázolja'; LANGhumiShowOneMounterBarCaption = 'Lemezek 1 sávját ábrázolja'; LANGhumiShowTwoMounterBarCaption = 'Lemezek 2 sávját ábrázolja'; LANGhumnuNetworkCaption = 'Hálóza_t'; LANGhumiConnectionsCaption = 'Kapc_solat - kezelö...'; LANGhumiOpenConnectionCaption = 'Ka_pcsolódni...'; LANGhumiQuickConnectCaption = 'Gyo_rs kapcsolódás...'; LANGhumnuPluginsCaption = '_Modulok'; LANGhumiTestPluginCaption = 'Modulok ellenör_zése...'; LANGhumiMounterSettingsCaption = 'Lemezek sávjának beállítása...'; LANGhumiColumnsCaption = 'Oszlopo_k beállítása...'; LANGhumiSavePositionCaption = 'Pozíció mentése'; LANGhumiMountCaption = 'Ka_pcsolódni'; LANGhumiUmountCaption = 'Lekapcs_olódni'; LANGhumiEjectCaption = '_Eject'; LANGhumiDuplicateTabCaption = 'Ú_j ablak megnyitása '; LANGhumiCloseTabCaption = 'Aktuális ablak be_zárása'; LANGhumiCloseAllTabsCaption = 'Minden ablak bezárá_sa'; LANGhuCannotDetermineDestinationEngine = 'A célkönyvtár nem elérhetö. Kérem, ellenörizze az utat, majd próbálja újra.'; LANGhuCannotLoadFile = 'Nem megnyitható a ''%s'' fájl. Kérem, ellenörizze a jogokat, majd próbálja újra.'; LANGhuMountPointDevice = 'Csatlakozási pont: %s'#10'Berendezés: %s'; LANGhuMountSC = 'Csatlakozás:'; LANGhuNoPluginsFound = 'A modul nincs meg'; LANGhuPluginAbout = 'A modulról...'; LANGhuCouldntOpenURI = 'Nem sikerült a távoli kapcsolat létrehozása. Kérem, ellenörizze a címet és a jogokat.'; LANGhuPluginAboutInside = 'Modul: %s'#10#10'%s'#10'%s'; LANGhuAreYouSureCloseAllTabs = 'Valóban be kívánja zárni az összes többi ablakot?'; LANGhuCouldntOpenURIArchive = 'Az archívumot nem sikerült megnyitni, valószínüleg meg van sérülve. Kérem, ellenörizze a címet és a jogokat.'; LANGhuThereIsNoModuleAvailable = 'A kapcsolat megnyitásához szükséges modult nem találtam. Kérem, ellenörizze az aktív modulokat. '; LANGhuIgnoreError = 'Valóban figyelmen kívül kívánja hagyni ezt a hibát? A forrásfájl törölve lesz.'; LANGhuErrorMount = 'A berendezés bejelentkezésekor hiba történt ''%s'':'#10#10; LANGhuErrorUmount = 'A berendezés lejelentkezésekor hiba történt ''%s'':'#10#10; LANGhuErrorEject = 'A berendezés kiemelésekor hiba történt''%s'':'#10#10; LANGhuMounterPrefs_Caption = 'A lemezek ablakjainak beállítása'; LANGhuMounterPrefs_TitleLabelCaption = 'A lemezek ablakjainak beállítása'; LANGhuMounterPrefs_ListViewFrameCaption = 'Kapcsolódási pontok'; LANGhuMounterPrefs_MountName = 'Név'; LANGhuMounterPrefs_MountPoint = 'Mount point'; LANGhuMounterPrefs_Device = 'Berendezés'; LANGhuMounterPrefs_MoveUpButtonTooltip = 'Mozgatás felfele'; LANGhuMounterPrefs_MoveDownButtonTooltip = 'Mozgatás lefele'; LANGhuMounterPrefs_UseFSTabDefaultsCheckBox = 'A kapc_solódási pontok rendszer-listájának használata'; LANGhuMounterPrefs_UseFSTabDefaultsCheckBoxTooltip = 'Amennyiben ez a lehetöség aktív, a kapcsolódási pontok rendszer-listája kerül használatra az /etc/fstab rendszerfájlból'; LANGhuMounterPrefs_ToggleModeCheckBox = 'A lemezek kapcsolói benyomva maradnak '; LANGhuMounterPrefs_ToggleModeCheckBoxTooltip = 'Amennyiben ez a lehetöség aktív, a panel gombjai benyomva maradnak, ha a berendezés jelen van. A berendezésre való kattintással azt lecsatlakoztatjuk, vagy kiemelhetjük.'; LANGhuMounterPrefs_PropertiesFrameCaption = 'Csatlakozási pont tulajdonságai'; LANGhuMounterPrefs_DisplayTextLabelCaption = '_Név:'; LANGhuMounterPrefs_MountPointLabelCaption = 'Csatlakozási pont:'; LANGhuMounterPrefs_MountDeviceLabelCaption = '_Berendezés:'; LANGhuMounterPrefs_DeviceTypeLabelCaption = 'Berendezés tí_pusa:'; LANGhuMounterPrefs_miLocalDiskCaption = 'Helyi lemez'; LANGhuMounterPrefs_miRemovableCaption = 'Cserélhetö lemez'; LANGhuMounterPrefs_miCDCaption = 'CD/DVD egység'; LANGhuMounterPrefs_miFloppyCaption = 'Floppy egység'; LANGhuMounterPrefs_miNetworkCaption = 'Hálózati eszköz'; LANGhuMounterPrefs_MountCommandLabelCaption = 'Kapcsolódási parancs:'; LANGhuMounterPrefs_UmountCommandLabelCaption = 'Lekapcsolódási parancs'; LANGhuMounterPrefs_MountCommandEntryTooltip = 'Syntaxis: használjunk a %dev -t a berendezés helyett, es a %dir -t a távoli pont útjaként. Távoli berendezések nem standart utasításának használata esetében hagyjuk ezt a mezöt üresen.'#10 + 'Figyelmeztetés: Ne használjunk oyan utasításokat, melyek billentyüzetröl való bemenetet kívánnak. A program nem tudja öket kezelni!'#10'Példa: smbmount %dev %dir -o username=netuser,password=jelszó'; LANGhuMounterPrefs_UmountCommandEntryTooltip = 'Syntaxis: használjunk %dev -t a berendezés helyett, es a %dir -t a távoli pont útjaként. Távoli berendezések nem standart utasításának használata esetében hagyjuk ezt a mezöt üresen.'#10'Példa: smbumount $dir'; LANGhuMounterPrefs_IconLabelCaption = '_Ikon:'; LANGhuConnMgr_Caption = 'Új kapcsolat megnyitása'; LANGhuConnMgr_ConnectButton = '_Kapcsolódni'; LANGhuConnMgr_OpenConnection = 'Új kapcsolat megnyitása'; LANGhuConnMgr_NameColumn = 'Név'; LANGhuConnMgr_URIColumn = 'Cím'; LANGhuConnMgr_AddConnectionButtonCaption = 'Új kapcsolat...'; LANGhuConnMgr_AddConnectionButtonTooltip = 'Új kapcsolat létrehozása'; LANGhuConnMgr_EditButtonCaption = '_Módosítani...'; LANGhuConnMgr_EditButtonTooltip = 'Kiválasztott kapcsolat módosítása'; LANGhuConnMgr_RemoveButtonCaption = 'Eltávolítani'; LANGhuConnMgr_RemoveButtonTooltip = 'Kiválasztott kapcsolat eltávolítása'; LANGhuConnMgr_DoYouWantDelete = 'Valóban el akarja távolítani a(z) ''%s'' kapcsolatot?'; LANGhuConnProp_FTP = 'FTP'; LANGhuConnProp_SFTP = 'SFTP (ssh alrendszer)'; LANGhuConnProp_SMB = 'Megosztás Windows hálózatokban (SMB)'; LANGhuConnProp_HTTP = 'WebDAV (HTTP)'; LANGhuConnProp_HTTPS = 'Bebiztosított WebDAV (HTTPS)'; LANGhuConnProp_Other = 'További (Kérem, pontosítsa a címben)'; LANGhuConnProp_Caption = 'A kapcsolat tulajdonsága'; LANGhuConnProp_VFSModule = '_VFS modul:'; LANGhuConnProp_URI = '_Cím (URI):'; LANGhuConnProp_URIEntryTooltip = 'Az érvényes URI címnek a hálózati server szolgálatának típusát és címét kellene tartalmaznia.'; LANGhuConnProp_DetailedInformations = 'Pontosítási információk'; LANGhuConnProp_Name = '_Név:'; LANGhuConnProp_Server = 'Serve_r[:port]:'; LANGhuConnProp_Username = 'Felhasználói név:'; LANGhuConnProp_UserNameEntryTooltip = 'Nem kell kitölteni, amennyiben anonymus kiszolgálóról van szó.'; LANGhuConnProp_Password = '_Jelszó:'; LANGhuConnProp_TargetDirectory = '_Távoli könyvtár:'; LANGhuConnProp_ServiceType = 'A _szolgáltatás típusa:'; LANGhuConnProp_MaskPassword = 'Jelszó elrej_tése'; LANGhuConnProp_MenuItemCaption = 'Default (Minden elérhetö modul)'; LANGhuConnLogin_Caption = 'Bejelentkezés'; LANGhuConnLogin_Login = 'Bejelentkezés'; LANGhuConnLogin_ExperimentalWarningLabelCaption = 'Az %s eszközhöz való hozzáféreshez be kell jelentkeznie'; LANGhuConnLogin_Username = '_Felhasználói név:'; LANGhuConnLogin_Password = '_Jelszó:'; LANGhuConnLogin_AnonymousCheckButton = '_anonymus hozzáférés'; LANGhuColumns_Caption = 'A föablak oszlopainak beállítása'; LANGhuColumns_Title = 'Az ablak oszlopainak beállítása'; LANGhuColumns_MoveUpButtonTooltip = 'Mozgatás felfele'; LANGhuColumns_MoveDownButtonTooltip = 'Mozgatás lefele'; LANGhuColumns_TitlesLongName = 'Név'; LANGhuColumns_TitlesLongNameExt = 'Név + típus'; LANGhuColumns_TitlesLongExt = 'Típus'; LANGhuColumns_TitlesLongSize = 'Méret'; LANGhuColumns_TitlesLongDateTime = 'Változtatás dátuma + idöpontja'; LANGhuColumns_TitlesLongDate = 'Utolsó változtatás dátuma'; LANGhuColumns_TitlesLongTime = 'Utolsó változtatás idöpontja'; LANGhuColumns_TitlesLongUser = 'Felhasználó'; LANGhuColumns_TitlesLongGroup = 'Csoport'; LANGhuColumns_TitlesLongAttr = 'Attribútum'; LANGhuColumns_TitlesShortName = 'Név'; LANGhuColumns_TitlesShortNameExt = 'Név'; LANGhuColumns_TitlesShortExt = 'Típus'; LANGhuColumns_TitlesShortSize = 'Méret'; LANGhuColumns_TitlesShortDateTime = 'Dátum'; LANGhuColumns_TitlesShortDate = 'Dátum'; LANGhuColumns_TitlesShortTime = 'Idöpont'; LANGhuColumns_TitlesShortUser = 'Felhaszn.'; LANGhuColumns_TitlesShortGroup = 'Csoport'; LANGhuColumns_TitlesShortAttr = 'Attr.'; LANGhuTestPlugin_Caption = 'VFS modul tesztje'; LANGhuTestPlugin_Title = 'VFS modul tesztje'; LANGhuTestPlugin_ExperimentalWarningLabelCaption = 'Figyelmeztetés: A virtuális fájlrendszer blokkja (VFS) és az integrált modulok jelenleg fejleszés alatt állnak, és kritikus hibákat is tartalmaz6nak'; LANGhuTestPlugin_Plugin = '_Modul:'; LANGhuTestPlugin_Command = '_Cím:'; LANGhuTestPlugin_Username = '_Felhasználó:'; LANGhuTestPlugin_Password = '_Jelszó:'; LANGhuTestPlugin_AnonymousCheckButton = '_Anonymus kapcdsolat (a VFSLogin funkció hívása nélkül)'; LANGhuTestPlugin_NoPluginsFound = 'Egyetlen modul sem hozzáférhetö.'; LANGhuRemoteWait_Caption = 'Müvelet folyamatban'; LANGhuRemoteWait_OperationInProgress = 'Az applikació most dolgozza fel utasítását, türelmét kérem ...'; LANGhuRemoteWait_ItemsFound = 'Találatok száma: %d'; LANGhuSearch_Bytes = 'Byte'; LANGhuSearch_kB = 'kB'; LANGhuSearch_MB = 'MB'; LANGhuSearch_days = 'nap'; LANGhuSearch_weeks = 'hét'; LANGhuSearch_months = 'hónap'; LANGhuSearch_years = 'év'; LANGhuSearch_Caption = 'Fájlok keresése'; LANGhuSearch_General = 'Ãltalános'; LANGhuSearch_Advanced = 'Pontosítás'; LANGhuSearch_SearchResults = 'A keresés eredmé_nye:'; LANGhuSearch_SearchFor = 'Keres_ni:'; LANGhuSearch_FileMaskEntryTooltip = 'Tipp: Több keresett kifejezés esetében használjunk pontosvesszöt'; LANGhuSearch_SearchIn = 'Keresés i_tt:'; LANGhuSearch_SearchArchivesCheckButton = '_Archív böngészése'; LANGhuSearch_FindText = 'Szöveg keresé_se:'; LANGhuSearch_FindTextEntryTooltip = 'Hagyjuk ezt a mezöt üresen, ha nem akarunk szöveget keresni a fájlban'#10'Figyelmeztetés: a szövegek kódolása: UTF-8'; LANGhuSearch_CaseSensitiveCheckButton = '_Kis- és nagybetük megkülönböztetése'; LANGhuSearch_StayCurrentFSCheckButton = 'Külsö adattárokon s_zintén keres'; LANGhuSearch_CaseSensitiveMatchCheckButton = 'Kis- és _nagybetük megkülönböztetése'; LANGhuSearch_Size = 'Méret'; LANGhuSearch_Date = 'Dátum'; LANGhuSearch_BiggerThan = '_Nagyobb, mint'; LANGhuSearch_SmallerThan = '_Kisebb, mint'; LANGhuSearch_ModifiedBetweenRadioButton = '_Változtatás az intervallumban'; LANGhuSearch_NotModifiedAfterRadioButton = '_Nem változott az idöpont után'; LANGhuSearch_ModifiedLastRadioButton = 'Válto_zott az utolsó'; LANGhuSearch_ModifiedNotLastRadionButton = 'Nem vá_ltozott az utolsó'; LANGhuSearch_ModifiedBetweenEntry1 = '"Kérem, használja ezt a dátum-formát:" c'; LANGhuSearch_ViewButtonCaption = 'Fájl me_gtekintése'; LANGhuSearch_NewSearchButtonCaption = 'Új ke_resés'; LANGhuSearch_GoToFileButtonCaption = 'Menj a _fájlra'; LANGhuSearch_FeedToListboxButtonCaption = 'A föpanel _betöltése'; LANGhuSearch_StatusSC = 'Ãllapot:'; LANGhuSearch_Ready = 'Kész.'; LANGhuSearch_PreparingToSearch = 'Keresés elökészítése.'; LANGhuSearch_SearchInProgress = 'A keresés folyamatban:'; LANGhuSearch_UserCancelled = 'Felhasználói megszakítás.'; LANGhuSearch_SearchFinished = 'Keresési folyamat befejezödött.'; LANGhuSearch_FilesFound = 'Talált fájlok száma: %d'; LANGhuSearch_And = 'és'; (*************** STRINGS ADDED TO v0.5.82 **********************************************************************************) LANGhuCloseOpenConnection = 'Új kapcsolatot probált létrehozni, miközben egy másik mar aktív. Ha folytatja, az elözö kapcsolat meg lesz szüntetve és az újjal helyettesitve.'#10#10'Kívánja folytatni?'; LANGhuDuplicateTabWarning = 'Egy új Tab-ot probál megnyitni egy távoli könyvtárral. De ''engine cloning'' nem támogatott. Igy az új Tab könyvtára lokális fájlrenszerre mutat majd.'; LANGhuDontShowAgain = 'Ne mutas_d még egyszer ezt az üzenetet'; LANGhuSwitchOtherPanelWarning = 'A másik panelban egy távoli könyvtárat próbált megnyitni. De mivel ''engine cloning'' nem támogatott, így a célkönyvtár nem lesz megváltoztatva.'; LANGhuOpenConnectionsWarning = 'A panel aktív kapcsolatot tartalmaz. Az applikáció bezárásával minden kapcsolat megszünik.'#10#10'Még mindig ki akar lépni?'; LANGhumiDisconnect_Caption = 'Kapcsolat ol_dása'; LANGhuDisconnectButton_Tooltip = 'Aktív kapcsolat oldása'; LANGhuLeaveArchiveButton_Tooltip = 'Jelen archívum bezárása'; LANGhuOpenTerminalButton_Tooltip = 'Új terminál-ablakot nyit az aktuális könyvtárból'; LANGhuOpenTerminalButton_Caption = 'Te_rminal megnyitása'; LANGhuShowTextUIDsCheckBox_Caption = 'Text _UIDs ábrázolása'; LANGhuShowTextUIDsCheckBox_Tooltip = 'Szöveg alapú Felhasználói (User) és Csoport (Group) információk megjelenítése számok helyett (UID/GID)'; (*************** STRINGS ADDED TO v0.5.100 **********************************************************************************) LANGhumiNewTab_Caption = 'Új könyvtár- _tab'; LANGhuFilePopupMenu_Properties = 'Tulajdonságok (_Properties)'; LANGhuCommandEntry_Tooltip = 'Használj %s-t állomány/könyvtár placeholder-ként'; LANGhumiFiles_Caption = 'Csak fájlok'; (*************** STRINGS ADDED TO v0.6.31 **********************************************************************************) LANGhuPasswordButton_Tooltip = 'A csomag jelszavat igényel.'#10'Kattints a beadáshoz'; LANGhuHandleRunFromArchive_Bytes = 'bájt'; LANGhuHandleRunFromArchive_FileTypeDesc_Unknown = '(ismeretlen)'; LANGhuHandleRunFromArchive_NotAssociated = '(nincs hozzárendelve)'; LANGhuHandleRunFromArchive_SelfExecutable = '(futtatható)'; LANGhuHandleRunFromArchive_CouldntCreateTemporaryDirectory = 'Nem tudtam létrehozni az ideiglenes könyvtárat: "%s": %s.'#10#10'Kérem, ellenörizze a könyvtár beállitásait, majd próbalja újra.'; LANGhuFRunFromVFS_Caption = 'Süritett fajl tulajdonságok'; LANGhuFRunFromVFS_TitleLabel = 'Fájl tulajdonságok'; LANGhuFRunFromVFS_FileNameLabel = 'Fájl neve:'; LANGhuFRunFromVFS_FileTypeLabel = 'Fájl típusa:'; LANGhuFRunFromVFS_SizeLabel = 'Méret:'; LANGhuFRunFromVFS_PackedSizeLabel = 'Süritett méret:'; LANGhuFRunFromVFS_DateLabel = 'Változtatás dátuma:'; LANGhuFRunFromVFS_InfoLabel = 'Fájlmegnyitás csomagolt fájlból nincs támogatva. A fájl alatti gombok megnyomásával a fájl (esetleg összes fájl) egy átmeneti könyvtárba lesz kicsomagolva. Az átmeneti fájlok a TuxCommander bezárása után el lesznek távolitva.'; LANGhuFRunFromVFS_OpensWithLabel = 'Megnyit ezzel:'; LANGhuFRunFromVFS_ExecuteButton = '_Kicsomagol és megynit'; LANGhuFRunFromVFS_ExecuteAllButton = '_Mindet kicsomagol majd megnyit'; LANGhuFSetPassword_Caption = 'Jelszó beadása'; LANGhuFSetPassword_Label1_Caption = 'Jelszó kötelezö'; LANGhuFSetPassword_Label2_Caption = 'A csomagolt fájl k´dolva van és jelszót igényel a megnyitáshoz'; LANGhuFSetPassword_ShowPasswordCheckButton = 'Jelszó me_gjelenítése'; (*************** STRINGS ADDED TO v0.6.48 **********************************************************************************) LANGhuCopyFileNamesToClipboard = 'Fájlnevek _Clipboard-ba való másolása'; LANGhuCopyFullPathNamesToClipboard = 'Teljes elérhetési _utak Clipboard-ba való másolása '; LANGhuCopyPathToClipboard = '_Másold az utat a Clipboard-ba'; LANGhuPreferences_DateFormatLabel_Caption = 'Dátum _formátuma:'; LANGhuPreferences_System = 'System'; LANGhuPreferences_Custom = 'Testreszabás...'; LANGhuPreferences_CustomDateFormatEntry_Tooltip = 'Add be a testreszabott Dátum-Formátumot.'#10'Bövebb infot a syntaxis használatához "man strftime" -al kérhetsz.'; LANGhuPreferences_TimeFormatLabel_Caption = '_Idö formátum:'; LANGhuPreferences_CustomTimeFormatEntry_Tooltip = 'Add be a testreszabott Idö-Formátumot.'#10'övebb infot a syntaxis használatához "man strftime" -al kérhetsz.'; LANGhuPreferences_DateTimeFormatLabel_Caption = 'Dátum/Idö s_orrend:'; LANGhuPreferences_QuickRenameSkipExtCheckBox = 'Gyors átnevezéshez klikkelj a név részre'; LANGhuPreferences_QuickRenameSkipExtCheckBox_Tooltip = 'Gyors átnevezésnél ne jelöld be a kiterjesztést'; LANGhuPreferences_SortDirectoriesLikeFilesCheckBox = 'Könyvtárak fájlokhoz hasonló listázása'; LANGhuPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip = 'Jelöld ki könyvtárak fájlokkal való együttes listázásához. A könyvtárak mindig a lista elején lesznek.'#10'Ha nincs bejelölve: a könyvtárak mindig név szerint lesznek sorbarakba.'; LANGhuPreferences_QuickSearchLabel_Caption = 'Gyors keresés _billentyük:'; LANGhuPreferences_QuickSearchOptionMenu_Tooltip = 'A Ctrl+S/Alt+S és "/" billenytyükombinációk mindig aktivak, ettöl a beállitást´l függetlenül.'; LANGhuPreferences_QuickSearch_Option1 = 'Ctrl+S/Alt+S és csak "/" '; LANGhuPreferences_QuickSearch_Option2 = 'Ctrl+Alt+betük'; LANGhuPreferences_QuickSearch_Option3 = 'Alt+betük'; LANGhuPreferences_QuickSearch_Option4 = 'csak betük'; LANGhuPreferences_TempPathLabel_Caption = 'Ideiglenes fájlok'; LANGhuPreferences_VFSTempPathLabel_Caption = '_VFS ideiglenes fájlok:'; LANGhuPreferences_VFSTempPathEntry_Tooltip = 'ideiglenes fájlok tárolási helye a VFS fájlrendszerben, süritett fájlok azonnali megnyitásához. Kilépéskor minden átmeneti f´jl törlödik.'; (*************** STRINGS ADDED TO v0.6.67 **********************************************************************************) LANGhuPreferences_RightClickSelectCheckBox = 'Jobb egérbillentyü kiválasztási mód'; LANGhuPreferences_RightClickSelectCheckBox_Tooltip = 'A jobb egérbillentyü kiválaszt, mint az mc.'; LANGhuGtkMountOperation_ConnectAnonymously = 'Cs_atlakozás Anonymusként'; LANGhuGtkMountOperation_ConnectAsUser = 'Csatlakozás u_ser-ként:'; LANGhuGtkMountOperation_Username = '_Felhasználói név:'; LANGhuGtkMountOperation_Domain = '_Domain:'; LANGhuGtkMountOperation_Password = '_Jelszó:'; LANGhuGtkMountOperation_DoNotSavePassword = 'Ne mentsd a jelszavat'; LANGhuGtkMountOperation_ForgetPasswordImmediately = 'Azonnal felejtsd _el a jelszavat'; LANGhuGtkMountOperation_RememberPasswordUntilYouLogout = 'Kije_lentkezésig tárold a jelszavat'; LANGhuGtkMountOperation_SavePasswordInConnectionManager = '_Mentsd a jelszavat a Connection Manager-be'; LANGhuGtkMountOperation_RememberForever = 'Tárold a _jelszavat'; LANGhuFSymlink_RelativePath = '_Relatív út'; LANGhuFConnectionManager_DuplicateButton_Caption = 'Másola_t...'; LANGhuFConnectionManager_DuplicateButton_Tooltip = 'Másold a kiválasztott kapcsolatot'; LANGhuFConnectionManager_DoNotSavePasswordsCheckBox_Label = '_Ne tárold belsöleg a jelszót (de használd a gnome-keyring-et)'; LANGhuFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip = 'Az opció kiválasztásával, a Tux Commander sosem fog jelszavakat menteni a kapcsolatok listajaban. A GVFS tulajdonságából adódóan a gnome-keyring még mindig használva lesz mentett jelszavaknak a desktop session-ból való visszahozására.'; LANGhuFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label = 'Ne szinkronizáld a jelszavat a gnome-_keyring-gel'; LANGhuFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip = 'Ne tiltsd a gnome-keyring-nek a jelszavak tárolását.'; LANGhuFConnectionManager_DuplicateMenuItem_Caption = 'M_ásolat...'; LANGhuFQuickConnect_Caption = 'Gyors kapcsolat'; LANGhuFQuickConnect_TitleLabel_Caption = 'Gyors kapcsolat'; LANGhuFQuickConnect_ConnectToURILabel_Caption = 'Kapcs_olódj a köv. URI-hez:'; LANGhuLinkToS = 'Linkelj ide: %s'; LANGhuOpenDirectoryInBackgroundTab = 'Nyisd meg a könyvtárat egy háttér-ta_b-ban'; LANGhuTheActiveConnectionHasNotBeenSaved = 'Az aktív kapcsolat nem lett mentve. Akarod, hogy a Connection Manager mentse?'#10#10'%s'; LANGhuTheArchiveIsEncryptedAndRequiresPassword = 'Az archívum kódolva van, es jelszavat igényel.'; (********************************************************************************************************************************) procedure SetTranslation; begin LANGF2Button_Caption := LANGhuF2Button_Caption; LANGF3Button_Caption := LANGhuF3Button_Caption; LANGF4Button_Caption := LANGhuF4Button_Caption; LANGF5Button_Caption := LANGhuF5Button_Caption; LANGF6Button_Caption := LANGhuF6Button_Caption; LANGF7Button_Caption := LANGhuF7Button_Caption; LANGF8Button_Caption := LANGhuF8Button_Caption; LANGmnuFile_Caption := LANGhumnuFile_Caption; LANGmnuMark_Caption := LANGhumnuMark_Caption; LANGmnuCommands_Caption := LANGhumnuCommands_Caption; LANGmnuHelp_Caption := LANGhumnuHelp_Caption; LANGmiExit_Caption := LANGhumiExit_Caption; LANGmiSelectGroup_Caption := LANGhumiSelectGroup_Caption; LANGmiUnselectGroup_Caption := LANGhumiUnselectGroup_Caption; LANGmiSelectAll_Caption := LANGhumiSelectAll_Caption; LANGmiUnselectAll_Caption := LANGhumiUnselectAll_Caption; LANGmiInvertSelection_Caption := LANGhumiInvertSelection_Caption; LANGmiRefresh_Caption := LANGhumiRefresh_Caption; LANGmiAbout_Caption := LANGhumiAbout_Caption; LANGColumn1_Caption := LANGhuColumn1_Caption; LANGColumn2_Caption := LANGhuColumn2_Caption; LANGColumn3_Caption := LANGhuColumn3_Caption; LANGColumn4_Caption := LANGhuColumn4_Caption; LANGColumn5_Caption := LANGhuColumn5_Caption; LANGExpandSelection := LANGhuExpandSelection; LANGShrinkSelection := LANGhuShrinkSelection; LANGNoMatchesFound := LANGhuNoMatchesFound; LANGNoFilesSelected := LANGhuNoFilesSelected; LANGSelectedFilesDirectories := LANGhuSelectedFilesDirectories; LANGDirectoryS := LANGhuDirectoryS; LANGFileS := LANGhuFileS; LANGDoYouReallyWantToDeleteTheS := LANGhuDoYouReallyWantToDeleteTheS; LANGDoYouReallyWantToDeleteTheSS := LANGhuDoYouReallyWantToDeleteTheSS; LANGCopyFiles := LANGhuCopyFiles; LANGMoveRenameFiles := LANGhuMoveRenameFiles; LANGCopyDFileDirectoriesTo := LANGhuCopyDFileDirectoriesTo; LANGMoveRenameDFileDirectoriesTo := LANGhuMoveRenameDFileDirectoriesTo; LANGCopySC := LANGhuCopySC; LANGMoveRenameSC := LANGhuMoveRenameSC; LANGQuickFind := LANGhuQuickFind; LANGAboutString := LANGhuAboutString; LANGAboutStringGnome := LANGhuAboutStringGnome; LANGDiskStatFmt := LANGhuDiskStatFmt; LANGDiskStatVolNameFmt := LANGhuDiskStatVolNameFmt; LANGStatusLineFmt := LANGhuStatusLineFmt; LANGPanelStrings[False] := LANGhuPanelStrings[False]; LANGPanelStrings[True] := LANGhuPanelStrings[True]; LANGDIR := LANGhuDIR; LANGErrorGettingListingForSPanel := LANGhuErrorGettingListingForSPanel; LANGErrorGettingListingForSPanelNoPath := LANGhuErrorGettingListingForSPanelNoPath; LANGErrorCreatingNewDirectorySInSPanel := LANGhuErrorCreatingNewDirectorySInSPanel; LANGErrorCreatingNewDirectorySInSPanelNoPath := LANGhuErrorCreatingNewDirectorySInSPanelNoPath; LANGTheFileDirectory := LANGhuTheFileDirectory; LANGCouldNotBeDeleted := LANGhuCouldNotBeDeleted; LANGCouldNotBeDeletedS := LANGhuCouldNotBeDeletedS; LANGUserCancelled := LANGhuUserCancelled; LANGTheDirectorySIsNotEmpty := LANGhuTheDirectorySIsNotEmpty; LANGCannotCopyFile := LANGhuCannotCopyFile; LANGCopyError := LANGhuCopyError; LANGMoveError := LANGhuMoveError; LANGOverwriteS := LANGhuOverwriteS; LANGWithFileS := LANGhuWithFileS; LANGOvewriteSBytesS := LANGhuOvewriteSBytesS; LANGTheFile := LANGhuTheFile; LANGCopy := LANGhuCopy; LANGMove := LANGhuMove; LANGTheDirectory := LANGhuTheDirectory; LANGTheSymbolicLink := LANGhuTheSymbolicLink; LANGCannotMoveFile := LANGhuCannotMoveFile; LANGCouldNotBeCreated := LANGhuCouldNotBeCreated; LANGCouldNotBeCreatedS := LANGhuCouldNotBeCreatedS; LANGFromS := LANGhuFromS; LANGToS := LANGhuToS; LANGCannotCopyFileToItself := LANGhuCannotCopyFileToItself; LANGMemoryAllocationFailed := LANGhuMemoryAllocationFailed; LANGCannotOpenSourceFile := LANGhuCannotOpenSourceFile; LANGCannotOpenDestinationFile := LANGhuCannotOpenDestinationFile; LANGCannotCloseDestinationFile := LANGhuCannotCloseDestinationFile; LANGCannotCloseSourceFile := LANGhuCannotCloseSourceFile; LANGCannotReadFromSourceFile := LANGhuCannotReadFromSourceFile; LANGCannotWriteToDestinationFile := LANGhuCannotWriteToDestinationFile; LANGUnknownException := LANGhuUnknownException; LANGNoAccess := LANGhuNoAccess; LANGUnknownError := LANGhuUnknownError; LANGCreateANewDirectory := LANGhuCreateANewDirectory; LANGEnterDirectoryName := LANGhuEnterDirectoryName; LANGOverwriteQuestion := LANGhuOverwriteQuestion; LANGOverwriteButton_Caption := LANGhuOverwriteButton_Caption; LANGOverwriteAllButton_Caption := LANGhuOverwriteAllButton_Caption; LANGSkipButton_Caption := LANGhuSkipButton_Caption; LANGOverwriteAllOlderButton_Caption := LANGhuOverwriteAllOlderButton_Caption; LANGSkipAllButton_Caption := LANGhuSkipAllButton_Caption; LANGRenameButton_Caption := LANGhuRenameButton_Caption; LANGAppendButton_Caption := LANGhuAppendButton_Caption; LANGRename := LANGhuRename; LANGRenameFile := LANGhuRenameFile; LANGIgnoreButton_Caption := LANGhuIgnoreButton_Caption; LANGProgress := LANGhuProgress; LANGCancel := LANGhuCancel; LANGDelete := LANGhuDelete; LANGSpecifyFileType := LANGhuSpecifyFileType; LANGRemoveDirectory := LANGhuRemoveDirectory; LANGDoYouWantToDeleteItWithAllItsFilesAndSubdirectories := LANGhuDoYouWantToDeleteItWithAllItsFilesAndSubdirectories; LANGRetry := LANGhuRetry; LANGDeleteButton_Caption := LANGhuDeleteButton_Caption; LANGAll := LANGhuAll; LANGCopyFilesSC := LANGhuCopyFilesSC; LANGAppendQuestion := LANGhuAppendQuestion; LANGPreparingList := LANGhuPreparingList; LANGYouMustSelectAValidFile := LANGhuYouMustSelectAValidFile; LANGmiVerifyChecksums := LANGhumiVerifyChecksums; LANGVerifyChecksumsCaption := LANGhuVerifyChecksumsCaption; LANGCheckButtonCaptionCheck := LANGhuCheckButtonCaptionCheck; LANGCheckButtonCaptionStop := LANGhuCheckButtonCaptionStop; LANGFileListTooltip := LANGhuFileListTooltip; LANGFilenameColumnCaption := LANGhuFilenameColumnCaption; LANGTheFileSYouAreTryingToOpenIsQuiteBig := LANGhuTheFileSYouAreTryingToOpenIsQuiteBig; LANGAnErrorOccuredWhileInitializingMemoryBlock := LANGhuAnErrorOccuredWhileInitializingMemoryBlock; LANGAnErrorOccuredWhileOpeningFileSS := LANGhuAnErrorOccuredWhileOpeningFileSS; LANGAnErrorOccuredWhileReadingFileSS := LANGhuAnErrorOccuredWhileReadingFileSS; LANGChecksumNotChecked := LANGhuChecksumNotChecked; LANGChecksumChecking := LANGhuChecksumChecking; LANGChecksumInterrupted := LANGhuChecksumInterrupted; LANGChecksumDOK := LANGhuChecksumDOK; LANGmiCreateChecksumsCaption := LANGhumiCreateChecksumsCaption; LANGYouMustSelectAtLeastOneFileToCalculateChecksum := LANGhuYouMustSelectAtLeastOneFileToCalculateChecksum; LANGCreateChecksumsCaption := LANGhuCreateChecksumsCaption; LANGCCHKSUMPage1Text := LANGhuCCHKSUMPage1Text; LANGCCHKSUMPage4Text := LANGhuCCHKSUMPage4Text; LANGCCHKSUMPage6Text := LANGhuCCHKSUMPage6Text; LANGCCHKSUMPage7Text := LANGhuCCHKSUMPage7Text; LANGCCHKSUMPage1Title := LANGhuCCHKSUMPage1Title; LANGCCHKSUMPage2Title := LANGhuCCHKSUMPage2Title; LANGCCHKSUMPage3Title := LANGhuCCHKSUMPage3Title; LANGCCHKSUMPage4Title := LANGhuCCHKSUMPage4Title; LANGCCHKSUMPage5Title := LANGhuCCHKSUMPage5Title; LANGCCHKSUMPage6Title := LANGhuCCHKSUMPage6Title; LANGCCHKSUMPage7Title := LANGhuCCHKSUMPage7Title; LANGCCHKSUMSFVFile := LANGhuCCHKSUMSFVFile; LANGCCHKSUMMD5sumFile := LANGhuCCHKSUMMD5sumFile; LANGCCHKSUMFileName := LANGhuCCHKSUMFileName; LANGCCHKSUMCreateSeparateChecksumFiles := LANGhuCCHKSUMCreateSeparateChecksumFiles; LANGCCHKSUMNowProcessingFileS := LANGhuCCHKSUMNowProcessingFileS; LANGCCHKSUMFinishCaption := LANGhuCCHKSUMFinishCaption; LANGCCHKSUMAreYouSureYouWantToAbortTheProcessing := LANGhuCCHKSUMAreYouSureYouWantToAbortTheProcessing; LANGCCHKSUMAnErrorOccuredWhileOpeningFileSS := LANGhuCCHKSUMAnErrorOccuredWhileOpeningFileSS; LANGCCHKSUMAnErrorOccuredWhileReadingFileSS := LANGhuCCHKSUMAnErrorOccuredWhileReadingFileSS; LANGCCHKSUMAnErrorOccuredWhileWritingFileSS := LANGhuCCHKSUMAnErrorOccuredWhileWritingFileSS; LANGAnErrorOccuredWhileWritingFileSS := LANGhuAnErrorOccuredWhileWritingFileSS; LANGTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt := LANGhuTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt; LANGTheTargetFileSCannotBeRemovedS := LANGhuTheTargetFileSCannotBeRemovedS; LANGMergeCaption := LANGhuMergeCaption; LANGPleaseInsertNextDiskOrGiveDifferentLocation := LANGhuPleaseInsertNextDiskOrGiveDifferentLocation; LANGMergeOfSSucceeded := LANGhuMergeOfSSucceeded; LANGWarningCreatedFileFailsCRCCheck := LANGhuWarningCreatedFileFailsCRCCheck; LANGMergeOfSSucceeded_NoCRCFileAvailable := LANGhuMergeOfSSucceeded_NoCRCFileAvailable; LANGMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory := LANGhuMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory; LANGMergeSC := LANGhuMergeSC; LANGmiSplitFileCaption := LANGhumiSplitFileCaption; LANGmiMergeFilesCaption := LANGhumiMergeFilesCaption; LANGSplitTheFileSToDirectory := LANGhuSplitTheFileSToDirectory; LANGSplitSC := LANGhuSplitSC; LANGSplitFile := LANGhuSplitFile; LANGBytesPerFile := LANGhuBytesPerFile; LANGAutomatic := LANGhuAutomatic; LANGDeleteFilesOnTargetDisk := LANGhuDeleteFilesOnTargetDisk; LANGSplitCaption := LANGhuSplitCaption; LANGCannotOpenFileS := LANGhuCannotOpenFileS; LANGCannotSplitTheFileToMoreThan999Parts := LANGhuCannotSplitTheFileToMoreThan999Parts; LANGThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem := LANGhuThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem; LANGThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem := LANGhuThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem; LANGAnErrorOccuredWhileOperationS := LANGhuAnErrorOccuredWhileOperationS; LANGSplitOfSSucceeded := LANGhuSplitOfSSucceeded; LANGSplitOfSFailed := LANGhuSplitOfSFailed; LANGmnuShow_Caption := LANGhumnuShow_Caption; LANGmiShowDotFiles_Caption := LANGhumiShowDotFiles_Caption; LANGTheFileYouAreTryingToOpenIsQuiteBig := LANGhuTheFileYouAreTryingToOpenIsQuiteBig; LANGCannotExecuteSPleaseCheckTheConfiguration := LANGhuCannotExecuteSPleaseCheckTheConfiguration; LANGEdit := LANGhuEdit; LANGEnterFilenameToEdit := LANGhuEnterFilenameToEdit; LANGmnuSettings_Caption := LANGhumnuSettings_Caption; LANGmiFileTypes_Caption := LANGhumiFileTypes_Caption; LANGThereIsNoApplicationAssociatedWithS := LANGhuThereIsNoApplicationAssociatedWithS; LANGErrorExecutingCommand := LANGhuErrorExecutingCommand; LANGEditFileTypesCaption := LANGhuEditFileTypesCaption; LANGTitleLabel_Caption := LANGhuTitleLabel_Caption; LANGExtensionsColumn := LANGhuExtensionsColumn; LANGDescriptionColumn := LANGhuDescriptionColumn; LANGFileTypesList := LANGhuFileTypesList; LANGActionName := LANGhuActionName; LANGCommand := LANGhuCommand; LANGSetDefaultActionButton_Caption := LANGhuSetDefaultActionButton_Caption; LANGRunInTerminalCheckBox_Caption := LANGhuRunInTerminalCheckBox_Caption; LANGAutodetectCheckBox_Caption := LANGhuAutodetectCheckBox_Caption; LANGBrowseButton_Caption := LANGhuBrowseButton_Caption; LANGCommandLabel_Caption := LANGhuCommandLabel_Caption; LANGDescriptionLabel_Caption := LANGhuDescriptionLabel_Caption; LANGFNameExtLabel_Caption := LANGhuFNameExtLabel_Caption; LANGNotebookPageExtensions := LANGhuNotebookPageExtensions; LANGNotebookPageActions := LANGhuNotebookPageActions; LANGDefault := LANGhuDefault; LANGCannotSaveFileTypeAssociationsBecauseOtherProcess := LANGhuCannotSaveFileTypeAssociationsBecauseOtherProcess; LANGDefaultColor := LANGhuDefaultColor; LANGIcon := LANGhuIcon; LANGBrowseForIcon := LANGhuBrowseForIcon; LANGSelectFileTypeColor := LANGhuSelectFileTypeColor; LANGColor := LANGhuColor; LANGmiChangePermissions_Caption := LANGhumiChangePermissions_Caption; LANGmiChangeOwner_Caption := LANGhumiChangeOwner_Caption; LANGmiCreateSymlink_Caption := LANGhumiCreateSymlink_Caption; LANGmiEditSymlink_Caption := LANGhumiEditSymlink_Caption; LANGChmodProgress := LANGhuChmodProgress; LANGChownProgress := LANGhuChownProgress; LANGYouMustSelectAValidSymbolicLink := LANGhuYouMustSelectAValidSymbolicLink; LANGPopupRunS := LANGhuPopupRunS; LANGPopupOpenS := LANGhuPopupOpenS; LANGPopupGoUp := LANGhuPopupGoUp; LANGPopupOpenWithS := LANGhuPopupOpenWithS; LANGPopupDefault := LANGhuPopupDefault; LANGPopupOpenWith := LANGhuPopupOpenWith; LANGPopupViewFile := LANGhuPopupViewFile; LANGPopupEditFile := LANGhuPopupEditFile; LANGPopupMakeSymlink := LANGhuPopupMakeSymlink; LANGPopupRename := LANGhuPopupRename; LANGPopupDelete := LANGhuPopupDelete; LANGDialogChangePermissions := LANGhuDialogChangePermissions; LANGCouldNotBeChmoddedS := LANGhuCouldNotBeChmoddedS; LANGDialogChangeOwner := LANGhuDialogChangeOwner; LANGCouldNotBeChownedS := LANGhuCouldNotBeChownedS; LANGDialogMakeSymlink := LANGhuDialogMakeSymlink; LANGDialogEditSymlink := LANGhuDialogEditSymlink; LANGFEditSymlink_Caption := LANGhuFEditSymlink_Caption; LANGFEditSymlink_SymbolicLinkFilename := LANGhuFEditSymlink_SymbolicLinkFilename; LANGFEditSymlink_SymbolicLinkPointsTo := LANGhuFEditSymlink_SymbolicLinkPointsTo; LANGFChmod_Caption := LANGhuFChmod_Caption; LANGFChmod_PermissionFrame := LANGhuFChmod_PermissionFrame; LANGFChmod_FileFrame := LANGhuFChmod_FileFrame; LANGFChmod_ApplyRecursivelyFor := LANGhuFChmod_ApplyRecursivelyFor; LANGFChmod_miAllFiles := LANGhuFChmod_miAllFiles; LANGFChmod_miDirectories := LANGhuFChmod_miDirectories; LANGFChmod_OctalLabel := LANGhuFChmod_OctalLabel; LANGFChmod_SUID := LANGhuFChmod_SUID; LANGFChmod_SGID := LANGhuFChmod_SGID; LANGFChmod_Sticky := LANGhuFChmod_Sticky; LANGFChmod_RUSR := LANGhuFChmod_RUSR; LANGFChmod_WUSR := LANGhuFChmod_WUSR; LANGFChmod_XUSR := LANGhuFChmod_XUSR; LANGFChmod_RGRP := LANGhuFChmod_RGRP; LANGFChmod_WGRP := LANGhuFChmod_WGRP; LANGFChmod_XGRP := LANGhuFChmod_XGRP; LANGFChmod_ROTH := LANGhuFChmod_ROTH; LANGFChmod_WOTH := LANGhuFChmod_WOTH; LANGFChmod_XOTH := LANGhuFChmod_XOTH; LANGFChmod_TextLabel := LANGhuFChmod_TextLabel; LANGFChmod_FileLabel := LANGhuFChmod_FileLabel; LANGFChown_Caption := LANGhuFChown_Caption; LANGFChown_OwnerFrame := LANGhuFChown_OwnerFrame; LANGFChown_GroupFrame := LANGhuFChown_GroupFrame; LANGFChown_FileFrame := LANGhuFChown_FileFrame; LANGFChown_ApplyRecursively := LANGhuFChown_ApplyRecursively; LANGFSymlink_Caption := LANGhuFSymlink_Caption; LANGFSymlink_ExistingFilename := LANGhuFSymlink_ExistingFilename; LANGFSymlink_SymlinkFilename := LANGhuFSymlink_SymlinkFilename; LANGmnuBookmarks_Caption := LANGhumnuBookmarks_Caption; LANGmiAddBookmark_Caption := LANGhumiAddBookmark_Caption; LANGmiEditBookmarks_Caption := LANGhumiEditBookmarks_Caption; LANGBookmarkPopupDelete_Caption := LANGhuBookmarkPopupDelete_Caption; LANGmiPreferences_Caption := LANGhumiPreferences_Caption; LANGTheCurrentDirectoryAlreadyExistsInTheBookmarksList := LANGhuTheCurrentDirectoryAlreadyExistsInTheBookmarksList; LANGSomeOtherInstanceChanged := LANGhuSomeOtherInstanceChanged; LANGPreferences_Caption := LANGhuPreferences_Caption; LANGPreferences_TitleLabel_Caption := LANGhuPreferences_TitleLabel_Caption; LANGPreferences_GeneralPage := LANGhuPreferences_GeneralPage; LANGPreferences_FontsPage := LANGhuPreferences_FontsPage; LANGPreferences_ColorsPage := LANGhuPreferences_ColorsPage; LANGPreferences_RowHeight := LANGhuPreferences_RowHeight; LANGPreferences_NumHistoryItems := LANGhuPreferences_NumHistoryItems; LANGPreferences_Default := LANGhuPreferences_Default; LANGPreferences_ClearReadonlyAttribute := LANGhuPreferences_ClearReadonlyAttribute; LANGPreferences_DisableMouseRenaming := LANGhuPreferences_DisableMouseRenaming; LANGPreferences_ShowFiletypeIconsInList := LANGhuPreferences_ShowFiletypeIconsInList; LANGPreferences_ExternalAppsLabel := LANGhuPreferences_ExternalAppsLabel; LANGPreferences_Viewer := LANGhuPreferences_Viewer; LANGPreferences_Editor := LANGhuPreferences_Editor; LANGPreferences_Terminal := LANGhuPreferences_Terminal; LANGPreferences_ListFont := LANGhuPreferences_ListFont; LANGPreferences_Change := LANGhuPreferences_Change; LANGPreferences_UseDefaultFont := LANGhuPreferences_UseDefaultFont; LANGPreferences_Foreground := LANGhuPreferences_Foreground; LANGPreferences_Background := LANGhuPreferences_Background; LANGPreferences_NormalItem := LANGhuPreferences_NormalItem; LANGPreferences_SetToDefaultToUseGTKThemeColors := LANGhuPreferences_SetToDefaultToUseGTKThemeColors; LANGPreferences_Cursor := LANGhuPreferences_Cursor; LANGPreferences_InactiveItem := LANGhuPreferences_InactiveItem; LANGPreferences_SelectedItem := LANGhuPreferences_SelectedItem; LANGPreferences_LinkItem := LANGhuPreferences_LinkItem; LANGPreferences_LinkItemHint := LANGhuPreferences_LinkItemHint; LANGPreferences_DotFileItem := LANGhuPreferences_DotFileItem; LANGPreferences_DotFileItemHint := LANGhuPreferences_DotFileItemHint; LANGPreferences_BrowseForApplication := LANGhuPreferences_BrowseForApplication; LANGPreferences_DefaultS := LANGhuPreferences_DefaultS; LANGPreferences_SelectFont := LANGhuPreferences_SelectFont; LANGBookmarkButton_Tooltip := LANGhuBookmarkButton_Tooltip; LANGUpButton_Tooltip := LANGhuUpButton_Tooltip; LANGRootButton_Tooltip := LANGhuRootButton_Tooltip; LANGHomeButton_Tooltip := LANGhuHomeButton_Tooltip; LANGLeftEqualButton_Tooltip := LANGhuLeftEqualButton_Tooltip; LANGRightEqualButton_Tooltip := LANGhuRightEqualButton_Tooltip; LANGmiShowDirectorySizes_Caption := LANGhumiShowDirectorySizes_Caption; LANGmiTargetSource_Caption := LANGhumiTargetSource_Caption; LANGFileTypeDirectory := LANGhuFileTypeDirectory; LANGFileTypeFile := LANGhuFileTypeFile; LANGFileTypeMetafile := LANGhuFileTypeMetafile; LANGPreferencesPanelsPage := LANGhuPreferencesPanelsPage; LANGPreferencesApplicationsPage := LANGhuPreferencesApplicationsPage; LANGPreferencesExperimentalPage := LANGhuPreferencesExperimentalPage; LANGPreferencesSelectAllDirectoriesCheckBox_Caption := LANGhuPreferencesSelectAllDirectoriesCheckBox_Caption; LANGPreferencesNewStyleAltOCheckBox_Caption := LANGhuPreferencesNewStyleAltOCheckBox_Caption; LANGPreferencesNewStyleAltOCheckBox_Tooltip := LANGhuPreferencesNewStyleAltOCheckBox_Tooltip; LANGPreferencesShowFuncButtonsCheckBox_Caption := LANGhuPreferencesShowFuncButtonsCheckBox_Caption; LANGPreferencesSizeFormatLabel_Caption := LANGhuPreferencesSizeFormatLabel_Caption; LANGPreferencesmiSizeFormat1 := LANGhuPreferencesmiSizeFormat1; LANGPreferencesmiSizeFormat6 := LANGhuPreferencesmiSizeFormat6; LANGPreferencesAutodetectXApp := LANGhuPreferencesAutodetectXApp; LANGPreferencesAlwaysRunInTerminal := LANGhuPreferencesAlwaysRunInTerminal; LANGPreferencesNeverRunInTerminal := LANGhuPreferencesNeverRunInTerminal; LANGPreferencesCmdLineBehaviourLabel_Caption := LANGhuPreferencesCmdLineBehaviourLabel_Caption; LANGPreferencesFeatures := LANGhuPreferencesFeatures; LANGPreferencesDisableMouseRename_Tooltip := LANGhuPreferencesDisableMouseRename_Tooltip; LANGPreferencesDisableFileTipsCheckBox_Caption := LANGhuPreferencesDisableFileTipsCheckBox_Caption; LANGPreferencesDisableFileTipsCheckBox_Tooltip := LANGhuPreferencesDisableFileTipsCheckBox_Tooltip; LANGPreferencesShow := LANGhuPreferencesShow; LANGPreferencesDirsInBoldCheckBox_Caption := LANGhuPreferencesDirsInBoldCheckBox_Caption; LANGPreferencesDisableDirectoryBracketsCheckBox_Caption := LANGhuPreferencesDisableDirectoryBracketsCheckBox_Caption; LANGPreferencesOctalPermissionsCheckBox_Caption := LANGhuPreferencesOctalPermissionsCheckBox_Caption; LANGPreferencesOctalPermissionsCheckBox_Tooltip := LANGhuPreferencesOctalPermissionsCheckBox_Tooltip; LANGPreferencesMovement := LANGhuPreferencesMovement; LANGPreferencesLynxLikeMotionCheckBox_Caption := LANGhuPreferencesLynxLikeMotionCheckBox_Caption; LANGPreferencesInsertMovesDownCheckBox_Caption := LANGhuPreferencesInsertMovesDownCheckBox_Caption; LANGPreferencesSpaceMovesDownCheckBox_Caption := LANGhuPreferencesSpaceMovesDownCheckBox_Caption; LANGPreferencesViewer := LANGhuPreferencesViewer; LANGPreferencesCommandSC := LANGhuPreferencesCommandSC; LANGPreferencesUseInternalViewer := LANGhuPreferencesUseInternalViewer; LANGPreferencesEditor := LANGhuPreferencesEditor; LANGPreferencesTerminal := LANGhuPreferencesTerminal; LANGPreferencesExperimentalFeatures := LANGhuPreferencesExperimentalFeatures; LANGPreferencesExperimentalWarningLabel_Caption := LANGhuPreferencesExperimentalWarningLabel_Caption; LANGPreferencesFocusRefreshCheckBox_Caption := LANGhuPreferencesFocusRefreshCheckBox_Caption; LANGPreferencesFocusRefreshCheckBox_Tooltip := LANGhuPreferencesFocusRefreshCheckBox_Tooltip; LANGPreferencesWMCompatModeCheckBox_Caption := LANGhuPreferencesWMCompatModeCheckBox_Caption; LANGPreferencesWMCompatModeCheckBox_Tooltip := LANGhuPreferencesWMCompatModeCheckBox_Tooltip; LANGPreferencesCompatUseLibcSystemCheckBox_Caption := LANGhuPreferencesCompatUseLibcSystemCheckBox_Caption; LANGPreferencesCompatUseLibcSystemCheckBox_Tooltip := LANGhuPreferencesCompatUseLibcSystemCheckBox_Tooltip; LANGmiSearchCaption2 := LANGhumiSearchCaption2; LANGmiNoMounterBarCaption := LANGhumiNoMounterBarCaption; LANGmiShowOneMounterBarCaption := LANGhumiShowOneMounterBarCaption; LANGmiShowTwoMounterBarCaption := LANGhumiShowTwoMounterBarCaption; LANGmnuNetworkCaption := LANGhumnuNetworkCaption; LANGmiConnectionsCaption := LANGhumiConnectionsCaption; LANGmiOpenConnectionCaption := LANGhumiOpenConnectionCaption; LANGmiQuickConnectCaption := LANGhumiQuickConnectCaption; LANGmnuPluginsCaption := LANGhumnuPluginsCaption; LANGmiTestPluginCaption := LANGhumiTestPluginCaption; LANGmiMounterSettingsCaption := LANGhumiMounterSettingsCaption; LANGmiColumnsCaption := LANGhumiColumnsCaption; LANGmiSavePositionCaption := LANGhumiSavePositionCaption; LANGmiMountCaption := LANGhumiMountCaption; LANGmiUmountCaption := LANGhumiUmountCaption; LANGmiEjectCaption := LANGhumiEjectCaption; LANGmiDuplicateTabCaption := LANGhumiDuplicateTabCaption; LANGmiCloseTabCaption := LANGhumiCloseTabCaption; LANGmiCloseAllTabsCaption := LANGhumiCloseAllTabsCaption; LANGCannotDetermineDestinationEngine := LANGhuCannotDetermineDestinationEngine; LANGCannotLoadFile := LANGhuCannotLoadFile; LANGMountPointDevice := LANGhuMountPointDevice; LANGMountSC := LANGhuMountSC; LANGNoPluginsFound := LANGhuNoPluginsFound; LANGPluginAbout := LANGhuPluginAbout; LANGCouldntOpenURI := LANGhuCouldntOpenURI; LANGPluginAboutInside := LANGhuPluginAboutInside; LANGAreYouSureCloseAllTabs := LANGhuAreYouSureCloseAllTabs; LANGCouldntOpenURIArchive := LANGhuCouldntOpenURIArchive; LANGThereIsNoModuleAvailable := LANGhuThereIsNoModuleAvailable; LANGIgnoreError := LANGhuIgnoreError; LANGErrorMount := LANGhuErrorMount; LANGErrorUmount := LANGhuErrorUmount; LANGErrorEject := LANGhuErrorEject; LANGMounterPrefs_Caption := LANGhuMounterPrefs_Caption; LANGMounterPrefs_TitleLabelCaption := LANGhuMounterPrefs_TitleLabelCaption; LANGMounterPrefs_ListViewFrameCaption := LANGhuMounterPrefs_ListViewFrameCaption; LANGMounterPrefs_MountName := LANGhuMounterPrefs_MountName; LANGMounterPrefs_MountPoint := LANGhuMounterPrefs_MountPoint; LANGMounterPrefs_Device := LANGhuMounterPrefs_Device; LANGMounterPrefs_MoveUpButtonTooltip := LANGhuMounterPrefs_MoveUpButtonTooltip; LANGMounterPrefs_MoveDownButtonTooltip := LANGhuMounterPrefs_MoveDownButtonTooltip; LANGMounterPrefs_UseFSTabDefaultsCheckBox := LANGhuMounterPrefs_UseFSTabDefaultsCheckBox; LANGMounterPrefs_UseFSTabDefaultsCheckBoxTooltip := LANGhuMounterPrefs_UseFSTabDefaultsCheckBoxTooltip; LANGMounterPrefs_ToggleModeCheckBox := LANGhuMounterPrefs_ToggleModeCheckBox; LANGMounterPrefs_ToggleModeCheckBoxTooltip := LANGhuMounterPrefs_ToggleModeCheckBoxTooltip; LANGMounterPrefs_PropertiesFrameCaption := LANGhuMounterPrefs_PropertiesFrameCaption; LANGMounterPrefs_DisplayTextLabelCaption := LANGhuMounterPrefs_DisplayTextLabelCaption; LANGMounterPrefs_MountPointLabelCaption := LANGhuMounterPrefs_MountPointLabelCaption; LANGMounterPrefs_MountDeviceLabelCaption := LANGhuMounterPrefs_MountDeviceLabelCaption; LANGMounterPrefs_DeviceTypeLabelCaption := LANGhuMounterPrefs_DeviceTypeLabelCaption; LANGMounterPrefs_miLocalDiskCaption := LANGhuMounterPrefs_miLocalDiskCaption; LANGMounterPrefs_miRemovableCaption := LANGhuMounterPrefs_miRemovableCaption; LANGMounterPrefs_miCDCaption := LANGhuMounterPrefs_miCDCaption; LANGMounterPrefs_miFloppyCaption := LANGhuMounterPrefs_miFloppyCaption; LANGMounterPrefs_miNetworkCaption := LANGhuMounterPrefs_miNetworkCaption; LANGMounterPrefs_MountCommandLabelCaption := LANGhuMounterPrefs_MountCommandLabelCaption; LANGMounterPrefs_UmountCommandLabelCaption := LANGhuMounterPrefs_UmountCommandLabelCaption; LANGMounterPrefs_MountCommandEntryTooltip := LANGhuMounterPrefs_MountCommandEntryTooltip; LANGMounterPrefs_UmountCommandEntryTooltip := LANGhuMounterPrefs_UmountCommandEntryTooltip; LANGMounterPrefs_IconLabelCaption := LANGhuMounterPrefs_IconLabelCaption; LANGConnMgr_Caption := LANGhuConnMgr_Caption; LANGConnMgr_ConnectButton := LANGhuConnMgr_ConnectButton; LANGConnMgr_OpenConnection := LANGhuConnMgr_OpenConnection; LANGConnMgr_NameColumn := LANGhuConnMgr_NameColumn; LANGConnMgr_URIColumn := LANGhuConnMgr_URIColumn; LANGConnMgr_AddConnectionButtonCaption := LANGhuConnMgr_AddConnectionButtonCaption; LANGConnMgr_AddConnectionButtonTooltip := LANGhuConnMgr_AddConnectionButtonTooltip; LANGConnMgr_EditButtonCaption := LANGhuConnMgr_EditButtonCaption; LANGConnMgr_EditButtonTooltip := LANGhuConnMgr_EditButtonTooltip; LANGConnMgr_RemoveButtonCaption := LANGhuConnMgr_RemoveButtonCaption; LANGConnMgr_RemoveButtonTooltip := LANGhuConnMgr_RemoveButtonTooltip; LANGConnMgr_DoYouWantDelete := LANGhuConnMgr_DoYouWantDelete; LANGConnProp_FTP := LANGhuConnProp_FTP; LANGConnProp_SFTP := LANGhuConnProp_SFTP; LANGConnProp_SMB := LANGhuConnProp_SMB; LANGConnProp_HTTP := LANGhuConnProp_HTTP; LANGConnProp_HTTPS := LANGhuConnProp_HTTPS; LANGConnProp_Other := LANGhuConnProp_Other; LANGConnProp_Caption := LANGhuConnProp_Caption; LANGConnProp_VFSModule := LANGhuConnProp_VFSModule; LANGConnProp_URI := LANGhuConnProp_URI; LANGConnProp_URIEntryTooltip := LANGhuConnProp_URIEntryTooltip; LANGConnProp_DetailedInformations := LANGhuConnProp_DetailedInformations; LANGConnProp_Name := LANGhuConnProp_Name; LANGConnProp_Server := LANGhuConnProp_Server; LANGConnProp_Username := LANGhuConnProp_Username; LANGConnProp_UserNameEntryTooltip := LANGhuConnProp_UserNameEntryTooltip; LANGConnProp_Password := LANGhuConnProp_Password; LANGConnProp_TargetDirectory := LANGhuConnProp_TargetDirectory; LANGConnProp_ServiceType := LANGhuConnProp_ServiceType; LANGConnProp_MaskPassword := LANGhuConnProp_MaskPassword; LANGConnProp_MenuItemCaption := LANGhuConnProp_MenuItemCaption; LANGConnLogin_Caption := LANGhuConnLogin_Caption; LANGConnLogin_Login := LANGhuConnLogin_Login; LANGConnLogin_ExperimentalWarningLabelCaption := LANGhuConnLogin_ExperimentalWarningLabelCaption; LANGConnLogin_Username := LANGhuConnLogin_Username; LANGConnLogin_Password := LANGhuConnLogin_Password; LANGConnLogin_AnonymousCheckButton := LANGhuConnLogin_AnonymousCheckButton; LANGColumns_Caption := LANGhuColumns_Caption; LANGColumns_Title := LANGhuColumns_Title; LANGColumns_MoveUpButtonTooltip := LANGhuColumns_MoveUpButtonTooltip; LANGColumns_MoveDownButtonTooltip := LANGhuColumns_MoveDownButtonTooltip; LANGColumns_TitlesLongName := LANGhuColumns_TitlesLongName; LANGColumns_TitlesLongNameExt := LANGhuColumns_TitlesLongNameExt; LANGColumns_TitlesLongExt := LANGhuColumns_TitlesLongExt; LANGColumns_TitlesLongSize := LANGhuColumns_TitlesLongSize; LANGColumns_TitlesLongDateTime := LANGhuColumns_TitlesLongDateTime; LANGColumns_TitlesLongDate := LANGhuColumns_TitlesLongDate; LANGColumns_TitlesLongTime := LANGhuColumns_TitlesLongTime; LANGColumns_TitlesLongUser := LANGhuColumns_TitlesLongUser; LANGColumns_TitlesLongGroup := LANGhuColumns_TitlesLongGroup; LANGColumns_TitlesLongAttr := LANGhuColumns_TitlesLongAttr; LANGColumns_TitlesShortName := LANGhuColumns_TitlesShortName; LANGColumns_TitlesShortNameExt := LANGhuColumns_TitlesShortNameExt; LANGColumns_TitlesShortExt := LANGhuColumns_TitlesShortExt; LANGColumns_TitlesShortSize := LANGhuColumns_TitlesShortSize; LANGColumns_TitlesShortDateTime := LANGhuColumns_TitlesShortDateTime; LANGColumns_TitlesShortDate := LANGhuColumns_TitlesShortDate; LANGColumns_TitlesShortTime := LANGhuColumns_TitlesShortTime; LANGColumns_TitlesShortUser := LANGhuColumns_TitlesShortUser; LANGColumns_TitlesShortGroup := LANGhuColumns_TitlesShortGroup; LANGColumns_TitlesShortAttr := LANGhuColumns_TitlesShortAttr; LANGTestPlugin_Caption := LANGhuTestPlugin_Caption; LANGTestPlugin_Title := LANGhuTestPlugin_Title; LANGTestPlugin_ExperimentalWarningLabelCaption := LANGhuTestPlugin_ExperimentalWarningLabelCaption; LANGTestPlugin_Plugin := LANGhuTestPlugin_Plugin; LANGTestPlugin_Command := LANGhuTestPlugin_Command; LANGTestPlugin_Username := LANGhuTestPlugin_Username; LANGTestPlugin_Password := LANGhuTestPlugin_Password; LANGTestPlugin_AnonymousCheckButton := LANGhuTestPlugin_AnonymousCheckButton; LANGTestPlugin_NoPluginsFound := LANGhuTestPlugin_NoPluginsFound; LANGRemoteWait_Caption := LANGhuRemoteWait_Caption; LANGRemoteWait_OperationInProgress := LANGhuRemoteWait_OperationInProgress; LANGRemoteWait_ItemsFound := LANGhuRemoteWait_ItemsFound; LANGSearch_Bytes := LANGhuSearch_Bytes; LANGSearch_kB := LANGhuSearch_kB; LANGSearch_MB := LANGhuSearch_MB; LANGSearch_days := LANGhuSearch_days; LANGSearch_weeks := LANGhuSearch_weeks; LANGSearch_months := LANGhuSearch_months; LANGSearch_years := LANGhuSearch_years; LANGSearch_Caption := LANGhuSearch_Caption; LANGSearch_General := LANGhuSearch_General; LANGSearch_Advanced := LANGhuSearch_Advanced; LANGSearch_SearchResults := LANGhuSearch_SearchResults; LANGSearch_SearchFor := LANGhuSearch_SearchFor; LANGSearch_FileMaskEntryTooltip := LANGhuSearch_FileMaskEntryTooltip; LANGSearch_SearchIn := LANGhuSearch_SearchIn; LANGSearch_SearchArchivesCheckButton := LANGhuSearch_SearchArchivesCheckButton; LANGSearch_FindText := LANGhuSearch_FindText; LANGSearch_FindTextEntryTooltip := LANGhuSearch_FindTextEntryTooltip; LANGSearch_CaseSensitiveCheckButton := LANGhuSearch_CaseSensitiveCheckButton; LANGSearch_StayCurrentFSCheckButton := LANGhuSearch_StayCurrentFSCheckButton; LANGSearch_CaseSensitiveMatchCheckButton := LANGhuSearch_CaseSensitiveMatchCheckButton; LANGSearch_Size := LANGhuSearch_Size; LANGSearch_Date := LANGhuSearch_Date; LANGSearch_BiggerThan := LANGhuSearch_BiggerThan; LANGSearch_SmallerThan := LANGhuSearch_SmallerThan; LANGSearch_ModifiedBetweenRadioButton := LANGhuSearch_ModifiedBetweenRadioButton; LANGSearch_NotModifiedAfterRadioButton := LANGhuSearch_NotModifiedAfterRadioButton; LANGSearch_ModifiedLastRadioButton := LANGhuSearch_ModifiedLastRadioButton; LANGSearch_ModifiedNotLastRadionButton := LANGhuSearch_ModifiedNotLastRadionButton; LANGSearch_ModifiedBetweenEntry1 := LANGhuSearch_ModifiedBetweenEntry1; LANGSearch_ViewButtonCaption := LANGhuSearch_ViewButtonCaption; LANGSearch_NewSearchButtonCaption := LANGhuSearch_NewSearchButtonCaption; LANGSearch_GoToFileButtonCaption := LANGhuSearch_GoToFileButtonCaption; LANGSearch_FeedToListboxButtonCaption := LANGhuSearch_FeedToListboxButtonCaption; LANGSearch_StatusSC := LANGhuSearch_StatusSC; LANGSearch_Ready := LANGhuSearch_Ready; LANGSearch_PreparingToSearch := LANGhuSearch_PreparingToSearch; LANGSearch_SearchInProgress := LANGhuSearch_SearchInProgress; LANGSearch_UserCancelled := LANGhuSearch_UserCancelled; LANGSearch_SearchFinished := LANGhuSearch_SearchFinished; LANGSearch_FilesFound := LANGhuSearch_FilesFound; LANGSearch_And := LANGhuSearch_And; LANGCloseOpenConnection := LANGhuCloseOpenConnection; LANGDuplicateTabWarning := LANGhuDuplicateTabWarning; LANGDontShowAgain := LANGhuDontShowAgain; LANGSwitchOtherPanelWarning := LANGhuSwitchOtherPanelWarning; LANGOpenConnectionsWarning := LANGhuOpenConnectionsWarning; LANGmiDisconnect_Caption := LANGhumiDisconnect_Caption; LANGDisconnectButton_Tooltip := LANGhuDisconnectButton_Tooltip; LANGLeaveArchiveButton_Tooltip := LANGhuLeaveArchiveButton_Tooltip; LANGOpenTerminalButton_Tooltip := LANGhuOpenTerminalButton_Tooltip; LANGOpenTerminalButton_Caption := LANGhuOpenTerminalButton_Caption; LANGShowTextUIDsCheckBox_Caption := LANGhuShowTextUIDsCheckBox_Caption; LANGShowTextUIDsCheckBox_Tooltip := LANGhuShowTextUIDsCheckBox_Tooltip; LANGmiNewTab_Caption := LANGhumiNewTab_Caption; LANGFilePopupMenu_Properties := LANGhuFilePopupMenu_Properties; LANGCommandEntry_Tooltip := LANGhuCommandEntry_Tooltip; LANGmiFiles_Caption := LANGhumiFiles_Caption; LANGPasswordButton_Tooltip := LANGhuPasswordButton_Tooltip; LANGHandleRunFromArchive_Bytes := LANGhuHandleRunFromArchive_Bytes; LANGHandleRunFromArchive_FileTypeDesc_Unknown := LANGhuHandleRunFromArchive_FileTypeDesc_Unknown; LANGHandleRunFromArchive_NotAssociated := LANGhuHandleRunFromArchive_NotAssociated; LANGHandleRunFromArchive_SelfExecutable := LANGhuHandleRunFromArchive_SelfExecutable; LANGHandleRunFromArchive_CouldntCreateTemporaryDirectory := LANGhuHandleRunFromArchive_CouldntCreateTemporaryDirectory; LANGFRunFromVFS_Caption := LANGhuFRunFromVFS_Caption; LANGFRunFromVFS_TitleLabel := LANGhuFRunFromVFS_TitleLabel; LANGFRunFromVFS_FileNameLabel := LANGhuFRunFromVFS_FileNameLabel; LANGFRunFromVFS_FileTypeLabel := LANGhuFRunFromVFS_FileTypeLabel; LANGFRunFromVFS_SizeLabel := LANGhuFRunFromVFS_SizeLabel; LANGFRunFromVFS_PackedSizeLabel := LANGhuFRunFromVFS_PackedSizeLabel; LANGFRunFromVFS_DateLabel := LANGhuFRunFromVFS_DateLabel; LANGFRunFromVFS_InfoLabel := LANGhuFRunFromVFS_InfoLabel; LANGFRunFromVFS_OpensWithLabel := LANGhuFRunFromVFS_OpensWithLabel; LANGFRunFromVFS_ExecuteButton := LANGhuFRunFromVFS_ExecuteButton; LANGFRunFromVFS_ExecuteAllButton := LANGhuFRunFromVFS_ExecuteAllButton; LANGFSetPassword_Caption := LANGhuFSetPassword_Caption; LANGFSetPassword_Label1_Caption := LANGhuFSetPassword_Label1_Caption; LANGFSetPassword_Label2_Caption := LANGhuFSetPassword_Label2_Caption; LANGFSetPassword_ShowPasswordCheckButton := LANGhuFSetPassword_ShowPasswordCheckButton; LANGCopyFileNamesToClipboard := LANGhuCopyFileNamesToClipboard; LANGCopyFullPathNamesToClipboard := LANGhuCopyFullPathNamesToClipboard; LANGCopyPathToClipboard := LANGhuCopyPathToClipboard; LANGPreferences_DateFormatLabel_Caption := LANGhuPreferences_DateFormatLabel_Caption; LANGPreferences_System := LANGhuPreferences_System; LANGPreferences_Custom := LANGhuPreferences_Custom; LANGPreferences_CustomDateFormatEntry_Tooltip := LANGhuPreferences_CustomDateFormatEntry_Tooltip; LANGPreferences_TimeFormatLabel_Caption := LANGhuPreferences_TimeFormatLabel_Caption; LANGPreferences_CustomTimeFormatEntry_Tooltip := LANGhuPreferences_CustomTimeFormatEntry_Tooltip; LANGPreferences_DateTimeFormatLabel_Caption := LANGhuPreferences_DateTimeFormatLabel_Caption; LANGPreferences_QuickRenameSkipExtCheckBox := LANGhuPreferences_QuickRenameSkipExtCheckBox; LANGPreferences_QuickRenameSkipExtCheckBox_Tooltip := LANGhuPreferences_QuickRenameSkipExtCheckBox_Tooltip; LANGPreferences_SortDirectoriesLikeFilesCheckBox := LANGhuPreferences_SortDirectoriesLikeFilesCheckBox; LANGPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip := LANGhuPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip; LANGPreferences_QuickSearchLabel_Caption := LANGhuPreferences_QuickSearchLabel_Caption; LANGPreferences_QuickSearchOptionMenu_Tooltip := LANGhuPreferences_QuickSearchOptionMenu_Tooltip; LANGPreferences_QuickSearch_Option1 := LANGhuPreferences_QuickSearch_Option1; LANGPreferences_QuickSearch_Option2 := LANGhuPreferences_QuickSearch_Option2; LANGPreferences_QuickSearch_Option3 := LANGhuPreferences_QuickSearch_Option3; LANGPreferences_QuickSearch_Option4 := LANGhuPreferences_QuickSearch_Option4; LANGPreferences_TempPathLabel_Caption := LANGhuPreferences_TempPathLabel_Caption; LANGPreferences_VFSTempPathLabel_Caption := LANGhuPreferences_VFSTempPathLabel_Caption; LANGPreferences_VFSTempPathEntry_Tooltip := LANGhuPreferences_VFSTempPathEntry_Tooltip; LANGPreferences_RightClickSelectCheckBox := LANGhuPreferences_RightClickSelectCheckBox; LANGPreferences_RightClickSelectCheckBox_Tooltip := LANGhuPreferences_RightClickSelectCheckBox_Tooltip; LANGGtkMountOperation_ConnectAnonymously := LANGhuGtkMountOperation_ConnectAnonymously; LANGGtkMountOperation_ConnectAsUser := LANGhuGtkMountOperation_ConnectAsUser; LANGGtkMountOperation_Username := LANGhuGtkMountOperation_Username; LANGGtkMountOperation_Domain := LANGhuGtkMountOperation_Domain; LANGGtkMountOperation_Password := LANGhuGtkMountOperation_Password; LANGGtkMountOperation_DoNotSavePassword := LANGhuGtkMountOperation_DoNotSavePassword; LANGGtkMountOperation_ForgetPasswordImmediately := LANGhuGtkMountOperation_ForgetPasswordImmediately; LANGGtkMountOperation_RememberPasswordUntilYouLogout := LANGhuGtkMountOperation_RememberPasswordUntilYouLogout; LANGGtkMountOperation_SavePasswordInConnectionManager := LANGhuGtkMountOperation_SavePasswordInConnectionManager; LANGGtkMountOperation_RememberForever := LANGhuGtkMountOperation_RememberForever; LANGFSymlink_RelativePath := LANGhuFSymlink_RelativePath; LANGFConnectionManager_DuplicateButton_Caption := LANGhuFConnectionManager_DuplicateButton_Caption; LANGFConnectionManager_DuplicateButton_Tooltip := LANGhuFConnectionManager_DuplicateButton_Tooltip; LANGFConnectionManager_DoNotSavePasswordsCheckBox_Label := LANGhuFConnectionManager_DoNotSavePasswordsCheckBox_Label; LANGFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip := LANGhuFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip; LANGFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label := LANGhuFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label; LANGFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip := LANGhuFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip; LANGFConnectionManager_DuplicateMenuItem_Caption := LANGhuFConnectionManager_DuplicateMenuItem_Caption; LANGFQuickConnect_Caption := LANGhuFQuickConnect_Caption; LANGFQuickConnect_TitleLabel_Caption := LANGhuFQuickConnect_TitleLabel_Caption; LANGFQuickConnect_ConnectToURILabel_Caption := LANGhuFQuickConnect_ConnectToURILabel_Caption; LANGLinkToS := LANGhuLinkToS; LANGOpenDirectoryInBackgroundTab := LANGhuOpenDirectoryInBackgroundTab; LANGTheActiveConnectionHasNotBeenSaved := LANGhuTheActiveConnectionHasNotBeenSaved; LANGTheArchiveIsEncryptedAndRequiresPassword := LANGhuTheArchiveIsEncryptedAndRequiresPassword; end; initialization AddTranslation('hu_HU', @SetTranslation); AddTranslation('HU', @SetTranslation); end. tuxcmd-0.6.70+dfsg/translations/UTranslation_DE.pas0000644000175000017500000025345411300022643021272 0ustar salvisalvi(* Tux Commander - UTranslation_DE - German Localization constants Copyright (C) 2008 Jürgen Schubert Copyright (C) 2004 Sven Laufersweiler 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UTranslation_DE; interface implementation uses ULocale; const LANGdeF2Button_Caption = 'F2 - Umbenennen'; LANGdeF3Button_Caption = 'F3 - Ansehen'; LANGdeF4Button_Caption = 'F4 - Bearbeiten'; LANGdeF5Button_Caption = 'F5 - Kopieren'; LANGdeF6Button_Caption = 'F6 - Verschieben'; LANGdeF7Button_Caption = 'F7 - Verz. erstellen'; LANGdeF8Button_Caption = 'F8 - Löschen'; LANGdemnuFile_Caption = '_Datei'; LANGdemnuMark_Caption = '_Markierung'; LANGdemnuCommands_Caption = '_Befehle'; LANGdemnuHelp_Caption = '_Hilfe'; LANGdemiExit_Caption = 'B_eenden'; LANGdemiSelectGroup_Caption = '_Gruppe auswählen...'; LANGdemiUnselectGroup_Caption = 'Gruppenauswahl _rückgängig...'; LANGdemiSelectAll_Caption = '_Alles auswählen'; LANGdemiUnselectAll_Caption = '_Keine Auswahl'; LANGdemiInvertSelection_Caption = 'Auswahl _umkehren'; LANGdemiRefresh_Caption = '_Aktualisieren'; LANGdemiAbout_Caption = 'Ü_ber...'; LANGdeColumn1_Caption = 'Name'; LANGdeColumn2_Caption = 'Erw.'; LANGdeColumn3_Caption = 'Größe'; LANGdeColumn4_Caption = 'Datum'; LANGdeColumn5_Caption = 'Attr'; LANGdeExpandSelection = 'Auswahl aufblättern'; LANGdeShrinkSelection = 'Auswahl zusammenschrumpfen'; LANGdeNoMatchesFound = 'Keine Übereinstimmung gefunden'; LANGdeNoFilesSelected = 'Keine Dateien ausgewählt!'; LANGdeSelectedFilesDirectories = '%d Dateien/Verzeichnisse ausgewählt'; LANGdeDirectoryS = 'Verzeichnis %s'; LANGdeFileS = 'Datei %s'; LANGdeDoYouReallyWantToDeleteTheS = 'Wollen Sie %s wirklich löschen?'; LANGdeDoYouReallyWantToDeleteTheSS = 'Wollen Sie %s wirklich löschen?'#10'%s'; LANGdeCopyFiles = 'Dateien kopieren'; LANGdeMoveRenameFiles = 'Dateien verschieben/umbenennen'; LANGdeCopyDFileDirectoriesTo = 'Kopiere %d Dateien/Verzeichnisse nach'; LANGdeMoveRenameDFileDirectoriesTo = 'Verschieben/Umbenennen von %d Dateien/Verzeichnissen nach'; LANGdeCopySC = 'Kopiere:'; LANGdeMoveRenameSC = 'Verschiebe/Umbenennen:'; LANGdeQuickFind = ' Schnellfinder:'; LANGdeAboutString = 'Tux Commander'#10'Version %s'#10'Erstellungsdatum: %s'#10#10'Copyright (c) 2008 Tomas Bzatek'#10'E-mail: tbzatek@users.sourceforge.net'#10'Website: http://tuxcmd.sourceforge.net/'; LANGdeAboutStringGnome = 'Version %s'#10'Erstellungsdatum: %s'#10'Website: http://tuxcmd.sourceforge.net/'; LANGdeDiskStatFmt = '%s von %s frei'; LANGdeDiskStatVolNameFmt = '[%s] %s von %s frei'; LANGdeStatusLineFmt = '%s von %s in %d von %d Dateien ausgewählt'; LANGdePanelStrings : array[boolean] of string = ('Rechts', 'Links'); LANGdeDIR = ''; LANGdeErrorGettingListingForSPanel = 'Fehler beim Erhalten der Auflistung für %s Feld:'#10' %s'#10#10'Pfad = ''%s'''; LANGdeErrorGettingListingForSPanelNoPath = 'Fehler beim Erhalten der Auflistung für %s Feld:'#10' %s'; LANGdeErrorCreatingNewDirectorySInSPanel = 'Fehler beim Erstellen des neuen Verzeichnisses ''%s'' in %s Feld:'#10' %s'; LANGdeErrorCreatingNewDirectorySInSPanelNoPath = 'Fehler beim Erstellen des neuen Verzeichnisses in %s Feld:'#10' %s'; LANGdeTheFileDirectory = 'Die Datei/Das Verzeichniss'; LANGdeCouldNotBeDeleted = 'kann nicht gelöscht werden'; LANGdeCouldNotBeDeletedS = 'Kann nicht gelöscht werden: %s'; LANGdeUserCancelled = 'Abbruch durch Benutzer!'; LANGdeTheDirectorySIsNotEmpty = 'Das Verzeichnis %s ist nicht leer!'; LANGdeCannotCopyFile = 'Kann Datei nicht kopieren'; LANGdeCopyError = 'Fehler beim kopieren'; LANGdeMoveError = 'Fehler beim verschieben'; LANGdeOverwriteS = 'Überschreibe: %s'; LANGdeWithFileS = 'mit Datei: %s'; LANGdeOvewriteSBytesS = '%s bytes, %s'; LANGdeTheFile = 'Die Datei'; LANGdeCopy = 'Kopieren'; LANGdeMove = 'Verschieben'; LANGdeTheDirectory = 'Das Verzeichnis'; LANGdeTheSymbolicLink = 'Der symbolische Link'; LANGdeCannotMoveFile = 'Kann Datei nicht verschieben'; LANGdeCouldNotBeCreated = 'kann nicht erstellt werden'; LANGdeCouldNotBeCreatedS = 'kann nicht erstellt werden: %s'; LANGdeFromS = 'Von: %s'; LANGdeToS = 'Nach: %s'; LANGdeCannotCopyFileToItself = 'Datei kann nicht auf sich selber kopiert werden'; LANGdeMemoryAllocationFailed = 'Speicherallozierung schlug fehl:'; LANGdeCannotOpenSourceFile = 'Kann Quelldatei nicht öffnen'; LANGdeCannotOpenDestinationFile = 'Kann Zieldatei nicht öffnen'; LANGdeCannotCloseDestinationFile = 'Kann Zieldatei nicht schließen'; LANGdeCannotCloseSourceFile = 'Kann Quelldateii nicht schließen'; LANGdeCannotReadFromSourceFile = 'Kann von Quelldatei nicht lesen'; LANGdeCannotWriteToDestinationFile = 'Kann nicht in Zieldatei schreiben'; LANGdeUnknownException = 'Unbekannter Ausnahmefehler'; LANGdeNoAccess = 'Kein Zugriff'; LANGdeUnknownError = 'Unbekannter Fehler'; LANGdeCreateANewDirectory = 'Erstelle neues Verzeichnis'; LANGdeEnterDirectoryName = 'Gebe _Verzeichnisnamen ein:'; LANGdeOverwriteQuestion = 'Überschreibe Frage'; LANGdeOverwriteButton_Caption = '_Überschreiben'; LANGdeOverwriteAllButton_Caption = 'Überschreibe _alles'; LANGdeSkipButton_Caption = '_Überspringe'; LANGdeOverwriteAllOlderButton_Caption = 'Überschreibe alles _was älter'; LANGdeSkipAllButton_Caption = 'Ü_berspringe alles'; LANGdeRenameButton_Caption = '_Umbenennen'; LANGdeAppendButton_Caption = 'A_nhängen'; LANGdeRename = 'Umbenennen'; LANGdeRenameFile = 'Datei ''%s'' umbenennen nach'; LANGdeIgnoreButton_Caption = '_Ignorieren'; LANGdeProgress = 'Fortschritt'; LANGdeCancel = '_Abbruch'; LANGdeDelete = 'Lösche:'; LANGdeSpecifyFileType = '_Spezifiziere Dateityp:'; LANGdeRemoveDirectory = 'Verschiebe Verzeichnis'; LANGdeDoYouWantToDeleteItWithAllItsFilesAndSubdirectories = 'Wollen Sie es mit allen Datei und Unterverzeichnissen löschen?'; LANGdeRetry = '_Wiederholen'; LANGdeDeleteButton_Caption = '_Löschen'; LANGdeAll = '_Alles'; LANGdeCopyFilesSC = 'Dateien kopieren:'; LANGdeAppendQuestion = 'Sind Sie sicher, daß Sie die Datei ''%s'' an Datei ''%s'' anhängen wollen?'; LANGdePreparingList = 'Bereite Liste vor...'; LANGdeYouMustSelectAValidFile = 'Sie müssen ein gültige Datei auswählen!'; LANGdemiVerifyChecksums = '_Prüfe Checksumme'; LANGdeVerifyChecksumsCaption = 'Prüfe Checksumme'; LANGdeCheckButtonCaptionCheck = '_Prüfen'; LANGdeCheckButtonCaptionStop = '_Stop'; LANGdeFileListTooltip = '[?] - Nicht kontrolliert'#10'[OK] Checksumme richtig'#10'[BAD] - Checksumme falsch'#10'[N/A] Datei nicht verfügbar'; LANGdeFilenameColumnCaption = 'Dateiname'; LANGdeTheFileSYouAreTryingToOpenIsQuiteBig = 'Die Datei ''%s'', die Sie versuchen zu öffnen ist zu groß. Es kann möglicherweise eine ungültige Prüfsummendatei sein.'#10#10'Wollen Sie trotzdem laden?'; LANGdeAnErrorOccuredWhileInitializingMemoryBlock = 'Es trat ein Fehler mit dem Speicher auf. Schließen Sie einige Programme und versuchen Sie es erneut.'; LANGdeAnErrorOccuredWhileOpeningFileSS = 'Beim öffnen der Datei ''%s'' trat ein Fehler auf:'#10' %s'; LANGdeAnErrorOccuredWhileReadingFileSS = 'Beim lesen der Datei ''%s'' trat ein Fehler auf:'#10' %s'; LANGdeChecksumNotChecked = 'Status: Nicht geprüft'; LANGdeChecksumChecking = 'Status: Prüfe...'; LANGdeChecksumInterrupted = 'Status: Unterbrochen'; LANGdeChecksumDOK = 'Status: %d%% OK'; LANGdemiCreateChecksumsCaption = '_Erstelle Checksummen...'; LANGdeYouMustSelectAtLeastOneFileToCalculateChecksum = 'Sie müssen mindestens eine Datei ausgewählt haben, um Checksummen zu berechnen!'; LANGdeCreateChecksumsCaption = 'Erstelle Checksummen'; LANGdeCCHKSUMPage1Text = 'Sie werden Prüfsummen für die ausgewählten'#10'Dateien erstellen. Wenn Sie noch nicht alle'#10'Dateine ausgewählt haben, schlieÃ\237en sie diesen Dialog'#10'und wählen Sie weitere Dateien aus.'; LANGdeCCHKSUMPage4Text = 'Der Druide ist bereit die Checksummen für Ihre'#10'ausgewählten Dateien zu erstellen. Dieser Vorgang kann ein paar Minuten dauern.'#10'Um Fortzufahren klicken Sie auf "Weiter".'; LANGdeCCHKSUMPage6Text = 'Beim Erstellen der Checksummen traten Fehler auf:'; LANGdeCCHKSUMPage7Text = 'Das Erstellen der Checksummen ist beendet und '#10' Ihre Dateien sind bereit.'#10#10'Zum Beenden klicke auf "Beenden".'; LANGdeCCHKSUMPage1Title = 'Vorbereiten der Dateien zur Checksummenberechnung'; LANGdeCCHKSUMPage2Title = 'Wählen Sie den Prüfsummen Dateityp aus'; LANGdeCCHKSUMPage3Title = 'Dateiname auswählen'; LANGdeCCHKSUMPage4Title = 'Bereit zum prüfen'; LANGdeCCHKSUMPage5Title = 'Ausführung...'; LANGdeCCHKSUMPage6Title = 'Fehler!'; LANGdeCCHKSUMPage7Title = 'Fertig'; LANGdeCCHKSUMSFVFile = 'SFV Datei'; LANGdeCCHKSUMMD5sumFile = 'MD5sum Datei'; LANGdeCCHKSUMFileName = 'Datei_name:'; LANGdeCCHKSUMCreateSeparateChecksumFiles = 'Erstelle _separate Prüfsummendateien'; LANGdeCCHKSUMNowProcessingFileS = 'Verarbeite jetzt Datei: %s'; LANGdeCCHKSUMFinishCaption = '_Fertig'; LANGdeCCHKSUMAreYouSureYouWantToAbortTheProcessing = 'Wollen Sie wirklich die Bearbeitung abbrechen?'; LANGdeCCHKSUMAnErrorOccuredWhileOpeningFileSS = 'Beim Öffnen der Datei ''%s'' trat ein Fehler auf: %s'#10; LANGdeCCHKSUMAnErrorOccuredWhileReadingFileSS = 'Beim Lesen der Datei ''%s'' trat ein Fehler auf: %s'#10; LANGdeCCHKSUMAnErrorOccuredWhileWritingFileSS = 'Beim Schreiben der Datei ''%s'' trat ein Fehler auf: %s'#10; LANGdeAnErrorOccuredWhileWritingFileSS = 'Beim Schreiben der Datei ''%s'' trat ein Fehler auf:'#10' %s'; LANGdeTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt = 'Die Zieldatei ''%s'' existiert bereits. Soll diese überschrieben werden?'; LANGdeTheTargetFileSCannotBeRemovedS = 'Die Zieldatei ''%s'' kann nicht entfernt werden: %s'; LANGdeMergeCaption = 'Zusammenfügen'; LANGdePleaseInsertNextDiskOrGiveDifferentLocation = 'Nächste Diskette einlegen, oder anderen Ort auswählen:'; LANGdeMergeOfSSucceeded = 'Zusammenfügen von ''%s'' erfolgreich (CRC Checksumme OK).'; LANGdeWarningCreatedFileFailsCRCCheck = 'Warnung: CRC-Check für neue Datei schlug fehl!'; LANGdeMergeOfSSucceeded_NoCRCFileAvailable = 'Zusammenfügen von ''%s'' erfolgreich (keine CRC-Datei verfügbar).'; LANGdeMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory = 'Zusammenfügen von ''%s'' und alle Dateien mit aufsteigenden Namen in folgendes Verzeichnis:'; LANGdeMergeSC = 'Zusammenfügen:'; LANGdemiSplitFileCaption = 'Dateien _teilen...'; LANGdemiMergeFilesCaption = 'Dateien _verbinden...'; LANGdeSplitTheFileSToDirectory = '_Teile die Datei ''%s'' ins Verzeichnis:'; LANGdeSplitSC = 'Teilen:'; LANGdeSplitFile = 'Datei teilen'; LANGdeBytesPerFile = '_Bytes pro Datei:'; LANGdeAutomatic = 'Automatisch'; LANGdeDeleteFilesOnTargetDisk = '_Lösche Dateien auf Zieldiskette (verwendbar für entfernbare Medien)'; LANGdeSplitCaption = 'Teilen'; LANGdeCannotOpenFileS = 'Kann Datei ''%s'' nicht öffnen'; LANGdeCannotSplitTheFileToMoreThan999Parts = 'Kann die Datei nicht in mehr als 999 Teile aufteilen!'; LANGdeThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem = 'Es befinden sich einige Dateien im Zielverzeichnis:'#10'%s'#10'Wollen Sie diese löschen?'; LANGdeThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem = 'Es sind %d Dateien im Zielverzeichnis. Wollen Sie diese löschen?'; LANGdeAnErrorOccuredWhileOperationS = 'Während folgender Operation trat ein Fehler auf: %s'; LANGdeSplitOfSSucceeded = '''%s'' erfolgreich geteilt.'; LANGdeSplitOfSFailed = 'Das Teilen von ''%s'' schlug fehl!'; LANGdemnuShow_Caption = 'An_zeigen'; LANGdemiShowDotFiles_Caption = 'Zeige _versteckte Dateien'; LANGdeTheFileYouAreTryingToOpenIsQuiteBig = 'Die Datei, die Sie versuchen zu öffnen, ist sehr groß. Das Laden der Datei mit einer externen Anwendung (wie gedit) kann eine Verlangsamung des Systems verursachen.'#10'Wollen Sie fortfahren?'; LANGdeCannotExecuteSPleaseCheckTheConfiguration = 'Kann ''%s'' nicht ausführen. Bitte prüfen Sie die Konfiguration, oder setzen Sie die korrekte Verknüpfung zum Dateityp.'; LANGdeEdit = 'Bearbeiten'; LANGdeEnterFilenameToEdit = '_Eingabe des zu editierenden Dateinamens:'; LANGdemnuSettings_Caption = 'Eins_tellungen'; LANGdemiFileTypes_Caption = 'Date_itypen...'; LANGdeThereIsNoApplicationAssociatedWithS = 'Es ist kein Programm mit "%s" verknüpft.'#10#10'Sie können Tux Commander konfigurieren um Programm mit Dateitypen zu verknüpfen. Wollen Sie jetzt ein Programm mit diesem Dateityp verknüpfen?'; LANGdeErrorExecutingCommand = 'Fehler beim Ausführen des Befehls!'; LANGdeEditFileTypesCaption = 'Bearbeiten der Dateitypen'; LANGdeTitleLabel_Caption = 'Konfiguration der Dateitypen'; LANGdeExtensionsColumn = 'Erweiterungen'; LANGdeDescriptionColumn = 'Beschreibung'; LANGdeFileTypesList = 'Dateitypenliste'; LANGdeActionName = 'Aktionsname'; LANGdeCommand = 'Befehl'; LANGdeSetDefaultActionButton_Caption = 'Als _Standard setzen'; LANGdeRunInTerminalCheckBox_Caption = 'Im _Terminal ausführen'; LANGdeAutodetectCheckBox_Caption = '_GUI Programm automatisch erkennen'; LANGdeBrowseButton_Caption = '_Browse...'; LANGdeCommandLabel_Caption = 'Be_fehl:'; LANGdeDescriptionLabel_Caption = 'Be_schreibung:'; LANGdeFNameExtLabel_Caption = 'Hi_nzufügen:'; LANGdeNotebookPageExtensions = 'Dateityp'; LANGdeNotebookPageActions = 'Aktionen'; LANGdeDefault = ' (Standard)'; LANGdeCannotSaveFileTypeAssociationsBecauseOtherProcess = 'Kann die Dateityp-Verknüpfung nicht speichern, weil ein anderer Prozess diesen aktualisiert hat während dieses Programm läuft.'; LANGdeDefaultColor = 'St_andard Farbe'; LANGdeIcon = '_Icon:'; LANGdeBrowseForIcon = 'Nach Icon suchen'; LANGdeSelectFileTypeColor = 'Dateitypenfarbe auswählen'; LANGdeColor = 'Fa_rbe:'; LANGdemiChangePermissions_Caption = 'Be_rechtigungen ändern...'; LANGdemiChangeOwner_Caption = '_Eigentümer/Gruppe ändern...'; LANGdemiCreateSymlink_Caption = 'Symbolischen _Link erstellen...'; LANGdemiEditSymlink_Caption = '_Symbolischen Link bearbeiten...'; LANGdeChmodProgress = 'Berechtigungen ändern:'; LANGdeChownProgress = 'Eigentümer ändern:'; LANGdeYouMustSelectAValidSymbolicLink = 'Sie müssen einen zulässigen symbolischen Link auswählen!'; LANGdePopupRunS = 'A_usführen %s'; LANGdePopupOpenS = 'Ö_ffnen %s'; LANGdePopupGoUp = '_Aufwärts'; LANGdePopupOpenWithS = 'Öffnen _mit %s'; LANGdePopupDefault = ' (Standard)'; LANGdePopupOpenWith = 'Ö_ffnen mit...'; LANGdePopupViewFile = '_Datei ansehen'; LANGdePopupEditFile = 'D_atei bearbeiten'; LANGdePopupMakeSymlink = 'S_ymbolischen Link erstellen'; LANGdePopupRename = '_Umbenennen'; LANGdePopupDelete = '_Löschen'; LANGdeDialogChangePermissions = 'Berechtigungen ändern'; LANGdeCouldNotBeChmoddedS = 'could not be chmodded: %s'; LANGdeDialogChangeOwner = 'Eigentümer ändern'; LANGdeCouldNotBeChownedS = 'Kann Eigentümer nicht ändern: %s'; LANGdeDialogMakeSymlink = 'Symbolischen Link erstellen'; LANGdeDialogEditSymlink = 'Symbolischen Link bearbeiten'; LANGdeFEditSymlink_Caption = 'Symbolischen Link bearbeiten'; LANGdeFEditSymlink_SymbolicLinkFilename = '_Symbolischer Verbindungs-Dateiname:'; LANGdeFEditSymlink_SymbolicLinkPointsTo = 'Symbolicher Link _zeigt auf:'; LANGdeFChmod_Caption = 'Zugangsberechtigungen'; LANGdeFChmod_PermissionFrame = 'Berechtigungen'; LANGdeFChmod_FileFrame = 'Datei'; LANGdeFChmod_ApplyRecursivelyFor = '_Rekursiv anlegen für'; LANGdeFChmod_miAllFiles = 'Alle Dateien und Verzeichnisse'; LANGdeFChmod_miDirectories = 'nur Verzeichnisse'; LANGdeFChmod_OctalLabel = '_Oktal:'; LANGdeFChmod_SUID = 'SUID - Setze Benutzer-ID auf Ausführung ein'; LANGdeFChmod_SGID = 'SGID - Setze Gruppen-ID auf Ausführung ein'; LANGdeFChmod_Sticky = 'Sticky bit'; LANGdeFChmod_RUSR = 'RUSR - Eigentümer hat Leserecht'; LANGdeFChmod_WUSR = 'WUSR - Eigentümer hat Schreibrecht'; LANGdeFChmod_XUSR = 'XUSR - Ausführung/Suchen durch Eigentümer'; LANGdeFChmod_RGRP = 'RGRP - Gruppe hat Leserecht'; LANGdeFChmod_WGRP = 'WGRP - Gruppe hat Schreibrecht'; LANGdeFChmod_XGRP = 'XGRP - Ausführung/Suchen durch Gruppe'; LANGdeFChmod_ROTH = 'ROTH - Andere haben Leserecht'; LANGdeFChmod_WOTH = 'WOTH - Andere haben Schreibrecht'; LANGdeFChmod_XOTH = 'XOTH - Ausführung/Suchen durch andere'; LANGdeFChmod_TextLabel = 'Text: %s'; LANGdeFChmod_FileLabel = 'Datei: %s'#10'Text: %s'#10 + 'Oktal: %d'#10'Eigentuemer: %s'#10 + 'Gruppe: %s'; LANGdeFChown_Caption = 'Eigentümer/Gruppe ändern'; LANGdeFChown_OwnerFrame = 'Benutzername'; LANGdeFChown_GroupFrame = 'Gruppenname'; LANGdeFChown_FileFrame = 'Datei'; LANGdeFChown_ApplyRecursively = '_Rekursiv zuweisen'; LANGdeFSymlink_Caption = 'Symbolischen Link erstellen'; LANGdeFSymlink_ExistingFilename = '_Existierenden Dateinamen (Dateiname symbolischer Link zeigt auf):'; LANGdeFSymlink_SymlinkFilename = '_Symbolischer Verbindungs-Dateiname:'; LANGdemnuBookmarks_Caption = '_Lesezeichen'; LANGdemiAddBookmark_Caption = 'Lesezeichen hinzufügen'; LANGdemiEditBookmarks_Caption = 'Lesezeichen bearbeiten'; LANGdeBookmarkPopupDelete_Caption = '_Löschen'; LANGdemiPreferences_Caption = '_Einstellungen...'; LANGdeTheCurrentDirectoryAlreadyExistsInTheBookmarksList = 'Das aktuelle Verzeichnis is bereits in der Liste der Lesezeichen enthalten'; LANGdeSomeOtherInstanceChanged = 'Eine andere Instanz von Tux-Commander hat die Einstellungen geändert. Möchten Sie die neuen Einstellungen übernehmen?'#10#10'Warnung: Wenn Sie Nein drücken, werden die Einstellungen dieser Instanz überschrieben'' Verlassen!'; LANGdePreferences_Caption = 'Einstellungen'; LANGdePreferences_TitleLabel_Caption = 'Programm Einstellungen'; LANGdePreferences_GeneralPage = 'Allgemein'; LANGdePreferences_FontsPage = 'Schriften'; LANGdePreferences_ColorsPage = 'Farben'; LANGdePreferences_RowHeight = 'Zeilen_höhe:'; LANGdePreferences_NumHistoryItems = '_Kommandozeilen history Eintragungen:'; LANGdePreferences_Default = 'Vorgabe'; LANGdePreferences_ClearReadonlyAttribute = 'Lösche _NurLesen-Attribute wenn von CD-ROM kopiert wird'; LANGdePreferences_DisableMouseRenaming = 'Umbenennen mit _Maus abschalten '; LANGdePreferences_ShowFiletypeIconsInList = 'Zeige _Dateitypenbilder'; LANGdePreferences_ExternalAppsLabel = 'Externe Programme'; LANGdePreferences_Viewer = '_Betrachter:'; LANGdePreferences_Editor = '_Editor:'; LANGdePreferences_Terminal = '_Terminal:'; LANGdePreferences_ListFont = 'Liste der Schriften:'; LANGdePreferences_Change = 'Ãndern...'; LANGdePreferences_UseDefaultFont = 'Benutze _Standardschriftsatz'; LANGdePreferences_Foreground = 'Vordergrund'; LANGdePreferences_Background = 'Hintergrund'; LANGdePreferences_NormalItem = 'Normale Elemente:'; LANGdePreferences_SetToDefaultToUseGTKThemeColors = 'Verwende standardmäßig GTK-Thema Farben'; LANGdePreferences_Cursor = 'Cursor:'; LANGdePreferences_InactiveItem = 'Nicht aktives Element:'; LANGdePreferences_SelectedItem = 'Aktives Element:'; LANGdePreferences_LinkItem = 'Symbolische Verknüpfungen:'; LANGdePreferences_LinkItemHint = 'Verwende standardmäßig die Standardelementfarbe für Symbolische Verknüpfungen'; LANGdePreferences_DotFileItem = 'Versteckte Dateien:'; LANGdePreferences_DotFileItemHint = 'Verwende standardmäßig die Standardelementfarbe für versteckte Dateien'; LANGdePreferences_BrowseForApplication = 'Nach Programm suchen'; LANGdePreferences_DefaultS = 'Standard: %s'; LANGdePreferences_SelectFont = 'Schriftfont auswählen'; (*************** STRINGS ADDED TO v0.4.101 **********************************************************************************) LANGdeBookmarkButton_Tooltip = 'Zeige Lesezeichen'; LANGdeUpButton_Tooltip = 'Gehe eine Verzeichnisebene höher'; LANGdeRootButton_Tooltip = 'Gehe zum Wurzelverzeichnis (/)'; LANGdeHomeButton_Tooltip = 'Gehe zum Benutzerverzeichnis (/home/user)'; LANGdeLeftEqualButton_Tooltip = 'Wechsle rechte Verzeichnistafel zum selben Verzeichnis'; LANGdeRightEqualButton_Tooltip = 'Wechsle linke Verzeichnistafel zum selben Verzeichnis'; LANGdemiShowDirectorySizes_Caption = 'Zeige V_erzeichnisgröße'; LANGdemiTargetSource_Caption = 'Ziel = Quelle'; LANGdeFileTypeDirectory = 'Verzeichnis'; LANGdeFileTypeFile = 'Datei'; LANGdeFileTypeMetafile = 'Dies ist ein allgemeines Meta-Item'; LANGdePreferencesPanelsPage = 'Tafel'; LANGdePreferencesApplicationsPage = 'Programme'; LANGdePreferencesExperimentalPage = 'Experimentell'; LANGdePreferencesSelectAllDirectoriesCheckBox_Caption = 'Wenn alles ausgewählt, auch Verzeichnisse auswählen'; LANGdePreferencesNewStyleAltOCheckBox_Caption = '_Neuer Stil Alt+O'; LANGdePreferencesNewStyleAltOCheckBox_Tooltip = 'Bleibe in demselben Verzeichnis wenn durch drücken von Strg/Alt-0 die andere Verzeichnistafel wechselt'; LANGdePreferencesShowFuncButtonsCheckBox_Caption = 'Zeige Funktions_tasten Schaltflächen'; LANGdePreferencesSizeFormatLabel_Caption = '_Größenformat:'; LANGdePreferencesmiSizeFormat1 = 'System'; LANGdePreferencesmiSizeFormat6 = 'Gruppiert'; LANGdePreferencesAutodetectXApp = 'Automatisch X-Programm feststellen'; LANGdePreferencesAlwaysRunInTerminal = 'Immer im Terminal ausführen'; LANGdePreferencesNeverRunInTerminal = 'Niemals im Terminal ausführen'; LANGdePreferencesCmdLineBehaviourLabel_Caption = 'Von der Kommandozeile _ausführen:'; LANGdePreferencesFeatures = 'Eigenschaften'; LANGdePreferencesDisableMouseRename_Tooltip = 'Sie können eine schnell Umbenennung dürchführen, indem Sie Shift+F6 drücken'; LANGdePreferencesDisableFileTipsCheckBox_Caption = 'Keine _Tooltips für Dateien'; LANGdePreferencesDisableFileTipsCheckBox_Tooltip = 'Wenn Text in einer Spalte unvollständig ist, dann keine Tooltips im Verzeichnisfeld anzeigen'; LANGdePreferencesShow = 'Zeige'; LANGdePreferencesDirsInBoldCheckBox_Caption = 'Verzeichnisse _fett'; LANGdePreferencesDisableDirectoryBracketsCheckBox_Caption = 'Keine eckigen _Klammer für Verzeichnisse'; LANGdePreferencesOctalPermissionsCheckBox_Caption = 'Zeige Rechte _oktal'; LANGdePreferencesOctalPermissionsCheckBox_Tooltip = 'Zeige Datei-/Verzeichnisrechte als Zahl anstelle von Text (-rw-rw-rw-)'; LANGdePreferencesMovement = 'Bewegung'; LANGdePreferencesLynxLikeMotionCheckBox_Caption = '_Lynx ähnliche Bewegung '; LANGdePreferencesInsertMovesDownCheckBox_Caption = '_Einfügen bewegt nach unten'; LANGdePreferencesSpaceMovesDownCheckBox_Caption = '_Leertaste bewegt nach unten'; LANGdePreferencesViewer = 'Betrachter'; LANGdePreferencesCommandSC = 'Befehl:'; LANGdePreferencesUseInternalViewer = 'Benutze _internen Betrachter'; LANGdePreferencesEditor = 'Editor'; LANGdePreferencesTerminal = 'Terminal'; LANGdePreferencesExperimentalFeatures = 'Experimentelle Eigenschaften'; LANGdePreferencesExperimentalWarningLabel_Caption = 'Warnung: Diese Eigenschaften sind noch in der Entwicklung und könnten nicht korrekt funktionieren. Benutzung geschieht auf eigene Gefahr!'; LANGdePreferencesFocusRefreshCheckBox_Caption = 'Wenn Fenster Fokus erhält, Auffrischung veranlassen'; LANGdePreferencesFocusRefreshCheckBox_Tooltip = 'Verzeichnisfeld wird im Moment sehr langsam aufgefrischt'; LANGdePreferencesWMCompatModeCheckBox_Caption = '_WM Kompatibilitäts modus'; LANGdePreferencesWMCompatModeCheckBox_Tooltip = 'Verwendung, wenn einige Windows-Manager Probleme verursachen (z.B. IceWM kann Fenstermaximierung nicht richtig durchführen)'; LANGdePreferencesCompatUseLibcSystemCheckBox_Caption = 'Verwendung von Libc _system() um Programme zu starten'; LANGdePreferencesCompatUseLibcSystemCheckBox_Tooltip = 'Verwendung, falls das starten externen Programme ein einfieren, oder einen Absturz verursacht'; (*************** STRINGS ADDED TO v0.5.70 **********************************************************************************) LANGdemiSearchCaption2 = '_Suchen...'; LANGdemiNoMounterBarCaption = 'mou_nter bar ausblenden'; LANGdemiShowOneMounterBarCaption = 'm_ounter bar anzeigen'; LANGdemiShowTwoMounterBarCaption = 'zeige zwei moun_ter bars'; LANGdemnuNetworkCaption = 'N_etzwerk'; LANGdemiConnectionsCaption = '(_C) Verbindungen...'; LANGdemiOpenConnectionCaption = '_Oeffne Verbindung...'; LANGdemiQuickConnectCaption = '_Quick Verbinden...'; LANGdemnuPluginsCaption = 'Pl_ugins'; LANGdemiTestPluginCaption = '_Test plugin...'; LANGdemiMounterSettingsCaption = '_Mounter Einstellungen...'; LANGdemiColumnsCaption = 'P_anel Spalten...'; LANGdemiSavePositionCaption = '_Speichere Position'; LANGdemiMountCaption = '_Mount'; LANGdemiUmountCaption = '_Umount'; LANGdemiEjectCaption = 'Ausw_erfen'; LANGdemiDuplicateTabCaption = 'Dupliziere den momentanen tab'; LANGdemiCloseTabCaption = 'Schliesse den momentanen tab'; LANGdemiCloseAllTabsCaption = 'Schliesse alle tabs'; LANGdeCannotDetermineDestinationEngine = 'Konnte die Ziel-engine nicht erkennen. Bitte geben Sie den korrekten Pfad ein und versuchen Sie erneut.'; LANGdeCannotLoadFile = 'Kann Datei nicht laden ''%s''. Bitte kontrollieren Sie die Rechte.'; LANGdeMountPointDevice = 'Einhängepunkt: %s'#10'Gerät: %s'; LANGdeMountSC = 'Hänge ein:'; LANGdeNoPluginsFound = 'Keine Plugins gefunden'; LANGdePluginAbout = 'Über...'; LANGdeCouldntOpenURI = 'Konnte die gewünschte URI nicht öffnen. Bitte kontrollieren Sie die Konsistenz des Ressoucen-Identifizierers und der Zugangserlaubnis.'; LANGdePluginAboutInside = 'Plugin: %s'#10#10'%s'#10'%s'; LANGdeAreYouSureCloseAllTabs = 'Sind Sie sicher, dass Sie alle inaktiven tabs schliessen möchten?'; LANGdeCouldntOpenURIArchive = 'Konnte das Archiv nicht öffnen. Bitte überprüfen Sie die Konsistenz und die Zugriffsrechte.'; LANGdeThereIsNoModuleAvailable = 'Es ist kein VFS Modul verfügbar, die diese Verbindung bedienen kann'; LANGdeIgnoreError = 'Wollen Sie wirklich den Fehler ignorieren? Die Quell-Datei wird dann gelöscht'; LANGdeErrorMount = 'Es trat ein Fehler beim Einhängen des Gerätes auf ''%s'':'#10#10; LANGdeErrorUmount = 'Es trat ein Fehler beim Aushängen des Gerätes auf ''%s'':'#10#10; LANGdeErrorEject = 'Es trat ein Fehler beim Auswerfen des Gerätes auf ''%s'':'#10#10; LANGdeMounterPrefs_Caption = 'Mounter Einstellungen'; LANGdeMounterPrefs_TitleLabelCaption = 'Mounter Einstellungen'; LANGdeMounterPrefs_ListViewFrameCaption = 'Mounter'; LANGdeMounterPrefs_MountName = 'Einhängename'; LANGdeMounterPrefs_MountPoint = 'Einhängepunkt'; LANGdeMounterPrefs_Device = 'Gerät'; LANGdeMounterPrefs_MoveUpButtonTooltip = 'Bewege Element hoch'; LANGdeMounterPrefs_MoveDownButtonTooltip = 'Bewege Element runter'; LANGdeMounterPrefs_UseFSTabDefaultsCheckBox = 'Benutze _fstab default Elemente'; LANGdeMounterPrefs_UseFSTabDefaultsCheckBoxTooltip = 'Wenn Sie dies markieren, wird der mounter bar mit Default-Elementen gefüllt, die in /etc/fstab (System Einhängeliste) gefunden worden sind'; LANGdeMounterPrefs_ToggleModeCheckBox = 'Die Buttons stehen _down wenn eingehängt'; LANGdeMounterPrefs_ToggleModeCheckBoxTooltip = 'Wenn ausgewählt, werden die mounter Buttons auf unten gestellt sein wenn das Gerät eingehängt ist; ein weiterer Klick sorgt dafür, dass das Gerät ausgehängt wird (Auswerfen in diesem Fall)'; LANGdeMounterPrefs_PropertiesFrameCaption = 'Mounter Element Eigenschaften'; LANGdeMounterPrefs_DisplayTextLabelCaption = 'Angezeigter _Text:'; LANGdeMounterPrefs_MountPointLabelCaption = 'Einhänge _Punkt:'; LANGdeMounterPrefs_MountDeviceLabelCaption = '_DGerät:'; LANGdeMounterPrefs_DeviceTypeLabelCaption = 'Geräte T_ype:'; LANGdeMounterPrefs_miLocalDiskCaption = 'lokales Laufwerk'; LANGdeMounterPrefs_miRemovableCaption = 'Entfernbar'; LANGdeMounterPrefs_miCDCaption = 'CD/DVD Laufwerk'; LANGdeMounterPrefs_miFloppyCaption = 'Floppy Laufwerk'; LANGdeMounterPrefs_miNetworkCaption = 'Netzwerk'; LANGdeMounterPrefs_MountCommandLabelCaption = 'Einhänge _Commando:'; LANGdeMounterPrefs_UmountCommandLabelCaption = 'Aushänge K_ommando:'; LANGdeMounterPrefs_MountCommandEntryTooltip = 'Syntax: benutze %dev als Ersatz für Gerät und %dir als Einhängepunkt oder leer lassen für den Default Einhängepunkt'#10':Vorsicht bei interakt. Kommandos, tuxcmd kann einfrieren!'#10'Beispiel: smbmount %dev %dir -o username=netuser,password=somepass'; LANGdeMounterPrefs_UmountCommandEntryTooltip = 'Syntax: benutze %dev als Ersatz für das Gerät und %dir für den Einhängepunkt oder lasse es leer für den Aushängepunkt'#10'Beispiel: smbumount $dir'; LANGdeMounterPrefs_IconLabelCaption = '_Icon:'; LANGdeConnMgr_Caption = 'Öffne eine neue Verbindung'; LANGdeConnMgr_ConnectButton = 'Verbi_nde'; LANGdeConnMgr_OpenConnection = 'Öffne eine Verbindung'; LANGdeConnMgr_NameColumn = 'Name'; LANGdeConnMgr_URIColumn = 'URI'; LANGdeConnMgr_AddConnectionButtonCaption = '_Add site...'; LANGdeConnMgr_AddConnectionButtonTooltip = 'Füge eine neue Verbindung hinzu'; LANGdeConnMgr_EditButtonCaption = '_Editiere...'; LANGdeConnMgr_EditButtonTooltip = 'Editiere die ausgewählte Verbindung'; LANGdeConnMgr_RemoveButtonCaption = '_Remove site (entferne)'; LANGdeConnMgr_RemoveButtonTooltip = 'Lösche die ausgewählte Verbindung'; LANGdeConnMgr_DoYouWantDelete = 'Wollen Sie wirklich die Verbindung löschen ''%s''?'; LANGdeConnProp_FTP = 'FTP'; LANGdeConnProp_SFTP = 'SFTP (ssh Subsystem)'; LANGdeConnProp_SMB = 'Windows share (SMB)'; LANGdeConnProp_HTTP = 'WebDAV (HTTP)'; LANGdeConnProp_HTTPS = 'Sicheres WebDAV (HTTPS)'; LANGdeConnProp_Other = 'Andere (Bitte spezifizieren Sie in URI)'; LANGdeConnProp_Caption = 'Eigenschaften der Verbindung'; LANGdeConnProp_VFSModule = '_VFS Modul:'; LANGdeConnProp_URI = '_URI:'; LANGdeConnProp_URIEntryTooltip = 'Die korrigierte URI sollte das service type prefix und die Server Adresse beinhalten'; LANGdeConnProp_DetailedInformations = 'Detaillierte Informationen'; LANGdeConnProp_Name = '_Name:'; LANGdeConnProp_Server = 'Ser_ver[:port]:'; LANGdeConnProp_Username = 'Benutzerna_me:'; LANGdeConnProp_UserNameEntryTooltip = 'Leer lassen für ein anonymous login'; LANGdeConnProp_Password = '_Passwort:'; LANGdeConnProp_TargetDirectory = 'Ziel _directory:'; LANGdeConnProp_ServiceType = '_Service Typ:'; LANGdeConnProp_MaskPassword = '_Maskiere das Passwort'; LANGdeConnProp_MenuItemCaption = 'Default (alle brauchbaren Module)'; LANGdeConnLogin_Caption = 'Authentifizierung erforderlich'; LANGdeConnLogin_Login = 'Login'; LANGdeConnLogin_ExperimentalWarningLabelCaption = 'Sie müssen sich einloggem, um Zugang zu %s zu bekommen'; LANGdeConnLogin_Username = '_Username:'; LANGdeConnLogin_Password = '_Passwort:'; LANGdeConnLogin_AnonymousCheckButton = '_Anonymous'; LANGdeColumns_Caption = 'Panel: Spalten Einstellungen'; LANGdeColumns_Title = 'Panel: Spalten Einstellungen'; LANGdeColumns_MoveUpButtonTooltip = 'Bewege das Element hoch'; LANGdeColumns_MoveDownButtonTooltip = 'Bewege das Element runter'; LANGdeColumns_TitlesLongName = 'Name'; LANGdeColumns_TitlesLongNameExt = 'Name + Erweiterung'; LANGdeColumns_TitlesLongExt = 'Erweiterung'; LANGdeColumns_TitlesLongSize = 'Größe'; LANGdeColumns_TitlesLongDateTime = 'Datum + Zeit'; LANGdeColumns_TitlesLongDate = 'Datum'; LANGdeColumns_TitlesLongTime = 'Zeit'; LANGdeColumns_TitlesLongUser = 'User'; LANGdeColumns_TitlesLongGroup = 'Gruppe'; LANGdeColumns_TitlesLongAttr = 'Attribute'; LANGdeColumns_TitlesShortName = 'Name'; LANGdeColumns_TitlesShortNameExt = 'Name'; LANGdeColumns_TitlesShortExt = 'Erweiterung'; LANGdeColumns_TitlesShortSize = 'Größe'; LANGdeColumns_TitlesShortDateTime = 'Datum'; LANGdeColumns_TitlesShortDate = 'Datum'; LANGdeColumns_TitlesShortTime = 'Zeit'; LANGdeColumns_TitlesShortUser = 'User'; LANGdeColumns_TitlesShortGroup = 'Gruppe'; LANGdeColumns_TitlesShortAttr = 'Attr'; LANGdeTestPlugin_Caption = 'Test VFS Plugin'; LANGdeTestPlugin_Title = 'Test VFS Plugin'; LANGdeTestPlugin_ExperimentalWarningLabelCaption = 'Warning: Das VFS subsystem und dessen Plugins werden momentan noch heftig weiterentwickelt und können Fehler enthalten. Benutzung auf eigene Gefahr!'; LANGdeTestPlugin_Plugin = '_Plugin:'; LANGdeTestPlugin_Command = 'Ko_mmando:'; LANGdeTestPlugin_Username = '_Username:'; LANGdeTestPlugin_Password = '_Passwort:'; LANGdeTestPlugin_AnonymousCheckButton = '_Anonymous login (Ruft nicht VFSLogin auf)'; LANGdeTestPlugin_NoPluginsFound = 'Keine Plugins gefunden'; LANGdeRemoteWait_Caption = 'Vorgang ist in Bearbeitung'; LANGdeRemoteWait_OperationInProgress = 'Vorgang ist in Bearbeitung, bitte haben Sie Geduld...'; LANGdeRemoteWait_ItemsFound = 'Bis jetzt gefundene Elemente: %d'; LANGdeSearch_Bytes = 'Bytes'; LANGdeSearch_kB = 'kB'; LANGdeSearch_MB = 'MB'; LANGdeSearch_days = 'Tage'; LANGdeSearch_weeks = 'Wochen'; LANGdeSearch_months = 'Monate'; LANGdeSearch_years = 'Jahre'; LANGdeSearch_Caption = 'Finde Dateien'; LANGdeSearch_General = 'Generell'; LANGdeSearch_Advanced = 'Fortgeschritten'; LANGdeSearch_SearchResults = 'Such _Resultate:'; LANGdeSearch_SearchFor = 'Suche _für:'; LANGdeSearch_FileMaskEntryTooltip = 'Tip: Benutze Semikolons (";") um mehrere Dateien auszuwählen, die gefunden werden sollen'; LANGdeSearch_SearchIn = 'Suche _in:'; LANGdeSearch_SearchArchivesCheckButton = 'Such _archive'; LANGdeSearch_FindText = 'Finde _text:'; LANGdeSearch_FindTextEntryTooltip = 'Leer lassen für keinen passenden Text'#10'Bitte beachten, wir benutzen UTF-8 im GUI Teil'; LANGdeSearch_CaseSensitiveCheckButton = 'Groß/Kleinschreibung b_eachten'; LANGdeSearch_StayCurrentFSCheckButton = 'Include other files_ystems'; LANGdeSearch_CaseSensitiveMatchCheckButton = 'Groß/Klein_schreibung beachten'; LANGdeSearch_Size = 'Größe'; LANGdeSearch_Date = 'Datum'; LANGdeSearch_BiggerThan = '(_B) Größer als'; LANGdeSearch_SmallerThan = '(_S) Kleiner als'; LANGdeSearch_ModifiedBetweenRadioButton = '_Modifiziert zwischen'; LANGdeSearch_NotModifiedAfterRadioButton = '_Nicht geändert nach'; LANGdeSearch_ModifiedLastRadioButton = 'Geändert be_im letzten Mal'; LANGdeSearch_ModifiedNotLastRadionButton = 'Nich_t geändert beim letzten Mal'; LANGdeSearch_ModifiedBetweenEntry1 = '"Bitte benutzen Sie das folgende Format für das Datum:" c'; LANGdeSearch_ViewButtonCaption = 'Zeige(_V) Datei'; LANGdeSearch_NewSearchButtonCaption = '_Neue Suche'; LANGdeSearch_GoToFileButtonCaption = '_Gehe zur Datei'; LANGdeSearch_FeedToListboxButtonCaption = 'Feed to _listbox'; LANGdeSearch_StatusSC = 'Status:'; LANGdeSearch_Ready = 'Fertig.'; LANGdeSearch_PreparingToSearch = 'Bereite die Suche vor.'; LANGdeSearch_SearchInProgress = 'Suche ist in Bearbeitung:'; LANGdeSearch_UserCancelled = 'Der Benutzer hat beendet.'; LANGdeSearch_SearchFinished = 'Suche beendet'; LANGdeSearch_FilesFound = '%d Dateien gefunden'; LANGdeSearch_And = 'und'; (*************** STRINGS ADDED TO v0.5.82 **********************************************************************************) LANGdeCloseOpenConnection = 'Sie versuchen, eine neue Verbindung zu öffnen, über die schon aktive Verbindungt. Wenn Sie fortfahren, wird die bestehende Verbindung geschlossen und durch die neue Verbindung ersetzt.'#10#10'Wollen Sie fortfahren?'; LANGdeDuplicateTabWarning = 'Sie versuchen, einen neuen Tab in einem Remote-Verzeichnis zu öffnen. Engine-Cloning wird aber nicht unterstützt. Das Verzeichnis in dem neuen Tab wird auf das Lokale Datei-System zeigen.'; LANGdeDontShowAgain = '(_D) Zeigen Sie diese Meldung nicht mehr'; LANGdeSwitchOtherPanelWarning = 'Sie versuchen, ein Remote Verzeichnis im gegenüberliegenden Panel zu öffnen. Engine-Cloning wird aber nicht unterstützt. Das Ziel-Verzeichnis wird nicht geändert.'; LANGdeOpenConnectionsWarning = 'Es sind offene aktive Verbindungenon im Panel. wenn Sie die Anwendung schliessen, werden diese Verbindungen ebenfalls geschlossen.'#10#10'Wollen Sie beenden?'; LANGdemiDisconnect_Caption = '(_D) Trenne'; LANGdeDisconnectButton_Tooltip = 'Trenne die aktive Verbindung'; LANGdeLeaveArchiveButton_Tooltip = 'Schliesse das aktuelle Archiv'; LANGdeOpenTerminalButton_Tooltip = 'Öffen ein neues Terminal Fenster von dem aktuellen Verzeichnis'; LANGdeOpenTerminalButton_Caption = 'öffne ein Te_rminal'; LANGdeShowTextUIDsCheckBox_Caption = 'Zeige die Text _UIDs'; LANGdeShowTextUIDsCheckBox_Tooltip = 'Zeige Nutzer- and Gruppen-Informationen in Worten anstatt in Zahlen (UID/GID)'; (*************** STRINGS ADDED TO v0.5.100 **********************************************************************************) LANGdemiNewTab_Caption = 'Neuer Verzeichnis _tab'; LANGdeFilePopupMenu_Properties = '(_P) Eigenschaften'; LANGdeCommandEntry_Tooltip = 'Benutze %s als Datei/Verzeichnis Platzhalter'; LANGdemiFiles_Caption = 'Nur Dateien'; (*************** STRINGS ADDED TO v0.6.31 **********************************************************************************) LANGdePasswordButton_Tooltip = 'Archiv benötigt ein Passwort.'#10'Klick um es festzulegen'; LANGdeHandleRunFromArchive_Bytes = 'bytes'; LANGdeHandleRunFromArchive_FileTypeDesc_Unknown = '(unbekannt)'; LANGdeHandleRunFromArchive_NotAssociated = '(nicht zugewiesen)'; LANGdeHandleRunFromArchive_SelfExecutable = '(selbstausführend)'; LANGdeHandleRunFromArchive_CouldntCreateTemporaryDirectory = 'Konnte kein temporäres Verzeichnis erstellen "%s": %s.'#10#10'Bitte überprüfe die Einstellungen des temporären Verzeichnisses und versuche es noch einmal.'; LANGdeFRunFromVFS_Caption = 'Eigenschaften der gepackten Dateien'; LANGdeFRunFromVFS_TitleLabel = 'Dateieigenschaften'; LANGdeFRunFromVFS_FileNameLabel = 'Datei Name:'; LANGdeFRunFromVFS_FileTypeLabel = 'Datei Typ:'; LANGdeFRunFromVFS_SizeLabel = 'Größe:'; LANGdeFRunFromVFS_PackedSizeLabel = 'Komprimierte Größe:'; LANGdeFRunFromVFS_DateLabel = 'Ändere Datum:'; LANGdeFRunFromVFS_InfoLabel = 'Dateien können nicht direkt aus dem Archiv geöffnet werden. Wenn Sie die Buttons unten verwenden wird die Datei (alle Dateien) ausgepackt in ein temporäres Verzeichnis. Temporäre Dateien werden gelöscht wenn Tux Commander geschlossen wird.'; LANGdeFRunFromVFS_OpensWithLabel = 'Öffne mit:'; LANGdeFRunFromVFS_ExecuteButton = 'E_xtrahiere und öffne'; LANGdeFRunFromVFS_ExecuteAllButton = 'Extrahiere _alles und öffne'; LANGdeFSetPassword_Caption = 'Setze Passwort'; LANGdeFSetPassword_Label1_Caption = 'Passwort benötigt'; LANGdeFSetPassword_Label2_Caption = 'Das Archiv ist verschlüsselt und benötigt ein Passwort, um die Dateien entpacken zu können'; LANGdeFSetPassword_ShowPasswordCheckButton = 'De_maskiere das Passwort'; (*************** STRINGS ADDED TO v0.6.48 **********************************************************************************) LANGdeCopyFileNamesToClipboard = '(_C) Kopiere Dateinamen in die Zwischenablage'; LANGdeCopyFullPathNamesToClipboard = '(_f) Kopiere den gesamten Pfadnamen in die Zwischenablage'; LANGdeCopyPathToClipboard = '(_C) Kopiere den Pfadnamen in die Zwischenablage'; LANGdePreferences_DateFormatLabel_Caption = 'Datum _format:'; LANGdePreferences_System = 'System'; LANGdePreferences_Custom = 'Custom...'; LANGdePreferences_CustomDateFormatEntry_Tooltip = 'Gib ein individuelles Datum-Format ein.'#10'Bitte schaue in "man strftime" für die Syntax.'; LANGdePreferences_TimeFormatLabel_Caption = '(_T) Zeitformat:'; LANGdePreferences_CustomTimeFormatEntry_Tooltip = 'Gib ein individuelles Zeit-Format ein.'#10'Bitte schaue in "man strftime" für die Syntax.'; LANGdePreferences_DateTimeFormatLabel_Caption = 'Datum/Zeit _ordnung:'; LANGdePreferences_QuickRenameSkipExtCheckBox = 'Wähle Dateiname nur für die Schnell-Umbenennung'; LANGdePreferences_QuickRenameSkipExtCheckBox_Tooltip = 'Schliesse die Datei-Erweiterung bei der Schnell-Umbenennung von der Auswahl aus'; LANGdePreferences_SortDirectoriesLikeFilesCheckBox = 'Sortiere Verzeichnisse wi_e Dateien'; LANGdePreferences_SortDirectoriesLikeFilesCheckBox_Tooltip = 'Markiere das, wenn die Verzeichnisse mit den Dateien sortiert werden sollen. Verzeichnisse sind immer in der Liste oben.'#10'Nicht markiert: Verzeichnisse werden immer nach dem Namen sortiert.'; LANGdePreferences_QuickSearchLabel_Caption = 'Schnellsuche (_k):'; LANGdePreferences_QuickSearchOptionMenu_Tooltip = 'Die Ctrl+S/Alt+S und "/" Tastatureingaben sind immer aktiv und werden durch diese Einstellung nicht beeinflusst.'; LANGdePreferences_QuickSearch_Option1 = 'nur Ctrl+S/Alt+S und "/"'; LANGdePreferences_QuickSearch_Option2 = 'Ctrl+Alt+Buchstaben'; LANGdePreferences_QuickSearch_Option3 = 'Alt+Buchstaben'; LANGdePreferences_QuickSearch_Option4 = 'Buchstaben direkt'; LANGdePreferences_TempPathLabel_Caption = 'Temporäre Dateien'; LANGdePreferences_VFSTempPathLabel_Caption = '_VFS temporäre Dateien:'; LANGdePreferences_VFSTempPathEntry_Tooltip = 'Ort der temporären Dateien, die vom VFS-subsystem benutzt werden, z.B. beim Öffnen direkt aus einem Archiv. Alle temporären Dateien werden am Ende gelöscht.'; (*************** STRINGS ADDED TO v0.6.67 **********************************************************************************) LANGdePreferences_RightClickSelectCheckBox = 'Right mouse button selection mode'; LANGdePreferences_RightClickSelectCheckBox_Tooltip = 'Use right mouse button to select, like mc.'; LANGdeGtkMountOperation_ConnectAnonymously = 'Connect _anonymously'; LANGdeGtkMountOperation_ConnectAsUser = 'Connect as u_ser:'; LANGdeGtkMountOperation_Username = '_Username:'; LANGdeGtkMountOperation_Domain = '_Domain:'; LANGdeGtkMountOperation_Password = '_Password:'; LANGdeGtkMountOperation_DoNotSavePassword = 'Do not save password'; LANGdeGtkMountOperation_ForgetPasswordImmediately = 'Forget password _immediately'; LANGdeGtkMountOperation_RememberPasswordUntilYouLogout = 'Remember password until you _logout'; LANGdeGtkMountOperation_SavePasswordInConnectionManager = '_Save password in Connection Manager'; LANGdeGtkMountOperation_RememberForever = 'Remember _forever'; LANGdeFSymlink_RelativePath = '_Relative path'; LANGdeFConnectionManager_DuplicateButton_Caption = 'D_uplicate...'; LANGdeFConnectionManager_DuplicateButton_Tooltip = 'Duplicate selected connection'; LANGdeFConnectionManager_DoNotSavePasswordsCheckBox_Label = '_Do not store passwords internally (but still use gnome-keyring)'; LANGdeFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip = 'By checking this option on, Tux Commander will never save passwords into its connection list. Due to the GVFS nature, gnome-keyring will still be used to retrieve stored passwords from your desktop session.'; LANGdeFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label = 'Do not synchronize passwords to gnome-_keyring'; LANGdeFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip = 'Don''t tell gnome-keyring to save any passwords.'; LANGdeFConnectionManager_DuplicateMenuItem_Caption = 'D_uplicate...'; LANGdeFQuickConnect_Caption = 'Quick connect'; LANGdeFQuickConnect_TitleLabel_Caption = 'Quick connect'; LANGdeFQuickConnect_ConnectToURILabel_Caption = 'C_onnect to URI:'; LANGdeLinkToS = 'Link to %s'; LANGdeOpenDirectoryInBackgroundTab = 'Open directory in _background tab'; LANGdeTheActiveConnectionHasNotBeenSaved = 'The active connection has not been saved. Do you want to save it to Connection Manager?'#10#10'%s'; LANGdeTheArchiveIsEncryptedAndRequiresPassword = 'The archive is encrypted and requires password'; (********************************************************************************************************************************) procedure SetTranslation; begin LANGF2Button_Caption := LANGdeF2Button_Caption; LANGF3Button_Caption := LANGdeF3Button_Caption; LANGF4Button_Caption := LANGdeF4Button_Caption; LANGF5Button_Caption := LANGdeF5Button_Caption; LANGF6Button_Caption := LANGdeF6Button_Caption; LANGF7Button_Caption := LANGdeF7Button_Caption; LANGF8Button_Caption := LANGdeF8Button_Caption; LANGmnuFile_Caption := LANGdemnuFile_Caption; LANGmnuMark_Caption := LANGdemnuMark_Caption; LANGmnuCommands_Caption := LANGdemnuCommands_Caption; LANGmnuHelp_Caption := LANGdemnuHelp_Caption; LANGmiExit_Caption := LANGdemiExit_Caption; LANGmiSelectGroup_Caption := LANGdemiSelectGroup_Caption; LANGmiUnselectGroup_Caption := LANGdemiUnselectGroup_Caption; LANGmiSelectAll_Caption := LANGdemiSelectAll_Caption; LANGmiUnselectAll_Caption := LANGdemiUnselectAll_Caption; LANGmiInvertSelection_Caption := LANGdemiInvertSelection_Caption; LANGmiRefresh_Caption := LANGdemiRefresh_Caption; LANGmiAbout_Caption := LANGdemiAbout_Caption; LANGColumn1_Caption := LANGdeColumn1_Caption; LANGColumn2_Caption := LANGdeColumn2_Caption; LANGColumn3_Caption := LANGdeColumn3_Caption; LANGColumn4_Caption := LANGdeColumn4_Caption; LANGColumn5_Caption := LANGdeColumn5_Caption; LANGExpandSelection := LANGdeExpandSelection; LANGShrinkSelection := LANGdeShrinkSelection; LANGNoMatchesFound := LANGdeNoMatchesFound; LANGNoFilesSelected := LANGdeNoFilesSelected; LANGSelectedFilesDirectories := LANGdeSelectedFilesDirectories; LANGDirectoryS := LANGdeDirectoryS; LANGFileS := LANGdeFileS; LANGDoYouReallyWantToDeleteTheS := LANGdeDoYouReallyWantToDeleteTheS; LANGDoYouReallyWantToDeleteTheSS := LANGdeDoYouReallyWantToDeleteTheSS; LANGCopyFiles := LANGdeCopyFiles; LANGMoveRenameFiles := LANGdeMoveRenameFiles; LANGCopyDFileDirectoriesTo := LANGdeCopyDFileDirectoriesTo; LANGMoveRenameDFileDirectoriesTo := LANGdeMoveRenameDFileDirectoriesTo; LANGCopySC := LANGdeCopySC; LANGMoveRenameSC := LANGdeMoveRenameSC; LANGQuickFind := LANGdeQuickFind; LANGAboutString := LANGdeAboutString; LANGAboutStringGnome := LANGdeAboutStringGnome; LANGDiskStatFmt := LANGdeDiskStatFmt; LANGDiskStatVolNameFmt := LANGdeDiskStatVolNameFmt; LANGStatusLineFmt := LANGdeStatusLineFmt; LANGPanelStrings[False] := LANGdePanelStrings[False]; LANGPanelStrings[True] := LANGdePanelStrings[True]; LANGDIR := LANGdeDIR; LANGErrorGettingListingForSPanel := LANGdeErrorGettingListingForSPanel; LANGErrorGettingListingForSPanelNoPath := LANGdeErrorGettingListingForSPanelNoPath; LANGErrorCreatingNewDirectorySInSPanel := LANGdeErrorCreatingNewDirectorySInSPanel; LANGErrorCreatingNewDirectorySInSPanelNoPath := LANGdeErrorCreatingNewDirectorySInSPanelNoPath; LANGTheFileDirectory := LANGdeTheFileDirectory; LANGCouldNotBeDeleted := LANGdeCouldNotBeDeleted; LANGCouldNotBeDeletedS := LANGdeCouldNotBeDeletedS; LANGUserCancelled := LANGdeUserCancelled; LANGTheDirectorySIsNotEmpty := LANGdeTheDirectorySIsNotEmpty; LANGCannotCopyFile := LANGdeCannotCopyFile; LANGCopyError := LANGdeCopyError; LANGMoveError := LANGdeMoveError; LANGOverwriteS := LANGdeOverwriteS; LANGWithFileS := LANGdeWithFileS; LANGOvewriteSBytesS := LANGdeOvewriteSBytesS; LANGTheFile := LANGdeTheFile; LANGCopy := LANGdeCopy; LANGMove := LANGdeMove; LANGTheDirectory := LANGdeTheDirectory; LANGTheSymbolicLink := LANGdeTheSymbolicLink; LANGCannotMoveFile := LANGdeCannotMoveFile; LANGCouldNotBeCreated := LANGdeCouldNotBeCreated; LANGCouldNotBeCreatedS := LANGdeCouldNotBeCreatedS; LANGFromS := LANGdeFromS; LANGToS := LANGdeToS; LANGCannotCopyFileToItself := LANGdeCannotCopyFileToItself; LANGMemoryAllocationFailed := LANGdeMemoryAllocationFailed; LANGCannotOpenSourceFile := LANGdeCannotOpenSourceFile; LANGCannotOpenDestinationFile := LANGdeCannotOpenDestinationFile; LANGCannotCloseDestinationFile := LANGdeCannotCloseDestinationFile; LANGCannotCloseSourceFile := LANGdeCannotCloseSourceFile; LANGCannotReadFromSourceFile := LANGdeCannotReadFromSourceFile; LANGCannotWriteToDestinationFile := LANGdeCannotWriteToDestinationFile; LANGUnknownException := LANGdeUnknownException; LANGNoAccess := LANGdeNoAccess; LANGUnknownError := LANGdeUnknownError; LANGCreateANewDirectory := LANGdeCreateANewDirectory; LANGEnterDirectoryName := LANGdeEnterDirectoryName; LANGOverwriteQuestion := LANGdeOverwriteQuestion; LANGOverwriteButton_Caption := LANGdeOverwriteButton_Caption; LANGOverwriteAllButton_Caption := LANGdeOverwriteAllButton_Caption; LANGSkipButton_Caption := LANGdeSkipButton_Caption; LANGOverwriteAllOlderButton_Caption := LANGdeOverwriteAllOlderButton_Caption; LANGSkipAllButton_Caption := LANGdeSkipAllButton_Caption; LANGRenameButton_Caption := LANGdeRenameButton_Caption; LANGAppendButton_Caption := LANGdeAppendButton_Caption; LANGRename := LANGdeRename; LANGRenameFile := LANGdeRenameFile; LANGIgnoreButton_Caption := LANGdeIgnoreButton_Caption; LANGProgress := LANGdeProgress; LANGCancel := LANGdeCancel; LANGDelete := LANGdeDelete; LANGSpecifyFileType := LANGdeSpecifyFileType; LANGRemoveDirectory := LANGdeRemoveDirectory; LANGDoYouWantToDeleteItWithAllItsFilesAndSubdirectories := LANGdeDoYouWantToDeleteItWithAllItsFilesAndSubdirectories; LANGRetry := LANGdeRetry; LANGDeleteButton_Caption := LANGdeDeleteButton_Caption; LANGAll := LANGdeAll; LANGCopyFilesSC := LANGdeCopyFilesSC; LANGAppendQuestion := LANGdeAppendQuestion; LANGPreparingList := LANGdePreparingList; LANGYouMustSelectAValidFile := LANGdeYouMustSelectAValidFile; LANGmiVerifyChecksums := LANGdemiVerifyChecksums; LANGVerifyChecksumsCaption := LANGdeVerifyChecksumsCaption; LANGCheckButtonCaptionCheck := LANGdeCheckButtonCaptionCheck; LANGCheckButtonCaptionStop := LANGdeCheckButtonCaptionStop; LANGFileListTooltip := LANGdeFileListTooltip; LANGFilenameColumnCaption := LANGdeFilenameColumnCaption; LANGTheFileSYouAreTryingToOpenIsQuiteBig := LANGdeTheFileSYouAreTryingToOpenIsQuiteBig; LANGAnErrorOccuredWhileInitializingMemoryBlock := LANGdeAnErrorOccuredWhileInitializingMemoryBlock; LANGAnErrorOccuredWhileOpeningFileSS := LANGdeAnErrorOccuredWhileOpeningFileSS; LANGAnErrorOccuredWhileReadingFileSS := LANGdeAnErrorOccuredWhileReadingFileSS; LANGChecksumNotChecked := LANGdeChecksumNotChecked; LANGChecksumChecking := LANGdeChecksumChecking; LANGChecksumInterrupted := LANGdeChecksumInterrupted; LANGChecksumDOK := LANGdeChecksumDOK; LANGmiCreateChecksumsCaption := LANGdemiCreateChecksumsCaption; LANGYouMustSelectAtLeastOneFileToCalculateChecksum := LANGdeYouMustSelectAtLeastOneFileToCalculateChecksum; LANGCreateChecksumsCaption := LANGdeCreateChecksumsCaption; LANGCCHKSUMPage1Text := LANGdeCCHKSUMPage1Text; LANGCCHKSUMPage4Text := LANGdeCCHKSUMPage4Text; LANGCCHKSUMPage6Text := LANGdeCCHKSUMPage6Text; LANGCCHKSUMPage7Text := LANGdeCCHKSUMPage7Text; LANGCCHKSUMPage1Title := LANGdeCCHKSUMPage1Title; LANGCCHKSUMPage2Title := LANGdeCCHKSUMPage2Title; LANGCCHKSUMPage3Title := LANGdeCCHKSUMPage3Title; LANGCCHKSUMPage4Title := LANGdeCCHKSUMPage4Title; LANGCCHKSUMPage5Title := LANGdeCCHKSUMPage5Title; LANGCCHKSUMPage6Title := LANGdeCCHKSUMPage6Title; LANGCCHKSUMPage7Title := LANGdeCCHKSUMPage7Title; LANGCCHKSUMSFVFile := LANGdeCCHKSUMSFVFile; LANGCCHKSUMMD5sumFile := LANGdeCCHKSUMMD5sumFile; LANGCCHKSUMFileName := LANGdeCCHKSUMFileName; LANGCCHKSUMCreateSeparateChecksumFiles := LANGdeCCHKSUMCreateSeparateChecksumFiles; LANGCCHKSUMNowProcessingFileS := LANGdeCCHKSUMNowProcessingFileS; LANGCCHKSUMFinishCaption := LANGdeCCHKSUMFinishCaption; LANGCCHKSUMAreYouSureYouWantToAbortTheProcessing := LANGdeCCHKSUMAreYouSureYouWantToAbortTheProcessing; LANGCCHKSUMAnErrorOccuredWhileOpeningFileSS := LANGdeCCHKSUMAnErrorOccuredWhileOpeningFileSS; LANGCCHKSUMAnErrorOccuredWhileReadingFileSS := LANGdeCCHKSUMAnErrorOccuredWhileReadingFileSS; LANGCCHKSUMAnErrorOccuredWhileWritingFileSS := LANGdeCCHKSUMAnErrorOccuredWhileWritingFileSS; LANGAnErrorOccuredWhileWritingFileSS := LANGdeAnErrorOccuredWhileWritingFileSS; LANGTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt := LANGdeTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt; LANGTheTargetFileSCannotBeRemovedS := LANGdeTheTargetFileSCannotBeRemovedS; LANGMergeCaption := LANGdeMergeCaption; LANGPleaseInsertNextDiskOrGiveDifferentLocation := LANGdePleaseInsertNextDiskOrGiveDifferentLocation; LANGMergeOfSSucceeded := LANGdeMergeOfSSucceeded; LANGWarningCreatedFileFailsCRCCheck := LANGdeWarningCreatedFileFailsCRCCheck; LANGMergeOfSSucceeded_NoCRCFileAvailable := LANGdeMergeOfSSucceeded_NoCRCFileAvailable; LANGMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory := LANGdeMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory; LANGMergeSC := LANGdeMergeSC; LANGmiSplitFileCaption := LANGdemiSplitFileCaption; LANGmiMergeFilesCaption := LANGdemiMergeFilesCaption; LANGSplitTheFileSToDirectory := LANGdeSplitTheFileSToDirectory; LANGSplitSC := LANGdeSplitSC; LANGSplitFile := LANGdeSplitFile; LANGBytesPerFile := LANGdeBytesPerFile; LANGAutomatic := LANGdeAutomatic; LANGDeleteFilesOnTargetDisk := LANGdeDeleteFilesOnTargetDisk; LANGSplitCaption := LANGdeSplitCaption; LANGCannotOpenFileS := LANGdeCannotOpenFileS; LANGCannotSplitTheFileToMoreThan999Parts := LANGdeCannotSplitTheFileToMoreThan999Parts; LANGThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem := LANGdeThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem; LANGThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem := LANGdeThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem; LANGAnErrorOccuredWhileOperationS := LANGdeAnErrorOccuredWhileOperationS; LANGSplitOfSSucceeded := LANGdeSplitOfSSucceeded; LANGSplitOfSFailed := LANGdeSplitOfSFailed; LANGmnuShow_Caption := LANGdemnuShow_Caption; LANGmiShowDotFiles_Caption := LANGdemiShowDotFiles_Caption; LANGTheFileYouAreTryingToOpenIsQuiteBig := LANGdeTheFileYouAreTryingToOpenIsQuiteBig; LANGCannotExecuteSPleaseCheckTheConfiguration := LANGdeCannotExecuteSPleaseCheckTheConfiguration; LANGEdit := LANGdeEdit; LANGEnterFilenameToEdit := LANGdeEnterFilenameToEdit; LANGmnuSettings_Caption := LANGdemnuSettings_Caption; LANGmiFileTypes_Caption := LANGdemiFileTypes_Caption; LANGThereIsNoApplicationAssociatedWithS := LANGdeThereIsNoApplicationAssociatedWithS; LANGErrorExecutingCommand := LANGdeErrorExecutingCommand; LANGEditFileTypesCaption := LANGdeEditFileTypesCaption; LANGTitleLabel_Caption := LANGdeTitleLabel_Caption; LANGExtensionsColumn := LANGdeExtensionsColumn; LANGDescriptionColumn := LANGdeDescriptionColumn; LANGFileTypesList := LANGdeFileTypesList; LANGActionName := LANGdeActionName; LANGCommand := LANGdeCommand; LANGSetDefaultActionButton_Caption := LANGdeSetDefaultActionButton_Caption; LANGRunInTerminalCheckBox_Caption := LANGdeRunInTerminalCheckBox_Caption; LANGAutodetectCheckBox_Caption := LANGdeAutodetectCheckBox_Caption; LANGBrowseButton_Caption := LANGdeBrowseButton_Caption; LANGCommandLabel_Caption := LANGdeCommandLabel_Caption; LANGDescriptionLabel_Caption := LANGdeDescriptionLabel_Caption; LANGFNameExtLabel_Caption := LANGdeFNameExtLabel_Caption; LANGNotebookPageExtensions := LANGdeNotebookPageExtensions; LANGNotebookPageActions := LANGdeNotebookPageActions; LANGDefault := LANGdeDefault; LANGCannotSaveFileTypeAssociationsBecauseOtherProcess := LANGdeCannotSaveFileTypeAssociationsBecauseOtherProcess; LANGDefaultColor := LANGdeDefaultColor; LANGIcon := LANGdeIcon; LANGBrowseForIcon := LANGdeBrowseForIcon; LANGSelectFileTypeColor := LANGdeSelectFileTypeColor; LANGColor := LANGdeColor; LANGmiChangePermissions_Caption := LANGdemiChangePermissions_Caption; LANGmiChangeOwner_Caption := LANGdemiChangeOwner_Caption; LANGmiCreateSymlink_Caption := LANGdemiCreateSymlink_Caption; LANGmiEditSymlink_Caption := LANGdemiEditSymlink_Caption; LANGChmodProgress := LANGdeChmodProgress; LANGChownProgress := LANGdeChownProgress; LANGYouMustSelectAValidSymbolicLink := LANGdeYouMustSelectAValidSymbolicLink; LANGPopupRunS := LANGdePopupRunS; LANGPopupOpenS := LANGdePopupOpenS; LANGPopupGoUp := LANGdePopupGoUp; LANGPopupOpenWithS := LANGdePopupOpenWithS; LANGPopupDefault := LANGdePopupDefault; LANGPopupOpenWith := LANGdePopupOpenWith; LANGPopupViewFile := LANGdePopupViewFile; LANGPopupEditFile := LANGdePopupEditFile; LANGPopupMakeSymlink := LANGdePopupMakeSymlink; LANGPopupRename := LANGdePopupRename; LANGPopupDelete := LANGdePopupDelete; LANGDialogChangePermissions := LANGdeDialogChangePermissions; LANGCouldNotBeChmoddedS := LANGdeCouldNotBeChmoddedS; LANGDialogChangeOwner := LANGdeDialogChangeOwner; LANGCouldNotBeChownedS := LANGdeCouldNotBeChownedS; LANGDialogMakeSymlink := LANGdeDialogMakeSymlink; LANGDialogEditSymlink := LANGdeDialogEditSymlink; LANGFEditSymlink_Caption := LANGdeFEditSymlink_Caption; LANGFEditSymlink_SymbolicLinkFilename := LANGdeFEditSymlink_SymbolicLinkFilename; LANGFEditSymlink_SymbolicLinkPointsTo := LANGdeFEditSymlink_SymbolicLinkPointsTo; LANGFChmod_Caption := LANGdeFChmod_Caption; LANGFChmod_PermissionFrame := LANGdeFChmod_PermissionFrame; LANGFChmod_FileFrame := LANGdeFChmod_FileFrame; LANGFChmod_ApplyRecursivelyFor := LANGdeFChmod_ApplyRecursivelyFor; LANGFChmod_miAllFiles := LANGdeFChmod_miAllFiles; LANGFChmod_miDirectories := LANGdeFChmod_miDirectories; LANGFChmod_OctalLabel := LANGdeFChmod_OctalLabel; LANGFChmod_SUID := LANGdeFChmod_SUID; LANGFChmod_SGID := LANGdeFChmod_SGID; LANGFChmod_Sticky := LANGdeFChmod_Sticky; LANGFChmod_RUSR := LANGdeFChmod_RUSR; LANGFChmod_WUSR := LANGdeFChmod_WUSR; LANGFChmod_XUSR := LANGdeFChmod_XUSR; LANGFChmod_RGRP := LANGdeFChmod_RGRP; LANGFChmod_WGRP := LANGdeFChmod_WGRP; LANGFChmod_XGRP := LANGdeFChmod_XGRP; LANGFChmod_ROTH := LANGdeFChmod_ROTH; LANGFChmod_WOTH := LANGdeFChmod_WOTH; LANGFChmod_XOTH := LANGdeFChmod_XOTH; LANGFChmod_TextLabel := LANGdeFChmod_TextLabel; LANGFChmod_FileLabel := LANGdeFChmod_FileLabel; LANGFChown_Caption := LANGdeFChown_Caption; LANGFChown_OwnerFrame := LANGdeFChown_OwnerFrame; LANGFChown_GroupFrame := LANGdeFChown_GroupFrame; LANGFChown_FileFrame := LANGdeFChown_FileFrame; LANGFChown_ApplyRecursively := LANGdeFChown_ApplyRecursively; LANGFSymlink_Caption := LANGdeFSymlink_Caption; LANGFSymlink_ExistingFilename := LANGdeFSymlink_ExistingFilename; LANGFSymlink_SymlinkFilename := LANGdeFSymlink_SymlinkFilename; LANGmnuBookmarks_Caption := LANGdemnuBookmarks_Caption; LANGmiAddBookmark_Caption := LANGdemiAddBookmark_Caption; LANGmiEditBookmarks_Caption := LANGdemiEditBookmarks_Caption; LANGBookmarkPopupDelete_Caption := LANGdeBookmarkPopupDelete_Caption; LANGmiPreferences_Caption := LANGdemiPreferences_Caption; LANGTheCurrentDirectoryAlreadyExistsInTheBookmarksList := LANGdeTheCurrentDirectoryAlreadyExistsInTheBookmarksList; LANGSomeOtherInstanceChanged := LANGdeSomeOtherInstanceChanged; LANGPreferences_Caption := LANGdePreferences_Caption; LANGPreferences_TitleLabel_Caption := LANGdePreferences_TitleLabel_Caption; LANGPreferences_GeneralPage := LANGdePreferences_GeneralPage; LANGPreferences_FontsPage := LANGdePreferences_FontsPage; LANGPreferences_ColorsPage := LANGdePreferences_ColorsPage; LANGPreferences_RowHeight := LANGdePreferences_RowHeight; LANGPreferences_NumHistoryItems := LANGdePreferences_NumHistoryItems; LANGPreferences_Default := LANGdePreferences_Default; LANGPreferences_ClearReadonlyAttribute := LANGdePreferences_ClearReadonlyAttribute; LANGPreferences_DisableMouseRenaming := LANGdePreferences_DisableMouseRenaming; LANGPreferences_ShowFiletypeIconsInList := LANGdePreferences_ShowFiletypeIconsInList; LANGPreferences_ExternalAppsLabel := LANGdePreferences_ExternalAppsLabel; LANGPreferences_Viewer := LANGdePreferences_Viewer; LANGPreferences_Editor := LANGdePreferences_Editor; LANGPreferences_Terminal := LANGdePreferences_Terminal; LANGPreferences_ListFont := LANGdePreferences_ListFont; LANGPreferences_Change := LANGdePreferences_Change; LANGPreferences_UseDefaultFont := LANGdePreferences_UseDefaultFont; LANGPreferences_Foreground := LANGdePreferences_Foreground; LANGPreferences_Background := LANGdePreferences_Background; LANGPreferences_NormalItem := LANGdePreferences_NormalItem; LANGPreferences_SetToDefaultToUseGTKThemeColors := LANGdePreferences_SetToDefaultToUseGTKThemeColors; LANGPreferences_Cursor := LANGdePreferences_Cursor; LANGPreferences_InactiveItem := LANGdePreferences_InactiveItem; LANGPreferences_SelectedItem := LANGdePreferences_SelectedItem; LANGPreferences_LinkItem := LANGdePreferences_LinkItem; LANGPreferences_LinkItemHint := LANGdePreferences_LinkItemHint; LANGPreferences_DotFileItem := LANGdePreferences_DotFileItem; LANGPreferences_DotFileItemHint := LANGdePreferences_DotFileItemHint; LANGPreferences_BrowseForApplication := LANGdePreferences_BrowseForApplication; LANGPreferences_DefaultS := LANGdePreferences_DefaultS; LANGPreferences_SelectFont := LANGdePreferences_SelectFont; LANGBookmarkButton_Tooltip := LANGdeBookmarkButton_Tooltip; LANGUpButton_Tooltip := LANGdeUpButton_Tooltip; LANGRootButton_Tooltip := LANGdeRootButton_Tooltip; LANGHomeButton_Tooltip := LANGdeHomeButton_Tooltip; LANGLeftEqualButton_Tooltip := LANGdeLeftEqualButton_Tooltip; LANGRightEqualButton_Tooltip := LANGdeRightEqualButton_Tooltip; LANGmiShowDirectorySizes_Caption := LANGdemiShowDirectorySizes_Caption; LANGmiTargetSource_Caption := LANGdemiTargetSource_Caption; LANGFileTypeDirectory := LANGdeFileTypeDirectory; LANGFileTypeFile := LANGdeFileTypeFile; LANGFileTypeMetafile := LANGdeFileTypeMetafile; LANGPreferencesPanelsPage := LANGdePreferencesPanelsPage; LANGPreferencesApplicationsPage := LANGdePreferencesApplicationsPage; LANGPreferencesExperimentalPage := LANGdePreferencesExperimentalPage; LANGPreferencesSelectAllDirectoriesCheckBox_Caption := LANGdePreferencesSelectAllDirectoriesCheckBox_Caption; LANGPreferencesNewStyleAltOCheckBox_Caption := LANGdePreferencesNewStyleAltOCheckBox_Caption; LANGPreferencesNewStyleAltOCheckBox_Tooltip := LANGdePreferencesNewStyleAltOCheckBox_Tooltip; LANGPreferencesShowFuncButtonsCheckBox_Caption := LANGdePreferencesShowFuncButtonsCheckBox_Caption; LANGPreferencesSizeFormatLabel_Caption := LANGdePreferencesSizeFormatLabel_Caption; LANGPreferencesmiSizeFormat1 := LANGdePreferencesmiSizeFormat1; LANGPreferencesmiSizeFormat6 := LANGdePreferencesmiSizeFormat6; LANGPreferencesAutodetectXApp := LANGdePreferencesAutodetectXApp; LANGPreferencesAlwaysRunInTerminal := LANGdePreferencesAlwaysRunInTerminal; LANGPreferencesNeverRunInTerminal := LANGdePreferencesNeverRunInTerminal; LANGPreferencesCmdLineBehaviourLabel_Caption := LANGdePreferencesCmdLineBehaviourLabel_Caption; LANGPreferencesFeatures := LANGdePreferencesFeatures; LANGPreferencesDisableMouseRename_Tooltip := LANGdePreferencesDisableMouseRename_Tooltip; LANGPreferencesDisableFileTipsCheckBox_Caption := LANGdePreferencesDisableFileTipsCheckBox_Caption; LANGPreferencesDisableFileTipsCheckBox_Tooltip := LANGdePreferencesDisableFileTipsCheckBox_Tooltip; LANGPreferencesShow := LANGdePreferencesShow; LANGPreferencesDirsInBoldCheckBox_Caption := LANGdePreferencesDirsInBoldCheckBox_Caption; LANGPreferencesDisableDirectoryBracketsCheckBox_Caption := LANGdePreferencesDisableDirectoryBracketsCheckBox_Caption; LANGPreferencesOctalPermissionsCheckBox_Caption := LANGdePreferencesOctalPermissionsCheckBox_Caption; LANGPreferencesOctalPermissionsCheckBox_Tooltip := LANGdePreferencesOctalPermissionsCheckBox_Tooltip; LANGPreferencesMovement := LANGdePreferencesMovement; LANGPreferencesLynxLikeMotionCheckBox_Caption := LANGdePreferencesLynxLikeMotionCheckBox_Caption; LANGPreferencesInsertMovesDownCheckBox_Caption := LANGdePreferencesInsertMovesDownCheckBox_Caption; LANGPreferencesSpaceMovesDownCheckBox_Caption := LANGdePreferencesSpaceMovesDownCheckBox_Caption; LANGPreferencesViewer := LANGdePreferencesViewer; LANGPreferencesCommandSC := LANGdePreferencesCommandSC; LANGPreferencesUseInternalViewer := LANGdePreferencesUseInternalViewer; LANGPreferencesEditor := LANGdePreferencesEditor; LANGPreferencesTerminal := LANGdePreferencesTerminal; LANGPreferencesExperimentalFeatures := LANGdePreferencesExperimentalFeatures; LANGPreferencesExperimentalWarningLabel_Caption := LANGdePreferencesExperimentalWarningLabel_Caption; LANGPreferencesFocusRefreshCheckBox_Caption := LANGdePreferencesFocusRefreshCheckBox_Caption; LANGPreferencesFocusRefreshCheckBox_Tooltip := LANGdePreferencesFocusRefreshCheckBox_Tooltip; LANGPreferencesWMCompatModeCheckBox_Caption := LANGdePreferencesWMCompatModeCheckBox_Caption; LANGPreferencesWMCompatModeCheckBox_Tooltip := LANGdePreferencesWMCompatModeCheckBox_Tooltip; LANGPreferencesCompatUseLibcSystemCheckBox_Caption := LANGdePreferencesCompatUseLibcSystemCheckBox_Caption; LANGPreferencesCompatUseLibcSystemCheckBox_Tooltip := LANGdePreferencesCompatUseLibcSystemCheckBox_Tooltip; LANGmiSearchCaption2 := LANGdemiSearchCaption2; LANGmiNoMounterBarCaption := LANGdemiNoMounterBarCaption; LANGmiShowOneMounterBarCaption := LANGdemiShowOneMounterBarCaption; LANGmiShowTwoMounterBarCaption := LANGdemiShowTwoMounterBarCaption; LANGmnuNetworkCaption := LANGdemnuNetworkCaption; LANGmiConnectionsCaption := LANGdemiConnectionsCaption; LANGmiOpenConnectionCaption := LANGdemiOpenConnectionCaption; LANGmiQuickConnectCaption := LANGdemiQuickConnectCaption; LANGmnuPluginsCaption := LANGdemnuPluginsCaption; LANGmiTestPluginCaption := LANGdemiTestPluginCaption; LANGmiMounterSettingsCaption := LANGdemiMounterSettingsCaption; LANGmiColumnsCaption := LANGdemiColumnsCaption; LANGmiSavePositionCaption := LANGdemiSavePositionCaption; LANGmiMountCaption := LANGdemiMountCaption; LANGmiUmountCaption := LANGdemiUmountCaption; LANGmiEjectCaption := LANGdemiEjectCaption; LANGmiDuplicateTabCaption := LANGdemiDuplicateTabCaption; LANGmiCloseTabCaption := LANGdemiCloseTabCaption; LANGmiCloseAllTabsCaption := LANGdemiCloseAllTabsCaption; LANGCannotDetermineDestinationEngine := LANGdeCannotDetermineDestinationEngine; LANGCannotLoadFile := LANGdeCannotLoadFile; LANGMountPointDevice := LANGdeMountPointDevice; LANGMountSC := LANGdeMountSC; LANGNoPluginsFound := LANGdeNoPluginsFound; LANGPluginAbout := LANGdePluginAbout; LANGCouldntOpenURI := LANGdeCouldntOpenURI; LANGPluginAboutInside := LANGdePluginAboutInside; LANGAreYouSureCloseAllTabs := LANGdeAreYouSureCloseAllTabs; LANGCouldntOpenURIArchive := LANGdeCouldntOpenURIArchive; LANGThereIsNoModuleAvailable := LANGdeThereIsNoModuleAvailable; LANGIgnoreError := LANGdeIgnoreError; LANGErrorMount := LANGdeErrorMount; LANGErrorUmount := LANGdeErrorUmount; LANGErrorEject := LANGdeErrorEject; LANGMounterPrefs_Caption := LANGdeMounterPrefs_Caption; LANGMounterPrefs_TitleLabelCaption := LANGdeMounterPrefs_TitleLabelCaption; LANGMounterPrefs_ListViewFrameCaption := LANGdeMounterPrefs_ListViewFrameCaption; LANGMounterPrefs_MountName := LANGdeMounterPrefs_MountName; LANGMounterPrefs_MountPoint := LANGdeMounterPrefs_MountPoint; LANGMounterPrefs_Device := LANGdeMounterPrefs_Device; LANGMounterPrefs_MoveUpButtonTooltip := LANGdeMounterPrefs_MoveUpButtonTooltip; LANGMounterPrefs_MoveDownButtonTooltip := LANGdeMounterPrefs_MoveDownButtonTooltip; LANGMounterPrefs_UseFSTabDefaultsCheckBox := LANGdeMounterPrefs_UseFSTabDefaultsCheckBox; LANGMounterPrefs_UseFSTabDefaultsCheckBoxTooltip := LANGdeMounterPrefs_UseFSTabDefaultsCheckBoxTooltip; LANGMounterPrefs_ToggleModeCheckBox := LANGdeMounterPrefs_ToggleModeCheckBox; LANGMounterPrefs_ToggleModeCheckBoxTooltip := LANGdeMounterPrefs_ToggleModeCheckBoxTooltip; LANGMounterPrefs_PropertiesFrameCaption := LANGdeMounterPrefs_PropertiesFrameCaption; LANGMounterPrefs_DisplayTextLabelCaption := LANGdeMounterPrefs_DisplayTextLabelCaption; LANGMounterPrefs_MountPointLabelCaption := LANGdeMounterPrefs_MountPointLabelCaption; LANGMounterPrefs_MountDeviceLabelCaption := LANGdeMounterPrefs_MountDeviceLabelCaption; LANGMounterPrefs_DeviceTypeLabelCaption := LANGdeMounterPrefs_DeviceTypeLabelCaption; LANGMounterPrefs_miLocalDiskCaption := LANGdeMounterPrefs_miLocalDiskCaption; LANGMounterPrefs_miRemovableCaption := LANGdeMounterPrefs_miRemovableCaption; LANGMounterPrefs_miCDCaption := LANGdeMounterPrefs_miCDCaption; LANGMounterPrefs_miFloppyCaption := LANGdeMounterPrefs_miFloppyCaption; LANGMounterPrefs_miNetworkCaption := LANGdeMounterPrefs_miNetworkCaption; LANGMounterPrefs_MountCommandLabelCaption := LANGdeMounterPrefs_MountCommandLabelCaption; LANGMounterPrefs_UmountCommandLabelCaption := LANGdeMounterPrefs_UmountCommandLabelCaption; LANGMounterPrefs_MountCommandEntryTooltip := LANGdeMounterPrefs_MountCommandEntryTooltip; LANGMounterPrefs_UmountCommandEntryTooltip := LANGdeMounterPrefs_UmountCommandEntryTooltip; LANGMounterPrefs_IconLabelCaption := LANGdeMounterPrefs_IconLabelCaption; LANGConnMgr_Caption := LANGdeConnMgr_Caption; LANGConnMgr_ConnectButton := LANGdeConnMgr_ConnectButton; LANGConnMgr_OpenConnection := LANGdeConnMgr_OpenConnection; LANGConnMgr_NameColumn := LANGdeConnMgr_NameColumn; LANGConnMgr_URIColumn := LANGdeConnMgr_URIColumn; LANGConnMgr_AddConnectionButtonCaption := LANGdeConnMgr_AddConnectionButtonCaption; LANGConnMgr_AddConnectionButtonTooltip := LANGdeConnMgr_AddConnectionButtonTooltip; LANGConnMgr_EditButtonCaption := LANGdeConnMgr_EditButtonCaption; LANGConnMgr_EditButtonTooltip := LANGdeConnMgr_EditButtonTooltip; LANGConnMgr_RemoveButtonCaption := LANGdeConnMgr_RemoveButtonCaption; LANGConnMgr_RemoveButtonTooltip := LANGdeConnMgr_RemoveButtonTooltip; LANGConnMgr_DoYouWantDelete := LANGdeConnMgr_DoYouWantDelete; LANGConnProp_FTP := LANGdeConnProp_FTP; LANGConnProp_SFTP := LANGdeConnProp_SFTP; LANGConnProp_SMB := LANGdeConnProp_SMB; LANGConnProp_HTTP := LANGdeConnProp_HTTP; LANGConnProp_HTTPS := LANGdeConnProp_HTTPS; LANGConnProp_Other := LANGdeConnProp_Other; LANGConnProp_Caption := LANGdeConnProp_Caption; LANGConnProp_VFSModule := LANGdeConnProp_VFSModule; LANGConnProp_URI := LANGdeConnProp_URI; LANGConnProp_URIEntryTooltip := LANGdeConnProp_URIEntryTooltip; LANGConnProp_DetailedInformations := LANGdeConnProp_DetailedInformations; LANGConnProp_Name := LANGdeConnProp_Name; LANGConnProp_Server := LANGdeConnProp_Server; LANGConnProp_Username := LANGdeConnProp_Username; LANGConnProp_UserNameEntryTooltip := LANGdeConnProp_UserNameEntryTooltip; LANGConnProp_Password := LANGdeConnProp_Password; LANGConnProp_TargetDirectory := LANGdeConnProp_TargetDirectory; LANGConnProp_ServiceType := LANGdeConnProp_ServiceType; LANGConnProp_MaskPassword := LANGdeConnProp_MaskPassword; LANGConnProp_MenuItemCaption := LANGdeConnProp_MenuItemCaption; LANGConnLogin_Caption := LANGdeConnLogin_Caption; LANGConnLogin_Login := LANGdeConnLogin_Login; LANGConnLogin_ExperimentalWarningLabelCaption := LANGdeConnLogin_ExperimentalWarningLabelCaption; LANGConnLogin_Username := LANGdeConnLogin_Username; LANGConnLogin_Password := LANGdeConnLogin_Password; LANGConnLogin_AnonymousCheckButton := LANGdeConnLogin_AnonymousCheckButton; LANGColumns_Caption := LANGdeColumns_Caption; LANGColumns_Title := LANGdeColumns_Title; LANGColumns_MoveUpButtonTooltip := LANGdeColumns_MoveUpButtonTooltip; LANGColumns_MoveDownButtonTooltip := LANGdeColumns_MoveDownButtonTooltip; LANGColumns_TitlesLongName := LANGdeColumns_TitlesLongName; LANGColumns_TitlesLongNameExt := LANGdeColumns_TitlesLongNameExt; LANGColumns_TitlesLongExt := LANGdeColumns_TitlesLongExt; LANGColumns_TitlesLongSize := LANGdeColumns_TitlesLongSize; LANGColumns_TitlesLongDateTime := LANGdeColumns_TitlesLongDateTime; LANGColumns_TitlesLongDate := LANGdeColumns_TitlesLongDate; LANGColumns_TitlesLongTime := LANGdeColumns_TitlesLongTime; LANGColumns_TitlesLongUser := LANGdeColumns_TitlesLongUser; LANGColumns_TitlesLongGroup := LANGdeColumns_TitlesLongGroup; LANGColumns_TitlesLongAttr := LANGdeColumns_TitlesLongAttr; LANGColumns_TitlesShortName := LANGdeColumns_TitlesShortName; LANGColumns_TitlesShortNameExt := LANGdeColumns_TitlesShortNameExt; LANGColumns_TitlesShortExt := LANGdeColumns_TitlesShortExt; LANGColumns_TitlesShortSize := LANGdeColumns_TitlesShortSize; LANGColumns_TitlesShortDateTime := LANGdeColumns_TitlesShortDateTime; LANGColumns_TitlesShortDate := LANGdeColumns_TitlesShortDate; LANGColumns_TitlesShortTime := LANGdeColumns_TitlesShortTime; LANGColumns_TitlesShortUser := LANGdeColumns_TitlesShortUser; LANGColumns_TitlesShortGroup := LANGdeColumns_TitlesShortGroup; LANGColumns_TitlesShortAttr := LANGdeColumns_TitlesShortAttr; LANGTestPlugin_Caption := LANGdeTestPlugin_Caption; LANGTestPlugin_Title := LANGdeTestPlugin_Title; LANGTestPlugin_ExperimentalWarningLabelCaption := LANGdeTestPlugin_ExperimentalWarningLabelCaption; LANGTestPlugin_Plugin := LANGdeTestPlugin_Plugin; LANGTestPlugin_Command := LANGdeTestPlugin_Command; LANGTestPlugin_Username := LANGdeTestPlugin_Username; LANGTestPlugin_Password := LANGdeTestPlugin_Password; LANGTestPlugin_AnonymousCheckButton := LANGdeTestPlugin_AnonymousCheckButton; LANGTestPlugin_NoPluginsFound := LANGdeTestPlugin_NoPluginsFound; LANGRemoteWait_Caption := LANGdeRemoteWait_Caption; LANGRemoteWait_OperationInProgress := LANGdeRemoteWait_OperationInProgress; LANGRemoteWait_ItemsFound := LANGdeRemoteWait_ItemsFound; LANGSearch_Bytes := LANGdeSearch_Bytes; LANGSearch_kB := LANGdeSearch_kB; LANGSearch_MB := LANGdeSearch_MB; LANGSearch_days := LANGdeSearch_days; LANGSearch_weeks := LANGdeSearch_weeks; LANGSearch_months := LANGdeSearch_months; LANGSearch_years := LANGdeSearch_years; LANGSearch_Caption := LANGdeSearch_Caption; LANGSearch_General := LANGdeSearch_General; LANGSearch_Advanced := LANGdeSearch_Advanced; LANGSearch_SearchResults := LANGdeSearch_SearchResults; LANGSearch_SearchFor := LANGdeSearch_SearchFor; LANGSearch_FileMaskEntryTooltip := LANGdeSearch_FileMaskEntryTooltip; LANGSearch_SearchIn := LANGdeSearch_SearchIn; LANGSearch_SearchArchivesCheckButton := LANGdeSearch_SearchArchivesCheckButton; LANGSearch_FindText := LANGdeSearch_FindText; LANGSearch_FindTextEntryTooltip := LANGdeSearch_FindTextEntryTooltip; LANGSearch_CaseSensitiveCheckButton := LANGdeSearch_CaseSensitiveCheckButton; LANGSearch_StayCurrentFSCheckButton := LANGdeSearch_StayCurrentFSCheckButton; LANGSearch_CaseSensitiveMatchCheckButton := LANGdeSearch_CaseSensitiveMatchCheckButton; LANGSearch_Size := LANGdeSearch_Size; LANGSearch_Date := LANGdeSearch_Date; LANGSearch_BiggerThan := LANGdeSearch_BiggerThan; LANGSearch_SmallerThan := LANGdeSearch_SmallerThan; LANGSearch_ModifiedBetweenRadioButton := LANGdeSearch_ModifiedBetweenRadioButton; LANGSearch_NotModifiedAfterRadioButton := LANGdeSearch_NotModifiedAfterRadioButton; LANGSearch_ModifiedLastRadioButton := LANGdeSearch_ModifiedLastRadioButton; LANGSearch_ModifiedNotLastRadionButton := LANGdeSearch_ModifiedNotLastRadionButton; LANGSearch_ModifiedBetweenEntry1 := LANGdeSearch_ModifiedBetweenEntry1; LANGSearch_ViewButtonCaption := LANGdeSearch_ViewButtonCaption; LANGSearch_NewSearchButtonCaption := LANGdeSearch_NewSearchButtonCaption; LANGSearch_GoToFileButtonCaption := LANGdeSearch_GoToFileButtonCaption; LANGSearch_FeedToListboxButtonCaption := LANGdeSearch_FeedToListboxButtonCaption; LANGSearch_StatusSC := LANGdeSearch_StatusSC; LANGSearch_Ready := LANGdeSearch_Ready; LANGSearch_PreparingToSearch := LANGdeSearch_PreparingToSearch; LANGSearch_SearchInProgress := LANGdeSearch_SearchInProgress; LANGSearch_UserCancelled := LANGdeSearch_UserCancelled; LANGSearch_SearchFinished := LANGdeSearch_SearchFinished; LANGSearch_FilesFound := LANGdeSearch_FilesFound; LANGSearch_And := LANGdeSearch_And; LANGCloseOpenConnection := LANGdeCloseOpenConnection; LANGDuplicateTabWarning := LANGdeDuplicateTabWarning; LANGDontShowAgain := LANGdeDontShowAgain; LANGSwitchOtherPanelWarning := LANGdeSwitchOtherPanelWarning; LANGOpenConnectionsWarning := LANGdeOpenConnectionsWarning; LANGmiDisconnect_Caption := LANGdemiDisconnect_Caption; LANGDisconnectButton_Tooltip := LANGdeDisconnectButton_Tooltip; LANGLeaveArchiveButton_Tooltip := LANGdeLeaveArchiveButton_Tooltip; LANGOpenTerminalButton_Tooltip := LANGdeOpenTerminalButton_Tooltip; LANGOpenTerminalButton_Caption := LANGdeOpenTerminalButton_Caption; LANGShowTextUIDsCheckBox_Caption := LANGdeShowTextUIDsCheckBox_Caption; LANGShowTextUIDsCheckBox_Tooltip := LANGdeShowTextUIDsCheckBox_Tooltip; LANGmiNewTab_Caption := LANGdemiNewTab_Caption; LANGFilePopupMenu_Properties := LANGdeFilePopupMenu_Properties; LANGCommandEntry_Tooltip := LANGdeCommandEntry_Tooltip; LANGmiFiles_Caption := LANGdemiFiles_Caption; LANGPasswordButton_Tooltip := LANGdePasswordButton_Tooltip; LANGHandleRunFromArchive_Bytes := LANGdeHandleRunFromArchive_Bytes; LANGHandleRunFromArchive_FileTypeDesc_Unknown := LANGdeHandleRunFromArchive_FileTypeDesc_Unknown; LANGHandleRunFromArchive_NotAssociated := LANGdeHandleRunFromArchive_NotAssociated; LANGHandleRunFromArchive_SelfExecutable := LANGdeHandleRunFromArchive_SelfExecutable; LANGHandleRunFromArchive_CouldntCreateTemporaryDirectory := LANGdeHandleRunFromArchive_CouldntCreateTemporaryDirectory; LANGFRunFromVFS_Caption := LANGdeFRunFromVFS_Caption; LANGFRunFromVFS_TitleLabel := LANGdeFRunFromVFS_TitleLabel; LANGFRunFromVFS_FileNameLabel := LANGdeFRunFromVFS_FileNameLabel; LANGFRunFromVFS_FileTypeLabel := LANGdeFRunFromVFS_FileTypeLabel; LANGFRunFromVFS_SizeLabel := LANGdeFRunFromVFS_SizeLabel; LANGFRunFromVFS_PackedSizeLabel := LANGdeFRunFromVFS_PackedSizeLabel; LANGFRunFromVFS_DateLabel := LANGdeFRunFromVFS_DateLabel; LANGFRunFromVFS_InfoLabel := LANGdeFRunFromVFS_InfoLabel; LANGFRunFromVFS_OpensWithLabel := LANGdeFRunFromVFS_OpensWithLabel; LANGFRunFromVFS_ExecuteButton := LANGdeFRunFromVFS_ExecuteButton; LANGFRunFromVFS_ExecuteAllButton := LANGdeFRunFromVFS_ExecuteAllButton; LANGFSetPassword_Caption := LANGdeFSetPassword_Caption; LANGFSetPassword_Label1_Caption := LANGdeFSetPassword_Label1_Caption; LANGFSetPassword_Label2_Caption := LANGdeFSetPassword_Label2_Caption; LANGFSetPassword_ShowPasswordCheckButton := LANGdeFSetPassword_ShowPasswordCheckButton; LANGCopyFileNamesToClipboard := LANGdeCopyFileNamesToClipboard; LANGCopyFullPathNamesToClipboard := LANGdeCopyFullPathNamesToClipboard; LANGCopyPathToClipboard := LANGdeCopyPathToClipboard; LANGPreferences_DateFormatLabel_Caption := LANGdePreferences_DateFormatLabel_Caption; LANGPreferences_System := LANGdePreferences_System; LANGPreferences_Custom := LANGdePreferences_Custom; LANGPreferences_CustomDateFormatEntry_Tooltip := LANGdePreferences_CustomDateFormatEntry_Tooltip; LANGPreferences_TimeFormatLabel_Caption := LANGdePreferences_TimeFormatLabel_Caption; LANGPreferences_CustomTimeFormatEntry_Tooltip := LANGdePreferences_CustomTimeFormatEntry_Tooltip; LANGPreferences_DateTimeFormatLabel_Caption := LANGdePreferences_DateTimeFormatLabel_Caption; LANGPreferences_QuickRenameSkipExtCheckBox := LANGdePreferences_QuickRenameSkipExtCheckBox; LANGPreferences_QuickRenameSkipExtCheckBox_Tooltip := LANGdePreferences_QuickRenameSkipExtCheckBox_Tooltip; LANGPreferences_SortDirectoriesLikeFilesCheckBox := LANGdePreferences_SortDirectoriesLikeFilesCheckBox; LANGPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip := LANGdePreferences_SortDirectoriesLikeFilesCheckBox_Tooltip; LANGPreferences_QuickSearchLabel_Caption := LANGdePreferences_QuickSearchLabel_Caption; LANGPreferences_QuickSearchOptionMenu_Tooltip := LANGdePreferences_QuickSearchOptionMenu_Tooltip; LANGPreferences_QuickSearch_Option1 := LANGdePreferences_QuickSearch_Option1; LANGPreferences_QuickSearch_Option2 := LANGdePreferences_QuickSearch_Option2; LANGPreferences_QuickSearch_Option3 := LANGdePreferences_QuickSearch_Option3; LANGPreferences_QuickSearch_Option4 := LANGdePreferences_QuickSearch_Option4; LANGPreferences_TempPathLabel_Caption := LANGdePreferences_TempPathLabel_Caption; LANGPreferences_VFSTempPathLabel_Caption := LANGdePreferences_VFSTempPathLabel_Caption; LANGPreferences_VFSTempPathEntry_Tooltip := LANGdePreferences_VFSTempPathEntry_Tooltip; LANGPreferences_RightClickSelectCheckBox := LANGdePreferences_RightClickSelectCheckBox; LANGPreferences_RightClickSelectCheckBox_Tooltip := LANGdePreferences_RightClickSelectCheckBox_Tooltip; LANGGtkMountOperation_ConnectAnonymously := LANGdeGtkMountOperation_ConnectAnonymously; LANGGtkMountOperation_ConnectAsUser := LANGdeGtkMountOperation_ConnectAsUser; LANGGtkMountOperation_Username := LANGdeGtkMountOperation_Username; LANGGtkMountOperation_Domain := LANGdeGtkMountOperation_Domain; LANGGtkMountOperation_Password := LANGdeGtkMountOperation_Password; LANGGtkMountOperation_DoNotSavePassword := LANGdeGtkMountOperation_DoNotSavePassword; LANGGtkMountOperation_ForgetPasswordImmediately := LANGdeGtkMountOperation_ForgetPasswordImmediately; LANGGtkMountOperation_RememberPasswordUntilYouLogout := LANGdeGtkMountOperation_RememberPasswordUntilYouLogout; LANGGtkMountOperation_SavePasswordInConnectionManager := LANGdeGtkMountOperation_SavePasswordInConnectionManager; LANGGtkMountOperation_RememberForever := LANGdeGtkMountOperation_RememberForever; LANGFSymlink_RelativePath := LANGdeFSymlink_RelativePath; LANGFConnectionManager_DuplicateButton_Caption := LANGdeFConnectionManager_DuplicateButton_Caption; LANGFConnectionManager_DuplicateButton_Tooltip := LANGdeFConnectionManager_DuplicateButton_Tooltip; LANGFConnectionManager_DoNotSavePasswordsCheckBox_Label := LANGdeFConnectionManager_DoNotSavePasswordsCheckBox_Label; LANGFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip := LANGdeFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip; LANGFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label := LANGdeFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label; LANGFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip := LANGdeFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip; LANGFConnectionManager_DuplicateMenuItem_Caption := LANGdeFConnectionManager_DuplicateMenuItem_Caption; LANGFQuickConnect_Caption := LANGdeFQuickConnect_Caption; LANGFQuickConnect_TitleLabel_Caption := LANGdeFQuickConnect_TitleLabel_Caption; LANGFQuickConnect_ConnectToURILabel_Caption := LANGdeFQuickConnect_ConnectToURILabel_Caption; LANGLinkToS := LANGdeLinkToS; LANGOpenDirectoryInBackgroundTab := LANGdeOpenDirectoryInBackgroundTab; LANGTheActiveConnectionHasNotBeenSaved := LANGdeTheActiveConnectionHasNotBeenSaved; LANGTheArchiveIsEncryptedAndRequiresPassword := LANGdeTheArchiveIsEncryptedAndRequiresPassword; end; initialization AddTranslation('DE', @SetTranslation); AddTranslation('de_DE', @SetTranslation); end. tuxcmd-0.6.70+dfsg/translations/UTranslation_EN.pas0000644000175000017500000024663211300022643021304 0ustar salvisalvi(* Tux Commander - UTranslation_EN - English Localization constants Copyright (C) 2008 Tomas Bzatek Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UTranslation_EN; (*************************************************************************** * Info for translators: - please use UTF-8 encoding when making translations, the whole GTK+ 2 is using it to display non-ASCII characters properly - please change the few lines at the bottom of this file to your locale string (e.g. en_US for English translation) ***************************************************************************) interface implementation uses ULocale; const LANGenF2Button_Caption = 'F2 - Rename'; LANGenF3Button_Caption = 'F3 - View'; LANGenF4Button_Caption = 'F4 - Edit'; LANGenF5Button_Caption = 'F5 - Copy'; LANGenF6Button_Caption = 'F6 - Move'; LANGenF7Button_Caption = 'F7 - MkDir'; LANGenF8Button_Caption = 'F8 - Delete'; LANGenmnuFile_Caption = '_File'; LANGenmnuMark_Caption = '_Mark'; LANGenmnuCommands_Caption = '_Commands'; LANGenmnuHelp_Caption = '_Help'; LANGenmiExit_Caption = 'E_xit'; LANGenmiSelectGroup_Caption = 'Select _Group...'; LANGenmiUnselectGroup_Caption = '_Unselect Group...'; LANGenmiSelectAll_Caption = '_Select All'; LANGenmiUnselectAll_Caption = 'U_nselect All'; LANGenmiInvertSelection_Caption = '_Invert Selection'; LANGenmiRefresh_Caption = '_Refresh'; LANGenmiAbout_Caption = '_About...'; LANGenColumn1_Caption = 'Name'; LANGenColumn2_Caption = 'Ext'; LANGenColumn3_Caption = 'Size'; LANGenColumn4_Caption = 'Date'; LANGenColumn5_Caption = 'Attr'; LANGenExpandSelection = 'Expand selection'; LANGenShrinkSelection = 'Shrink selection'; LANGenNoMatchesFound = 'No matches found'; LANGenNoFilesSelected = 'No files selected!'; LANGenSelectedFilesDirectories = '%d selected files/directories'; LANGenDirectoryS = 'directory %s'; LANGenFileS = 'file %s'; LANGenDoYouReallyWantToDeleteTheS = 'Do you really want to delete the %s ?'; LANGenDoYouReallyWantToDeleteTheSS = 'Do you really want to delete the %s ?'#10'%s'; LANGenCopyFiles = 'Copy files'; LANGenMoveRenameFiles = 'Move/Rename files'; LANGenCopyDFileDirectoriesTo = 'Copy %d file/directories to'; LANGenMoveRenameDFileDirectoriesTo = 'Move/Rename %d file/directories to'; LANGenCopySC = 'Copy:'; LANGenMoveRenameSC = 'Move/Rename:'; LANGenQuickFind = ' Quick Find:'; LANGenAboutString = 'Tux Commander'#10'Version %s'#10'Build date: %s'#10#10'Copyright (c) 2009 Tomas Bzatek'#10'E-mail: tbzatek@users.sourceforge.net'#10'Website: http://tuxcmd.sourceforge.net/'; LANGenAboutStringGnome = 'version %s'#10'Build date: %s'#10'Website: http://tuxcmd.sourceforge.net/'; LANGenDiskStatFmt = '%s of %s free'; // LANGenDiskStatFmt = '%s of %s free'; LANGenDiskStatVolNameFmt = '[%s] %s of %s free'; // LANGenDiskStatVolNameFmt = '[%s] %s of %s free'; // LANGenDiskStatVolNameFmt = '[%s] %s of %s free'; LANGenStatusLineFmt = '%s of %s in %d of %d files selected'; LANGenPanelStrings : array[boolean] of string = ('right', 'left'); LANGenDIR = ''; LANGenErrorGettingListingForSPanel = 'Error getting listing for %s panel:'#10' %s'#10#10'Path = ''%s'''; LANGenErrorGettingListingForSPanelNoPath = 'Error getting listing for %s panel:'#10' %s'; LANGenErrorCreatingNewDirectorySInSPanel = 'Error creating new directory ''%s'' in %s panel:'#10' %s'; LANGenErrorCreatingNewDirectorySInSPanelNoPath = 'Error creating new directory in %s panel:'#10' %s'; LANGenTheFileDirectory = 'The file/directory'; LANGenCouldNotBeDeleted = 'could not be deleted'; LANGenCouldNotBeDeletedS = 'could not be deleted: %s'; LANGenUserCancelled = 'User cancelled!'; LANGenTheDirectorySIsNotEmpty = 'The directory %s is not empty!'; LANGenCannotCopyFile = 'Cannot copy file'; LANGenCopyError = 'Copy error'; LANGenMoveError = 'Move error'; LANGenOverwriteS = 'Overwrite: %s'; LANGenWithFileS = 'With file: %s'; LANGenOvewriteSBytesS = '%s bytes, %s'; LANGenTheFile = 'The file'; LANGenCopy = 'Copy'; LANGenMove = 'Move'; LANGenTheDirectory = 'The directory'; LANGenTheSymbolicLink = 'The symbolic link'; LANGenCannotMoveFile = 'Cannot move file'; LANGenCouldNotBeCreated = 'could not be created'; LANGenCouldNotBeCreatedS = 'could not be created: %s'; LANGenFromS = 'From: %s'; LANGenToS = 'To: %s'; LANGenCannotCopyFileToItself = 'Cannot copy file to itself'; LANGenMemoryAllocationFailed = 'Memory allocation failed:'; LANGenCannotOpenSourceFile = 'Cannot open source file'; LANGenCannotOpenDestinationFile = 'Cannot open destination file'; LANGenCannotCloseDestinationFile = 'Cannot close destination file'; LANGenCannotCloseSourceFile = 'Cannot close source file'; LANGenCannotReadFromSourceFile = 'Cannot read from source file'; LANGenCannotWriteToDestinationFile = 'Cannot write to destination file'; LANGenUnknownException = 'Unknown Exception'; LANGenNoAccess = 'No Access'; LANGenUnknownError = 'Unknown Error'; LANGenCreateANewDirectory = 'Create a new directory'; LANGenEnterDirectoryName = 'Enter _directory name:'; LANGenOverwriteQuestion = 'Overwrite question'; LANGenOverwriteButton_Caption = '_Overwrite'; LANGenOverwriteAllButton_Caption = 'Overwrite _all'; LANGenSkipButton_Caption = '_Skip'; LANGenOverwriteAllOlderButton_Caption = 'Overwrite all ol_der'; LANGenSkipAllButton_Caption = 'S_kip all'; LANGenRenameButton_Caption = '_Rename'; LANGenAppendButton_Caption = 'A_ppend'; LANGenRename = 'Rename'; LANGenRenameFile = 'Rename file ''%s'' to'; LANGenIgnoreButton_Caption = '_Ignore'; LANGenProgress = 'Progress'; LANGenCancel = '_Cancel'; LANGenDelete = 'Delete:'; LANGenSpecifyFileType = '_Specify file type:'; LANGenRemoveDirectory = 'Remove directory'; LANGenDoYouWantToDeleteItWithAllItsFilesAndSubdirectories = 'Do you want to delete it with all its files and subdirectories?'; LANGenRetry = '_Retry'; LANGenDeleteButton_Caption = '_Delete'; LANGenAll = '_All'; LANGenCopyFilesSC = 'Copy files:'; LANGenAppendQuestion = 'Are you sure you want to append file ''%s'' to ''%s''?'; LANGenPreparingList = 'Preparing list...'; LANGenYouMustSelectAValidFile = 'You must select a valid file!'; LANGenmiVerifyChecksums = '_Verify checksums'; LANGenVerifyChecksumsCaption = 'Verify checksums'; LANGenCheckButtonCaptionCheck = '_Check'; LANGenCheckButtonCaptionStop = '_Stop'; LANGenFileListTooltip = '[?] - Not checked'#10'[OK] - Checksum OK'#10'[BAD] - Checksum BAD'#10'[N/A] - File not available'; LANGenFilenameColumnCaption = 'Filename'; LANGenTheFileSYouAreTryingToOpenIsQuiteBig = 'The file ''%s'' you are trying to open is quite big (%s bytes). It may not be a valid checksum file.'#10#10'Do you want to load it anyway?'; LANGenAnErrorOccuredWhileInitializingMemoryBlock = 'An error occured while initializing memory block. Close some programs and try it again.'; LANGenAnErrorOccuredWhileOpeningFileSS = 'An error occured while opening file ''%s'':'#10' %s'; LANGenAnErrorOccuredWhileReadingFileSS = 'An error occured while reading file ''%s'':'#10' %s'; LANGenChecksumNotChecked = 'Status: Not checked'; LANGenChecksumChecking = 'Status: Checking...'; LANGenChecksumInterrupted = 'Status: Interrupted'; LANGenChecksumDOK = 'Status: %d%% OK'; LANGenmiCreateChecksumsCaption = '_Create checksums...'; LANGenYouMustSelectAtLeastOneFileToCalculateChecksum = 'You must select at least one file to calculate checksum!'; LANGenCreateChecksumsCaption = 'Create checksums'; LANGenCCHKSUMPage1Text = 'You are going to make checksums for'#10'the selected files. If you didn''t selected'#10'all files you want, close this druid and'#10'select more files.'; LANGenCCHKSUMPage4Text = 'The druid is ready to make checksums for your'#10'selected files. This operation can take a few minutes.'#10'Press Forward to continue.'; LANGenCCHKSUMPage6Text = 'There were errors making the checksum:'; LANGenCCHKSUMPage7Text = 'The checksum creation is finished and'#10'your files are ready.'#10#10'Click "Finish" to exit.'; LANGenCCHKSUMPage1Title = 'Prepare files for checksum'; LANGenCCHKSUMPage2Title = 'Select checksums file type'; LANGenCCHKSUMPage3Title = 'Choose filename'; LANGenCCHKSUMPage4Title = 'Ready to check'; LANGenCCHKSUMPage5Title = 'Processing...'; LANGenCCHKSUMPage6Title = 'Error!'; LANGenCCHKSUMPage7Title = 'Finished'; LANGenCCHKSUMSFVFile = 'SFV File'; LANGenCCHKSUMMD5sumFile = 'MD5sum File'; LANGenCCHKSUMFileName = 'File _Name:'; LANGenCCHKSUMCreateSeparateChecksumFiles = 'Create _separate checksum files'; LANGenCCHKSUMNowProcessingFileS = 'Now processing file: %s'; LANGenCCHKSUMFinishCaption = '_Finish'; LANGenCCHKSUMAreYouSureYouWantToAbortTheProcessing = 'Are you sure you want to abort the processing?'; LANGenCCHKSUMAnErrorOccuredWhileOpeningFileSS = 'An error occured while opening file ''%s'': %s'#10; LANGenCCHKSUMAnErrorOccuredWhileReadingFileSS = 'An error occured while reading file ''%s'': %s'#10; LANGenCCHKSUMAnErrorOccuredWhileWritingFileSS = 'An error occured while writing file ''%s'': %s'#10; LANGenAnErrorOccuredWhileWritingFileSS = 'An error occured while writing file ''%s'':'#10' %s'; LANGenTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt = 'The target file ''%s'' already exists. Do you want to overwrite it?'; LANGenTheTargetFileSCannotBeRemovedS = 'The target file ''%s'' cannot be removed: %s'; LANGenMergeCaption = 'Merge'; LANGenPleaseInsertNextDiskOrGiveDifferentLocation = 'Please insert next disk, or give different location:'; LANGenMergeOfSSucceeded = 'Merge of ''%s'' succeeded (CRC checksum OK).'; LANGenWarningCreatedFileFailsCRCCheck = 'Warning: Created file fails CRC check!'; LANGenMergeOfSSucceeded_NoCRCFileAvailable = 'Merge of ''%s'' succeeded (no CRC file available).'; LANGenMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory = 'Merge ''%s'' and all files with ascending names to the following directory:'; LANGenMergeSC = 'Merge:'; LANGenmiSplitFileCaption = '_Split File...'; LANGenmiMergeFilesCaption = '_Merge Files...'; LANGenSplitTheFileSToDirectory = '_Split the file ''%s'' to directory:'; LANGenSplitSC = 'Split:'; LANGenSplitFile = 'Split File'; LANGenBytesPerFile = '_Bytes per file:'; LANGenAutomatic = 'Automatic'; LANGenDeleteFilesOnTargetDisk = '_Delete files on target disk (usable for removable media)'; LANGenSplitCaption = 'Split'; LANGenCannotOpenFileS = 'Cannot open file ''%s'''; LANGenCannotSplitTheFileToMoreThan999Parts = 'Cannot split the file to more than 999 parts!'; LANGenThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem = 'There are some files in the target directory:'#10'%s'#10'Do you want to delete them?'; LANGenThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem = 'There are %d files in the target directory. Do you want to delete them?'; LANGenAnErrorOccuredWhileOperationS = 'An error occured while operation: %s'; LANGenSplitOfSSucceeded = 'Split of ''%s'' succeeded.'; LANGenSplitOfSFailed = 'Split of ''%s'' failed!'; LANGenmnuShow_Caption = 'Sho_w'; LANGenmiShowDotFiles_Caption = 'Show _dot files'; LANGenTheFileYouAreTryingToOpenIsQuiteBig = 'The file you are trying to open is quite big. Loading it in an externel application (such as gedit) can cause system slowdown.'#10'Do you want to continue?'; LANGenCannotExecuteSPleaseCheckTheConfiguration = 'Cannot execute ''%s''. Please check the configuration or set the file type association correctly.'; LANGenEdit = 'Edit'; LANGenEnterFilenameToEdit = '_Enter filename to edit:'; LANGenmnuSettings_Caption = 'Se_ttings'; LANGenmiFileTypes_Caption = 'File _types...'; LANGenThereIsNoApplicationAssociatedWithS = 'There is no application associated with "%s".'#10#10'You can configure Tux Commander to associate applications with file types. Do you want to associate an application with this file type now?'; LANGenErrorExecutingCommand = 'Error executing command!'; LANGenEditFileTypesCaption = 'Edit File Types'; LANGenTitleLabel_Caption = 'File Types Configuration'; LANGenExtensionsColumn = 'Extensions'; LANGenDescriptionColumn = 'Description'; LANGenFileTypesList = 'File types list'; LANGenActionName = 'Action Name'; LANGenCommand = 'Command'; LANGenSetDefaultActionButton_Caption = '_Set as default'; LANGenRunInTerminalCheckBox_Caption = 'Run in _Terminal'; LANGenAutodetectCheckBox_Caption = 'Autodetect _GUI application'; LANGenBrowseButton_Caption = '_Browse...'; LANGenCommandLabel_Caption = 'Co_mmand:'; LANGenDescriptionLabel_Caption = 'D_escription:'; LANGenFNameExtLabel_Caption = 'A_dd extension:'; LANGenNotebookPageExtensions = 'File type'; LANGenNotebookPageActions = 'Actions'; LANGenDefault = ' (default)'; LANGenCannotSaveFileTypeAssociationsBecauseOtherProcess = 'Cannot save file type associations, because other process has updated it while running this instance of application.'; LANGenDefaultColor = 'De_fault color'; LANGenIcon = '_Icon:'; LANGenBrowseForIcon = 'Browse for icon'; LANGenSelectFileTypeColor = 'Select File Type Color'; LANGenColor = 'Co_lor:'; LANGenmiChangePermissions_Caption = 'Change Per_missions...'; LANGenmiChangeOwner_Caption = 'Change _Owner/Group...'; LANGenmiCreateSymlink_Caption = 'Create Sym_link...'; LANGenmiEditSymlink_Caption = '_Edit Symlink...'; LANGenChmodProgress = 'Change permissions:'; LANGenChownProgress = 'Change owner:'; LANGenYouMustSelectAValidSymbolicLink = 'You must select a valid symbolic link!'; LANGenPopupRunS = 'E_xecute %s'; LANGenPopupOpenS = 'O_pen %s'; LANGenPopupGoUp = '_Go up'; LANGenPopupOpenWithS = 'Open with %s'; LANGenPopupDefault = ' (default)'; LANGenPopupOpenWith = 'O_pen with...'; LANGenPopupViewFile = '_View file'; LANGenPopupEditFile = 'Ed_it file'; LANGenPopupMakeSymlink = 'Make _symlink'; LANGenPopupRename = '_Rename'; LANGenPopupDelete = '_Delete'; LANGenDialogChangePermissions = 'Change permissions'; LANGenCouldNotBeChmoddedS = 'could not be chmodded: %s'; LANGenDialogChangeOwner = 'Change owner'; LANGenCouldNotBeChownedS = 'could not be chowned: %s'; LANGenDialogMakeSymlink = 'Make symlink'; LANGenDialogEditSymlink = 'Edit symlink'; LANGenFEditSymlink_Caption = 'Edit symbolic link'; LANGenFEditSymlink_SymbolicLinkFilename = '_Symbolic link filename:'; LANGenFEditSymlink_SymbolicLinkPointsTo = 'Symbolic link points _to:'; LANGenFChmod_Caption = 'Access Permissions'; LANGenFChmod_PermissionFrame = 'Permissions'; LANGenFChmod_FileFrame = 'File'; LANGenFChmod_ApplyRecursivelyFor = 'Apply _recursively for'; LANGenFChmod_miAllFiles = 'All files and directories'; LANGenFChmod_miDirectories = 'Directories only'; LANGenFChmod_OctalLabel = '_Octal:'; LANGenFChmod_SUID = 'SUID - Set user ID on execution'; LANGenFChmod_SGID = 'SGID - Set group ID on execution'; LANGenFChmod_Sticky = 'Sticky bit'; LANGenFChmod_RUSR = 'RUSR - Read by owner'; LANGenFChmod_WUSR = 'WUSR - Write by owner'; LANGenFChmod_XUSR = 'XUSR - Execute/Search by owner'; LANGenFChmod_RGRP = 'RGRP - Read by group'; LANGenFChmod_WGRP = 'WGRP - Write by group'; LANGenFChmod_XGRP = 'XGRP - Execute/Search by group'; LANGenFChmod_ROTH = 'ROTH - Read by others'; LANGenFChmod_WOTH = 'WOTH - Write by others'; LANGenFChmod_XOTH = 'XOTH - Execute/Search by others'; LANGenFChmod_TextLabel = 'Text: %s'; LANGenFChmod_FileLabel = 'File: %s'#10'Text: %s'#10 + 'Octal: %d'#10'Owner: %s'#10 + 'Group: %s'; LANGenFChown_Caption = 'Change owner/group'; LANGenFChown_OwnerFrame = 'User name'; LANGenFChown_GroupFrame = 'Group name'; LANGenFChown_FileFrame = 'File'; LANGenFChown_ApplyRecursively = 'Apply _recursively'; LANGenFSymlink_Caption = 'Create symbolic link'; LANGenFSymlink_ExistingFilename = '_Existing filename (filename symlink will point to):'; LANGenFSymlink_SymlinkFilename = '_Symbolic link filename:'; LANGenmnuBookmarks_Caption = '_Bookmarks'; LANGenmiAddBookmark_Caption = 'Add Bookmark'; LANGenmiEditBookmarks_Caption = 'Edit Bookmarks'; LANGenBookmarkPopupDelete_Caption = '_Delete'; LANGenmiPreferences_Caption = '_Preferences...'; LANGenTheCurrentDirectoryAlreadyExistsInTheBookmarksList = 'The current directory already exists in the bookmarks list'; LANGenSomeOtherInstanceChanged = 'Some other instance of Tux Commander changed the configuration. Do you want to apply the new settings?'#10#10'Warning: If you press No at this point, the configuration will be overwritten on this instance'' exit!'; LANGenPreferences_Caption = 'Preferences'; LANGenPreferences_TitleLabel_Caption = 'Application Preferences'; LANGenPreferences_GeneralPage = 'General'; LANGenPreferences_FontsPage = 'Fonts'; LANGenPreferences_ColorsPage = 'Colors'; LANGenPreferences_RowHeight = 'Row _height:'; LANGenPreferences_NumHistoryItems = 'Co_mmandline history items:'; LANGenPreferences_Default = '_Default'; LANGenPreferences_ClearReadonlyAttribute = 'Clear _readonly attribute when copying from CD-ROM'; LANGenPreferences_DisableMouseRenaming = 'Disable _mouse renaming'; LANGenPreferences_ShowFiletypeIconsInList = 'Show _filetype icons'; LANGenPreferences_ExternalAppsLabel = 'External programs'; LANGenPreferences_Viewer = '_Viewer:'; LANGenPreferences_Editor = '_Editor:'; LANGenPreferences_Terminal = '_Terminal:'; LANGenPreferences_ListFont = 'List Font:'; LANGenPreferences_Change = 'Change...'; LANGenPreferences_UseDefaultFont = 'Use _default font'; LANGenPreferences_Foreground = 'Foreground'; LANGenPreferences_Background = 'Background'; LANGenPreferences_NormalItem = 'Normal Item:'; LANGenPreferences_SetToDefaultToUseGTKThemeColors = 'Set to default to use GTK theme colors'; LANGenPreferences_Cursor = 'Cursor:'; LANGenPreferences_InactiveItem = 'Inactive Item:'; LANGenPreferences_SelectedItem = 'Selected Item:'; LANGenPreferences_LinkItem = 'Symbolic links:'; LANGenPreferences_LinkItemHint = 'Set to default to show symlinks using default normal item colors'; LANGenPreferences_DotFileItem = 'Dot files:'; LANGenPreferences_DotFileItemHint = 'Set to default to show dot-files using default normal item colors'; LANGenPreferences_BrowseForApplication = 'Browse for application'; LANGenPreferences_DefaultS = 'Default: %s'; LANGenPreferences_SelectFont = 'Select font'; (*************** STRINGS ADDED TO v0.4.101 **********************************************************************************) LANGenBookmarkButton_Tooltip = 'Show bookmarks'; LANGenUpButton_Tooltip = 'Go to the upper directory'; LANGenRootButton_Tooltip = 'Go to the root directory (/)'; LANGenHomeButton_Tooltip = 'Go to the home directory (/home/user)'; LANGenLeftEqualButton_Tooltip = 'Switch the right panel to the same directory'; LANGenRightEqualButton_Tooltip = 'Switch the left panel to the same directory'; LANGenmiShowDirectorySizes_Caption = 'Show d_irectory sizes'; LANGenmiTargetSource_Caption = 'Target = S_ource'; LANGenFileTypeDirectory = 'Directory'; LANGenFileTypeFile = 'File'; LANGenFileTypeMetafile = 'This is a common meta-item'; LANGenPreferencesPanelsPage = 'Panels'; LANGenPreferencesApplicationsPage = 'Applications'; LANGenPreferencesExperimentalPage = 'Experimental'; LANGenPreferencesSelectAllDirectoriesCheckBox_Caption = 'Select _also directories when selecting all'; LANGenPreferencesNewStyleAltOCheckBox_Caption = '_New style Alt+O'; LANGenPreferencesNewStyleAltOCheckBox_Tooltip = 'Stay in the same directory when switching directory opposite panel by pressing Ctrl/Alt+O'; LANGenPreferencesShowFuncButtonsCheckBox_Caption = 'Show function _key buttons'; LANGenPreferencesSizeFormatLabel_Caption = '_Size format:'; LANGenPreferencesmiSizeFormat1 = 'System'; LANGenPreferencesmiSizeFormat6 = 'Dynamic'; LANGenPreferencesAutodetectXApp = 'Autodetect X app'; LANGenPreferencesAlwaysRunInTerminal = 'Always run in terminal'; LANGenPreferencesNeverRunInTerminal = 'Never run in terminal'; LANGenPreferencesCmdLineBehaviourLabel_Caption = '_Executing from commandline:'; LANGenPreferencesFeatures = 'Features'; LANGenPreferencesDisableMouseRename_Tooltip = 'You can still perform quick-rename by pressing Shift+F6'; LANGenPreferencesDisableFileTipsCheckBox_Caption = 'Disable file _tooltips'; LANGenPreferencesDisableFileTipsCheckBox_Tooltip = 'Don''t show panel tooltips if the text in a comlumn is truncated'; LANGenPreferencesShow = 'Show'; LANGenPreferencesDirsInBoldCheckBox_Caption = 'Directories in _bold'; LANGenPreferencesDisableDirectoryBracketsCheckBox_Caption = 'Hide directory b_rackets'; LANGenPreferencesOctalPermissionsCheckBox_Caption = 'Show _octal permissions'; LANGenPreferencesOctalPermissionsCheckBox_Tooltip = 'Show file/directory permissions as a number instead of text form (-rw-rw-rw-)'; LANGenPreferencesMovement = 'Movement'; LANGenPreferencesLynxLikeMotionCheckBox_Caption = '_Lynx-like motion'; LANGenPreferencesInsertMovesDownCheckBox_Caption = '_Insert moves down'; LANGenPreferencesSpaceMovesDownCheckBox_Caption = '_Space moves down'; LANGenPreferencesViewer = 'Viewer'; LANGenPreferencesCommandSC = 'Command:'; LANGenPreferencesUseInternalViewer = 'Use _internal viewer'; LANGenPreferencesEditor = 'Editor'; LANGenPreferencesTerminal = 'Terminal'; LANGenPreferencesExperimentalFeatures = 'Experimental features'; LANGenPreferencesExperimentalWarningLabel_Caption = 'Warning: These features are currently under development and may not work properly. Use them at your own risk!'; LANGenPreferencesFocusRefreshCheckBox_Caption = 'Perform _refresh on window focus'; LANGenPreferencesFocusRefreshCheckBox_Tooltip = 'Very slow panel refreshing at this moment'; LANGenPreferencesWMCompatModeCheckBox_Caption = '_WM Compatibility mode'; LANGenPreferencesWMCompatModeCheckBox_Tooltip = 'Use if you have some window manager issues (for example IceWM doesn''t perform window maximize correctly)'; LANGenPreferencesCompatUseLibcSystemCheckBox_Caption = 'Use libc _system() for executing programs'; LANGenPreferencesCompatUseLibcSystemCheckBox_Tooltip = 'Use in case of freeze or crash problems when launching external applications'; (*************** STRINGS ADDED TO v0.5.70 **********************************************************************************) LANGenmiSearchCaption2 = '_Search...'; LANGenmiNoMounterBarCaption = 'Do_n''t show mounter bar'; LANGenmiShowOneMounterBarCaption = 'Show _one mounter bar'; LANGenmiShowTwoMounterBarCaption = 'Show _two mounter bars'; LANGenmnuNetworkCaption = 'N_etwork'; LANGenmiConnectionsCaption = '_Connections...'; LANGenmiOpenConnectionCaption = '_Open connection...'; LANGenmiQuickConnectCaption = '_Quick connect...'; LANGenmnuPluginsCaption = 'Pl_ugins'; LANGenmiTestPluginCaption = '_Test plugin...'; LANGenmiMounterSettingsCaption = '_Mounter Settings...'; LANGenmiColumnsCaption = 'P_anel Columns...'; LANGenmiSavePositionCaption = '_Save position'; LANGenmiMountCaption = '_Mount'; LANGenmiUmountCaption = '_Umount'; LANGenmiEjectCaption = '_Eject'; LANGenmiDuplicateTabCaption = 'Duplicate current tab'; LANGenmiCloseTabCaption = 'Close current tab'; LANGenmiCloseAllTabsCaption = 'Close all tabs'; LANGenCannotDetermineDestinationEngine = 'Cannot determine destination engine. Please enter correct path and try it again.'; LANGenCannotLoadFile = 'Cannot load file ''%s''. Please check the permissions.'; LANGenMountPointDevice = 'Mount Point: %s'#10'Device: %s'; LANGenMountSC = 'Mount:'; LANGenNoPluginsFound = 'No plugins found'; LANGenPluginAbout = 'About...'; LANGenCouldntOpenURI = 'Couldn''t open the URI specified. Please check the consistency of the resource identifier and the access permission.'; LANGenPluginAboutInside = 'Plugin: %s'#10#10'%s'#10'%s'; LANGenAreYouSureCloseAllTabs = 'Are you sure you want to close all inactive tabs?'; LANGenCouldntOpenURIArchive = 'Couldn''t open the archive. Please check consistency and access permissions.'; LANGenThereIsNoModuleAvailable = 'There are no VFS modules available that can handle this connection'; LANGenIgnoreError = 'Do you really want to ignore the error? The source file will be then deleted'; LANGenErrorMount = 'There was an error while mounting the device ''%s'':'#10#10; LANGenErrorUmount = 'There was an error while umounting the device ''%s'':'#10#10; LANGenErrorEject = 'There was an error while ejecting the device ''%s'':'#10#10; LANGenMounterPrefs_Caption = 'Mounter Settings'; LANGenMounterPrefs_TitleLabelCaption = 'Mounter Settings'; LANGenMounterPrefs_ListViewFrameCaption = 'Mounter'; LANGenMounterPrefs_MountName = 'Mount Name'; LANGenMounterPrefs_MountPoint = 'Mount Point'; LANGenMounterPrefs_Device = 'Device'; LANGenMounterPrefs_MoveUpButtonTooltip = 'Move item up'; LANGenMounterPrefs_MoveDownButtonTooltip = 'Move item down'; LANGenMounterPrefs_UseFSTabDefaultsCheckBox = 'Use _fstab default items'; LANGenMounterPrefs_UseFSTabDefaultsCheckBoxTooltip = 'By checking this, the mounter bar will be filled by default items found in the /etc/fstab (system mountlist file)'; LANGenMounterPrefs_ToggleModeCheckBox = 'Buttons stay _down when mounted'; LANGenMounterPrefs_ToggleModeCheckBoxTooltip = 'When checked, the mounter buttons will stay down if the device is mounted; another click will cause umounting them (eject in this case)'; LANGenMounterPrefs_PropertiesFrameCaption = 'Mounter item properties'; LANGenMounterPrefs_DisplayTextLabelCaption = 'Displayed _Text:'; LANGenMounterPrefs_MountPointLabelCaption = 'Mount _Point:'; LANGenMounterPrefs_MountDeviceLabelCaption = '_Device:'; LANGenMounterPrefs_DeviceTypeLabelCaption = 'Device T_ype:'; LANGenMounterPrefs_miLocalDiskCaption = 'Local disk'; LANGenMounterPrefs_miRemovableCaption = 'Removable'; LANGenMounterPrefs_miCDCaption = 'CD/DVD drive'; LANGenMounterPrefs_miFloppyCaption = 'Floppy drive'; LANGenMounterPrefs_miNetworkCaption = 'Network'; LANGenMounterPrefs_MountCommandLabelCaption = 'Mount _Command:'; LANGenMounterPrefs_UmountCommandLabelCaption = 'Umount C_ommand:'; LANGenMounterPrefs_MountCommandEntryTooltip = 'Syntax: use %dev for substitution of the device and %dir for the mount point or leave blank for default mount'#10'Note: beware of interactive commands, tuxcmd could freeze!'#10'Example: smbmount %dev %dir -o username=netuser,password=somepass'; LANGenMounterPrefs_UmountCommandEntryTooltip = 'Syntax: use %dev for substitution of the device and %dir for the mount point or leave blank for default umount'#10'Example: smbumount $dir'; LANGenMounterPrefs_IconLabelCaption = '_Icon:'; LANGenConnMgr_Caption = 'Open New Connection'; LANGenConnMgr_ConnectButton = 'Co_nnect'; LANGenConnMgr_OpenConnection = 'Open Connection'; LANGenConnMgr_NameColumn = 'Name'; LANGenConnMgr_URIColumn = 'URI'; LANGenConnMgr_AddConnectionButtonCaption = '_Add site...'; LANGenConnMgr_AddConnectionButtonTooltip = 'Add new connection'; LANGenConnMgr_EditButtonCaption = '_Edit...'; LANGenConnMgr_EditButtonTooltip = 'Edit selected connection'; LANGenConnMgr_RemoveButtonCaption = '_Remove site'; LANGenConnMgr_RemoveButtonTooltip = 'Delete selected connection'; LANGenConnMgr_DoYouWantDelete = 'Do you really want to delete the connection ''%s''?'; LANGenConnProp_FTP = 'FTP'; LANGenConnProp_SFTP = 'SFTP (ssh subsystem)'; LANGenConnProp_SMB = 'Windows share (SMB)'; LANGenConnProp_HTTP = 'WebDAV (HTTP)'; LANGenConnProp_HTTPS = 'Secure WebDAV (HTTPS)'; LANGenConnProp_Other = 'Other (please specify in URI)'; LANGenConnProp_Caption = 'Connection properties'; LANGenConnProp_VFSModule = '_VFS module:'; LANGenConnProp_URI = '_URI:'; LANGenConnProp_URIEntryTooltip = 'Correct URI should contain service type prefix and server address'; LANGenConnProp_DetailedInformations = 'Detailed informations'; LANGenConnProp_Name = '_Name:'; LANGenConnProp_Server = 'Se_rver[:port]:'; LANGenConnProp_Username = 'Us_ername:'; LANGenConnProp_UserNameEntryTooltip = 'Leave blank for anonymous login'; LANGenConnProp_Password = '_Password:'; LANGenConnProp_TargetDirectory = 'Target _directory:'; LANGenConnProp_ServiceType = '_Service type:'; LANGenConnProp_MaskPassword = '_Mask password'; LANGenConnProp_MenuItemCaption = 'Default (all suitable modules)'; LANGenConnLogin_Caption = 'Authentication required'; LANGenConnLogin_Login = 'Login'; LANGenConnLogin_ExperimentalWarningLabelCaption = 'You must log in to access %s'; LANGenConnLogin_Username = '_Username:'; LANGenConnLogin_Password = '_Password:'; LANGenConnLogin_AnonymousCheckButton = '_Anonymous'; LANGenColumns_Caption = 'Panel Columns Settings'; LANGenColumns_Title = 'Panel Columns Settings'; LANGenColumns_MoveUpButtonTooltip = 'Move item up'; LANGenColumns_MoveDownButtonTooltip = 'Move item down'; LANGenColumns_TitlesLongName = 'Name'; LANGenColumns_TitlesLongNameExt = 'Name + Extension'; LANGenColumns_TitlesLongExt = 'Extension'; LANGenColumns_TitlesLongSize = 'Size'; LANGenColumns_TitlesLongDateTime = 'Date + Time'; LANGenColumns_TitlesLongDate = 'Date'; LANGenColumns_TitlesLongTime = 'Time'; LANGenColumns_TitlesLongUser = 'User'; LANGenColumns_TitlesLongGroup = 'Group'; LANGenColumns_TitlesLongAttr = 'Attributes'; LANGenColumns_TitlesShortName = 'Name'; LANGenColumns_TitlesShortNameExt = 'Name'; LANGenColumns_TitlesShortExt = 'Ext'; LANGenColumns_TitlesShortSize = 'Size'; LANGenColumns_TitlesShortDateTime = 'Date'; LANGenColumns_TitlesShortDate = 'Date'; LANGenColumns_TitlesShortTime = 'Time'; LANGenColumns_TitlesShortUser = 'User'; LANGenColumns_TitlesShortGroup = 'Group'; LANGenColumns_TitlesShortAttr = 'Attr'; LANGenTestPlugin_Caption = 'Test VFS Plugin'; LANGenTestPlugin_Title = 'Test VFS Plugin'; LANGenTestPlugin_ExperimentalWarningLabelCaption = 'Warning: The VFS subsystem and its plugins are under heavy development and may contain bugs. Use this function under your own risk!'; LANGenTestPlugin_Plugin = '_Plugin:'; LANGenTestPlugin_Command = 'Co_mmand:'; LANGenTestPlugin_Username = '_Username:'; LANGenTestPlugin_Password = '_Password:'; LANGenTestPlugin_AnonymousCheckButton = '_Anonymous login (doesn''t call VFSLogin)'; LANGenTestPlugin_NoPluginsFound = 'No plugins found'; LANGenRemoteWait_Caption = 'Operation in progress'; LANGenRemoteWait_OperationInProgress = 'Operation in progress, please be patient...'; LANGenRemoteWait_ItemsFound = 'Items found so far: %d'; LANGenSearch_Bytes = 'Bytes'; LANGenSearch_kB = 'kB'; LANGenSearch_MB = 'MB'; LANGenSearch_days = 'days'; LANGenSearch_weeks = 'weeks'; LANGenSearch_months = 'months'; LANGenSearch_years = 'years'; LANGenSearch_Caption = 'Find Files'; LANGenSearch_General = 'General'; LANGenSearch_Advanced = 'Advanced'; LANGenSearch_SearchResults = 'Search _Results:'; LANGenSearch_SearchFor = 'Search _for:'; LANGenSearch_FileMaskEntryTooltip = 'Tip: Use colons (";") to specify multiple files to find'; LANGenSearch_SearchIn = 'Search _in:'; LANGenSearch_SearchArchivesCheckButton = 'Search _archives'; LANGenSearch_FindText = 'Find _text:'; LANGenSearch_FindTextEntryTooltip = 'Leave blank for no text matching'#10'Please note that we are using UTF-8 in GUI part'; LANGenSearch_CaseSensitiveCheckButton = 'Cas_e sensitive'; LANGenSearch_StayCurrentFSCheckButton = 'Include other files_ystems'; LANGenSearch_CaseSensitiveMatchCheckButton = 'Ca_se sensitive'; LANGenSearch_Size = 'Size'; LANGenSearch_Date = 'Date'; LANGenSearch_BiggerThan = '_Bigger than'; LANGenSearch_SmallerThan = '_Smaller than'; LANGenSearch_ModifiedBetweenRadioButton = '_Modified between'; LANGenSearch_NotModifiedAfterRadioButton = '_Not modified after'; LANGenSearch_ModifiedLastRadioButton = 'Mod_ified in the last'; LANGenSearch_ModifiedNotLastRadionButton = 'No_t modified in the last'; LANGenSearch_ModifiedBetweenEntry1 = '"Please use this date format:" c'; LANGenSearch_ViewButtonCaption = '_View file'; LANGenSearch_NewSearchButtonCaption = '_New search'; LANGenSearch_GoToFileButtonCaption = '_Go to file'; LANGenSearch_FeedToListboxButtonCaption = 'Feed to _listbox'; LANGenSearch_StatusSC = 'Status:'; LANGenSearch_Ready = 'Ready.'; LANGenSearch_PreparingToSearch = 'Preparing to search.'; LANGenSearch_SearchInProgress = 'Search in progress:'; LANGenSearch_UserCancelled = 'User cancelled.'; LANGenSearch_SearchFinished = 'Search finished'; LANGenSearch_FilesFound = '%d files found'; LANGenSearch_And = 'and'; (*************** STRINGS ADDED TO v0.5.82 **********************************************************************************) LANGenCloseOpenConnection = 'You''re trying to open new connection over the another active connection. By continuing, the previous connection will be closed and replaced by the new requested one.'#10#10'Do you want to continue?'; LANGenDuplicateTabWarning = 'You are trying to open a new tab from a remote directory. However, engine cloning is not supported. The directory in the new tab will point to a local filesystem.'; LANGenDontShowAgain = '_Don''t show this message again'; LANGenSwitchOtherPanelWarning = 'You are trying to open the remote directory in the opposite panel. However, engine cloning is not supported. The target directory will not be switched.'; LANGenOpenConnectionsWarning = 'There are some active connections opened in the panel. By closing the application, these connections will be disconnected.'#10#10'Do you want to continue quit?'; LANGenmiDisconnect_Caption = '_Disconnect'; LANGenDisconnectButton_Tooltip = 'Disconnect active connection'; LANGenLeaveArchiveButton_Tooltip = 'Close current archive'; LANGenOpenTerminalButton_Tooltip = 'Opens a new terminal windows from the current directory'; LANGenOpenTerminalButton_Caption = 'Open Te_rminal'; LANGenShowTextUIDsCheckBox_Caption = 'Show text _UIDs'; LANGenShowTextUIDsCheckBox_Tooltip = 'Show textual User and Group informations instead of numbers (UID/GID)'; (*************** STRINGS ADDED TO v0.5.100 **********************************************************************************) LANGenmiNewTab_Caption = 'New folder _tab'; LANGenFilePopupMenu_Properties = '_Properties'; LANGenCommandEntry_Tooltip = 'Use %s as file/directory placeholder'; LANGenmiFiles_Caption = 'Files only'; (*************** STRINGS ADDED TO v0.6.31 **********************************************************************************) LANGenPasswordButton_Tooltip = 'Archive requires password.'#10'Click to set'; LANGenHandleRunFromArchive_Bytes = 'bytes'; LANGenHandleRunFromArchive_FileTypeDesc_Unknown = '(unknown)'; LANGenHandleRunFromArchive_NotAssociated = '(not associated)'; LANGenHandleRunFromArchive_SelfExecutable = '(self-executable)'; LANGenHandleRunFromArchive_CouldntCreateTemporaryDirectory = 'Couldn''t create temporary directory "%s": %s.'#10#10'Please check the temporary directory settings and try it again.'; LANGenFRunFromVFS_Caption = 'Packed file properties'; LANGenFRunFromVFS_TitleLabel = 'File Properties'; LANGenFRunFromVFS_FileNameLabel = 'File name:'; LANGenFRunFromVFS_FileTypeLabel = 'File type:'; LANGenFRunFromVFS_SizeLabel = 'Size:'; LANGenFRunFromVFS_PackedSizeLabel = 'Compressed size:'; LANGenFRunFromVFS_DateLabel = 'Modify date:'; LANGenFRunFromVFS_InfoLabel = 'Opening files directly from archives is not supported. By clicking the buttons below the file (all files respectively) will be extracted to a temporary location. Temporary files will be deleted when you close Tux Commander.'; LANGenFRunFromVFS_OpensWithLabel = 'Open with:'; LANGenFRunFromVFS_ExecuteButton = 'E_xtract and open'; LANGenFRunFromVFS_ExecuteAllButton = 'Extract _all and open'; LANGenFSetPassword_Caption = 'Set password'; LANGenFSetPassword_Label1_Caption = 'Password required'; LANGenFSetPassword_Label2_Caption = 'The archive is encrypted and requires password in order to extract the data'; LANGenFSetPassword_ShowPasswordCheckButton = 'Un_mask password'; (*************** STRINGS ADDED TO v0.6.48 **********************************************************************************) LANGenCopyFileNamesToClipboard = '_Copy file names to clipboard'; LANGenCopyFullPathNamesToClipboard = 'Copy _full path names to clipboard'; LANGenCopyPathToClipboard = '_Copy path to clipboard'; LANGenPreferences_DateFormatLabel_Caption = 'Date _format:'; LANGenPreferences_System = 'System'; LANGenPreferences_Custom = 'Custom...'; LANGenPreferences_CustomDateFormatEntry_Tooltip = 'Enter custom date format string.'#10'Please see "man strftime" for syntax reference.'; LANGenPreferences_TimeFormatLabel_Caption = '_Time format:'; LANGenPreferences_CustomTimeFormatEntry_Tooltip = 'Enter custom time format string.'#10'Please see "man strftime" for syntax reference.'; LANGenPreferences_DateTimeFormatLabel_Caption = 'Date/time _order:'; LANGenPreferences_QuickRenameSkipExtCheckBox = 'Select name part only on quick-rename'; LANGenPreferences_QuickRenameSkipExtCheckBox_Tooltip = 'Exclude filename extension from the selection when doing quick-rename'; LANGenPreferences_SortDirectoriesLikeFilesCheckBox = 'Sort directories lik_e files'; LANGenPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip = 'Check this to allow sorting directories along with files. Directories are always first in the list.'#10'Unchecked: directories are always sorted by name.'; LANGenPreferences_QuickSearchLabel_Caption = 'Quick search _keystroke:'; LANGenPreferences_QuickSearchOptionMenu_Tooltip = 'The Ctrl+S/Alt+S and "/" keystrokes are always active, regardless on this setting.'; LANGenPreferences_QuickSearch_Option1 = 'Ctrl+S/Alt+S and "/" only'; LANGenPreferences_QuickSearch_Option2 = 'Ctrl+Alt+letters'; LANGenPreferences_QuickSearch_Option3 = 'Alt+letters'; LANGenPreferences_QuickSearch_Option4 = 'letters directly'; LANGenPreferences_TempPathLabel_Caption = 'Temporary files'; LANGenPreferences_VFSTempPathLabel_Caption = '_VFS temp files:'; LANGenPreferences_VFSTempPathEntry_Tooltip = 'Location of temporary files used by VFS subsystem, e.g. when opening files directly from archives. All temporary files are cleaned on exit.'; (*************** STRINGS ADDED TO v0.6.67 **********************************************************************************) LANGenPreferences_RightClickSelectCheckBox = 'Rig_ht mouse button selection mode'; LANGenPreferences_RightClickSelectCheckBox_Tooltip = 'Use right mouse button to select, like mc.'; LANGenGtkMountOperation_ConnectAnonymously = 'Connect _anonymously'; LANGenGtkMountOperation_ConnectAsUser = 'Connect as u_ser:'; LANGenGtkMountOperation_Username = '_Username:'; LANGenGtkMountOperation_Domain = '_Domain:'; LANGenGtkMountOperation_Password = '_Password:'; LANGenGtkMountOperation_DoNotSavePassword = 'Do no_t save password'; LANGenGtkMountOperation_ForgetPasswordImmediately = 'Forget password _immediately'; LANGenGtkMountOperation_RememberPasswordUntilYouLogout = 'Remember password until you _logout'; LANGenGtkMountOperation_SavePasswordInConnectionManager = '_Save password in Connection Manager'; LANGenGtkMountOperation_RememberForever = 'Remember _forever'; LANGenFSymlink_RelativePath = '_Relative path'; LANGenFConnectionManager_DuplicateButton_Caption = 'D_uplicate...'; LANGenFConnectionManager_DuplicateButton_Tooltip = 'Duplicate selected connection'; LANGenFConnectionManager_DoNotSavePasswordsCheckBox_Label = '_Do not store passwords internally (but still use gnome-keyring)'; LANGenFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip = 'By checking this option on, Tux Commander will never save passwords into its connection list. Due to the GVFS nature, gnome-keyring will still be used to retrieve stored passwords from your desktop session.'; LANGenFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label = 'Do not synchronize passwords to gnome-_keyring'; LANGenFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip = 'Don''t tell gnome-keyring to save any passwords.'; LANGenFConnectionManager_DuplicateMenuItem_Caption = 'D_uplicate...'; LANGenFQuickConnect_Caption = 'Quick connect'; LANGenFQuickConnect_TitleLabel_Caption = 'Quick connect'; LANGenFQuickConnect_ConnectToURILabel_Caption = 'C_onnect to URI:'; LANGenLinkToS = 'Link to %s'; LANGenOpenDirectoryInBackgroundTab = 'Open directory in _background tab'; LANGenTheActiveConnectionHasNotBeenSaved = 'The active connection has not been saved. Do you want to save it to Connection Manager?'#10#10'%s'; LANGenTheArchiveIsEncryptedAndRequiresPassword = 'The archive is encrypted and requires password'; (********************************************************************************************************************************) procedure SetTranslation; begin LANGF2Button_Caption := LANGenF2Button_Caption; LANGF3Button_Caption := LANGenF3Button_Caption; LANGF4Button_Caption := LANGenF4Button_Caption; LANGF5Button_Caption := LANGenF5Button_Caption; LANGF6Button_Caption := LANGenF6Button_Caption; LANGF7Button_Caption := LANGenF7Button_Caption; LANGF8Button_Caption := LANGenF8Button_Caption; LANGmnuFile_Caption := LANGenmnuFile_Caption; LANGmnuMark_Caption := LANGenmnuMark_Caption; LANGmnuCommands_Caption := LANGenmnuCommands_Caption; LANGmnuHelp_Caption := LANGenmnuHelp_Caption; LANGmiExit_Caption := LANGenmiExit_Caption; LANGmiSelectGroup_Caption := LANGenmiSelectGroup_Caption; LANGmiUnselectGroup_Caption := LANGenmiUnselectGroup_Caption; LANGmiSelectAll_Caption := LANGenmiSelectAll_Caption; LANGmiUnselectAll_Caption := LANGenmiUnselectAll_Caption; LANGmiInvertSelection_Caption := LANGenmiInvertSelection_Caption; LANGmiRefresh_Caption := LANGenmiRefresh_Caption; LANGmiAbout_Caption := LANGenmiAbout_Caption; LANGColumn1_Caption := LANGenColumn1_Caption; LANGColumn2_Caption := LANGenColumn2_Caption; LANGColumn3_Caption := LANGenColumn3_Caption; LANGColumn4_Caption := LANGenColumn4_Caption; LANGColumn5_Caption := LANGenColumn5_Caption; LANGExpandSelection := LANGenExpandSelection; LANGShrinkSelection := LANGenShrinkSelection; LANGNoMatchesFound := LANGenNoMatchesFound; LANGNoFilesSelected := LANGenNoFilesSelected; LANGSelectedFilesDirectories := LANGenSelectedFilesDirectories; LANGDirectoryS := LANGenDirectoryS; LANGFileS := LANGenFileS; LANGDoYouReallyWantToDeleteTheS := LANGenDoYouReallyWantToDeleteTheS; LANGDoYouReallyWantToDeleteTheSS := LANGenDoYouReallyWantToDeleteTheSS; LANGCopyFiles := LANGenCopyFiles; LANGMoveRenameFiles := LANGenMoveRenameFiles; LANGCopyDFileDirectoriesTo := LANGenCopyDFileDirectoriesTo; LANGMoveRenameDFileDirectoriesTo := LANGenMoveRenameDFileDirectoriesTo; LANGCopySC := LANGenCopySC; LANGMoveRenameSC := LANGenMoveRenameSC; LANGQuickFind := LANGenQuickFind; LANGAboutString := LANGenAboutString; LANGAboutStringGnome := LANGenAboutStringGnome; LANGDiskStatFmt := LANGenDiskStatFmt; LANGDiskStatVolNameFmt := LANGenDiskStatVolNameFmt; LANGStatusLineFmt := LANGenStatusLineFmt; LANGPanelStrings[False] := LANGenPanelStrings[False]; LANGPanelStrings[True] := LANGenPanelStrings[True]; LANGDIR := LANGenDIR; LANGErrorGettingListingForSPanel := LANGenErrorGettingListingForSPanel; LANGErrorGettingListingForSPanelNoPath := LANGenErrorGettingListingForSPanelNoPath; LANGErrorCreatingNewDirectorySInSPanel := LANGenErrorCreatingNewDirectorySInSPanel; LANGErrorCreatingNewDirectorySInSPanelNoPath := LANGenErrorCreatingNewDirectorySInSPanelNoPath; LANGTheFileDirectory := LANGenTheFileDirectory; LANGCouldNotBeDeleted := LANGenCouldNotBeDeleted; LANGCouldNotBeDeletedS := LANGenCouldNotBeDeletedS; LANGUserCancelled := LANGenUserCancelled; LANGTheDirectorySIsNotEmpty := LANGenTheDirectorySIsNotEmpty; LANGCannotCopyFile := LANGenCannotCopyFile; LANGCopyError := LANGenCopyError; LANGMoveError := LANGenMoveError; LANGOverwriteS := LANGenOverwriteS; LANGWithFileS := LANGenWithFileS; LANGOvewriteSBytesS := LANGenOvewriteSBytesS; LANGTheFile := LANGenTheFile; LANGCopy := LANGenCopy; LANGMove := LANGenMove; LANGTheDirectory := LANGenTheDirectory; LANGTheSymbolicLink := LANGenTheSymbolicLink; LANGCannotMoveFile := LANGenCannotMoveFile; LANGCouldNotBeCreated := LANGenCouldNotBeCreated; LANGCouldNotBeCreatedS := LANGenCouldNotBeCreatedS; LANGFromS := LANGenFromS; LANGToS := LANGenToS; LANGCannotCopyFileToItself := LANGenCannotCopyFileToItself; LANGMemoryAllocationFailed := LANGenMemoryAllocationFailed; LANGCannotOpenSourceFile := LANGenCannotOpenSourceFile; LANGCannotOpenDestinationFile := LANGenCannotOpenDestinationFile; LANGCannotCloseDestinationFile := LANGenCannotCloseDestinationFile; LANGCannotCloseSourceFile := LANGenCannotCloseSourceFile; LANGCannotReadFromSourceFile := LANGenCannotReadFromSourceFile; LANGCannotWriteToDestinationFile := LANGenCannotWriteToDestinationFile; LANGUnknownException := LANGenUnknownException; LANGNoAccess := LANGenNoAccess; LANGUnknownError := LANGenUnknownError; LANGCreateANewDirectory := LANGenCreateANewDirectory; LANGEnterDirectoryName := LANGenEnterDirectoryName; LANGOverwriteQuestion := LANGenOverwriteQuestion; LANGOverwriteButton_Caption := LANGenOverwriteButton_Caption; LANGOverwriteAllButton_Caption := LANGenOverwriteAllButton_Caption; LANGSkipButton_Caption := LANGenSkipButton_Caption; LANGOverwriteAllOlderButton_Caption := LANGenOverwriteAllOlderButton_Caption; LANGSkipAllButton_Caption := LANGenSkipAllButton_Caption; LANGRenameButton_Caption := LANGenRenameButton_Caption; LANGAppendButton_Caption := LANGenAppendButton_Caption; LANGRename := LANGenRename; LANGRenameFile := LANGenRenameFile; LANGIgnoreButton_Caption := LANGenIgnoreButton_Caption; LANGProgress := LANGenProgress; LANGCancel := LANGenCancel; LANGDelete := LANGenDelete; LANGSpecifyFileType := LANGenSpecifyFileType; LANGRemoveDirectory := LANGenRemoveDirectory; LANGDoYouWantToDeleteItWithAllItsFilesAndSubdirectories := LANGenDoYouWantToDeleteItWithAllItsFilesAndSubdirectories; LANGRetry := LANGenRetry; LANGDeleteButton_Caption := LANGenDeleteButton_Caption; LANGAll := LANGenAll; LANGCopyFilesSC := LANGenCopyFilesSC; LANGAppendQuestion := LANGenAppendQuestion; LANGPreparingList := LANGenPreparingList; LANGYouMustSelectAValidFile := LANGenYouMustSelectAValidFile; LANGmiVerifyChecksums := LANGenmiVerifyChecksums; LANGVerifyChecksumsCaption := LANGenVerifyChecksumsCaption; LANGCheckButtonCaptionCheck := LANGenCheckButtonCaptionCheck; LANGCheckButtonCaptionStop := LANGenCheckButtonCaptionStop; LANGFileListTooltip := LANGenFileListTooltip; LANGFilenameColumnCaption := LANGenFilenameColumnCaption; LANGTheFileSYouAreTryingToOpenIsQuiteBig := LANGenTheFileSYouAreTryingToOpenIsQuiteBig; LANGAnErrorOccuredWhileInitializingMemoryBlock := LANGenAnErrorOccuredWhileInitializingMemoryBlock; LANGAnErrorOccuredWhileOpeningFileSS := LANGenAnErrorOccuredWhileOpeningFileSS; LANGAnErrorOccuredWhileReadingFileSS := LANGenAnErrorOccuredWhileReadingFileSS; LANGChecksumNotChecked := LANGenChecksumNotChecked; LANGChecksumChecking := LANGenChecksumChecking; LANGChecksumInterrupted := LANGenChecksumInterrupted; LANGChecksumDOK := LANGenChecksumDOK; LANGmiCreateChecksumsCaption := LANGenmiCreateChecksumsCaption; LANGYouMustSelectAtLeastOneFileToCalculateChecksum := LANGenYouMustSelectAtLeastOneFileToCalculateChecksum; LANGCreateChecksumsCaption := LANGenCreateChecksumsCaption; LANGCCHKSUMPage1Text := LANGenCCHKSUMPage1Text; LANGCCHKSUMPage4Text := LANGenCCHKSUMPage4Text; LANGCCHKSUMPage6Text := LANGenCCHKSUMPage6Text; LANGCCHKSUMPage7Text := LANGenCCHKSUMPage7Text; LANGCCHKSUMPage1Title := LANGenCCHKSUMPage1Title; LANGCCHKSUMPage2Title := LANGenCCHKSUMPage2Title; LANGCCHKSUMPage3Title := LANGenCCHKSUMPage3Title; LANGCCHKSUMPage4Title := LANGenCCHKSUMPage4Title; LANGCCHKSUMPage5Title := LANGenCCHKSUMPage5Title; LANGCCHKSUMPage6Title := LANGenCCHKSUMPage6Title; LANGCCHKSUMPage7Title := LANGenCCHKSUMPage7Title; LANGCCHKSUMSFVFile := LANGenCCHKSUMSFVFile; LANGCCHKSUMMD5sumFile := LANGenCCHKSUMMD5sumFile; LANGCCHKSUMFileName := LANGenCCHKSUMFileName; LANGCCHKSUMCreateSeparateChecksumFiles := LANGenCCHKSUMCreateSeparateChecksumFiles; LANGCCHKSUMNowProcessingFileS := LANGenCCHKSUMNowProcessingFileS; LANGCCHKSUMFinishCaption := LANGenCCHKSUMFinishCaption; LANGCCHKSUMAreYouSureYouWantToAbortTheProcessing := LANGenCCHKSUMAreYouSureYouWantToAbortTheProcessing; LANGCCHKSUMAnErrorOccuredWhileOpeningFileSS := LANGenCCHKSUMAnErrorOccuredWhileOpeningFileSS; LANGCCHKSUMAnErrorOccuredWhileReadingFileSS := LANGenCCHKSUMAnErrorOccuredWhileReadingFileSS; LANGCCHKSUMAnErrorOccuredWhileWritingFileSS := LANGenCCHKSUMAnErrorOccuredWhileWritingFileSS; LANGAnErrorOccuredWhileWritingFileSS := LANGenAnErrorOccuredWhileWritingFileSS; LANGTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt := LANGenTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt; LANGTheTargetFileSCannotBeRemovedS := LANGenTheTargetFileSCannotBeRemovedS; LANGMergeCaption := LANGenMergeCaption; LANGPleaseInsertNextDiskOrGiveDifferentLocation := LANGenPleaseInsertNextDiskOrGiveDifferentLocation; LANGMergeOfSSucceeded := LANGenMergeOfSSucceeded; LANGWarningCreatedFileFailsCRCCheck := LANGenWarningCreatedFileFailsCRCCheck; LANGMergeOfSSucceeded_NoCRCFileAvailable := LANGenMergeOfSSucceeded_NoCRCFileAvailable; LANGMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory := LANGenMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory; LANGMergeSC := LANGenMergeSC; LANGmiSplitFileCaption := LANGenmiSplitFileCaption; LANGmiMergeFilesCaption := LANGenmiMergeFilesCaption; LANGSplitTheFileSToDirectory := LANGenSplitTheFileSToDirectory; LANGSplitSC := LANGenSplitSC; LANGSplitFile := LANGenSplitFile; LANGBytesPerFile := LANGenBytesPerFile; LANGAutomatic := LANGenAutomatic; LANGDeleteFilesOnTargetDisk := LANGenDeleteFilesOnTargetDisk; LANGSplitCaption := LANGenSplitCaption; LANGCannotOpenFileS := LANGenCannotOpenFileS; LANGCannotSplitTheFileToMoreThan999Parts := LANGenCannotSplitTheFileToMoreThan999Parts; LANGThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem := LANGenThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem; LANGThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem := LANGenThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem; LANGAnErrorOccuredWhileOperationS := LANGenAnErrorOccuredWhileOperationS; LANGSplitOfSSucceeded := LANGenSplitOfSSucceeded; LANGSplitOfSFailed := LANGenSplitOfSFailed; LANGmnuShow_Caption := LANGenmnuShow_Caption; LANGmiShowDotFiles_Caption := LANGenmiShowDotFiles_Caption; LANGTheFileYouAreTryingToOpenIsQuiteBig := LANGenTheFileYouAreTryingToOpenIsQuiteBig; LANGCannotExecuteSPleaseCheckTheConfiguration := LANGenCannotExecuteSPleaseCheckTheConfiguration; LANGEdit := LANGenEdit; LANGEnterFilenameToEdit := LANGenEnterFilenameToEdit; LANGmnuSettings_Caption := LANGenmnuSettings_Caption; LANGmiFileTypes_Caption := LANGenmiFileTypes_Caption; LANGThereIsNoApplicationAssociatedWithS := LANGenThereIsNoApplicationAssociatedWithS; LANGErrorExecutingCommand := LANGenErrorExecutingCommand; LANGEditFileTypesCaption := LANGenEditFileTypesCaption; LANGTitleLabel_Caption := LANGenTitleLabel_Caption; LANGExtensionsColumn := LANGenExtensionsColumn; LANGDescriptionColumn := LANGenDescriptionColumn; LANGFileTypesList := LANGenFileTypesList; LANGActionName := LANGenActionName; LANGCommand := LANGenCommand; LANGSetDefaultActionButton_Caption := LANGenSetDefaultActionButton_Caption; LANGRunInTerminalCheckBox_Caption := LANGenRunInTerminalCheckBox_Caption; LANGAutodetectCheckBox_Caption := LANGenAutodetectCheckBox_Caption; LANGBrowseButton_Caption := LANGenBrowseButton_Caption; LANGCommandLabel_Caption := LANGenCommandLabel_Caption; LANGDescriptionLabel_Caption := LANGenDescriptionLabel_Caption; LANGFNameExtLabel_Caption := LANGenFNameExtLabel_Caption; LANGNotebookPageExtensions := LANGenNotebookPageExtensions; LANGNotebookPageActions := LANGenNotebookPageActions; LANGDefault := LANGenDefault; LANGCannotSaveFileTypeAssociationsBecauseOtherProcess := LANGenCannotSaveFileTypeAssociationsBecauseOtherProcess; LANGDefaultColor := LANGenDefaultColor; LANGIcon := LANGenIcon; LANGBrowseForIcon := LANGenBrowseForIcon; LANGSelectFileTypeColor := LANGenSelectFileTypeColor; LANGColor := LANGenColor; LANGmiChangePermissions_Caption := LANGenmiChangePermissions_Caption; LANGmiChangeOwner_Caption := LANGenmiChangeOwner_Caption; LANGmiCreateSymlink_Caption := LANGenmiCreateSymlink_Caption; LANGmiEditSymlink_Caption := LANGenmiEditSymlink_Caption; LANGChmodProgress := LANGenChmodProgress; LANGChownProgress := LANGenChownProgress; LANGYouMustSelectAValidSymbolicLink := LANGenYouMustSelectAValidSymbolicLink; LANGPopupRunS := LANGenPopupRunS; LANGPopupOpenS := LANGenPopupOpenS; LANGPopupGoUp := LANGenPopupGoUp; LANGPopupOpenWithS := LANGenPopupOpenWithS; LANGPopupDefault := LANGenPopupDefault; LANGPopupOpenWith := LANGenPopupOpenWith; LANGPopupViewFile := LANGenPopupViewFile; LANGPopupEditFile := LANGenPopupEditFile; LANGPopupMakeSymlink := LANGenPopupMakeSymlink; LANGPopupRename := LANGenPopupRename; LANGPopupDelete := LANGenPopupDelete; LANGDialogChangePermissions := LANGenDialogChangePermissions; LANGCouldNotBeChmoddedS := LANGenCouldNotBeChmoddedS; LANGDialogChangeOwner := LANGenDialogChangeOwner; LANGCouldNotBeChownedS := LANGenCouldNotBeChownedS; LANGDialogMakeSymlink := LANGenDialogMakeSymlink; LANGDialogEditSymlink := LANGenDialogEditSymlink; LANGFEditSymlink_Caption := LANGenFEditSymlink_Caption; LANGFEditSymlink_SymbolicLinkFilename := LANGenFEditSymlink_SymbolicLinkFilename; LANGFEditSymlink_SymbolicLinkPointsTo := LANGenFEditSymlink_SymbolicLinkPointsTo; LANGFChmod_Caption := LANGenFChmod_Caption; LANGFChmod_PermissionFrame := LANGenFChmod_PermissionFrame; LANGFChmod_FileFrame := LANGenFChmod_FileFrame; LANGFChmod_ApplyRecursivelyFor := LANGenFChmod_ApplyRecursivelyFor; LANGFChmod_miAllFiles := LANGenFChmod_miAllFiles; LANGFChmod_miDirectories := LANGenFChmod_miDirectories; LANGFChmod_OctalLabel := LANGenFChmod_OctalLabel; LANGFChmod_SUID := LANGenFChmod_SUID; LANGFChmod_SGID := LANGenFChmod_SGID; LANGFChmod_Sticky := LANGenFChmod_Sticky; LANGFChmod_RUSR := LANGenFChmod_RUSR; LANGFChmod_WUSR := LANGenFChmod_WUSR; LANGFChmod_XUSR := LANGenFChmod_XUSR; LANGFChmod_RGRP := LANGenFChmod_RGRP; LANGFChmod_WGRP := LANGenFChmod_WGRP; LANGFChmod_XGRP := LANGenFChmod_XGRP; LANGFChmod_ROTH := LANGenFChmod_ROTH; LANGFChmod_WOTH := LANGenFChmod_WOTH; LANGFChmod_XOTH := LANGenFChmod_XOTH; LANGFChmod_TextLabel := LANGenFChmod_TextLabel; LANGFChmod_FileLabel := LANGenFChmod_FileLabel; LANGFChown_Caption := LANGenFChown_Caption; LANGFChown_OwnerFrame := LANGenFChown_OwnerFrame; LANGFChown_GroupFrame := LANGenFChown_GroupFrame; LANGFChown_FileFrame := LANGenFChown_FileFrame; LANGFChown_ApplyRecursively := LANGenFChown_ApplyRecursively; LANGFSymlink_Caption := LANGenFSymlink_Caption; LANGFSymlink_ExistingFilename := LANGenFSymlink_ExistingFilename; LANGFSymlink_SymlinkFilename := LANGenFSymlink_SymlinkFilename; LANGmnuBookmarks_Caption := LANGenmnuBookmarks_Caption; LANGmiAddBookmark_Caption := LANGenmiAddBookmark_Caption; LANGmiEditBookmarks_Caption := LANGenmiEditBookmarks_Caption; LANGBookmarkPopupDelete_Caption := LANGenBookmarkPopupDelete_Caption; LANGmiPreferences_Caption := LANGenmiPreferences_Caption; LANGTheCurrentDirectoryAlreadyExistsInTheBookmarksList := LANGenTheCurrentDirectoryAlreadyExistsInTheBookmarksList; LANGSomeOtherInstanceChanged := LANGenSomeOtherInstanceChanged; LANGPreferences_Caption := LANGenPreferences_Caption; LANGPreferences_TitleLabel_Caption := LANGenPreferences_TitleLabel_Caption; LANGPreferences_GeneralPage := LANGenPreferences_GeneralPage; LANGPreferences_FontsPage := LANGenPreferences_FontsPage; LANGPreferences_ColorsPage := LANGenPreferences_ColorsPage; LANGPreferences_RowHeight := LANGenPreferences_RowHeight; LANGPreferences_NumHistoryItems := LANGenPreferences_NumHistoryItems; LANGPreferences_Default := LANGenPreferences_Default; LANGPreferences_ClearReadonlyAttribute := LANGenPreferences_ClearReadonlyAttribute; LANGPreferences_DisableMouseRenaming := LANGenPreferences_DisableMouseRenaming; LANGPreferences_ShowFiletypeIconsInList := LANGenPreferences_ShowFiletypeIconsInList; LANGPreferences_ExternalAppsLabel := LANGenPreferences_ExternalAppsLabel; LANGPreferences_Viewer := LANGenPreferences_Viewer; LANGPreferences_Editor := LANGenPreferences_Editor; LANGPreferences_Terminal := LANGenPreferences_Terminal; LANGPreferences_ListFont := LANGenPreferences_ListFont; LANGPreferences_Change := LANGenPreferences_Change; LANGPreferences_UseDefaultFont := LANGenPreferences_UseDefaultFont; LANGPreferences_Foreground := LANGenPreferences_Foreground; LANGPreferences_Background := LANGenPreferences_Background; LANGPreferences_NormalItem := LANGenPreferences_NormalItem; LANGPreferences_SetToDefaultToUseGTKThemeColors := LANGenPreferences_SetToDefaultToUseGTKThemeColors; LANGPreferences_Cursor := LANGenPreferences_Cursor; LANGPreferences_InactiveItem := LANGenPreferences_InactiveItem; LANGPreferences_SelectedItem := LANGenPreferences_SelectedItem; LANGPreferences_LinkItem := LANGenPreferences_LinkItem; LANGPreferences_LinkItemHint := LANGenPreferences_LinkItemHint; LANGPreferences_DotFileItem := LANGenPreferences_DotFileItem; LANGPreferences_DotFileItemHint := LANGenPreferences_DotFileItemHint; LANGPreferences_BrowseForApplication := LANGenPreferences_BrowseForApplication; LANGPreferences_DefaultS := LANGenPreferences_DefaultS; LANGPreferences_SelectFont := LANGenPreferences_SelectFont; LANGBookmarkButton_Tooltip := LANGenBookmarkButton_Tooltip; LANGUpButton_Tooltip := LANGenUpButton_Tooltip; LANGRootButton_Tooltip := LANGenRootButton_Tooltip; LANGHomeButton_Tooltip := LANGenHomeButton_Tooltip; LANGLeftEqualButton_Tooltip := LANGenLeftEqualButton_Tooltip; LANGRightEqualButton_Tooltip := LANGenRightEqualButton_Tooltip; LANGmiShowDirectorySizes_Caption := LANGenmiShowDirectorySizes_Caption; LANGmiTargetSource_Caption := LANGenmiTargetSource_Caption; LANGFileTypeDirectory := LANGenFileTypeDirectory; LANGFileTypeFile := LANGenFileTypeFile; LANGFileTypeMetafile := LANGenFileTypeMetafile; LANGPreferencesPanelsPage := LANGenPreferencesPanelsPage; LANGPreferencesApplicationsPage := LANGenPreferencesApplicationsPage; LANGPreferencesExperimentalPage := LANGenPreferencesExperimentalPage; LANGPreferencesSelectAllDirectoriesCheckBox_Caption := LANGenPreferencesSelectAllDirectoriesCheckBox_Caption; LANGPreferencesNewStyleAltOCheckBox_Caption := LANGenPreferencesNewStyleAltOCheckBox_Caption; LANGPreferencesNewStyleAltOCheckBox_Tooltip := LANGenPreferencesNewStyleAltOCheckBox_Tooltip; LANGPreferencesShowFuncButtonsCheckBox_Caption := LANGenPreferencesShowFuncButtonsCheckBox_Caption; LANGPreferencesSizeFormatLabel_Caption := LANGenPreferencesSizeFormatLabel_Caption; LANGPreferencesmiSizeFormat1 := LANGenPreferencesmiSizeFormat1; LANGPreferencesmiSizeFormat6 := LANGenPreferencesmiSizeFormat6; LANGPreferencesAutodetectXApp := LANGenPreferencesAutodetectXApp; LANGPreferencesAlwaysRunInTerminal := LANGenPreferencesAlwaysRunInTerminal; LANGPreferencesNeverRunInTerminal := LANGenPreferencesNeverRunInTerminal; LANGPreferencesCmdLineBehaviourLabel_Caption := LANGenPreferencesCmdLineBehaviourLabel_Caption; LANGPreferencesFeatures := LANGenPreferencesFeatures; LANGPreferencesDisableMouseRename_Tooltip := LANGenPreferencesDisableMouseRename_Tooltip; LANGPreferencesDisableFileTipsCheckBox_Caption := LANGenPreferencesDisableFileTipsCheckBox_Caption; LANGPreferencesDisableFileTipsCheckBox_Tooltip := LANGenPreferencesDisableFileTipsCheckBox_Tooltip; LANGPreferencesShow := LANGenPreferencesShow; LANGPreferencesDirsInBoldCheckBox_Caption := LANGenPreferencesDirsInBoldCheckBox_Caption; LANGPreferencesDisableDirectoryBracketsCheckBox_Caption := LANGenPreferencesDisableDirectoryBracketsCheckBox_Caption; LANGPreferencesOctalPermissionsCheckBox_Caption := LANGenPreferencesOctalPermissionsCheckBox_Caption; LANGPreferencesOctalPermissionsCheckBox_Tooltip := LANGenPreferencesOctalPermissionsCheckBox_Tooltip; LANGPreferencesMovement := LANGenPreferencesMovement; LANGPreferencesLynxLikeMotionCheckBox_Caption := LANGenPreferencesLynxLikeMotionCheckBox_Caption; LANGPreferencesInsertMovesDownCheckBox_Caption := LANGenPreferencesInsertMovesDownCheckBox_Caption; LANGPreferencesSpaceMovesDownCheckBox_Caption := LANGenPreferencesSpaceMovesDownCheckBox_Caption; LANGPreferencesViewer := LANGenPreferencesViewer; LANGPreferencesCommandSC := LANGenPreferencesCommandSC; LANGPreferencesUseInternalViewer := LANGenPreferencesUseInternalViewer; LANGPreferencesEditor := LANGenPreferencesEditor; LANGPreferencesTerminal := LANGenPreferencesTerminal; LANGPreferencesExperimentalFeatures := LANGenPreferencesExperimentalFeatures; LANGPreferencesExperimentalWarningLabel_Caption := LANGenPreferencesExperimentalWarningLabel_Caption; LANGPreferencesFocusRefreshCheckBox_Caption := LANGenPreferencesFocusRefreshCheckBox_Caption; LANGPreferencesFocusRefreshCheckBox_Tooltip := LANGenPreferencesFocusRefreshCheckBox_Tooltip; LANGPreferencesWMCompatModeCheckBox_Caption := LANGenPreferencesWMCompatModeCheckBox_Caption; LANGPreferencesWMCompatModeCheckBox_Tooltip := LANGenPreferencesWMCompatModeCheckBox_Tooltip; LANGPreferencesCompatUseLibcSystemCheckBox_Caption := LANGenPreferencesCompatUseLibcSystemCheckBox_Caption; LANGPreferencesCompatUseLibcSystemCheckBox_Tooltip := LANGenPreferencesCompatUseLibcSystemCheckBox_Tooltip; LANGmiSearchCaption2 := LANGenmiSearchCaption2; LANGmiNoMounterBarCaption := LANGenmiNoMounterBarCaption; LANGmiShowOneMounterBarCaption := LANGenmiShowOneMounterBarCaption; LANGmiShowTwoMounterBarCaption := LANGenmiShowTwoMounterBarCaption; LANGmnuNetworkCaption := LANGenmnuNetworkCaption; LANGmiConnectionsCaption := LANGenmiConnectionsCaption; LANGmiOpenConnectionCaption := LANGenmiOpenConnectionCaption; LANGmiQuickConnectCaption := LANGenmiQuickConnectCaption; LANGmnuPluginsCaption := LANGenmnuPluginsCaption; LANGmiTestPluginCaption := LANGenmiTestPluginCaption; LANGmiMounterSettingsCaption := LANGenmiMounterSettingsCaption; LANGmiColumnsCaption := LANGenmiColumnsCaption; LANGmiSavePositionCaption := LANGenmiSavePositionCaption; LANGmiMountCaption := LANGenmiMountCaption; LANGmiUmountCaption := LANGenmiUmountCaption; LANGmiEjectCaption := LANGenmiEjectCaption; LANGmiDuplicateTabCaption := LANGenmiDuplicateTabCaption; LANGmiCloseTabCaption := LANGenmiCloseTabCaption; LANGmiCloseAllTabsCaption := LANGenmiCloseAllTabsCaption; LANGCannotDetermineDestinationEngine := LANGenCannotDetermineDestinationEngine; LANGCannotLoadFile := LANGenCannotLoadFile; LANGMountPointDevice := LANGenMountPointDevice; LANGMountSC := LANGenMountSC; LANGNoPluginsFound := LANGenNoPluginsFound; LANGPluginAbout := LANGenPluginAbout; LANGCouldntOpenURI := LANGenCouldntOpenURI; LANGPluginAboutInside := LANGenPluginAboutInside; LANGAreYouSureCloseAllTabs := LANGenAreYouSureCloseAllTabs; LANGCouldntOpenURIArchive := LANGenCouldntOpenURIArchive; LANGThereIsNoModuleAvailable := LANGenThereIsNoModuleAvailable; LANGIgnoreError := LANGenIgnoreError; LANGErrorMount := LANGenErrorMount; LANGErrorUmount := LANGenErrorUmount; LANGErrorEject := LANGenErrorEject; LANGMounterPrefs_Caption := LANGenMounterPrefs_Caption; LANGMounterPrefs_TitleLabelCaption := LANGenMounterPrefs_TitleLabelCaption; LANGMounterPrefs_ListViewFrameCaption := LANGenMounterPrefs_ListViewFrameCaption; LANGMounterPrefs_MountName := LANGenMounterPrefs_MountName; LANGMounterPrefs_MountPoint := LANGenMounterPrefs_MountPoint; LANGMounterPrefs_Device := LANGenMounterPrefs_Device; LANGMounterPrefs_MoveUpButtonTooltip := LANGenMounterPrefs_MoveUpButtonTooltip; LANGMounterPrefs_MoveDownButtonTooltip := LANGenMounterPrefs_MoveDownButtonTooltip; LANGMounterPrefs_UseFSTabDefaultsCheckBox := LANGenMounterPrefs_UseFSTabDefaultsCheckBox; LANGMounterPrefs_UseFSTabDefaultsCheckBoxTooltip := LANGenMounterPrefs_UseFSTabDefaultsCheckBoxTooltip; LANGMounterPrefs_ToggleModeCheckBox := LANGenMounterPrefs_ToggleModeCheckBox; LANGMounterPrefs_ToggleModeCheckBoxTooltip := LANGenMounterPrefs_ToggleModeCheckBoxTooltip; LANGMounterPrefs_PropertiesFrameCaption := LANGenMounterPrefs_PropertiesFrameCaption; LANGMounterPrefs_DisplayTextLabelCaption := LANGenMounterPrefs_DisplayTextLabelCaption; LANGMounterPrefs_MountPointLabelCaption := LANGenMounterPrefs_MountPointLabelCaption; LANGMounterPrefs_MountDeviceLabelCaption := LANGenMounterPrefs_MountDeviceLabelCaption; LANGMounterPrefs_DeviceTypeLabelCaption := LANGenMounterPrefs_DeviceTypeLabelCaption; LANGMounterPrefs_miLocalDiskCaption := LANGenMounterPrefs_miLocalDiskCaption; LANGMounterPrefs_miRemovableCaption := LANGenMounterPrefs_miRemovableCaption; LANGMounterPrefs_miCDCaption := LANGenMounterPrefs_miCDCaption; LANGMounterPrefs_miFloppyCaption := LANGenMounterPrefs_miFloppyCaption; LANGMounterPrefs_miNetworkCaption := LANGenMounterPrefs_miNetworkCaption; LANGMounterPrefs_MountCommandLabelCaption := LANGenMounterPrefs_MountCommandLabelCaption; LANGMounterPrefs_UmountCommandLabelCaption := LANGenMounterPrefs_UmountCommandLabelCaption; LANGMounterPrefs_MountCommandEntryTooltip := LANGenMounterPrefs_MountCommandEntryTooltip; LANGMounterPrefs_UmountCommandEntryTooltip := LANGenMounterPrefs_UmountCommandEntryTooltip; LANGMounterPrefs_IconLabelCaption := LANGenMounterPrefs_IconLabelCaption; LANGConnMgr_Caption := LANGenConnMgr_Caption; LANGConnMgr_ConnectButton := LANGenConnMgr_ConnectButton; LANGConnMgr_OpenConnection := LANGenConnMgr_OpenConnection; LANGConnMgr_NameColumn := LANGenConnMgr_NameColumn; LANGConnMgr_URIColumn := LANGenConnMgr_URIColumn; LANGConnMgr_AddConnectionButtonCaption := LANGenConnMgr_AddConnectionButtonCaption; LANGConnMgr_AddConnectionButtonTooltip := LANGenConnMgr_AddConnectionButtonTooltip; LANGConnMgr_EditButtonCaption := LANGenConnMgr_EditButtonCaption; LANGConnMgr_EditButtonTooltip := LANGenConnMgr_EditButtonTooltip; LANGConnMgr_RemoveButtonCaption := LANGenConnMgr_RemoveButtonCaption; LANGConnMgr_RemoveButtonTooltip := LANGenConnMgr_RemoveButtonTooltip; LANGConnMgr_DoYouWantDelete := LANGenConnMgr_DoYouWantDelete; LANGConnProp_FTP := LANGenConnProp_FTP; LANGConnProp_SFTP := LANGenConnProp_SFTP; LANGConnProp_SMB := LANGenConnProp_SMB; LANGConnProp_HTTP := LANGenConnProp_HTTP; LANGConnProp_HTTPS := LANGenConnProp_HTTPS; LANGConnProp_Other := LANGenConnProp_Other; LANGConnProp_Caption := LANGenConnProp_Caption; LANGConnProp_VFSModule := LANGenConnProp_VFSModule; LANGConnProp_URI := LANGenConnProp_URI; LANGConnProp_URIEntryTooltip := LANGenConnProp_URIEntryTooltip; LANGConnProp_DetailedInformations := LANGenConnProp_DetailedInformations; LANGConnProp_Name := LANGenConnProp_Name; LANGConnProp_Server := LANGenConnProp_Server; LANGConnProp_Username := LANGenConnProp_Username; LANGConnProp_UserNameEntryTooltip := LANGenConnProp_UserNameEntryTooltip; LANGConnProp_Password := LANGenConnProp_Password; LANGConnProp_TargetDirectory := LANGenConnProp_TargetDirectory; LANGConnProp_ServiceType := LANGenConnProp_ServiceType; LANGConnProp_MaskPassword := LANGenConnProp_MaskPassword; LANGConnProp_MenuItemCaption := LANGenConnProp_MenuItemCaption; LANGConnLogin_Caption := LANGenConnLogin_Caption; LANGConnLogin_Login := LANGenConnLogin_Login; LANGConnLogin_ExperimentalWarningLabelCaption := LANGenConnLogin_ExperimentalWarningLabelCaption; LANGConnLogin_Username := LANGenConnLogin_Username; LANGConnLogin_Password := LANGenConnLogin_Password; LANGConnLogin_AnonymousCheckButton := LANGenConnLogin_AnonymousCheckButton; LANGColumns_Caption := LANGenColumns_Caption; LANGColumns_Title := LANGenColumns_Title; LANGColumns_MoveUpButtonTooltip := LANGenColumns_MoveUpButtonTooltip; LANGColumns_MoveDownButtonTooltip := LANGenColumns_MoveDownButtonTooltip; LANGColumns_TitlesLongName := LANGenColumns_TitlesLongName; LANGColumns_TitlesLongNameExt := LANGenColumns_TitlesLongNameExt; LANGColumns_TitlesLongExt := LANGenColumns_TitlesLongExt; LANGColumns_TitlesLongSize := LANGenColumns_TitlesLongSize; LANGColumns_TitlesLongDateTime := LANGenColumns_TitlesLongDateTime; LANGColumns_TitlesLongDate := LANGenColumns_TitlesLongDate; LANGColumns_TitlesLongTime := LANGenColumns_TitlesLongTime; LANGColumns_TitlesLongUser := LANGenColumns_TitlesLongUser; LANGColumns_TitlesLongGroup := LANGenColumns_TitlesLongGroup; LANGColumns_TitlesLongAttr := LANGenColumns_TitlesLongAttr; LANGColumns_TitlesShortName := LANGenColumns_TitlesShortName; LANGColumns_TitlesShortNameExt := LANGenColumns_TitlesShortNameExt; LANGColumns_TitlesShortExt := LANGenColumns_TitlesShortExt; LANGColumns_TitlesShortSize := LANGenColumns_TitlesShortSize; LANGColumns_TitlesShortDateTime := LANGenColumns_TitlesShortDateTime; LANGColumns_TitlesShortDate := LANGenColumns_TitlesShortDate; LANGColumns_TitlesShortTime := LANGenColumns_TitlesShortTime; LANGColumns_TitlesShortUser := LANGenColumns_TitlesShortUser; LANGColumns_TitlesShortGroup := LANGenColumns_TitlesShortGroup; LANGColumns_TitlesShortAttr := LANGenColumns_TitlesShortAttr; LANGTestPlugin_Caption := LANGenTestPlugin_Caption; LANGTestPlugin_Title := LANGenTestPlugin_Title; LANGTestPlugin_ExperimentalWarningLabelCaption := LANGenTestPlugin_ExperimentalWarningLabelCaption; LANGTestPlugin_Plugin := LANGenTestPlugin_Plugin; LANGTestPlugin_Command := LANGenTestPlugin_Command; LANGTestPlugin_Username := LANGenTestPlugin_Username; LANGTestPlugin_Password := LANGenTestPlugin_Password; LANGTestPlugin_AnonymousCheckButton := LANGenTestPlugin_AnonymousCheckButton; LANGTestPlugin_NoPluginsFound := LANGenTestPlugin_NoPluginsFound; LANGRemoteWait_Caption := LANGenRemoteWait_Caption; LANGRemoteWait_OperationInProgress := LANGenRemoteWait_OperationInProgress; LANGRemoteWait_ItemsFound := LANGenRemoteWait_ItemsFound; LANGSearch_Bytes := LANGenSearch_Bytes; LANGSearch_kB := LANGenSearch_kB; LANGSearch_MB := LANGenSearch_MB; LANGSearch_days := LANGenSearch_days; LANGSearch_weeks := LANGenSearch_weeks; LANGSearch_months := LANGenSearch_months; LANGSearch_years := LANGenSearch_years; LANGSearch_Caption := LANGenSearch_Caption; LANGSearch_General := LANGenSearch_General; LANGSearch_Advanced := LANGenSearch_Advanced; LANGSearch_SearchResults := LANGenSearch_SearchResults; LANGSearch_SearchFor := LANGenSearch_SearchFor; LANGSearch_FileMaskEntryTooltip := LANGenSearch_FileMaskEntryTooltip; LANGSearch_SearchIn := LANGenSearch_SearchIn; LANGSearch_SearchArchivesCheckButton := LANGenSearch_SearchArchivesCheckButton; LANGSearch_FindText := LANGenSearch_FindText; LANGSearch_FindTextEntryTooltip := LANGenSearch_FindTextEntryTooltip; LANGSearch_CaseSensitiveCheckButton := LANGenSearch_CaseSensitiveCheckButton; LANGSearch_StayCurrentFSCheckButton := LANGenSearch_StayCurrentFSCheckButton; LANGSearch_CaseSensitiveMatchCheckButton := LANGenSearch_CaseSensitiveMatchCheckButton; LANGSearch_Size := LANGenSearch_Size; LANGSearch_Date := LANGenSearch_Date; LANGSearch_BiggerThan := LANGenSearch_BiggerThan; LANGSearch_SmallerThan := LANGenSearch_SmallerThan; LANGSearch_ModifiedBetweenRadioButton := LANGenSearch_ModifiedBetweenRadioButton; LANGSearch_NotModifiedAfterRadioButton := LANGenSearch_NotModifiedAfterRadioButton; LANGSearch_ModifiedLastRadioButton := LANGenSearch_ModifiedLastRadioButton; LANGSearch_ModifiedNotLastRadionButton := LANGenSearch_ModifiedNotLastRadionButton; LANGSearch_ModifiedBetweenEntry1 := LANGenSearch_ModifiedBetweenEntry1; LANGSearch_ViewButtonCaption := LANGenSearch_ViewButtonCaption; LANGSearch_NewSearchButtonCaption := LANGenSearch_NewSearchButtonCaption; LANGSearch_GoToFileButtonCaption := LANGenSearch_GoToFileButtonCaption; LANGSearch_FeedToListboxButtonCaption := LANGenSearch_FeedToListboxButtonCaption; LANGSearch_StatusSC := LANGenSearch_StatusSC; LANGSearch_Ready := LANGenSearch_Ready; LANGSearch_PreparingToSearch := LANGenSearch_PreparingToSearch; LANGSearch_SearchInProgress := LANGenSearch_SearchInProgress; LANGSearch_UserCancelled := LANGenSearch_UserCancelled; LANGSearch_SearchFinished := LANGenSearch_SearchFinished; LANGSearch_FilesFound := LANGenSearch_FilesFound; LANGSearch_And := LANGenSearch_And; LANGCloseOpenConnection := LANGenCloseOpenConnection; LANGDuplicateTabWarning := LANGenDuplicateTabWarning; LANGDontShowAgain := LANGenDontShowAgain; LANGSwitchOtherPanelWarning := LANGenSwitchOtherPanelWarning; LANGOpenConnectionsWarning := LANGenOpenConnectionsWarning; LANGmiDisconnect_Caption := LANGenmiDisconnect_Caption; LANGDisconnectButton_Tooltip := LANGenDisconnectButton_Tooltip; LANGLeaveArchiveButton_Tooltip := LANGenLeaveArchiveButton_Tooltip; LANGOpenTerminalButton_Tooltip := LANGenOpenTerminalButton_Tooltip; LANGOpenTerminalButton_Caption := LANGenOpenTerminalButton_Caption; LANGShowTextUIDsCheckBox_Caption := LANGenShowTextUIDsCheckBox_Caption; LANGShowTextUIDsCheckBox_Tooltip := LANGenShowTextUIDsCheckBox_Tooltip; LANGmiNewTab_Caption := LANGenmiNewTab_Caption; LANGFilePopupMenu_Properties := LANGenFilePopupMenu_Properties; LANGCommandEntry_Tooltip := LANGenCommandEntry_Tooltip; LANGmiFiles_Caption := LANGenmiFiles_Caption; LANGPasswordButton_Tooltip := LANGenPasswordButton_Tooltip; LANGHandleRunFromArchive_Bytes := LANGenHandleRunFromArchive_Bytes; LANGHandleRunFromArchive_FileTypeDesc_Unknown := LANGenHandleRunFromArchive_FileTypeDesc_Unknown; LANGHandleRunFromArchive_NotAssociated := LANGenHandleRunFromArchive_NotAssociated; LANGHandleRunFromArchive_SelfExecutable := LANGenHandleRunFromArchive_SelfExecutable; LANGHandleRunFromArchive_CouldntCreateTemporaryDirectory := LANGenHandleRunFromArchive_CouldntCreateTemporaryDirectory; LANGFRunFromVFS_Caption := LANGenFRunFromVFS_Caption; LANGFRunFromVFS_TitleLabel := LANGenFRunFromVFS_TitleLabel; LANGFRunFromVFS_FileNameLabel := LANGenFRunFromVFS_FileNameLabel; LANGFRunFromVFS_FileTypeLabel := LANGenFRunFromVFS_FileTypeLabel; LANGFRunFromVFS_SizeLabel := LANGenFRunFromVFS_SizeLabel; LANGFRunFromVFS_PackedSizeLabel := LANGenFRunFromVFS_PackedSizeLabel; LANGFRunFromVFS_DateLabel := LANGenFRunFromVFS_DateLabel; LANGFRunFromVFS_InfoLabel := LANGenFRunFromVFS_InfoLabel; LANGFRunFromVFS_OpensWithLabel := LANGenFRunFromVFS_OpensWithLabel; LANGFRunFromVFS_ExecuteButton := LANGenFRunFromVFS_ExecuteButton; LANGFRunFromVFS_ExecuteAllButton := LANGenFRunFromVFS_ExecuteAllButton; LANGFSetPassword_Caption := LANGenFSetPassword_Caption; LANGFSetPassword_Label1_Caption := LANGenFSetPassword_Label1_Caption; LANGFSetPassword_Label2_Caption := LANGenFSetPassword_Label2_Caption; LANGFSetPassword_ShowPasswordCheckButton := LANGenFSetPassword_ShowPasswordCheckButton; LANGCopyFileNamesToClipboard := LANGenCopyFileNamesToClipboard; LANGCopyFullPathNamesToClipboard := LANGenCopyFullPathNamesToClipboard; LANGCopyPathToClipboard := LANGenCopyPathToClipboard; LANGPreferences_DateFormatLabel_Caption := LANGenPreferences_DateFormatLabel_Caption; LANGPreferences_System := LANGenPreferences_System; LANGPreferences_Custom := LANGenPreferences_Custom; LANGPreferences_CustomDateFormatEntry_Tooltip := LANGenPreferences_CustomDateFormatEntry_Tooltip; LANGPreferences_TimeFormatLabel_Caption := LANGenPreferences_TimeFormatLabel_Caption; LANGPreferences_CustomTimeFormatEntry_Tooltip := LANGenPreferences_CustomTimeFormatEntry_Tooltip; LANGPreferences_DateTimeFormatLabel_Caption := LANGenPreferences_DateTimeFormatLabel_Caption; LANGPreferences_QuickRenameSkipExtCheckBox := LANGenPreferences_QuickRenameSkipExtCheckBox; LANGPreferences_QuickRenameSkipExtCheckBox_Tooltip := LANGenPreferences_QuickRenameSkipExtCheckBox_Tooltip; LANGPreferences_SortDirectoriesLikeFilesCheckBox := LANGenPreferences_SortDirectoriesLikeFilesCheckBox; LANGPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip := LANGenPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip; LANGPreferences_QuickSearchLabel_Caption := LANGenPreferences_QuickSearchLabel_Caption; LANGPreferences_QuickSearchOptionMenu_Tooltip := LANGenPreferences_QuickSearchOptionMenu_Tooltip; LANGPreferences_QuickSearch_Option1 := LANGenPreferences_QuickSearch_Option1; LANGPreferences_QuickSearch_Option2 := LANGenPreferences_QuickSearch_Option2; LANGPreferences_QuickSearch_Option3 := LANGenPreferences_QuickSearch_Option3; LANGPreferences_QuickSearch_Option4 := LANGenPreferences_QuickSearch_Option4; LANGPreferences_TempPathLabel_Caption := LANGenPreferences_TempPathLabel_Caption; LANGPreferences_VFSTempPathLabel_Caption := LANGenPreferences_VFSTempPathLabel_Caption; LANGPreferences_VFSTempPathEntry_Tooltip := LANGenPreferences_VFSTempPathEntry_Tooltip; LANGPreferences_RightClickSelectCheckBox := LANGenPreferences_RightClickSelectCheckBox; LANGPreferences_RightClickSelectCheckBox_Tooltip := LANGenPreferences_RightClickSelectCheckBox_Tooltip; LANGGtkMountOperation_ConnectAnonymously := LANGenGtkMountOperation_ConnectAnonymously; LANGGtkMountOperation_ConnectAsUser := LANGenGtkMountOperation_ConnectAsUser; LANGGtkMountOperation_Username := LANGenGtkMountOperation_Username; LANGGtkMountOperation_Domain := LANGenGtkMountOperation_Domain; LANGGtkMountOperation_Password := LANGenGtkMountOperation_Password; LANGGtkMountOperation_DoNotSavePassword := LANGenGtkMountOperation_DoNotSavePassword; LANGGtkMountOperation_ForgetPasswordImmediately := LANGenGtkMountOperation_ForgetPasswordImmediately; LANGGtkMountOperation_RememberPasswordUntilYouLogout := LANGenGtkMountOperation_RememberPasswordUntilYouLogout; LANGGtkMountOperation_SavePasswordInConnectionManager := LANGenGtkMountOperation_SavePasswordInConnectionManager; LANGGtkMountOperation_RememberForever := LANGenGtkMountOperation_RememberForever; LANGFSymlink_RelativePath := LANGenFSymlink_RelativePath; LANGFConnectionManager_DuplicateButton_Caption := LANGenFConnectionManager_DuplicateButton_Caption; LANGFConnectionManager_DuplicateButton_Tooltip := LANGenFConnectionManager_DuplicateButton_Tooltip; LANGFConnectionManager_DoNotSavePasswordsCheckBox_Label := LANGenFConnectionManager_DoNotSavePasswordsCheckBox_Label; LANGFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip := LANGenFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip; LANGFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label := LANGenFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label; LANGFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip := LANGenFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip; LANGFConnectionManager_DuplicateMenuItem_Caption := LANGenFConnectionManager_DuplicateMenuItem_Caption; LANGFQuickConnect_Caption := LANGenFQuickConnect_Caption; LANGFQuickConnect_TitleLabel_Caption := LANGenFQuickConnect_TitleLabel_Caption; LANGFQuickConnect_ConnectToURILabel_Caption := LANGenFQuickConnect_ConnectToURILabel_Caption; LANGLinkToS := LANGenLinkToS; LANGOpenDirectoryInBackgroundTab := LANGenOpenDirectoryInBackgroundTab; LANGTheActiveConnectionHasNotBeenSaved := LANGenTheActiveConnectionHasNotBeenSaved; LANGTheArchiveIsEncryptedAndRequiresPassword := LANGenTheArchiveIsEncryptedAndRequiresPassword; end; initialization AddTranslation('US', @SetTranslation); AddTranslation('EN', @SetTranslation); AddTranslation('en_US', @SetTranslation); AddTranslation('C', @SetTranslation); // Please don't add this line to your translations, it is default "C" locale (of course English) end. tuxcmd-0.6.70+dfsg/translations/UTranslation_UA.pas0000644000175000017500000030422411300022643021277 0ustar salvisalvi(* Tux Commander - UTranslation_UA - Ukrainian Localization constants Copyright (C) 2007 Serhij Dubyk Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UTranslation_UA; interface implementation uses ULocale; const LANGuaF2Button_Caption = 'F2 - Перейменувати'; LANGuaF3Button_Caption = 'F3 - ПереглÑд'; LANGuaF4Button_Caption = 'F4 - Редагувати'; LANGuaF5Button_Caption = 'F5 - Копіювати'; LANGuaF6Button_Caption = 'F6 - ПереміÑтити'; LANGuaF7Button_Caption = 'F7 - Тека'; LANGuaF8Button_Caption = 'F8 - Вилучити'; LANGuamnuFile_Caption = '_Файл'; LANGuamnuMark_Caption = '_ВиділеннÑ'; LANGuamnuCommands_Caption = 'Коман_ди'; LANGuamnuHelp_Caption = '_Допомога'; LANGuamiExit_Caption = 'Ð’_ихід'; LANGuamiSelectGroup_Caption = 'Виділити _групу...'; LANGuamiUnselectGroup_Caption = '_ЗнÑти виділеннÑ...'; LANGuamiSelectAll_Caption = 'Ви_ділити уÑе'; LANGuamiUnselectAll_Caption = 'Зн_Ñти уÑе виділеннÑ'; LANGuamiInvertSelection_Caption = '_Інвертувати виділеннÑ'; LANGuamiRefresh_Caption = 'О_новити вікно'; LANGuamiAbout_Caption = '_Про програму...'; LANGuaColumn1_Caption = 'І''мÑ'; LANGuaColumn2_Caption = 'Тип'; LANGuaColumn3_Caption = 'Розмір'; LANGuaColumn4_Caption = 'Дата'; LANGuaColumn5_Caption = 'Ðтрибути'; LANGuaExpandSelection = 'Розширити виділеннÑ'; LANGuaShrinkSelection = 'Зменшити виділеннÑ'; LANGuaNoMatchesFound = 'Такі файли не знайдені.'; LANGuaNoFilesSelected = 'Ðемає вибраних файлів.'; LANGuaSelectedFilesDirectories = '%d файли(ів)/тек(и)'; LANGuaDirectoryS = 'тека %s'; LANGuaFileS = 'файл %s'; LANGuaDoYouReallyWantToDeleteTheS = 'ДійÑно вилучити %s ?'; LANGuaDoYouReallyWantToDeleteTheSS = 'ДійÑно вилучити %s ?'#10'%s'; LANGuaCopyFiles = 'Копіювати файли'; LANGuaMoveRenameFiles = 'Перейменувати/ПереміÑтити файли'; LANGuaCopyDFileDirectoriesTo = 'Копіювати %d файли(ів)/тек(и) в'; LANGuaMoveRenameDFileDirectoriesTo = 'Перейменувати/ПереміÑтити %d файли(ів)/тек(и) у'; LANGuaCopySC = 'Копіювати:'; LANGuaMoveRenameSC = 'Перейменувати/ПереміÑтити:'; LANGuaQuickFind = ' Пошук:'; LANGuaAboutString = 'Tux Commander'#10'ВерÑÑ–Ñ %s'#10'Дата збірки: %s'#10#10'ÐвторÑьке право (c) 2008 Tomáš Bžatek'#10'електронна пошта: tbzatek@users.sourceforge.net'#10'Сайт: http://tuxcmd.sourceforge.net/'; LANGuaAboutStringGnome = 'верÑÑ–Ñ %s'#10'Дата збірки: %s'#10'Сайт: http://tuxcmd.sourceforge.net/'; LANGuaDiskStatFmt = '%s зі %s вільно'; LANGuaDiskStatVolNameFmt = '[%s] %s зі %s кБ вільно'; LANGuaStatusLineFmt = 'вибрано: %s зі %s , файлів: %d зі %d'; LANGuaPanelStrings : array[boolean] of string = ('правої', 'лівої'); LANGuaDIR = ''; LANGuaErrorGettingListingForSPanel = 'Ðеможливо отримати ÑпиÑок Ð´Ð»Ñ %s панелі:'#10' %s'#10#10'ШлÑÑ… = ''%s'''; LANGuaErrorGettingListingForSPanelNoPath = 'Ðеможливо отримати ÑпиÑок Ð´Ð»Ñ %s панелі:'#10' %s'; LANGuaErrorCreatingNewDirectorySInSPanel = 'Помилка ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¾Ñ— теки ''%s'' у %s панелі:'#10' %s'; LANGuaErrorCreatingNewDirectorySInSPanelNoPath = 'Помилка ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¾Ñ— теки у %s панелі:'#10' %s'; LANGuaTheFileDirectory = 'Файл/Тека'; LANGuaCouldNotBeDeleted = 'не може бути вилучено'; LANGuaCouldNotBeDeletedS = 'не може бути вилучено: %s'; LANGuaUserCancelled = 'Перервано кориÑтувачем'; LANGuaTheDirectorySIsNotEmpty = 'Тека %s міÑтить файли Ñ–/чи підтеки.'; LANGuaCannotCopyFile = 'Ðе можу Ñкопіювати файл'; LANGuaCopyError = 'Помилка ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð²'; LANGuaMoveError = 'Помилка Ð¿ÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð²'; LANGuaOverwriteS = 'Замінити: %s'; LANGuaWithFileS = 'Файлом: %s'; LANGuaOvewriteSBytesS = '%s байт, %s'; LANGuaTheFile = 'Файл'; LANGuaCopy = 'Копіювати'; LANGuaMove = 'ПереміÑтити'; LANGuaTheDirectory = 'Тека'; LANGuaTheSymbolicLink = 'Символьне поÑиланнÑ'; LANGuaCannotMoveFile = 'Ðе можу переміÑтити файл'; LANGuaCouldNotBeCreated = 'не може бути Ñтворений'; LANGuaCouldNotBeCreatedS = 'не може бути Ñтворений: %s'; LANGuaFromS = 'Зі: %s'; LANGuaToS = 'У: %s'; LANGuaCannotCopyFileToItself = 'Ðе можна Ñкопіювати файл Ñам в Ñебе'; LANGuaMemoryAllocationFailed = 'Ðе виÑтачає пам''Ñті:'; LANGuaCannotOpenSourceFile = 'Ðеможливо відкрити джерельний файл'; LANGuaCannotOpenDestinationFile = 'Ðеможливо Ñтворити файл-призначеннÑ'; LANGuaCannotCloseDestinationFile = 'Ðеможливо закрити файл-призначеннÑ'; LANGuaCannotCloseSourceFile = 'Ðеможливо закрити джерельний файл'; LANGuaCannotReadFromSourceFile = 'Помилка Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð´Ð¶ÐµÑ€ÐµÐ»ÑŒÐ½Ð¾Ð³Ð¾ файла'; LANGuaCannotWriteToDestinationFile = 'Помилка запиÑу до файлу-призначеннÑ'; LANGuaUnknownException = 'Ðевідомий збій'; LANGuaNoAccess = 'Ðемає доÑтупу'; LANGuaUnknownError = 'Ðевідома помилка'; LANGuaCreateANewDirectory = 'Створити нову теку'; LANGuaEnterDirectoryName = 'Вкажіть ім''Ñ _теки:'; LANGuaOverwriteQuestion = 'ÐŸÑ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ð·Ð°Ð¼Ñ–Ð½Ð¸'; LANGuaOverwriteButton_Caption = '_Замінити'; LANGuaOverwriteAllButton_Caption = 'Замінити _уÑе'; LANGuaSkipButton_Caption = '_ПропуÑтити'; LANGuaOverwriteAllOlderButton_Caption = 'Замінити більш _Ñтарі'; LANGuaSkipAllButton_Caption = 'ПропуÑтити уÑ_е'; LANGuaRenameButton_Caption = 'Пере_йменувати'; LANGuaAppendButton_Caption = '_ДопиÑати'; LANGuaRename = 'Перейменувати'; LANGuaRenameFile = 'Перейменувати файл ''%s'' в'; LANGuaIgnoreButton_Caption = '_Ігнорувати'; LANGuaProgress = 'ПрогреÑ'; LANGuaCancel = '_Відміна'; LANGuaDelete = 'Вилучити:'; LANGuaSpecifyFileType = '_Тип файлу:'; LANGuaRemoveDirectory = 'Вилучити теку'; LANGuaDoYouWantToDeleteItWithAllItsFilesAndSubdirectories = 'Чи дійÑно хочете вилучити його повніÑтю, зі вÑіма файлами та підтеками?'; LANGuaRetry = '_Повторити'; LANGuaDeleteButton_Caption = '_Вилучити'; LANGuaAll = '_УÑе'; LANGuaCopyFilesSC = 'Копіювати файли:'; LANGuaAppendQuestion = 'Чи дійÑно хочете додати файл ''%s'' до ''%s''?'; LANGuaPreparingList = 'Підготовка ÑпиÑку...'; LANGuaYouMustSelectAValidFile = 'вибраний невірний файл!'; LANGuamiVerifyChecksums = 'Перев_ірити контрольну Ñуму'; LANGuaVerifyChecksumsCaption = 'Перевірка контрольної Ñуми'; LANGuaCheckButtonCaptionCheck = '_Перевірка'; LANGuaCheckButtonCaptionStop = '_Зупинити'; LANGuaFileListTooltip = '[?] - Ðе перевірено'#10'[OK] - Контрольну Ñуму перевірено'#10'[BAD] - Погана контрольна Ñума'#10'[N/A] - Файл не доÑтупний'; LANGuaFilenameColumnCaption = 'Ім''Ñ Ñ„Ð°Ð¹Ð»Ð°'; LANGuaTheFileSYouAreTryingToOpenIsQuiteBig = 'Файл ''%s'' занадто великий. Ймовірно, він не міÑтить контрольної Ñуми.'#10#10'Тим не менше продовжити?'; LANGuaAnErrorOccuredWhileInitializingMemoryBlock = 'Помилка ініціалізації блоку пам''Ñті. Закрийте декілька програм та Ñпробуйте ще раз.'; LANGuaAnErrorOccuredWhileOpeningFileSS = 'Помилка Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ñ„Ð°Ð¹Ð»Ð° ''%s'':'#10' %s'; LANGuaAnErrorOccuredWhileReadingFileSS = 'Помилка Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð° ''%s'':'#10' %s'; LANGuaChecksumNotChecked = 'СтатуÑ: не перевірено'; LANGuaChecksumChecking = 'СтатуÑ: перевірÑÑŽ...'; LANGuaChecksumInterrupted = 'СтатуÑ: перевірку перервано'; LANGuaChecksumDOK = 'СтатуÑ: %d%% гаразд'; LANGuamiCreateChecksumsCaption = '_Створити контрольні Ñуми...'; LANGuaYouMustSelectAtLeastOneFileToCalculateChecksum = 'Потрібно вибрати хоча б один файл Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŒÐ½Ð¾Ñ— Ñуми!'; LANGuaCreateChecksumsCaption = 'Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŒÐ½Ð¸Ñ… Ñум'; LANGuaCCHKSUMPage1Text = 'Якщо Ви не вибрали'#10'уÑÑ– необхідні Вам файли, закрийте це вікно та'#10'виберіть решту файлів.'; LANGuaCCHKSUMPage4Text = 'Друїд готовий до ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŒÐ½Ð¸Ñ… Ñум'#10'Ð´Ð»Ñ Ð²Ð¸Ð±Ñ€Ð°Ð½Ð¸Ñ… файлів. Це може зайнÑти декілька хвилин.'#10'ÐатиÑніть "Вперед" Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð²Ð¶ÐµÐ½Ð½Ñ.'; LANGuaCCHKSUMPage6Text = 'Помилка ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŒÐ½Ð¾Ñ— Ñуми:'; LANGuaCCHKSUMPage7Text = 'Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŒÐ½Ð¸Ñ… Ñум завершено.'#10#10'ÐатиÑніть "Завершити" Ð´Ð»Ñ Ð²Ð¸Ñ…Ð¾Ð´Ñƒ.'; LANGuaCCHKSUMPage1Title = 'Підготовка до ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŒÐ½Ð¾Ñ— Ñуми'; LANGuaCCHKSUMPage2Title = 'Виберіть тип контрольної Ñуми'; LANGuaCCHKSUMPage3Title = 'Виберіть ім''Ñ Ñ„Ð°Ð¹Ð»Ñƒ'; LANGuaCCHKSUMPage4Title = 'Готовий до ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŒÐ½Ð¸Ñ… Ñум'; LANGuaCCHKSUMPage5Title = 'Ð’ процеÑÑ–...'; LANGuaCCHKSUMPage6Title = 'Помилка!'; LANGuaCCHKSUMPage7Title = 'Готово'; LANGuaCCHKSUMSFVFile = 'Файл SFV'; LANGuaCCHKSUMMD5sumFile = 'Файл MD5'; LANGuaCCHKSUMFileName = '_Ім''Ñ Ñ„Ð°Ð¹Ð»Ñƒ:'; LANGuaCCHKSUMCreateSeparateChecksumFiles = 'Створити _окремі файли контрольних Ñум'; LANGuaCCHKSUMNowProcessingFileS = 'У процеÑÑ– ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ: %s'; LANGuaCCHKSUMFinishCaption = '_Завершити'; LANGuaCCHKSUMAreYouSureYouWantToAbortTheProcessing = 'Хочете перервати поточний процеÑ?'; LANGuaCCHKSUMAnErrorOccuredWhileOpeningFileSS = 'Помилка Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ñ„Ð°Ð¹Ð»Ñƒ ''%s'': %s'#10; LANGuaCCHKSUMAnErrorOccuredWhileReadingFileSS = 'Помилка Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ ''%s'': %s'#10; LANGuaCCHKSUMAnErrorOccuredWhileWritingFileSS = 'Помилка запиÑу в файл ''%s'': %s'#10; LANGuaAnErrorOccuredWhileWritingFileSS = 'Помилка запиÑу в файл ''%s'':'#10' %s'; LANGuaTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt = 'Файл ''%s'' вже Ñ–Ñнує. Чи хочете його замінити?'; LANGuaTheTargetFileSCannotBeRemovedS = 'Ðеможливо вилучити файл ''%s'' : %s'; LANGuaMergeCaption = 'Об''єднати'; LANGuaPleaseInsertNextDiskOrGiveDifferentLocation = 'Будь-лаÑка, вÑтавте наÑтупний диÑк, чи вкажіть іншу теку: '; LANGuaMergeOfSSucceeded = 'Об''Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð° ''%s'' відбулоÑÑ Ð²Ð´Ð°Ð»Ð¾ (контрольну Ñуму(CRC) перевірено).'; LANGuaWarningCreatedFileFailsCRCCheck = 'Увага: Ñтворений файл має невірну контрольну Ñуму!'; LANGuaMergeOfSSucceeded_NoCRCFileAvailable = 'Об''Ñ”Ð´Ð½Ð°Ð½Ð½Ñ ''%s'' відбулоÑÑ Ð²Ð´Ð°Ð»Ð¾ (без перевірки контрольної Ñуми).'; LANGuaMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory = 'Об''єднати уÑÑ– файли, що починаютьÑÑ Ð· ''%s'' до теки:'; LANGuaMergeSC = 'Об''єднаннÑ:'; LANGuamiSplitFileCaption = '_Розділити файл...'; LANGuamiMergeFilesCaption = '_Об''єднати файли...'; LANGuaSplitTheFileSToDirectory = '_Розбити файл ''%s'' до теки:'; LANGuaSplitSC = 'Розбити:'; LANGuaSplitFile = 'Розбити файл'; LANGuaBytesPerFile = 'Розбити _на чаÑтини розміром:'; LANGuaAutomatic = 'Ðвтоматично'; LANGuaDeleteFilesOnTargetDisk = '_Вилучіть уÑÑ– файли на приймальнику (лише Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð½Ð¸Ñ… диÑків)'; LANGuaSplitCaption = 'Розбити'; LANGuaCannotOpenFileS = 'Ðеможливо відкрити файл ''%s'''; LANGuaCannotSplitTheFileToMoreThan999Parts = 'Ðеможливо розбити файл на більш ніж 999 чаÑтин!'; LANGuaThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem = 'Тека-приймальник %s міÑтить файли '#10' Чи дійÑно хочете вилучити його вміÑÑ‚?'; LANGuaThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem = 'Тека-приймальник міÑтить %d файлів. Чи дійÑно хочете вилучити його вміÑÑ‚?'; LANGuaAnErrorOccuredWhileOperationS = 'Помилка під Ñ‡Ð°Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ: %s'; LANGuaSplitOfSSucceeded = 'Ð Ð¾Ð·Ð±Ð¸Ñ‚Ñ‚Ñ Ñ„Ð°Ð¹Ð»Ð° ''%s'' відбулоÑÑ Ð²Ð´Ð°Ð»Ð¾.'; LANGuaSplitOfSFailed = 'Ðеможливо розбити файл: %s'; LANGuamnuShow_Caption = 'Ð’_иглÑд'; LANGuamiShowDotFiles_Caption = 'Показати _приховані файли'; LANGuaTheFileYouAreTryingToOpenIsQuiteBig = 'Файл, що відкриваєте, занадто великий. Програма, що завантажує цей файл, може викликати ÑÐ¿Ð¾Ð²Ñ–Ð»ÑŒÐ½ÐµÐ½Ð½Ñ ÑиÑтеми.'#10'Чи дійÑно хочете продовжувати'; LANGuaCannotExecuteSPleaseCheckTheConfiguration = 'Ðеможливо виконати ''%s''. Перевірте конфігурацію чи зробіть аÑоціацію типів файлів Ñпочатку.'; LANGuaEdit = 'Правка'; LANGuaEnterFilenameToEdit = '_Введіть ім''Ñ Ñ„Ð°Ð¹Ð»Ð° Ð´Ð»Ñ Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ:'; LANGuamnuSettings_Caption = '_ÐалаштуваннÑ'; LANGuamiFileTypes_Caption = '_Типи файлів...'; LANGuaThereIsNoApplicationAssociatedWithS = 'Ðемає програм, аÑоційованих з файлом "%s".'#10#10'Чи хочете зробити аÑоціацію зараз?'; LANGuaErrorExecutingCommand = 'Помилка Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸!'; LANGuaEditFileTypesCaption = 'Типи файлів'; LANGuaTitleLabel_Caption = 'ÐšÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ Ñ‚Ð¸Ð¿Ñ–Ð² файлів'; LANGuaExtensionsColumn = 'Типи'; LANGuaDescriptionColumn = 'ОпиÑ'; LANGuaFileTypesList = 'СпиÑок типів файлів'; LANGuaActionName = 'Ім''Ñ Ð´Ñ–Ñ—'; LANGuaCommand = 'Команда'; LANGuaSetDefaultActionButton_Caption = '_ВикориÑтовувати за умовчаннÑм'; LANGuaRunInTerminalCheckBox_Caption = 'ЗапуÑтити у _терміналі'; LANGuaAutodetectCheckBox_Caption = 'Ðвто-Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ _графічних програм'; LANGuaBrowseButton_Caption = '_Пошук...'; LANGuaCommandLabel_Caption = 'Ко_манда:'; LANGuaDescriptionLabel_Caption = '_ОпиÑ:'; LANGuaFNameExtLabel_Caption = '_Додати тип:'; LANGuaNotebookPageExtensions = 'Тип файлу'; LANGuaNotebookPageActions = 'Дії'; LANGuaDefault = ' (за умовчаннÑм)'; LANGuaCannotSaveFileTypeAssociationsBecauseOtherProcess = 'Ðеможливо зберегти конфігурацію типів файлів: інший Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¾Ð½Ð¾Ð²Ð¸Ð² Ñ—Ñ— на диÑку.'; LANGuaDefaultColor = 'Колір по _умовчанню'; LANGuaIcon = '_Іконка:'; LANGuaBrowseForIcon = 'Виберіть іконку'; LANGuaSelectFileTypeColor = 'Виберіть колір'; LANGuaColor = '_Колір:'; LANGuamiChangePermissions_Caption = 'Змінити _права...'; LANGuamiChangeOwner_Caption = 'Змінити _влаÑника/групу...'; LANGuamiCreateSymlink_Caption = 'С_творити поÑиланнÑ...'; LANGuamiEditSymlink_Caption = 'Ре_дагувати поÑиланнÑ'; LANGuaChmodProgress = 'Змінити права:'; LANGuaChownProgress = 'Змінити влаÑника:'; LANGuaYouMustSelectAValidSymbolicLink = 'Ðеобхідно вибрати Ñимвольне поÑиланнÑ!'; LANGuaPopupRunS = '_Виконати %s'; LANGuaPopupOpenS = '_Відкрити %s'; LANGuaPopupGoUp = 'Перейти на рівень в_ище'; LANGuaPopupOpenWithS = 'Відкрити з допомогою %s'; LANGuaPopupDefault = ' (за умовчаннÑм)'; LANGuaPopupOpenWith = 'Відкрити з допо_могою...'; LANGuaPopupViewFile = '_ПереглÑд файла'; LANGuaPopupEditFile = 'Ре_дагувати файл'; LANGuaPopupMakeSymlink = 'Ñтворити _поÑиланнÑ'; LANGuaPopupRename = 'Перей_менувати'; LANGuaPopupDelete = 'Ви_лучити'; LANGuaDialogChangePermissions = 'Змінити права'; LANGuaCouldNotBeChmoddedS = 'Ðеможливо змінити права доÑтупу: %s'; LANGuaDialogChangeOwner = 'Змінити влаÑника'; LANGuaCouldNotBeChownedS = 'Ðеможливо змінити влаÑника: %s'; LANGuaDialogMakeSymlink = 'Створити поÑиланнÑ'; LANGuaDialogEditSymlink = 'Редагувати поÑиланнÑ'; LANGuaFEditSymlink_Caption = 'Редагувати Ñимвольне поÑиланнÑ'; LANGuaFEditSymlink_SymbolicLinkFilename = '_Ім''Ñ Ñимвольного поÑиланнÑ:'; LANGuaFEditSymlink_SymbolicLinkPointsTo = 'ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð²ÐºÐ°Ð·ÑƒÑ” _на:'; LANGuaFChmod_Caption = 'Права доÑтупу'; LANGuaFChmod_PermissionFrame = 'Права'; LANGuaFChmod_FileFrame = 'Файл'; LANGuaFChmod_ApplyRecursivelyFor = 'ЗаÑтоÑувати _рекурÑивно'; LANGuaFChmod_miAllFiles = 'Ð”Ð»Ñ ÑƒÑÑ–Ñ… файлів та тек'; LANGuaFChmod_miDirectories = 'Лише Ð´Ð»Ñ Ñ‚ÐµÐº'; LANGuaFChmod_OctalLabel = '_Ð’Ñ–Ñімковий:'; LANGuaFChmod_SUID = 'SUID - Ð’Ñтановити ідентифікатор кориÑтувача'; LANGuaFChmod_SGID = 'SGID - Ð’Ñтановити ідентифікатор групи'; LANGuaFChmod_Sticky = 'Приклеєний'; LANGuaFChmod_RUSR = 'RUSR - Ð§Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð²Ð»Ð°Ñника'; LANGuaFChmod_WUSR = 'WUSR - Ð—Ð°Ð¿Ð¸Ñ Ð´Ð»Ñ Ð²Ð»Ð°Ñника'; LANGuaFChmod_XUSR = 'XUSR - ВиконаннÑ/Пошук Ð´Ð»Ñ Ð²Ð»Ð°Ñника'; LANGuaFChmod_RGRP = 'RGRP - Ð§Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð³Ñ€ÑƒÐ¿Ð¸'; LANGuaFChmod_WGRP = 'WGRP - Ð—Ð°Ð¿Ð¸Ñ Ð´Ð»Ñ Ð³Ñ€ÑƒÐ¿Ð¸'; LANGuaFChmod_XGRP = 'XGRP - ВиконаннÑ/Пошук Ð´Ð»Ñ Ð³Ñ€ÑƒÐ¿Ð¸'; LANGuaFChmod_ROTH = 'ROTH - Ð§Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ñ€ÐµÑˆÑ‚Ñƒ'; LANGuaFChmod_WOTH = 'WOTH - Ð—Ð°Ð¿Ð¸Ñ Ð´Ð»Ñ Ñ€ÐµÑˆÑ‚Ñƒ'; LANGuaFChmod_XOTH = 'XOTH - ВиконаннÑ/Пошук Ð´Ð»Ñ Ñ€ÐµÑˆÑ‚Ñƒ'; LANGuaFChmod_TextLabel = 'ТекÑÑ‚: %s'; LANGuaFChmod_FileLabel = 'Файл: %s'#10'ТекÑÑ‚: %s'#10 + 'Ð’Ñ–Ñімковий: %d'#10'ВлаÑник: %s'#10 + 'Група: %s'; LANGuaFChown_Caption = 'Змінити влаÑника/групу'; LANGuaFChown_OwnerFrame = 'Ім''Ñ Ð²Ð»Ð°Ñника'; LANGuaFChown_GroupFrame = 'Ім''Ñ Ð³Ñ€ÑƒÐ¿Ð¸'; LANGuaFChown_FileFrame = 'Файл'; LANGuaFChown_ApplyRecursively = 'ЗаÑтоÑувати _рекурÑивно'; LANGuaFSymlink_Caption = 'Створити Ñимвольне поÑиланнÑ'; LANGuaFSymlink_ExistingFilename = 'ІÑнуючий _файл:'; LANGuaFSymlink_SymlinkFilename = 'Ім''Ñ Ñимвольного _поÑиланнÑ:'; LANGuamnuBookmarks_Caption = '_Закладки'; LANGuamiAddBookmark_Caption = 'Додати закладку'; LANGuamiEditBookmarks_Caption = 'Змінити закладку'; LANGuaBookmarkPopupDelete_Caption = 'Ви_лучити'; LANGuamiPreferences_Caption = 'Змінити _налаштуваннÑ...'; LANGuaTheCurrentDirectoryAlreadyExistsInTheBookmarksList = 'Поточна тека вже додана до закладок'; LANGuaSomeOtherInstanceChanged1 = 'Інша програма змінила файл конфігурації на диÑку. Чи хочете заÑтоÑувати нові налаштуваннÑ?'#10#10'Увага: Ñкщо Ви зараз натиÑнете '; LANGuaSomeOtherInstanceChanged2 = '"ÐÑ–", ÐºÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ Ð±ÑƒÐ´Ðµ перезапиÑана під Ñ‡Ð°Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸!'; LANGuaPreferences_Caption = 'ÐалаштуваннÑ'; LANGuaPreferences_TitleLabel_Caption = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸'; LANGuaPreferences_GeneralPage = 'Загальні'; LANGuaPreferences_FontsPage = 'Шрифти'; LANGuaPreferences_ColorsPage = 'Кольори'; LANGuaPreferences_RowHeight = ' _ВиÑота Ñ€Ñдків:'; LANGuaPreferences_NumHistoryItems = '_Елементи командного Ñ€Ñдка:'; LANGuaPreferences_Default = 'За умовчаннÑм'; LANGuaPreferences_ClearReadonlyAttribute = 'Під Ñ‡Ð°Ñ ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ Ð·Ñ– CD-ROM знімати _атрибут "лише Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ"'; LANGuaPreferences_DisableMouseRenaming = 'Заборонити Ð¿ÐµÑ€ÐµÐ¹Ð¼ÐµÐ½ÑƒÐ²Ð°Ð½Ð½Ñ _мишкою'; LANGuaPreferences_ShowFiletypeIconsInList = 'Показувати _іконки'; LANGuaPreferences_ExternalAppsLabel = 'Зовнішні програми'; LANGuaPreferences_Viewer = '_ПереглÑд:'; LANGuaPreferences_Editor = '_Редактор:'; LANGuaPreferences_Terminal = '_Термінал:'; LANGuaPreferences_ListFont = 'Шрифт ÑпиÑків:'; LANGuaPreferences_Change = 'Змінити...'; LANGuaPreferences_UseDefaultFont = 'ВикориÑтовувати шрифт по _умовчанню'; LANGuaPreferences_Foreground = 'Передній план'; LANGuaPreferences_Background = 'Фон'; LANGuaPreferences_NormalItem = 'Звичайний елемент:'; LANGuaPreferences_SetToDefaultToUseGTKThemeColors = 'ВикориÑтовувати кольори теми GTK'; LANGuaPreferences_Cursor = 'КурÑор:'; LANGuaPreferences_InactiveItem = 'Ðеактивний елемент:'; LANGuaPreferences_SelectedItem = 'Вибраний елемент:'; LANGuaPreferences_LinkItem = 'Символьні поÑиланнÑ:'; LANGuaPreferences_LinkItemHint = 'ВикориÑтовувати кольори нормальних елементів Ð´Ð»Ñ Ð¿Ð¾Ñилань'; LANGuaPreferences_DotFileItem = 'Приховані файли:'; LANGuaPreferences_DotFileItemHint = 'ВикориÑтовувати кольори нормальних елементів Ð´Ð»Ñ Ð¿Ñ€Ð¸Ñ…Ð¾Ð²Ð°Ð½Ð¸Ñ… файлів'; LANGuaPreferences_BrowseForApplication = 'Пошук програми'; LANGuaPreferences_DefaultS = 'За умовчаннÑм: %s'; LANGuaPreferences_SelectFont = 'Виберіть шрифт'; (*************** STRINGS ADDED TO v0.4.101 **********************************************************************************) LANGuaBookmarkButton_Tooltip = 'Показати закладки'; LANGuaUpButton_Tooltip = 'Перейти до верхньої теки'; LANGuaRootButton_Tooltip = 'Перейти до кореневої теки (/)'; LANGuaHomeButton_Tooltip = 'Перейти до домашньої теки (/home/user)'; LANGuaLeftEqualButton_Tooltip = 'Перейти у правій панелі у ту Ñаму теку що Ñ– у лівій'; LANGuaRightEqualButton_Tooltip = 'Перейти у лівій панелі у ту Ñаму теку що Ñ– у правій'; LANGuamiShowDirectorySizes_Caption = 'Показати _розміри тек'; LANGuamiTargetSource_Caption = 'Приймальник = Джерело'; LANGuaFileTypeDirectory = 'Тека'; LANGuaFileTypeFile = 'Файл'; LANGuaFileTypeMetafile = 'Це загальний мета-елемент'; LANGuaPreferencesPanelsPage = 'Панелі'; LANGuaPreferencesApplicationsPage = 'Програми'; LANGuaPreferencesExperimentalPage = 'ЕкÑпериментальний'; LANGuaPreferencesSelectAllDirectoriesCheckBox_Caption = 'Вибирати _також теки, вибираючи уÑе'; LANGuaPreferencesNewStyleAltOCheckBox_Caption = '_Ðовий Ñтиль Alt+O'; LANGuaPreferencesNewStyleAltOCheckBox_Tooltip = 'ЗалишатиÑÑ Ñƒ тій же теці при перемиканні теки протилежної панелі натиÑкаючи Ctrl/Alt+O'; LANGuaPreferencesShowFuncButtonsCheckBox_Caption = 'Показувати кнопки _функціональних клавіш'; LANGuaPreferencesSizeFormatLabel_Caption = '_Формат розміру:'; LANGuaPreferencesmiSizeFormat1 = 'СиÑтема'; LANGuaPreferencesmiSizeFormat6 = 'Згруповано'; LANGuaPreferencesAutodetectXApp = 'Ðвтоматичне виÑÐ²Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼ у X-ах'; LANGuaPreferencesAlwaysRunInTerminal = 'Завжди виконувати у терміналі'; LANGuaPreferencesNeverRunInTerminal = 'Ðіколи не виконувати у терміналі'; LANGuaPreferencesCmdLineBehaviourLabel_Caption = '_Виконувати з командного Ñ€Ñдка:'; LANGuaPreferencesFeatures = 'ВлаÑтивоÑті'; LANGuaPreferencesDisableMouseRename_Tooltip = 'Ви можете вÑе ще викориÑтовувати швидке Ð¿ÐµÑ€ÐµÐ¹Ð¼ÐµÐ½ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð°Ñ‚Ð¸Ñкаючи Shift+F6'; LANGuaPreferencesDisableFileTipsCheckBox_Caption = 'Заблокувати Ñпливаючі _нотатки до файлів'; LANGuaPreferencesDisableFileTipsCheckBox_Tooltip = 'Ðе показувати Ñпливаючі нотатки у панелÑÑ… Ñкщо текÑÑ‚ у колонках обрізаєтьÑÑ'; LANGuaPreferencesShow = 'Показати'; LANGuaPreferencesDirsInBoldCheckBox_Caption = 'Теки _жирним'; LANGuaPreferencesDisableDirectoryBracketsCheckBox_Caption = 'Відмінити квадратні _дужки тек'; LANGuaPreferencesOctalPermissionsCheckBox_Caption = 'Показувати _віÑімкові дозволи'; LANGuaPreferencesOctalPermissionsCheckBox_Tooltip = 'Показувати дозволи файлів/тек Ñк номери заміÑть текÑтової форми (-rw-rw-rw-)'; LANGuaPreferencesMovement = 'Рух'; LANGuaPreferencesLynxLikeMotionCheckBox_Caption = 'Рухи Ñк у браузера _Lynx'; LANGuaPreferencesInsertMovesDownCheckBox_Caption = 'ПіÑÐ»Ñ Ð½Ð°Ñ‚Ð¸ÑÐºÐ°Ð½Ð½Ñ _Insert рухатиÑÑ Ð½Ð¸Ð¶Ñ‡Ðµ'; LANGuaPreferencesSpaceMovesDownCheckBox_Caption = 'ПіÑÐ»Ñ Ð½Ð°Ñ‚Ð¸ÑÐºÐ°Ð½Ð½Ñ _пробілу рухатиÑÑ Ð½Ð¸Ð¶Ñ‡Ðµ'; LANGuaPreferencesViewer = 'ПереглÑдач'; LANGuaPreferencesCommandSC = 'Команда:'; LANGuaPreferencesUseInternalViewer = 'ВикориÑтовувати _внутрішній переглÑдач'; LANGuaPreferencesEditor = 'Редактор'; LANGuaPreferencesTerminal = 'Термінал'; LANGuaPreferencesExperimentalFeatures = 'ЕкÑпериментальні можливоÑті'; LANGuaPreferencesExperimentalWarningLabel_Caption = 'ПопередженнÑ: Робота над цими можливоÑÑ‚Ñми ще не завершена наразі, отож, вони ' + 'можуть не працювати належним чином. ВикориÑтовуйте Ñ—Ñ… на Ваш влаÑний ризик!'; LANGuaPreferencesFocusRefreshCheckBox_Caption = 'Виконувати _Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¸ отриманні вікном фокуÑу'; LANGuaPreferencesFocusRefreshCheckBox_Tooltip = 'Дуже повільне Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð°Ð½ÐµÐ»ÐµÐ¹, на даний чаÑ'; LANGuaPreferencesWMCompatModeCheckBox_Caption = 'Режим ÑуміÑноÑті зі _WM'; LANGuaPreferencesWMCompatModeCheckBox_Tooltip = 'ВикориÑтовуйте, Ñкщо Ви маєте певні проблеми з менеджером вікон (наприклад ICEWM не правильно макÑимізує вікно)'; LANGuaPreferencesCompatUseLibcSystemCheckBox_Caption = 'ВикориÑтовувати libc _system() Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼'; LANGuaPreferencesCompatUseLibcSystemCheckBox_Tooltip = 'ВикориÑтовуйте у разі Ð·Ð°Ð¼Ð¾Ñ€Ð¾Ð¶ÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ збійних проблем при запуÑку зовнішніх програм'; (*************** STRINGS ADDED TO v0.5.70 **********************************************************************************) LANGuamiSearchCaption2 = '_Пошук...'; LANGuamiNoMounterBarCaption = '_Ðе показувати монтувальну панель'; LANGuamiShowOneMounterBarCaption = 'Показувати _одну монтувальну панель'; LANGuamiShowTwoMounterBarCaption = 'Показувати _дві монтувальні панелі'; LANGuamnuNetworkCaption = '_Мережа'; LANGuamiConnectionsCaption = '_З''єднаннÑ...'; LANGuamiOpenConnectionCaption = '_Відкриті з''єднаннÑ...'; LANGuamiQuickConnectCaption = '_Швидке з''єднаннÑ...'; LANGuamnuPluginsCaption = '_Плаґіни'; LANGuamiTestPluginCaption = '_ТеÑÑ‚ плаґіна...'; LANGuamiMounterSettingsCaption = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ _монтувальника...'; LANGuamiColumnsCaption = 'Панельні _колонки...'; LANGuamiSavePositionCaption = '_Запам''Ñтати позицію'; LANGuamiMountCaption = '_Змонтувати'; LANGuamiUmountCaption = '_Розмонтувати'; LANGuamiEjectCaption = '_ВитÑгнути'; LANGuamiDuplicateTabCaption = 'Здублювати поточну закладку'; LANGuamiCloseTabCaption = 'Закрити поточну закладку'; LANGuamiCloseAllTabsCaption = 'Закрити уÑÑ– закладки'; LANGuaCannotDetermineDestinationEngine = 'Ðеможливо визначити приÑтрій призначеннÑ. Введіть, будь-лаÑка, вірний шлÑÑ… та Ñпробуйте знову.'; LANGuaCannotLoadFile = 'Ðеможливо завантажити файл ''%s''. Перевірте наÑвні дозволи.'; LANGuaMountPointDevice = 'Точка монтуваннÑ: %s'#10'ПриÑтрій: %s'; LANGuaMountSC = 'Mount:'; LANGuaNoPluginsFound = 'Ðе знайдено жодних плаґінів'; LANGuaPluginAbout = 'Про програму...'; LANGuaCouldntOpenURI = 'Ðеможливо відкрити зазначений УніверÑальний Ідентифікатор КориÑтувача (URI). ' + 'Перевірте, будь-лаÑка, логічніÑть ідентифікатора та дозволи на доÑтуп.'; LANGuaPluginAboutInside = 'Плаґін: %s'#10#10'%s'#10'%s'; LANGuaAreYouSureCloseAllTabs = 'Чи Ви Ñправді хочете позакривати уÑÑ– неактивні закладки?'; LANGuaCouldntOpenURIArchive = 'Ðеможливо відкрити архів. Перевірте, будь-лаÑка, логічніÑть та дозволи на доÑтуп.'; LANGuaThereIsNoModuleAvailable = 'Ðемає жодного доÑтупного Ð¼Ð¾Ð´ÑƒÐ»Ñ Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ð¾Ñ— файлової ÑиÑтеми (VFS), котрий міг би здійÑнити це з''єднаннÑ'; LANGuaIgnoreError = 'Чи Ви Ñправді хочете ігнорувати цю помилку? Джерельний файл буде знищено'; LANGuaErrorMount = 'ТрапилаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° при монтуванні приÑтрою ''%s'':'#10#10; LANGuaErrorUmount = 'ТрапилаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° при розмонтуванні приÑтрою ''%s'':'#10#10; LANGuaErrorEject = 'ТрапилаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° при витÑгненні приÑтрою ''%s'':'#10#10; LANGuaMounterPrefs_Caption = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸ÐºÐ°'; LANGuaMounterPrefs_TitleLabelCaption = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸ÐºÐ°'; LANGuaMounterPrefs_ListViewFrameCaption = 'Монтувальник'; LANGuaMounterPrefs_MountName = 'Ім''Ñ Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ'; LANGuaMounterPrefs_MountPoint = 'Точка монтуваннÑ'; LANGuaMounterPrefs_Device = 'ПриÑтрій'; LANGuaMounterPrefs_MoveUpButtonTooltip = 'ПереміÑтити елемент догори'; LANGuaMounterPrefs_MoveDownButtonTooltip = 'ПереміÑтити елемент донизу'; LANGuaMounterPrefs_UseFSTabDefaultsCheckBox = 'ВикориÑтовувати за умовчаннÑм Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ñ– _fstab'; LANGuaMounterPrefs_UseFSTabDefaultsCheckBoxTooltip = 'Якщо вибрано, то монтувальна панель буде за умовчаннÑм заповнена елементами, знайденими у /etc/fstab (ÑиÑтемний файл зі ÑпиÑком монтуваннÑ)'; LANGuaMounterPrefs_ToggleModeCheckBox = 'Кнопки залишати _натиÑнутими коли змонтовано'; LANGuaMounterPrefs_ToggleModeCheckBoxTooltip = 'Якщо вибрано, то кнопки Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð»Ð¸ÑˆÐ°Ñ‚Ð¸ натиÑнутими Ñкщо приÑтрій змонтовано; ' + 'а ще одне ÐºÐ»Ð°Ñ†Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¸Ð·Ð²Ð¾Ð´Ð¸Ñ‚Ð¸Ð¼Ðµ до Ñ€Ð¾Ð·Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ (чи й витÑÐ³Ð½ÐµÐ½Ð½Ñ Ñƒ даному випадку)'; LANGuaMounterPrefs_PropertiesFrameCaption = 'ВлаÑтивоÑті монтувального елемента'; LANGuaMounterPrefs_DisplayTextLabelCaption = '_ТекÑÑ‚ Ð´Ð»Ñ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ:'; LANGuaMounterPrefs_MountPointLabelCaption = '_Точка монтуваннÑ:'; LANGuaMounterPrefs_MountDeviceLabelCaption = '_ПриÑтрій:'; LANGuaMounterPrefs_DeviceTypeLabelCaption = '_Тип приÑтрою:'; LANGuaMounterPrefs_miLocalDiskCaption = 'Локальний диÑк'; LANGuaMounterPrefs_miRemovableCaption = 'ВитÑгувальний'; LANGuaMounterPrefs_miCDCaption = 'Привід CD/DVD'; LANGuaMounterPrefs_miFloppyCaption = 'ПриÑтрій гнучких диÑків'; LANGuaMounterPrefs_miNetworkCaption = 'Мережа'; LANGuaMounterPrefs_MountCommandLabelCaption = 'Команда _монтуваннÑ:'; LANGuaMounterPrefs_UmountCommandLabelCaption = 'Команда _розмонтуваннÑ:'; LANGuaMounterPrefs_MountCommandEntryTooltip = 'СинтакÑиÑ: викориÑтовуйте %dev Ð´Ð»Ñ Ð¿Ñ–Ð´Ñтановки приÑтрою та %dir Ð´Ð»Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‡Ð¸ лишіть пуÑтим Ð´Ð»Ñ Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð° ' + 'умовчаннÑм'#10'ЗауваженнÑ: ÑтережітьÑÑ Ñ–Ð½Ñ‚ÐµÑ€Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¸Ñ… команд, tuxcmd може завиÑнути!'#10'Приклад: smbmount %dev %dir -o username=netuser,password=somepass'; LANGuaMounterPrefs_UmountCommandEntryTooltip = 'СинтакÑиÑ: викориÑтовуйте %dev Ð´Ð»Ñ Ð¿Ñ–Ð´Ñтановки приÑтрою та %dir Ð´Ð»Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ ' + 'Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‡Ð¸ лишіть пуÑтим Ð´Ð»Ñ Ñ€Ð¾Ð·Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð° умовчаннÑм'#10'Приклад: smbumount %dir'; LANGuaMounterPrefs_IconLabelCaption = '_Іконка:'; LANGuaConnMgr_Caption = 'Відкрити нове з''єднаннÑ'; LANGuaConnMgr_ConnectButton = '_З''єднаннÑ'; LANGuaConnMgr_OpenConnection = 'Відкрити з''єднаннÑ'; LANGuaConnMgr_NameColumn = 'Ім''Ñ'; LANGuaConnMgr_URIColumn = 'УніверÑальний Ідентифікатор РеÑурÑів (URI)'; LANGuaConnMgr_AddConnectionButtonCaption = '_Додати Ñайт...'; LANGuaConnMgr_AddConnectionButtonTooltip = 'Додати нове з''єднаннÑ'; LANGuaConnMgr_EditButtonCaption = '_Редагувати...'; LANGuaConnMgr_EditButtonTooltip = 'Редагувати вибране з''єднаннÑ'; LANGuaConnMgr_RemoveButtonCaption = '_Вилучити Ñайт'; LANGuaConnMgr_RemoveButtonTooltip = 'Вилучити вибране з''єднаннÑ'; LANGuaConnMgr_DoYouWantDelete = 'Чи Ви Ñправді хочете вилучити з''Ñ”Ð´Ð½Ð°Ð½Ð½Ñ ''%s''?'; LANGuaConnProp_FTP = 'FTP'; LANGuaConnProp_SFTP = 'SFTP (ssh-підÑиÑтема)'; LANGuaConnProp_SMB = 'Спільний доÑтуп Windows (SMB)'; LANGuaConnProp_HTTP = 'WebDAV (HTTP)'; LANGuaConnProp_HTTPS = 'Безпечний WebDAV (HTTPS)'; LANGuaConnProp_Other = 'Інше (будь-лаÑка, вкажіть в УніверÑальному Ідентифікаторі РеÑурÑів (URI))'; LANGuaConnProp_Caption = 'ВлаÑтивоÑті з''єднаннÑ'; LANGuaConnProp_VFSModule = 'Модуль _VFS:'; LANGuaConnProp_URI = 'УніверÑальний Ідентифікатор РеÑурÑів (_URI):'; LANGuaConnProp_URIEntryTooltip = 'Правильний УніверÑальний Ідентифікатор РеÑурÑів (_URI) повинен міÑтити Ð¿Ñ€ÐµÑ„Ñ–ÐºÑ Ñ‚Ð¸Ð¿Ñƒ ÑервіÑу та Ð°Ð´Ñ€ÐµÑ Ñервера'; LANGuaConnProp_DetailedInformations = 'Детальна інформаціÑ'; LANGuaConnProp_Name = '_Ім''Ñ:'; LANGuaConnProp_Server = '_Сервер[:порт]:'; LANGuaConnProp_Username = 'Ім''Ñ _кориÑтувача_:'; LANGuaConnProp_UserNameEntryTooltip = 'Залишити пуÑтим Ð´Ð»Ñ Ð°Ð½Ð¾Ð½Ñ–Ð¼Ð½Ð¾Ð³Ð¾ входу'; LANGuaConnProp_Password = '_Пароль:'; LANGuaConnProp_TargetDirectory = '_Тека призначеннÑ:'; LANGuaConnProp_ServiceType = 'Тип _ÑервіÑу:'; LANGuaConnProp_MaskPassword = '_ЗамаÑкувати пароль'; LANGuaConnProp_MenuItemCaption = 'За умовчаннÑм (уÑÑ– підходÑщі модулі)'; LANGuaConnLogin_Caption = 'Потрібна ідентифікаціÑ'; LANGuaConnLogin_Login = 'Ім''Ñ Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ñƒ'; LANGuaConnLogin_ExperimentalWarningLabelCaption = 'Ви повинні увійти щоб мати доÑтуп до %s'; LANGuaConnLogin_Username = '_Ім''Ñ ÐºÐ¾Ñ€Ð¸Ñтувача:'; LANGuaConnLogin_Password = '_Пароль:'; LANGuaConnLogin_AnonymousCheckButton = '_Ðнонімно'; LANGuaColumns_Caption = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð»Ð¾Ð½Ð¾Ðº панелі'; LANGuaColumns_Title = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð»Ð¾Ð½Ð¾Ðº панелі'; LANGuaColumns_MoveUpButtonTooltip = 'ПереміÑтити елемент догори'; LANGuaColumns_MoveDownButtonTooltip = 'ПереміÑтити елемент донизу'; LANGuaColumns_TitlesLongName = 'Ім''Ñ'; LANGuaColumns_TitlesLongNameExt = 'Ім''Ñ + розширеннÑ'; LANGuaColumns_TitlesLongExt = 'РозширеннÑ'; LANGuaColumns_TitlesLongSize = 'Розмір'; LANGuaColumns_TitlesLongDateTime = 'Дата + ЧаÑ'; LANGuaColumns_TitlesLongDate = 'Дата'; LANGuaColumns_TitlesLongTime = 'ЧаÑ'; LANGuaColumns_TitlesLongUser = 'КориÑтувач'; LANGuaColumns_TitlesLongGroup = 'Група'; LANGuaColumns_TitlesLongAttr = 'Ðтрибути'; LANGuaColumns_TitlesShortName = 'Ім''Ñ'; LANGuaColumns_TitlesShortNameExt = 'Ім''Ñ'; LANGuaColumns_TitlesShortExt = 'Розш.'; LANGuaColumns_TitlesShortSize = 'Розмір'; LANGuaColumns_TitlesShortDateTime = 'Дата'; LANGuaColumns_TitlesShortDate = 'Дата'; LANGuaColumns_TitlesShortTime = 'ЧаÑ'; LANGuaColumns_TitlesShortUser = 'КориÑÑ‚.'; LANGuaColumns_TitlesShortGroup = 'Група'; LANGuaColumns_TitlesShortAttr = 'Ðтриб.'; LANGuaTestPlugin_Caption = 'ТеÑтувати плаґін Віртуальної Файлової СиÑтеми (VFS)'; LANGuaTestPlugin_Title = 'ТеÑтувати плаґін Віртуальної Файлової СиÑтеми (VFS)'; LANGuaTestPlugin_ExperimentalWarningLabelCaption = 'ЗаÑтереженнÑ: ПідÑиÑтема Віртуальної Файлової СиÑтеми (VFS) та відповідний ' + 'плаґін ще активно розроблÑютьÑÑ Ñ‚Ð° можуть міÑтити помилки. КориÑтуйтеÑÑ Ñ†Ñ–Ñ”ÑŽ функцією на влаÑний ризик!'; LANGuaTestPlugin_Plugin = '_Плаґін:'; LANGuaTestPlugin_Command = '_Команда:'; LANGuaTestPlugin_Username = '_Ім''Ñ ÐºÐ¾Ñ€Ð¸Ñтувача:'; LANGuaTestPlugin_Password = '_Пароль:'; LANGuaTestPlugin_AnonymousCheckButton = '_Ðнонімний вхід (не викликати VFSLogin)'; LANGuaTestPlugin_NoPluginsFound = 'Ðе знайдено жодного плаґіна'; LANGuaRemoteWait_Caption = 'Ð”Ñ–Ñ Ñ‚Ñ€Ð¸Ð²Ð°Ñ”'; LANGuaRemoteWait_OperationInProgress = 'Ð”Ñ–Ñ Ñ‚Ñ€Ð¸Ð²Ð°Ñ”, майте терпіннÑ...'; LANGuaRemoteWait_ItemsFound = 'Елемент шукаєтьÑÑ Ð´Ð¾ Ñих пір: %d'; LANGuaSearch_Bytes = 'байт'; LANGuaSearch_kB = 'кБ'; LANGuaSearch_MB = 'МБ'; LANGuaSearch_days = 'днів'; LANGuaSearch_weeks = 'тижнів'; LANGuaSearch_months = 'міÑÑців'; LANGuaSearch_years = 'років'; LANGuaSearch_Caption = 'Знайти файл'; LANGuaSearch_General = 'Загальне'; LANGuaSearch_Advanced = 'Додатково'; LANGuaSearch_SearchResults = '_Результати пошуку:'; LANGuaSearch_SearchFor = 'Шукати _за:'; LANGuaSearch_FileMaskEntryTooltip = 'Порада: ВикориÑтовуйте двокрапку (";") щоб вказати декілька файлів Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ'; LANGuaSearch_SearchIn = 'Шукати _у:'; LANGuaSearch_SearchArchivesCheckButton = 'Шукати Ñ– у _архівах'; LANGuaSearch_FindText = 'Знайти _текÑÑ‚:'; LANGuaSearch_FindTextEntryTooltip = 'Залишайте пуÑтим, Ñкщо не треба шукати текÑÑ‚'#10'Зауважте, що в графічному інтерфейÑÑ– (GUI) викориÑтовуєтьÑÑ ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ UTF-8'; LANGuaSearch_CaseSensitiveCheckButton = 'Чутливо до _реґіÑтру'; LANGuaSearch_StayCurrentFSCheckButton = 'Включати інші _файлові ÑиÑтеми'; LANGuaSearch_CaseSensitiveMatchCheckButton = '_Чутливо до _реґіÑтру'; LANGuaSearch_Size = 'Розмір'; LANGuaSearch_Date = 'Дата'; LANGuaSearch_BiggerThan = '_Більше ніж'; LANGuaSearch_SmallerThan = '_Менше аніж'; LANGuaSearch_ModifiedBetweenRadioButton = '_Змінено між'; LANGuaSearch_NotModifiedAfterRadioButton = '_Ðе змінено піÑлÑ'; LANGuaSearch_ModifiedLastRadioButton = 'Змінено у _кінці'; LANGuaSearch_ModifiedNotLastRadionButton = '_Ðе змінено у кінці'; LANGuaSearch_ModifiedBetweenEntry1 = '"Будь лаÑка, викориÑтовуйте цей формат дати:" c'; LANGuaSearch_ViewButtonCaption = '_ПереглÑнути файл'; LANGuaSearch_NewSearchButtonCaption = '_Ðовий пошук'; LANGuaSearch_GoToFileButtonCaption = '_Перейти до файлу'; LANGuaSearch_FeedToListboxButtonCaption = 'Заповнити у _ÑпиÑковому елементі'; LANGuaSearch_StatusSC = 'СтатуÑ:'; LANGuaSearch_Ready = 'Готово.'; LANGuaSearch_PreparingToSearch = 'Підготовка Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ.'; LANGuaSearch_SearchInProgress = 'Пошук продовжуєтьÑÑ:'; LANGuaSearch_UserCancelled = 'КориÑтувач ÑкаÑував дію.'; LANGuaSearch_SearchFinished = 'Пошук завершено'; LANGuaSearch_FilesFound = '%d файлів знайдено'; LANGuaSearch_And = 'та'; (*************** STRINGS ADDED TO v0.5.82 **********************************************************************************) LANGuaCloseOpenConnection = 'Ви намагаєтеÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ нове з''Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð¿Ð¾Ð²ÐµÑ€Ñ…Ð° іншого активного з''єднаннÑ. Якщо продовжувати, попереднє з''Ñ”Ð´Ð½Ð°Ð½Ð½Ñ '+'буде закрите та замінено цим новим.'#10#10'Чи бажаєте продовжувати?'; LANGuaDuplicateTabWarning = 'Ви намагаєтеÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ нову вкладку Ð´Ð»Ñ Ð²Ñ–Ð´Ð´Ð°Ð»ÐµÐ½Ð¾Ñ— теки. Однак, машинне ÐºÐ»Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ підтримуєтьÑÑ. Тека у новій вкладці'+' повинна адреÑуватиÑÑ Ñƒ локальну файлову ÑиÑтему.'; LANGuaDontShowAgain = '_Ðе показувати це Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð·Ð½Ð¾Ð²Ñƒ'; LANGuaSwitchOtherPanelWarning = 'Ви намагаєтеÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ віддалену теку на протилежній панелі. Однак, машинне ÐºÐ»Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ підтримуєтьÑÑ. '+ 'Цільова тека не може бути перемкнена.'; LANGuaOpenConnectionsWarning = 'Є активні з''єднаннÑ, відкриті на панелі. При закритті програми, ці з''Ñ”Ð´Ð°Ð½Ð½Ñ Ð±ÑƒÐ´ÑƒÑ‚ÑŒ розірвані.'#10#10'Продовжувати виходити?'; LANGuamiDisconnect_Caption = '_Роз''єднаннÑ'; LANGuaDisconnectButton_Tooltip = 'Розірвати поточне з''єднаннÑ'; LANGuaLeaveArchiveButton_Tooltip = 'Зачинити поточний архів'; LANGuaOpenTerminalButton_Tooltip = 'Відкриває нові термінальні вікна Ð´Ð»Ñ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¾Ñ— теки'; LANGuaOpenTerminalButton_Caption = 'Відкрити те_рмінал'; LANGuaShowTextUIDsCheckBox_Caption = 'Показувати текÑти _UID'; LANGuaShowTextUIDsCheckBox_Tooltip = 'Показувати текÑтову інформацію про кориÑтувача та групу взамін показу чиÑел (UID/GID)'; (*************** STRINGS ADDED TO v0.5.100 **********************************************************************************) LANGuamiNewTab_Caption = 'Ðова _закладка Ð´Ð»Ñ Ñ‚ÐµÐºÐ¸'; LANGuaFilePopupMenu_Properties = '_ВлаÑтивоÑті'; LANGuaCommandEntry_Tooltip = 'ВикориÑтовувати %s Ñк замінник файлу/теки'; LANGuamiFiles_Caption = 'Лише файли'; (*************** STRINGS ADDED TO v0.6.31 **********************************************************************************) LANGuaPasswordButton_Tooltip = 'Ðрхів потребує пароль.'#10'Клацніть щоб вÑтановити'; LANGuaHandleRunFromArchive_Bytes = 'байти'; LANGuaHandleRunFromArchive_FileTypeDesc_Unknown = '(невідомо)'; LANGuaHandleRunFromArchive_NotAssociated = '(не прив''Ñзано)'; LANGuaHandleRunFromArchive_SelfExecutable = '(виконавчий)'; LANGuaHandleRunFromArchive_CouldntCreateTemporaryDirectory = 'Ðе вдаєтьÑÑ Ñтворити тимчаÑову теку "%s": %s.'#10#10'Будь лаÑка, перевірте Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð¸Ð¼Ñ‡Ð°Ñової теки Ñ– Ñпробуйте знову.'; LANGuaFRunFromVFS_Caption = 'ВлаÑтивоÑті запакованого файлу'; LANGuaFRunFromVFS_TitleLabel = 'ВлаÑтивоÑті файлу'; LANGuaFRunFromVFS_FileNameLabel = 'Ðазва файлу:'; LANGuaFRunFromVFS_FileTypeLabel = 'Тип файлу:'; LANGuaFRunFromVFS_SizeLabel = 'Розмір:'; LANGuaFRunFromVFS_PackedSizeLabel = 'СтиÑнутий розмір:'; LANGuaFRunFromVFS_DateLabel = 'Дата модифікації:'; LANGuaFRunFromVFS_InfoLabel = 'Ð’Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² напрÑму з архівів не підтримуєтьÑÑ. ' + 'Клацнувши на кнопки нижче файлу (уÑÑ– файли відповідно) він буде розпакований до тимчаÑового розташуваннÑ. ' + 'ТимчаÑові файли будуть вилучені тоді, коли Ви закриваєте Tux Commander.'; LANGuaFRunFromVFS_OpensWithLabel = 'Відкрити з допомогою:'; LANGuaFRunFromVFS_ExecuteButton = '_Розпакувати та відкрити'; LANGuaFRunFromVFS_ExecuteAllButton = 'Розпакувати _уÑе та відкрити'; LANGuaFSetPassword_Caption = 'Ð’Ñтановити пароль'; LANGuaFSetPassword_Label1_Caption = 'Пароль необхідний'; LANGuaFSetPassword_Label2_Caption = 'Ðрхів зашифровано Ñ– необхідний пароль Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾ щоб розпакувати дані'; LANGuaFSetPassword_ShowPasswordCheckButton = '_ЗнÑти маÑÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ'; (*************** STRINGS ADDED TO v0.6.48 ************************************ **********************************************) LANGuaCopyFileNamesToClipboard = '_Копіювати назви файлів до буферу обміну'; LANGuaCopyFullPathNamesToClipboard = 'Копіювати _повні шлÑхи до буферу обміну'; LANGuaCopyPathToClipboard = '_Копіювати повний шлÑÑ… до буферу обміну'; LANGuaPreferences_DateFormatLabel_Caption = '_Формат дати:'; LANGuaPreferences_System = 'СиÑтемний'; LANGuaPreferences_Custom = 'ОÑобливий...'; LANGuaPreferences_CustomDateFormatEntry_Tooltip = 'Введіть Ñтрічку Ð´Ð»Ñ Ð¾Ñобливого формату дати.'#10'Будь лаÑка, переглÑнте "man strftime" щодо довідки по ÑинтакÑиÑу.'; LANGuaPreferences_TimeFormatLabel_Caption = '_Формат чаÑу:'; LANGuaPreferences_CustomTimeFormatEntry_Tooltip = 'Введіть Ñтрічку Ð´Ð»Ñ Ð¾Ñобливого формату чаÑу.'#10'Будь лаÑка, переглÑнте "man strftime" щодо довідки по ÑинтакÑиÑу.'; LANGuaPreferences_DateTimeFormatLabel_Caption = '_ПорÑдок дати/чаÑу:'; LANGuaPreferences_QuickRenameSkipExtCheckBox = 'Вибирати чаÑтину назви лише при швидкому перейменуванні'; LANGuaPreferences_QuickRenameSkipExtCheckBox_Tooltip = 'Виключати Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ Ñ–Ð¼ÐµÐ½Ñ– файлу з Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¸ виконанні швидкого перейменуваннÑ'; LANGuaPreferences_SortDirectoriesLikeFilesCheckBox = 'Сортувати теки так Ñк Ñ– файли'; LANGuaPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip = 'Позначте це щоб дозволити Ñортувати теки разом з файлами. Теки залищаютьÑÑ Ð·Ð°Ð²Ð¶Ð´Ð¸ зверху ÑпиÑку.'#10 + 'При знÑтій позначці теки завжди ÑортуютьÑÑ Ð·Ð° іменем.'; LANGuaPreferences_QuickSearchLabel_Caption = '_ПоÑлідовніÑть клавіш Ð´Ð»Ñ ÑˆÐ²Ð¸Ð´ÐºÐ¾Ð³Ð¾ пошуку:'; LANGuaPreferences_QuickSearchOptionMenu_Tooltip = 'ПоÑлідовноÑті клавіш Ctrl+S/Alt+S та "/" завжди активні, незважаючи на ці вÑтановленнÑ.'; LANGuaPreferences_QuickSearch_Option1 = 'Ctrl+S/Alt+S та лише "/"'; LANGuaPreferences_QuickSearch_Option2 = 'Ctrl+Alt+Ñимволи'; LANGuaPreferences_QuickSearch_Option3 = 'Alt+Ñимволи'; LANGuaPreferences_QuickSearch_Option4 = 'Ñимаоли безпоÑередньо'; LANGuaPreferences_TempPathLabel_Caption = 'ТимчаÑові файли'; LANGuaPreferences_VFSTempPathLabel_Caption = 'ТимчаÑові файли _VFS:'; LANGuaPreferences_VFSTempPathEntry_Tooltip = 'Ð Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð¸Ð¼Ñ‡Ð°Ñових файлів, викориÑтовуєтьÑÑ Ð¿Ñ–Ð´ÑиÑтемою VFS, наприклад при відкритті файлів безпоÑередньо з архівів.' + ' УÑÑ– тимчаÑові файли витираютьÑÑ Ð½Ð° виході.'; (*************** STRINGS ADDED TO v0.6.67 **********************************************************************************) LANGuaPreferences_RightClickSelectCheckBox = 'Right mouse button selection mode'; LANGuaPreferences_RightClickSelectCheckBox_Tooltip = 'Use right mouse button to select, like mc.'; LANGuaGtkMountOperation_ConnectAnonymously = 'Connect _anonymously'; LANGuaGtkMountOperation_ConnectAsUser = 'Connect as u_ser:'; LANGuaGtkMountOperation_Username = '_Username:'; LANGuaGtkMountOperation_Domain = '_Domain:'; LANGuaGtkMountOperation_Password = '_Password:'; LANGuaGtkMountOperation_DoNotSavePassword = 'Do not save password'; LANGuaGtkMountOperation_ForgetPasswordImmediately = 'Forget password _immediately'; LANGuaGtkMountOperation_RememberPasswordUntilYouLogout = 'Remember password until you _logout'; LANGuaGtkMountOperation_SavePasswordInConnectionManager = '_Save password in Connection Manager'; LANGuaGtkMountOperation_RememberForever = 'Remember _forever'; LANGuaFSymlink_RelativePath = '_Relative path'; LANGuaFConnectionManager_DuplicateButton_Caption = 'D_uplicate...'; LANGuaFConnectionManager_DuplicateButton_Tooltip = 'Duplicate selected connection'; LANGuaFConnectionManager_DoNotSavePasswordsCheckBox_Label = '_Do not store passwords internally (but still use gnome-keyring)'; LANGuaFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip = 'By checking this option on, Tux Commander will never save passwords into its connection list. Due to the GVFS nature, gnome-keyring will still be used to retrieve stored passwords from your desktop session.'; LANGuaFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label = 'Do not synchronize passwords to gnome-_keyring'; LANGuaFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip = 'Don''t tell gnome-keyring to save any passwords.'; LANGuaFConnectionManager_DuplicateMenuItem_Caption = 'D_uplicate...'; LANGuaFQuickConnect_Caption = 'Quick connect'; LANGuaFQuickConnect_TitleLabel_Caption = 'Quick connect'; LANGuaFQuickConnect_ConnectToURILabel_Caption = 'C_onnect to URI:'; LANGuaLinkToS = 'Link to %s'; LANGuaOpenDirectoryInBackgroundTab = 'Open directory in _background tab'; LANGuaTheActiveConnectionHasNotBeenSaved = 'The active connection has not been saved. Do you want to save it to Connection Manager?'#10#10'%s'; LANGuaTheArchiveIsEncryptedAndRequiresPassword = 'The archive is encrypted and requires password'; (********************************************************************************************************************************) procedure SetTranslation; begin LANGF2Button_Caption := LANGuaF2Button_Caption; LANGF3Button_Caption := LANGuaF3Button_Caption; LANGF4Button_Caption := LANGuaF4Button_Caption; LANGF5Button_Caption := LANGuaF5Button_Caption; LANGF6Button_Caption := LANGuaF6Button_Caption; LANGF7Button_Caption := LANGuaF7Button_Caption; LANGF8Button_Caption := LANGuaF8Button_Caption; LANGmnuFile_Caption := LANGuamnuFile_Caption; LANGmnuMark_Caption := LANGuamnuMark_Caption; LANGmnuCommands_Caption := LANGuamnuCommands_Caption; LANGmnuHelp_Caption := LANGuamnuHelp_Caption; LANGmiExit_Caption := LANGuamiExit_Caption; LANGmiSelectGroup_Caption := LANGuamiSelectGroup_Caption; LANGmiUnselectGroup_Caption := LANGuamiUnselectGroup_Caption; LANGmiSelectAll_Caption := LANGuamiSelectAll_Caption; LANGmiUnselectAll_Caption := LANGuamiUnselectAll_Caption; LANGmiInvertSelection_Caption := LANGuamiInvertSelection_Caption; LANGmiRefresh_Caption := LANGuamiRefresh_Caption; LANGmiAbout_Caption := LANGuamiAbout_Caption; LANGColumn1_Caption := LANGuaColumn1_Caption; LANGColumn2_Caption := LANGuaColumn2_Caption; LANGColumn3_Caption := LANGuaColumn3_Caption; LANGColumn4_Caption := LANGuaColumn4_Caption; LANGColumn5_Caption := LANGuaColumn5_Caption; LANGExpandSelection := LANGuaExpandSelection; LANGShrinkSelection := LANGuaShrinkSelection; LANGNoMatchesFound := LANGuaNoMatchesFound; LANGNoFilesSelected := LANGuaNoFilesSelected; LANGSelectedFilesDirectories := LANGuaSelectedFilesDirectories; LANGDirectoryS := LANGuaDirectoryS; LANGFileS := LANGuaFileS; LANGDoYouReallyWantToDeleteTheS := LANGuaDoYouReallyWantToDeleteTheS; LANGDoYouReallyWantToDeleteTheSS := LANGuaDoYouReallyWantToDeleteTheSS; LANGCopyFiles := LANGuaCopyFiles; LANGMoveRenameFiles := LANGuaMoveRenameFiles; LANGCopyDFileDirectoriesTo := LANGuaCopyDFileDirectoriesTo; LANGMoveRenameDFileDirectoriesTo := LANGuaMoveRenameDFileDirectoriesTo; LANGCopySC := LANGuaCopySC; LANGMoveRenameSC := LANGuaMoveRenameSC; LANGQuickFind := LANGuaQuickFind; LANGAboutString := LANGuaAboutString; LANGAboutStringGnome := LANGuaAboutStringGnome; LANGDiskStatFmt := LANGuaDiskStatFmt; LANGDiskStatVolNameFmt := LANGuaDiskStatVolNameFmt; LANGStatusLineFmt := LANGuaStatusLineFmt; LANGPanelStrings[False] := LANGuaPanelStrings[False]; LANGPanelStrings[True] := LANGuaPanelStrings[True]; LANGDIR := LANGuaDIR; LANGErrorGettingListingForSPanel := LANGuaErrorGettingListingForSPanel; LANGErrorGettingListingForSPanelNoPath := LANGuaErrorGettingListingForSPanelNoPath; LANGErrorCreatingNewDirectorySInSPanel := LANGuaErrorCreatingNewDirectorySInSPanel; LANGErrorCreatingNewDirectorySInSPanelNoPath := LANGuaErrorCreatingNewDirectorySInSPanelNoPath; LANGTheFileDirectory := LANGuaTheFileDirectory; LANGCouldNotBeDeleted := LANGuaCouldNotBeDeleted; LANGCouldNotBeDeletedS := LANGuaCouldNotBeDeletedS; LANGUserCancelled := LANGuaUserCancelled; LANGTheDirectorySIsNotEmpty := LANGuaTheDirectorySIsNotEmpty; LANGCannotCopyFile := LANGuaCannotCopyFile; LANGCopyError := LANGuaCopyError; LANGMoveError := LANGuaMoveError; LANGOverwriteS := LANGuaOverwriteS; LANGWithFileS := LANGuaWithFileS; LANGOvewriteSBytesS := LANGuaOvewriteSBytesS; LANGTheFile := LANGuaTheFile; LANGCopy := LANGuaCopy; LANGMove := LANGuaMove; LANGTheDirectory := LANGuaTheDirectory; LANGTheSymbolicLink := LANGuaTheSymbolicLink; LANGCannotMoveFile := LANGuaCannotMoveFile; LANGCouldNotBeCreated := LANGuaCouldNotBeCreated; LANGCouldNotBeCreatedS := LANGuaCouldNotBeCreatedS; LANGFromS := LANGuaFromS; LANGToS := LANGuaToS; LANGCannotCopyFileToItself := LANGuaCannotCopyFileToItself; LANGMemoryAllocationFailed := LANGuaMemoryAllocationFailed; LANGCannotOpenSourceFile := LANGuaCannotOpenSourceFile; LANGCannotOpenDestinationFile := LANGuaCannotOpenDestinationFile; LANGCannotCloseDestinationFile := LANGuaCannotCloseDestinationFile; LANGCannotCloseSourceFile := LANGuaCannotCloseSourceFile; LANGCannotReadFromSourceFile := LANGuaCannotReadFromSourceFile; LANGCannotWriteToDestinationFile := LANGuaCannotWriteToDestinationFile; LANGUnknownException := LANGuaUnknownException; LANGNoAccess := LANGuaNoAccess; LANGUnknownError := LANGuaUnknownError; LANGCreateANewDirectory := LANGuaCreateANewDirectory; LANGEnterDirectoryName := LANGuaEnterDirectoryName; LANGOverwriteQuestion := LANGuaOverwriteQuestion; LANGOverwriteButton_Caption := LANGuaOverwriteButton_Caption; LANGOverwriteAllButton_Caption := LANGuaOverwriteAllButton_Caption; LANGSkipButton_Caption := LANGuaSkipButton_Caption; LANGOverwriteAllOlderButton_Caption := LANGuaOverwriteAllOlderButton_Caption; LANGSkipAllButton_Caption := LANGuaSkipAllButton_Caption; LANGRenameButton_Caption := LANGuaRenameButton_Caption; LANGAppendButton_Caption := LANGuaAppendButton_Caption; LANGRename := LANGuaRename; LANGRenameFile := LANGuaRenameFile; LANGIgnoreButton_Caption := LANGuaIgnoreButton_Caption; LANGProgress := LANGuaProgress; LANGCancel := LANGuaCancel; LANGDelete := LANGuaDelete; LANGSpecifyFileType := LANGuaSpecifyFileType; LANGRemoveDirectory := LANGuaRemoveDirectory; LANGDoYouWantToDeleteItWithAllItsFilesAndSubdirectories := LANGuaDoYouWantToDeleteItWithAllItsFilesAndSubdirectories; LANGRetry := LANGuaRetry; LANGDeleteButton_Caption := LANGuaDeleteButton_Caption; LANGAll := LANGuaAll; LANGCopyFilesSC := LANGuaCopyFilesSC; LANGAppendQuestion := LANGuaAppendQuestion; LANGPreparingList := LANGuaPreparingList; LANGYouMustSelectAValidFile := LANGuaYouMustSelectAValidFile; LANGmiVerifyChecksums := LANGuamiVerifyChecksums; LANGVerifyChecksumsCaption := LANGuaVerifyChecksumsCaption; LANGCheckButtonCaptionCheck := LANGuaCheckButtonCaptionCheck; LANGCheckButtonCaptionStop := LANGuaCheckButtonCaptionStop; LANGFileListTooltip := LANGuaFileListTooltip; LANGFilenameColumnCaption := LANGuaFilenameColumnCaption; LANGTheFileSYouAreTryingToOpenIsQuiteBig := LANGuaTheFileSYouAreTryingToOpenIsQuiteBig; LANGAnErrorOccuredWhileInitializingMemoryBlock := LANGuaAnErrorOccuredWhileInitializingMemoryBlock; LANGAnErrorOccuredWhileOpeningFileSS := LANGuaAnErrorOccuredWhileOpeningFileSS; LANGAnErrorOccuredWhileReadingFileSS := LANGuaAnErrorOccuredWhileReadingFileSS; LANGChecksumNotChecked := LANGuaChecksumNotChecked; LANGChecksumChecking := LANGuaChecksumChecking; LANGChecksumInterrupted := LANGuaChecksumInterrupted; LANGChecksumDOK := LANGuaChecksumDOK; LANGmiCreateChecksumsCaption := LANGuamiCreateChecksumsCaption; LANGYouMustSelectAtLeastOneFileToCalculateChecksum := LANGuaYouMustSelectAtLeastOneFileToCalculateChecksum; LANGCreateChecksumsCaption := LANGuaCreateChecksumsCaption; LANGCCHKSUMPage1Text := LANGuaCCHKSUMPage1Text; LANGCCHKSUMPage4Text := LANGuaCCHKSUMPage4Text; LANGCCHKSUMPage6Text := LANGuaCCHKSUMPage6Text; LANGCCHKSUMPage7Text := LANGuaCCHKSUMPage7Text; LANGCCHKSUMPage1Title := LANGuaCCHKSUMPage1Title; LANGCCHKSUMPage2Title := LANGuaCCHKSUMPage2Title; LANGCCHKSUMPage3Title := LANGuaCCHKSUMPage3Title; LANGCCHKSUMPage4Title := LANGuaCCHKSUMPage4Title; LANGCCHKSUMPage5Title := LANGuaCCHKSUMPage5Title; LANGCCHKSUMPage6Title := LANGuaCCHKSUMPage6Title; LANGCCHKSUMPage7Title := LANGuaCCHKSUMPage7Title; LANGCCHKSUMSFVFile := LANGuaCCHKSUMSFVFile; LANGCCHKSUMMD5sumFile := LANGuaCCHKSUMMD5sumFile; LANGCCHKSUMFileName := LANGuaCCHKSUMFileName; LANGCCHKSUMCreateSeparateChecksumFiles := LANGuaCCHKSUMCreateSeparateChecksumFiles; LANGCCHKSUMNowProcessingFileS := LANGuaCCHKSUMNowProcessingFileS; LANGCCHKSUMFinishCaption := LANGuaCCHKSUMFinishCaption; LANGCCHKSUMAreYouSureYouWantToAbortTheProcessing := LANGuaCCHKSUMAreYouSureYouWantToAbortTheProcessing; LANGCCHKSUMAnErrorOccuredWhileOpeningFileSS := LANGuaCCHKSUMAnErrorOccuredWhileOpeningFileSS; LANGCCHKSUMAnErrorOccuredWhileReadingFileSS := LANGuaCCHKSUMAnErrorOccuredWhileReadingFileSS; LANGCCHKSUMAnErrorOccuredWhileWritingFileSS := LANGuaCCHKSUMAnErrorOccuredWhileWritingFileSS; LANGAnErrorOccuredWhileWritingFileSS := LANGuaAnErrorOccuredWhileWritingFileSS; LANGTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt := LANGuaTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt; LANGTheTargetFileSCannotBeRemovedS := LANGuaTheTargetFileSCannotBeRemovedS; LANGMergeCaption := LANGuaMergeCaption; LANGPleaseInsertNextDiskOrGiveDifferentLocation := LANGuaPleaseInsertNextDiskOrGiveDifferentLocation; LANGMergeOfSSucceeded := LANGuaMergeOfSSucceeded; LANGWarningCreatedFileFailsCRCCheck := LANGuaWarningCreatedFileFailsCRCCheck; LANGMergeOfSSucceeded_NoCRCFileAvailable := LANGuaMergeOfSSucceeded_NoCRCFileAvailable; LANGMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory := LANGuaMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory; LANGMergeSC := LANGuaMergeSC; LANGmiSplitFileCaption := LANGuamiSplitFileCaption; LANGmiMergeFilesCaption := LANGuamiMergeFilesCaption; LANGSplitTheFileSToDirectory := LANGuaSplitTheFileSToDirectory; LANGSplitSC := LANGuaSplitSC; LANGSplitFile := LANGuaSplitFile; LANGBytesPerFile := LANGuaBytesPerFile; LANGAutomatic := LANGuaAutomatic; LANGDeleteFilesOnTargetDisk := LANGuaDeleteFilesOnTargetDisk; LANGSplitCaption := LANGuaSplitCaption; LANGCannotOpenFileS := LANGuaCannotOpenFileS; LANGCannotSplitTheFileToMoreThan999Parts := LANGuaCannotSplitTheFileToMoreThan999Parts; LANGThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem := LANGuaThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem; LANGThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem := LANGuaThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem; LANGAnErrorOccuredWhileOperationS := LANGuaAnErrorOccuredWhileOperationS; LANGSplitOfSSucceeded := LANGuaSplitOfSSucceeded; LANGSplitOfSFailed := LANGuaSplitOfSFailed; LANGmnuShow_Caption := LANGuamnuShow_Caption; LANGmiShowDotFiles_Caption := LANGuamiShowDotFiles_Caption; LANGTheFileYouAreTryingToOpenIsQuiteBig := LANGuaTheFileYouAreTryingToOpenIsQuiteBig; LANGCannotExecuteSPleaseCheckTheConfiguration := LANGuaCannotExecuteSPleaseCheckTheConfiguration; LANGEdit := LANGuaEdit; LANGEnterFilenameToEdit := LANGuaEnterFilenameToEdit; LANGmnuSettings_Caption := LANGuamnuSettings_Caption; LANGmiFileTypes_Caption := LANGuamiFileTypes_Caption; LANGThereIsNoApplicationAssociatedWithS := LANGuaThereIsNoApplicationAssociatedWithS; LANGErrorExecutingCommand := LANGuaErrorExecutingCommand; LANGEditFileTypesCaption := LANGuaEditFileTypesCaption; LANGTitleLabel_Caption := LANGuaTitleLabel_Caption; LANGExtensionsColumn := LANGuaExtensionsColumn; LANGDescriptionColumn := LANGuaDescriptionColumn; LANGFileTypesList := LANGuaFileTypesList; LANGActionName := LANGuaActionName; LANGCommand := LANGuaCommand; LANGSetDefaultActionButton_Caption := LANGuaSetDefaultActionButton_Caption; LANGRunInTerminalCheckBox_Caption := LANGuaRunInTerminalCheckBox_Caption; LANGAutodetectCheckBox_Caption := LANGuaAutodetectCheckBox_Caption; LANGBrowseButton_Caption := LANGuaBrowseButton_Caption; LANGCommandLabel_Caption := LANGuaCommandLabel_Caption; LANGDescriptionLabel_Caption := LANGuaDescriptionLabel_Caption; LANGFNameExtLabel_Caption := LANGuaFNameExtLabel_Caption; LANGNotebookPageExtensions := LANGuaNotebookPageExtensions; LANGNotebookPageActions := LANGuaNotebookPageActions; LANGDefault := LANGuaDefault; LANGCannotSaveFileTypeAssociationsBecauseOtherProcess := LANGuaCannotSaveFileTypeAssociationsBecauseOtherProcess; LANGDefaultColor := LANGuaDefaultColor; LANGIcon := LANGuaIcon; LANGBrowseForIcon := LANGuaBrowseForIcon; LANGSelectFileTypeColor := LANGuaSelectFileTypeColor; LANGColor := LANGuaColor; LANGmiChangePermissions_Caption := LANGuamiChangePermissions_Caption; LANGmiChangeOwner_Caption := LANGuamiChangeOwner_Caption; LANGmiCreateSymlink_Caption := LANGuamiCreateSymlink_Caption; LANGmiEditSymlink_Caption := LANGuamiEditSymlink_Caption; LANGChmodProgress := LANGuaChmodProgress; LANGChownProgress := LANGuaChownProgress; LANGYouMustSelectAValidSymbolicLink := LANGuaYouMustSelectAValidSymbolicLink; LANGPopupRunS := LANGuaPopupRunS; LANGPopupOpenS := LANGuaPopupOpenS; LANGPopupGoUp := LANGuaPopupGoUp; LANGPopupOpenWithS := LANGuaPopupOpenWithS; LANGPopupDefault := LANGuaPopupDefault; LANGPopupOpenWith := LANGuaPopupOpenWith; LANGPopupViewFile := LANGuaPopupViewFile; LANGPopupEditFile := LANGuaPopupEditFile; LANGPopupMakeSymlink := LANGuaPopupMakeSymlink; LANGPopupRename := LANGuaPopupRename; LANGPopupDelete := LANGuaPopupDelete; LANGDialogChangePermissions := LANGuaDialogChangePermissions; LANGCouldNotBeChmoddedS := LANGuaCouldNotBeChmoddedS; LANGDialogChangeOwner := LANGuaDialogChangeOwner; LANGCouldNotBeChownedS := LANGuaCouldNotBeChownedS; LANGDialogMakeSymlink := LANGuaDialogMakeSymlink; LANGDialogEditSymlink := LANGuaDialogEditSymlink; LANGFEditSymlink_Caption := LANGuaFEditSymlink_Caption; LANGFEditSymlink_SymbolicLinkFilename := LANGuaFEditSymlink_SymbolicLinkFilename; LANGFEditSymlink_SymbolicLinkPointsTo := LANGuaFEditSymlink_SymbolicLinkPointsTo; LANGFChmod_Caption := LANGuaFChmod_Caption; LANGFChmod_PermissionFrame := LANGuaFChmod_PermissionFrame; LANGFChmod_FileFrame := LANGuaFChmod_FileFrame; LANGFChmod_ApplyRecursivelyFor := LANGuaFChmod_ApplyRecursivelyFor; LANGFChmod_miAllFiles := LANGuaFChmod_miAllFiles; LANGFChmod_miDirectories := LANGuaFChmod_miDirectories; LANGFChmod_OctalLabel := LANGuaFChmod_OctalLabel; LANGFChmod_SUID := LANGuaFChmod_SUID; LANGFChmod_SGID := LANGuaFChmod_SGID; LANGFChmod_Sticky := LANGuaFChmod_Sticky; LANGFChmod_RUSR := LANGuaFChmod_RUSR; LANGFChmod_WUSR := LANGuaFChmod_WUSR; LANGFChmod_XUSR := LANGuaFChmod_XUSR; LANGFChmod_RGRP := LANGuaFChmod_RGRP; LANGFChmod_WGRP := LANGuaFChmod_WGRP; LANGFChmod_XGRP := LANGuaFChmod_XGRP; LANGFChmod_ROTH := LANGuaFChmod_ROTH; LANGFChmod_WOTH := LANGuaFChmod_WOTH; LANGFChmod_XOTH := LANGuaFChmod_XOTH; LANGFChmod_TextLabel := LANGuaFChmod_TextLabel; LANGFChmod_FileLabel := LANGuaFChmod_FileLabel; LANGFChown_Caption := LANGuaFChown_Caption; LANGFChown_OwnerFrame := LANGuaFChown_OwnerFrame; LANGFChown_GroupFrame := LANGuaFChown_GroupFrame; LANGFChown_FileFrame := LANGuaFChown_FileFrame; LANGFChown_ApplyRecursively := LANGuaFChown_ApplyRecursively; LANGFSymlink_Caption := LANGuaFSymlink_Caption; LANGFSymlink_ExistingFilename := LANGuaFSymlink_ExistingFilename; LANGFSymlink_SymlinkFilename := LANGuaFSymlink_SymlinkFilename; LANGmnuBookmarks_Caption := LANGuamnuBookmarks_Caption; LANGmiAddBookmark_Caption := LANGuamiAddBookmark_Caption; LANGmiEditBookmarks_Caption := LANGuamiEditBookmarks_Caption; LANGBookmarkPopupDelete_Caption := LANGuaBookmarkPopupDelete_Caption; LANGmiPreferences_Caption := LANGuamiPreferences_Caption; LANGTheCurrentDirectoryAlreadyExistsInTheBookmarksList := LANGuaTheCurrentDirectoryAlreadyExistsInTheBookmarksList; LANGSomeOtherInstanceChanged := LANGuaSomeOtherInstanceChanged1 + LANGuaSomeOtherInstanceChanged2; LANGPreferences_Caption := LANGuaPreferences_Caption; LANGPreferences_TitleLabel_Caption := LANGuaPreferences_TitleLabel_Caption; LANGPreferences_GeneralPage := LANGuaPreferences_GeneralPage; LANGPreferences_FontsPage := LANGuaPreferences_FontsPage; LANGPreferences_ColorsPage := LANGuaPreferences_ColorsPage; LANGPreferences_RowHeight := LANGuaPreferences_RowHeight; LANGPreferences_NumHistoryItems := LANGuaPreferences_NumHistoryItems; LANGPreferences_Default := LANGuaPreferences_Default; LANGPreferences_ClearReadonlyAttribute := LANGuaPreferences_ClearReadonlyAttribute; LANGPreferences_DisableMouseRenaming := LANGuaPreferences_DisableMouseRenaming; LANGPreferences_ShowFiletypeIconsInList := LANGuaPreferences_ShowFiletypeIconsInList; LANGPreferences_ExternalAppsLabel := LANGuaPreferences_ExternalAppsLabel; LANGPreferences_Viewer := LANGuaPreferences_Viewer; LANGPreferences_Editor := LANGuaPreferences_Editor; LANGPreferences_Terminal := LANGuaPreferences_Terminal; LANGPreferences_ListFont := LANGuaPreferences_ListFont; LANGPreferences_Change := LANGuaPreferences_Change; LANGPreferences_UseDefaultFont := LANGuaPreferences_UseDefaultFont; LANGPreferences_Foreground := LANGuaPreferences_Foreground; LANGPreferences_Background := LANGuaPreferences_Background; LANGPreferences_NormalItem := LANGuaPreferences_NormalItem; LANGPreferences_SetToDefaultToUseGTKThemeColors := LANGuaPreferences_SetToDefaultToUseGTKThemeColors; LANGPreferences_Cursor := LANGuaPreferences_Cursor; LANGPreferences_InactiveItem := LANGuaPreferences_InactiveItem; LANGPreferences_SelectedItem := LANGuaPreferences_SelectedItem; LANGPreferences_LinkItem := LANGuaPreferences_LinkItem; LANGPreferences_LinkItemHint := LANGuaPreferences_LinkItemHint; LANGPreferences_DotFileItem := LANGuaPreferences_DotFileItem; LANGPreferences_DotFileItemHint := LANGuaPreferences_DotFileItemHint; LANGPreferences_BrowseForApplication := LANGuaPreferences_BrowseForApplication; LANGPreferences_DefaultS := LANGuaPreferences_DefaultS; LANGPreferences_SelectFont := LANGuaPreferences_SelectFont; LANGBookmarkButton_Tooltip := LANGuaBookmarkButton_Tooltip; LANGUpButton_Tooltip := LANGuaUpButton_Tooltip; LANGRootButton_Tooltip := LANGuaRootButton_Tooltip; LANGHomeButton_Tooltip := LANGuaHomeButton_Tooltip; LANGLeftEqualButton_Tooltip := LANGuaLeftEqualButton_Tooltip; LANGRightEqualButton_Tooltip := LANGuaRightEqualButton_Tooltip; LANGmiShowDirectorySizes_Caption := LANGuamiShowDirectorySizes_Caption; LANGmiTargetSource_Caption := LANGuamiTargetSource_Caption; LANGFileTypeDirectory := LANGuaFileTypeDirectory; LANGFileTypeFile := LANGuaFileTypeFile; LANGFileTypeMetafile := LANGuaFileTypeMetafile; LANGPreferencesPanelsPage := LANGuaPreferencesPanelsPage; LANGPreferencesApplicationsPage := LANGuaPreferencesApplicationsPage; LANGPreferencesExperimentalPage := LANGuaPreferencesExperimentalPage; LANGPreferencesSelectAllDirectoriesCheckBox_Caption := LANGuaPreferencesSelectAllDirectoriesCheckBox_Caption; LANGPreferencesNewStyleAltOCheckBox_Caption := LANGuaPreferencesNewStyleAltOCheckBox_Caption; LANGPreferencesNewStyleAltOCheckBox_Tooltip := LANGuaPreferencesNewStyleAltOCheckBox_Tooltip; LANGPreferencesShowFuncButtonsCheckBox_Caption := LANGuaPreferencesShowFuncButtonsCheckBox_Caption; LANGPreferencesSizeFormatLabel_Caption := LANGuaPreferencesSizeFormatLabel_Caption; LANGPreferencesmiSizeFormat1 := LANGuaPreferencesmiSizeFormat1; LANGPreferencesmiSizeFormat6 := LANGuaPreferencesmiSizeFormat6; LANGPreferencesAutodetectXApp := LANGuaPreferencesAutodetectXApp; LANGPreferencesAlwaysRunInTerminal := LANGuaPreferencesAlwaysRunInTerminal; LANGPreferencesNeverRunInTerminal := LANGuaPreferencesNeverRunInTerminal; LANGPreferencesCmdLineBehaviourLabel_Caption := LANGuaPreferencesCmdLineBehaviourLabel_Caption; LANGPreferencesFeatures := LANGuaPreferencesFeatures; LANGPreferencesDisableMouseRename_Tooltip := LANGuaPreferencesDisableMouseRename_Tooltip; LANGPreferencesDisableFileTipsCheckBox_Caption := LANGuaPreferencesDisableFileTipsCheckBox_Caption; LANGPreferencesDisableFileTipsCheckBox_Tooltip := LANGuaPreferencesDisableFileTipsCheckBox_Tooltip; LANGPreferencesShow := LANGuaPreferencesShow; LANGPreferencesDirsInBoldCheckBox_Caption := LANGuaPreferencesDirsInBoldCheckBox_Caption; LANGPreferencesDisableDirectoryBracketsCheckBox_Caption := LANGuaPreferencesDisableDirectoryBracketsCheckBox_Caption; LANGPreferencesOctalPermissionsCheckBox_Caption := LANGuaPreferencesOctalPermissionsCheckBox_Caption; LANGPreferencesOctalPermissionsCheckBox_Tooltip := LANGuaPreferencesOctalPermissionsCheckBox_Tooltip; LANGPreferencesMovement := LANGuaPreferencesMovement; LANGPreferencesLynxLikeMotionCheckBox_Caption := LANGuaPreferencesLynxLikeMotionCheckBox_Caption; LANGPreferencesInsertMovesDownCheckBox_Caption := LANGuaPreferencesInsertMovesDownCheckBox_Caption; LANGPreferencesSpaceMovesDownCheckBox_Caption := LANGuaPreferencesSpaceMovesDownCheckBox_Caption; LANGPreferencesViewer := LANGuaPreferencesViewer; LANGPreferencesCommandSC := LANGuaPreferencesCommandSC; LANGPreferencesUseInternalViewer := LANGuaPreferencesUseInternalViewer; LANGPreferencesEditor := LANGuaPreferencesEditor; LANGPreferencesTerminal := LANGuaPreferencesTerminal; LANGPreferencesExperimentalFeatures := LANGuaPreferencesExperimentalFeatures; LANGPreferencesExperimentalWarningLabel_Caption := LANGuaPreferencesExperimentalWarningLabel_Caption; LANGPreferencesFocusRefreshCheckBox_Caption := LANGuaPreferencesFocusRefreshCheckBox_Caption; LANGPreferencesFocusRefreshCheckBox_Tooltip := LANGuaPreferencesFocusRefreshCheckBox_Tooltip; LANGPreferencesWMCompatModeCheckBox_Caption := LANGuaPreferencesWMCompatModeCheckBox_Caption; LANGPreferencesWMCompatModeCheckBox_Tooltip := LANGuaPreferencesWMCompatModeCheckBox_Tooltip; LANGPreferencesCompatUseLibcSystemCheckBox_Caption := LANGuaPreferencesCompatUseLibcSystemCheckBox_Caption; LANGPreferencesCompatUseLibcSystemCheckBox_Tooltip := LANGuaPreferencesCompatUseLibcSystemCheckBox_Tooltip; LANGmiSearchCaption2 := LANGuamiSearchCaption2; LANGmiNoMounterBarCaption := LANGuamiNoMounterBarCaption; LANGmiShowOneMounterBarCaption := LANGuamiShowOneMounterBarCaption; LANGmiShowTwoMounterBarCaption := LANGuamiShowTwoMounterBarCaption; LANGmnuNetworkCaption := LANGuamnuNetworkCaption; LANGmiConnectionsCaption := LANGuamiConnectionsCaption; LANGmiOpenConnectionCaption := LANGuamiOpenConnectionCaption; LANGmiQuickConnectCaption := LANGuamiQuickConnectCaption; LANGmnuPluginsCaption := LANGuamnuPluginsCaption; LANGmiTestPluginCaption := LANGuamiTestPluginCaption; LANGmiMounterSettingsCaption := LANGuamiMounterSettingsCaption; LANGmiColumnsCaption := LANGuamiColumnsCaption; LANGmiSavePositionCaption := LANGuamiSavePositionCaption; LANGmiMountCaption := LANGuamiMountCaption; LANGmiUmountCaption := LANGuamiUmountCaption; LANGmiEjectCaption := LANGuamiEjectCaption; LANGmiDuplicateTabCaption := LANGuamiDuplicateTabCaption; LANGmiCloseTabCaption := LANGuamiCloseTabCaption; LANGmiCloseAllTabsCaption := LANGuamiCloseAllTabsCaption; LANGCannotDetermineDestinationEngine := LANGuaCannotDetermineDestinationEngine; LANGCannotLoadFile := LANGuaCannotLoadFile; LANGMountPointDevice := LANGuaMountPointDevice; LANGMountSC := LANGuaMountSC; LANGNoPluginsFound := LANGuaNoPluginsFound; LANGPluginAbout := LANGuaPluginAbout; LANGCouldntOpenURI := LANGuaCouldntOpenURI; LANGPluginAboutInside := LANGuaPluginAboutInside; LANGAreYouSureCloseAllTabs := LANGuaAreYouSureCloseAllTabs; LANGCouldntOpenURIArchive := LANGuaCouldntOpenURIArchive; LANGThereIsNoModuleAvailable := LANGuaThereIsNoModuleAvailable; LANGIgnoreError := LANGuaIgnoreError; LANGErrorMount := LANGuaErrorMount; LANGErrorUmount := LANGuaErrorUmount; LANGErrorEject := LANGuaErrorEject; LANGMounterPrefs_Caption := LANGuaMounterPrefs_Caption; LANGMounterPrefs_TitleLabelCaption := LANGuaMounterPrefs_TitleLabelCaption; LANGMounterPrefs_ListViewFrameCaption := LANGuaMounterPrefs_ListViewFrameCaption; LANGMounterPrefs_MountName := LANGuaMounterPrefs_MountName; LANGMounterPrefs_MountPoint := LANGuaMounterPrefs_MountPoint; LANGMounterPrefs_Device := LANGuaMounterPrefs_Device; LANGMounterPrefs_MoveUpButtonTooltip := LANGuaMounterPrefs_MoveUpButtonTooltip; LANGMounterPrefs_MoveDownButtonTooltip := LANGuaMounterPrefs_MoveDownButtonTooltip; LANGMounterPrefs_UseFSTabDefaultsCheckBox := LANGuaMounterPrefs_UseFSTabDefaultsCheckBox; LANGMounterPrefs_UseFSTabDefaultsCheckBoxTooltip := LANGuaMounterPrefs_UseFSTabDefaultsCheckBoxTooltip; LANGMounterPrefs_ToggleModeCheckBox := LANGuaMounterPrefs_ToggleModeCheckBox; LANGMounterPrefs_ToggleModeCheckBoxTooltip := LANGuaMounterPrefs_ToggleModeCheckBoxTooltip; LANGMounterPrefs_PropertiesFrameCaption := LANGuaMounterPrefs_PropertiesFrameCaption; LANGMounterPrefs_DisplayTextLabelCaption := LANGuaMounterPrefs_DisplayTextLabelCaption; LANGMounterPrefs_MountPointLabelCaption := LANGuaMounterPrefs_MountPointLabelCaption; LANGMounterPrefs_MountDeviceLabelCaption := LANGuaMounterPrefs_MountDeviceLabelCaption; LANGMounterPrefs_DeviceTypeLabelCaption := LANGuaMounterPrefs_DeviceTypeLabelCaption; LANGMounterPrefs_miLocalDiskCaption := LANGuaMounterPrefs_miLocalDiskCaption; LANGMounterPrefs_miRemovableCaption := LANGuaMounterPrefs_miRemovableCaption; LANGMounterPrefs_miCDCaption := LANGuaMounterPrefs_miCDCaption; LANGMounterPrefs_miFloppyCaption := LANGuaMounterPrefs_miFloppyCaption; LANGMounterPrefs_miNetworkCaption := LANGuaMounterPrefs_miNetworkCaption; LANGMounterPrefs_MountCommandLabelCaption := LANGuaMounterPrefs_MountCommandLabelCaption; LANGMounterPrefs_UmountCommandLabelCaption := LANGuaMounterPrefs_UmountCommandLabelCaption; LANGMounterPrefs_MountCommandEntryTooltip := LANGuaMounterPrefs_MountCommandEntryTooltip; LANGMounterPrefs_UmountCommandEntryTooltip := LANGuaMounterPrefs_UmountCommandEntryTooltip; LANGMounterPrefs_IconLabelCaption := LANGuaMounterPrefs_IconLabelCaption; LANGConnMgr_Caption := LANGuaConnMgr_Caption; LANGConnMgr_ConnectButton := LANGuaConnMgr_ConnectButton; LANGConnMgr_OpenConnection := LANGuaConnMgr_OpenConnection; LANGConnMgr_NameColumn := LANGuaConnMgr_NameColumn; LANGConnMgr_URIColumn := LANGuaConnMgr_URIColumn; LANGConnMgr_AddConnectionButtonCaption := LANGuaConnMgr_AddConnectionButtonCaption; LANGConnMgr_AddConnectionButtonTooltip := LANGuaConnMgr_AddConnectionButtonTooltip; LANGConnMgr_EditButtonCaption := LANGuaConnMgr_EditButtonCaption; LANGConnMgr_EditButtonTooltip := LANGuaConnMgr_EditButtonTooltip; LANGConnMgr_RemoveButtonCaption := LANGuaConnMgr_RemoveButtonCaption; LANGConnMgr_RemoveButtonTooltip := LANGuaConnMgr_RemoveButtonTooltip; LANGConnMgr_DoYouWantDelete := LANGuaConnMgr_DoYouWantDelete; LANGConnProp_FTP := LANGuaConnProp_FTP; LANGConnProp_SFTP := LANGuaConnProp_SFTP; LANGConnProp_SMB := LANGuaConnProp_SMB; LANGConnProp_HTTP := LANGuaConnProp_HTTP; LANGConnProp_HTTPS := LANGuaConnProp_HTTPS; LANGConnProp_Other := LANGuaConnProp_Other; LANGConnProp_Caption := LANGuaConnProp_Caption; LANGConnProp_VFSModule := LANGuaConnProp_VFSModule; LANGConnProp_URI := LANGuaConnProp_URI; LANGConnProp_URIEntryTooltip := LANGuaConnProp_URIEntryTooltip; LANGConnProp_DetailedInformations := LANGuaConnProp_DetailedInformations; LANGConnProp_Name := LANGuaConnProp_Name; LANGConnProp_Server := LANGuaConnProp_Server; LANGConnProp_Username := LANGuaConnProp_Username; LANGConnProp_UserNameEntryTooltip := LANGuaConnProp_UserNameEntryTooltip; LANGConnProp_Password := LANGuaConnProp_Password; LANGConnProp_TargetDirectory := LANGuaConnProp_TargetDirectory; LANGConnProp_ServiceType := LANGuaConnProp_ServiceType; LANGConnProp_MaskPassword := LANGuaConnProp_MaskPassword; LANGConnProp_MenuItemCaption := LANGuaConnProp_MenuItemCaption; LANGConnLogin_Caption := LANGuaConnLogin_Caption; LANGConnLogin_Login := LANGuaConnLogin_Login; LANGConnLogin_ExperimentalWarningLabelCaption := LANGuaConnLogin_ExperimentalWarningLabelCaption; LANGConnLogin_Username := LANGuaConnLogin_Username; LANGConnLogin_Password := LANGuaConnLogin_Password; LANGConnLogin_AnonymousCheckButton := LANGuaConnLogin_AnonymousCheckButton; LANGColumns_Caption := LANGuaColumns_Caption; LANGColumns_Title := LANGuaColumns_Title; LANGColumns_MoveUpButtonTooltip := LANGuaColumns_MoveUpButtonTooltip; LANGColumns_MoveDownButtonTooltip := LANGuaColumns_MoveDownButtonTooltip; LANGColumns_TitlesLongName := LANGuaColumns_TitlesLongName; LANGColumns_TitlesLongNameExt := LANGuaColumns_TitlesLongNameExt; LANGColumns_TitlesLongExt := LANGuaColumns_TitlesLongExt; LANGColumns_TitlesLongSize := LANGuaColumns_TitlesLongSize; LANGColumns_TitlesLongDateTime := LANGuaColumns_TitlesLongDateTime; LANGColumns_TitlesLongDate := LANGuaColumns_TitlesLongDate; LANGColumns_TitlesLongTime := LANGuaColumns_TitlesLongTime; LANGColumns_TitlesLongUser := LANGuaColumns_TitlesLongUser; LANGColumns_TitlesLongGroup := LANGuaColumns_TitlesLongGroup; LANGColumns_TitlesLongAttr := LANGuaColumns_TitlesLongAttr; LANGColumns_TitlesShortName := LANGuaColumns_TitlesShortName; LANGColumns_TitlesShortNameExt := LANGuaColumns_TitlesShortNameExt; LANGColumns_TitlesShortExt := LANGuaColumns_TitlesShortExt; LANGColumns_TitlesShortSize := LANGuaColumns_TitlesShortSize; LANGColumns_TitlesShortDateTime := LANGuaColumns_TitlesShortDateTime; LANGColumns_TitlesShortDate := LANGuaColumns_TitlesShortDate; LANGColumns_TitlesShortTime := LANGuaColumns_TitlesShortTime; LANGColumns_TitlesShortUser := LANGuaColumns_TitlesShortUser; LANGColumns_TitlesShortGroup := LANGuaColumns_TitlesShortGroup; LANGColumns_TitlesShortAttr := LANGuaColumns_TitlesShortAttr; LANGTestPlugin_Caption := LANGuaTestPlugin_Caption; LANGTestPlugin_Title := LANGuaTestPlugin_Title; LANGTestPlugin_ExperimentalWarningLabelCaption := LANGuaTestPlugin_ExperimentalWarningLabelCaption; LANGTestPlugin_Plugin := LANGuaTestPlugin_Plugin; LANGTestPlugin_Command := LANGuaTestPlugin_Command; LANGTestPlugin_Username := LANGuaTestPlugin_Username; LANGTestPlugin_Password := LANGuaTestPlugin_Password; LANGTestPlugin_AnonymousCheckButton := LANGuaTestPlugin_AnonymousCheckButton; LANGTestPlugin_NoPluginsFound := LANGuaTestPlugin_NoPluginsFound; LANGRemoteWait_Caption := LANGuaRemoteWait_Caption; LANGRemoteWait_OperationInProgress := LANGuaRemoteWait_OperationInProgress; LANGRemoteWait_ItemsFound := LANGuaRemoteWait_ItemsFound; LANGSearch_Bytes := LANGuaSearch_Bytes; LANGSearch_kB := LANGuaSearch_kB; LANGSearch_MB := LANGuaSearch_MB; LANGSearch_days := LANGuaSearch_days; LANGSearch_weeks := LANGuaSearch_weeks; LANGSearch_months := LANGuaSearch_months; LANGSearch_years := LANGuaSearch_years; LANGSearch_Caption := LANGuaSearch_Caption; LANGSearch_General := LANGuaSearch_General; LANGSearch_Advanced := LANGuaSearch_Advanced; LANGSearch_SearchResults := LANGuaSearch_SearchResults; LANGSearch_SearchFor := LANGuaSearch_SearchFor; LANGSearch_FileMaskEntryTooltip := LANGuaSearch_FileMaskEntryTooltip; LANGSearch_SearchIn := LANGuaSearch_SearchIn; LANGSearch_SearchArchivesCheckButton := LANGuaSearch_SearchArchivesCheckButton; LANGSearch_FindText := LANGuaSearch_FindText; LANGSearch_FindTextEntryTooltip := LANGuaSearch_FindTextEntryTooltip; LANGSearch_CaseSensitiveCheckButton := LANGuaSearch_CaseSensitiveCheckButton; LANGSearch_StayCurrentFSCheckButton := LANGuaSearch_StayCurrentFSCheckButton; LANGSearch_CaseSensitiveMatchCheckButton := LANGuaSearch_CaseSensitiveMatchCheckButton; LANGSearch_Size := LANGuaSearch_Size; LANGSearch_Date := LANGuaSearch_Date; LANGSearch_BiggerThan := LANGuaSearch_BiggerThan; LANGSearch_SmallerThan := LANGuaSearch_SmallerThan; LANGSearch_ModifiedBetweenRadioButton := LANGuaSearch_ModifiedBetweenRadioButton; LANGSearch_NotModifiedAfterRadioButton := LANGuaSearch_NotModifiedAfterRadioButton; LANGSearch_ModifiedLastRadioButton := LANGuaSearch_ModifiedLastRadioButton; LANGSearch_ModifiedNotLastRadionButton := LANGuaSearch_ModifiedNotLastRadionButton; LANGSearch_ModifiedBetweenEntry1 := LANGuaSearch_ModifiedBetweenEntry1; LANGSearch_ViewButtonCaption := LANGuaSearch_ViewButtonCaption; LANGSearch_NewSearchButtonCaption := LANGuaSearch_NewSearchButtonCaption; LANGSearch_GoToFileButtonCaption := LANGuaSearch_GoToFileButtonCaption; LANGSearch_FeedToListboxButtonCaption := LANGuaSearch_FeedToListboxButtonCaption; LANGSearch_StatusSC := LANGuaSearch_StatusSC; LANGSearch_Ready := LANGuaSearch_Ready; LANGSearch_PreparingToSearch := LANGuaSearch_PreparingToSearch; LANGSearch_SearchInProgress := LANGuaSearch_SearchInProgress; LANGSearch_UserCancelled := LANGuaSearch_UserCancelled; LANGSearch_SearchFinished := LANGuaSearch_SearchFinished; LANGSearch_FilesFound := LANGuaSearch_FilesFound; LANGSearch_And := LANGuaSearch_And; LANGCloseOpenConnection := LANGuaCloseOpenConnection; LANGDuplicateTabWarning := LANGuaDuplicateTabWarning; LANGDontShowAgain := LANGuaDontShowAgain; LANGSwitchOtherPanelWarning := LANGuaSwitchOtherPanelWarning; LANGOpenConnectionsWarning := LANGuaOpenConnectionsWarning; LANGmiDisconnect_Caption := LANGuamiDisconnect_Caption; LANGDisconnectButton_Tooltip := LANGuaDisconnectButton_Tooltip; LANGLeaveArchiveButton_Tooltip := LANGuaLeaveArchiveButton_Tooltip; LANGOpenTerminalButton_Tooltip := LANGuaOpenTerminalButton_Tooltip; LANGOpenTerminalButton_Caption := LANGuaOpenTerminalButton_Caption; LANGShowTextUIDsCheckBox_Caption := LANGuaShowTextUIDsCheckBox_Caption; LANGShowTextUIDsCheckBox_Tooltip := LANGuaShowTextUIDsCheckBox_Tooltip; LANGmiNewTab_Caption := LANGuamiNewTab_Caption; LANGFilePopupMenu_Properties := LANGuaFilePopupMenu_Properties; LANGCommandEntry_Tooltip := LANGuaCommandEntry_Tooltip; LANGmiFiles_Caption := LANGuamiFiles_Caption; LANGPasswordButton_Tooltip := LANGuaPasswordButton_Tooltip; LANGHandleRunFromArchive_Bytes := LANGuaHandleRunFromArchive_Bytes; LANGHandleRunFromArchive_FileTypeDesc_Unknown := LANGuaHandleRunFromArchive_FileTypeDesc_Unknown; LANGHandleRunFromArchive_NotAssociated := LANGuaHandleRunFromArchive_NotAssociated; LANGHandleRunFromArchive_SelfExecutable := LANGuaHandleRunFromArchive_SelfExecutable; LANGHandleRunFromArchive_CouldntCreateTemporaryDirectory := LANGuaHandleRunFromArchive_CouldntCreateTemporaryDirectory; LANGFRunFromVFS_Caption := LANGuaFRunFromVFS_Caption; LANGFRunFromVFS_TitleLabel := LANGuaFRunFromVFS_TitleLabel; LANGFRunFromVFS_FileNameLabel := LANGuaFRunFromVFS_FileNameLabel; LANGFRunFromVFS_FileTypeLabel := LANGuaFRunFromVFS_FileTypeLabel; LANGFRunFromVFS_SizeLabel := LANGuaFRunFromVFS_SizeLabel; LANGFRunFromVFS_PackedSizeLabel := LANGuaFRunFromVFS_PackedSizeLabel; LANGFRunFromVFS_DateLabel := LANGuaFRunFromVFS_DateLabel; LANGFRunFromVFS_InfoLabel := LANGuaFRunFromVFS_InfoLabel; LANGFRunFromVFS_OpensWithLabel := LANGuaFRunFromVFS_OpensWithLabel; LANGFRunFromVFS_ExecuteButton := LANGuaFRunFromVFS_ExecuteButton; LANGFRunFromVFS_ExecuteAllButton := LANGuaFRunFromVFS_ExecuteAllButton; LANGFSetPassword_Caption := LANGuaFSetPassword_Caption; LANGFSetPassword_Label1_Caption := LANGuaFSetPassword_Label1_Caption; LANGFSetPassword_Label2_Caption := LANGuaFSetPassword_Label2_Caption; LANGFSetPassword_ShowPasswordCheckButton := LANGuaFSetPassword_ShowPasswordCheckButton; LANGCopyFileNamesToClipboard := LANGuaCopyFileNamesToClipboard; LANGCopyFullPathNamesToClipboard := LANGuaCopyFullPathNamesToClipboard; LANGCopyPathToClipboard := LANGuaCopyPathToClipboard; LANGPreferences_DateFormatLabel_Caption := LANGuaPreferences_DateFormatLabel_Caption; LANGPreferences_System := LANGuaPreferences_System; LANGPreferences_Custom := LANGuaPreferences_Custom; LANGPreferences_CustomDateFormatEntry_Tooltip := LANGuaPreferences_CustomDateFormatEntry_Tooltip; LANGPreferences_TimeFormatLabel_Caption := LANGuaPreferences_TimeFormatLabel_Caption; LANGPreferences_CustomTimeFormatEntry_Tooltip := LANGuaPreferences_CustomTimeFormatEntry_Tooltip; LANGPreferences_DateTimeFormatLabel_Caption := LANGuaPreferences_DateTimeFormatLabel_Caption; LANGPreferences_QuickRenameSkipExtCheckBox := LANGuaPreferences_QuickRenameSkipExtCheckBox; LANGPreferences_QuickRenameSkipExtCheckBox_Tooltip := LANGuaPreferences_QuickRenameSkipExtCheckBox_Tooltip; LANGPreferences_SortDirectoriesLikeFilesCheckBox := LANGuaPreferences_SortDirectoriesLikeFilesCheckBox; LANGPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip := LANGuaPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip; LANGPreferences_QuickSearchLabel_Caption := LANGuaPreferences_QuickSearchLabel_Caption; LANGPreferences_QuickSearchOptionMenu_Tooltip := LANGuaPreferences_QuickSearchOptionMenu_Tooltip; LANGPreferences_QuickSearch_Option1 := LANGuaPreferences_QuickSearch_Option1; LANGPreferences_QuickSearch_Option2 := LANGuaPreferences_QuickSearch_Option2; LANGPreferences_QuickSearch_Option3 := LANGuaPreferences_QuickSearch_Option3; LANGPreferences_QuickSearch_Option4 := LANGuaPreferences_QuickSearch_Option4; LANGPreferences_TempPathLabel_Caption := LANGuaPreferences_TempPathLabel_Caption; LANGPreferences_VFSTempPathLabel_Caption := LANGuaPreferences_VFSTempPathLabel_Caption; LANGPreferences_VFSTempPathEntry_Tooltip := LANGuaPreferences_VFSTempPathEntry_Tooltip; LANGPreferences_RightClickSelectCheckBox := LANGuaPreferences_RightClickSelectCheckBox; LANGPreferences_RightClickSelectCheckBox_Tooltip := LANGuaPreferences_RightClickSelectCheckBox_Tooltip; LANGGtkMountOperation_ConnectAnonymously := LANGuaGtkMountOperation_ConnectAnonymously; LANGGtkMountOperation_ConnectAsUser := LANGuaGtkMountOperation_ConnectAsUser; LANGGtkMountOperation_Username := LANGuaGtkMountOperation_Username; LANGGtkMountOperation_Domain := LANGuaGtkMountOperation_Domain; LANGGtkMountOperation_Password := LANGuaGtkMountOperation_Password; LANGGtkMountOperation_DoNotSavePassword := LANGuaGtkMountOperation_DoNotSavePassword; LANGGtkMountOperation_ForgetPasswordImmediately := LANGuaGtkMountOperation_ForgetPasswordImmediately; LANGGtkMountOperation_RememberPasswordUntilYouLogout := LANGuaGtkMountOperation_RememberPasswordUntilYouLogout; LANGGtkMountOperation_SavePasswordInConnectionManager := LANGuaGtkMountOperation_SavePasswordInConnectionManager; LANGGtkMountOperation_RememberForever := LANGuaGtkMountOperation_RememberForever; LANGFSymlink_RelativePath := LANGuaFSymlink_RelativePath; LANGFConnectionManager_DuplicateButton_Caption := LANGuaFConnectionManager_DuplicateButton_Caption; LANGFConnectionManager_DuplicateButton_Tooltip := LANGuaFConnectionManager_DuplicateButton_Tooltip; LANGFConnectionManager_DoNotSavePasswordsCheckBox_Label := LANGuaFConnectionManager_DoNotSavePasswordsCheckBox_Label; LANGFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip := LANGuaFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip; LANGFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label := LANGuaFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label; LANGFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip := LANGuaFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip; LANGFConnectionManager_DuplicateMenuItem_Caption := LANGuaFConnectionManager_DuplicateMenuItem_Caption; LANGFQuickConnect_Caption := LANGuaFQuickConnect_Caption; LANGFQuickConnect_TitleLabel_Caption := LANGuaFQuickConnect_TitleLabel_Caption; LANGFQuickConnect_ConnectToURILabel_Caption := LANGuaFQuickConnect_ConnectToURILabel_Caption; LANGLinkToS := LANGuaLinkToS; LANGOpenDirectoryInBackgroundTab := LANGuaOpenDirectoryInBackgroundTab; LANGTheActiveConnectionHasNotBeenSaved := LANGuaTheActiveConnectionHasNotBeenSaved; LANGTheArchiveIsEncryptedAndRequiresPassword := LANGuaTheArchiveIsEncryptedAndRequiresPassword; end; initialization AddTranslation('uk_UA', @SetTranslation); AddTranslation('uk_UA.utf8', @SetTranslation); AddTranslation('UA', @SetTranslation); AddTranslation('uk', @SetTranslation); end. tuxcmd-0.6.70+dfsg/translations/UTranslation_FR.pas0000644000175000017500000025425011300022643021304 0ustar salvisalvi(* Tux Commander - UTranslation_FR - French Localization constants Copyright (C) 2004 by Marie-Agnes Pauchet-Le Hericy 2007 by Stanislas Zeller 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UTranslation_FR; interface implementation uses ULocale; const LANGfrF2Button_Caption = 'F2 - Renommer'; LANGfrF3Button_Caption = 'F3 - Voir'; LANGfrF4Button_Caption = 'F4 - Editer'; LANGfrF5Button_Caption = 'F5 - Copier'; LANGfrF6Button_Caption = 'F6 - Déplacer'; LANGfrF7Button_Caption = 'F7 - Créer Rép.'; LANGfrF8Button_Caption = 'F8 - Supprimer'; LANGfrmnuFile_Caption = '_Fichier'; LANGfrmnuMark_Caption = '_Sélection'; LANGfrmnuCommands_Caption = '_Commandes'; LANGfrmnuHelp_Caption = '_Aide'; LANGfrmiExit_Caption = '_Quitter'; LANGfrmiSelectGroup_Caption = 'Sélectionner le _Groupe...'; LANGfrmiUnselectGroup_Caption = '_Désélectionner le groupe...'; LANGfrmiSelectAll_Caption = '_Sélectionner Tout'; LANGfrmiUnselectAll_Caption = 'Désélectionner _Tout'; LANGfrmiInvertSelection_Caption = '_Inverser la sélection'; LANGfrmiRefresh_Caption = '_Rafraîchir'; LANGfrmiAbout_Caption = '_A propos...'; LANGfrColumn1_Caption = 'Nom'; LANGfrColumn2_Caption = 'Ext'; LANGfrColumn3_Caption = 'Taille'; LANGfrColumn4_Caption = 'Date'; LANGfrColumn5_Caption = 'Attr'; LANGfrExpandSelection = 'Etendre la sélection'; LANGfrShrinkSelection = 'Réduire la sélection'; LANGfrNoMatchesFound = 'Aucune correspondance trouvée'; LANGfrNoFilesSelected = 'Pas de fichier selectionné!'; LANGfrSelectedFilesDirectories = '%d fichier(s)/répertoire(s) sélectionné(s)'; LANGfrDirectoryS = 'répertoire %s'; LANGfrFileS = 'fichier %s'; LANGfrDoYouReallyWantToDeleteTheS = 'Voulez-vous vraiment supprimer le %s ?'; LANGfrDoYouReallyWantToDeleteTheSS = 'Voulez-vous vraiment supprimer %s ?'#10'%s'; LANGfrCopyFiles = 'Copier les fichiers'; LANGfrMoveRenameFiles = 'Déplacer/Renommer les fichiers'; LANGfrCopyDFileDirectoriesTo = 'Copier %d les fichiers/répertoires vers'; LANGfrMoveRenameDFileDirectoriesTo = 'Déplacer/Renommer %d fichier(s)/répertoire(s) vers'; LANGfrCopySC = 'Copier :'; LANGfrMoveRenameSC = 'Déplacer/Renommer :'; LANGfrQuickFind = ' Recherche rapide '; LANGfrAboutString = 'Tux Commander'#10'Version %s'#10'date de fabrication : %s'#10#10'Copyright (c) 2008 Tomas Bzatek'#10'Adresse de courriel : tbzatek@users.sourceforge.net'#10'site internet: http://tuxcmd.sourceforge.net/'; LANGfrAboutStringGnome = 'version %s'#10'date de fabrication : %s'#10'site internet : http ://tuxcmd.sourceforge.net/'; LANGfrDiskStatFmt = '%s de %s de libre'; LANGfrDiskStatVolNameFmt = '[%s] %s de %s de libre'; LANGfrStatusLineFmt = '%s de %s dans %d de %d fichiers sélectionnés'; LANGfrPanelStrings : array[boolean] of string = ('droite', 'gauche'); LANGfrDIR = ''; LANGfrErrorGettingListingForSPanel = 'liste impossible à obtenir dans le volet de %s :'#10' %s'#10#10'chemin = ''%s'''; LANGfrErrorGettingListingForSPanelNoPath = 'liste impossible à obtenir dans le volet de %s :'#10' %s'; LANGfrErrorCreatingNewDirectorySInSPanel = 'Impossible de créer un nouveau répertoire dans le volet de ''%s'' %s :'#10' %s'; LANGfrErrorCreatingNewDirectorySInSPanelNoPath = 'Impossible de créer un nouveau répertoire dans le volet de %s :'#10' %s'; LANGfrTheFileDirectory = 'Le fichier/répertoire'; LANGfrCouldNotBeDeleted = 'n''a pas pu être supprimé'; LANGfrCouldNotBeDeletedS = 'n''a pas pu être supprimé : %s'; LANGfrUserCancelled = 'Annulation par l''utilisateur!'; LANGfrTheDirectorySIsNotEmpty = 'Le répertoire %s n''est pas vide!'; LANGfrCannotCopyFile = 'le fichier ne peut pas être copié'; LANGfrCopyError = 'Erreur de copie'; LANGfrMoveError = 'Erreur de déplacement'; LANGfrOverwriteS = 'Ecraser : %s'; LANGfrWithFileS = 'Avec fichier : %s'; LANGfrOvewriteSBytesS = '%s octets, %s'; LANGfrTheFile = 'Le Fichier'; LANGfrCopy = 'Copier'; LANGfrMove = 'Déplacer'; LANGfrTheDirectory = 'Le répertoire'; LANGfrTheSymbolicLink = 'Le lien symbolique'; LANGfrCannotMoveFile = 'Le fichier ne peut être déplacé'; LANGfrCouldNotBeCreated = 'ne peut pas être créé'; LANGfrCouldNotBeCreatedS = 'ne peut pas être créé : %s'; LANGfrFromS = 'De : %s'; LANGfrToS = 'A: %s'; LANGfrCannotCopyFileToItself = 'Impossible de copier le fichier sur lui-même'; LANGfrMemoryAllocationFailed = 'Echec d''allocation de mémoire :'; LANGfrCannotOpenSourceFile = 'Le fichier source n''a pas pu être ouvert'; LANGfrCannotOpenDestinationFile = 'Le fichier cible n''a pas pu être ouvert'; LANGfrCannotCloseDestinationFile = 'Le fichier cible n''a pas pu être fermé'; LANGfrCannotCloseSourceFile = 'Le fichier source n''a pas pu être ouvert'; LANGfrCannotReadFromSourceFile = 'Le fichier source n''a pas pu être lu'; LANGfrCannotWriteToDestinationFile = 'on ne peut pas écrire dans le fichier cible'; LANGfrUnknownException = 'Exception Inconnue'; LANGfrNoAccess = 'Pas d''accès'; LANGfrUnknownError = 'Erreur inconnue'; LANGfrCreateANewDirectory = 'Créer un nouveau répertoire'; LANGfrEnterDirectoryName = 'Entrer le nom du _répertoire :'; LANGfrOverwriteQuestion = 'Confirmation de suppression'; LANGfrOverwriteButton_Caption = '_Ecrasement'; LANGfrOverwriteAllButton_Caption = 'Tout _écraser'; LANGfrSkipButton_Caption = '_Sauter'; LANGfrOverwriteAllOlderButton_Caption = 'Ecraser tous les anciens'; LANGfrSkipAllButton_Caption = 'Tout sauter'; LANGfrRenameButton_Caption = '_Renommer'; LANGfrAppendButton_Caption = 'A_jouter'; LANGfrRename = 'Renommer'; LANGfrRenameFile = 'Renommer le fichier ''%s'' en'; LANGfrIgnoreButton_Caption = '_Ignorer'; LANGfrProgress = 'Progression'; LANGfrCancel = '_Annuler'; LANGfrDelete = 'Supprimer :'; LANGfrSpecifyFileType = '_Spécifier le type de fichier :'; LANGfrRemoveDirectory = 'Supprimer le répertoire'; LANGfrDoYouWantToDeleteItWithAllItsFilesAndSubdirectories = 'Voulez-vous le supprimer ainsi que tous ses fichiers et sous-répertoires?'; LANGfrRetry = '_Réessayer'; LANGfrDeleteButton_Caption = '_Supprimer'; LANGfrAll = '_Tout'; LANGfrCopyFilesSC = 'Copier les fichiers :'; LANGfrAppendQuestion = 'Etes-vous sûr de vouloir ajouter le fichier ''%s'' à ''%s''?'; LANGfrPreparingList = 'Préparation de la liste...'; LANGfrYouMustSelectAValidFile = 'Vous devez sélectionner un fichier valide!'; LANGfrmiVerifyChecksums = '_Vérifier les sommes de contrôle'; LANGfrVerifyChecksumsCaption = 'Vérifier les sommes de contrôle'; LANGfrCheckButtonCaptionCheck = '_Contrôler'; LANGfrCheckButtonCaptionStop = '_Arrêter'; LANGfrFileListTooltip = '[?] - Non contrôlé'#10'[OK] - Somme de contrôle OK'#10'[FAUX] - Somme de contrôle FAUX'#10'[N/A] - Fichier indisponible'; LANGfrFilenameColumnCaption = 'nom de fichier'; LANGfrTheFileSYouAreTryingToOpenIsQuiteBig = 'Le fichier ''%s'' que vous essayez d''ouvrir est assez gros (%s octets). Sa somme de contrôle est peut être invalide.'#10#10'Voulez-vous tout de même le charger?'; LANGfrAnErrorOccuredWhileInitializingMemoryBlock = 'Une erreur est survenue à l''initialisation du bloc mémoire. Fermez des fichiers avant de réessayer.'; LANGfrAnErrorOccuredWhileOpeningFileSS = 'Une erreur est survenue à l''ouverture du fichier ''%s'' :'#10' %s'; LANGfrAnErrorOccuredWhileReadingFileSS = 'Une erreur est survenue à la lecture du fichier ''%s'' :'#10' %s'; LANGfrChecksumNotChecked = 'Statut : Non contrôlé'; LANGfrChecksumChecking = 'Statut : contrôle en cours...'; LANGfrChecksumInterrupted = 'Statut : Interrompu'; LANGfrChecksumDOK = 'Statut : %d%% OK'; LANGfrmiCreateChecksumsCaption = '_Créer les sommes de contrôle...'; LANGfrYouMustSelectAtLeastOneFileToCalculateChecksum = 'Vous devez sélectionner au moins un fichier pour pouvoir calculer la somme de contrôle!'; LANGfrCreateChecksumsCaption = 'Créer les sommes de contrôle'; LANGfrCCHKSUMPage1Text = 'Vous allez créer les sommes de contrôle pour'#10'les fichiers sélectionnés. Si vous n''avez pas sélectionné'#10'tous les fichiers souhaités, fermez cet assistant et'#10'sélectionnez d''autres fichiers'; LANGfrCCHKSUMPage4Text = 'tout est prêt pour effectuer les sommes de contrôle pour vos'#10'fichiers sélectionnés. Ceci peut prendre quelques minutes.'#10'Cliquez sur suivant pour continuer.'; LANGfrCCHKSUMPage6Text = 'Il y a eu des erreurs dans le calcul des sommes de contrôle :'; LANGfrCCHKSUMPage7Text = 'La création de la somme de contrôle est terminée et'#10'vos fichiers sont prêts.'#10#10'Cliquer sur "Terminé" pour sortir.'; LANGfrCCHKSUMPage1Title = 'Préparer les fichiers pour le calcul des sommes de contrôle'; LANGfrCCHKSUMPage2Title = 'Sélectionner le type de somme de contrôle'; LANGfrCCHKSUMPage3Title = 'Choisir le nom de fichier'; LANGfrCCHKSUMPage4Title = 'prêt à contrôler'; LANGfrCCHKSUMPage5Title = 'En cours...'; LANGfrCCHKSUMPage6Title = 'Erreur!'; LANGfrCCHKSUMPage7Title = 'Terminé'; LANGfrCCHKSUMSFVFile = 'Fichier SFV '; LANGfrCCHKSUMMD5sumFile = 'Fichier MD5sum'; LANGfrCCHKSUMFileName = '_Nom de fichier :'; LANGfrCCHKSUMCreateSeparateChecksumFiles = 'Créer des fichiers séparés de sommes de contrôle'; LANGfrCCHKSUMNowProcessingFileS = 'En cours : %s'; LANGfrCCHKSUMFinishCaption = '_Terminé'; LANGfrCCHKSUMAreYouSureYouWantToAbortTheProcessing = 'Etes-vous sûr de vouloir annuler le processus?'; LANGfrCCHKSUMAnErrorOccuredWhileOpeningFileSS = 'Une erreur est survenue lors de l''ouverture du fichier ''%s'' : %s'#10; LANGfrCCHKSUMAnErrorOccuredWhileReadingFileSS = 'Une erreur est survenue lors de la lecture du fichier ''%s'' : %s'#10; LANGfrCCHKSUMAnErrorOccuredWhileWritingFileSS = 'Une erreur est survenue lors de l''écriture du fichier ''%s'' : %s'#10; LANGfrAnErrorOccuredWhileWritingFileSS = 'Une erreur est survenue lors de l''écriture du fichier ''%s'' :'#10' %s'; LANGfrTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt = 'Le fichier cible ''%s'' existe déjà. Voulez-vous l''écraser?'; LANGfrTheTargetFileSCannotBeRemovedS = 'Le fichier cible ''%s''ne peut-être supprimé : %s'; LANGfrMergeCaption = 'Fusionner'; LANGfrPleaseInsertNextDiskOrGiveDifferentLocation = 'Veuillez insérer une nouvelle disquette ou préciser une autre destination :'; LANGfrMergeOfSSucceeded = 'Fusion de ''%s'' réussie (Somme de contrôle CRC OK).'; LANGfrWarningCreatedFileFailsCRCCheck = 'Attention : Le fichier créé ne répond pas au contrôle CRC !'; LANGfrMergeOfSSucceeded_NoCRCFileAvailable = 'Fusion de ''%s'' réussie (pas de fichier CRC disponible).'; LANGfrMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory = 'Fusionner ''%s'' et tous les fichiers avec noms d''ordre croissant dans le répertoire suivant:'; LANGfrMergeSC = 'Fusionner :'; LANGfrmiSplitFileCaption = '_Découper fichier...'; LANGfrmiMergeFilesCaption = '_Fusionner fichiers...'; LANGfrSplitTheFileSToDirectory = '_Découper le fichier ''%s'' dans le répertoire :'; LANGfrSplitSC = 'Découper :'; LANGfrSplitFile = 'Découper le fichier'; LANGfrBytesPerFile = '_Octets par fichier :'; LANGfrAutomatic = 'Automatique'; LANGfrDeleteFilesOnTargetDisk = '_Supprimer les fichiers sur la cible (pour les supports amovibles)'; LANGfrSplitCaption = 'Découper'; LANGfrCannotOpenFileS = 'Le fichier ne peut être ouvert ''%s'''; LANGfrCannotSplitTheFileToMoreThan999Parts = 'Le fichier ne peut être découpé en plus de 999 parties!'; LANGfrThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem = 'Il y a des fichiers dans le répertoire cible :'#10'%s'#10'Voulez-vous les supprimer?'; LANGfrThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem = 'Il y a %d fichiers dans le répertoire cible. Voulez-vous les supprimer?'; LANGfrAnErrorOccuredWhileOperationS = 'Une erreur est survenue pendant l''opération : %s'; LANGfrSplitOfSSucceeded = 'Le découpage ''%s'' a réussi.'; LANGfrSplitOfSFailed = 'Le découpage''%s'' a échoué!'; LANGfrmnuShow_Caption = 'Mon_trer'; LANGfrmiShowDotFiles_Caption = '_Montrer les fichiers .dot '; LANGfrTheFileYouAreTryingToOpenIsQuiteBig = 'Le fichier que vous essayez d''ouvrir est assez gros. Le charger dans une application externe (par ex. gedit) peut ralentir le système.'#10'Voulez-vous continuer?'; LANGfrCannotExecuteSPleaseCheckTheConfiguration = 'Exécution impossible ''%s''. Veuillez vérifier la configuration ou définir correctement le type de fichier associé.'; LANGfrEdit = 'Editer'; LANGfrEnterFilenameToEdit = '_Entrer le nom de fichier à éditer :'; LANGfrmnuSettings_Caption = 'Co_nfiguration'; LANGfrmiFileTypes_Caption = '_Types de fichiers...'; LANGfrThereIsNoApplicationAssociatedWithS = 'Il n''y a pas d''application associée avec "%s".'#10#10'Vous pouvez configurer Tux Commander pour associer les applications avec les différents types de fichier. Voulez-vous associer une application avec ce type maintenant ?'; LANGfrErrorExecutingCommand = 'Erreur en éxécutant la commande !'; LANGfrEditFileTypesCaption = 'Editer les types de fichier'; LANGfrTitleLabel_Caption = 'Configuration des types de fichier'; LANGfrExtensionsColumn = 'Extensions'; LANGfrDescriptionColumn = 'Description'; LANGfrFileTypesList = 'Liste des types de fichier'; LANGfrActionName = 'Nom action'; LANGfrCommand = 'Commande'; LANGfrSetDefaultActionButton_Caption = '_Définir comme par défaut'; LANGfrRunInTerminalCheckBox_Caption = 'Exécuter dans un terminal'; LANGfrAutodetectCheckBox_Caption = 'Autodétecter _l''application GUI'; LANGfrBrowseButton_Caption = 'N_aviguer...'; LANGfrCommandLabel_Caption = 'Co_mmande :'; LANGfrDescriptionLabel_Caption = 'D_escription :'; LANGfrFNameExtLabel_Caption = 'Ajouter extension :'; LANGfrNotebookPageExtensions = 'type de fichier'; LANGfrNotebookPageActions = 'Actions'; LANGfrDefault = ' (par defaut)'; LANGfrCannotSaveFileTypeAssociationsBecauseOtherProcess = 'Les associations d''application avec les types de fichier ne peuvent être sauvagardées, parce que qu''une modification de ce fichier a entre temps été faite par un autre processus .'; LANGfrDefaultColor = 'couleur par défaut'; LANGfrIcon = '_Icône :'; LANGfrBrowseForIcon = 'Rechercher une icône'; LANGfrSelectFileTypeColor = 'Sélectionner la couleur du type de fichier'; LANGfrColor = 'Cou_leur :'; LANGfrmiChangePermissions_Caption = 'Changer les _autorisations...'; LANGfrmiChangeOwner_Caption = 'Changer le _propriétaire/Groupe...'; LANGfrmiCreateSymlink_Caption = 'Créer un _lien Symbolique...'; LANGfrmiEditSymlink_Caption = '_Editer un lien Symbolique...'; LANGfrChmodProgress = 'Changer les autorisations :'; LANGfrChownProgress = 'Changer le propriétaire :'; LANGfrYouMustSelectAValidSymbolicLink = 'Vous devez sélectionner un lien symbolique valide!'; LANGfrPopupRunS = 'E_xecuter %s'; LANGfrPopupOpenS = 'Ouvrir %s'; LANGfrPopupGoUp = 'Remonter'; LANGfrPopupOpenWithS = 'Ouvrir avec %s'; LANGfrPopupDefault = ' (par défaut)'; LANGfrPopupOpenWith = 'Ouvrir avec...'; LANGfrPopupViewFile = 'Afficher le fichier'; LANGfrPopupEditFile = 'Ed_iter le fichier'; LANGfrPopupMakeSymlink = 'Créer un lien symbolique'; LANGfrPopupRename = '_Renommer'; LANGfrPopupDelete = '_Supprimer'; LANGfrDialogChangePermissions = 'Changer les autorisations'; LANGfrCouldNotBeChmoddedS = 'Ne peut pas changer les autorisations : %s'; LANGfrDialogChangeOwner = 'Changer le propriétaire'; LANGfrCouldNotBeChownedS = 'Ne peut pas changer le propriétaire : %s'; LANGfrDialogMakeSymlink = 'Créer le lien symbolique'; LANGfrDialogEditSymlink = 'Editer le lien symbolique'; LANGfrFEditSymlink_Caption = 'Editer le lien symbolique'; LANGfrFEditSymlink_SymbolicLinkFilename = 'Nom du lien symbolique :'; LANGfrFEditSymlink_SymbolicLinkPointsTo = 'Le lien symbolique pointe vers :'; LANGfrFChmod_Caption = 'Autorisations d''accès'; LANGfrFChmod_PermissionFrame = 'Autorisations'; LANGfrFChmod_FileFrame = 'Fichier'; LANGfrFChmod_ApplyRecursivelyFor = 'Appliquer récursivement'; LANGfrFChmod_miAllFiles = 'Tous les fichiers et répertoires'; LANGfrFChmod_miDirectories = 'Répertoires seulement'; LANGfrFChmod_OctalLabel = '_Octal :'; LANGfrFChmod_SUID = 'SUID - Exécution sous l''identifiant du propriétaire'; LANGfrFChmod_SGID = 'SGID - Exécution sous l''identifiant de groupe du propriétaire'; LANGfrFChmod_Sticky = 'Sticky bit'; LANGfrFChmod_RUSR = 'RUSR - Lecture par le propriétaire'; LANGfrFChmod_WUSR = 'WUSR - Ecriture par le propriétaire'; LANGfrFChmod_XUSR = 'XUSR - Exécution/recherche par le propriétaire'; LANGfrFChmod_RGRP = 'RGRP - Lecture par le groupe'; LANGfrFChmod_WGRP = 'WGRP - Ecriture par le groupe'; LANGfrFChmod_XGRP = 'XGRP - Exécution/recherche par le groupe'; LANGfrFChmod_ROTH = 'ROTH - Lecture par les autres'; LANGfrFChmod_WOTH = 'WOTH - Ecriture par les autres'; LANGfrFChmod_XOTH = 'XOTH - Exécution/recherche par les autres'; LANGfrFChmod_TextLabel = 'Texte : %s'; LANGfrFChmod_FileLabel = 'Fichier : %s'#10'Texte : %s'#10 + 'Octal : %d'#10'Propriétaire : %s'#10 + 'Groupe : %s'; LANGfrFChown_Caption = 'Changer le propriétaire/groupe'; LANGfrFChown_OwnerFrame = 'Nom d''utilisateur'; LANGfrFChown_GroupFrame = 'Nom de groupe'; LANGfrFChown_FileFrame = 'Fichier'; LANGfrFChown_ApplyRecursively = 'Appliquer récursivement'; LANGfrFSymlink_Caption = 'Créer le lien symbolique'; LANGfrFSymlink_ExistingFilename = 'Nom du fichier existant (vers lequel va pointer le lien symbolique) :'; LANGfrFSymlink_SymlinkFilename = 'Nom du lien symbolique :'; LANGfrmnuBookmarks_Caption = '_Marque-pages'; LANGfrmiAddBookmark_Caption = 'Ajouter un marque-page'; LANGfrmiEditBookmarks_Caption = 'Editer les marque-pages'; LANGfrBookmarkPopupDelete_Caption = 'Supprimer'; LANGfrmiPreferences_Caption = '_Préférences...'; LANGfrTheCurrentDirectoryAlreadyExistsInTheBookmarksList = 'le répertoire courant existe déjà dans la liste des marque-pages'; LANGfrSomeOtherInstanceChanged = 'une autre instance de Tux Commander a déjà modifié la configuration. Voulez-vous appliquer les nouveaux paramètres?'#10#10'Attention : si vous cliquez sur NON maintenant, la configuration sera écrasée pour cette instance'' sortie!'; LANGfrPreferences_Caption = 'Préférences'; LANGfrPreferences_TitleLabel_Caption = ' Préférences de l''application'; LANGfrPreferences_GeneralPage = 'Général'; LANGfrPreferences_FontsPage = 'Polices'; LANGfrPreferences_ColorsPage = 'Couleurs'; LANGfrPreferences_RowHeight = 'Hauteur de ligne :'; LANGfrPreferences_NumHistoryItems = 'Eléments d''historique de la ligne de commande :'; LANGfrPreferences_Default = 'par défaut'; LANGfrPreferences_ClearReadonlyAttribute = 'Effacer l''attribut de lecture seule lors d''une copie à partir d''un CD-ROM'; LANGfrPreferences_DisableMouseRenaming = 'Désactiver renommer avec la souris'; LANGfrPreferences_ShowFiletypeIconsInList = 'Montrer les icônes de type de fichier'; LANGfrPreferences_ExternalAppsLabel = ' programmes externes'; LANGfrPreferences_Viewer = '_Visualiseur :'; LANGfrPreferences_Editor = '_Editeur :'; LANGfrPreferences_Terminal = '_Terminal :'; LANGfrPreferences_ListFont = 'Liste de Polices :'; LANGfrPreferences_Change = 'Changer...'; LANGfrPreferences_UseDefaultFont = 'Utiliser _la fonte par défaut'; LANGfrPreferences_Foreground = 'Avant-plan'; LANGfrPreferences_Background = 'Arrière-plan'; LANGfrPreferences_NormalItem = 'Elément Normal :'; LANGfrPreferences_SetToDefaultToUseGTKThemeColors = 'Utiliser par défaut le thème GTK'; LANGfrPreferences_Cursor = 'Curseur :'; LANGfrPreferences_InactiveItem = 'Elément inactif :'; LANGfrPreferences_SelectedItem = 'Elément sélectionné :'; LANGfrPreferences_LinkItem = 'liens symboliques :'; LANGfrPreferences_LinkItemHint = 'afficher par défaut les liens symboliques dans la couleur des éléments normaux'; LANGfrPreferences_DotFileItem = 'Fichiers cachés :'; LANGfrPreferences_DotFileItemHint = 'Afficher par défaut les fichiers cachés dans la couleur des éléments normaux'; LANGfrPreferences_BrowseForApplication = 'Rechercher l''application'; LANGfrPreferences_DefaultS = 'par défaut : %s'; LANGfrPreferences_SelectFont = 'Sélectionner la fonte'; (*************** STRINGS ADDED TO v0.4.101 **********************************************************************************) LANGfrBookmarkButton_Tooltip = 'Afficher les marque-pages'; LANGfrUpButton_Tooltip = 'Aller au répertoire parent'; LANGfrRootButton_Tooltip = 'Aller au répertoire racine (/)'; LANGfrHomeButton_Tooltip = 'Aller au répertoire home (/home/user)'; LANGfrLeftEqualButton_Tooltip = 'Afficher le même répertoire dans le volet de droite'; LANGfrRightEqualButton_Tooltip = 'Afficher le même répertoire dans le volet de gauche'; LANGfrmiShowDirectorySizes_Caption = 'Afficher la taille des répertoires'; LANGfrmiTargetSource_Caption = 'Cible = Source'; LANGfrFileTypeDirectory = 'Répertoire'; LANGfrFileTypeFile = 'Fichier'; LANGfrFileTypeMetafile = 'Ceci est une méta-donnée générale'; LANGfrPreferencesPanelsPage = 'Volets'; LANGfrPreferencesApplicationsPage = 'Applications'; LANGfrPreferencesExperimentalPage = 'Expérimental'; LANGfrPreferencesSelectAllDirectoriesCheckBox_Caption = '"Sélectionner tout" inclut les répertoires'; LANGfrPreferencesNewStyleAltOCheckBox_Caption = '_New style Alt+O'; LANGfrPreferencesNewStyleAltOCheckBox_Tooltip = 'Rester dans le même répertoire si vous clonez ce répertoire dans le panel opposé en pressant Ctrl/Alt+O'; LANGfrPreferencesShowFuncButtonsCheckBox_Caption = 'Afficher les boutons de touches de fonction'; LANGfrPreferencesSizeFormatLabel_Caption = 'Format de taille:'; LANGfrPreferencesmiSizeFormat1 = 'Système'; LANGfrPreferencesmiSizeFormat6 = 'Groupé'; LANGfrPreferencesAutodetectXApp = 'Autodétecter X app'; LANGfrPreferencesAlwaysRunInTerminal = 'Toujours exécuter dans un terminal'; LANGfrPreferencesNeverRunInTerminal = 'Ne jamais exécuter dans un terminal'; LANGfrPreferencesCmdLineBehaviourLabel_Caption = 'Exécution à partir d''une ligne de commande:'; LANGfrPreferencesFeatures = 'Fonctionnalités'; LANGfrPreferencesDisableMouseRename_Tooltip = 'Vous pouvez utiliser Shift+F6 pour faire un renommage rapide'; LANGfrPreferencesDisableFileTipsCheckBox_Caption = 'Désactiver les infobulles pour les fichiers'; LANGfrPreferencesDisableFileTipsCheckBox_Tooltip = 'Ne pas afficher l''infobulle si le texte dans la colonne est tronqué'; LANGfrPreferencesShow = 'Afficher'; LANGfrPreferencesDirsInBoldCheckBox_Caption = 'Répertoires en gras'; LANGfrPreferencesDisableDirectoryBracketsCheckBox_Caption = 'Supprimer les crochets pour les répertoires'; LANGfrPreferencesOctalPermissionsCheckBox_Caption = 'Afficher les autorisations en octal'; LANGfrPreferencesOctalPermissionsCheckBox_Tooltip = 'Afficher les autorisations des fichiers/répertoires sous forme de nombre au lieu d''un texte(-rw-rw-rw-)'; LANGfrPreferencesMovement = 'Déplacement'; LANGfrPreferencesLynxLikeMotionCheckBox_Caption = 'Déplacement style Lynx'; LANGfrPreferencesInsertMovesDownCheckBox_Caption = 'Déplacement vers le bas après '; LANGfrPreferencesSpaceMovesDownCheckBox_Caption = 'Déplacement vers le bas après '; LANGfrPreferencesViewer = 'Visionneuse'; LANGfrPreferencesCommandSC = 'Commande:'; LANGfrPreferencesUseInternalViewer = 'Utiliser la visionneuse interne'; LANGfrPreferencesEditor = 'Editeur'; LANGfrPreferencesTerminal = 'Terminal'; LANGfrPreferencesExperimentalFeatures = 'Fonctionnalités expérimentales'; LANGfrPreferencesExperimentalWarningLabel_Caption = 'Attention : Ces fonctionnalités sont en cours de développement et peuvent ne pas fonctionner correctement. Utilisez-les à vos risques et périls!'; LANGfrPreferencesFocusRefreshCheckBox_Caption = 'Rafraîchit la fenêtre qui a le focus'; LANGfrPreferencesFocusRefreshCheckBox_Tooltip = 'Le rafraîchissement du volet est très lent'; LANGfrPreferencesWMCompatModeCheckBox_Caption = 'Mode de compatibilité _WM '; LANGfrPreferencesWMCompatModeCheckBox_Tooltip = 'A utiliser si vous avez des problèmes de gestionnaire de fenêtres (par exemple si IceWM ne maximise pas les fenêtres correctement)'; LANGfrPreferencesCompatUseLibcSystemCheckBox_Caption = 'Utiliser libc _system() pour l''exécution de programmes'; LANGfrPreferencesCompatUseLibcSystemCheckBox_Tooltip = 'A utiliser en cas de problèmes de gel ou de crash au lancement d''applications externes'; (*************** STRINGS ADDED TO v0.5.70 **********************************************************************************) LANGfrmiSearchCaption2 = '_Chercher...'; LANGfrmiNoMounterBarCaption = 'Cacher la barre de montage'; LANGfrmiShowOneMounterBarCaption = 'Show _one mounter bar' ; LANGfrmiShowTwoMounterBarCaption = 'Show _two mounter bars' ; LANGfrmnuNetworkCaption = 'Rés_eau'; LANGfrmiConnectionsCaption = '_Connections...'; LANGfrmiOpenConnectionCaption = '_Ouvrir une connection...'; LANGfrmiQuickConnectCaption = 'Connection _rapide...'; LANGfrmnuPluginsCaption = 'Greff_ons'; LANGfrmiTestPluginCaption = '_Tester un greffon'; LANGfrmiMounterSettingsCaption = '_Paramètres de montage...'; LANGfrmiColumnsCaption = 'P_aramètres des panels...'; LANGfrmiSavePositionCaption = '_Sauver la position'; LANGfrmiMountCaption = '_Monter'; LANGfrmiUmountCaption = '_Démonter'; LANGfrmiEjectCaption = '_Ejecter'; LANGfrmiDuplicateTabCaption = 'Dupliquer l''onglet courant'; LANGfrmiCloseTabCaption = 'Fermer l''onglet courant'; LANGfrmiCloseAllTabsCaption = 'Fermer tous les onglets'; LANGfrCannotDetermineDestinationEngine = 'Impossible de déterminer la destination. Vérifiez l''emplacement et réessayez.'; LANGfrCannotLoadFile = 'Impossible de charger le fichier ''%s''. Vérifiez les permissions.'; LANGfrMountPointDevice = 'Point de Montage: %s'#10'Périphérique: %s'; LANGfrMountSC = 'Montage:'; LANGfrNoPluginsFound = 'Aucuns greffons trouvés'; LANGfrPluginAbout = 'A Propos...'; LANGfrCouldntOpenURI = 'Impossible d''ouvrir l''URI spécifié. Please check the consistency of the resource identifier and the access permission.'; LANGfrPluginAboutInside = 'Greffon: %s'#10#10'%s'#10'%s'; LANGfrAreYouSureCloseAllTabs = 'Etes vous sur de vouloir fermer tous les onglets inactifs?'; LANGfrCouldntOpenURIArchive = 'Impossible d''ouvrir l''archive. Please check consistency and access permissions.'; LANGfrThereIsNoModuleAvailable = 'Il n''y a aucuns modules disponibles pouvant charger cette connection'; LANGfrIgnoreError = 'Voulez-vous vraiment ignorer cette erreur? Le fichier source sera ensuite effacé!'; LANGfrErrorMount = 'Erreur détectée pendant le montage du périphérique ''%s'':'#10#10; LANGfrErrorUmount = 'Erreur détectée pendant le démontage du périphérique ''%s'':'#10#10; LANGfrErrorEject = 'Erreur détectée pendant l''éjection du périphérique ''%s'':'#10#10; LANGfrMounterPrefs_Caption = 'Paramètres de montage'; LANGfrMounterPrefs_TitleLabelCaption = 'Paramètres de Montage'; LANGfrMounterPrefs_ListViewFrameCaption = 'Montage'; LANGfrMounterPrefs_MountName = 'Nom de Montage'; LANGfrMounterPrefs_MountPoint = 'Point de Montage'; LANGfrMounterPrefs_Device = 'Périphérique'; LANGfrMounterPrefs_MoveUpButtonTooltip = 'Vers le haut'; LANGfrMounterPrefs_MoveDownButtonTooltip = 'Vers le bas'; LANGfrMounterPrefs_UseFSTabDefaultsCheckBox = 'Utiliser le fichier _fstab par défaut'; LANGfrMounterPrefs_UseFSTabDefaultsCheckBoxTooltip = 'En cochant cette case, la barre de montage sera configurée par défaut avec les entrées trouvées dans le fichier /etc/fstab (fichier de système de montage)'; LANGfrMounterPrefs_ToggleModeCheckBox = 'Les boutons restent en position actif quan_d ils sont montés'; LANGfrMounterPrefs_ToggleModeCheckBoxTooltip = 'Si activé, les boutons de la barre de montage resteront actifs si le périphérique est monté; Un autre click permettra de les démonter (éjecter dans ce cas)'; LANGfrMounterPrefs_PropertiesFrameCaption = 'Propriétés'; LANGfrMounterPrefs_DisplayTextLabelCaption = '_Texte Affiché:'; LANGfrMounterPrefs_MountPointLabelCaption = '_Point de Montage:'; LANGfrMounterPrefs_MountDeviceLabelCaption = 'Périphéri_que:'; LANGfrMounterPrefs_DeviceTypeLabelCaption = 'T_ype:'; LANGfrMounterPrefs_miLocalDiskCaption = 'Disque Dur'; LANGfrMounterPrefs_miRemovableCaption = 'Removable'; LANGfrMounterPrefs_miCDCaption = 'Lecteur CD/DVD'; LANGfrMounterPrefs_miFloppyCaption = 'Lecteur de Disquette'; LANGfrMounterPrefs_miNetworkCaption = 'Réseau'; LANGfrMounterPrefs_MountCommandLabelCaption = '_Commande Montage:'; LANGfrMounterPrefs_UmountCommandLabelCaption = 'C_ommande Démontage:'; LANGfrMounterPrefs_MountCommandEntryTooltip = 'Syntaxe: utiliser %dev pour la substitution du périphérique et %dir pour le point de montage ou ne rien mettre pour le montage par défault'#10'Note: attention aux commandes, Tux Commander peut planter!' + #10'Example: smbmount %dev %dir -o username=netuser,password=somepass'; LANGfrMounterPrefs_UmountCommandEntryTooltip = 'Syntaxe: utiliser %dev pour la substitution du périphérique et %dir pour le point de montage ou ne rien mettre pour le montage par défault'#10'Example: smbumount $dir'; LANGfrMounterPrefs_IconLabelCaption = '_Icone:'; LANGfrConnMgr_Caption = 'Ouvrir une Nouvelle Connection'; LANGfrConnMgr_ConnectButton = 'Co_nnecter'; LANGfrConnMgr_OpenConnection = 'Ouvrir une Connection'; LANGfrConnMgr_NameColumn = 'Nom'; LANGfrConnMgr_URIColumn = 'URI'; LANGfrConnMgr_AddConnectionButtonCaption = '_Ajouter'; LANGfrConnMgr_AddConnectionButtonTooltip = 'Ajouter une nouvelle connection'; LANGfrConnMgr_EditButtonCaption = '_Editer...'; LANGfrConnMgr_EditButtonTooltip = 'Editer la connection sélectionnée'; LANGfrConnMgr_RemoveButtonCaption = '_Supprimer'; LANGfrConnMgr_RemoveButtonTooltip = 'Supprimer la connection sélectionnée'; LANGfrConnMgr_DoYouWantDelete = 'Voulez vous vraiment supprimer cette connection ''%s''?'; LANGfrConnProp_FTP = 'FTP'; LANGfrConnProp_SFTP = 'SFTP (ssh subsystem)'; LANGfrConnProp_SMB = 'Windows (SMB)'; LANGfrConnProp_HTTP = 'WebDAV (HTTP)'; LANGfrConnProp_HTTPS = 'Secure WebDAV (HTTPS)'; LANGfrConnProp_Other = 'Autre (à spécifier dans l''URI)'; LANGfrConnProp_Caption = 'Propriétés de la Connection'; LANGfrConnProp_VFSModule = 'Module _VFS:'; LANGfrConnProp_URI = '_URI:'; LANGfrConnProp_URIEntryTooltip = 'Un URI valable doit contenir un préfixe de service et une adresse serveur'; LANGfrConnProp_DetailedInformations = 'Informations détaillées'; LANGfrConnProp_Name = '_Nom:'; LANGfrConnProp_Server = 'Ser_veur[:port]:'; LANGfrConnProp_Username = 'U_tilisateur:'; LANGfrConnProp_UserNameEntryTooltip = 'Ne rien mettre pour les utilisateurs anonymes'; LANGfrConnProp_Password = 'Mot de _Passe:'; LANGfrConnProp_TargetDirectory = 'Répertoire _Cible:'; LANGfrConnProp_ServiceType = '_Services:'; LANGfrConnProp_MaskPassword = '_Masquer le mot de passe'; LANGfrConnProp_MenuItemCaption = 'Défaut (tous les modules appropriés)'; LANGfrConnLogin_Caption = 'Authentication requis'; LANGfrConnLogin_Login = 'Login'; LANGfrConnLogin_ExperimentalWarningLabelCaption = 'You must log in to access %s'; LANGfrConnLogin_Username = '_Utilisateur:'; LANGfrConnLogin_Password = 'Mot de _Passe:'; LANGfrConnLogin_AnonymousCheckButton = '_Anonyme'; LANGfrColumns_Caption = 'Paramètres des Panels'; LANGfrColumns_Title = 'Paramètres des Panels'; LANGfrColumns_MoveUpButtonTooltip = 'Vers le haut'; LANGfrColumns_MoveDownButtonTooltip = 'Vers le bas'; LANGfrColumns_TitlesLongName = 'Nom'; LANGfrColumns_TitlesLongNameExt = 'Nom + Extension'; LANGfrColumns_TitlesLongExt = 'Extension'; LANGfrColumns_TitlesLongSize = 'Taille'; LANGfrColumns_TitlesLongDateTime = 'Date + Heure'; LANGfrColumns_TitlesLongDate = 'Date'; LANGfrColumns_TitlesLongTime = 'Heure'; LANGfrColumns_TitlesLongUser = 'Utilisateur'; LANGfrColumns_TitlesLongGroup = 'Groupe'; LANGfrColumns_TitlesLongAttr = 'Attributs'; LANGfrColumns_TitlesShortName = 'Nom'; LANGfrColumns_TitlesShortNameExt = 'Nom'; LANGfrColumns_TitlesShortExt = 'Ext'; LANGfrColumns_TitlesShortSize = 'Taille'; LANGfrColumns_TitlesShortDateTime = 'Date'; LANGfrColumns_TitlesShortDate = 'Date'; LANGfrColumns_TitlesShortTime = 'Heure'; LANGfrColumns_TitlesShortUser = 'Utilisateur'; LANGfrColumns_TitlesShortGroup = 'Groupe'; LANGfrColumns_TitlesShortAttr = 'Attr'; LANGfrTestPlugin_Caption = 'Tester un Greffon VFS'; LANGfrTestPlugin_Title = 'Tester un Greffon VFS'; LANGfrTestPlugin_ExperimentalWarningLabelCaption = 'Avertissement: Le sous-sytème VFS et ses greffons sont encore en développement et contiennent des bugs. utilisez cette fonction à votre propres risques!'; LANGfrTestPlugin_Plugin = '_Greffon:'; LANGfrTestPlugin_Command = 'Co_mmande:'; LANGfrTestPlugin_Username = '_Utilisateur:'; LANGfrTestPlugin_Password = 'Mot de _Passe:'; LANGfrTestPlugin_AnonymousCheckButton = 'Login _Anonyme (n''appelle pas VFSLogin)'; LANGfrTestPlugin_NoPluginsFound = 'Pas de greffons trouvés'; LANGfrRemoteWait_Caption = 'Opération en cours'; LANGfrRemoteWait_OperationInProgress = 'Opération en cours, veuillez patienter...'; LANGfrRemoteWait_ItemsFound = 'Résultats: %d'; LANGfrSearch_Bytes = 'Bytes'; LANGfrSearch_kB = 'kB'; LANGfrSearch_MB = 'MB'; LANGfrSearch_days = 'jours'; LANGfrSearch_weeks = 'semaines'; LANGfrSearch_months = 'mois'; LANGfrSearch_years = 'années'; LANGfrSearch_Caption = 'Fichiers Trouvés'; LANGfrSearch_General = 'General'; LANGfrSearch_Advanced = 'Avancé'; LANGfrSearch_SearchResults = '_Résultats:'; LANGfrSearch_SearchFor = 'Chercher _pour:'; LANGfrSearch_FileMaskEntryTooltip = 'Astuce: Utiliser un point-virgule (";") pour spécifier les fichiers multiples à trouver'; LANGfrSearch_SearchIn = 'Chercher _dans:'; LANGfrSearch_SearchArchivesCheckButton = 'Chercher _archives'; LANGfrSearch_FindText = 'Trouver _texte:'; LANGfrSearch_FindTextEntryTooltip = 'Une entrée vide permet de ne pas chercher un texte spécifique'#10'Veuillez noter que nous utilisons le codage UTF-8 dans l''interface graphique'; LANGfrSearch_CaseSensitiveCheckButton = 'Cas_e sensitive'; LANGfrSearch_StayCurrentFSCheckButton = 'Inclure d''autres systèmes de fichiers'; LANGfrSearch_CaseSensitiveMatchCheckButton = 'Ca_se sensitive'; LANGfrSearch_Size = 'Taille'; LANGfrSearch_Date = 'Date'; LANGfrSearch_BiggerThan = '_Plus grand que'; LANGfrSearch_SmallerThan = 'P_lus petit que'; LANGfrSearch_ModifiedBetweenRadioButton = '_Modifié entre'; LANGfrSearch_NotModifiedAfterRadioButton = '_Non-modifié après'; LANGfrSearch_ModifiedLastRadioButton = 'Modifié dans dernier'; LANGfrSearch_ModifiedNotLastRadionButton = 'Non-modifié dans dernier'; LANGfrSearch_ModifiedBetweenEntry1 = '"utilisez ce format de date:" c'; LANGfrSearch_ViewButtonCaption = '_Voir'; LANGfrSearch_NewSearchButtonCaption = '_Nouvelle'; LANGfrSearch_GoToFileButtonCaption = '_Aller'; LANGfrSearch_FeedToListboxButtonCaption = 'Ajou_ter'; LANGfrSearch_StatusSC = 'Status:'; LANGfrSearch_Ready = 'Prêt.'; LANGfrSearch_PreparingToSearch = 'Recherche en préparation.'; LANGfrSearch_SearchInProgress = 'Recherche en cours:'; LANGfrSearch_UserCancelled = 'Annulation par l''utilisateur.'; LANGfrSearch_SearchFinished = 'Recherche terminée'; LANGfrSearch_FilesFound = '%d fichiers trouvés'; LANGfrSearch_And = 'et'; (*************** STRINGS ADDED TO v0.5.82 **********************************************************************************) LANGfrCloseOpenConnection = 'Vous essayez d''ouvrir une nouvelle connection sur une connection déjà existante. En continuant, la précédente connection sera fermée et remplacée par la nouvelle demandée.'#10#10'Souhaitez vous continuer?'; LANGfrDuplicateTabWarning = 'Vous essayez d''ouvrir un nouvel onglet à partir d''un répertoire distant. Cependant, l''action n''est pas supportée. Le répertoire dans le nouvel onglet pointera ver un système de fichier local.'; LANGfrDontShowAgain = '_Ne plus montrer ce message'; LANGfrSwitchOtherPanelWarning = 'Vous essayez d''ouvrir un répertoire distant dans le panel opposé. Cependant, l''action n''est pas supportée. Le répertoire cible ne sera pas ouvert.'; LANGfrOpenConnectionsWarning = 'Des connections actives sont ouvertes dans le panel. En fermant l''application, ces connections seront déconnectées.'#10#10'Souhaitez vous quitter?'; LANGfrmiDisconnect_Caption = '_Déconnecter'; LANGfrDisconnectButton_Tooltip = 'Déconnecter la connection active'; LANGfrLeaveArchiveButton_Tooltip = 'Fermer l''archive courante'; LANGfrOpenTerminalButton_Tooltip = 'Ouvrir un nouveau terminal dans le répertoire courant'; LANGfrOpenTerminalButton_Caption = 'Te_rminal'; LANGfrShowTextUIDsCheckBox_Caption = 'Voir Texte _UIDs'; LANGfrShowTextUIDsCheckBox_Tooltip = 'Voir les informations textuelles d''Utilisateur et Groupe à la place des nombres (UID/GID)'; (*************** STRINGS ADDED TO v0.5.100 **********************************************************************************) LANGfrmiNewTab_Caption = 'Nouvel On_glet'; LANGfrFilePopupMenu_Properties = '_Propriétés'; LANGfrCommandEntry_Tooltip = 'Use %s as file/directory placeholder'; LANGfrmiFiles_Caption = 'Fichiers seulement'; (*************** STRINGS ADDED TO v0.6.31 **********************************************************************************) LANGfrPasswordButton_Tooltip = 'Archive requires password.'#10'Click to set'; LANGfrHandleRunFromArchive_Bytes = 'bytes'; LANGfrHandleRunFromArchive_FileTypeDesc_Unknown = '(unknown)'; LANGfrHandleRunFromArchive_NotAssociated = '(not associated)'; LANGfrHandleRunFromArchive_SelfExecutable = '(self-executable)'; LANGfrHandleRunFromArchive_CouldntCreateTemporaryDirectory = 'Couldn''t create temporary directory "%s": %s.'#10#10'Please check the temporary directory settings and try it again.'; LANGfrFRunFromVFS_Caption = 'Packed file properties'; LANGfrFRunFromVFS_TitleLabel = 'File Properties'; LANGfrFRunFromVFS_FileNameLabel = 'File name:'; LANGfrFRunFromVFS_FileTypeLabel = 'File type:'; LANGfrFRunFromVFS_SizeLabel = 'Size:'; LANGfrFRunFromVFS_PackedSizeLabel = 'Compressed size:'; LANGfrFRunFromVFS_DateLabel = 'Modify date:'; LANGfrFRunFromVFS_InfoLabel = 'Opening files directly from archives is not supported. By clicking the buttons below the file (all files respectively) will be extracted to a temporary location. Temporary files will be deleted when you close Tux Commander.'; LANGfrFRunFromVFS_OpensWithLabel = 'Open with:'; LANGfrFRunFromVFS_ExecuteButton = 'E_xtract and open'; LANGfrFRunFromVFS_ExecuteAllButton = 'Extract _all and open'; LANGfrFSetPassword_Caption = 'Set password'; LANGfrFSetPassword_Label1_Caption = 'Password required'; LANGfrFSetPassword_Label2_Caption = 'The archive is encrypted and requires password in order to extract the data'; LANGfrFSetPassword_ShowPasswordCheckButton = 'Un_mask password'; (*************** STRINGS ADDED TO v0.6.48 **********************************************************************************) LANGfrCopyFileNamesToClipboard = '_Copy file names to clipboard'; LANGfrCopyFullPathNamesToClipboard = 'Copy _full path names to clipboard'; LANGfrCopyPathToClipboard = '_Copy path to clipboard'; LANGfrPreferences_DateFormatLabel_Caption = 'Date _format:'; LANGfrPreferences_System = 'System'; LANGfrPreferences_Custom = 'Custom...'; LANGfrPreferences_CustomDateFormatEntry_Tooltip = 'Enter custom date format string.'#10'Please see "man strftime" for syntax reference.'; LANGfrPreferences_TimeFormatLabel_Caption = '_Time format:'; LANGfrPreferences_CustomTimeFormatEntry_Tooltip = 'Enter custom time format string.'#10'Please see "man strftime" for syntax reference.'; LANGfrPreferences_DateTimeFormatLabel_Caption = 'Date/time _order:'; LANGfrPreferences_QuickRenameSkipExtCheckBox = 'Select name part only on quick-rename'; LANGfrPreferences_QuickRenameSkipExtCheckBox_Tooltip = 'Exclude filename extension from the selection when doing quick-rename'; LANGfrPreferences_SortDirectoriesLikeFilesCheckBox = 'Sort directories lik_e files'; LANGfrPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip = 'Check this to allow sorting directories along with files. Directories are always first in the list.'#10'Unchecked: directories are always sorted by name.'; LANGfrPreferences_QuickSearchLabel_Caption = 'Quick search _keystroke:'; LANGfrPreferences_QuickSearchOptionMenu_Tooltip = 'The Ctrl+S/Alt+S and "/" keystrokes are always active, regardless on this setting.'; LANGfrPreferences_QuickSearch_Option1 = 'Ctrl+S/Alt+S and "/" only'; LANGfrPreferences_QuickSearch_Option2 = 'Ctrl+Alt+letters'; LANGfrPreferences_QuickSearch_Option3 = 'Alt+letters'; LANGfrPreferences_QuickSearch_Option4 = 'letters directly'; LANGfrPreferences_TempPathLabel_Caption = 'Temporary files'; LANGfrPreferences_VFSTempPathLabel_Caption = '_VFS temp files:'; LANGfrPreferences_VFSTempPathEntry_Tooltip = 'Location of temporary files used by VFS subsystem, e.g. when opening files directly from archives. All temporary files are cleaned on exit.'; (*************** STRINGS ADDED TO v0.6.67 **********************************************************************************) LANGfrPreferences_RightClickSelectCheckBox = 'Right mouse button selection mode'; LANGfrPreferences_RightClickSelectCheckBox_Tooltip = 'Use right mouse button to select, like mc.'; LANGfrGtkMountOperation_ConnectAnonymously = 'Connect _anonymously'; LANGfrGtkMountOperation_ConnectAsUser = 'Connect as u_ser:'; LANGfrGtkMountOperation_Username = '_Username:'; LANGfrGtkMountOperation_Domain = '_Domain:'; LANGfrGtkMountOperation_Password = '_Password:'; LANGfrGtkMountOperation_DoNotSavePassword = 'Do not save password'; LANGfrGtkMountOperation_ForgetPasswordImmediately = 'Forget password _immediately'; LANGfrGtkMountOperation_RememberPasswordUntilYouLogout = 'Remember password until you _logout'; LANGfrGtkMountOperation_SavePasswordInConnectionManager = '_Save password in Connection Manager'; LANGfrGtkMountOperation_RememberForever = 'Remember _forever'; LANGfrFSymlink_RelativePath = '_Relative path'; LANGfrFConnectionManager_DuplicateButton_Caption = 'D_uplicate...'; LANGfrFConnectionManager_DuplicateButton_Tooltip = 'Duplicate selected connection'; LANGfrFConnectionManager_DoNotSavePasswordsCheckBox_Label = '_Do not store passwords internally (but still use gnome-keyring)'; LANGfrFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip = 'By checking this option on, Tux Commander will never save passwords into its connection list. Due to the GVFS nature, gnome-keyring will still be used to retrieve stored passwords from your desktop session.'; LANGfrFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label = 'Do not synchronize passwords to gnome-_keyring'; LANGfrFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip = 'Don''t tell gnome-keyring to save any passwords.'; LANGfrFConnectionManager_DuplicateMenuItem_Caption = 'D_uplicate...'; LANGfrFQuickConnect_Caption = 'Quick connect'; LANGfrFQuickConnect_TitleLabel_Caption = 'Quick connect'; LANGfrFQuickConnect_ConnectToURILabel_Caption = 'C_onnect to URI:'; LANGfrLinkToS = 'Link to %s'; LANGfrOpenDirectoryInBackgroundTab = 'Open directory in _background tab'; LANGfrTheActiveConnectionHasNotBeenSaved = 'The active connection has not been saved. Do you want to save it to Connection Manager?'#10#10'%s'; LANGfrTheArchiveIsEncryptedAndRequiresPassword = 'The archive is encrypted and requires password'; (********************************************************************************************************************************) procedure SetTranslation; begin LANGF2Button_Caption := LANGfrF2Button_Caption; LANGF3Button_Caption := LANGfrF3Button_Caption; LANGF4Button_Caption := LANGfrF4Button_Caption; LANGF5Button_Caption := LANGfrF5Button_Caption; LANGF6Button_Caption := LANGfrF6Button_Caption; LANGF7Button_Caption := LANGfrF7Button_Caption; LANGF8Button_Caption := LANGfrF8Button_Caption; LANGmnuFile_Caption := LANGfrmnuFile_Caption; LANGmnuMark_Caption := LANGfrmnuMark_Caption; LANGmnuCommands_Caption := LANGfrmnuCommands_Caption; LANGmnuHelp_Caption := LANGfrmnuHelp_Caption; LANGmiExit_Caption := LANGfrmiExit_Caption; LANGmiSelectGroup_Caption := LANGfrmiSelectGroup_Caption; LANGmiUnselectGroup_Caption := LANGfrmiUnselectGroup_Caption; LANGmiSelectAll_Caption := LANGfrmiSelectAll_Caption; LANGmiUnselectAll_Caption := LANGfrmiUnselectAll_Caption; LANGmiInvertSelection_Caption := LANGfrmiInvertSelection_Caption; LANGmiRefresh_Caption := LANGfrmiRefresh_Caption; LANGmiAbout_Caption := LANGfrmiAbout_Caption; LANGColumn1_Caption := LANGfrColumn1_Caption; LANGColumn2_Caption := LANGfrColumn2_Caption; LANGColumn3_Caption := LANGfrColumn3_Caption; LANGColumn4_Caption := LANGfrColumn4_Caption; LANGColumn5_Caption := LANGfrColumn5_Caption; LANGExpandSelection := LANGfrExpandSelection; LANGShrinkSelection := LANGfrShrinkSelection; LANGNoMatchesFound := LANGfrNoMatchesFound; LANGNoFilesSelected := LANGfrNoFilesSelected; LANGSelectedFilesDirectories := LANGfrSelectedFilesDirectories; LANGDirectoryS := LANGfrDirectoryS; LANGFileS := LANGfrFileS; LANGDoYouReallyWantToDeleteTheS := LANGfrDoYouReallyWantToDeleteTheS; LANGDoYouReallyWantToDeleteTheSS := LANGfrDoYouReallyWantToDeleteTheSS; LANGCopyFiles := LANGfrCopyFiles; LANGMoveRenameFiles := LANGfrMoveRenameFiles; LANGCopyDFileDirectoriesTo := LANGfrCopyDFileDirectoriesTo; LANGMoveRenameDFileDirectoriesTo := LANGfrMoveRenameDFileDirectoriesTo; LANGCopySC := LANGfrCopySC; LANGMoveRenameSC := LANGfrMoveRenameSC; LANGQuickFind := LANGfrQuickFind; LANGAboutString := LANGfrAboutString; LANGAboutStringGnome := LANGfrAboutStringGnome; LANGDiskStatFmt := LANGfrDiskStatFmt; LANGDiskStatVolNameFmt := LANGfrDiskStatVolNameFmt; LANGStatusLineFmt := LANGfrStatusLineFmt; LANGPanelStrings[False] := LANGfrPanelStrings[False]; LANGPanelStrings[True] := LANGfrPanelStrings[True]; LANGDIR := LANGfrDIR; LANGErrorGettingListingForSPanel := LANGfrErrorGettingListingForSPanel; LANGErrorGettingListingForSPanelNoPath := LANGfrErrorGettingListingForSPanelNoPath; LANGErrorCreatingNewDirectorySInSPanel := LANGfrErrorCreatingNewDirectorySInSPanel; LANGErrorCreatingNewDirectorySInSPanelNoPath := LANGfrErrorCreatingNewDirectorySInSPanelNoPath; LANGTheFileDirectory := LANGfrTheFileDirectory; LANGCouldNotBeDeleted := LANGfrCouldNotBeDeleted; LANGCouldNotBeDeletedS := LANGfrCouldNotBeDeletedS; LANGUserCancelled := LANGfrUserCancelled; LANGTheDirectorySIsNotEmpty := LANGfrTheDirectorySIsNotEmpty; LANGCannotCopyFile := LANGfrCannotCopyFile; LANGCopyError := LANGfrCopyError; LANGMoveError := LANGfrMoveError; LANGOverwriteS := LANGfrOverwriteS; LANGWithFileS := LANGfrWithFileS; LANGOvewriteSBytesS := LANGfrOvewriteSBytesS; LANGTheFile := LANGfrTheFile; LANGCopy := LANGfrCopy; LANGMove := LANGfrMove; LANGTheDirectory := LANGfrTheDirectory; LANGTheSymbolicLink := LANGfrTheSymbolicLink; LANGCannotMoveFile := LANGfrCannotMoveFile; LANGCouldNotBeCreated := LANGfrCouldNotBeCreated; LANGCouldNotBeCreatedS := LANGfrCouldNotBeCreatedS; LANGFromS := LANGfrFromS; LANGToS := LANGfrToS; LANGCannotCopyFileToItself := LANGfrCannotCopyFileToItself; LANGMemoryAllocationFailed := LANGfrMemoryAllocationFailed; LANGCannotOpenSourceFile := LANGfrCannotOpenSourceFile; LANGCannotOpenDestinationFile := LANGfrCannotOpenDestinationFile; LANGCannotCloseDestinationFile := LANGfrCannotCloseDestinationFile; LANGCannotCloseSourceFile := LANGfrCannotCloseSourceFile; LANGCannotReadFromSourceFile := LANGfrCannotReadFromSourceFile; LANGCannotWriteToDestinationFile := LANGfrCannotWriteToDestinationFile; LANGUnknownException := LANGfrUnknownException; LANGNoAccess := LANGfrNoAccess; LANGUnknownError := LANGfrUnknownError; LANGCreateANewDirectory := LANGfrCreateANewDirectory; LANGEnterDirectoryName := LANGfrEnterDirectoryName; LANGOverwriteQuestion := LANGfrOverwriteQuestion; LANGOverwriteButton_Caption := LANGfrOverwriteButton_Caption; LANGOverwriteAllButton_Caption := LANGfrOverwriteAllButton_Caption; LANGSkipButton_Caption := LANGfrSkipButton_Caption; LANGOverwriteAllOlderButton_Caption := LANGfrOverwriteAllOlderButton_Caption; LANGSkipAllButton_Caption := LANGfrSkipAllButton_Caption; LANGRenameButton_Caption := LANGfrRenameButton_Caption; LANGAppendButton_Caption := LANGfrAppendButton_Caption; LANGRename := LANGfrRename; LANGRenameFile := LANGfrRenameFile; LANGIgnoreButton_Caption := LANGfrIgnoreButton_Caption; LANGProgress := LANGfrProgress; LANGCancel := LANGfrCancel; LANGDelete := LANGfrDelete; LANGSpecifyFileType := LANGfrSpecifyFileType; LANGRemoveDirectory := LANGfrRemoveDirectory; LANGDoYouWantToDeleteItWithAllItsFilesAndSubdirectories := LANGfrDoYouWantToDeleteItWithAllItsFilesAndSubdirectories; LANGRetry := LANGfrRetry; LANGDeleteButton_Caption := LANGfrDeleteButton_Caption; LANGAll := LANGfrAll; LANGCopyFilesSC := LANGfrCopyFilesSC; LANGAppendQuestion := LANGfrAppendQuestion; LANGPreparingList := LANGfrPreparingList; LANGYouMustSelectAValidFile := LANGfrYouMustSelectAValidFile; LANGmiVerifyChecksums := LANGfrmiVerifyChecksums; LANGVerifyChecksumsCaption := LANGfrVerifyChecksumsCaption; LANGCheckButtonCaptionCheck := LANGfrCheckButtonCaptionCheck; LANGCheckButtonCaptionStop := LANGfrCheckButtonCaptionStop; LANGFileListTooltip := LANGfrFileListTooltip; LANGFilenameColumnCaption := LANGfrFilenameColumnCaption; LANGTheFileSYouAreTryingToOpenIsQuiteBig := LANGfrTheFileSYouAreTryingToOpenIsQuiteBig; LANGAnErrorOccuredWhileInitializingMemoryBlock := LANGfrAnErrorOccuredWhileInitializingMemoryBlock; LANGAnErrorOccuredWhileOpeningFileSS := LANGfrAnErrorOccuredWhileOpeningFileSS; LANGAnErrorOccuredWhileReadingFileSS := LANGfrAnErrorOccuredWhileReadingFileSS; LANGChecksumNotChecked := LANGfrChecksumNotChecked; LANGChecksumChecking := LANGfrChecksumChecking; LANGChecksumInterrupted := LANGfrChecksumInterrupted; LANGChecksumDOK := LANGfrChecksumDOK; LANGmiCreateChecksumsCaption := LANGfrmiCreateChecksumsCaption; LANGYouMustSelectAtLeastOneFileToCalculateChecksum := LANGfrYouMustSelectAtLeastOneFileToCalculateChecksum; LANGCreateChecksumsCaption := LANGfrCreateChecksumsCaption; LANGCCHKSUMPage1Text := LANGfrCCHKSUMPage1Text; LANGCCHKSUMPage4Text := LANGfrCCHKSUMPage4Text; LANGCCHKSUMPage6Text := LANGfrCCHKSUMPage6Text; LANGCCHKSUMPage7Text := LANGfrCCHKSUMPage7Text; LANGCCHKSUMPage1Title := LANGfrCCHKSUMPage1Title; LANGCCHKSUMPage2Title := LANGfrCCHKSUMPage2Title; LANGCCHKSUMPage3Title := LANGfrCCHKSUMPage3Title; LANGCCHKSUMPage4Title := LANGfrCCHKSUMPage4Title; LANGCCHKSUMPage5Title := LANGfrCCHKSUMPage5Title; LANGCCHKSUMPage6Title := LANGfrCCHKSUMPage6Title; LANGCCHKSUMPage7Title := LANGfrCCHKSUMPage7Title; LANGCCHKSUMSFVFile := LANGfrCCHKSUMSFVFile; LANGCCHKSUMMD5sumFile := LANGfrCCHKSUMMD5sumFile; LANGCCHKSUMFileName := LANGfrCCHKSUMFileName; LANGCCHKSUMCreateSeparateChecksumFiles := LANGfrCCHKSUMCreateSeparateChecksumFiles; LANGCCHKSUMNowProcessingFileS := LANGfrCCHKSUMNowProcessingFileS; LANGCCHKSUMFinishCaption := LANGfrCCHKSUMFinishCaption; LANGCCHKSUMAreYouSureYouWantToAbortTheProcessing := LANGfrCCHKSUMAreYouSureYouWantToAbortTheProcessing; LANGCCHKSUMAnErrorOccuredWhileOpeningFileSS := LANGfrCCHKSUMAnErrorOccuredWhileOpeningFileSS; LANGCCHKSUMAnErrorOccuredWhileReadingFileSS := LANGfrCCHKSUMAnErrorOccuredWhileReadingFileSS; LANGCCHKSUMAnErrorOccuredWhileWritingFileSS := LANGfrCCHKSUMAnErrorOccuredWhileWritingFileSS; LANGAnErrorOccuredWhileWritingFileSS := LANGfrAnErrorOccuredWhileWritingFileSS; LANGTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt := LANGfrTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt; LANGTheTargetFileSCannotBeRemovedS := LANGfrTheTargetFileSCannotBeRemovedS; LANGMergeCaption := LANGfrMergeCaption; LANGPleaseInsertNextDiskOrGiveDifferentLocation := LANGfrPleaseInsertNextDiskOrGiveDifferentLocation; LANGMergeOfSSucceeded := LANGfrMergeOfSSucceeded; LANGWarningCreatedFileFailsCRCCheck := LANGfrWarningCreatedFileFailsCRCCheck; LANGMergeOfSSucceeded_NoCRCFileAvailable := LANGfrMergeOfSSucceeded_NoCRCFileAvailable; LANGMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory := LANGfrMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory; LANGMergeSC := LANGfrMergeSC; LANGmiSplitFileCaption := LANGfrmiSplitFileCaption; LANGmiMergeFilesCaption := LANGfrmiMergeFilesCaption; LANGSplitTheFileSToDirectory := LANGfrSplitTheFileSToDirectory; LANGSplitSC := LANGfrSplitSC; LANGSplitFile := LANGfrSplitFile; LANGBytesPerFile := LANGfrBytesPerFile; LANGAutomatic := LANGfrAutomatic; LANGDeleteFilesOnTargetDisk := LANGfrDeleteFilesOnTargetDisk; LANGSplitCaption := LANGfrSplitCaption; LANGCannotOpenFileS := LANGfrCannotOpenFileS; LANGCannotSplitTheFileToMoreThan999Parts := LANGfrCannotSplitTheFileToMoreThan999Parts; LANGThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem := LANGfrThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem; LANGThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem := LANGfrThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem; LANGAnErrorOccuredWhileOperationS := LANGfrAnErrorOccuredWhileOperationS; LANGSplitOfSSucceeded := LANGfrSplitOfSSucceeded; LANGSplitOfSFailed := LANGfrSplitOfSFailed; LANGmnuShow_Caption := LANGfrmnuShow_Caption; LANGmiShowDotFiles_Caption := LANGfrmiShowDotFiles_Caption; LANGTheFileYouAreTryingToOpenIsQuiteBig := LANGfrTheFileYouAreTryingToOpenIsQuiteBig; LANGCannotExecuteSPleaseCheckTheConfiguration := LANGfrCannotExecuteSPleaseCheckTheConfiguration; LANGEdit := LANGfrEdit; LANGenterFilenameToEdit := LANGfrEnterFilenameToEdit; LANGmnuSettings_Caption := LANGfrmnuSettings_Caption; LANGmiFileTypes_Caption := LANGfrmiFileTypes_Caption; LANGThereIsNoApplicationAssociatedWithS := LANGfrThereIsNoApplicationAssociatedWithS; LANGErrorExecutingCommand := LANGfrErrorExecutingCommand; LANGEditFileTypesCaption := LANGfrEditFileTypesCaption; LANGTitleLabel_Caption := LANGfrTitleLabel_Caption; LANGExtensionsColumn := LANGfrExtensionsColumn; LANGDescriptionColumn := LANGfrDescriptionColumn; LANGFileTypesList := LANGfrFileTypesList; LANGActionName := LANGfrActionName; LANGCommand := LANGfrCommand; LANGSetDefaultActionButton_Caption := LANGfrSetDefaultActionButton_Caption; LANGRunInTerminalCheckBox_Caption := LANGfrRunInTerminalCheckBox_Caption; LANGAutodetectCheckBox_Caption := LANGfrAutodetectCheckBox_Caption; LANGBrowseButton_Caption := LANGfrBrowseButton_Caption; LANGCommandLabel_Caption := LANGfrCommandLabel_Caption; LANGDescriptionLabel_Caption := LANGfrDescriptionLabel_Caption; LANGFNameExtLabel_Caption := LANGfrFNameExtLabel_Caption; LANGNotebookPageExtensions := LANGfrNotebookPageExtensions; LANGNotebookPageActions := LANGfrNotebookPageActions; LANGDefault := LANGfrDefault; LANGCannotSaveFileTypeAssociationsBecauseOtherProcess := LANGfrCannotSaveFileTypeAssociationsBecauseOtherProcess; LANGDefaultColor := LANGfrDefaultColor; LANGIcon := LANGfrIcon; LANGBrowseForIcon := LANGfrBrowseForIcon; LANGSelectFileTypeColor := LANGfrSelectFileTypeColor; LANGColor := LANGfrColor; LANGmiChangePermissions_Caption := LANGfrmiChangePermissions_Caption; LANGmiChangeOwner_Caption := LANGfrmiChangeOwner_Caption; LANGmiCreateSymlink_Caption := LANGfrmiCreateSymlink_Caption; LANGmiEditSymlink_Caption := LANGfrmiEditSymlink_Caption; LANGChmodProgress := LANGfrChmodProgress; LANGChownProgress := LANGfrChownProgress; LANGYouMustSelectAValidSymbolicLink := LANGfrYouMustSelectAValidSymbolicLink; LANGPopupRunS := LANGfrPopupRunS; LANGPopupOpenS := LANGfrPopupOpenS; LANGPopupGoUp := LANGfrPopupGoUp; LANGPopupOpenWithS := LANGfrPopupOpenWithS; LANGPopupDefault := LANGfrPopupDefault; LANGPopupOpenWith := LANGfrPopupOpenWith; LANGPopupViewFile := LANGfrPopupViewFile; LANGPopupEditFile := LANGfrPopupEditFile; LANGPopupMakeSymlink := LANGfrPopupMakeSymlink; LANGPopupRename := LANGfrPopupRename; LANGPopupDelete := LANGfrPopupDelete; LANGDialogChangePermissions := LANGfrDialogChangePermissions; LANGCouldNotBeChmoddedS := LANGfrCouldNotBeChmoddedS; LANGDialogChangeOwner := LANGfrDialogChangeOwner; LANGCouldNotBeChownedS := LANGfrCouldNotBeChownedS; LANGDialogMakeSymlink := LANGfrDialogMakeSymlink; LANGDialogEditSymlink := LANGfrDialogEditSymlink; LANGFEditSymlink_Caption := LANGfrFEditSymlink_Caption; LANGFEditSymlink_SymbolicLinkFilename := LANGfrFEditSymlink_SymbolicLinkFilename; LANGFEditSymlink_SymbolicLinkPointsTo := LANGfrFEditSymlink_SymbolicLinkPointsTo; LANGFChmod_Caption := LANGfrFChmod_Caption; LANGFChmod_PermissionFrame := LANGfrFChmod_PermissionFrame; LANGFChmod_FileFrame := LANGfrFChmod_FileFrame; LANGFChmod_ApplyRecursivelyFor := LANGfrFChmod_ApplyRecursivelyFor; LANGFChmod_miAllFiles := LANGfrFChmod_miAllFiles; LANGFChmod_miDirectories := LANGfrFChmod_miDirectories; LANGFChmod_OctalLabel := LANGfrFChmod_OctalLabel; LANGFChmod_SUID := LANGfrFChmod_SUID; LANGFChmod_SGID := LANGfrFChmod_SGID; LANGFChmod_Sticky := LANGfrFChmod_Sticky; LANGFChmod_RUSR := LANGfrFChmod_RUSR; LANGFChmod_WUSR := LANGfrFChmod_WUSR; LANGFChmod_XUSR := LANGfrFChmod_XUSR; LANGFChmod_RGRP := LANGfrFChmod_RGRP; LANGFChmod_WGRP := LANGfrFChmod_WGRP; LANGFChmod_XGRP := LANGfrFChmod_XGRP; LANGFChmod_ROTH := LANGfrFChmod_ROTH; LANGFChmod_WOTH := LANGfrFChmod_WOTH; LANGFChmod_XOTH := LANGfrFChmod_XOTH; LANGFChmod_TextLabel := LANGfrFChmod_TextLabel; LANGFChmod_FileLabel := LANGfrFChmod_FileLabel; LANGFChown_Caption := LANGfrFChown_Caption; LANGFChown_OwnerFrame := LANGfrFChown_OwnerFrame; LANGFChown_GroupFrame := LANGfrFChown_GroupFrame; LANGFChown_FileFrame := LANGfrFChown_FileFrame; LANGFChown_ApplyRecursively := LANGfrFChown_ApplyRecursively; LANGFSymlink_Caption := LANGfrFSymlink_Caption; LANGFSymlink_ExistingFilename := LANGfrFSymlink_ExistingFilename; LANGFSymlink_SymlinkFilename := LANGfrFSymlink_SymlinkFilename; LANGmnuBookmarks_Caption := LANGfrmnuBookmarks_Caption; LANGmiAddBookmark_Caption := LANGfrmiAddBookmark_Caption; LANGmiEditBookmarks_Caption := LANGfrmiEditBookmarks_Caption; LANGBookmarkPopupDelete_Caption := LANGfrBookmarkPopupDelete_Caption; LANGmiPreferences_Caption := LANGfrmiPreferences_Caption; LANGTheCurrentDirectoryAlreadyExistsInTheBookmarksList := LANGfrTheCurrentDirectoryAlreadyExistsInTheBookmarksList; LANGSomeOtherInstanceChanged := LANGfrSomeOtherInstanceChanged; LANGPreferences_Caption := LANGfrPreferences_Caption; LANGPreferences_TitleLabel_Caption := LANGfrPreferences_TitleLabel_Caption; LANGPreferences_GeneralPage := LANGfrPreferences_GeneralPage; LANGPreferences_FontsPage := LANGfrPreferences_FontsPage; LANGPreferences_ColorsPage := LANGfrPreferences_ColorsPage; LANGPreferences_RowHeight := LANGfrPreferences_RowHeight; LANGPreferences_NumHistoryItems := LANGfrPreferences_NumHistoryItems; LANGPreferences_Default := LANGfrPreferences_Default; LANGPreferences_ClearReadonlyAttribute := LANGfrPreferences_ClearReadonlyAttribute; LANGPreferences_DisableMouseRenaming := LANGfrPreferences_DisableMouseRenaming; LANGPreferences_ShowFiletypeIconsInList := LANGfrPreferences_ShowFiletypeIconsInList; LANGPreferences_ExternalAppsLabel := LANGfrPreferences_ExternalAppsLabel; LANGPreferences_Viewer := LANGfrPreferences_Viewer; LANGPreferences_Editor := LANGfrPreferences_Editor; LANGPreferences_Terminal := LANGfrPreferences_Terminal; LANGPreferences_ListFont := LANGfrPreferences_ListFont; LANGPreferences_Change := LANGfrPreferences_Change; LANGPreferences_UseDefaultFont := LANGfrPreferences_UseDefaultFont; LANGPreferences_Foreground := LANGfrPreferences_Foreground; LANGPreferences_Background := LANGfrPreferences_Background; LANGPreferences_NormalItem := LANGfrPreferences_NormalItem; LANGPreferences_SetToDefaultToUseGTKThemeColors := LANGfrPreferences_SetToDefaultToUseGTKThemeColors; LANGPreferences_Cursor := LANGfrPreferences_Cursor; LANGPreferences_InactiveItem := LANGfrPreferences_InactiveItem; LANGPreferences_SelectedItem := LANGfrPreferences_SelectedItem; LANGPreferences_LinkItem := LANGfrPreferences_LinkItem; LANGPreferences_LinkItemHint := LANGfrPreferences_LinkItemHint; LANGPreferences_DotFileItem := LANGfrPreferences_DotFileItem; LANGPreferences_DotFileItemHint := LANGfrPreferences_DotFileItemHint; LANGPreferences_BrowseForApplication := LANGfrPreferences_BrowseForApplication; LANGPreferences_DefaultS := LANGfrPreferences_DefaultS; LANGPreferences_SelectFont := LANGfrPreferences_SelectFont; LANGBookmarkButton_Tooltip := LANGfrBookmarkButton_Tooltip; LANGUpButton_Tooltip := LANGfrUpButton_Tooltip; LANGRootButton_Tooltip := LANGfrRootButton_Tooltip; LANGHomeButton_Tooltip := LANGfrHomeButton_Tooltip; LANGLeftEqualButton_Tooltip := LANGfrLeftEqualButton_Tooltip; LANGRightEqualButton_Tooltip := LANGfrRightEqualButton_Tooltip; LANGmiShowDirectorySizes_Caption := LANGfrmiShowDirectorySizes_Caption; LANGmiTargetSource_Caption := LANGfrmiTargetSource_Caption; LANGFileTypeDirectory := LANGfrFileTypeDirectory; LANGFileTypeFile := LANGfrFileTypeFile; LANGFileTypeMetafile := LANGfrFileTypeMetafile; LANGPreferencesPanelsPage := LANGfrPreferencesPanelsPage; LANGPreferencesApplicationsPage := LANGfrPreferencesApplicationsPage; LANGPreferencesExperimentalPage := LANGfrPreferencesExperimentalPage; LANGPreferencesSelectAllDirectoriesCheckBox_Caption := LANGfrPreferencesSelectAllDirectoriesCheckBox_Caption; LANGPreferencesNewStyleAltOCheckBox_Caption := LANGfrPreferencesNewStyleAltOCheckBox_Caption; LANGPreferencesNewStyleAltOCheckBox_Tooltip := LANGfrPreferencesNewStyleAltOCheckBox_Tooltip; LANGPreferencesShowFuncButtonsCheckBox_Caption := LANGfrPreferencesShowFuncButtonsCheckBox_Caption; LANGPreferencesSizeFormatLabel_Caption := LANGfrPreferencesSizeFormatLabel_Caption; LANGPreferencesmiSizeFormat1 := LANGfrPreferencesmiSizeFormat1; LANGPreferencesmiSizeFormat6 := LANGfrPreferencesmiSizeFormat6; LANGPreferencesAutodetectXApp := LANGfrPreferencesAutodetectXApp; LANGPreferencesAlwaysRunInTerminal := LANGfrPreferencesAlwaysRunInTerminal; LANGPreferencesNeverRunInTerminal := LANGfrPreferencesNeverRunInTerminal; LANGPreferencesCmdLineBehaviourLabel_Caption := LANGfrPreferencesCmdLineBehaviourLabel_Caption; LANGPreferencesFeatures := LANGfrPreferencesFeatures; LANGPreferencesDisableMouseRename_Tooltip := LANGfrPreferencesDisableMouseRename_Tooltip; LANGPreferencesDisableFileTipsCheckBox_Caption := LANGfrPreferencesDisableFileTipsCheckBox_Caption; LANGPreferencesDisableFileTipsCheckBox_Tooltip := LANGfrPreferencesDisableFileTipsCheckBox_Tooltip; LANGPreferencesShow := LANGfrPreferencesShow; LANGPreferencesDirsInBoldCheckBox_Caption := LANGfrPreferencesDirsInBoldCheckBox_Caption; LANGPreferencesDisableDirectoryBracketsCheckBox_Caption := LANGfrPreferencesDisableDirectoryBracketsCheckBox_Caption; LANGPreferencesOctalPermissionsCheckBox_Caption := LANGfrPreferencesOctalPermissionsCheckBox_Caption; LANGPreferencesOctalPermissionsCheckBox_Tooltip := LANGfrPreferencesOctalPermissionsCheckBox_Tooltip; LANGPreferencesMovement := LANGfrPreferencesMovement; LANGPreferencesLynxLikeMotionCheckBox_Caption := LANGfrPreferencesLynxLikeMotionCheckBox_Caption; LANGPreferencesInsertMovesDownCheckBox_Caption := LANGfrPreferencesInsertMovesDownCheckBox_Caption; LANGPreferencesSpaceMovesDownCheckBox_Caption := LANGfrPreferencesSpaceMovesDownCheckBox_Caption; LANGPreferencesViewer := LANGfrPreferencesViewer; LANGPreferencesCommandSC := LANGfrPreferencesCommandSC; LANGPreferencesUseInternalViewer := LANGfrPreferencesUseInternalViewer; LANGPreferencesEditor := LANGfrPreferencesEditor; LANGPreferencesTerminal := LANGfrPreferencesTerminal; LANGPreferencesExperimentalFeatures := LANGfrPreferencesExperimentalFeatures; LANGPreferencesExperimentalWarningLabel_Caption := LANGfrPreferencesExperimentalWarningLabel_Caption; LANGPreferencesFocusRefreshCheckBox_Caption := LANGfrPreferencesFocusRefreshCheckBox_Caption; LANGPreferencesFocusRefreshCheckBox_Tooltip := LANGfrPreferencesFocusRefreshCheckBox_Tooltip; LANGPreferencesWMCompatModeCheckBox_Caption := LANGfrPreferencesWMCompatModeCheckBox_Caption; LANGPreferencesWMCompatModeCheckBox_Tooltip := LANGfrPreferencesWMCompatModeCheckBox_Tooltip; LANGPreferencesCompatUseLibcSystemCheckBox_Caption := LANGfrPreferencesCompatUseLibcSystemCheckBox_Caption; LANGPreferencesCompatUseLibcSystemCheckBox_Tooltip := LANGfrPreferencesCompatUseLibcSystemCheckBox_Tooltip; LANGmiSearchCaption2 := LANGfrmiSearchCaption2; LANGmiNoMounterBarCaption := LANGfrmiNoMounterBarCaption; LANGmiShowOneMounterBarCaption := LANGfrmiShowOneMounterBarCaption; LANGmiShowTwoMounterBarCaption := LANGfrmiShowTwoMounterBarCaption; LANGmnuNetworkCaption := LANGfrmnuNetworkCaption; LANGmiConnectionsCaption := LANGfrmiConnectionsCaption; LANGmiOpenConnectionCaption := LANGfrmiOpenConnectionCaption; LANGmiQuickConnectCaption := LANGfrmiQuickConnectCaption; LANGmnuPluginsCaption := LANGfrmnuPluginsCaption; LANGmiTestPluginCaption := LANGfrmiTestPluginCaption; LANGmiMounterSettingsCaption := LANGfrmiMounterSettingsCaption; LANGmiColumnsCaption := LANGfrmiColumnsCaption; LANGmiSavePositionCaption := LANGfrmiSavePositionCaption; LANGmiMountCaption := LANGfrmiMountCaption; LANGmiUmountCaption := LANGfrmiUmountCaption; LANGmiEjectCaption := LANGfrmiEjectCaption; LANGmiDuplicateTabCaption := LANGfrmiDuplicateTabCaption; LANGmiCloseTabCaption := LANGfrmiCloseTabCaption; LANGmiCloseAllTabsCaption := LANGfrmiCloseAllTabsCaption; LANGCannotDetermineDestinationEngine := LANGfrCannotDetermineDestinationEngine; LANGCannotLoadFile := LANGfrCannotLoadFile; LANGMountPointDevice := LANGfrMountPointDevice; LANGMountSC := LANGfrMountSC; LANGNoPluginsFound := LANGfrNoPluginsFound; LANGPluginAbout := LANGfrPluginAbout; LANGCouldntOpenURI := LANGfrCouldntOpenURI; LANGPluginAboutInside := LANGfrPluginAboutInside; LANGAreYouSureCloseAllTabs := LANGfrAreYouSureCloseAllTabs; LANGCouldntOpenURIArchive := LANGfrCouldntOpenURIArchive; LANGThereIsNoModuleAvailable := LANGfrThereIsNoModuleAvailable; LANGIgnoreError := LANGfrIgnoreError; LANGErrorMount := LANGfrErrorMount; LANGErrorUmount := LANGfrErrorUmount; LANGErrorEject := LANGfrErrorEject; LANGMounterPrefs_Caption := LANGfrMounterPrefs_Caption; LANGMounterPrefs_TitleLabelCaption := LANGfrMounterPrefs_TitleLabelCaption; LANGMounterPrefs_ListViewFrameCaption := LANGfrMounterPrefs_ListViewFrameCaption; LANGMounterPrefs_MountName := LANGfrMounterPrefs_MountName; LANGMounterPrefs_MountPoint := LANGfrMounterPrefs_MountPoint; LANGMounterPrefs_Device := LANGfrMounterPrefs_Device; LANGMounterPrefs_MoveUpButtonTooltip := LANGfrMounterPrefs_MoveUpButtonTooltip; LANGMounterPrefs_MoveDownButtonTooltip := LANGfrMounterPrefs_MoveDownButtonTooltip; LANGMounterPrefs_UseFSTabDefaultsCheckBox := LANGfrMounterPrefs_UseFSTabDefaultsCheckBox; LANGMounterPrefs_UseFSTabDefaultsCheckBoxTooltip := LANGfrMounterPrefs_UseFSTabDefaultsCheckBoxTooltip; LANGMounterPrefs_ToggleModeCheckBox := LANGfrMounterPrefs_ToggleModeCheckBox; LANGMounterPrefs_ToggleModeCheckBoxTooltip := LANGfrMounterPrefs_ToggleModeCheckBoxTooltip; LANGMounterPrefs_PropertiesFrameCaption := LANGfrMounterPrefs_PropertiesFrameCaption; LANGMounterPrefs_DisplayTextLabelCaption := LANGfrMounterPrefs_DisplayTextLabelCaption; LANGMounterPrefs_MountPointLabelCaption := LANGfrMounterPrefs_MountPointLabelCaption; LANGMounterPrefs_MountDeviceLabelCaption := LANGfrMounterPrefs_MountDeviceLabelCaption; LANGMounterPrefs_DeviceTypeLabelCaption := LANGfrMounterPrefs_DeviceTypeLabelCaption; LANGMounterPrefs_miLocalDiskCaption := LANGfrMounterPrefs_miLocalDiskCaption; LANGMounterPrefs_miRemovableCaption := LANGfrMounterPrefs_miRemovableCaption; LANGMounterPrefs_miCDCaption := LANGfrMounterPrefs_miCDCaption; LANGMounterPrefs_miFloppyCaption := LANGfrMounterPrefs_miFloppyCaption; LANGMounterPrefs_miNetworkCaption := LANGfrMounterPrefs_miNetworkCaption; LANGMounterPrefs_MountCommandLabelCaption := LANGfrMounterPrefs_MountCommandLabelCaption; LANGMounterPrefs_UmountCommandLabelCaption := LANGfrMounterPrefs_UmountCommandLabelCaption; LANGMounterPrefs_MountCommandEntryTooltip := LANGfrMounterPrefs_MountCommandEntryTooltip; LANGMounterPrefs_UmountCommandEntryTooltip := LANGfrMounterPrefs_UmountCommandEntryTooltip; LANGMounterPrefs_IconLabelCaption := LANGfrMounterPrefs_IconLabelCaption; LANGConnMgr_Caption := LANGfrConnMgr_Caption; LANGConnMgr_ConnectButton := LANGfrConnMgr_ConnectButton; LANGConnMgr_OpenConnection := LANGfrConnMgr_OpenConnection; LANGConnMgr_NameColumn := LANGfrConnMgr_NameColumn; LANGConnMgr_URIColumn := LANGfrConnMgr_URIColumn; LANGConnMgr_AddConnectionButtonCaption := LANGfrConnMgr_AddConnectionButtonCaption; LANGConnMgr_AddConnectionButtonTooltip := LANGfrConnMgr_AddConnectionButtonTooltip; LANGConnMgr_EditButtonCaption := LANGfrConnMgr_EditButtonCaption; LANGConnMgr_EditButtonTooltip := LANGfrConnMgr_EditButtonTooltip; LANGConnMgr_RemoveButtonCaption := LANGfrConnMgr_RemoveButtonCaption; LANGConnMgr_RemoveButtonTooltip := LANGfrConnMgr_RemoveButtonTooltip; LANGConnMgr_DoYouWantDelete := LANGfrConnMgr_DoYouWantDelete; LANGConnProp_FTP := LANGfrConnProp_FTP; LANGConnProp_SFTP := LANGfrConnProp_SFTP; LANGConnProp_SMB := LANGfrConnProp_SMB; LANGConnProp_HTTP := LANGfrConnProp_HTTP; LANGConnProp_HTTPS := LANGfrConnProp_HTTPS; LANGConnProp_Other := LANGfrConnProp_Other; LANGConnProp_Caption := LANGfrConnProp_Caption; LANGConnProp_VFSModule := LANGfrConnProp_VFSModule; LANGConnProp_URI := LANGfrConnProp_URI; LANGConnProp_URIEntryTooltip := LANGfrConnProp_URIEntryTooltip; LANGConnProp_DetailedInformations := LANGfrConnProp_DetailedInformations; LANGConnProp_Name := LANGfrConnProp_Name; LANGConnProp_Server := LANGfrConnProp_Server; LANGConnProp_Username := LANGfrConnProp_Username; LANGConnProp_UserNameEntryTooltip := LANGfrConnProp_UserNameEntryTooltip; LANGConnProp_Password := LANGfrConnProp_Password; LANGConnProp_TargetDirectory := LANGfrConnProp_TargetDirectory; LANGConnProp_ServiceType := LANGfrConnProp_ServiceType; LANGConnProp_MaskPassword := LANGfrConnProp_MaskPassword; LANGConnProp_MenuItemCaption := LANGfrConnProp_MenuItemCaption; LANGConnLogin_Caption := LANGfrConnLogin_Caption; LANGConnLogin_Login := LANGfrConnLogin_Login; LANGConnLogin_ExperimentalWarningLabelCaption := LANGfrConnLogin_ExperimentalWarningLabelCaption; LANGConnLogin_Username := LANGfrConnLogin_Username; LANGConnLogin_Password := LANGfrConnLogin_Password; LANGConnLogin_AnonymousCheckButton := LANGfrConnLogin_AnonymousCheckButton; LANGColumns_Caption := LANGfrColumns_Caption; LANGColumns_Title := LANGfrColumns_Title; LANGColumns_MoveUpButtonTooltip := LANGfrColumns_MoveUpButtonTooltip; LANGColumns_MoveDownButtonTooltip := LANGfrColumns_MoveDownButtonTooltip; LANGColumns_TitlesLongName := LANGfrColumns_TitlesLongName; LANGColumns_TitlesLongNameExt := LANGfrColumns_TitlesLongNameExt; LANGColumns_TitlesLongExt := LANGfrColumns_TitlesLongExt; LANGColumns_TitlesLongSize := LANGfrColumns_TitlesLongSize; LANGColumns_TitlesLongDateTime := LANGfrColumns_TitlesLongDateTime; LANGColumns_TitlesLongDate := LANGfrColumns_TitlesLongDate; LANGColumns_TitlesLongTime := LANGfrColumns_TitlesLongTime; LANGColumns_TitlesLongUser := LANGfrColumns_TitlesLongUser; LANGColumns_TitlesLongGroup := LANGfrColumns_TitlesLongGroup; LANGColumns_TitlesLongAttr := LANGfrColumns_TitlesLongAttr; LANGColumns_TitlesShortName := LANGfrColumns_TitlesShortName; LANGColumns_TitlesShortNameExt := LANGfrColumns_TitlesShortNameExt; LANGColumns_TitlesShortExt := LANGfrColumns_TitlesShortExt; LANGColumns_TitlesShortSize := LANGfrColumns_TitlesShortSize; LANGColumns_TitlesShortDateTime := LANGfrColumns_TitlesShortDateTime; LANGColumns_TitlesShortDate := LANGfrColumns_TitlesShortDate; LANGColumns_TitlesShortTime := LANGfrColumns_TitlesShortTime; LANGColumns_TitlesShortUser := LANGfrColumns_TitlesShortUser; LANGColumns_TitlesShortGroup := LANGfrColumns_TitlesShortGroup; LANGColumns_TitlesShortAttr := LANGfrColumns_TitlesShortAttr; LANGTestPlugin_Caption := LANGfrTestPlugin_Caption; LANGTestPlugin_Title := LANGfrTestPlugin_Title; LANGTestPlugin_ExperimentalWarningLabelCaption := LANGfrTestPlugin_ExperimentalWarningLabelCaption; LANGTestPlugin_Plugin := LANGfrTestPlugin_Plugin; LANGTestPlugin_Command := LANGfrTestPlugin_Command; LANGTestPlugin_Username := LANGfrTestPlugin_Username; LANGTestPlugin_Password := LANGfrTestPlugin_Password; LANGTestPlugin_AnonymousCheckButton := LANGfrTestPlugin_AnonymousCheckButton; LANGTestPlugin_NoPluginsFound := LANGfrTestPlugin_NoPluginsFound; LANGRemoteWait_Caption := LANGfrRemoteWait_Caption; LANGRemoteWait_OperationInProgress := LANGfrRemoteWait_OperationInProgress; LANGRemoteWait_ItemsFound := LANGfrRemoteWait_ItemsFound; LANGSearch_Bytes := LANGfrSearch_Bytes; LANGSearch_kB := LANGfrSearch_kB; LANGSearch_MB := LANGfrSearch_MB; LANGSearch_days := LANGfrSearch_days; LANGSearch_weeks := LANGfrSearch_weeks; LANGSearch_months := LANGfrSearch_months; LANGSearch_years := LANGfrSearch_years; LANGSearch_Caption := LANGfrSearch_Caption; LANGSearch_General := LANGfrSearch_General; LANGSearch_Advanced := LANGfrSearch_Advanced; LANGSearch_SearchResults := LANGfrSearch_SearchResults; LANGSearch_SearchFor := LANGfrSearch_SearchFor; LANGSearch_FileMaskEntryTooltip := LANGfrSearch_FileMaskEntryTooltip; LANGSearch_SearchIn := LANGfrSearch_SearchIn; LANGSearch_SearchArchivesCheckButton := LANGfrSearch_SearchArchivesCheckButton; LANGSearch_FindText := LANGfrSearch_FindText; LANGSearch_FindTextEntryTooltip := LANGfrSearch_FindTextEntryTooltip; LANGSearch_CaseSensitiveCheckButton := LANGfrSearch_CaseSensitiveCheckButton; LANGSearch_StayCurrentFSCheckButton := LANGfrSearch_StayCurrentFSCheckButton; LANGSearch_CaseSensitiveMatchCheckButton := LANGfrSearch_CaseSensitiveMatchCheckButton; LANGSearch_Size := LANGfrSearch_Size; LANGSearch_Date := LANGfrSearch_Date; LANGSearch_BiggerThan := LANGfrSearch_BiggerThan; LANGSearch_SmallerThan := LANGfrSearch_SmallerThan; LANGSearch_ModifiedBetweenRadioButton := LANGfrSearch_ModifiedBetweenRadioButton; LANGSearch_NotModifiedAfterRadioButton := LANGfrSearch_NotModifiedAfterRadioButton; LANGSearch_ModifiedLastRadioButton := LANGfrSearch_ModifiedLastRadioButton; LANGSearch_ModifiedNotLastRadionButton := LANGfrSearch_ModifiedNotLastRadionButton; LANGSearch_ModifiedBetweenEntry1 := LANGfrSearch_ModifiedBetweenEntry1; LANGSearch_ViewButtonCaption := LANGfrSearch_ViewButtonCaption; LANGSearch_NewSearchButtonCaption := LANGfrSearch_NewSearchButtonCaption; LANGSearch_GoToFileButtonCaption := LANGfrSearch_GoToFileButtonCaption; LANGSearch_FeedToListboxButtonCaption := LANGfrSearch_FeedToListboxButtonCaption; LANGSearch_StatusSC := LANGfrSearch_StatusSC; LANGSearch_Ready := LANGfrSearch_Ready; LANGSearch_PreparingToSearch := LANGfrSearch_PreparingToSearch; LANGSearch_SearchInProgress := LANGfrSearch_SearchInProgress; LANGSearch_UserCancelled := LANGfrSearch_UserCancelled; LANGSearch_SearchFinished := LANGfrSearch_SearchFinished; LANGSearch_FilesFound := LANGfrSearch_FilesFound; LANGSearch_And := LANGfrSearch_And; LANGCloseOpenConnection := LANGfrCloseOpenConnection; LANGDuplicateTabWarning := LANGfrDuplicateTabWarning; LANGDontShowAgain := LANGfrDontShowAgain; LANGSwitchOtherPanelWarning := LANGfrSwitchOtherPanelWarning; LANGOpenConnectionsWarning := LANGfrOpenConnectionsWarning; LANGmiDisconnect_Caption := LANGfrmiDisconnect_Caption; LANGDisconnectButton_Tooltip := LANGfrDisconnectButton_Tooltip; LANGLeaveArchiveButton_Tooltip := LANGfrLeaveArchiveButton_Tooltip; LANGOpenTerminalButton_Tooltip := LANGfrOpenTerminalButton_Tooltip; LANGOpenTerminalButton_Caption := LANGfrOpenTerminalButton_Caption; LANGShowTextUIDsCheckBox_Caption := LANGfrShowTextUIDsCheckBox_Caption; LANGShowTextUIDsCheckBox_Tooltip := LANGfrShowTextUIDsCheckBox_Tooltip; LANGmiNewTab_Caption := LANGfrmiNewTab_Caption; LANGFilePopupMenu_Properties := LANGfrFilePopupMenu_Properties; LANGCommandEntry_Tooltip := LANGfrCommandEntry_Tooltip; LANGmiFiles_Caption := LANGfrmiFiles_Caption; LANGPasswordButton_Tooltip := LANGfrPasswordButton_Tooltip; LANGHandleRunFromArchive_Bytes := LANGfrHandleRunFromArchive_Bytes; LANGHandleRunFromArchive_FileTypeDesc_Unknown := LANGfrHandleRunFromArchive_FileTypeDesc_Unknown; LANGHandleRunFromArchive_NotAssociated := LANGfrHandleRunFromArchive_NotAssociated; LANGHandleRunFromArchive_SelfExecutable := LANGfrHandleRunFromArchive_SelfExecutable; LANGHandleRunFromArchive_CouldntCreateTemporaryDirectory := LANGfrHandleRunFromArchive_CouldntCreateTemporaryDirectory; LANGFRunFromVFS_Caption := LANGfrFRunFromVFS_Caption; LANGFRunFromVFS_TitleLabel := LANGfrFRunFromVFS_TitleLabel; LANGFRunFromVFS_FileNameLabel := LANGfrFRunFromVFS_FileNameLabel; LANGFRunFromVFS_FileTypeLabel := LANGfrFRunFromVFS_FileTypeLabel; LANGFRunFromVFS_SizeLabel := LANGfrFRunFromVFS_SizeLabel; LANGFRunFromVFS_PackedSizeLabel := LANGfrFRunFromVFS_PackedSizeLabel; LANGFRunFromVFS_DateLabel := LANGfrFRunFromVFS_DateLabel; LANGFRunFromVFS_InfoLabel := LANGfrFRunFromVFS_InfoLabel; LANGFRunFromVFS_OpensWithLabel := LANGfrFRunFromVFS_OpensWithLabel; LANGFRunFromVFS_ExecuteButton := LANGfrFRunFromVFS_ExecuteButton; LANGFRunFromVFS_ExecuteAllButton := LANGfrFRunFromVFS_ExecuteAllButton; LANGFSetPassword_Caption := LANGfrFSetPassword_Caption; LANGFSetPassword_Label1_Caption := LANGfrFSetPassword_Label1_Caption; LANGFSetPassword_Label2_Caption := LANGfrFSetPassword_Label2_Caption; LANGFSetPassword_ShowPasswordCheckButton := LANGfrFSetPassword_ShowPasswordCheckButton; LANGCopyFileNamesToClipboard := LANGfrCopyFileNamesToClipboard; LANGCopyFullPathNamesToClipboard := LANGfrCopyFullPathNamesToClipboard; LANGCopyPathToClipboard := LANGfrCopyPathToClipboard; LANGPreferences_DateFormatLabel_Caption := LANGfrPreferences_DateFormatLabel_Caption; LANGPreferences_System := LANGfrPreferences_System; LANGPreferences_Custom := LANGfrPreferences_Custom; LANGPreferences_CustomDateFormatEntry_Tooltip := LANGfrPreferences_CustomDateFormatEntry_Tooltip; LANGPreferences_TimeFormatLabel_Caption := LANGfrPreferences_TimeFormatLabel_Caption; LANGPreferences_CustomTimeFormatEntry_Tooltip := LANGfrPreferences_CustomTimeFormatEntry_Tooltip; LANGPreferences_DateTimeFormatLabel_Caption := LANGfrPreferences_DateTimeFormatLabel_Caption; LANGPreferences_QuickRenameSkipExtCheckBox := LANGfrPreferences_QuickRenameSkipExtCheckBox; LANGPreferences_QuickRenameSkipExtCheckBox_Tooltip := LANGfrPreferences_QuickRenameSkipExtCheckBox_Tooltip; LANGPreferences_SortDirectoriesLikeFilesCheckBox := LANGfrPreferences_SortDirectoriesLikeFilesCheckBox; LANGPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip := LANGfrPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip; LANGPreferences_QuickSearchLabel_Caption := LANGfrPreferences_QuickSearchLabel_Caption; LANGPreferences_QuickSearchOptionMenu_Tooltip := LANGfrPreferences_QuickSearchOptionMenu_Tooltip; LANGPreferences_QuickSearch_Option1 := LANGfrPreferences_QuickSearch_Option1; LANGPreferences_QuickSearch_Option2 := LANGfrPreferences_QuickSearch_Option2; LANGPreferences_QuickSearch_Option3 := LANGfrPreferences_QuickSearch_Option3; LANGPreferences_QuickSearch_Option4 := LANGfrPreferences_QuickSearch_Option4; LANGPreferences_TempPathLabel_Caption := LANGfrPreferences_TempPathLabel_Caption; LANGPreferences_VFSTempPathLabel_Caption := LANGfrPreferences_VFSTempPathLabel_Caption; LANGPreferences_VFSTempPathEntry_Tooltip := LANGfrPreferences_VFSTempPathEntry_Tooltip; LANGPreferences_RightClickSelectCheckBox := LANGfrPreferences_RightClickSelectCheckBox; LANGPreferences_RightClickSelectCheckBox_Tooltip := LANGfrPreferences_RightClickSelectCheckBox_Tooltip; LANGGtkMountOperation_ConnectAnonymously := LANGfrGtkMountOperation_ConnectAnonymously; LANGGtkMountOperation_ConnectAsUser := LANGfrGtkMountOperation_ConnectAsUser; LANGGtkMountOperation_Username := LANGfrGtkMountOperation_Username; LANGGtkMountOperation_Domain := LANGfrGtkMountOperation_Domain; LANGGtkMountOperation_Password := LANGfrGtkMountOperation_Password; LANGGtkMountOperation_DoNotSavePassword := LANGfrGtkMountOperation_DoNotSavePassword; LANGGtkMountOperation_ForgetPasswordImmediately := LANGfrGtkMountOperation_ForgetPasswordImmediately; LANGGtkMountOperation_RememberPasswordUntilYouLogout := LANGfrGtkMountOperation_RememberPasswordUntilYouLogout; LANGGtkMountOperation_SavePasswordInConnectionManager := LANGfrGtkMountOperation_SavePasswordInConnectionManager; LANGGtkMountOperation_RememberForever := LANGfrGtkMountOperation_RememberForever; LANGFSymlink_RelativePath := LANGfrFSymlink_RelativePath; LANGFConnectionManager_DuplicateButton_Caption := LANGfrFConnectionManager_DuplicateButton_Caption; LANGFConnectionManager_DuplicateButton_Tooltip := LANGfrFConnectionManager_DuplicateButton_Tooltip; LANGFConnectionManager_DoNotSavePasswordsCheckBox_Label := LANGfrFConnectionManager_DoNotSavePasswordsCheckBox_Label; LANGFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip := LANGfrFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip; LANGFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label := LANGfrFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label; LANGFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip := LANGfrFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip; LANGFConnectionManager_DuplicateMenuItem_Caption := LANGfrFConnectionManager_DuplicateMenuItem_Caption; LANGFQuickConnect_Caption := LANGfrFQuickConnect_Caption; LANGFQuickConnect_TitleLabel_Caption := LANGfrFQuickConnect_TitleLabel_Caption; LANGFQuickConnect_ConnectToURILabel_Caption := LANGfrFQuickConnect_ConnectToURILabel_Caption; LANGLinkToS := LANGfrLinkToS; LANGOpenDirectoryInBackgroundTab := LANGfrOpenDirectoryInBackgroundTab; LANGTheActiveConnectionHasNotBeenSaved := LANGfrTheActiveConnectionHasNotBeenSaved; LANGTheArchiveIsEncryptedAndRequiresPassword := LANGfrTheArchiveIsEncryptedAndRequiresPassword; end; initialization AddTranslation('FR', @SetTranslation); AddTranslation('fr_FR', @SetTranslation); end. tuxcmd-0.6.70+dfsg/translations/UTranslation_CHT.pas0000644000175000017500000024571011300022643021414 0ustar salvisalvi(* Tux Commander - UTranslation_CHT - Traditional Chinese Localization constants Copyright (C) 2008 Kend Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UTranslation_CHT; (*************************************************************************** * Info for translators: - please use UTF-8 encoding when making translations, the whole GTK+ 2 is using it to display non-ASCII characters properly - please change the few lines at the bottom of this file to your locale string (e.g. en_US for English translation) ***************************************************************************) interface implementation uses ULocale; const LANGchtF2Button_Caption = 'F2 - ã‘îš½'; LANGchtF3Button_Caption = 'F3 - ç©îƒ¸'; LANGchtF4Button_Caption = 'F4 - 絪胯'; LANGchtF5Button_Caption = 'F5 - 確'; LANGchtF6Button_Caption = 'F6 - 簿笆'; LANGchtF7Button_Caption = 'F7 - ç©î‚•ヘé­'; LANGchtF8Button_Caption = 'F8 - 埃'; LANGchtmnuFile_Caption = 'ゅン(_F)'; LANGchtmnuMark_Caption = '夹癘_M)'; LANGchtmnuCommands_Caption = 'ã‘(_C)'; LANGchtmnuHelp_Caption = '腊(_H)'; LANGchtmiExit_Caption = '癶(_X)'; LANGchtmiSelectGroup_Caption = '匡拒舱(_G)...'; LANGchtmiUnselectGroup_Caption = 'îŸî‡åŒ¡æ‹’舱(_U)...'; LANGchtmiSelectAll_Caption = '匡(_S)'; LANGchtmiUnselectAll_Caption = 'îŸî‡îž„匡(_N)'; LANGchtmiInvertSelection_Caption = 'ã¯åŒ¡(_I)'; LANGchtmiRefresh_Caption = 'îŸç©(_R)'; LANGchtmiAbout_Caption = '闽(_A)...'; LANGchtColumn1_Caption = '嘿'; LANGchtColumn2_Caption = '耎甶'; LANGchtColumn3_Caption = 'î˜î˜–'; LANGchtColumn4_Caption = 'ら戳'; LANGchtColumn5_Caption = '妮┦'; LANGchtExpandSelection = '耎î˜åŒ¡æ‹’'; LANGchtShrinkSelection = 'Μ罽匡拒'; LANGchtNoMatchesFound = '⊿ΤтîŸã§çšŒå…œ'; LANGchtNoFilesSelected = '⊿Τゅン砆匡拒!'; LANGchtSelectedFilesDirectories = '%d ゅン/ヘé­ç †åŒ¡æ‹’'; LANGchtDirectoryS = 'ãƒ˜é­ %s'; LANGchtFileS = 'ゅン %s'; LANGchtDoYouReallyWantToDeleteTheS = '痷稱埃 %s ?'; LANGchtDoYouReallyWantToDeleteTheSS = '痷稱埃 %s ?'#10'%s'; LANGchtCopyFiles = '確ゅン'; LANGchtMoveRenameFiles = '簿笆/ã‘ゅン'; LANGchtCopyDFileDirectoriesTo = '確 %d ゅン/ヘé­îŸ'; LANGchtMoveRenameDFileDirectoriesTo = '簿笆/ã‘îš½ %d ゅン/ヘé­îŸ'; LANGchtCopySC = '確:'; LANGchtMoveRenameSC = '簿笆/ã‘îš½:'; LANGchtQuickFind = ' е硉ç©Ñ‚:'; LANGchtAboutString = 'Tux Commander'#10'セ %s'#10'ミら戳: %s'#10#10'舦┮Τ (c) 2008 Tomas Bzatek'#10'E-mail: tbzatek@users.sourceforge.net'#10'Website: http://tuxcmd.sourceforge.net/'#10'ç°™ã¦: Kend [kendling@21cn.com]'; LANGchtAboutStringGnome = 'セ %s'#10'ミら戳: %s'#10'呼: http://tuxcmd.sourceforge.net/'; LANGchtDiskStatFmt = '%s 盯, %s'; LANGchtDiskStatVolNameFmt = '[%s] %s 盯, %s'; LANGchtStatusLineFmt = '%s  %s  %d  %d ゅン砆匡拒'; LANGchtPanelStrings : array[boolean] of string = ('right', 'left'); LANGchtDIR = ''; LANGchtErrorGettingListingForSPanel = 'èŽ‰îŸ %s 狾îŒî† î™žå²¿:'#10' %s'#10#10'隔畖 = ''%s'''; LANGchtErrorGettingListingForSPanelNoPath = 'èŽ‰îŸ %s 狾îŒî† î™žå²¿:'#10' %s'; LANGchtErrorCreatingNewDirectorySInSPanel = 'ç©î‚•ãƒ˜é­ ''%s''  %s 狾岿:'#10' %s'; LANGchtErrorCreatingNewDirectorySInSPanelNoPath = 'ç©î‚•ヘé­î›ˆ %s 狾岿:'#10' %s'; LANGchtTheFileDirectory = 'ゅン/ヘé­'; LANGchtCouldNotBeDeleted = 'ãƒîˆ•埃'; LANGchtCouldNotBeDeletedS = 'ãƒîˆ•埃: %s'; LANGchtUserCancelled = 'ノã‚î˜îŸî‡!'; LANGchtTheDirectorySIsNotEmpty = 'ãƒ˜é­ %s ãƒîƒ‹î€¤!'; LANGchtCannotCopyFile = 'ãƒîˆ•確ゅン'; LANGchtCopyError = '確岿粇'; LANGchtMoveError = '簿笆岿粇'; LANGchtOverwriteS = '確籠: %s'; LANGchtWithFileS = 'ゅン: %s'; LANGchtOvewriteSBytesS = '%s 竊, %s'; LANGchtTheFile = 'ゅン'; LANGchtCopy = '確'; LANGchtMove = '簿笆'; LANGchtTheDirectory = 'ヘé­'; LANGchtTheSymbolicLink = 'æ‰è…¹ç¡ˆé’¡'; LANGchtCannotMoveFile = 'ãƒîˆ•簿笆ゅン'; LANGchtCouldNotBeCreated = 'ãƒîˆ•承'; LANGchtCouldNotBeCreatedS = 'ãƒîˆ•承承: %s'; LANGchtFromS = '眖: %s'; LANGchtToS = 'îŸ: %s'; LANGchtCannotCopyFileToItself = 'ãƒîˆ•確ゅンîŸîžÅ'; LANGchtMemoryAllocationFailed = 'ãšî›™ã çšŒã‚¢æ¯–:'; LANGchtCannotOpenSourceFile = 'ãƒîˆ•ゴ秨方ゅン'; LANGchtCannotOpenDestinationFile = 'ãƒîˆ•ゴ秨ヘ夹ゅン'; LANGchtCannotCloseDestinationFile = 'ãƒîˆ•闽超ヘ夹ゅン'; LANGchtCannotCloseSourceFile = 'ãƒîˆ•闽超方ゅン'; LANGchtCannotReadFromSourceFile = 'ãƒîˆ•眖方ゅン弄îŸ'; LANGchtCannotWriteToDestinationFile = 'ãƒîˆ•ç³¶îŸãƒ˜å¤¹ã‚…ン'; LANGchtUnknownException = 'ゼî€é’µç›½'; LANGchtNoAccess = 'âŠ¿Î¤ç æ‹œ'; LANGchtUnknownError = 'ゼî€å²¿ç²‡'; LANGchtCreateANewDirectory = '承ç©ãƒ˜é­'; LANGchtEnterDirectoryName = 'å—ヘé­îš½(_D):'; LANGchtOverwriteQuestion = '確籠矗ボ'; LANGchtOverwriteButton_Caption = '確籠(_O)'; LANGchtOverwriteAllButton_Caption = '確籠┮Τ(_A)'; LANGchtSkipButton_Caption = '铬ç­(_S)'; LANGchtOverwriteAllOlderButton_Caption = '確籠侣ゅン(_D)'; LANGchtSkipAllButton_Caption = '场铬ç­(_K)'; LANGchtRenameButton_Caption = 'ã‘îš½(_R)'; LANGchtAppendButton_Caption = 'î(_P)'; LANGchtRename = 'ã‘îš½'; LANGchtRenameFile = 'ã‘ゅン ''%s'' îŸ'; LANGchtIgnoreButton_Caption = 'â”›è (_I)'; LANGchtProgress = '秈'; LANGchtCancel = 'îŸî‡(_C)'; LANGchtDelete = '埃:'; LANGchtSpecifyFileType = '﹚ゅン摸î©(_S):'; LANGchtRemoveDirectory = '埃ヘé­'; LANGchtDoYouWantToDeleteItWithAllItsFilesAndSubdirectories = '絋﹚埃赣ヘé­î™Žã®Å„┮ΤゅンãŽî˜’ヘé­?'; LANGchtRetry = '刚(_R)'; LANGchtDeleteButton_Caption = '埃(_D)'; LANGchtAll = '场(_A)'; LANGchtCopyFilesSC = '確ゅン:'; LANGchtAppendQuestion = '絋﹚璶îゅン ''%s'' îŸ ''%s''?'; LANGchtPreparingList = 'タ称îŒ...'; LANGchtYouMustSelectAValidFile = 'ゲ惠匡拒Τゅン!'; LANGchtmiVerifyChecksums = '浪喷喷ãŽ(_V)'; LANGchtVerifyChecksumsCaption = '浪喷喷ãŽ'; LANGchtCheckButtonCaptionCheck = '浪ç©(_C)'; LANGchtCheckButtonCaptionStop = '氨ゎ(_S)'; LANGchtFileListTooltip = '[?] - ⊿Τ匡拒'#10'[OK] - 喷ãŽã‚¿çµ‹'#10'[BAD] - 喷ãŽã‚¢æ¯–'#10'[N/A] - ゅンãƒî™¯ãƒŽ'; LANGchtFilenameColumnCaption = 'ゅン'; LANGchtTheFileSYouAreTryingToOpenIsQuiteBig = '沽刚ゴ秨ゅン ''%s'' ã³î˜ (%s 竊). ウãƒçŒî—¦î…ŒÎ¤î†›î€™î†¬å–·ãŽã‚…ン.'#10#10'çŒîœ¥ç¨±î™¡æ›´ã‚¦?'; LANGchtAnErrorOccuredWhileInitializingMemoryBlock = 'î‹ï¹ã¦ãšî›™é祇ãƒå²¿ç²‡. å«é—½è¶…ㄇ祘刚.'; LANGchtAnErrorOccuredWhileOpeningFileSS = 'ゴ秨ゅン ''%s'' 祇ãƒå²¿ç²‡:'#10' %s'; LANGchtAnErrorOccuredWhileReadingFileSS = '弄îŸã‚…ン ''%s'' 祇ãƒå²¿ç²‡:'#10' %s'; LANGchtChecksumNotChecked = '篈: ⊿Τ匡拒'; LANGchtChecksumChecking = '篈: タ浪喷...'; LANGchtChecksumInterrupted = '篈: ã„耞'; LANGchtChecksumDOK = '篈: %d%% タ絋'; LANGchtmiCreateChecksumsCaption = '承喷ãŽ(_C)...'; LANGchtYouMustSelectAtLeastOneFileToCalculateChecksum = 'ゲ斗匡拒┪ゅン秈︽喷ãŽç’¸è¡¡!'; LANGchtCreateChecksumsCaption = '承喷ãŽ'; LANGchtCCHKSUMPage1Text = 'タ匡拒ゅン承喷ãŽã‚…ン.'#10'狦⊿Τ匡拒ゅン,'#10'å«é—½è¶…ç©åŒ¡æ‹’ゅン.'; LANGchtCCHKSUMPage4Text = 'î˜ç«’称匡拒ゅン承喷ãŽ.'#10'硂巨惠璶碭ã çµî† ä¸.'#10'虫阑玡秈膥尿.'; LANGchtCCHKSUMPage6Text = '承喷ãŽî† ç¥‡ãƒî™Žî—»å²¿ç²‡:'; LANGchtCCHKSUMPage7Text = 'î†¬å–·ãŽæ‰¿î‚•ЧΘ.'#10#10'虫阑 "ЧΘ" 秙癶.'; LANGchtCCHKSUMPage1Title = '喷ãŽî…œç§°ã‚…ン'; LANGchtCCHKSUMPage2Title = '匡拒喷ãŽã‚…ン摸î©'; LANGchtCCHKSUMPage3Title = '匡拒ゅン'; LANGchtCCHKSUMPage4Title = '称浪喷'; LANGchtCCHKSUMPage5Title = 'タ浪喷...'; LANGchtCCHKSUMPage6Title = '岿粇!'; LANGchtCCHKSUMPage7Title = 'ЧΘ'; LANGchtCCHKSUMSFVFile = 'SFV ゅン'; LANGchtCCHKSUMMD5sumFile = 'MD5sum ゅン'; LANGchtCCHKSUMFileName = 'ゅン(_N):'; LANGchtCCHKSUMCreateSeparateChecksumFiles = '–ゅン縒ミ承喷ãŽã‚…ン(_S)'; LANGchtCCHKSUMNowProcessingFileS = 'タ矪瞶ゅン: %s'; LANGchtCCHKSUMFinishCaption = 'ЧΘ(_F)'; LANGchtCCHKSUMAreYouSureYouWantToAbortTheProcessing = '絋﹚璶ã„耞讽玡巨?'; LANGchtCCHKSUMAnErrorOccuredWhileOpeningFileSS = 'ゴ秨ゅン ''%s'' 祇ãƒî—¦î…Œå²¿ç²‡: %s'#10; LANGchtCCHKSUMAnErrorOccuredWhileReadingFileSS = '弄îŸã‚…ン ''%s'' 祇ãƒî—¦î…Œå²¿ç²‡: %s'#10; LANGchtCCHKSUMAnErrorOccuredWhileWritingFileSS = '糶ゅン ''%s'' 祇ãƒî—¦î…Œå²¿ç²‡: %s'#10; LANGchtAnErrorOccuredWhileWritingFileSS = '糶ゅン ''%s'' 祇ãƒî—¦î…Œå²¿ç²‡:'#10' %s'; LANGchtTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt = 'ヘ夹ゅン ''%s'' î˜ç«’. çŒîœ¥ç’¶ç¢ºç± ã‚¦?'; LANGchtTheTargetFileSCannotBeRemovedS = 'ヘ夹ゅン ''%s'' ãƒîˆ•承: %s'; LANGchtMergeCaption = ''; LANGchtPleaseInsertNextDiskOrGiveDifferentLocation = 'å«ç¡€î—°î—»î—¦î…Œåˆç°„, ┪匡拒ㄤ隔畖:'; LANGchtMergeOfSSucceeded = ' ''%s'' Θ (CRC 喷ãŽã‚¿çµ‹).'; LANGchtWarningCreatedFileFailsCRCCheck = '牡: 承ゅンア毖 CRC 浪ç©!'; LANGchtMergeOfSSucceeded_NoCRCFileAvailable = ' ''%s'' Θ (⊿Τ CRC ゅンノ).'; LANGchtMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory = 'ダ抖 ''%s'' ãŽâ”®Î¤ã‚…ンîŸî™Žî—»ãƒ˜é­:'; LANGchtMergeSC = ':'; LANGchtmiSplitFileCaption = '╊ã ã‚…ン(_S)...'; LANGchtmiMergeFilesCaption = 'ゅン(_M)...'; LANGchtSplitTheFileSToDirectory = '╊ã ã‚…ン ''%s'' îŸãƒ˜é­(_S):'; LANGchtSplitSC = '╊ã :'; LANGchtSplitFile = '╊ã ã‚…ン'; LANGchtBytesPerFile = '–ゅン竊计(_B):'; LANGchtAutomatic = 'îžç¬†'; LANGchtDeleteFilesOnTargetDisk = 'ヘ夹åˆç°„埃ゅン(_D) (度簿笆碈砰)'; LANGchtSplitCaption = '╊ã '; LANGchtCannotOpenFileS = 'ãƒîˆ•ゴ秨ゅン ''%s'''; LANGchtCannotSplitTheFileToMoreThan999Parts = 'ãƒîˆ•рゅン╊ã îƒ‹ 999 场î½î™Žî—½!'; LANGchtThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem = 'ç˜ã„‡ã‚…ンî˜ç«’ヘ夹ヘé­î›™î›ˆ:'#10'%s'#10'çŒîœ¥îœ˜åŸƒç¡‚ㄇゅン?'; LANGchtThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem = '%d ゅンヘ夹ヘé­ã„. çŒîœ¥îœ˜åŸƒç¡‚ㄇゅン?'; LANGchtAnErrorOccuredWhileOperationS = '磅︽巨祇ãƒî—»î—¦î…Œå²¿ç²‡: %s'; LANGchtSplitOfSSucceeded = 'â•Šã  ''%s'' Θ.'; LANGchtSplitOfSFailed = 'â•Šã  ''%s'' ア毖!'; LANGchtmnuShow_Caption = '陪ボ(_W)'; LANGchtmiShowDotFiles_Caption = '陪ボ"."秨繷ゅン(_D)(留旅ゅン)'; LANGchtTheFileYouAreTryingToOpenIsQuiteBig = '沽刚ゴ秨ゅンã³î˜. 场祘( gedit)ã„更旧璓╰å‚絯篊.'#10'çŒîœ¥è†¥å°¿?'; LANGchtCannotExecuteSPleaseCheckTheConfiguration = 'ãƒîˆ•磅︽ ''%s''. 嫿µªç©çšŒç«šâ”ªç žç«šã‚…ン磅︽妮┦çŒîœ¥ã‚¿ç›½.'; LANGchtEdit = '絪胯'; LANGchtEnterFilenameToEdit = 'å—璶絪胯ゅン(_E):'; LANGchtmnuSettings_Caption = '砞竚(_T)'; LANGchtmiFileTypes_Caption = 'ゅン摸î©(_T)...'; LANGchtThereIsNoApplicationAssociatedWithS = 'âŠ¿Î¤ç¥˜îž¥é—½ç¾›îŸ "%s".'#10#10'皌竚 Tux Commander 闽羛îŸèµ£ã‚…ン摸î©. çŒîœ¥çž·î›ˆé—½ç¾›èµ£ã‚…ン摸î©îŸî—¦î…Œç¥˜îž¥?'; LANGchtErrorExecutingCommand = '磅︽ã‘岿粇!'; LANGchtEditFileTypesCaption = '絪胯ゅン摸î©'; LANGchtTitleLabel_Caption = 'ゅン摸î©çšŒç«š'; LANGchtExtensionsColumn = '耎甶'; LANGchtDescriptionColumn = '磞瓃'; LANGchtFileTypesList = 'ゅン摸î©îš©îŒ'; LANGchtActionName = '笲嘿'; LANGchtCommand = 'ã‘'; LANGchtSetDefaultActionButton_Caption = '砞(_S)'; LANGchtRunInTerminalCheckBox_Caption = '沧狠ã„笲︽(_T)'; LANGchtAutodetectCheckBox_Caption = 'îžç¬†æµªä»£ _GUI 祘'; LANGchtBrowseButton_Caption = 'è…å‡(_B)...'; LANGchtCommandLabel_Caption = 'ã‘(_M):'; LANGchtDescriptionLabel_Caption = '磞瓃(_E):'; LANGchtFNameExtLabel_Caption = 'ç°î™¡è€Žç”¶îš½(_D):'; LANGchtNotebookPageExtensions = 'ゅン摸î©'; LANGchtNotebookPageActions = '笲'; LANGchtDefault = ' ()'; LANGchtCannotSaveFileTypeAssociationsBecauseOtherProcess = 'ãƒîˆ•玂ゅン摸î©é—½ç¾›, 赣祘龟ㄒî˜ç«’îž°ç©.'; LANGchtDefaultColor = '肅︹(_F)'; LANGchtIcon = '瓜夹(_I):'; LANGchtBrowseForIcon = 'è…å‡ç“œå¤¹'; LANGchtSelectFileTypeColor = '匡拒ゅン摸î©è‚…︹'; LANGchtColor = '肅︹(_L):'; LANGchtmiChangePermissions_Caption = 'îž°Ñ舦(_M)...'; LANGchtmiChangeOwner_Caption = 'îž°Ñ┮Τ/舱...'; LANGchtmiCreateSymlink_Caption = '承æ‰è…¹ç¡ˆé’¡(_L)...'; LANGchtmiEditSymlink_Caption = '絪胯æ‰è…¹ç¡ˆé’¡(_E)...'; LANGchtChmodProgress = 'îž°Ñ舦:'; LANGchtChownProgress = 'îž°Ñ┮Τ:'; LANGchtYouMustSelectAValidSymbolicLink = 'ゲ惠匡拒Τæ‰è…¹îƒ‹ç¡ˆé’¡!'; LANGchtPopupRunS = '磅︽(_X) %s'; LANGchtPopupOpenS = 'ゴ秨(_P) %s'; LANGchtPopupGoUp = '(_G)'; LANGchtPopupOpenWithS = 'ゴ秨 %s'; LANGchtPopupDefault = ' ()'; LANGchtPopupOpenWith = 'ゴ秨(_P)...'; LANGchtPopupViewFile = 'ç©îƒ¸ã‚…ン(_V)'; LANGchtPopupEditFile = '絪胯ゅン(_I))'; LANGchtPopupMakeSymlink = '承æ‰è…¹ç¡ˆé’¡(_S)'; LANGchtPopupRename = 'ã‘îš½(_R)'; LANGchtPopupDelete = '埃(_D)'; LANGchtDialogChangePermissions = 'îž°Ñ度'; LANGchtCouldNotBeChmoddedS = 'ãƒîˆ•îž°Ñ舦: %s'; LANGchtDialogChangeOwner = 'îž°Ñ┮Τ'; LANGchtCouldNotBeChownedS = 'ãƒîˆ•îž°Ñ┮Τ: %s'; LANGchtDialogMakeSymlink = '承æ‰è…¹ç¡ˆé’¡'; LANGchtDialogEditSymlink = '絪胯æ‰è…¹ç¡ˆé’¡'; LANGchtFEditSymlink_Caption = '絪胯æ‰è…¹ç¡ˆé’¡'; LANGchtFEditSymlink_SymbolicLinkFilename = '絪胯æ‰è…¹ç¡ˆé’¡ã‚…ン(_S):'; LANGchtFEditSymlink_SymbolicLinkPointsTo = 'æ‰è…¹ç¡ˆé’¡îŸ(_T):'; LANGchtFChmod_Caption = 'ç æ‹œèˆ¦î„¦'; LANGchtFChmod_PermissionFrame = ''; LANGchtFChmod_FileFrame = 'ゅン'; LANGchtFChmod_ApplyRecursivelyFor = '莱ノîŸî˜’ゅンãŽãƒ˜é­(_R)'; LANGchtFChmod_miAllFiles = '┮ΤゅンãŽãƒ˜é­'; LANGchtFChmod_miDirectories = '度ヘé­'; LANGchtFChmod_OctalLabel = '秈(_O):'; LANGchtFChmod_SUID = 'SUID - 笲︽砞竚ノ゠ID'; LANGchtFChmod_SGID = 'SGID - 笲︽砞竚舱 ID'; LANGchtFChmod_Sticky = '诌禟'; LANGchtFChmod_RUSR = 'RUSR - ┮Τ弄'; LANGchtFChmod_WUSR = 'WUSR - ┮Τ糶'; LANGchtFChmod_XUSR = 'XUSR - ┮Τ磅︽/穓'; LANGchtFChmod_RGRP = 'RGRP - 舱弄'; LANGchtFChmod_WGRP = 'WGRP - 舱糶'; LANGchtFChmod_XGRP = 'XGRP - 舱磅︽/穓'; LANGchtFChmod_ROTH = 'ROTH - ㄤ弄'; LANGchtFChmod_WOTH = 'WOTH - ㄤ糶'; LANGchtFChmod_XOTH = 'XOTH - ㄤ磅︽/穓'; LANGchtFChmod_TextLabel = 'ã‚…ã‚»: %s'; LANGchtFChmod_FileLabel = 'ゅン: %s'#10'ã‚…ã‚»: %s'#10 + '秈: %d'#10'┮Τ: %s'#10 + '舱: %s'; LANGchtFChown_Caption = 'îž°Ñ â”®Î¤î€«/舱'; LANGchtFChown_OwnerFrame = 'ノã‚îš½'; LANGchtFChown_GroupFrame = '舱'; LANGchtFChown_FileFrame = 'ゅン'; LANGchtFChown_ApplyRecursively = '莱ノîŸî˜’ゅンãŽãƒ˜é­(_R)'; LANGchtFSymlink_Caption = '承æ‰è…¹ç¡ˆé’¡'; LANGchtFSymlink_ExistingFilename = 'î˜î›™î›ˆã‚…ン(_E) (æ‰è…¹ç¡ˆé’¡îŸî€™ã‚…ン):'; LANGchtFSymlink_SymlinkFilename = 'æ‰è…¹ç¡ˆé’¡ã‚…ン(_S):'; LANGchtmnuBookmarks_Caption = '帽(_B)'; LANGchtmiAddBookmark_Caption = 'ç°î™¡ç°î™¡'; LANGchtmiEditBookmarks_Caption = '絪胯絪胯'; LANGchtBookmarkPopupDelete_Caption = '埃(_D)'; LANGchtmiPreferences_Caption = '把计(_P)...'; LANGchtTheCurrentDirectoryAlreadyExistsInTheBookmarksList = '讽玡ヘé­î˜ç«’帽ã„'; LANGchtSomeOtherInstanceChanged = 'ㄤ Tux Commander 龟ㄒî˜ç«’îž°Ñ皌竚. çŒîœ¥èޱîŸç©ç©ç žç«š?'#10#10'牡: 狦翴阑"", 讽玡皌竚盢穦確籠程ç©ç žç«š'' 癶!'; LANGchtPreferences_Caption = '把计'; LANGchtPreferences_TitleLabel_Caption = '祘把计'; LANGchtPreferences_GeneralPage = '盽ç '; LANGchtPreferences_FontsPage = '砰'; LANGchtPreferences_ColorsPage = '肅︹'; LANGchtPreferences_RowHeight = '︽蔼(_H):'; LANGchtPreferences_NumHistoryItems = 'ã‘︽èŒî™¼å…œãƒ˜è®¡(_M):'; LANGchtPreferences_Default = '(_D)'; LANGchtPreferences_ClearReadonlyAttribute = '眖 CD-ROM 確ゅン贬ç²åŸƒî™»å¼„妮┦(_R)'; LANGchtPreferences_DisableMouseRenaming = '窽ノ公夹ã‘îš½(_M)'; LANGchtPreferences_ShowFiletypeIconsInList = '陪ボゅン摸î©ç“œå¤¹(_F)'; LANGchtPreferences_ExternalAppsLabel = '场祘'; LANGchtPreferences_Viewer = 'ç©îƒ¸ç«Ÿ(_V):'; LANGchtPreferences_Editor = '絪胯竟(_E):'; LANGchtPreferences_Terminal = 'æ²§ç‹ (_T):'; LANGchtPreferences_ListFont = 'îš©îŒî›˜ç °:'; LANGchtPreferences_Change = 'îž°Ñ...'; LANGchtPreferences_UseDefaultFont = 'ã„ノ砰(_D)'; LANGchtPreferences_Foreground = '玡春'; LANGchtPreferences_Background = '璉春'; LANGchtPreferences_NormalItem = '兜:'; LANGchtPreferences_SetToDefaultToUseGTKThemeColors = '砞竚 GTK 肈肅︹'; LANGchtPreferences_Cursor = '肅︹:'; LANGchtPreferences_InactiveItem = 'ãƒç¸€ç¬†å…œ:'; LANGchtPreferences_SelectedItem = 'î˜åŒ¡æ‹’å…œ:'; LANGchtPreferences_LinkItem = 'æ‰è…¹ç¡ˆé’¡:'; LANGchtPreferences_LinkItemHint = '砞竚陪ボæ‰è…¹ç¡ˆé’¡è‚…︹ã„ノタ盽兜肅︹'; LANGchtPreferences_DotFileItem = '"."秨繷ゅン:'; LANGchtPreferences_DotFileItemHint = '砞竚陪ボ"."秨繷ゅンã„ノタ盽兜肅︹'; LANGchtPreferences_BrowseForApplication = 'è…å‡èŽ±ãƒŽç¥˜îž¥'; LANGchtPreferences_DefaultS = ': %s'; LANGchtPreferences_SelectFont = '匡拒砰'; (*************** STRINGS ADDED TO v0.4.101 **********************************************************************************) LANGchtBookmarkButton_Tooltip = '陪ボ帽'; LANGchtUpButton_Tooltip = '锣îŸî—½î—¦ç³·ãƒ˜é­'; LANGchtRootButton_Tooltip = '锣îŸî†±ãƒ˜é­ (/)'; LANGchtHomeButton_Tooltip = '锣îŸãƒŽã‚ãƒ˜é­ (/home/user)'; LANGchtLeftEqualButton_Tooltip = 'ã¡ä¼ î™±î„ªç‹¾îŸîƒ¶îš¶ãƒ˜é­'; LANGchtRightEqualButton_Tooltip = 'ã¡ä¼ ã‚ªî„ªç‹¾îŸîƒ¶îš¶ãƒ˜é­'; LANGchtmiShowDirectorySizes_Caption = '陪ボヘé­î˜î˜–(_I)'; LANGchtmiTargetSource_Caption = 'ヘ夹 = æ–¹(_O)'; LANGchtFileTypeDirectory = 'ヘé­'; LANGchtFileTypeFile = 'ゅン'; LANGchtFileTypeMetafile = 'ç¡‚çŒî—¦î…Œãノ碈砰兜'; LANGchtPreferencesPanelsPage = '狾'; LANGchtPreferencesApplicationsPage = '莱ノ祘'; LANGchtPreferencesExperimentalPage = '龟喷兜'; LANGchtPreferencesSelectAllDirectoriesCheckBox_Caption = '匡ç¹ãƒ˜é­(_A)'; LANGchtPreferencesNewStyleAltOCheckBox_Caption = 'ç©å¦“Α(_N) Alt+O'; LANGchtPreferencesNewStyleAltOCheckBox_Tooltip = ' Ctrl/Alt+O ã¡ä¼ ãƒ˜å¤¹î„ªç‹¾î€™ãƒ˜é­î† æ°¨ç—™î›ˆîƒ¶îš¶î€™ãƒ˜é­'; LANGchtPreferencesShowFuncButtonsCheckBox_Caption = '陪ボ秙(_K)'; LANGchtPreferencesSizeFormatLabel_Caption = 'î˜î˜–Α(_S):'; LANGchtPreferencesmiSizeFormat1 = 'â•°å‚'; LANGchtPreferencesmiSizeFormat6 = '舱'; LANGchtPreferencesAutodetectXApp = 'îžç¬†æµªä»£ X 祘'; LANGchtPreferencesAlwaysRunInTerminal = '羆çŒî›ˆæ²§ç‹ ã„笲︽'; LANGchtPreferencesNeverRunInTerminal = 'ッãƒî›ˆæ²§ç‹ ã„笲︽'; LANGchtPreferencesCmdLineBehaviourLabel_Caption = '眖ã‘︽磅︽(_E):'; LANGchtPreferencesFeatures = ''; LANGchtPreferencesDisableMouseRename_Tooltip = 'ã”ç¤›î™¯î™Žç¡„ç­ Shift+F6 е硉ã‘îš½'; LANGchtPreferencesDisableFileTipsCheckBox_Caption = '窽ノゅン矗ボ(_T)'; LANGchtPreferencesDisableFileTipsCheckBox_Tooltip = '狾ã„ゅ砆篒耞ãƒé™ªãƒœçŸ—ボ'; LANGchtPreferencesShow = '陪ボ'; LANGchtPreferencesDirsInBoldCheckBox_Caption = 'ヘé­ã„ノ彩砰(_B)'; LANGchtPreferencesDisableDirectoryBracketsCheckBox_Caption = '留旅ヘé­î€™ã‚ˆç¹è…¹(_R)'; LANGchtPreferencesOctalPermissionsCheckBox_Caption = '陪ボ秈舦(_O)'; LANGchtPreferencesOctalPermissionsCheckBox_Tooltip = '计Α陪ボゅン/ヘé­èˆ¦î„¦î“‡çºç²„ (-rw-rw-rw-) Α'; LANGchtPreferencesMovement = 'Movement'; LANGchtPreferencesLynxLikeMotionCheckBox_Caption = '_Lynx-like motion'; LANGchtPreferencesInsertMovesDownCheckBox_Caption = ' _Insert 夹簿'; LANGchtPreferencesSpaceMovesDownCheckBox_Caption = '夹簿(_S)'; LANGchtPreferencesViewer = 'ç©îƒ¸ç«Ÿ'; LANGchtPreferencesCommandSC = 'ã‘:'; LANGchtPreferencesUseInternalViewer = 'ã„ノãšç«šç©îƒ¸ç«Ÿ(_I)'; LANGchtPreferencesEditor = '絪胯竟'; LANGchtPreferencesTerminal = 'æ²§ç‹ '; LANGchtPreferencesExperimentalFeatures = '砰喷'; LANGchtPreferencesExperimentalWarningLabel_Caption = '牡: 硂ㄇ讽玡临秨祇顶ç¿, ãƒîˆ•タ盽. ã„ノ盢îžï¸½â”¯è¸žî„°ç¹§!'; LANGchtPreferencesFocusRefreshCheckBox_Caption = '怠莉îŸç¤˜ç¿´î† ç§ˆï¸½îŸç©(_R)'; LANGchtPreferencesFocusRefreshCheckBox_Tooltip = '硂î…狾îŸç©ç¶ç›½ç¯Š'; LANGchtPreferencesWMCompatModeCheckBox_Caption = '_WM 甧家Α'; LANGchtPreferencesWMCompatModeCheckBox_Tooltip = '讽ã„ノㄇ怠æ¨çž¶ç«Ÿî† î™¯î™Žã„ノ匡兜(ã„’î›– IceWM ãƒîˆ•ã„æ€ î˜Œã‚¿ç›½ç¨‹î˜ã¦)'; LANGchtPreferencesCompatUseLibcSystemCheckBox_Caption = 'ã„ノ libc _system() 磅︽祘'; LANGchtPreferencesCompatUseLibcSystemCheckBox_Tooltip = '磅︽场祘祇ãƒå²¿ç²‡î† ã„ノ'; (*************** STRINGS ADDED TO v0.5.70 **********************************************************************************) LANGchtmiSearchCaption2 = 'タ穓(_S)...'; LANGchtmiNoMounterBarCaption = 'ãƒé™ªãƒœè‡±ç¬†ç«Ÿî˜›ã„£é€†'; LANGchtmiShowOneMounterBarCaption = '陪ボ臱笆竟ㄣ逆(_O)'; LANGchtmiShowTwoMounterBarCaption = '陪ボㄢ臱笆竟ㄣ逆(_T)'; LANGchtmnuNetworkCaption = '呼蹈(_E)'; LANGchtmiConnectionsCaption = '硈钡(_C)...'; LANGchtmiOpenConnectionCaption = 'ゴ秨硈钡(_Open)...'; LANGchtmiQuickConnectCaption = 'е硉硈钡(_Q)...'; LANGchtmnuPluginsCaption = '础ン(_U)'; LANGchtmiTestPluginCaption = '代刚础ン(_T)...'; LANGchtmiMounterSettingsCaption = '臱笆竟砞竚(_M)...'; LANGchtmiColumnsCaption = '狾(_A)...'; LANGchtmiSavePositionCaption = '玂竚(_S)'; LANGchtmiMountCaption = '更(_M)'; LANGchtmiUmountCaption = '更(_U)'; LANGchtmiEjectCaption = '紆(_E)'; LANGchtmiDuplicateTabCaption = '確讽玡夹帽'; LANGchtmiCloseTabCaption = '闽超讽玡夹帽'; LANGchtmiCloseAllTabsCaption = '闽超┮Τ夹帽'; LANGchtCannotDetermineDestinationEngine = 'ãƒîˆ•絋﹚ヘ夹ã¾ç¯®. å«å—タ絋隔畖刚.'; LANGchtCannotLoadFile = 'ãƒîˆ•更ゅン ''%s''. 嫿µªç©èˆ¦î„¦.'; LANGchtMountPointDevice = '更翴: %s'#10'ç žç§°: %s'; LANGchtMountSC = '更:'; LANGchtNoPluginsFound = '⊿ΤтîŸç¡€ãƒ³'; LANGchtPluginAbout = '闽...'; LANGchtCouldntOpenURI = 'ãƒîˆ•ゴ秨﹚URI. 嫿µªç©æˆˆæ–¹å¤¹é†šî€™î—¦ç’“┦ãŽç æ‹œèˆ¦î„¦.'; LANGchtPluginAboutInside = '础ン: %s'#10#10'%s'#10'%s'; LANGchtAreYouSureCloseAllTabs = '絋﹚璶闽超┮Τç¶î‚¼ç¬†î€™å¤¹å¸½?'; LANGchtCouldntOpenURIArchive = 'ãƒîˆ•ゴ秨ゅ郎. 嫿µªç©î—¦ç’“┦ãŽç æ‹œèˆ¦î„¦.'; LANGchtThereIsNoModuleAvailable = '⊿Τノ VFS å®¶é矪瞶讽玡硈钡'; LANGchtIgnoreError = '絋﹚璶┛è ç¡‚岿粇? 方ゅン盢穦砆埃'; LANGchtErrorMount = '更砞称 ''%s'' 祇ãƒå²¿ç²‡:'#10#10; LANGchtErrorUmount = '更 ''%s'' 祇ãƒå²¿ç²‡:'#10#10; LANGchtErrorEject = '紆 ''%s'' 祇ãƒå²¿ç²‡:'#10#10; LANGchtMounterPrefs_Caption = '臱笆竟砞竚'; LANGchtMounterPrefs_TitleLabelCaption = '臱笆竟砞竚'; LANGchtMounterPrefs_ListViewFrameCaption = '臱笆竟'; LANGchtMounterPrefs_MountName = '更嘿'; LANGchtMounterPrefs_MountPoint = '更翴'; LANGchtMounterPrefs_Device = 'ç žç§°'; LANGchtMounterPrefs_MoveUpButtonTooltip = '簿兜ヘ'; LANGchtMounterPrefs_MoveDownButtonTooltip = '簿兜ヘ'; LANGchtMounterPrefs_UseFSTabDefaultsCheckBox = 'ã„ノ _fstab 兜ヘ'; LANGchtMounterPrefs_UseFSTabDefaultsCheckBoxTooltip = '匡ã„, 臱笆竟ㄣ逆盢穦 /etc/fstab (â•°å‚更îŒã‚…ン) ゅンã„ç©Ñ‚臱笆竟'; LANGchtMounterPrefs_ToggleModeCheckBox = '更ЧΘ玂秙'; LANGchtMounterPrefs_ToggleModeCheckBoxTooltip = '匡ã„, 讽砞称更ЧΘ更秙盢玂篈; 翴阑盢穦更ウ (çŒç´†î™ž)'; LANGchtMounterPrefs_PropertiesFrameCaption = '臱笆竟妮┦'; LANGchtMounterPrefs_DisplayTextLabelCaption = '陪ボゅセ(_T):'; LANGchtMounterPrefs_MountPointLabelCaption = '更翴(_P):'; LANGchtMounterPrefs_MountDeviceLabelCaption = 'ç žç§°(_D):'; LANGchtMounterPrefs_DeviceTypeLabelCaption = '砞称摸î©(_Y):'; LANGchtMounterPrefs_miLocalDiskCaption = 'セåˆç°„'; LANGchtMounterPrefs_miRemovableCaption = '簿笆åˆç°„'; LANGchtMounterPrefs_miCDCaption = 'CD/DVD 臱笆竟'; LANGchtMounterPrefs_miFloppyCaption = 'ç¡ç°„臱笆竟'; LANGchtMounterPrefs_miNetworkCaption = '呼蹈'; LANGchtMounterPrefs_MountCommandLabelCaption = '更ã‘(_C):'; LANGchtMounterPrefs_UmountCommandLabelCaption = '更ã‘(_O):'; LANGchtMounterPrefs_MountCommandEntryTooltip = '粂猭: ã„ノ %dev 蠢砞称㎠%dir 更翴┪フã„ノ更'#10'猔種: 略ňユãŒÎ‘ã‘, tuxcmd 盢穦安!'#10'ㄒ: smbmount %dev %dir -o username=netuser,password=somepass'; LANGchtMounterPrefs_UmountCommandEntryTooltip = '粂猭: î“› %dev 蠢砞称㎠%dir 更翴┪フã„ノ更'#10'ㄒ: smbumount $dir'; LANGchtMounterPrefs_IconLabelCaption = '瓜夹(_I):'; LANGchtConnMgr_Caption = 'ゴ秨ç©ç¡ˆé’¡'; LANGchtConnMgr_ConnectButton = '硈钡(_N)'; LANGchtConnMgr_OpenConnection = 'ゴ秨硈钡'; LANGchtConnMgr_NameColumn = '嘿'; LANGchtConnMgr_URIColumn = 'URI'; LANGchtConnMgr_AddConnectionButtonCaption = 'ç°î™¡î‡­ç¿´(_A)...'; LANGchtConnMgr_AddConnectionButtonTooltip = 'ç°î™¡ç©ç¡ˆé’¡'; LANGchtConnMgr_EditButtonCaption = '絪胯(_E)...'; LANGchtConnMgr_EditButtonTooltip = '絪胯匡拒硈钡'; LANGchtConnMgr_RemoveButtonCaption = '埃翴(_R)'; LANGchtConnMgr_RemoveButtonTooltip = '埃匡拒硈钡'; LANGchtConnMgr_DoYouWantDelete = '絋﹚璶埃硂硈钡 ''%s''?'; LANGchtConnProp_FTP = 'FTP'; LANGchtConnProp_SFTP = 'SFTP (ssh ╰å‚)'; LANGchtConnProp_SMB = 'Windows ㄉ (SMB)'; LANGchtConnProp_HTTP = 'WebDAV (HTTP)'; LANGchtConnProp_HTTPS = 'î›æ† WebDAV (HTTPS)'; LANGchtConnProp_Other = 'ㄤ ( URI ã„﹚)'; LANGchtConnProp_Caption = '硈钡妮┦'; LANGchtConnProp_VFSModule = '_VFS å®¶é:'; LANGchtConnProp_URI = '_URI:'; LANGchtConnProp_URIEntryTooltip = 'タ絋 URI ゲ惠ç‹å­æ‘¸î©çŽ¡åŽãŽç‹å­ç«Ÿî›‡îƒ'; LANGchtConnProp_DetailedInformations = '冈ç¿çºî…¾'; LANGchtConnProp_Name = '嘿(_N):'; LANGchtConnProp_Server = 'ç‹å­ç«Ÿ[:狠](_V):'; LANGchtConnProp_Username = 'ノã‚îš½(_M):'; LANGchtConnProp_UserNameEntryTooltip = 'フã„ノ anonymous 祅é­'; LANGchtConnProp_Password = '盞çµ(_P):'; LANGchtConnProp_TargetDirectory = 'ヘ夹ヘé­(_D):'; LANGchtConnProp_ServiceType = 'ç‹å­æ‘¸î©(_S):'; LANGchtConnProp_MaskPassword = '留旅盞çµ(_M)'; LANGchtConnProp_MenuItemCaption = ' (┮Τ続讽家é)'; LANGchtConnLogin_Caption = 'ゲ惠甭舦'; LANGchtConnLogin_Login = '祅é­'; LANGchtConnLogin_ExperimentalWarningLabelCaption = 'ゲ惠祅é­î‚žç æ‹œ %s'; LANGchtConnLogin_Username = 'ノã‚îš½(_U):'; LANGchtConnLogin_Password = '盞çµ(_P):'; LANGchtConnLogin_AnonymousCheckButton = '拔(_A)'; LANGchtColumns_Caption = '狾砞竚'; LANGchtColumns_Title = '狾砞竚'; LANGchtColumns_MoveUpButtonTooltip = '簿兜ヘ'; LANGchtColumns_MoveDownButtonTooltip = '簿兜ヘ'; LANGchtColumns_TitlesLongName = '嘿'; LANGchtColumns_TitlesLongNameExt = '嘿 + 耎甶'; LANGchtColumns_TitlesLongExt = '耎甶'; LANGchtColumns_TitlesLongSize = 'î˜î˜–'; LANGchtColumns_TitlesLongDateTime = 'ら戳 + ä¸'; LANGchtColumns_TitlesLongDate = 'ら戳'; LANGchtColumns_TitlesLongTime = 'ä¸'; LANGchtColumns_TitlesLongUser = 'ノã‚'; LANGchtColumns_TitlesLongGroup = '舱'; LANGchtColumns_TitlesLongAttr = '妮┦'; LANGchtColumns_TitlesShortName = '嘿'; LANGchtColumns_TitlesShortNameExt = '嘿'; LANGchtColumns_TitlesShortExt = '耎甶'; LANGchtColumns_TitlesShortSize = 'î˜î˜–'; LANGchtColumns_TitlesShortDateTime = 'ら戳'; LANGchtColumns_TitlesShortDate = 'ら戳'; LANGchtColumns_TitlesShortTime = 'ä¸'; LANGchtColumns_TitlesShortUser = 'ノã‚'; LANGchtColumns_TitlesShortGroup = '舱'; LANGchtColumns_TitlesShortAttr = '妮┦'; LANGchtTestPlugin_Caption = '代刚 VFS 础ン'; LANGchtTestPlugin_Title = '代刚 VFS 础ン'; LANGchtTestPlugin_ExperimentalWarningLabelCaption = '牡: VFS ╰å‚ãŽã‚¦î€™ç¡€ãƒ³ä¸´î›ˆå€™çœŽç§¨ç¥‡ã„, ウ临Τ BUG. ã„ノ硂盢îžï¸½â”¯è¸žî„°ç¹§!'; LANGchtTestPlugin_Plugin = '础ン(_P):'; LANGchtTestPlugin_Command = 'ã‘(_M):'; LANGchtTestPlugin_Username = 'ノã‚îš½(_U):'; LANGchtTestPlugin_Password = '盞çµ(_P):'; LANGchtTestPlugin_AnonymousCheckButton = '拔祅é­(_A) (ãƒç§¸ãƒŽ VFSLogin)'; LANGchtTestPlugin_NoPluginsFound = '⊿ΤтîŸç¡€ãƒ³'; LANGchtRemoteWait_Caption = '巨タ秈︽'; LANGchtRemoteWait_OperationInProgress = '巨タ秈︽, å«ç¥”...'; LANGchtRemoteWait_ItemsFound = 'Ñ‚îŸå…œãƒ˜î›ˆ: %d'; LANGchtSearch_Bytes = '竊'; LANGchtSearch_kB = 'kB'; LANGchtSearch_MB = 'MB'; LANGchtSearch_days = 'ら'; LANGchtSearch_weeks = 'ã„'; LANGchtSearch_months = 'ã‚‹'; LANGchtSearch_years = ''; LANGchtSearch_Caption = 'Ñ‚îŸã‚…ン'; LANGchtSearch_General = '盽ç '; LANGchtSearch_Advanced = '蔼'; LANGchtSearch_SearchResults = '穓挡狦(_R):'; LANGchtSearch_SearchFor = '穓ãšç”§(_F):'; LANGchtSearch_FileMaskEntryTooltip = '矗ボ: ã„ノã è…¹ (";") ﹚ç©Ñ‚å…œ'; LANGchtSearch_SearchIn = '穓ヘé­(_I):'; LANGchtSearch_SearchArchivesCheckButton = '穓ゅ郎(_A)'; LANGchtSearch_FindText = 'ç©Ñ‚ã‚…ã‚»(_T):'; LANGchtSearch_FindTextEntryTooltip = 'ãƒã§çšŒã‚…ã‚»'#10'å«çŒ”種 GUI åœºî½ UTF-8'; LANGchtSearch_CaseSensitiveCheckButton = 'î˜î˜–糶庇稰(_E)'; LANGchtSearch_StayCurrentFSCheckButton = 'ç¹ã„¤î™’ゅン╰å‚(_Y)'; LANGchtSearch_CaseSensitiveMatchCheckButton = 'î˜î˜–糶庇稰(_S)'; LANGchtSearch_Size = 'î˜î˜–'; LANGchtSearch_Date = 'ら戳'; LANGchtSearch_BiggerThan = '>î˜î˜…(_B)'; LANGchtSearch_SmallerThan = '<(_S)'; LANGchtSearch_ModifiedBetweenRadioButton = 'î…Ñ(_M)'; LANGchtSearch_NotModifiedAfterRadioButton = '⊿Τî…Ñã‡î‚ž(_N)'; LANGchtSearch_ModifiedLastRadioButton = '程î…Ñ(_I)'; LANGchtSearch_ModifiedNotLastRadionButton = '⊿Τî…Ñ(_T)'; LANGchtSearch_ModifiedBetweenEntry1 = '"å«ã„ノ硂ら戳Α:" c'; LANGchtSearch_ViewButtonCaption = 'ç©îƒ¸ã‚…ン(_V)'; LANGchtSearch_NewSearchButtonCaption = 'ç©ç©“(_N)'; LANGchtSearch_GoToFileButtonCaption = '锣îŸã‚…ン(_G)'; LANGchtSearch_FeedToListboxButtonCaption = 'æ¶î—°ã‚…ンîŒ(_L)'; LANGchtSearch_StatusSC = '篈:'; LANGchtSearch_Ready = '碞ç‹.'; LANGchtSearch_PreparingToSearch = 'タ称穓.'; LANGchtSearch_SearchInProgress = 'タ穓:'; LANGchtSearch_UserCancelled = 'ノã‚îŸî‡.'; LANGchtSearch_SearchFinished = '穓ЧΘ'; LANGchtSearch_FilesFound = 'î˜Ñ‚îŸ %d ゅン'; LANGchtSearch_And = 'ãŽ'; (*************** STRINGS ADDED TO v0.5.82 **********************************************************************************) LANGchtCloseOpenConnection = 'タ沽刚讽玡笆硈ã„ゴ秨ç©ç¡ˆé’¡. 狦膥尿, 讽玡笆硈钡盢穦闽超砆ç©ç¡ˆé’¡î™”è ¢.'#10#10'çŒîœ¥è†¥å°¿?'; LANGchtDuplicateTabWarning = 'タ沽刚ç©å¤¹å¸½ã„ゴ秨环祘ヘé­. îžžçŒã¾ç¯®îŸ‹ãƒã‚„î‚¶. ç©å¤¹å¸½ç›¢ç©¦é”£îŸã‚»î›‡ã‚…ン╰å‚.'; LANGchtDontShowAgain = 'ãƒç’¶îš§é™ªãƒœîž…î‡î…¾(_D)'; LANGchtSwitchOtherPanelWarning = 'タ沽刚ヘ夹狾ã„ゴ秨环祘ヘé­. îžžçŒã¾ç¯®îŸ‹ãƒã‚„î‚¶. ヘ夹ヘé­ä¸´ç©¦ç †ã¡ä¼ .'; LANGchtOpenConnectionsWarning = '讽玡Τㄇ笆硈钡狾ã„ゴ秨. 癶祘硂ㄇ硈钡盢穦砆闽超.'#10#10'çŒîœ¥è†¥å°¿ç™¶î™ž?'; LANGchtmiDisconnect_Caption = '耞秨(_D)'; LANGchtDisconnectButton_Tooltip = '耞秨笆硈钡'; LANGchtLeaveArchiveButton_Tooltip = '闽超讽玡ゅ郎'; LANGchtOpenTerminalButton_Tooltip = '讽玡ヘé­ã‚´ç§¨î—¦î…Œç©î€™æ²§ç‹ æ€ î˜Œ'; LANGchtOpenTerminalButton_Caption = 'ゴ秨沧狠(_R)'; LANGchtShowTextUIDsCheckBox_Caption = '陪ボゅセ _UIDs'; LANGchtShowTextUIDsCheckBox_Tooltip = 'ゅセΑ陪ボノã‚/舱çºî…¾(UID/GID)'; (*************** STRINGS ADDED TO v0.5.100 **********************************************************************************) LANGchtmiNewTab_Caption = 'ç©ãƒ˜é­å¤¹å¸½(_T)'; LANGchtFilePopupMenu_Properties = '妮┦(_P)'; LANGchtCommandEntry_Tooltip = 'ã„ノ %s ゅン/ヘé­î€™î™«îž”æ‰'; LANGchtmiFiles_Caption = '度ゅン'; (*************** STRINGS ADDED TO v0.6.31 **********************************************************************************) LANGchtPasswordButton_Tooltip = 'ゅ郎ゲ惠ã„ノ盞çµ.'#10'翴阑砞竚'; LANGchtHandleRunFromArchive_Bytes = '竊'; LANGchtHandleRunFromArchive_FileTypeDesc_Unknown = '(ゼî€)'; LANGchtHandleRunFromArchive_NotAssociated = '(ゼ闽羛)'; LANGchtHandleRunFromArchive_SelfExecutable = '(îžç£…︽)'; LANGchtHandleRunFromArchive_CouldntCreateTemporaryDirectory = 'ãƒîˆ•æ‰¿î‚•ç¾¬î† ãƒ˜é­ "%s": %s.'#10#10'嫿µªç©ç¾¬î† ãƒ˜é­ç žç«šîŸ‹î„¤åˆš.'; LANGchtFRunFromVFS_Caption = 'ゴゅン妮┦'; LANGchtFRunFromVFS_TitleLabel = 'ゅン妮┦'; LANGchtFRunFromVFS_FileNameLabel = 'ゅン:'; LANGchtFRunFromVFS_FileTypeLabel = 'ゅン摸î©:'; LANGchtFRunFromVFS_SizeLabel = 'î˜î˜–:'; LANGchtFRunFromVFS_PackedSizeLabel = '溃罽î˜î˜–:'; LANGchtFRunFromVFS_DateLabel = 'î…Ñら戳:'; LANGchtFRunFromVFS_InfoLabel = 'ãƒã‚„钡眖ゅ郎ã„ゴ秨ゅン. 翴阑ゅン秙(┮Τゅン縒ミ)盢穦秆溃îŸç¾¬î† ãƒ˜é­. 羬ゅン盢穦闽超 Tux Commander 埃.'; LANGchtFRunFromVFS_OpensWithLabel = 'ゴ秨:'; LANGchtFRunFromVFS_ExecuteButton = '秆溃ゴ秨(_X)'; LANGchtFRunFromVFS_ExecuteAllButton = '秆溃┮Τゴ秨(_A)'; LANGchtFSetPassword_Caption = '砞竚盞çµ'; LANGchtFSetPassword_Label1_Caption = 'ゲ惠å—盞çµ'; LANGchtFSetPassword_Label2_Caption = '赣ゅ郎î˜ç«’盞, ゲ惠å—盞çµî˜¤îˆ•秆溃ゅ郎ãšî€™ã‚…ン'; LANGchtFSetPassword_ShowPasswordCheckButton = '陪ボ盞çµ(_M)'; (*************** STRINGS ADDED TO v0.6.48 **********************************************************************************) LANGchtCopyFileNamesToClipboard = '確ゅンîŸèŠ­ç¦Ÿç‹¾(_C)'; LANGchtCopyFullPathNamesToClipboard = '確ゅン隔畖îŸèŠ­ç¦Ÿç‹¾(_F)'; LANGchtCopyPathToClipboard = '確隔畖îŸèŠ­ç¦Ÿç‹¾(_C)'; LANGchtPreferences_DateFormatLabel_Caption = 'ら戳Α(_F):'; LANGchtPreferences_System = 'â•°å‚'; LANGchtPreferences_Custom = 'îžï¹šç«¡...'; LANGchtPreferences_CustomDateFormatEntry_Tooltip = 'å—î—°îžï¹šç«¡ã‚‰æˆ³î†½Î‘.'#10'î†½Î‘ç²‚çŒ­å«æŠŠÏƒ "man strftime" ã‘.'; LANGchtPreferences_TimeFormatLabel_Caption = 'ä¸î†½Î‘(_T):'; LANGchtPreferences_CustomTimeFormatEntry_Tooltip = 'å—î—°îžï¹šç«¡î† ä¸î†½Î‘.'#10'î†½Î‘ç²‚çŒ­å«æŠŠÏƒ "man strftime" ã‘.'; LANGchtPreferences_DateTimeFormatLabel_Caption = 'ら戳/ä¸é€¼îž¥(_O):'; LANGchtPreferences_QuickRenameSkipExtCheckBox = 'е硉ã‘度匡拒ゅン'; LANGchtPreferences_QuickRenameSkipExtCheckBox_Tooltip = 'е硉ã‘ãƒåŒ¡æ‹’耎甶'; LANGchtPreferences_SortDirectoriesLikeFilesCheckBox = 'ヘé­é€¼î›ˆã‚…ンîŒî—½î„ª(_E)'; LANGchtPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip = '匡ã„ヘé­ãƒƒçŽ¯é€¼î›ˆã‚…ãƒ³îš©îŒî—½î„ª.'#10'ゼ匡: ヘé­ç¾†çŒî‚³ãƒ˜é­îš½é€¼îž¥.'; LANGchtPreferences_QuickSearchLabel_Caption = 'е硉穓龄(_K):'; LANGchtPreferences_QuickSearchOptionMenu_Tooltip = 'Ctrl+S/Alt+S ㎠"/" 秙ッî˜î™¯ãƒŽ, ãƒîŸŸîž…砞竚紇臫.'; LANGchtPreferences_QuickSearch_Option1 = '度 Ctrl+S/Alt+S ㎠"/"'; LANGchtPreferences_QuickSearch_Option2 = 'Ctrl + Alt + ダ'; LANGchtPreferences_QuickSearch_Option3 = 'Alt + ダ'; LANGchtPreferences_QuickSearch_Option4 = '度ダ'; LANGchtPreferences_TempPathLabel_Caption = '羬ゅン'; LANGchtPreferences_VFSTempPathLabel_Caption = '_VFS 羬ゅン:'; LANGchtPreferences_VFSTempPathEntry_Tooltip = 'VFS ╰å‚ã„ノ羬ゅン隔畖, ã„’î›–. 讽钡眖溃罽ゅ郎ã„ゴ秨ゅン. ┮Τ羬ゅン盢癶埃.'; (*************** STRINGS ADDED TO v0.6.67 **********************************************************************************) LANGchtPreferences_RightClickSelectCheckBox = 'Right mouse button selection mode'; LANGchtPreferences_RightClickSelectCheckBox_Tooltip = 'Use right mouse button to select, like mc.'; LANGchtGtkMountOperation_ConnectAnonymously = 'Connect _anonymously'; LANGchtGtkMountOperation_ConnectAsUser = 'Connect as u_ser:'; LANGchtGtkMountOperation_Username = '_Username:'; LANGchtGtkMountOperation_Domain = '_Domain:'; LANGchtGtkMountOperation_Password = '_Password:'; LANGchtGtkMountOperation_DoNotSavePassword = 'Do not save password'; LANGchtGtkMountOperation_ForgetPasswordImmediately = 'Forget password _immediately'; LANGchtGtkMountOperation_RememberPasswordUntilYouLogout = 'Remember password until you _logout'; LANGchtGtkMountOperation_SavePasswordInConnectionManager = '_Save password in Connection Manager'; LANGchtGtkMountOperation_RememberForever = 'Remember _forever'; LANGchtFSymlink_RelativePath = '_Relative path'; LANGchtFConnectionManager_DuplicateButton_Caption = 'D_uplicate...'; LANGchtFConnectionManager_DuplicateButton_Tooltip = 'Duplicate selected connection'; LANGchtFConnectionManager_DoNotSavePasswordsCheckBox_Label = '_Do not store passwords internally (but still use gnome-keyring)'; LANGchtFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip = 'By checking this option on, Tux Commander will never save passwords into its connection list. Due to the GVFS nature, gnome-keyring will still be used to retrieve stored passwords from your desktop session.'; LANGchtFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label = 'Do not synchronize passwords to gnome-_keyring'; LANGchtFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip = 'Don''t tell gnome-keyring to save any passwords.'; LANGchtFConnectionManager_DuplicateMenuItem_Caption = 'D_uplicate...'; LANGchtFQuickConnect_Caption = 'Quick connect'; LANGchtFQuickConnect_TitleLabel_Caption = 'Quick connect'; LANGchtFQuickConnect_ConnectToURILabel_Caption = 'C_onnect to URI:'; LANGchtLinkToS = 'Link to %s'; LANGchtOpenDirectoryInBackgroundTab = 'Open directory in _background tab'; LANGchtTheActiveConnectionHasNotBeenSaved = 'The active connection has not been saved. Do you want to save it to Connection Manager?'#10#10'%s'; LANGchtTheArchiveIsEncryptedAndRequiresPassword = 'The archive is encrypted and requires password'; (********************************************************************************************************************************) procedure SetTranslation; begin LANGF2Button_Caption := LANGchtF2Button_Caption; LANGF3Button_Caption := LANGchtF3Button_Caption; LANGF4Button_Caption := LANGchtF4Button_Caption; LANGF5Button_Caption := LANGchtF5Button_Caption; LANGF6Button_Caption := LANGchtF6Button_Caption; LANGF7Button_Caption := LANGchtF7Button_Caption; LANGF8Button_Caption := LANGchtF8Button_Caption; LANGmnuFile_Caption := LANGchtmnuFile_Caption; LANGmnuMark_Caption := LANGchtmnuMark_Caption; LANGmnuCommands_Caption := LANGchtmnuCommands_Caption; LANGmnuHelp_Caption := LANGchtmnuHelp_Caption; LANGmiExit_Caption := LANGchtmiExit_Caption; LANGmiSelectGroup_Caption := LANGchtmiSelectGroup_Caption; LANGmiUnselectGroup_Caption := LANGchtmiUnselectGroup_Caption; LANGmiSelectAll_Caption := LANGchtmiSelectAll_Caption; LANGmiUnselectAll_Caption := LANGchtmiUnselectAll_Caption; LANGmiInvertSelection_Caption := LANGchtmiInvertSelection_Caption; LANGmiRefresh_Caption := LANGchtmiRefresh_Caption; LANGmiAbout_Caption := LANGchtmiAbout_Caption; LANGColumn1_Caption := LANGchtColumn1_Caption; LANGColumn2_Caption := LANGchtColumn2_Caption; LANGColumn3_Caption := LANGchtColumn3_Caption; LANGColumn4_Caption := LANGchtColumn4_Caption; LANGColumn5_Caption := LANGchtColumn5_Caption; LANGExpandSelection := LANGchtExpandSelection; LANGShrinkSelection := LANGchtShrinkSelection; LANGNoMatchesFound := LANGchtNoMatchesFound; LANGNoFilesSelected := LANGchtNoFilesSelected; LANGSelectedFilesDirectories := LANGchtSelectedFilesDirectories; LANGDirectoryS := LANGchtDirectoryS; LANGFileS := LANGchtFileS; LANGDoYouReallyWantToDeleteTheS := LANGchtDoYouReallyWantToDeleteTheS; LANGDoYouReallyWantToDeleteTheSS := LANGchtDoYouReallyWantToDeleteTheSS; LANGCopyFiles := LANGchtCopyFiles; LANGMoveRenameFiles := LANGchtMoveRenameFiles; LANGCopyDFileDirectoriesTo := LANGchtCopyDFileDirectoriesTo; LANGMoveRenameDFileDirectoriesTo := LANGchtMoveRenameDFileDirectoriesTo; LANGCopySC := LANGchtCopySC; LANGMoveRenameSC := LANGchtMoveRenameSC; LANGQuickFind := LANGchtQuickFind; LANGAboutString := LANGchtAboutString; LANGAboutStringGnome := LANGchtAboutStringGnome; LANGDiskStatFmt := LANGchtDiskStatFmt; LANGDiskStatVolNameFmt := LANGchtDiskStatVolNameFmt; LANGStatusLineFmt := LANGchtStatusLineFmt; LANGPanelStrings[False] := LANGchtPanelStrings[False]; LANGPanelStrings[True] := LANGchtPanelStrings[True]; LANGDIR := LANGchtDIR; LANGErrorGettingListingForSPanel := LANGchtErrorGettingListingForSPanel; LANGErrorGettingListingForSPanelNoPath := LANGchtErrorGettingListingForSPanelNoPath; LANGErrorCreatingNewDirectorySInSPanel := LANGchtErrorCreatingNewDirectorySInSPanel; LANGErrorCreatingNewDirectorySInSPanelNoPath := LANGchtErrorCreatingNewDirectorySInSPanelNoPath; LANGTheFileDirectory := LANGchtTheFileDirectory; LANGCouldNotBeDeleted := LANGchtCouldNotBeDeleted; LANGCouldNotBeDeletedS := LANGchtCouldNotBeDeletedS; LANGUserCancelled := LANGchtUserCancelled; LANGTheDirectorySIsNotEmpty := LANGchtTheDirectorySIsNotEmpty; LANGCannotCopyFile := LANGchtCannotCopyFile; LANGCopyError := LANGchtCopyError; LANGMoveError := LANGchtMoveError; LANGOverwriteS := LANGchtOverwriteS; LANGWithFileS := LANGchtWithFileS; LANGOvewriteSBytesS := LANGchtOvewriteSBytesS; LANGTheFile := LANGchtTheFile; LANGCopy := LANGchtCopy; LANGMove := LANGchtMove; LANGTheDirectory := LANGchtTheDirectory; LANGTheSymbolicLink := LANGchtTheSymbolicLink; LANGCannotMoveFile := LANGchtCannotMoveFile; LANGCouldNotBeCreated := LANGchtCouldNotBeCreated; LANGCouldNotBeCreatedS := LANGchtCouldNotBeCreatedS; LANGFromS := LANGchtFromS; LANGToS := LANGchtToS; LANGCannotCopyFileToItself := LANGchtCannotCopyFileToItself; LANGMemoryAllocationFailed := LANGchtMemoryAllocationFailed; LANGCannotOpenSourceFile := LANGchtCannotOpenSourceFile; LANGCannotOpenDestinationFile := LANGchtCannotOpenDestinationFile; LANGCannotCloseDestinationFile := LANGchtCannotCloseDestinationFile; LANGCannotCloseSourceFile := LANGchtCannotCloseSourceFile; LANGCannotReadFromSourceFile := LANGchtCannotReadFromSourceFile; LANGCannotWriteToDestinationFile := LANGchtCannotWriteToDestinationFile; LANGUnknownException := LANGchtUnknownException; LANGNoAccess := LANGchtNoAccess; LANGUnknownError := LANGchtUnknownError; LANGCreateANewDirectory := LANGchtCreateANewDirectory; LANGEnterDirectoryName := LANGchtEnterDirectoryName; LANGOverwriteQuestion := LANGchtOverwriteQuestion; LANGOverwriteButton_Caption := LANGchtOverwriteButton_Caption; LANGOverwriteAllButton_Caption := LANGchtOverwriteAllButton_Caption; LANGSkipButton_Caption := LANGchtSkipButton_Caption; LANGOverwriteAllOlderButton_Caption := LANGchtOverwriteAllOlderButton_Caption; LANGSkipAllButton_Caption := LANGchtSkipAllButton_Caption; LANGRenameButton_Caption := LANGchtRenameButton_Caption; LANGAppendButton_Caption := LANGchtAppendButton_Caption; LANGRename := LANGchtRename; LANGRenameFile := LANGchtRenameFile; LANGIgnoreButton_Caption := LANGchtIgnoreButton_Caption; LANGProgress := LANGchtProgress; LANGCancel := LANGchtCancel; LANGDelete := LANGchtDelete; LANGSpecifyFileType := LANGchtSpecifyFileType; LANGRemoveDirectory := LANGchtRemoveDirectory; LANGDoYouWantToDeleteItWithAllItsFilesAndSubdirectories := LANGchtDoYouWantToDeleteItWithAllItsFilesAndSubdirectories; LANGRetry := LANGchtRetry; LANGDeleteButton_Caption := LANGchtDeleteButton_Caption; LANGAll := LANGchtAll; LANGCopyFilesSC := LANGchtCopyFilesSC; LANGAppendQuestion := LANGchtAppendQuestion; LANGPreparingList := LANGchtPreparingList; LANGYouMustSelectAValidFile := LANGchtYouMustSelectAValidFile; LANGmiVerifyChecksums := LANGchtmiVerifyChecksums; LANGVerifyChecksumsCaption := LANGchtVerifyChecksumsCaption; LANGCheckButtonCaptionCheck := LANGchtCheckButtonCaptionCheck; LANGCheckButtonCaptionStop := LANGchtCheckButtonCaptionStop; LANGFileListTooltip := LANGchtFileListTooltip; LANGFilenameColumnCaption := LANGchtFilenameColumnCaption; LANGTheFileSYouAreTryingToOpenIsQuiteBig := LANGchtTheFileSYouAreTryingToOpenIsQuiteBig; LANGAnErrorOccuredWhileInitializingMemoryBlock := LANGchtAnErrorOccuredWhileInitializingMemoryBlock; LANGAnErrorOccuredWhileOpeningFileSS := LANGchtAnErrorOccuredWhileOpeningFileSS; LANGAnErrorOccuredWhileReadingFileSS := LANGchtAnErrorOccuredWhileReadingFileSS; LANGChecksumNotChecked := LANGchtChecksumNotChecked; LANGChecksumChecking := LANGchtChecksumChecking; LANGChecksumInterrupted := LANGchtChecksumInterrupted; LANGChecksumDOK := LANGchtChecksumDOK; LANGmiCreateChecksumsCaption := LANGchtmiCreateChecksumsCaption; LANGYouMustSelectAtLeastOneFileToCalculateChecksum := LANGchtYouMustSelectAtLeastOneFileToCalculateChecksum; LANGCreateChecksumsCaption := LANGchtCreateChecksumsCaption; LANGCCHKSUMPage1Text := LANGchtCCHKSUMPage1Text; LANGCCHKSUMPage4Text := LANGchtCCHKSUMPage4Text; LANGCCHKSUMPage6Text := LANGchtCCHKSUMPage6Text; LANGCCHKSUMPage7Text := LANGchtCCHKSUMPage7Text; LANGCCHKSUMPage1Title := LANGchtCCHKSUMPage1Title; LANGCCHKSUMPage2Title := LANGchtCCHKSUMPage2Title; LANGCCHKSUMPage3Title := LANGchtCCHKSUMPage3Title; LANGCCHKSUMPage4Title := LANGchtCCHKSUMPage4Title; LANGCCHKSUMPage5Title := LANGchtCCHKSUMPage5Title; LANGCCHKSUMPage6Title := LANGchtCCHKSUMPage6Title; LANGCCHKSUMPage7Title := LANGchtCCHKSUMPage7Title; LANGCCHKSUMSFVFile := LANGchtCCHKSUMSFVFile; LANGCCHKSUMMD5sumFile := LANGchtCCHKSUMMD5sumFile; LANGCCHKSUMFileName := LANGchtCCHKSUMFileName; LANGCCHKSUMCreateSeparateChecksumFiles := LANGchtCCHKSUMCreateSeparateChecksumFiles; LANGCCHKSUMNowProcessingFileS := LANGchtCCHKSUMNowProcessingFileS; LANGCCHKSUMFinishCaption := LANGchtCCHKSUMFinishCaption; LANGCCHKSUMAreYouSureYouWantToAbortTheProcessing := LANGchtCCHKSUMAreYouSureYouWantToAbortTheProcessing; LANGCCHKSUMAnErrorOccuredWhileOpeningFileSS := LANGchtCCHKSUMAnErrorOccuredWhileOpeningFileSS; LANGCCHKSUMAnErrorOccuredWhileReadingFileSS := LANGchtCCHKSUMAnErrorOccuredWhileReadingFileSS; LANGCCHKSUMAnErrorOccuredWhileWritingFileSS := LANGchtCCHKSUMAnErrorOccuredWhileWritingFileSS; LANGAnErrorOccuredWhileWritingFileSS := LANGchtAnErrorOccuredWhileWritingFileSS; LANGTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt := LANGchtTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt; LANGTheTargetFileSCannotBeRemovedS := LANGchtTheTargetFileSCannotBeRemovedS; LANGMergeCaption := LANGchtMergeCaption; LANGPleaseInsertNextDiskOrGiveDifferentLocation := LANGchtPleaseInsertNextDiskOrGiveDifferentLocation; LANGMergeOfSSucceeded := LANGchtMergeOfSSucceeded; LANGWarningCreatedFileFailsCRCCheck := LANGchtWarningCreatedFileFailsCRCCheck; LANGMergeOfSSucceeded_NoCRCFileAvailable := LANGchtMergeOfSSucceeded_NoCRCFileAvailable; LANGMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory := LANGchtMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory; LANGMergeSC := LANGchtMergeSC; LANGmiSplitFileCaption := LANGchtmiSplitFileCaption; LANGmiMergeFilesCaption := LANGchtmiMergeFilesCaption; LANGSplitTheFileSToDirectory := LANGchtSplitTheFileSToDirectory; LANGSplitSC := LANGchtSplitSC; LANGSplitFile := LANGchtSplitFile; LANGBytesPerFile := LANGchtBytesPerFile; LANGAutomatic := LANGchtAutomatic; LANGDeleteFilesOnTargetDisk := LANGchtDeleteFilesOnTargetDisk; LANGSplitCaption := LANGchtSplitCaption; LANGCannotOpenFileS := LANGchtCannotOpenFileS; LANGCannotSplitTheFileToMoreThan999Parts := LANGchtCannotSplitTheFileToMoreThan999Parts; LANGThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem := LANGchtThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem; LANGThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem := LANGchtThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem; LANGAnErrorOccuredWhileOperationS := LANGchtAnErrorOccuredWhileOperationS; LANGSplitOfSSucceeded := LANGchtSplitOfSSucceeded; LANGSplitOfSFailed := LANGchtSplitOfSFailed; LANGmnuShow_Caption := LANGchtmnuShow_Caption; LANGmiShowDotFiles_Caption := LANGchtmiShowDotFiles_Caption; LANGTheFileYouAreTryingToOpenIsQuiteBig := LANGchtTheFileYouAreTryingToOpenIsQuiteBig; LANGCannotExecuteSPleaseCheckTheConfiguration := LANGchtCannotExecuteSPleaseCheckTheConfiguration; LANGEdit := LANGchtEdit; LANGEnterFilenameToEdit := LANGchtEnterFilenameToEdit; LANGmnuSettings_Caption := LANGchtmnuSettings_Caption; LANGmiFileTypes_Caption := LANGchtmiFileTypes_Caption; LANGThereIsNoApplicationAssociatedWithS := LANGchtThereIsNoApplicationAssociatedWithS; LANGErrorExecutingCommand := LANGchtErrorExecutingCommand; LANGEditFileTypesCaption := LANGchtEditFileTypesCaption; LANGTitleLabel_Caption := LANGchtTitleLabel_Caption; LANGExtensionsColumn := LANGchtExtensionsColumn; LANGDescriptionColumn := LANGchtDescriptionColumn; LANGFileTypesList := LANGchtFileTypesList; LANGActionName := LANGchtActionName; LANGCommand := LANGchtCommand; LANGSetDefaultActionButton_Caption := LANGchtSetDefaultActionButton_Caption; LANGRunInTerminalCheckBox_Caption := LANGchtRunInTerminalCheckBox_Caption; LANGAutodetectCheckBox_Caption := LANGchtAutodetectCheckBox_Caption; LANGBrowseButton_Caption := LANGchtBrowseButton_Caption; LANGCommandLabel_Caption := LANGchtCommandLabel_Caption; LANGDescriptionLabel_Caption := LANGchtDescriptionLabel_Caption; LANGFNameExtLabel_Caption := LANGchtFNameExtLabel_Caption; LANGNotebookPageExtensions := LANGchtNotebookPageExtensions; LANGNotebookPageActions := LANGchtNotebookPageActions; LANGDefault := LANGchtDefault; LANGCannotSaveFileTypeAssociationsBecauseOtherProcess := LANGchtCannotSaveFileTypeAssociationsBecauseOtherProcess; LANGDefaultColor := LANGchtDefaultColor; LANGIcon := LANGchtIcon; LANGBrowseForIcon := LANGchtBrowseForIcon; LANGSelectFileTypeColor := LANGchtSelectFileTypeColor; LANGColor := LANGchtColor; LANGmiChangePermissions_Caption := LANGchtmiChangePermissions_Caption; LANGmiChangeOwner_Caption := LANGchtmiChangeOwner_Caption; LANGmiCreateSymlink_Caption := LANGchtmiCreateSymlink_Caption; LANGmiEditSymlink_Caption := LANGchtmiEditSymlink_Caption; LANGChmodProgress := LANGchtChmodProgress; LANGChownProgress := LANGchtChownProgress; LANGYouMustSelectAValidSymbolicLink := LANGchtYouMustSelectAValidSymbolicLink; LANGPopupRunS := LANGchtPopupRunS; LANGPopupOpenS := LANGchtPopupOpenS; LANGPopupGoUp := LANGchtPopupGoUp; LANGPopupOpenWithS := LANGchtPopupOpenWithS; LANGPopupDefault := LANGchtPopupDefault; LANGPopupOpenWith := LANGchtPopupOpenWith; LANGPopupViewFile := LANGchtPopupViewFile; LANGPopupEditFile := LANGchtPopupEditFile; LANGPopupMakeSymlink := LANGchtPopupMakeSymlink; LANGPopupRename := LANGchtPopupRename; LANGPopupDelete := LANGchtPopupDelete; LANGDialogChangePermissions := LANGchtDialogChangePermissions; LANGCouldNotBeChmoddedS := LANGchtCouldNotBeChmoddedS; LANGDialogChangeOwner := LANGchtDialogChangeOwner; LANGCouldNotBeChownedS := LANGchtCouldNotBeChownedS; LANGDialogMakeSymlink := LANGchtDialogMakeSymlink; LANGDialogEditSymlink := LANGchtDialogEditSymlink; LANGFEditSymlink_Caption := LANGchtFEditSymlink_Caption; LANGFEditSymlink_SymbolicLinkFilename := LANGchtFEditSymlink_SymbolicLinkFilename; LANGFEditSymlink_SymbolicLinkPointsTo := LANGchtFEditSymlink_SymbolicLinkPointsTo; LANGFChmod_Caption := LANGchtFChmod_Caption; LANGFChmod_PermissionFrame := LANGchtFChmod_PermissionFrame; LANGFChmod_FileFrame := LANGchtFChmod_FileFrame; LANGFChmod_ApplyRecursivelyFor := LANGchtFChmod_ApplyRecursivelyFor; LANGFChmod_miAllFiles := LANGchtFChmod_miAllFiles; LANGFChmod_miDirectories := LANGchtFChmod_miDirectories; LANGFChmod_OctalLabel := LANGchtFChmod_OctalLabel; LANGFChmod_SUID := LANGchtFChmod_SUID; LANGFChmod_SGID := LANGchtFChmod_SGID; LANGFChmod_Sticky := LANGchtFChmod_Sticky; LANGFChmod_RUSR := LANGchtFChmod_RUSR; LANGFChmod_WUSR := LANGchtFChmod_WUSR; LANGFChmod_XUSR := LANGchtFChmod_XUSR; LANGFChmod_RGRP := LANGchtFChmod_RGRP; LANGFChmod_WGRP := LANGchtFChmod_WGRP; LANGFChmod_XGRP := LANGchtFChmod_XGRP; LANGFChmod_ROTH := LANGchtFChmod_ROTH; LANGFChmod_WOTH := LANGchtFChmod_WOTH; LANGFChmod_XOTH := LANGchtFChmod_XOTH; LANGFChmod_TextLabel := LANGchtFChmod_TextLabel; LANGFChmod_FileLabel := LANGchtFChmod_FileLabel; LANGFChown_Caption := LANGchtFChown_Caption; LANGFChown_OwnerFrame := LANGchtFChown_OwnerFrame; LANGFChown_GroupFrame := LANGchtFChown_GroupFrame; LANGFChown_FileFrame := LANGchtFChown_FileFrame; LANGFChown_ApplyRecursively := LANGchtFChown_ApplyRecursively; LANGFSymlink_Caption := LANGchtFSymlink_Caption; LANGFSymlink_ExistingFilename := LANGchtFSymlink_ExistingFilename; LANGFSymlink_SymlinkFilename := LANGchtFSymlink_SymlinkFilename; LANGmnuBookmarks_Caption := LANGchtmnuBookmarks_Caption; LANGmiAddBookmark_Caption := LANGchtmiAddBookmark_Caption; LANGmiEditBookmarks_Caption := LANGchtmiEditBookmarks_Caption; LANGBookmarkPopupDelete_Caption := LANGchtBookmarkPopupDelete_Caption; LANGmiPreferences_Caption := LANGchtmiPreferences_Caption; LANGTheCurrentDirectoryAlreadyExistsInTheBookmarksList := LANGchtTheCurrentDirectoryAlreadyExistsInTheBookmarksList; LANGSomeOtherInstanceChanged := LANGchtSomeOtherInstanceChanged; LANGPreferences_Caption := LANGchtPreferences_Caption; LANGPreferences_TitleLabel_Caption := LANGchtPreferences_TitleLabel_Caption; LANGPreferences_GeneralPage := LANGchtPreferences_GeneralPage; LANGPreferences_FontsPage := LANGchtPreferences_FontsPage; LANGPreferences_ColorsPage := LANGchtPreferences_ColorsPage; LANGPreferences_RowHeight := LANGchtPreferences_RowHeight; LANGPreferences_NumHistoryItems := LANGchtPreferences_NumHistoryItems; LANGPreferences_Default := LANGchtPreferences_Default; LANGPreferences_ClearReadonlyAttribute := LANGchtPreferences_ClearReadonlyAttribute; LANGPreferences_DisableMouseRenaming := LANGchtPreferences_DisableMouseRenaming; LANGPreferences_ShowFiletypeIconsInList := LANGchtPreferences_ShowFiletypeIconsInList; LANGPreferences_ExternalAppsLabel := LANGchtPreferences_ExternalAppsLabel; LANGPreferences_Viewer := LANGchtPreferences_Viewer; LANGPreferences_Editor := LANGchtPreferences_Editor; LANGPreferences_Terminal := LANGchtPreferences_Terminal; LANGPreferences_ListFont := LANGchtPreferences_ListFont; LANGPreferences_Change := LANGchtPreferences_Change; LANGPreferences_UseDefaultFont := LANGchtPreferences_UseDefaultFont; LANGPreferences_Foreground := LANGchtPreferences_Foreground; LANGPreferences_Background := LANGchtPreferences_Background; LANGPreferences_NormalItem := LANGchtPreferences_NormalItem; LANGPreferences_SetToDefaultToUseGTKThemeColors := LANGchtPreferences_SetToDefaultToUseGTKThemeColors; LANGPreferences_Cursor := LANGchtPreferences_Cursor; LANGPreferences_InactiveItem := LANGchtPreferences_InactiveItem; LANGPreferences_SelectedItem := LANGchtPreferences_SelectedItem; LANGPreferences_LinkItem := LANGchtPreferences_LinkItem; LANGPreferences_LinkItemHint := LANGchtPreferences_LinkItemHint; LANGPreferences_DotFileItem := LANGchtPreferences_DotFileItem; LANGPreferences_DotFileItemHint := LANGchtPreferences_DotFileItemHint; LANGPreferences_BrowseForApplication := LANGchtPreferences_BrowseForApplication; LANGPreferences_DefaultS := LANGchtPreferences_DefaultS; LANGPreferences_SelectFont := LANGchtPreferences_SelectFont; LANGBookmarkButton_Tooltip := LANGchtBookmarkButton_Tooltip; LANGUpButton_Tooltip := LANGchtUpButton_Tooltip; LANGRootButton_Tooltip := LANGchtRootButton_Tooltip; LANGHomeButton_Tooltip := LANGchtHomeButton_Tooltip; LANGLeftEqualButton_Tooltip := LANGchtLeftEqualButton_Tooltip; LANGRightEqualButton_Tooltip := LANGchtRightEqualButton_Tooltip; LANGmiShowDirectorySizes_Caption := LANGchtmiShowDirectorySizes_Caption; LANGmiTargetSource_Caption := LANGchtmiTargetSource_Caption; LANGFileTypeDirectory := LANGchtFileTypeDirectory; LANGFileTypeFile := LANGchtFileTypeFile; LANGFileTypeMetafile := LANGchtFileTypeMetafile; LANGPreferencesPanelsPage := LANGchtPreferencesPanelsPage; LANGPreferencesApplicationsPage := LANGchtPreferencesApplicationsPage; LANGPreferencesExperimentalPage := LANGchtPreferencesExperimentalPage; LANGPreferencesSelectAllDirectoriesCheckBox_Caption := LANGchtPreferencesSelectAllDirectoriesCheckBox_Caption; LANGPreferencesNewStyleAltOCheckBox_Caption := LANGchtPreferencesNewStyleAltOCheckBox_Caption; LANGPreferencesNewStyleAltOCheckBox_Tooltip := LANGchtPreferencesNewStyleAltOCheckBox_Tooltip; LANGPreferencesShowFuncButtonsCheckBox_Caption := LANGchtPreferencesShowFuncButtonsCheckBox_Caption; LANGPreferencesSizeFormatLabel_Caption := LANGchtPreferencesSizeFormatLabel_Caption; LANGPreferencesmiSizeFormat1 := LANGchtPreferencesmiSizeFormat1; LANGPreferencesmiSizeFormat6 := LANGchtPreferencesmiSizeFormat6; LANGPreferencesAutodetectXApp := LANGchtPreferencesAutodetectXApp; LANGPreferencesAlwaysRunInTerminal := LANGchtPreferencesAlwaysRunInTerminal; LANGPreferencesNeverRunInTerminal := LANGchtPreferencesNeverRunInTerminal; LANGPreferencesCmdLineBehaviourLabel_Caption := LANGchtPreferencesCmdLineBehaviourLabel_Caption; LANGPreferencesFeatures := LANGchtPreferencesFeatures; LANGPreferencesDisableMouseRename_Tooltip := LANGchtPreferencesDisableMouseRename_Tooltip; LANGPreferencesDisableFileTipsCheckBox_Caption := LANGchtPreferencesDisableFileTipsCheckBox_Caption; LANGPreferencesDisableFileTipsCheckBox_Tooltip := LANGchtPreferencesDisableFileTipsCheckBox_Tooltip; LANGPreferencesShow := LANGchtPreferencesShow; LANGPreferencesDirsInBoldCheckBox_Caption := LANGchtPreferencesDirsInBoldCheckBox_Caption; LANGPreferencesDisableDirectoryBracketsCheckBox_Caption := LANGchtPreferencesDisableDirectoryBracketsCheckBox_Caption; LANGPreferencesOctalPermissionsCheckBox_Caption := LANGchtPreferencesOctalPermissionsCheckBox_Caption; LANGPreferencesOctalPermissionsCheckBox_Tooltip := LANGchtPreferencesOctalPermissionsCheckBox_Tooltip; LANGPreferencesMovement := LANGchtPreferencesMovement; LANGPreferencesLynxLikeMotionCheckBox_Caption := LANGchtPreferencesLynxLikeMotionCheckBox_Caption; LANGPreferencesInsertMovesDownCheckBox_Caption := LANGchtPreferencesInsertMovesDownCheckBox_Caption; LANGPreferencesSpaceMovesDownCheckBox_Caption := LANGchtPreferencesSpaceMovesDownCheckBox_Caption; LANGPreferencesViewer := LANGchtPreferencesViewer; LANGPreferencesCommandSC := LANGchtPreferencesCommandSC; LANGPreferencesUseInternalViewer := LANGchtPreferencesUseInternalViewer; LANGPreferencesEditor := LANGchtPreferencesEditor; LANGPreferencesTerminal := LANGchtPreferencesTerminal; LANGPreferencesExperimentalFeatures := LANGchtPreferencesExperimentalFeatures; LANGPreferencesExperimentalWarningLabel_Caption := LANGchtPreferencesExperimentalWarningLabel_Caption; LANGPreferencesFocusRefreshCheckBox_Caption := LANGchtPreferencesFocusRefreshCheckBox_Caption; LANGPreferencesFocusRefreshCheckBox_Tooltip := LANGchtPreferencesFocusRefreshCheckBox_Tooltip; LANGPreferencesWMCompatModeCheckBox_Caption := LANGchtPreferencesWMCompatModeCheckBox_Caption; LANGPreferencesWMCompatModeCheckBox_Tooltip := LANGchtPreferencesWMCompatModeCheckBox_Tooltip; LANGPreferencesCompatUseLibcSystemCheckBox_Caption := LANGchtPreferencesCompatUseLibcSystemCheckBox_Caption; LANGPreferencesCompatUseLibcSystemCheckBox_Tooltip := LANGchtPreferencesCompatUseLibcSystemCheckBox_Tooltip; LANGmiSearchCaption2 := LANGchtmiSearchCaption2; LANGmiNoMounterBarCaption := LANGchtmiNoMounterBarCaption; LANGmiShowOneMounterBarCaption := LANGchtmiShowOneMounterBarCaption; LANGmiShowTwoMounterBarCaption := LANGchtmiShowTwoMounterBarCaption; LANGmnuNetworkCaption := LANGchtmnuNetworkCaption; LANGmiConnectionsCaption := LANGchtmiConnectionsCaption; LANGmiOpenConnectionCaption := LANGchtmiOpenConnectionCaption; LANGmiQuickConnectCaption := LANGchtmiQuickConnectCaption; LANGmnuPluginsCaption := LANGchtmnuPluginsCaption; LANGmiTestPluginCaption := LANGchtmiTestPluginCaption; LANGmiMounterSettingsCaption := LANGchtmiMounterSettingsCaption; LANGmiColumnsCaption := LANGchtmiColumnsCaption; LANGmiSavePositionCaption := LANGchtmiSavePositionCaption; LANGmiMountCaption := LANGchtmiMountCaption; LANGmiUmountCaption := LANGchtmiUmountCaption; LANGmiEjectCaption := LANGchtmiEjectCaption; LANGmiDuplicateTabCaption := LANGchtmiDuplicateTabCaption; LANGmiCloseTabCaption := LANGchtmiCloseTabCaption; LANGmiCloseAllTabsCaption := LANGchtmiCloseAllTabsCaption; LANGCannotDetermineDestinationEngine := LANGchtCannotDetermineDestinationEngine; LANGCannotLoadFile := LANGchtCannotLoadFile; LANGMountPointDevice := LANGchtMountPointDevice; LANGMountSC := LANGchtMountSC; LANGNoPluginsFound := LANGchtNoPluginsFound; LANGPluginAbout := LANGchtPluginAbout; LANGCouldntOpenURI := LANGchtCouldntOpenURI; LANGPluginAboutInside := LANGchtPluginAboutInside; LANGAreYouSureCloseAllTabs := LANGchtAreYouSureCloseAllTabs; LANGCouldntOpenURIArchive := LANGchtCouldntOpenURIArchive; LANGThereIsNoModuleAvailable := LANGchtThereIsNoModuleAvailable; LANGIgnoreError := LANGchtIgnoreError; LANGErrorMount := LANGchtErrorMount; LANGErrorUmount := LANGchtErrorUmount; LANGErrorEject := LANGchtErrorEject; LANGMounterPrefs_Caption := LANGchtMounterPrefs_Caption; LANGMounterPrefs_TitleLabelCaption := LANGchtMounterPrefs_TitleLabelCaption; LANGMounterPrefs_ListViewFrameCaption := LANGchtMounterPrefs_ListViewFrameCaption; LANGMounterPrefs_MountName := LANGchtMounterPrefs_MountName; LANGMounterPrefs_MountPoint := LANGchtMounterPrefs_MountPoint; LANGMounterPrefs_Device := LANGchtMounterPrefs_Device; LANGMounterPrefs_MoveUpButtonTooltip := LANGchtMounterPrefs_MoveUpButtonTooltip; LANGMounterPrefs_MoveDownButtonTooltip := LANGchtMounterPrefs_MoveDownButtonTooltip; LANGMounterPrefs_UseFSTabDefaultsCheckBox := LANGchtMounterPrefs_UseFSTabDefaultsCheckBox; LANGMounterPrefs_UseFSTabDefaultsCheckBoxTooltip := LANGchtMounterPrefs_UseFSTabDefaultsCheckBoxTooltip; LANGMounterPrefs_ToggleModeCheckBox := LANGchtMounterPrefs_ToggleModeCheckBox; LANGMounterPrefs_ToggleModeCheckBoxTooltip := LANGchtMounterPrefs_ToggleModeCheckBoxTooltip; LANGMounterPrefs_PropertiesFrameCaption := LANGchtMounterPrefs_PropertiesFrameCaption; LANGMounterPrefs_DisplayTextLabelCaption := LANGchtMounterPrefs_DisplayTextLabelCaption; LANGMounterPrefs_MountPointLabelCaption := LANGchtMounterPrefs_MountPointLabelCaption; LANGMounterPrefs_MountDeviceLabelCaption := LANGchtMounterPrefs_MountDeviceLabelCaption; LANGMounterPrefs_DeviceTypeLabelCaption := LANGchtMounterPrefs_DeviceTypeLabelCaption; LANGMounterPrefs_miLocalDiskCaption := LANGchtMounterPrefs_miLocalDiskCaption; LANGMounterPrefs_miRemovableCaption := LANGchtMounterPrefs_miRemovableCaption; LANGMounterPrefs_miCDCaption := LANGchtMounterPrefs_miCDCaption; LANGMounterPrefs_miFloppyCaption := LANGchtMounterPrefs_miFloppyCaption; LANGMounterPrefs_miNetworkCaption := LANGchtMounterPrefs_miNetworkCaption; LANGMounterPrefs_MountCommandLabelCaption := LANGchtMounterPrefs_MountCommandLabelCaption; LANGMounterPrefs_UmountCommandLabelCaption := LANGchtMounterPrefs_UmountCommandLabelCaption; LANGMounterPrefs_MountCommandEntryTooltip := LANGchtMounterPrefs_MountCommandEntryTooltip; LANGMounterPrefs_UmountCommandEntryTooltip := LANGchtMounterPrefs_UmountCommandEntryTooltip; LANGMounterPrefs_IconLabelCaption := LANGchtMounterPrefs_IconLabelCaption; LANGConnMgr_Caption := LANGchtConnMgr_Caption; LANGConnMgr_ConnectButton := LANGchtConnMgr_ConnectButton; LANGConnMgr_OpenConnection := LANGchtConnMgr_OpenConnection; LANGConnMgr_NameColumn := LANGchtConnMgr_NameColumn; LANGConnMgr_URIColumn := LANGchtConnMgr_URIColumn; LANGConnMgr_AddConnectionButtonCaption := LANGchtConnMgr_AddConnectionButtonCaption; LANGConnMgr_AddConnectionButtonTooltip := LANGchtConnMgr_AddConnectionButtonTooltip; LANGConnMgr_EditButtonCaption := LANGchtConnMgr_EditButtonCaption; LANGConnMgr_EditButtonTooltip := LANGchtConnMgr_EditButtonTooltip; LANGConnMgr_RemoveButtonCaption := LANGchtConnMgr_RemoveButtonCaption; LANGConnMgr_RemoveButtonTooltip := LANGchtConnMgr_RemoveButtonTooltip; LANGConnMgr_DoYouWantDelete := LANGchtConnMgr_DoYouWantDelete; LANGConnProp_FTP := LANGchtConnProp_FTP; LANGConnProp_SFTP := LANGchtConnProp_SFTP; LANGConnProp_SMB := LANGchtConnProp_SMB; LANGConnProp_HTTP := LANGchtConnProp_HTTP; LANGConnProp_HTTPS := LANGchtConnProp_HTTPS; LANGConnProp_Other := LANGchtConnProp_Other; LANGConnProp_Caption := LANGchtConnProp_Caption; LANGConnProp_VFSModule := LANGchtConnProp_VFSModule; LANGConnProp_URI := LANGchtConnProp_URI; LANGConnProp_URIEntryTooltip := LANGchtConnProp_URIEntryTooltip; LANGConnProp_DetailedInformations := LANGchtConnProp_DetailedInformations; LANGConnProp_Name := LANGchtConnProp_Name; LANGConnProp_Server := LANGchtConnProp_Server; LANGConnProp_Username := LANGchtConnProp_Username; LANGConnProp_UserNameEntryTooltip := LANGchtConnProp_UserNameEntryTooltip; LANGConnProp_Password := LANGchtConnProp_Password; LANGConnProp_TargetDirectory := LANGchtConnProp_TargetDirectory; LANGConnProp_ServiceType := LANGchtConnProp_ServiceType; LANGConnProp_MaskPassword := LANGchtConnProp_MaskPassword; LANGConnProp_MenuItemCaption := LANGchtConnProp_MenuItemCaption; LANGConnLogin_Caption := LANGchtConnLogin_Caption; LANGConnLogin_Login := LANGchtConnLogin_Login; LANGConnLogin_ExperimentalWarningLabelCaption := LANGchtConnLogin_ExperimentalWarningLabelCaption; LANGConnLogin_Username := LANGchtConnLogin_Username; LANGConnLogin_Password := LANGchtConnLogin_Password; LANGConnLogin_AnonymousCheckButton := LANGchtConnLogin_AnonymousCheckButton; LANGColumns_Caption := LANGchtColumns_Caption; LANGColumns_Title := LANGchtColumns_Title; LANGColumns_MoveUpButtonTooltip := LANGchtColumns_MoveUpButtonTooltip; LANGColumns_MoveDownButtonTooltip := LANGchtColumns_MoveDownButtonTooltip; LANGColumns_TitlesLongName := LANGchtColumns_TitlesLongName; LANGColumns_TitlesLongNameExt := LANGchtColumns_TitlesLongNameExt; LANGColumns_TitlesLongExt := LANGchtColumns_TitlesLongExt; LANGColumns_TitlesLongSize := LANGchtColumns_TitlesLongSize; LANGColumns_TitlesLongDateTime := LANGchtColumns_TitlesLongDateTime; LANGColumns_TitlesLongDate := LANGchtColumns_TitlesLongDate; LANGColumns_TitlesLongTime := LANGchtColumns_TitlesLongTime; LANGColumns_TitlesLongUser := LANGchtColumns_TitlesLongUser; LANGColumns_TitlesLongGroup := LANGchtColumns_TitlesLongGroup; LANGColumns_TitlesLongAttr := LANGchtColumns_TitlesLongAttr; LANGColumns_TitlesShortName := LANGchtColumns_TitlesShortName; LANGColumns_TitlesShortNameExt := LANGchtColumns_TitlesShortNameExt; LANGColumns_TitlesShortExt := LANGchtColumns_TitlesShortExt; LANGColumns_TitlesShortSize := LANGchtColumns_TitlesShortSize; LANGColumns_TitlesShortDateTime := LANGchtColumns_TitlesShortDateTime; LANGColumns_TitlesShortDate := LANGchtColumns_TitlesShortDate; LANGColumns_TitlesShortTime := LANGchtColumns_TitlesShortTime; LANGColumns_TitlesShortUser := LANGchtColumns_TitlesShortUser; LANGColumns_TitlesShortGroup := LANGchtColumns_TitlesShortGroup; LANGColumns_TitlesShortAttr := LANGchtColumns_TitlesShortAttr; LANGTestPlugin_Caption := LANGchtTestPlugin_Caption; LANGTestPlugin_Title := LANGchtTestPlugin_Title; LANGTestPlugin_ExperimentalWarningLabelCaption := LANGchtTestPlugin_ExperimentalWarningLabelCaption; LANGTestPlugin_Plugin := LANGchtTestPlugin_Plugin; LANGTestPlugin_Command := LANGchtTestPlugin_Command; LANGTestPlugin_Username := LANGchtTestPlugin_Username; LANGTestPlugin_Password := LANGchtTestPlugin_Password; LANGTestPlugin_AnonymousCheckButton := LANGchtTestPlugin_AnonymousCheckButton; LANGTestPlugin_NoPluginsFound := LANGchtTestPlugin_NoPluginsFound; LANGRemoteWait_Caption := LANGchtRemoteWait_Caption; LANGRemoteWait_OperationInProgress := LANGchtRemoteWait_OperationInProgress; LANGRemoteWait_ItemsFound := LANGchtRemoteWait_ItemsFound; LANGSearch_Bytes := LANGchtSearch_Bytes; LANGSearch_kB := LANGchtSearch_kB; LANGSearch_MB := LANGchtSearch_MB; LANGSearch_days := LANGchtSearch_days; LANGSearch_weeks := LANGchtSearch_weeks; LANGSearch_months := LANGchtSearch_months; LANGSearch_years := LANGchtSearch_years; LANGSearch_Caption := LANGchtSearch_Caption; LANGSearch_General := LANGchtSearch_General; LANGSearch_Advanced := LANGchtSearch_Advanced; LANGSearch_SearchResults := LANGchtSearch_SearchResults; LANGSearch_SearchFor := LANGchtSearch_SearchFor; LANGSearch_FileMaskEntryTooltip := LANGchtSearch_FileMaskEntryTooltip; LANGSearch_SearchIn := LANGchtSearch_SearchIn; LANGSearch_SearchArchivesCheckButton := LANGchtSearch_SearchArchivesCheckButton; LANGSearch_FindText := LANGchtSearch_FindText; LANGSearch_FindTextEntryTooltip := LANGchtSearch_FindTextEntryTooltip; LANGSearch_CaseSensitiveCheckButton := LANGchtSearch_CaseSensitiveCheckButton; LANGSearch_StayCurrentFSCheckButton := LANGchtSearch_StayCurrentFSCheckButton; LANGSearch_CaseSensitiveMatchCheckButton := LANGchtSearch_CaseSensitiveMatchCheckButton; LANGSearch_Size := LANGchtSearch_Size; LANGSearch_Date := LANGchtSearch_Date; LANGSearch_BiggerThan := LANGchtSearch_BiggerThan; LANGSearch_SmallerThan := LANGchtSearch_SmallerThan; LANGSearch_ModifiedBetweenRadioButton := LANGchtSearch_ModifiedBetweenRadioButton; LANGSearch_NotModifiedAfterRadioButton := LANGchtSearch_NotModifiedAfterRadioButton; LANGSearch_ModifiedLastRadioButton := LANGchtSearch_ModifiedLastRadioButton; LANGSearch_ModifiedNotLastRadionButton := LANGchtSearch_ModifiedNotLastRadionButton; LANGSearch_ModifiedBetweenEntry1 := LANGchtSearch_ModifiedBetweenEntry1; LANGSearch_ViewButtonCaption := LANGchtSearch_ViewButtonCaption; LANGSearch_NewSearchButtonCaption := LANGchtSearch_NewSearchButtonCaption; LANGSearch_GoToFileButtonCaption := LANGchtSearch_GoToFileButtonCaption; LANGSearch_FeedToListboxButtonCaption := LANGchtSearch_FeedToListboxButtonCaption; LANGSearch_StatusSC := LANGchtSearch_StatusSC; LANGSearch_Ready := LANGchtSearch_Ready; LANGSearch_PreparingToSearch := LANGchtSearch_PreparingToSearch; LANGSearch_SearchInProgress := LANGchtSearch_SearchInProgress; LANGSearch_UserCancelled := LANGchtSearch_UserCancelled; LANGSearch_SearchFinished := LANGchtSearch_SearchFinished; LANGSearch_FilesFound := LANGchtSearch_FilesFound; LANGSearch_And := LANGchtSearch_And; LANGCloseOpenConnection := LANGchtCloseOpenConnection; LANGDuplicateTabWarning := LANGchtDuplicateTabWarning; LANGDontShowAgain := LANGchtDontShowAgain; LANGSwitchOtherPanelWarning := LANGchtSwitchOtherPanelWarning; LANGOpenConnectionsWarning := LANGchtOpenConnectionsWarning; LANGmiDisconnect_Caption := LANGchtmiDisconnect_Caption; LANGDisconnectButton_Tooltip := LANGchtDisconnectButton_Tooltip; LANGLeaveArchiveButton_Tooltip := LANGchtLeaveArchiveButton_Tooltip; LANGOpenTerminalButton_Tooltip := LANGchtOpenTerminalButton_Tooltip; LANGOpenTerminalButton_Caption := LANGchtOpenTerminalButton_Caption; LANGShowTextUIDsCheckBox_Caption := LANGchtShowTextUIDsCheckBox_Caption; LANGShowTextUIDsCheckBox_Tooltip := LANGchtShowTextUIDsCheckBox_Tooltip; LANGmiNewTab_Caption := LANGchtmiNewTab_Caption; LANGFilePopupMenu_Properties := LANGchtFilePopupMenu_Properties; LANGCommandEntry_Tooltip := LANGchtCommandEntry_Tooltip; LANGmiFiles_Caption := LANGchtmiFiles_Caption; LANGPasswordButton_Tooltip := LANGchtPasswordButton_Tooltip; LANGHandleRunFromArchive_Bytes := LANGchtHandleRunFromArchive_Bytes; LANGHandleRunFromArchive_FileTypeDesc_Unknown := LANGchtHandleRunFromArchive_FileTypeDesc_Unknown; LANGHandleRunFromArchive_NotAssociated := LANGchtHandleRunFromArchive_NotAssociated; LANGHandleRunFromArchive_SelfExecutable := LANGchtHandleRunFromArchive_SelfExecutable; LANGHandleRunFromArchive_CouldntCreateTemporaryDirectory := LANGchtHandleRunFromArchive_CouldntCreateTemporaryDirectory; LANGFRunFromVFS_Caption := LANGchtFRunFromVFS_Caption; LANGFRunFromVFS_TitleLabel := LANGchtFRunFromVFS_TitleLabel; LANGFRunFromVFS_FileNameLabel := LANGchtFRunFromVFS_FileNameLabel; LANGFRunFromVFS_FileTypeLabel := LANGchtFRunFromVFS_FileTypeLabel; LANGFRunFromVFS_SizeLabel := LANGchtFRunFromVFS_SizeLabel; LANGFRunFromVFS_PackedSizeLabel := LANGchtFRunFromVFS_PackedSizeLabel; LANGFRunFromVFS_DateLabel := LANGchtFRunFromVFS_DateLabel; LANGFRunFromVFS_InfoLabel := LANGchtFRunFromVFS_InfoLabel; LANGFRunFromVFS_OpensWithLabel := LANGchtFRunFromVFS_OpensWithLabel; LANGFRunFromVFS_ExecuteButton := LANGchtFRunFromVFS_ExecuteButton; LANGFRunFromVFS_ExecuteAllButton := LANGchtFRunFromVFS_ExecuteAllButton; LANGFSetPassword_Caption := LANGchtFSetPassword_Caption; LANGFSetPassword_Label1_Caption := LANGchtFSetPassword_Label1_Caption; LANGFSetPassword_Label2_Caption := LANGchtFSetPassword_Label2_Caption; LANGFSetPassword_ShowPasswordCheckButton := LANGchtFSetPassword_ShowPasswordCheckButton; LANGCopyFileNamesToClipboard := LANGchtCopyFileNamesToClipboard; LANGCopyFullPathNamesToClipboard := LANGchtCopyFullPathNamesToClipboard; LANGCopyPathToClipboard := LANGchtCopyPathToClipboard; LANGPreferences_DateFormatLabel_Caption := LANGchtPreferences_DateFormatLabel_Caption; LANGPreferences_System := LANGchtPreferences_System; LANGPreferences_Custom := LANGchtPreferences_Custom; LANGPreferences_CustomDateFormatEntry_Tooltip := LANGchtPreferences_CustomDateFormatEntry_Tooltip; LANGPreferences_TimeFormatLabel_Caption := LANGchtPreferences_TimeFormatLabel_Caption; LANGPreferences_CustomTimeFormatEntry_Tooltip := LANGchtPreferences_CustomTimeFormatEntry_Tooltip; LANGPreferences_DateTimeFormatLabel_Caption := LANGchtPreferences_DateTimeFormatLabel_Caption; LANGPreferences_QuickRenameSkipExtCheckBox := LANGchtPreferences_QuickRenameSkipExtCheckBox; LANGPreferences_QuickRenameSkipExtCheckBox_Tooltip := LANGchtPreferences_QuickRenameSkipExtCheckBox_Tooltip; LANGPreferences_SortDirectoriesLikeFilesCheckBox := LANGchtPreferences_SortDirectoriesLikeFilesCheckBox; LANGPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip := LANGchtPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip; LANGPreferences_QuickSearchLabel_Caption := LANGchtPreferences_QuickSearchLabel_Caption; LANGPreferences_QuickSearchOptionMenu_Tooltip := LANGchtPreferences_QuickSearchOptionMenu_Tooltip; LANGPreferences_QuickSearch_Option1 := LANGchtPreferences_QuickSearch_Option1; LANGPreferences_QuickSearch_Option2 := LANGchtPreferences_QuickSearch_Option2; LANGPreferences_QuickSearch_Option3 := LANGchtPreferences_QuickSearch_Option3; LANGPreferences_QuickSearch_Option4 := LANGchtPreferences_QuickSearch_Option4; LANGPreferences_TempPathLabel_Caption := LANGchtPreferences_TempPathLabel_Caption; LANGPreferences_VFSTempPathLabel_Caption := LANGchtPreferences_VFSTempPathLabel_Caption; LANGPreferences_VFSTempPathEntry_Tooltip := LANGchtPreferences_VFSTempPathEntry_Tooltip; LANGPreferences_RightClickSelectCheckBox := LANGchtPreferences_RightClickSelectCheckBox; LANGPreferences_RightClickSelectCheckBox_Tooltip := LANGchtPreferences_RightClickSelectCheckBox_Tooltip; LANGGtkMountOperation_ConnectAnonymously := LANGchtGtkMountOperation_ConnectAnonymously; LANGGtkMountOperation_ConnectAsUser := LANGchtGtkMountOperation_ConnectAsUser; LANGGtkMountOperation_Username := LANGchtGtkMountOperation_Username; LANGGtkMountOperation_Domain := LANGchtGtkMountOperation_Domain; LANGGtkMountOperation_Password := LANGchtGtkMountOperation_Password; LANGGtkMountOperation_DoNotSavePassword := LANGchtGtkMountOperation_DoNotSavePassword; LANGGtkMountOperation_ForgetPasswordImmediately := LANGchtGtkMountOperation_ForgetPasswordImmediately; LANGGtkMountOperation_RememberPasswordUntilYouLogout := LANGchtGtkMountOperation_RememberPasswordUntilYouLogout; LANGGtkMountOperation_SavePasswordInConnectionManager := LANGchtGtkMountOperation_SavePasswordInConnectionManager; LANGGtkMountOperation_RememberForever := LANGchtGtkMountOperation_RememberForever; LANGFSymlink_RelativePath := LANGchtFSymlink_RelativePath; LANGFConnectionManager_DuplicateButton_Caption := LANGchtFConnectionManager_DuplicateButton_Caption; LANGFConnectionManager_DuplicateButton_Tooltip := LANGchtFConnectionManager_DuplicateButton_Tooltip; LANGFConnectionManager_DoNotSavePasswordsCheckBox_Label := LANGchtFConnectionManager_DoNotSavePasswordsCheckBox_Label; LANGFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip := LANGchtFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip; LANGFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label := LANGchtFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label; LANGFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip := LANGchtFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip; LANGFConnectionManager_DuplicateMenuItem_Caption := LANGchtFConnectionManager_DuplicateMenuItem_Caption; LANGFQuickConnect_Caption := LANGchtFQuickConnect_Caption; LANGFQuickConnect_TitleLabel_Caption := LANGchtFQuickConnect_TitleLabel_Caption; LANGFQuickConnect_ConnectToURILabel_Caption := LANGchtFQuickConnect_ConnectToURILabel_Caption; LANGLinkToS := LANGchtLinkToS; LANGOpenDirectoryInBackgroundTab := LANGchtOpenDirectoryInBackgroundTab; LANGTheActiveConnectionHasNotBeenSaved := LANGchtTheActiveConnectionHasNotBeenSaved; LANGTheArchiveIsEncryptedAndRequiresPassword := LANGchtTheArchiveIsEncryptedAndRequiresPassword; end; initialization AddTranslation('ZH', @SetTranslation); AddTranslation('TW', @SetTranslation); AddTranslation('zh_TW', @SetTranslation); end. tuxcmd-0.6.70+dfsg/UDirDelete.pas0000644000175000017500000000560511300022643015535 0ustar salvisalvi(* Tux Commander - UDirDelete - Question dialog and related funcions Copyright (C) 2004 Tomas Bzatek Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UDirDelete; interface uses SysUtils, Types, Classes, Variants, GTKControls, GTKForms, GTKStdCtrls, GTKExtCtrls, GTKConsts; type TFDirDelete = class(TGTKDialog) Label1, Label2, Label3: TGTKLabel; procedure FormCreate(Sender: TObject); override; procedure FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); public procedure AddButtons(Sel: integer); end; var FDirDelete: TFDirDelete; implementation uses ULocale; procedure TFDirDelete.FormCreate(Sender: TObject); begin WindowPosition := wpCenter; Caption := LANGRemoveDirectory; Label1 := TGTKLabel.Create(Self); Label1.Caption := 'The directory /tmp is not empty!'; Label2 := TGTKLabel.Create(Self); Label2.Caption := LANGDoYouWantToDeleteItWithAllItsFilesAndSubdirectories; Label3 := TGTKLabel.Create(Self); Label3.Visible := False; ClientArea.AddControlEx(Label1, True, True, 0); ClientArea.AddControlEx(Label2, True, True, 0); ClientArea.AddControlEx(Label3, True, True, 0); OnKeyDown := FormKeyDown; end; procedure TFDirDelete.AddButtons(Sel: integer); begin case Sel of 1 : begin AddButton(LANGSkipButton_Caption, 1); AddButton(LANGSkipAllButton_Caption, 3); AddButton(LANGRetry, 2); AddButton(LANGCancel, 0); end; 2 : begin AddButton(LANGRetry, 1); AddButton(LANGCancel, 0); end; 3 : begin AddButton(LANGSkipButton_Caption, 1); AddButton(LANGSkipAllButton_Caption, 3); AddButton(LANGIgnoreButton_Caption, 2); AddButton(LANGCancel, 0); end; 4 : begin AddButton(LANGDeleteButton_Caption, 1); AddButton(LANGAll, 2); AddButton(LANGSkipButton_Caption, 3); AddButton(LANGCancel, 0); end; end; end; procedure TFDirDelete.FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); begin case Key of GDK_ESCAPE: ModalResult := TMessageButton(255); end; end; end. tuxcmd-0.6.70+dfsg/UFileAssoc.pas0000644000175000017500000004014011300022643015535 0ustar salvisalvi(* Tux Commander - UFileAssoc - File Association system objects and functions Copyright (C) 2007 Tomas Bzatek Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UFileAssoc; interface uses Classes, SysUtils, StrUtils, GTKPixbuf, GTKClasses, GTKUtils, UEngines, UVFSCore, UCoreUtils; type TAssocAction = class public ActionName, ActionCommand: string; AutodetectGUI, RunInTerminal: boolean; constructor Create; end; TFileAssoc = class public Extensions: TOpenStringArray; FileTypeName, FileTypeIcon, ColorString: string; DefaultAction: integer; ActionList: TList; Pixmap, LnkPixmap: TGDKPixbuf; constructor Create; destructor Destroy; override; end; const ConstFTAMetaDirectory = ''; ConstFTAMetaFile = ''; {$I 'pixmaps/emblem_symbolic_link_png.inc'} {$I 'pixmaps/gnome_dev_cdrom_16_png.inc'} {$I 'pixmaps/gnome_dev_floppy_16_png.inc'} {$I 'pixmaps/gnome_dev_harddisk_16_png.inc'} {$I 'pixmaps/gnome_dev_removable_usb_16_png.inc'} {$I 'pixmaps/gnome_mime_application_zip_16_png.inc'} {$I 'pixmaps/gnome_mime_x_directory_smb_share_16_png.inc'} {$I 'pixmaps/stock_folder_16_png.inc'} {$I 'pixmaps/stock_lock_16_png.inc'} {$I 'pixmaps/stock_lock_48_png.inc'} {$I 'pixmaps/stock_new_16_png.inc'} {$I 'pixmaps/stock_up_one_dir_16_png.inc'} {$I 'pixmaps/tuxcmd_16_png.inc'} {$I 'pixmaps/tuxcmd_24_png.inc'} {$I 'pixmaps/tuxcmd_32_png.inc'} {$I 'pixmaps/tuxcmd_48_png.inc'} {$I 'pixmaps/tuxcmd_64_png.inc'} {$I 'pixmaps/tuxcmd_128_png.inc'} var FolderIcon, FileIcon, UpDirIcon, SymLinkEmblem, FolderIconLnk, FileIconLnk, FolderIconCached, FileIconCached, FolderIconLnkCached, FileIconLnkCached: TGDKPixbuf; MounterHDD, MounterRemovable, MounterFloppy, MounterCD, MounterNetwork: TGDKPixbuf; StockLock16, StockLock48: TGDKPixbuf; ArchiveIcon, ArchiveIconLnk: TGDKPixbuf; AppIcon16, AppIcon24, AppIcon32, AppIcon48, AppIcon64, AppIcon128: TGDKPixbuf; procedure LoadIcons; function FindVFSPlugin(Filename: string): TVFSPlugin; function FindAssoc(Filename: string): TFileAssoc; procedure AssignFileType(Item: PDataItem); procedure RecreateIcons(List: TList; const FreePixmaps: boolean = True); procedure RemoveIconRefs(List: TList; FreeIt: boolean); procedure AddDefaultItems(List: TList); implementation uses GTKForms, UConfig, UCore; (********************************************************************************************************************************) (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TFileAssoc.Create; begin ActionList := TList.Create; DefaultAction := 0; FileTypeIcon := ''; SetLength(Extensions, 0); FileTypeName := ''; ColorString := ''; Pixmap := TGDKPixbuf.Create(nil); end; destructor TFileAssoc.Destroy; var i: integer; begin try if Assigned(ActionList) and (ActionList.Count > 0) then for i := ActionList.Count - 1 downto 0 do TAssocAction(ActionList[i]).Free; ActionList.Clear; ActionList.Free; // Pixmap.Free; except end; end; (********************************************************************************************************************************) constructor TAssocAction.Create; begin RunInTerminal := False; AutodetectGUI := True; end; (********************************************************************************************************************************) procedure LoadIcons; begin FolderIcon := TGDKPixbuf.Create(Application); FolderIcon.LoadFromInline(@stock_folder_16_png[1]); FolderIcon.ScaleSimple(ConfRowHeightReal, ConfRowHeightReal); FileIcon := TGDKPixbuf.Create(Application); FileIcon.LoadFromInline(@stock_new_16_png[1]); FileIcon.ScaleSimple(ConfRowHeightReal, ConfRowHeightReal); UpDirIcon := TGDKPixbuf.Create(Application); UpDirIcon.LoadFromInline(@stock_up_one_dir_16_png[1]); UpDirIcon.ScaleSimple(ConfRowHeightReal, ConfRowHeightReal); SymLinkEmblem := TGDKPixbuf.Create(Application); SymLinkEmblem.LoadFromInline(@emblem_symbolic_link_png[1]); FolderIconLnk := TGDKPixbuf.Create(Application); FolderIconLnk.FPixbuf := FolderIcon.Copy; FolderIconLnk.CopyArea(SymLinkEmblem, 0, 0, SymLinkEmblem.Width, SymLinkEmblem.Height, FolderIconLnk.Width - SymLinkEmblem.Width, FolderIconLnk.Height - SymLinkEmblem.Height); FileIconLnk := TGDKPixbuf.Create(Application); FileIconLnk.FPixbuf := FileIcon.Copy; FileIconLnk.CopyArea(SymLinkEmblem, 0, 0, SymLinkEmblem.Width, SymLinkEmblem.Height, FileIconLnk.Width - SymLinkEmblem.Width, FileIconLnk.Height - SymLinkEmblem.Height); FolderIconCached := FolderIcon; FileIconCached := FileIcon; FolderIconLnkCached := FolderIconLnk; FileIconLnkCached := FileIconLnk; MounterHDD := TGDKPixbuf.Create(Application); MounterHDD.LoadFromInline(@gnome_dev_harddisk_16_png[1]); MounterRemovable := TGDKPixbuf.Create(Application); MounterRemovable.LoadFromInline(@gnome_dev_removable_usb_16_png[1]); MounterFloppy := TGDKPixbuf.Create(Application); MounterFloppy.LoadFromInline(@gnome_dev_floppy_16_png[1]); MounterCD := TGDKPixbuf.Create(Application); MounterCD.LoadFromInline(@gnome_dev_cdrom_16_png[1]); MounterNetwork := TGDKPixbuf.Create(Application); MounterNetwork.LoadFromInline(@gnome_mime_x_directory_smb_share_16_png[1]); StockLock16 := TGDKPixbuf.Create(Application); StockLock16.LoadFromInline(@stock_lock_16_png[1]); StockLock48 := TGDKPixbuf.Create(Application); StockLock48.LoadFromInline(@stock_lock_48_png[1]); ArchiveIcon := TGDKPixbuf.Create(Application); ArchiveIcon.LoadFromInline(@gnome_mime_application_zip_16_png[1]); ArchiveIcon.ScaleSimple(ConfRowHeightReal, ConfRowHeightReal); ArchiveIconLnk := TGDKPixbuf.Create(Application); ArchiveIconLnk.FPixbuf := ArchiveIcon.Copy; ArchiveIconLnk.CopyArea(SymLinkEmblem, 0, 0, SymLinkEmblem.Width, SymLinkEmblem.Height, FolderIconLnk.Width - SymLinkEmblem.Width, FolderIconLnk.Height - SymLinkEmblem.Height); AppIcon16 := TGDKPixbuf.Create(Application); AppIcon16.LoadFromInline(@tuxcmd_16_png[1]); AppIcon24 := TGDKPixbuf.Create(Application); AppIcon24.LoadFromInline(@tuxcmd_24_png[1]); AppIcon32 := TGDKPixbuf.Create(Application); AppIcon32.LoadFromInline(@tuxcmd_32_png[1]); AppIcon48 := TGDKPixbuf.Create(Application); AppIcon48.LoadFromInline(@tuxcmd_48_png[1]); AppIcon64 := TGDKPixbuf.Create(Application); AppIcon64.LoadFromInline(@tuxcmd_64_png[1]); AppIcon128 := TGDKPixbuf.Create(Application); AppIcon128.LoadFromInline(@tuxcmd_128_png[1]); end; (********************************************************************************************************************************) function FindVFSPlugin(Filename: string): TVFSPlugin; var Ext, s: string; b: boolean; i, j, MaxFound: integer; begin Result := nil; MaxFound := 0; if (Pos('.', Filename) > 0) and (LastDelimiter('.', Filename) < Length(Filename)) then begin Ext := WideUpperCase(Trim(Copy(Filename, Pos('.', Filename), Length(Filename) - Pos('.', Filename) + 1))); if PluginList.Count > 0 then for i := 0 to PluginList.Count - 1 do with TVFSPlugin(PluginList[i]) do if Length(Extensions) > 0 then begin b := False; s := ''; for j := 0 to Length(Extensions) - 1 do begin s := ANSIUpperCase(IncludeLeadingDot(Extensions[j])); if Length(Ext) = Length(s) then b := (Ext = s) and (Length(s) > MaxFound) else b := (Pos(s, Ext) > 0) and (RightStr(Ext, Length(s)) = s) and (Length(s) > MaxFound); if b then Break; end; if b then begin Result := PluginList[i]; MaxFound := Length(s); end; end; end; end; function FindAssoc(Filename: string): TFileAssoc; var Ext, s: string; b: boolean; i, j, MaxFound: integer; begin Result := nil; MaxFound := 0; if (Pos('.', Filename) > 0) and (LastDelimiter('.', Filename) < Length(Filename)) then begin Ext := WideUpperCase(Trim(Copy(Filename, Pos('.', Filename), Length(Filename) - Pos('.', Filename) + 1))); if AssocList.Count > 0 then for i := 0 to AssocList.Count - 1 do with TFileAssoc(AssocList[i]) do if Length(Extensions) > 0 then begin b := False; s := ''; for j := 0 to Length(Extensions) - 1 do begin s := ANSIUpperCase(IncludeLeadingDot(Extensions[j])); if Length(Ext) = Length(s) then b := (Ext = s) and (Length(s) > MaxFound) else b := (Pos(s, Ext) > 0) and (RightStr(Ext, Length(s)) = s) and (Length(s) > MaxFound); if b then Break; end; if b then begin Result := AssocList[i]; MaxFound := Length(s); end; end; end; end; procedure AssignFileType(Item: PDataItem); var AColor: TGDKColor; Plugin: TVFSPlugin; Assoc: TFileAssoc; begin with PDataItem(Item)^ do begin ItemColor := nil; if IsLnk and (not ConfLinkItemDefaultColors) then ItemColor := LinkItemGDKColor else if IsDotFile and (not ConfDotFileItemDefaultColors) then ItemColor := DotFileItemGDKColor; if IsDir then begin if IsLnk then Icon := FolderIconLnkCached.FPixbuf else Icon := FolderIconCached.FPixbuf; end else begin if not IsLnk then Icon := FileIconCached.FPixbuf else Icon := FileIconLnkCached.FPixbuf; if (Pos('.', FName) > 1) and (LastDelimiter('.', FName) < Length(FName)) then begin Plugin := FindVFSPlugin(FName); Assoc := FindAssoc(FName); // Asssign icon and color if Plugin <> nil then begin if IsLnk then Icon := ArchiveIconLnk.FPixbuf else Icon := ArchiveIcon.FPixbuf; end else if Assoc <> nil then begin if Assigned(Assoc.Pixmap) then begin if IsLnk and Assigned(Assoc.LnkPixmap) and Assigned(Assoc.LnkPixmap.FPixbuf) then Icon := Assoc.LnkPixmap.FPixbuf else Icon := Assoc.Pixmap.FPixbuf; end; if ItemColor = nil then begin if (Assoc.ColorString = '') or (not StringToGDKColor(Assoc.ColorString, AColor)) then ItemColor := NormalItemGDKColor else ItemColor := GDKColorToPGdkColor(AColor); end; end; end; end; end; end; (********************************************************************************************************************************) procedure RecreateIcons(List: TList; const FreePixmaps: boolean = True); var i: integer; b: boolean; begin if Assigned(List) and (List.Count > 0) then for i := 0 to List.Count - 1 do if Assigned(List[i]) and (TObject(List[i]) is TFileAssoc) then with TFileAssoc(List[i]) do begin // Destroy old objects if (Pixmap <> FileIcon) and (Pixmap <> FileIconLnk) and (Pixmap <> UpDirIcon) and (Pixmap <> FolderIcon) and (Pixmap <> FileIconCached) and (Pixmap <> FileIconLnkCached) and (Pixmap <> FolderIconCached) and (Pixmap <> FolderIconLnkCached) and (Pixmap <> FolderIconLnk) and Assigned(Pixmap) and Assigned(Pixmap.FPixbuf) then begin if FreePixmaps then Pixmap.Free; Pixmap := nil; end; if (LnkPixmap <> FileIcon) and (LnkPixmap <> FileIconLnk) and (LnkPixmap <> UpDirIcon) and (LnkPixmap <> FolderIcon) and (Pixmap <> FileIconCached) and (Pixmap <> FileIconLnkCached) and (Pixmap <> FolderIconCached) and (Pixmap <> FolderIconLnkCached) and (LnkPixmap <> FolderIconLnk) and Assigned(LnkPixmap) and Assigned(LnkPixmap.FPixbuf) then begin if FreePixmaps then LnkPixmap.Free; LnkPixmap := nil; end; // Load / Assign icon b := FileExists(FileTypeIcon); if b then begin if not Assigned(Pixmap) then Pixmap := TGDKPixbuf.Create(nil); b := Pixmap.LoadFromFile(FileTypeIcon); if b then Pixmap.ScaleSimple(ConfRowHeightReal, ConfRowHeightReal); end; if not b then if FileTypeName = ConstFTAMetaDirectory then Pixmap := FolderIcon else if FileTypeName = ConstFTAMetaFile then Pixmap := FileIcon else Pixmap := FileIconCached; // Create Link overelay if Assigned(Pixmap) and Assigned(Pixmap.FPixbuf) and Assigned(SymLinkEmblem) then begin LnkPixmap := TGDKPixbuf.Create(nil); LnkPixmap.FPixbuf := Pixmap.Copy; LnkPixmap.CopyArea(SymLinkEmblem, 0, 0, SymLinkEmblem.Width, SymLinkEmblem.Height, LnkPixmap.Width - SymLinkEmblem.Width, LnkPixmap.Height - SymLinkEmblem.Height); end else LnkPixmap := Pixmap; if FileTypeName = ConstFTAMetaDirectory then begin FolderIconCached := Pixmap; FolderIconLnkCached := LnkPixmap; end; if FileTypeName = ConstFTAMetaFile then begin FileIconCached := Pixmap; FileIconLnkCached := LnkPixmap; end; end; end; (********************************************************************************************************************************) procedure RemoveIconRefs(List: TList; FreeIt: boolean); var i: integer; begin if Assigned(List) and (List.Count > 0) then for i := 0 to List.Count - 1 do if Assigned(List[i]) and (TObject(List[i]) is TFileAssoc) then with TFileAssoc(List[i]) do begin if FreeIt and Assigned(Pixmap) then Pixmap.Free; Pixmap := nil; if FreeIt and Assigned(LnkPixmap) then LnkPixmap.Free; LnkPixmap := nil; end; end; (********************************************************************************************************************************) procedure AddDefaultItems(List: TList); var Item: TFileAssoc; i: integer; Found: boolean; begin // Add default directory item try Found := False; if List.Count > 0 then for i := 0 to List.Count - 1 do if TFileAssoc(List[i]).FileTypeName = ConstFTAMetaDirectory then begin Found := True; Break; end; if not Found then begin Item := TFileAssoc.Create; Item.FileTypeName := ConstFTAMetaDirectory; SetLength(Item.Extensions, 0); Item.FileTypeIcon := ''; Item.ColorString := ''; Item.DefaultAction := 0; Item.ActionList := TList.Create; Item.Pixmap := nil; Item.LnkPixmap := nil; List.Insert(0, Item); end; except end; // Add default file item try Found := False; if List.Count > 0 then for i := 0 to List.Count - 1 do if TFileAssoc(List[i]).FileTypeName = ConstFTAMetaFile then begin Found := True; Break; end; if not Found then begin Item := TFileAssoc.Create; Item.FileTypeName := ConstFTAMetaFile; SetLength(Item.Extensions, 0); Item.FileTypeIcon := ''; Item.ColorString := ''; Item.DefaultAction := 0; Item.ActionList := TList.Create; Item.Pixmap := nil; Item.LnkPixmap := nil; List.Insert(0, Item); end; except end; end; (********************************************************************************************************************************) end. tuxcmd-0.6.70+dfsg/UMounterPrefs.pas0000644000175000017500000006122011300022643016320 0ustar salvisalvi(* Tux Commander - UMounterPrefs - Mounter Preferences dialog Copyright (C) 2004 Tomas Bzatek Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UMounterPrefs; interface uses glib2, gdk2, gtk2, pango, SysUtils, Types, Classes, Variants, GTKControls, GTKForms, GTKStdCtrls, GTKExtCtrls, GTKConsts, GTKView, GTKUtils, GTKDialogs, GTKPixbuf, GTKClasses, GTKMenus, UCoreClasses, UGnome; type TFMounterPrefs = class(TGTKDialog) TitleFrame: TGTKFrame; TitleLabel: TGTKLabel; TitleEventBox: TGTKEventBox; TitleIcon: TGTKImage; TitleHBox: TGTKHBox; ListView: TGTKListView; ListViewScrolledWindow: TGTKScrolledWindow; ListViewFrame, PropertiesFrame: TGTKFrame; MounterListTable, PropertiesTable: TGTKTable; AddItemButton, RemoveItemButton: TGTKButton; MoveUpButton, MoveDownButton: TGTKImageButton; HBox1: TGTKHBox; DisplayTextLabel, MountPointLabel, MountDeviceLabel, MountCommandLabel, UmountCommandLabel, IconLabel, DeviceTypeLabel: TGTKLabel; DisplayTextEntry, MountPointEntry, MountDeviceEntry, MountCommandEntry, UmountCommandEntry: TGTKEntry; IconEntry: TGnomeIconEntry; IconEntry2: TGTKButton; DeviceTypeOptionMenu: TGTKOptionMenu; miLocalDisk, miRemovable, miCD, miFloppy, miNetwork: TGTKMenuItem; UseFSTabDefaultsCheckBox: TGTKCheckButton; ToggleModeCheckBox: TGTKCheckButton; procedure FormCreate(Sender: TObject); override; procedure FormDestroy(Sender: TObject); procedure ListViewSelectionChanged(Sender: TObject); procedure UseFSTabDefaultsCheckBoxToggled(Sender: TObject); procedure AddItemButtonClick(Sender: TObject); procedure RemoveItemButtonClick(Sender: TObject); procedure MoveUpDownButtonButtonClick(Sender: TObject); procedure DisplayTextEntryChanged(Sender: TObject); procedure MountPointEntryChanged(Sender: TObject); procedure MountDeviceEntryChanged(Sender: TObject); procedure MountCommandEntryChanged(Sender: TObject); procedure UmountCommandEntryChanged(Sender: TObject); procedure DeviceTypeOptionMenuChanged(Sender: TObject); procedure IconEntryChanged(Sender: TObject); procedure IconEntry2Click(Sender: TObject); private FUseGnomeIconEntry: boolean; procedure RefreshIcon(ItemIndex: integer); public InternalMounterList: TList; procedure AssignAssocList(List: TList); procedure FillList; procedure CleanItems; end; var FMounterPrefs: TFMounterPrefs; implementation uses ULocale, UFileAssoc, UCoreUtils, UConfig, UCore; function TGTKListView_drag_end(widget: PGtkWidget; drag_context: PGdkDragContext; user_data: gpointer): gboolean; cdecl; forward; procedure TFMounterPrefs.FormCreate(Sender: TObject); const row_targets: TGtkTargetEntry = (target:'GTK_TREE_MODEL_ROW'; flags:GTK_TARGET_SAME_APP; info:100); var Column: TGTKTreeViewColumn; begin FUseGnomeIconEntry := Assigned(gnome_icon_entry_new) and Assigned(gnome_icon_entry_get_filename) and Assigned(gnome_icon_entry_set_filename); // FUseGnomeIconEntry := False; SetDefaultSize(500, 520); Caption := LANGMounterPrefs_Caption; Buttons := [mbOK, mbCancel]; ShowSeparator := False; TitleEventBox := TGTKEventBox.Create(Self); TitleLabel := TGTKLabel.Create(Self); TitleLabel.Caption := Format('%s', [LANGMounterPrefs_TitleLabelCaption]); TitleLabel.UseMarkup := True; TitleLabel.XAlign := 0; TitleLabel.XPadding := 0; TitleLabel.YPadding := 3; TitleEventBox.ControlState := csPrelight; TitleFrame := TGTKFrame.CreateWithoutLabel(Self); TitleFrame.ShadowType := stShadowOut; TitleIcon := TGTKImage.Create(Self); TitleIcon.SetFromStock('gtk-cdrom', isLargeToolbar); TitleHBox := TGTKHBox.Create(Self); TitleHBox.Homogeneous := False; TitleHBox.AddControlEx(TGTKEventBox.Create(Self), False, False, 5); TitleHBox.AddControlEx(TitleIcon, False, False, 0); TitleHBox.AddControlEx(TitleLabel, True, True, 10); TitleEventBox.AddControl(TitleHBox); TitleFrame.AddControl(TitleEventBox); ClientArea.AddControlEx(TitleFrame, False, True, 0); ListViewFrame := TGTKFrame.Create(Self); ListViewFrame.Caption := LANGMounterPrefs_ListViewFrameCaption; ListViewFrame.BorderWidth := 7; ClientArea.AddControlEx(ListViewFrame, True, True, 0); MounterListTable := TGTKTable.Create(Self); ListViewFrame.AddControl(MounterListTable); MounterListTable.BorderWidth := 7; ListView := TGTKListView.CreateTyped(Self, False, [lcText, lcText, lcText, lcPointer, lcPixbuf]); g_signal_connect(ListView.FWidget, 'drag-end', G_CALLBACK(@TGTKListView_drag_end), nil); gtk_tree_view_enable_model_drag_source(GTK_TREE_VIEW(ListView.FWidget), GDK_BUTTON1_MASK, @row_targets, 1, GDK_ACTION_MOVE or GDK_ACTION_COPY); gtk_tree_view_enable_model_drag_dest(GTK_TREE_VIEW(ListView.FWidget), @row_targets, 1, GDK_ACTION_MOVE or GDK_ACTION_COPY); ListView.RulesHint := True; // ListView.Reorderable := True; Column := ListView.Columns.AddTyped(ctImageText); Column.Caption := LANGMounterPrefs_MountName; Column.AddImageAttribute('pixbuf', 4); Column.AddAttribute('text', 0); Column.Resizable := True; Column.FixedWidth := 150; Column.SizingMode := smFixed; // Column.Clickable := True; Column := ListView.Columns.Add; Column.Caption := LANGMounterPrefs_MountPoint; Column.AddAttribute('text', 1); Column.Resizable := True; Column.FixedWidth := 200; Column.SizingMode := smFixed; // Column.Clickable := True; Column := ListView.Columns.Add; Column.Caption := LANGMounterPrefs_Device; Column.AddAttribute('text', 2); Column.Resizable := True; Column.FixedWidth := 150; Column.SizingMode := smFixed; // Column.Clickable := True; ListViewScrolledWindow := TGTKScrolledWindow.Create(Self); ListViewScrolledWindow.AddControl(ListView); ListViewScrolledWindow.HorizScrollBarPolicy := sbAutomatic; ListViewScrolledWindow.VertScrollBarPolicy := sbAutomatic; ListViewScrolledWindow.ShadowType := stShadowIn; AddItemButton := TGTKButton.CreateFromStock(Self, 'gtk-add'); RemoveItemButton := TGTKButton.CreateFromStock(Self, 'gtk-remove'); HBox1 := TGTKHBox.Create(Self); HBox1.Homogeneous := True; HBox1.AddControlEx(AddItemButton, True, True, 2); HBox1.AddControlEx(RemoveItemButton, True, True, 2); MoveUpButton := TGTKImageButton.CreateWithoutLabel(Self); MoveUpButton.SetFromStock('gtk-go-up', isSmallToolbar); MoveUpButton.Tooltip := LANGMounterPrefs_MoveUpButtonTooltip; MoveUpButton.CanFocus := False; MoveDownButton := TGTKImageButton.CreateWithoutLabel(Self); MoveDownButton.SetFromStock('gtk-go-down', isSmallToolbar); MoveDownButton.Tooltip := LANGMounterPrefs_MoveDownButtonTooltip; MoveDownButton.CanFocus := False; UseFSTabDefaultsCheckBox := TGTKCheckButton.CreateWithLabel(Self, LANGMounterPrefs_UseFSTabDefaultsCheckBox); UseFSTabDefaultsCheckBox.Tooltip := LANGMounterPrefs_UseFSTabDefaultsCheckBoxTooltip; ToggleModeCheckBox := TGTKCheckButton.CreateWithLabel(Self, LANGMounterPrefs_ToggleModeCheckBox); ToggleModeCheckBox.Tooltip := LANGMounterPrefs_ToggleModeCheckBoxTooltip; MounterListTable.AddControlEx(0, 0, 3, 1, UseFSTabDefaultsCheckBox, [taoExpand, taoFill], [taoShrink, taoFill], 0, 2); MounterListTable.AddControlEx(0, 1, 3, 1, ToggleModeCheckBox, [taoExpand, taoFill], [taoShrink, taoFill], 0, 2); MounterListTable.AddControlEx(0, 2, 3, 4, ListViewScrolledWindow, [taoExpand, taoFill], [taoExpand, taoFill], 0, 5); MounterListTable.AddControlEx(0, 6, 1, 1, TGTKLabel.Create(Self), [taoExpand, taoFill], [taoShrink, taoFill], 0, 2); MounterListTable.AddControlEx(2, 6, 1, 1, HBox1, [taoShrink, taoFill], [taoShrink, taoFill], 0, 2); MounterListTable.AddControlEx(3, 3, 1, 1, MoveUpButton, [taoShrink, taoFill], [taoShrink], 5, 5); MounterListTable.AddControlEx(3, 4, 1, 1, MoveDownButton, [taoShrink, taoFill], [taoShrink], 5, 5); MounterListTable.AddControlEx(3, 2, 1, 1, TGTKLabel.Create(Self), [taoShrink, taoFill], [taoExpand, taoFill], 0, 2); MounterListTable.AddControlEx(3, 5, 1, 1, TGTKLabel.Create(Self), [taoShrink, taoFill], [taoExpand, taoFill], 0, 2); PropertiesFrame := TGTKFrame.Create(Self); PropertiesFrame.Caption := LANGMounterPrefs_PropertiesFrameCaption; PropertiesFrame.BorderWidth := 7; PropertiesTable := TGTKTable.Create(Self); PropertiesFrame.AddControl(PropertiesTable); ClientArea.AddControlEx(PropertiesFrame, False, False, 0); DisplayTextLabel := TGTKLabel.Create(Self); DisplayTextLabel.Caption := LANGMounterPrefs_DisplayTextLabelCaption; DisplayTextLabel.XAlign := 0; DisplayTextLabel.UseUnderline := True; MountPointLabel := TGTKLabel.Create(Self); MountPointLabel.Caption := LANGMounterPrefs_MountPointLabelCaption; MountPointLabel.XAlign := 0; MountPointLabel.UseUnderline := True; MountDeviceLabel := TGTKLabel.Create(Self); MountDeviceLabel.Caption := LANGMounterPrefs_MountDeviceLabelCaption; MountDeviceLabel.XAlign := 0; MountDeviceLabel.UseUnderline := True; DeviceTypeLabel := TGTKLabel.Create(Self); DeviceTypeLabel.Caption := LANGMounterPrefs_DeviceTypeLabelCaption; DeviceTypeLabel.XAlign := 0; DeviceTypeLabel.UseUnderline := True; DisplayTextEntry := TGTKEntry.Create(Self); DisplayTextLabel.FocusControl := DisplayTextEntry; MountPointEntry := TGTKEntry.Create(Self); MountPointLabel.FocusControl := MountPointEntry; MountDeviceEntry := TGTKEntry.Create(Self); MountDeviceLabel.FocusControl := MountDeviceEntry; DeviceTypeOptionMenu := TGTKOptionMenu.Create(Self); DeviceTypeLabel.FocusControl := DeviceTypeOptionMenu; miLocalDisk := TGTKMenuItem.CreateTyped(Self, itImageText); miLocalDisk.Caption := LANGMounterPrefs_miLocalDiskCaption; miLocalDisk.Icon := MounterHDD; miRemovable := TGTKMenuItem.CreateTyped(Self, itImageText); miRemovable.Caption := LANGMounterPrefs_miRemovableCaption; miRemovable.Icon := MounterRemovable; miCD := TGTKMenuItem.CreateTyped(Self, itImageText); miCD.Caption := LANGMounterPrefs_miCDCaption; miCD.Icon := MounterCD; miFloppy := TGTKMenuItem.CreateTyped(Self, itImageText); miFloppy.Caption := LANGMounterPrefs_miFloppyCaption; miFloppy.Icon := MounterFloppy; miNetwork := TGTKMenuItem.CreateTyped(Self, itImageText); miNetwork.Caption := LANGMounterPrefs_miNetworkCaption; miNetwork.Icon := MounterNetwork; DeviceTypeOptionMenu.Items.Add(miLocalDisk); DeviceTypeOptionMenu.Items.Add(miRemovable); DeviceTypeOptionMenu.Items.Add(miCD); DeviceTypeOptionMenu.Items.Add(miFloppy); DeviceTypeOptionMenu.Items.Add(miNetwork); MountCommandLabel := TGTKLabel.Create(Self); MountCommandLabel.Caption := LANGMounterPrefs_MountCommandLabelCaption; MountCommandLabel.XAlign := 0; MountCommandLabel.UseUnderline := True; UmountCommandLabel := TGTKLabel.Create(Self); UmountCommandLabel.Caption := LANGMounterPrefs_UmountCommandLabelCaption; UmountCommandLabel.XAlign := 0; UmountCommandLabel.UseUnderline := True; MountCommandEntry := TGTKEntry.Create(Self); MountCommandEntry.Tooltip := LANGMounterPrefs_MountCommandEntryTooltip; MountCommandLabel.FocusControl := MountCommandEntry; UmountCommandEntry := TGTKEntry.Create(Self); UmountCommandEntry.Tooltip := LANGMounterPrefs_UmountCommandEntryTooltip; UmountCommandLabel.FocusControl := UmountCommandEntry; PropertiesTable.AddControlEx(0, 0, 1, 1, DisplayTextLabel, [taoShrink, taoFill], [taoShrink, taoFill], 10, 2); PropertiesTable.AddControlEx(1, 0, 2, 1, DisplayTextEntry, [taoExpand, taoFill], [taoShrink, taoFill], 10, 2); PropertiesTable.AddControlEx(0, 1, 1, 1, MountPointLabel, [taoShrink, taoFill], [taoShrink, taoFill], 10, 2); PropertiesTable.AddControlEx(1, 1, 2, 1, MountPointEntry, [taoExpand, taoFill], [taoShrink, taoFill], 10, 2); PropertiesTable.AddControlEx(0, 2, 1, 1, MountDeviceLabel, [taoShrink, taoFill], [taoShrink, taoFill], 10, 2); PropertiesTable.AddControlEx(1, 2, 1, 1, MountDeviceEntry, [taoExpand, taoFill], [taoShrink, taoFill], 10, 2); PropertiesTable.AddControlEx(2, 2, 1, 1, DeviceTypeLabel, [taoShrink, taoFill], [taoShrink, taoFill], 0, 2); PropertiesTable.AddControlEx(3, 2, 2, 1, DeviceTypeOptionMenu, [taoExpand, taoFill], [taoShrink, taoFill], 10, 2); PropertiesTable.AddControlEx(0, 3, 1, 1, MountCommandLabel, [taoShrink, taoFill], [taoShrink, taoFill], 10, 2); PropertiesTable.AddControlEx(1, 3, 1, 1, MountCommandEntry, [taoExpand, taoFill], [taoShrink, taoFill], 10, 2); PropertiesTable.AddControlEx(2, 3, 1, 1, UmountCommandLabel, [taoShrink, taoFill], [taoShrink, taoFill], 0, 2); PropertiesTable.AddControlEx(3, 3, 2, 1, UmountCommandEntry, [taoExpand, taoFill], [taoShrink, taoFill], 10, 2); IconLabel := TGTKLabel.Create(Self); IconLabel.Caption := LANGMounterPrefs_IconLabelCaption; IconLabel.XAlign := 1; IconLabel.UseUnderline := True; PropertiesTable.AddControlEx(3, 0, 1, 2, IconLabel, [taoExpand, taoFill], [taoShrink, taoFill], 0, 2); if FUseGnomeIconEntry then begin IconEntry := TGnomeIconEntry.Create(Self); IconLabel.FocusControl := IconEntry; PropertiesTable.AddControlEx(4, 0, 1, 2, IconEntry, [taoExpand, taoFill], [taoExpand, taoFill], 0, 0); end else begin IconEntry2 := TGTKButton.Create(Self); IconEntry2.Caption := LANGBrowseButton_Caption; PropertiesTable.AddControlEx(4, 0, 1, 2, IconEntry2, [taoExpand, taoFill], [taoExpand, taoFill], 10, 4); end; OnDestroy := FormDestroy; ListView.OnSelectionChanged := ListViewSelectionChanged; UseFSTabDefaultsCheckBox.OnToggled := UseFSTabDefaultsCheckBoxToggled; AddItemButton.OnClick := AddItemButtonClick; RemoveItemButton.OnClick := RemoveItemButtonClick; MoveUpButton.OnClick := MoveUpDownButtonButtonClick; MoveDownButton.OnClick := MoveUpDownButtonButtonClick; DisplayTextEntry.OnChanged := DisplayTextEntryChanged; MountPointEntry.OnChanged := MountPointEntryChanged; MountDeviceEntry.OnChanged := MountDeviceEntryChanged; MountCommandEntry.OnChanged := MountCommandEntryChanged; UmountCommandEntry.OnChanged := UmountCommandEntryChanged; DeviceTypeOptionMenu.OnChanged := DeviceTypeOptionMenuChanged; if FUseGnomeIconEntry then IconEntry.OnIconChanged := IconEntryChanged else IconEntry2.OnClick := IconEntry2Click; ListViewSelectionChanged(Self); ListView.SetFocus; end; procedure TFMounterPrefs.ListViewSelectionChanged(Sender: TObject); var b: boolean; Item: TMounterItem; begin b := Assigned(ListView.Selected) and Assigned(ListView.Selected.AsPointer(3)) and ListViewScrolledWindow.Enabled; RemoveItemButton.Enabled := b; MoveUpButton.Enabled := b and (ListView.Selected.Index > 0); MoveDownButton.Enabled := b and (ListView.Selected.Index < ListView.Items.Count - 1); PropertiesTable.Enabled := b; if not b then begin DisplayTextEntry.Text := ''; MountPointEntry.Text := ''; MountDeviceEntry.Text := ''; MountCommandEntry.Text := ''; UmountCommandEntry.Text := ''; DeviceTypeOptionMenu.ItemIndex := 0; if FUseGnomeIconEntry then IconEntry.Filename := ''; Exit; end; Item := ListView.Selected.AsPointer(3); DisplayTextEntry.Text := Item.DisplayText; MountPointEntry.Text := StrToUTF8(Item.MountPath); MountDeviceEntry.Text := StrToUTF8(Item.Device); MountCommandEntry.Text := StrToUTF8(Item.MountCommand); UmountCommandEntry.Text := StrToUTF8(Item.UmountCommand); DeviceTypeOptionMenu.ItemIndex := Item.DeviceType; if FUseGnomeIconEntry then IconEntry.Filename := Item.IconPath; end; procedure TFMounterPrefs.UseFSTabDefaultsCheckBoxToggled(Sender: TObject); begin ListViewScrolledWindow.Enabled := not UseFSTabDefaultsCheckBox.Checked; AddItemButton.Enabled := not UseFSTabDefaultsCheckBox.Checked; RemoveItemButton.Enabled := not UseFSTabDefaultsCheckBox.Checked; MoveUpButton.Enabled := not UseFSTabDefaultsCheckBox.Checked; MoveDownButton.Enabled := not UseFSTabDefaultsCheckBox.Checked; ListViewSelectionChanged(Self); end; procedure TFMounterPrefs.AddItemButtonClick(Sender: TObject); var Item: TMounterItem; ListItem: TGTKListItem; begin Item := TMounterItem.Create; InternalMounterList.Add(Item); ListItem := ListView.Items.Add; ListItem.SetValue(3, Item); ListItem.Selected := True; ListItem.SetCursor(0, False, not Application.GTKVersion_2_2_0_Up, 0.5, 0); ListViewSelectionChanged(Self); DisplayTextEntry.SetFocus; RefreshIcon(ListView.Selected.Index); end; procedure TFMounterPrefs.RemoveItemButtonClick(Sender: TObject); var Item: TMounterItem; begin if Assigned(ListView.Selected) and Assigned(ListView.Selected.AsPointer(3)) then begin Item := ListView.Selected.AsPointer(3); Item.Free; InternalMounterList.Remove(Item); ListView.Items.Delete(ListView.Selected.Index); end; end; procedure TFMounterPrefs.MoveUpDownButtonButtonClick(Sender: TObject); var i, Old, New: integer; s: string; p: pointer; begin if Assigned(ListView.Selected) and Assigned(ListView.Selected.AsPointer(3)) then begin Old := InternalMounterList.IndexOf(ListView.Selected.AsPointer(3)); if (Sender = MoveUpButton) and (Old > 0) then New := Old - 1 else if (Sender = MoveDownButton) and (Old < InternalMounterList.Count - 1) then New := Old + 1 else Exit; InternalMounterList.Move(Old, New); for i := 0 to 2 do begin s := ListView.Items[New].AsString(i); ListView.Items[New].SetValue(i, ListView.Items[Old].AsString(i)); ListView.Items[Old].SetValue(i, s); end; for i := 3 to 4 do begin p := ListView.Items[New].AsPointer(i); ListView.Items[New].SetValue(i, ListView.Items[Old].AsPointer(i)); ListView.Items[Old].SetValue(i, p); end; ListView.Items[New].Selected := True; ListView.Items[New].SetCursor(0, False, not Application.GTKVersion_2_2_0_Up, 0.5, 0); end; end; procedure TFMounterPrefs.DisplayTextEntryChanged(Sender: TObject); begin if Assigned(ListView.Selected) and Assigned(ListView.Selected.AsPointer(3)) and (not UseFSTabDefaultsCheckBox.Checked) then begin TMounterItem(ListView.Selected.AsPointer(3)).DisplayText := DisplayTextEntry.Text; ListView.Selected.SetValue(0, DisplayTextEntry.Text); end; end; procedure TFMounterPrefs.MountPointEntryChanged(Sender: TObject); begin if Assigned(ListView.Selected) and Assigned(ListView.Selected.AsPointer(3)) and (not UseFSTabDefaultsCheckBox.Checked) then begin TMounterItem(ListView.Selected.AsPointer(3)).MountPath := UTF8ToStr(MountPointEntry.Text); ListView.Selected.SetValue(1, MountPointEntry.Text); end; end; procedure TFMounterPrefs.MountDeviceEntryChanged(Sender: TObject); begin if Assigned(ListView.Selected) and Assigned(ListView.Selected.AsPointer(3)) and (not UseFSTabDefaultsCheckBox.Checked) then begin TMounterItem(ListView.Selected.AsPointer(3)).Device := UTF8ToStr(MountDeviceEntry.Text); ListView.Selected.SetValue(2, MountDeviceEntry.Text); end; end; procedure TFMounterPrefs.MountCommandEntryChanged(Sender: TObject); begin if Assigned(ListView.Selected) and Assigned(ListView.Selected.AsPointer(3)) and (not UseFSTabDefaultsCheckBox.Checked) then begin TMounterItem(ListView.Selected.AsPointer(3)).MountCommand := UTF8ToStr(MountCommandEntry.Text); end; end; procedure TFMounterPrefs.UmountCommandEntryChanged(Sender: TObject); begin if Assigned(ListView.Selected) and Assigned(ListView.Selected.AsPointer(3)) and (not UseFSTabDefaultsCheckBox.Checked) then begin TMounterItem(ListView.Selected.AsPointer(3)).UmountCommand := UTF8ToStr(UmountCommandEntry.Text); end; end; procedure TFMounterPrefs.DeviceTypeOptionMenuChanged(Sender: TObject); begin if Assigned(ListView.Selected) and Assigned(ListView.Selected.AsPointer(3)) and (not UseFSTabDefaultsCheckBox.Checked) then begin TMounterItem(ListView.Selected.AsPointer(3)).DeviceType := DeviceTypeOptionMenu.ItemIndex; RefreshIcon(ListView.Selected.Index); end; end; procedure TFMounterPrefs.IconEntryChanged(Sender: TObject); begin if Assigned(ListView.Selected) and Assigned(ListView.Selected.AsPointer(3)) and (not UseFSTabDefaultsCheckBox.Checked) then begin TMounterItem(ListView.Selected.AsPointer(3)).IconPath := IconEntry.Filename; RefreshIcon(ListView.Selected.Index); end; end; procedure TFMounterPrefs.RefreshIcon(ItemIndex: integer); var Pixmap: TGDKPixbuf; b: boolean; Data: TMounterItem; begin Data := InternalMounterList[ItemIndex]; b := FileExists(Data.IconPath); Pixmap := nil; if b then begin Pixmap := TGDKPixbuf.Create(Self); Pixmap.LoadFromFile(Data.IconPath); b := Pixmap.FPixbuf <> nil; if b then Pixmap.ScaleSimple(16, 16); end; if not b then case Data.DeviceType of 0 : Pixmap := MounterHDD; 1 : Pixmap := MounterRemovable; 2 : Pixmap := MounterCD; 3 : Pixmap := MounterFloppy; 4 : Pixmap := MounterNetwork; end; ListView.Items[ItemIndex].SetValue(4, Pixmap.FPixbuf); end; procedure TFMounterPrefs.IconEntry2Click(Sender: TObject); var Dialog: TGTKFileSelectionDialog; begin if (not Assigned(ListView.Selected)) or (not Assigned(ListView.Selected.AsPointer(3))) then Exit; Dialog := TGTKFileSelectionDialog.CreateWithTitle(Self, LANGBrowseForIcon); try Dialog.ShowFileOpButtons := False; Dialog.FileName := TMounterItem(ListView.Selected.AsPointer(3)).IconPath; if Byte(Dialog.Run) = 251 then TMounterItem(ListView.Selected.AsPointer(3)).IconPath := Dialog.FileName; RefreshIcon(ListView.Selected.Index); finally Dialog.Free; end; end; (********************************************************************************************************************************) (********************************************************************************************************************************) procedure TFMounterPrefs.AssignAssocList(List: TList); var i: integer; Item: TMounterItem; begin InternalMounterList := TList.Create; if List.Count > 0 then for i := 0 to List.Count - 1 do begin Item := TMounterItem.Create; with Item do begin DisplayText := TMounterItem(List[i]).DisplayText; MountPath := TMounterItem(List[i]).MountPath; Device := TMounterItem(List[i]).Device; IconPath := TMounterItem(List[i]).IconPath; MountCommand := TMounterItem(List[i]).MountCommand; UmountCommand := TMounterItem(List[i]).UmountCommand; DeviceType := TMounterItem(List[i]).DeviceType; end; InternalMounterList.Add(Item); end; end; procedure TFMounterPrefs.FillList; var i: integer; ListItem: TGTKListItem; begin if Assigned(InternalMounterList) and (InternalMounterList.Count > 0) then begin for i := 0 to InternalMounterList.Count - 1 do with TMounterItem(InternalMounterList[i]) do begin ListItem := ListView.Items.Add; ListItem.SetValue(0, DisplayText); ListItem.SetValue(1, StrToUTF8(MountPath)); ListItem.SetValue(2, StrToUTF8(Device)); ListItem.SetValue(3, InternalMounterList[i]); RefreshIcon(i); end; end; UseFSTabDefaultsCheckBox.Checked := ConfMounterUseFSTab; ToggleModeCheckBox.Checked := ConfMounterPushDown; end; procedure TFMounterPrefs.CleanItems; var i: integer; begin try if InternalMounterList.Count > 0 then for i := InternalMounterList.Count - 1 downto 0 do with TMounterItem(InternalMounterList[i]) do begin if Length(Trim(Device)) = 0 then begin TMounterItem(InternalMounterList[i]).Free; InternalMounterList.Delete(i); end; end; except end; end; procedure TFMounterPrefs.FormDestroy(Sender: TObject); var i: integer; begin if Assigned(InternalMounterList) then begin if InternalMounterList.Count > 0 then for i := 0 to InternalMounterList.Count - 1 do if Assigned(InternalMounterList[i]) then TMounterItem(InternalMounterList[i]).Free; InternalMounterList.Clear; InternalMounterList.Free; end; end; function TGTKListView_drag_end(widget: PGtkWidget; drag_context: PGdkDragContext; user_data: gpointer): gboolean; cdecl; var i: integer; begin Result := False; for i := 0 to FMounterPrefs.ListView.Items.Count - 1 do FMounterPrefs.InternalMounterList[i] := FMounterPrefs.ListView.Items[i].AsPointer(3); end; (********************************************************************************************************************************) end. tuxcmd-0.6.70+dfsg/USelect.pas0000644000175000017500000001212411300022643015105 0ustar salvisalvi(* Tux Commander - USelect - Select pattern dialog and related funcions Copyright (C) 2008 Tomas Bzatek Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit USelect; interface uses glib2, gtk2, pango, SysUtils, Types, Classes, GTKControls, GTKForms, GTKStdCtrls, GTKExtCtrls, GTKConsts, GTKView, GTKUtils, GTKDialogs, GTKPixbuf, GTKClasses; type TFSelect = class(TGTKDialog) { TitleFrame, ListFontFrame: TGTKFrame; TitleLabel: TGTKLabel; TitleEventBox: TGTKEventBox; TitleIcon: TGTKImage; TitleHBox: TGTKHBox; } Label1: TGTKLabel; ComboBox: TGTKCombo; Box: TGTKVBox; procedure FormCreate(Sender: TObject); override; procedure FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); procedure ComboBoxKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); private SavedData: string; end; var FSelect: TFSelect; implementation uses ULocale, UCore; procedure TFSelect.FormCreate(Sender: TObject); var i: integer; begin SetDefaultSize(300, 50); Buttons := [mbOK, mbCancel]; { TitleEventBox := TGTKEventBox.Create(Self); TitleLabel := TGTKLabel.Create(Self); TitleLabel.Caption := 'File Properties'; TitleLabel.UseMarkup := True; TitleLabel.XAlign := 0; TitleLabel.XPadding := 0; TitleLabel.YPadding := 3; TitleEventBox.ControlState := csPrelight; TitleFrame := TGTKFrame.CreateWithoutLabel(Self); TitleFrame.ShadowType := stShadowOut; TitleIcon := TGTKImage.Create(Self); TitleIcon.SetFromStock('gtk-edit', isSmallToolbar); TitleHBox := TGTKHBox.Create(Self); TitleHBox.Homogeneous := False; TitleHBox.AddControlEx(TGTKVBox.Create(Self), False, False, 5); TitleHBox.AddControlEx(TitleIcon, False, False, 0); TitleHBox.AddControlEx(TitleLabel, True, True, 10); TitleEventBox.AddControl(TitleHBox); TitleFrame.AddControl(TitleEventBox); ClientArea.AddControlEx(TitleFrame, False, True, 0); ClientArea.AddControlEx(TGTKHBox.Create(Self), False, False, 5); } Box := TGTKVBox.Create(Self); Label1 := TGTKLabel.Create(Self); Label1.Caption := LANGSpecifyFileType; Label1.UseUnderline := True; Label1.XAlign := 0; Label1.XPadding := 0; ComboBox := TGTKCombo.Create(Self); ComboBox.DisableActivate; if SelectHistory.Count > 0 then for i := 0 to SelectHistory.Count - 1 do ComboBox.Items.Append(SelectHistory[i]); ComboBox.Entry.Text := '*.*'; ComboBox.Entry.OnKeyDown := ComboBoxKeyDown; Label1.FocusControl := ComboBox.Entry; Box.AddControlEx(Label1, False, False, 0); Box.AddControlEx(ComboBox, False, False, 3); Box.BorderWidth := 12; ClientArea.AddControlEx(Box, True, True, 0); OnKeyDown := FormKeyDown; ComboBox.SetFocus; end; procedure TFSelect.FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); begin case Key of GDK_RETURN, GDK_KP_ENTER: ModalResult := mbOK; GDK_ESCAPE: ModalResult := mbCancel; end; end; procedure TFSelect.ComboBoxKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); var Orig, s: string; i: integer; begin case Key of GDK_UP, GDK_DOWN: if Shift = [] then begin Accept := False; if SelectHistory.Count > 0 then begin Orig := Trim(ComboBox.Entry.Text); i := SelectHistory.IndexOf(Orig); if Key = GDK_DOWN then begin if i < 0 then begin SavedData := Orig; i := 0; end else if SelectHistory.Count > i + 1 then Inc(i); s := SelectHistory[i]; end else begin if i < 0 then Exit else if i = 0 then begin s := SavedData; SavedData := ''; end else if SelectHistory.Count > i then s := SelectHistory[i - 1]; end; ComboBox.Entry.Text := s; ComboBox.Entry.SetFocus; ComboBox.Entry.SelectAll; end; end; end; end; end. tuxcmd-0.6.70+dfsg/UOverwrite.pas0000644000175000017500000001441611300022643015662 0ustar salvisalvi(* Tux Commander - UOverwrite - Overwrite dialog form and related funcions Copyright (C) 2004 Tomas Bzatek Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UOverwrite; interface uses SysUtils, Types, Classes, Variants, GTKControls, GTKForms, GTKStdCtrls, GTKExtCtrls, GTKConsts; type TFOverwrite = class(TGTKDialog) FromLabel, FromInfoLabel, ToLabel, ToInfoLabel: TGTKLabel; ButtonTable: TGTKTable; FromVBox, ToVBox: TGTKVBox; OverwriteButton, OverwriteAllButton, SkipButton, CancelButton, OverwriteAllOlderButton, SkipAllButton, RenameButton, AppendButton : TGTKButton; procedure FormCreate(Sender: TObject); override; procedure FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); procedure ButtonClick(Sender: TObject); public RenameStr, SourceFile, DestFile: string; procedure AddButtons(Sel: integer); procedure DoRename; procedure DoAppend; end; var FOverwrite: TFOverwrite; implementation uses ULocale, UCopyMove; procedure TFOverwrite.FormCreate(Sender: TObject); begin Caption := LANGOverwriteQuestion; FromLabel := TGTKLabel.Create(Self); FromLabel.XAlign := 0; FromLabel.XPadding := 10; FromInfoLabel := TGTKLabel.Create(Self); FromInfoLabel.XAlign := 0; FromInfoLabel.XPadding := 40; ToLabel := TGTKLabel.Create(Self); ToLabel.XAlign := 0; ToLabel.XPadding := 10; ToInfoLabel := TGTKLabel.Create(Self); ToInfoLabel.XAlign := 0; ToInfoLabel.XPadding := 40; OverwriteButton := TGTKButton.Create(Self); OverwriteButton.Caption := LANGOverwriteButton_Caption; OverwriteButton.OnClick := ButtonClick; OverwriteAllButton := TGTKButton.Create(Self); OverwriteAllButton.Caption := LANGOverwriteAllButton_Caption; OverwriteAllButton.OnClick := ButtonClick; SkipButton := TGTKButton.Create(Self); SkipButton.Caption := LANGSkipButton_Caption; SkipButton.OnClick := ButtonClick; CancelButton := TGTKButton.Create(Self); CancelButton.Caption := LANGCancel; CancelButton.OnClick := ButtonClick; OverwriteAllOlderButton := TGTKButton.Create(Self); OverwriteAllOlderButton.Caption := LANGOverwriteAllOlderButton_Caption; OverwriteAllOlderButton.OnClick := ButtonClick; SkipAllButton := TGTKButton.Create(Self); SkipAllButton.Caption := LANGSkipAllButton_Caption; SkipAllButton.OnClick := ButtonClick; RenameButton := TGTKButton.Create(Self); RenameButton.Caption := LANGRenameButton_Caption; RenameButton.OnClick := ButtonClick; AppendButton := TGTKButton.Create(Self); AppendButton.Caption := LANGAppendButton_Caption; AppendButton.OnClick := ButtonClick; ButtonTable := TGTKTable.Create(Self); ButtonTable.RowCount := 3; ButtonTable.ColCount := 3; ButtonTable.RowSpacing := 3; ButtonTable.ColSpacing := 3; ButtonTable.Homogeneous := True; FromVBox := TGTKVBox.Create(Self); FromVBox.AddControlEx(FromLabel, True, True, 0); FromVBox.AddControlEx(FromInfoLabel, True, True, 0); ToVBox := TGTKVBox.Create(Self); ToVBox.AddControlEx(ToLabel, True, True, 0); ToVBox.AddControlEx(ToInfoLabel, True, True, 0); ClientArea.AddControlEx(FromVBox, True, True, 5); ClientArea.AddControlEx(ToVBox, True, True, 5); ActionArea.AddControlEx(ButtonTable, True, True, 0); OnKeyDown := FormKeyDown; end; procedure TFOverwrite.FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); begin case Key of GDK_O : ModalResult := TMessageButton(1); GDK_A : ModalResult := TMessageButton(2); GDK_S : ModalResult := TMessageButton(3); GDK_C, GDK_ESCAPE : ModalResult := TMessageButton(4); GDK_D : ModalResult := TMessageButton(5); GDK_K : ModalResult := TMessageButton(6); GDK_R : DoRename; GDK_P : DoAppend; end; end; procedure TFOverwrite.AddButtons(Sel: integer); begin ButtonTable.AddControl(0, 0, 1, 1, OverwriteButton, 0, 0); ButtonTable.AddControl(1, 0, 1, 1, OverwriteAllButton, 0, 0); ButtonTable.AddControl(2, 0, 1, 1, SkipButton, 0, 0); ButtonTable.AddControl(0, 1, 1, 1, CancelButton, 0, 0); ButtonTable.AddControl(1, 1, 1, 1, OverwriteAllOlderButton, 0, 0); ButtonTable.AddControl(2, 1, 1, 1, SkipAllButton, 0, 0); ButtonTable.AddControl(0, 2, 1, 1, RenameButton, 0, 0); case Sel of 2 : ButtonTable.AddControl(1, 2, 1, 1, AppendButton, 0, 0); end; end; procedure TFOverwrite.ButtonClick(Sender: TObject); begin if Sender = OverwriteButton then ModalResult := TMessageButton(1) else if Sender = OverwriteAllButton then ModalResult := TMessageButton(2) else if Sender = SkipButton then ModalResult := TMessageButton(3) else if Sender = CancelButton then ModalResult := TMessageButton(4) else if Sender = OverwriteAllOlderButton then ModalResult := TMessageButton(5) else if Sender = SkipAllButton then ModalResult := TMessageButton(6) else if Sender = RenameButton then DoRename else if Sender = AppendButton then DoAppend; end; procedure TFOverwrite.DoRename; var AFCopyMove: TFCopyMove; begin AFCopyMove := TFCopyMove.Create(Self); try AFCopyMove.Entry.Text := RenameStr; AFCopyMove.Caption := LANGRename; AFCopyMove.Label1.Caption := Format(LANGRenameFile, [RenameStr]); AFCopyMove.Entry.SelectRegion(0, Length(AFCopyMove.Entry.Text)); if AFCopyMove.Run = mbOK then begin RenameStr := AFCopyMove.Entry.Text; ModalResult := TMessageButton(7); end; finally AFCopyMove.Free; end; end; procedure TFOverwrite.DoAppend; begin if Application.MessageBox(Format(LANGAppendQuestion, [SourceFile, DestFile]), [mbYes, mbNo], mbQuestion, mbNone, mbNo) = mbYes then ModalResult := TMessageButton(8); end; end. tuxcmd-0.6.70+dfsg/USearch.pas0000644000175000017500000012577611300022643015115 0ustar salvisalvi(* Tux Commander - USearch - Search dialog Copyright (C) 2008 Tomas Bzatek Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit USearch; interface uses glib2, gdk2, gtk2, SyncObjs, SysUtils, Types, Classes, Variants, GTKControls, GTKForms, GTKStdCtrls, GTKExtCtrls, GTKConsts, GTKView, GTKMenus, UEngines, UGnome, ULibc; type TFSearch = class(TGTKDialog) BottomBox: TGTKVBox; HBox, HBox2: TGTKHBox; ButtonBox: TGTKHButtonBox; FileList: TGTKListView; FileListScrolledWindow: TGTKScrolledWindow; Notebook: TGTKNotebook; Table1, Table2: TGTKTable; ResultsLabel, StatusLabel: TGTKLabel; Label1, Label2, Label3, Label4, Label5, Label6: TGTKLabel; FileMaskEntry, FindTextEntry: TGTKCombo; SearchInEntry: TGTKEntry; ViewButton, NewSearchButton, GoToFileButton, FeedToListboxButton: TGTKButton; SearchArchivesCheckButton, CaseSensitiveCheckButton, StayCurrentFSCheckButton, CaseSensitiveMatchCheckButton: TGTKCheckButton; FindButton, StopButton, CloseButton: TGTKButton; BiggerThanCheckButton, SmallerThanCheckButton: TGTKCheckButton; BiggerThanEntry, SmallerThanEntry: TGTKSpinEdit; BiggerThanOptionMenu, SmallerThanOptionMenu, ModifiedLastOptionMenu, ModifiedNotLastOptionMenu: TGTKOptionMenu; ModifiedBetweenRadioButton, NotModifiedAfterRadioButton, ModifiedLastRadioButton, ModifiedNotLastRadionButton: TGTKCheckButton; ModifiedLastSpinEdit, ModifiedNotLastSpinEdit: TGTKSpinEdit; ModifiedBetweenEntry1, ModifiedBetweenEntry2, NotModifiedAfterEntry: TGTKEntry; ModifiedBetweenEntry1G, ModifiedBetweenEntry2G, NotModifiedAfterEntryG: TGnomeDateEdit; procedure FormCreate(Sender: TObject); override; procedure FormDestroy(Sender: TObject); procedure FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure FormResponse(Sender: TObject; const ResponseID: integer); procedure FileListSelectionChanged(Sender: TObject); procedure FindButtonClick(Sender: TObject); procedure StopButtonClick(Sender: TObject); procedure CloseButtonClick(Sender: TObject); procedure BiggerThanCheckButtonToggled(Sender: TObject); procedure NewSearchButtonClick(Sender: TObject); procedure ViewButtonClick(Sender: TObject); procedure GoToFileButtonClick(Sender: TObject); procedure FileListDblClick(Sender: TObject; Button: TGDKMouseButton; Shift: TShiftState; X, Y: Integer; var Accept: boolean); procedure FileMaskEntryKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); procedure FindTextEntryKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); private Processing, Stop, FUseGnomeWidgets: boolean; SavedData: string; procedure ConstructViews; procedure DoSearch; public Engine: TPanelEngine; AListView: TGTKListView; List: TList; GoToFile, GoToFileArchive: string; end; TSearchThread = class(TThread) private FEngine: TPanelEngine; FRootEngine: TPanelEngine; Wilds: array of string; GUIMutex: TCriticalSection; procedure Rekurze(StartDir: string); function FindText(FileName: string): boolean; protected FStartPath, FFileMask, FStringFind: string; FDontLeaveFS, FCaseSensitiveMask, FCaseSensitiveStrings, FSearchArchives: boolean; FBiggerThan, FSmallerThan: integer; // -1 = skip FModifiedBetween1, FModifiedBetween2, FNotModifiedAfter: time_t; FModifiedLast, FModifiedNotLast: integer; FList: TList; procedure Execute; override; public Finished, CancelIt: boolean; CurrentDir: string; constructor Create(Engine: TPanelEngine); destructor Destroy; override; end; var FSearch: TFSearch; implementation uses Math, UMain, ULocale, UCoreUtils, UCore, DateUtils, UViewer, UConfig, UVFSCore, UFileAssoc; var SizeUnits: array[0..2] of string; DayUnits: array[0..3] of string; procedure TFSearch.FormCreate(Sender: TObject); var MenuItem: TGTKMenuItem; i: integer; begin // Set the constants SizeUnits[0] := LANGSearch_Bytes; SizeUnits[1] := LANGSearch_kB; SizeUnits[2] := LANGSearch_MB; DayUnits[0] := LANGSearch_days; DayUnits[1] := LANGSearch_weeks; DayUnits[2] := LANGSearch_months; DayUnits[3] := LANGSearch_years; // Initialization // WindowTypeHint := whNormal; List := TList.Create; List.Clear; Processing := False; Stop := False; GoToFile := ''; GoToFileArchive := ''; SetDefaultSize(650, 600); Caption := LANGSearch_Caption; Buttons := []; ShowSeparator := False; FUseGnomeWidgets := Assigned(@gnome_date_edit_new) and Assigned(@gnome_date_edit_set_time) and Assigned(@gnome_date_edit_get_time); Notebook := TGTKNotebook.Create(Self); Notebook.BorderWidth := 10; Table1 := TGTKTable.Create(Self); Table1.BorderWidth := 10; Table2 := TGTKTable.Create(Self); Table2.BorderWidth := 10; Notebook.AppendPage(Table1, LANGSearch_General); Notebook.AppendPage(Table2, LANGSearch_Advanced); ConstructViews; ResultsLabel := TGTKLabel.Create(Self); ResultsLabel.XAlign := 0; ResultsLabel.XPadding := 0; ResultsLabel.Caption := Format('%s', [LANGSearch_SearchResults]); ResultsLabel.FocusControl := FileList; ResultsLabel.UseMarkup := True; ResultsLabel.UseUnderline := True; ClientArea.AddControlEx(Notebook, False, False, 0); Label1 := TGTKLabel.Create(Self); Label1.XAlign := 0; Label1.XPadding := 0; Label1.Caption := Format('%s', [LANGSearch_SearchFor]); FileMaskEntry := TGTKCombo.Create(Self); FileMaskEntry.Tooltip := LANGSearch_FileMaskEntryTooltip; FileMaskEntry.Entry.OnKeyDown := FileMaskEntryKeyDown; if SearchHistory.Count > 0 then for i := 0 to SearchHistory.Count - 1 do FileMaskEntry.Items.Append(SearchHistory[i]); FileMaskEntry.Entry.Text := ''; Label1.FocusControl := FileMaskEntry.Entry; Label1.UseMarkup := True; Label1.UseUnderline := True; Label2 := TGTKLabel.Create(Self); Label2.XAlign := 0; Label2.XPadding := 0; Label2.Caption := LANGSearch_SearchIn; SearchInEntry := TGTKEntry.Create(Self); Label2.FocusControl := SearchInEntry; Label2.UseMarkup := True; Label2.UseUnderline := True; SearchArchivesCheckButton := TGTKCheckButton.CreateWithLabel(Self, LANGSearch_SearchArchivesCheckButton); SearchArchivesCheckButton.Enabled := PluginList.Count > 0; Label3 := TGTKLabel.Create(Self); Label3.XAlign := 0; Label3.XPadding := 0; Label3.Caption := LANGSearch_FindText; FindTextEntry := TGTKCombo.Create(Self); FindTextEntry.Tooltip := LANGSearch_FindTextEntryTooltip; FindTextEntry.Entry.OnKeyDown := FindTextEntryKeyDown; if SearchTextHistory.Count > 0 then for i := 0 to SearchTextHistory.Count - 1 do FindTextEntry.Items.Append(SearchTextHistory[i]); FindTextEntry.Entry.Text := ''; Label3.FocusControl := FindTextEntry.Entry; Label3.UseMarkup := True; Label3.UseUnderline := True; CaseSensitiveCheckButton := TGTKCheckButton.CreateWithLabel(Self, LANGSearch_CaseSensitiveCheckButton); StayCurrentFSCheckButton := TGTKCheckButton.CreateWithLabel(Self, LANGSearch_StayCurrentFSCheckButton); CaseSensitiveMatchCheckButton := TGTKCheckButton.CreateWithLabel(Self, LANGSearch_CaseSensitiveMatchCheckButton); Table1.AddControlEx(0, 0, 1, 1, Label1, [taoShrink, taoFill], [taoShrink], 5, 2); Table1.AddControlEx(1, 0, 1, 1, FileMaskEntry, [taoExpand, taoFill], [taoShrink], 5, 2); Table1.AddControlEx(2, 0, 1, 1, CaseSensitiveMatchCheckButton, [taoShrink, taoFill], [taoShrink], 5, 2); Table1.AddControlEx(0, 1, 1, 1, Label2, [taoShrink, taoFill], [taoShrink], 5, 2); Table1.AddControlEx(1, 1, 1, 1, SearchInEntry, [taoExpand, taoFill], [taoShrink], 5, 2); Table1.AddControlEx(2, 1, 1, 1, StayCurrentFSCheckButton, [taoShrink], [taoShrink], 5, 2); Table1.AddControlEx(1, 2, 2, 1, SearchArchivesCheckButton, [taoShrink, taoFill], [taoShrink], 5, 2); Table1.AddControlEx(0, 3, 3, 1, TGTKHSeparator.Create(Self), [taoExpand, taoFill], [taoShrink], 5, 4); Table1.AddControlEx(0, 4, 1, 1, Label3, [taoShrink, taoFill], [taoShrink], 5, 2); Table1.AddControlEx(1, 4, 2, 1, FindTextEntry, [taoExpand, taoFill], [taoShrink], 5, 2); Table1.AddControlEx(1, 5, 2, 1, CaseSensitiveCheckButton, [taoShrink, taoFill], [taoShrink], 5, 2); Table1.AddControlEx(0, 6, 3, 1, TGTKVBox.Create(Self), [taoShrink, taoFill], [taoExpand, taoFill], 5, 2); Label4 := TGTKLabel.Create(Self); Label4.XAlign := 0; Label4.XPadding := 0; Label4.Caption := Format('%s', [LANGSearch_Size]); Label4.UseMarkup := True; Label5 := TGTKLabel.Create(Self); Label5.XAlign := 0; Label5.XPadding := 0; Label5.Caption := Format('%s', [LANGSearch_Date]); Label5.UseMarkup := True; BiggerThanCheckButton := TGTKCheckButton.CreateWithLabel(Self, LANGSearch_BiggerThan); SmallerThanCheckButton := TGTKCheckButton.CreateWithLabel(Self, LANGSearch_SmallerThan); BiggerThanEntry := TGTKSpinEdit.Create(Self); BiggerThanEntry.Min := 0; BiggerThanEntry.Max := 999999999; BiggerThanEntry.Digits := 0; BiggerThanEntry.IncrementStep := 1; BiggerThanEntry.IncrementPage := 10; SmallerThanEntry := TGTKSpinEdit.Create(Self); SmallerThanEntry.Min := 0; SmallerThanEntry.Max := 999999999; SmallerThanEntry.Digits := 0; SmallerThanEntry.IncrementStep := 1; SmallerThanEntry.IncrementPage := 10; BiggerThanOptionMenu := TGTKOptionMenu.Create(Self); for i := Low(SizeUnits) to High(SizeUnits) do begin MenuItem := TGTKMenuItem.Create(Self); MenuItem.Caption := SizeUnits[i]; BiggerThanOptionMenu.Items.Add(MenuItem); end; SmallerThanOptionMenu := TGTKOptionMenu.Create(Self); for i := Low(SizeUnits) to High(SizeUnits) do begin MenuItem := TGTKMenuItem.Create(Self); MenuItem.Caption := SizeUnits[i]; SmallerThanOptionMenu.Items.Add(MenuItem); end; ModifiedBetweenRadioButton := TGTKCheckButton.CreateWithLabel(Self, LANGSearch_ModifiedBetweenRadioButton); NotModifiedAfterRadioButton := TGTKCheckButton.CreateWithLabel(Self, LANGSearch_NotModifiedAfterRadioButton); ModifiedLastRadioButton := TGTKCheckButton.CreateWithLabel(Self, LANGSearch_ModifiedLastRadioButton); ModifiedNotLastRadionButton := TGTKCheckButton.CreateWithLabel(Self, LANGSearch_ModifiedNotLastRadionButton); ModifiedLastSpinEdit := TGTKSpinEdit.Create(Self); ModifiedLastSpinEdit.Min := 0; ModifiedLastSpinEdit.Max := 10000; ModifiedLastSpinEdit.Digits := 0; ModifiedLastSpinEdit.IncrementStep := 1; ModifiedLastSpinEdit.IncrementPage := 10; ModifiedNotLastSpinEdit := TGTKSpinEdit.Create(Self); ModifiedNotLastSpinEdit.Min := 0; ModifiedNotLastSpinEdit.Max := 10000; ModifiedNotLastSpinEdit.Digits := 0; ModifiedNotLastSpinEdit.IncrementStep := 1; ModifiedNotLastSpinEdit.IncrementPage := 10; ModifiedLastOptionMenu := TGTKOptionMenu.Create(Self); for i := Low(DayUnits) to High(DayUnits) do begin MenuItem := TGTKMenuItem.Create(Self); MenuItem.Caption := DayUnits[i]; ModifiedLastOptionMenu.Items.Add(MenuItem); end; ModifiedNotLastOptionMenu := TGTKOptionMenu.Create(Self); for i := Low(DayUnits) to High(DayUnits) do begin MenuItem := TGTKMenuItem.Create(Self); MenuItem.Caption := DayUnits[i]; ModifiedNotLastOptionMenu.Items.Add(MenuItem); end; Label6 := TGTKLabel.Create(Self); Label6.XAlign := 0; Label6.XPadding := 0; Label6.Caption := LANGSearch_And; Label6.UseMarkup := True; if not FUseGnomeWidgets then begin ModifiedBetweenEntry1 := TGTKEntry.Create(Self); ModifiedBetweenEntry1.Tooltip := SysUtils.FormatDateTime(LANGSearch_ModifiedBetweenEntry1, Date); ModifiedBetweenEntry2 := TGTKEntry.Create(Self); ModifiedBetweenEntry2.Tooltip := SysUtils.FormatDateTime(LANGSearch_ModifiedBetweenEntry1, Date); NotModifiedAfterEntry := TGTKEntry.Create(Self); NotModifiedAfterEntry.Tooltip := SysUtils.FormatDateTime(LANGSearch_ModifiedBetweenEntry1, Date); Table2.AddControlEx(2, 5, 2, 1, ModifiedBetweenEntry1, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 5, 2); Table2.AddControlEx(5, 5, 2, 1, ModifiedBetweenEntry2, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 5, 2); Table2.AddControlEx(2, 6, 2, 1, NotModifiedAfterEntry, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 5, 2); end else begin ModifiedBetweenEntry1G := TGnomeDateEdit.Create(Self); ModifiedBetweenEntry2G := TGnomeDateEdit.Create(Self); NotModifiedAfterEntryG := TGnomeDateEdit.Create(Self); Table2.AddControlEx(2, 5, 2, 1, ModifiedBetweenEntry1G, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 5, 2); Table2.AddControlEx(5, 5, 2, 1, ModifiedBetweenEntry2G, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 5, 2); Table2.AddControlEx(2, 6, 2, 1, NotModifiedAfterEntryG, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 5, 2); end; Table2.AddControlEx(0, 0, 3, 1, Label4, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 5, 0); Table2.AddControlEx(0, 1, 1, 1, TGTKVBox.Create(Self), [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 8, 0); Table2.AddControlEx(1, 1, 1, 1, BiggerThanCheckButton, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 2, 0); Table2.AddControlEx(2, 1, 1, 1, BiggerThanEntry, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 5, 0); Table2.AddControlEx(3, 1, 1, 1, BiggerThanOptionMenu, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 0, 0); Table2.AddControlEx(5, 1, 1, 1, SmallerThanCheckButton, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 5, 0); Table2.AddControlEx(6, 1, 1, 1, SmallerThanEntry, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 5, 0); Table2.AddControlEx(7, 1, 1, 1, SmallerThanOptionMenu, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 0, 0); Table2.AddControlEx(1, 3, 3, 1, TGTKVBox.Create(Self), [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 0, 6); Table2.AddControlEx(0, 4, 3, 1, Label5, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 5, 1); Table2.AddControlEx(1, 5, 1, 1, ModifiedBetweenRadioButton, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 2, 2); Table2.AddControlEx(4, 5, 1, 1, Label6, [taoShrink], [taoShrink, taoExpand, taoFill], 5, 2); Table2.AddControlEx(1, 6, 1, 1, NotModifiedAfterRadioButton, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 2, 2); Table2.AddControlEx(1, 7, 1, 1, ModifiedLastRadioButton, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 2, 2); Table2.AddControlEx(2, 7, 1, 1, ModifiedLastSpinEdit, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 5, 2); Table2.AddControlEx(3, 7, 1, 1, ModifiedLastOptionMenu, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 2, 2); Table2.AddControlEx(4, 7, 2, 1, ModifiedNotLastRadionButton, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 5, 2); Table2.AddControlEx(6, 7, 1, 1, ModifiedNotLastSpinEdit, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 5, 2); Table2.AddControlEx(7, 7, 1, 1, ModifiedNotLastOptionMenu, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 0, 2); BottomBox := TGTKVBox.Create(Self); BottomBox.Homogeneous := False; BottomBox.BorderWidth := 10; FileListScrolledWindow := TGTKScrolledWindow.Create(Self); FileListScrolledWindow.HorizScrollBarPolicy := sbAutomatic; FileListScrolledWindow.VertScrollBarPolicy := sbAutomatic; FileListScrolledWindow.ShadowType := stShadowIn; FileListScrolledWindow.AddControl(FileList); FileListScrolledWindow.SetSizeRequest(100, -1); FileList.SetSizeRequest(100, -1); HBox := TGTKHBox.Create(Self); HBox2 := TGTKHBox.Create(Self); HBox2.Homogeneous := False; HBox.Homogeneous := True; ViewButton := TGTKButton.Create(Self); ViewButton.Caption := LANGSearch_ViewButtonCaption; ViewButton.Visible := True; NewSearchButton := TGTKButton.Create(Self); NewSearchButton.Caption := LANGSearch_NewSearchButtonCaption; GoToFileButton := TGTKButton.Create(Self); GoToFileButton.Caption := LANGSearch_GoToFileButtonCaption; FeedToListboxButton := TGTKButton.Create(Self); FeedToListboxButton.Caption := LANGSearch_FeedToListboxButtonCaption; FeedToListboxButton.Enabled := False; FeedToListboxButton.Visible := True; StatusLabel := TGTKLabel.Create(Self); StatusLabel.XAlign := 0; StatusLabel.XPadding := 0; StatusLabel.Caption := Format('%s %s', [LANGSearch_StatusSC, LANGSearch_Ready]); StatusLabel.UseMarkup := True; StatusLabel.SetSizeRequest(100, -1); HBox.AddControlEx(ViewButton, True, True, 3); HBox.AddControlEx(NewSearchButton, True, True, 3); HBox.AddControlEx(GoToFileButton, True, True, 3); HBox.AddControlEx(FeedToListboxButton, True, True, 3); HBox2.AddControlEx(TGTKVBox.Create(Self), True, True, 20); HBox2.AddControlEx(HBox, False, False, 0); BottomBox.AddControlEx(ResultsLabel, False, False, 5); BottomBox.AddControlEx(FileListScrolledWindow, True, True, 0); BottomBox.AddControlEx(StatusLabel, False, False, 5); BottomBox.AddControlEx(HBox2, False, False, 2); ClientArea.AddControlEx(BottomBox, True, True, 5); FindButton := TGTKButton.CreateFromStock(Self, GTK_STOCK_FIND); FindButton.Default := True; StopButton := TGTKButton.CreateFromStock(Self, GTK_STOCK_STOP); StopButton.Visible := False; StopButton.Default := True; CloseButton := TGTKButton.CreateFromStock(Self, GTK_STOCK_CLOSE); CloseButton.Default := True; Default := FindButton; ButtonBox := TGTKHButtonBox.Create(Self); ButtonBox.Layout := blEnd; ButtonBox.Spacing := 10; ButtonBox.BorderWidth := 10; ButtonBox.AddControlEnd(FindButton); ButtonBox.AddControlEnd(StopButton); ButtonBox.AddControlEnd(CloseButton); ActionArea.AddControlEx(ButtonBox, False, False, 0); OnKeyDown := FormKeyDown; OnCloseQuery := FormCloseQuery; OnResponse := FormResponse; OnDestroy := FormDestroy; FileList.OnSelectionChanged := FileListSelectionChanged; FindButton.OnClick := FindButtonClick; StopButton.OnClick := StopButtonClick; CloseButton.OnClick := CloseButtonClick; BiggerThanCheckButton.OnToggled := BiggerThanCheckButtonToggled; SmallerThanCheckButton.OnToggled := BiggerThanCheckButtonToggled; ModifiedBetweenRadioButton.OnToggled := BiggerThanCheckButtonToggled; NotModifiedAfterRadioButton.OnToggled := BiggerThanCheckButtonToggled; ModifiedLastRadioButton.OnToggled := BiggerThanCheckButtonToggled; ModifiedNotLastRadionButton.OnToggled := BiggerThanCheckButtonToggled; NewSearchButton.OnClick := NewSearchButtonClick; ViewButton.OnClick := ViewButtonClick; GoToFileButton.OnClick := GoToFileButtonClick; FileList.OnDblClick := FileListDblClick; Notebook.PageIndex := 0; FileMaskEntry.Entry.SetFocus; BiggerThanCheckButtonToggled(Sender); FileListSelectionChanged(Sender); end; procedure TFSearch.ConstructViews; var Column: TGTKTreeViewColumn; i: integer; begin FileList := TGTKListView.CreateTyped(Self, True, [lcPointer, lcText]); FileList.SelectionMode := smSingle; FileList.RulesHint := True; FileList.ShowHeaders := False; Column := FileList.Columns.Add; Column.Caption := LANGFilenameColumnCaption; Column.AddAttribute('text', 1); Column.SortID := 0; for i := 0 to FileList.Columns.Count - 1 do begin FileList.Columns[i].SizingMode := smAutoSize; FileList.Columns[i].Resizable := True; FileList.Columns[i].SetProperty('ypad', 0); FileList.Columns[i].SetProperty('yalign', 0.5); end; end; procedure TFSearch.FormDestroy(Sender: TObject); var i: integer; begin Application.ProcessMessages; try if List.Count > 0 then for i := 0 to List.Count - 1 do FreeDataItem(PDataItem(List[i])); List.Free; except end; end; procedure TFSearch.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin Stop := True; end; procedure TFSearch.FormResponse(Sender: TObject; const ResponseID: integer); begin Stop := True; end; procedure TFSearch.FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); begin case Key of GDK_F3: if FileList.Focused and Assigned(FileList.Selected) then begin Accept := False; ViewButtonClick(Sender); end; GDK_RETURN, GDK_KP_ENTER: if FileList.Focused and Assigned(FileList.Selected) then begin Accept := False; GoToFileButtonClick(Sender); end else if FindButton.Visible then begin FindButtonClick(Sender); Accept := False; end; GDK_ESCAPE: begin Accept := False; if Processing then Stop := True else ModalResult := mbCancel; end; end; end; procedure TFSearch.FindButtonClick(Sender: TObject); var s: string; i: integer; begin s := Trim(FileMaskEntry.Entry.Text); if Length(s) > 0 then begin SaveItemToHistory(s, SearchHistory); if FileMaskEntry.Items.Count > 0 then for i := FileMaskEntry.Items.Count - 1 downto 0 do FileMaskEntry.Items.Delete(i); if SearchHistory.Count > 0 then for i := 0 to SearchHistory.Count - 1 do FileMaskEntry.Items.Append(SearchHistory[i]); end; s := Trim(FindTextEntry.Entry.Text); if Length(s) > 0 then begin SaveItemToHistory(s, SearchTextHistory); if FindTextEntry.Items.Count > 0 then for i := FindTextEntry.Items.Count - 1 downto 0 do FindTextEntry.Items.Delete(i); if SearchTextHistory.Count > 0 then for i := 0 to SearchTextHistory.Count - 1 do FindTextEntry.Items.Append(SearchTextHistory[i]); end; DoSearch; end; procedure TFSearch.StopButtonClick(Sender: TObject); begin Stop := True; end; procedure TFSearch.CloseButtonClick(Sender: TObject); begin if Processing then Stop := True; ModalResult := mbClose; end; procedure TFSearch.BiggerThanCheckButtonToggled(Sender: TObject); begin BiggerThanEntry.Enabled := BiggerThanCheckButton.Checked; BiggerThanOptionMenu.Enabled := BiggerThanCheckButton.Checked; SmallerThanEntry.Enabled := SmallerThanCheckButton.Checked; SmallerThanOptionMenu.Enabled := SmallerThanCheckButton.Checked; Label6.Enabled := ModifiedBetweenRadioButton.Checked; ModifiedLastSpinEdit.Enabled := ModifiedLastRadioButton.Checked; ModifiedLastOptionMenu.Enabled := ModifiedLastRadioButton.Checked; ModifiedNotLastSpinEdit.Enabled := ModifiedNotLastRadionButton.Checked; ModifiedNotLastOptionMenu.Enabled := ModifiedNotLastRadionButton.Checked; if not FUseGnomeWidgets then begin ModifiedBetweenEntry1.Enabled := ModifiedBetweenRadioButton.Checked; ModifiedBetweenEntry2.Enabled := ModifiedBetweenRadioButton.Checked; NotModifiedAfterEntry.Enabled := NotModifiedAfterRadioButton.Checked; end else begin ModifiedBetweenEntry1G.Enabled := ModifiedBetweenRadioButton.Checked; ModifiedBetweenEntry2G.Enabled := ModifiedBetweenRadioButton.Checked; NotModifiedAfterEntryG.Enabled := NotModifiedAfterRadioButton.Checked; end; end; procedure TFSearch.FileListSelectionChanged(Sender: TObject); begin GoToFileButton.Enabled := Assigned(FileList.Selected) and Assigned(FileList.Selected.AsPointer(0)); ViewButton.Enabled := Assigned(FileList.Selected) and Assigned(FileList.Selected.AsPointer(0)); end; procedure TFSearch.NewSearchButtonClick(Sender: TObject); var i: integer; begin try FileMaskEntry.Entry.Text := ''; FileMaskEntry.Entry.SetFocus; FileList.Items.Clear; if List.Count > 0 then for i := List.Count - 1 downto 0 do FreeDataItem(PDataItem(List[i])); List.Clear; StatusLabel.Caption := Format('%s %s', [LANGSearch_StatusSC, LANGSearch_Ready]); StatusLabel.UseMarkup := True; except end; end; procedure TFSearch.ViewButtonClick(Sender: TObject); var AEngine: TPanelEngine; Plugin: TVFSPlugin; b: boolean; archive, s: string; i, j: integer; begin if not (Assigned(FileList.Selected) and Assigned(FileList.Selected.AsPointer(0))) then Exit; AEngine := nil; if Assigned(PDataItem(FileList.Selected.AsPointer(0))^.LnkPointTo) then begin archive := string(PDataItem(FileList.Selected.AsPointer(0))^.LnkPointTo); b := False; s := ANSIUpperCase(Trim(Copy(archive, LastDelimiter('.', archive) + 1, Length(archive) - LastDelimiter('.', archive)))); if (Length(s) > 1) and (s[1] = '.') then Delete(s, 1, 1); if PluginList.Count > 0 then begin Plugin := nil; for i := 0 to PluginList.Count - 1 do begin Plugin := TVFSPlugin(PluginList[i]); if Length(Plugin.Extensions) > 0 then for j := 0 to Length(Plugin.Extensions) - 1 do if AnsiCompareText(Plugin.Extensions[j], s) = 0 then begin b := True; Break; end; if b then Break; end; if b then begin DebugMsg(['Found plugin ''', Plugin.ModuleID, ''', trying to open the archive ''', archive, '''']); AEngine := TVFSEngine.Create(Plugin); b := b and ((AEngine as TVFSEngine).VFSOpenEx(archive, nil, nil, nil, nil) = 0); end; end; end else begin AEngine := TLocalTreeEngine.Create; b := True; end; if b then FMain.EditViewFileInternal(Self, string(PDataItem(FileList.Selected.AsPointer(0))^.FDisplayName), AEngine, True, False) else Application.MessageBox(Format(LANGCannotLoadFile, [string(PDataItem(FileList.Selected.AsPointer(0))^.FDisplayName)]), [mbOK], mbError, mbNone, mbOK); if AEngine is TVFSEngine then (AEngine as TVFSEngine).VFSClose; AEngine.Free; end; procedure TFSearch.GoToFileButtonClick(Sender: TObject); begin if not (Assigned(FileList.Selected) and Assigned(FileList.Selected.AsPointer(0))) then Exit; GoToFile := string(PDataItem(FileList.Selected.AsPointer(0))^.FDisplayName); if Assigned(PDataItem(FileList.Selected.AsPointer(0))^.LnkPointTo) then GoToFileArchive := string(PDataItem(FileList.Selected.AsPointer(0))^.LnkPointTo); ModalResult := mbApply; end; procedure TFSearch.FileListDblClick(Sender: TObject; Button: TGDKMouseButton; Shift: TShiftState; X, Y: Integer; var Accept: boolean); begin if Assigned(FileList.Selected) and Assigned(FileList.Selected.AsPointer(0)) then GoToFileButtonClick(Sender); end; procedure TFSearch.FileMaskEntryKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); var Orig, s: string; i: integer; begin case Key of GDK_UP, GDK_DOWN: if Shift = [] then begin Accept := False; if SearchHistory.Count > 0 then begin Orig := Trim(FileMaskEntry.Entry.Text); i := SearchHistory.IndexOf(Orig); if Key = GDK_DOWN then begin if i < 0 then begin SavedData := Orig; i := 0; end else if SearchHistory.Count > i + 1 then Inc(i); s := SearchHistory[i]; end else begin if i < 0 then Exit else if i = 0 then begin s := SavedData; SavedData := ''; end else if SearchHistory.Count > i then s := SearchHistory[i - 1]; end; FileMaskEntry.Entry.Text := s; FileMaskEntry.Entry.SetFocus; FileMaskEntry.Entry.SelectAll; end; end; end; end; procedure TFSearch.FindTextEntryKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); var Orig, s: string; i: integer; begin case Key of GDK_UP, GDK_DOWN: if Shift = [] then begin Accept := False; if SearchTextHistory.Count > 0 then begin Orig := Trim(FindTextEntry.Entry.Text); i := SearchTextHistory.IndexOf(Orig); if Key = GDK_DOWN then begin if i < 0 then begin SavedData := Orig; i := 0; end else if SearchTextHistory.Count > i + 1 then Inc(i); s := SearchTextHistory[i]; end else begin if i < 0 then Exit else if i = 0 then begin s := SavedData; SavedData := ''; end else if SearchTextHistory.Count > i then s := SearchTextHistory[i - 1]; end; FindTextEntry.Entry.Text := s; FindTextEntry.Entry.SetFocus; FindTextEntry.Entry.SelectAll; end; end; end; end; (********************************************************************************************************************************) procedure TFSearch.DoSearch; var FSearchThread: TSearchThread; i, LastItems: integer; ListItem: TGTKListItem; x: Pointer; OldDir: string; begin try Processing := True; Stop := False; FindButton.Visible := False; StopButton.Visible := True; StopButton.SetFocus; Default := StopButton; StatusLabel.Caption := Format('%s %s', [LANGSearch_StatusSC, LANGSearch_PreparingToSearch]); StatusLabel.UseMarkup := True; // Disable the UI Table1.Enabled := False; Table2.Enabled := False; // Clear the items FileList.Items.Clear; if List.Count > 0 then for i := List.Count - 1 downto 0 do FreeDataItem(PDataItem(List[i])); List.Clear; // Save current directory OldDir := Engine.GetPath; // Set the parameters FSearchThread := TSearchThread.Create(Engine); with FSearchThread do begin FStartPath := UTF8ToStr(SearchInEntry.Text); FFileMask := UTF8ToStr(FileMaskEntry.Entry.Text); FStringFind := FindTextEntry.Entry.Text; FDontLeaveFS := not StayCurrentFSCheckButton.Checked; FCaseSensitiveMask := CaseSensitiveMatchCheckButton.Checked; FCaseSensitiveStrings := CaseSensitiveCheckButton.Checked; FSearchArchives := SearchArchivesCheckButton.Checked; if not BiggerThanCheckButton.Checked then FBiggerThan := -1 else begin i := StrToIntDef(BiggerThanEntry.Text, -1); i := i * Trunc(Power(1024, BiggerThanOptionMenu.ItemIndex)); FBiggerThan := i; end; if not SmallerThanCheckButton.Checked then FSmallerThan := -1 else begin i := StrToIntDef(SmallerThanEntry.Text, -1); i := i * Trunc(Power(1024, SmallerThanOptionMenu.ItemIndex)); FSmallerThan := i; end; FModifiedBetween1 := 0; FModifiedBetween2 := 0; FNotModifiedAfter := 0; if not FUseGnomeWidgets then begin if ModifiedBetweenRadioButton.Checked then begin FModifiedBetween1 := StrTotimetDef(ModifiedBetweenEntry1.Text, 0); FModifiedBetween2 := StrTotimetDef(ModifiedBetweenEntry2.Text, 0); end; if NotModifiedAfterRadioButton.Checked then FNotModifiedAfter := StrTotimetDef(NotModifiedAfterEntry.Text, 0); end else begin if ModifiedBetweenRadioButton.Checked then begin FModifiedBetween1 := ModifiedBetweenEntry1G.Time; FModifiedBetween2 := ModifiedBetweenEntry2G.Time; end; if NotModifiedAfterRadioButton.Checked then FNotModifiedAfter := NotModifiedAfterEntryG.Time; end; if not ModifiedLastRadioButton.Checked then FModifiedLast := -1 else begin i := StrToIntDef(ModifiedLastSpinEdit.Text, -1); case ModifiedLastOptionMenu.ItemIndex of 1: i := i * 7; // weeks 2: i := i * 30; // months 3: i := i * 365; // years end; FModifiedLast := i; end; if not ModifiedNotLastRadionButton.Checked then FModifiedNotLast := -1 else begin i := StrToIntDef(ModifiedNotLastSpinEdit.Text, -1); case ModifiedNotLastOptionMenu.ItemIndex of 1: i := i * 7; // weeks 2: i := i * 30; // months 3: i := i * 365; // years end; FModifiedNotLast := i; end; end; // UI loop FSearchThread.Resume; LastItems := 0; repeat Sleep(ConstInternalProgressTimer); FSearchThread.GUIMutex.Acquire; StatusLabel.Caption := Format('%s %s', [LANGSearch_SearchInProgress, StrToUTF8(FSearchThread.CurrentDir)]); FSearchThread.GUIMutex.Release; StatusLabel.UseMarkup := True; Application.ProcessMessages; FSearchThread.GUIMutex.Acquire; if Stop then FSearchThread.CancelIt := True; if LastItems < FSearchThread.FList.Count then begin for i := LastItems to FSearchThread.FList.Count - 1 do begin ListItem := FileList.Items.Add; ListItem.SetValue(0, FSearchThread.FList[i]); if PDataItem(FSearchThread.FList[i])^.LnkPointTo <> nil then ListItem.SetValue(1, Format(ConstFullPathFormatStr, [StrToUTF8(string(PDataItem(FSearchThread.FList[i])^.LnkPointTo)), StrToUTF8(string(PDataItem(FSearchThread.FList[i])^.FDisplayName))])) else ListItem.SetValue(1, StrToUTF8(string(PDataItem(FSearchThread.FList[i])^.FDisplayName))); if i mod 30 = 0 then Application.ProcessMessages; // Refresh UI only after some amount of items added end; LastItems := FSearchThread.FList.Count; end; FSearchThread.GUIMutex.Release; until FSearchThread.Finished; if not Stop then StatusLabel.Caption := Format('%s (' + LANGSearch_FilesFound + ')', [LANGSearch_SearchFinished, FSearchThread.FList.Count]) else StatusLabel.Caption := Format('%s', [LANGSearch_UserCancelled]); StatusLabel.UseMarkup := True; // Save the list x := List; List := FSearchThread.FList; FSearchThread.FList := x; FSearchThread.Free; finally StopButton.Visible := False; FindButton.Visible := True; Default := FindButton; Processing := False; Stop := False; if FileList.Items.Count > 0 then FileList.SetFocus; if Engine.ChangeDir(OldDir) <> 0 then DebugMsg(['DoSearch: cannot change back to saved directory']); // Enable the UI Table1.Enabled := True; Table2.Enabled := True; end; end; (********************************************************************************************************************************) constructor TSearchThread.Create(Engine: TPanelEngine); begin inherited Create(True); FreeOnTerminate := False; GUIMutex := TCriticalSection.Create; CancelIt := False; Finished := False; CurrentDir := ''; FSearchArchives := False; FEngine := Engine; FRootEngine := Engine; FList := TList.Create; end; destructor TSearchThread.Destroy; begin FList.Free; GUIMutex.Free; inherited Destroy; end; procedure TSearchThread.Execute; var i: integer; s: string; begin try // Prepare the wildcards SetLength(Wilds, 0); if Length(FFileMask) > 0 then begin while LastDelimiter(ConfSelItemsDelim, FFileMask) > 0 do begin i := LastDelimiter(ConfSelItemsDelim, FFileMask); if i < Length(FFileMask) then begin s := Copy(FFileMask, i + 1, Length(FFileMask) - i); Delete(FFileMask, i, Length(FFileMask) - i + 1); SetLength(Wilds, Length(Wilds) + 1); Wilds[Length(Wilds) - 1] := s; end; end; if Length(FFileMask) > 0 then begin SetLength(Wilds, Length(Wilds) + 1); Wilds[Length(Wilds) - 1] := FFileMask; end; // Check for strings with no jokers ---> allow searching by partial names if Length(Wilds) > 0 then for i := 0 to Length(Wilds) - 1 do if (Pos('*', Wilds[i]) < 1) and (Pos('?', Wilds[i]) < 1) then Wilds[i] := Format('*%s*', [Wilds[i]]); end; Rekurze(ExcludeTrailingPathDelimiter(FStartPath)); SetLength(Wilds, 0); finally Finished := True; end; end; procedure TSearchThread.Rekurze(StartDir: string); var LocalList: TList; i, j: integer; Matches, b: boolean; FileName: string; Data: PDataItem; Plugin: TVFSPlugin; xEngine: TVFSEngine; VFSOpenResult: integer; begin try if CancelIt then Exit; Plugin := nil; if Length(StartDir) < 1 then StartDir := '/'; DebugMsg(['++ Entering directory ', StartDir]); GUIMutex.Acquire; CurrentDir := StartDir; GUIMutex.Release; if FEngine.ChangeDir(StartDir) <> 0 then Exit; LocalList := TList.Create; if FEngine.GetListing(LocalList, True, StartDir) = 0 then begin // Processing... StartDir := IncludeTrailingPathDelimiter(StartDir); if LocalList.Count > 0 then for i := 0 to LocalList.Count - 1 do begin if CancelIt then Break; Data := LocalList[i]; // DebugMsg([' --- found ', Data^.AName]); FileName := Data^.FName; Matches := True; // Test if the file is on the same FS if Matches and FDontLeaveFS then Matches := Matches and FEngine.IsOnSameFS(FStartPath, StartDir + FileName); // File mask test if Matches and (Length(Wilds) > 0) then begin b := False; for j := 0 to Length(Wilds) - 1 do b := b or IsWild(FileName, Wilds[j], not FCaseSensitiveMask) or IsWild(Data^.FDisplayName, Wilds[j], not FCaseSensitiveMask); Matches := Matches and b; end; if not Data^.IsDir then begin // Stop matching if file is directory // Size limiting if Matches and (FSmallerThan > 0) then Matches := Matches and (Data^.Size <= FSmallerThan); if Matches and (FBiggerThan > 0) then Matches := Matches and (Data^.Size >= FBiggerThan); // Date limiting if Matches and (FModifiedLast > 0) then Matches := Matches and (Data^.ModifyTime <= Now) and (Data^.ModifyTime >= Now - FModifiedLast); if Matches and (FModifiedNotLast > 0) then Matches := Matches and ((Data^.ModifyTime > Now) or (Data^.ModifyTime <= Now - FModifiedNotLast)); if Matches and (FNotModifiedAfter > 0) then Matches := Matches and (Data^.ModifyTime <= FNotModifiedAfter); if Matches and (FModifiedBetween1 > 0) and (FModifiedBetween2 > 0) then Matches := Matches and (Data^.ModifyTime >= FModifiedBetween1) and (Data^.ModifyTime <= FModifiedBetween2); // Find text in file if Matches and (Length(FStringFind) > 0) and (not (FEngine is TVFSEngine)) then begin GUIMutex.Acquire; CurrentDir := IncludeTrailingPathDelimiter(StartDir) + FileName; Matches := Matches and FindText(CurrentDir); CurrentDir := ExcludeTrailingPathDelimiter(StartDir); GUIMutex.Release; end; end else if (Length(FStringFind) > 0) then Matches := False; // When searching text in files, do not include directories // Add the record to the list if Matches then begin GUIMutex.Acquire; FList.Add(LocalList[i]); libc_free(Data^.FDisplayName); PDataItem(LocalList[i])^.FDisplayName := strdup(PChar(StartDir + FileName)); if Assigned(PDataItem(LocalList[i])^.LnkPointTo) then begin libc_free(PDataItem(LocalList[i])^.LnkPointTo); PDataItem(LocalList[i])^.LnkPointTo := nil; end; if (FEngine is TVFSEngine) and (FRootEngine <> FEngine) then PDataItem(LocalList[i])^.LnkPointTo := strdup(PChar((FEngine as TVFSEngine).SavePath)); GUIMutex.Release; end; if Data^.IsDir and ((not FDontLeaveFS) or (FDontLeaveFS and FEngine.IsOnSameFS(FStartPath, StartDir + FileName))) then Rekurze(IncludeTrailingPathDelimiter(StartDir) + FileName); // Handle archives if (not Data^.IsDir) and FSearchArchives and (not (FEngine is TVFSEngine)) then begin Plugin := FindVFSPlugin(FileName); if Plugin <> nil then begin DebugMsg(['Found plugin ''', Plugin.ModuleID, ''', trying to open the archive ''', FileName, '''']); xEngine := TVFSEngine.Create(Plugin); xEngine.ParentEngine := FEngine; xEngine.SavePath := StartDir + FileName; FEngine := xEngine; VFSOpenResult := (FEngine as TVFSEngine).VFSOpenEx(IncludeTrailingPathDelimiter(StartDir) + FileName, nil, nil, nil, nil); if (VFSOpenResult = 0) and (not CancelIt) then Rekurze('/'); FEngine := FEngine.ParentEngine; if not (xEngine as TVFSEngine).VFSClose then DebugMsg(['Error closing the engine...']); xEngine.Free; end; end; if not Matches then libc_free(LocalList[i]); end; end; LocalList.Free; finally // DebugMsg(['-- Leaving directory ', StartDir]); end; end; function TSearchThread.FindText(FileName: string): boolean; const BlockSize = 65536; var fd: TEngineFileDes; i, Error, Read, Pos: integer; Buffer: PByteArray; x: boolean; begin Result := False; try Error := 0; Buffer := malloc(BlockSize); if Buffer = nil then Exit; memset(Buffer, 0, BlockSize); fd := FEngine.OpenFile(FileName, omRead, Error); if (fd = nil) or (Error <> 0) then Exit; Pos := 1; repeat Read := FEngine.ReadFile(fd, Buffer, BlockSize, Error); if Read > 0 then for i := 0 to Read - 1 do begin if FCaseSensitiveStrings then x := Buffer^[i] = byte(FStringFind[Pos]) else x := ANSIUpperCase(char(Buffer^[i])) = ANSIUpperCase(FStringFind[Pos]); if x then begin Inc(Pos); if Pos > Length(FStringFind) then begin Result := True; FEngine.CloseFile(fd); libc_free(Buffer); Exit; end; end else Pos := 1; end; // DebugMsg(['Read : ', Read, ' bytes.']); if CancelIt then Break; until Read < BlockSize; FEngine.CloseFile(fd); libc_free(Buffer); except end; end; end. tuxcmd-0.6.70+dfsg/UConnectionManager.pas0000644000175000017500000007044511300022643017272 0ustar salvisalvi(* Tux Commander - UConnectionManager - Connection manager dialog Copyright (C) 2004 Tomas Bzatek Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UConnectionManager; interface uses glib2, gdk2, gtk2, pango, SysUtils, Types, Classes, GTKControls, GTKForms, GTKStdCtrls, GTKExtCtrls, GTKConsts, GTKView, GTKUtils, GTKDialogs, GTKPixbuf, GTKClasses, GTKMenus, UCore, UCoreClasses, UVFSCore, UEngines; type TFConnectionManager = class(TGTKDialog) TitleFrame: TGTKFrame; TitleLabel: TGTKLabel; TitleEventBox: TGTKEventBox; TitleIcon: TGTKImage; TitleHBox: TGTKHBox; ListView: TGTKListView; ListViewScrolledWindow: TGTKScrolledWindow; ListViewTable: TGTKTable; AddConnectionButton, EditButton, RemoveButton, DuplicateButton: TGTKImageButton; QuickConnectButton: TGTKImageButton; ButtonBox: TGTKVButtonBox; ActionButtonBox: TGTKHButtonBox; ConnectButton, StopButton, CloseButton: TGTKButton; DoNotSavePasswordsCheckBox, DoNotSynchronizeKeyringCheckBox: TGTKCheckButton; ItemsPopupMenu, ConnectMenuItem, AddConnectionMenuItem, EditMenuItem, RemoveMenuItem, DuplicateMenuItem: TGTKMenuItem; procedure FormCreate(Sender: TObject); override; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormResponse(Sender: TObject; const ResponseID: integer); procedure ListViewSelectionChanged(Sender: TObject); procedure FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); procedure AddConnectionButtonClick(Sender: TObject); procedure EditButtonClick(Sender: TObject); procedure DuplicateButtonClick(Sender: TObject); procedure RemoveButtonClick(Sender: TObject); procedure ListViewDblClick(Sender: TObject; Button: TGDKMouseButton; Shift: TShiftState; X, Y: Integer; var Accept: boolean); procedure ListViewKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); procedure CloseButtonClick(Sender: TObject); procedure ConnectButtonClick(Sender: TObject); procedure StopButtonClick(Sender: TObject); procedure QuickConnectButtonClick(Sender: TObject); private procedure FillList; procedure DoConnect; public FSilenceError: boolean; Thread: TOpenConnectionThread; SourcePanelEngine: TPanelEngine; ConnectedEngine: TVFSEngine; function DoConnectInternal(const URI: string; Engine: TVFSEngine; VFSDialogsParentWindow: PGtkWidget; VFSQuickConnectMode: boolean): boolean; end; var FConnectionManager: TFConnectionManager; implementation uses ULocale, UCoreUtils, UConfig, UConnectionProperties, UGnome, UQuickConnect; procedure TFConnectionManager.FormCreate(Sender: TObject); const row_targets: TGtkTargetEntry = (target: 'GTK_TREE_MODEL_ROW'; flags: GTK_TARGET_SAME_WIDGET; info: 1;); var Column: TGTKTreeViewColumn; begin Thread := nil; ConnectedEngine := nil; SetDefaultSize(650, 500); Caption := LANGConnMgr_Caption; Buttons := []; ShowSeparator := False; ConnectButton := TGTKButton.Create(Self); ConnectButton.Caption := LANGConnMgr_ConnectButton; // ConnectButton.Default := True; CloseButton := TGTKButton.CreateFromStock(Self, GTK_STOCK_CLOSE); StopButton := TGTKButton.CreateFromStock(Self, GTK_STOCK_STOP); StopButton.Visible := False; StopButton.Enabled := False; // Default := ConnectButton; ActionButtonBox := TGTKHButtonBox.Create(Self); ActionButtonBox.Layout := blEnd; ActionButtonBox.Spacing := 10; ActionButtonBox.BorderWidth := 0; ActionButtonBox.AddControlEnd(CloseButton); ActionButtonBox.AddControlEnd(ConnectButton); ActionButtonBox.AddControlEnd(StopButton); ActionArea.AddControlEx(ActionButtonBox, False, False, 0); TitleEventBox := TGTKEventBox.Create(Self); TitleLabel := TGTKLabel.Create(Self); TitleLabel.Caption := Format('%s', [LANGConnMgr_OpenConnection]); TitleLabel.UseMarkup := True; TitleLabel.XAlign := 0; TitleLabel.XPadding := 0; TitleLabel.YPadding := 3; TitleEventBox.ControlState := csPrelight; TitleFrame := TGTKFrame.CreateWithoutLabel(Self); TitleFrame.ShadowType := stShadowOut; TitleIcon := TGTKImage.Create(Self); TitleIcon.SetFromStock('gtk-connect', isLargeToolbar); TitleHBox := TGTKHBox.Create(Self); TitleHBox.Homogeneous := False; TitleHBox.AddControlEx(TGTKEventBox.Create(Self), False, False, 5); TitleHBox.AddControlEx(TitleIcon, False, False, 0); TitleHBox.AddControlEx(TitleLabel, True, True, 10); TitleEventBox.AddControl(TitleHBox); TitleFrame.AddControl(TitleEventBox); ClientArea.AddControlEx(TitleFrame, False, True, 0); ListViewTable := TGTKTable.Create(Self); ListViewTable.BorderWidth := 7; ClientArea.AddControlEx(ListViewTable, True, True, 0); ListView := TGTKListView.CreateTyped(Self, True, [lcPointer, lcText, lcText]); ListView.SelectionMode := smSingle; ListView.OnKeyDown := ListViewKeyDown; { gtk_tree_view_enable_model_drag_source(GTK_TREE_VIEW(ListView.FWidget), GDK_BUTTON1_MASK, @row_targets, 1, GDK_ACTION_MOVE); gtk_tree_view_enable_model_drag_dest(GTK_TREE_VIEW(ListView.FWidget), @row_targets, 1, GDK_ACTION_MOVE); } ListView.RulesHint := True; ListView.ShowHeaders := True; Column := ListView.Columns.Add; Column.AddAttribute('text', 1); Column.Resizable := True; Column.FixedWidth := ConfConnMgrColumn1Width; Column.SizingMode := smFixed; Column.Caption := LANGConnMgr_NameColumn; Column.Clickable := True; Column.SortID := 1; Column := ListView.Columns.Add; Column.AddAttribute('text', 2); Column.Resizable := True; Column.SizingMode := smFixed; Column.Caption := LANGConnMgr_URIColumn; Column.Clickable := True; Column.SortID := 2; ListView.SearchColumn := 1; ListView.SetSortInfo(ConfConnMgrSortColumn, TGTKTreeViewSortOrder(ConfConnMgrSortType)); ListViewScrolledWindow := TGTKScrolledWindow.Create(Self); ListViewScrolledWindow.AddControl(ListView); ListViewScrolledWindow.HorizScrollBarPolicy := sbAutomatic; ListViewScrolledWindow.VertScrollBarPolicy := sbAutomatic; ListViewScrolledWindow.ShadowType := stShadowIn; AddConnectionButton := TGTKImageButton.Create(Self); AddConnectionButton.SetFromStock('gtk-add', isSmallToolbar); AddConnectionButton.Caption := LANGConnMgr_AddConnectionButtonCaption; AddConnectionButton.UseUnderline := True; AddConnectionButton.Tooltip := LANGConnMgr_AddConnectionButtonTooltip; EditButton := TGTKImageButton.Create(Self); EditButton.Caption := LANGConnMgr_EditButtonCaption; EditButton.UseUnderline := True; EditButton.Tooltip := LANGConnMgr_EditButtonTooltip; RemoveButton := TGTKImageButton.Create(Self); RemoveButton.SetFromStock('gtk-remove', isSmallToolbar); RemoveButton.Caption := LANGConnMgr_RemoveButtonCaption; RemoveButton.UseUnderline := True; RemoveButton.Tooltip := LANGConnMgr_RemoveButtonTooltip; DuplicateButton := TGTKImageButton.Create(Self); DuplicateButton.Caption := LANGFConnectionManager_DuplicateButton_Caption; DuplicateButton.UseUnderline := True; DuplicateButton.Tooltip := LANGFConnectionManager_DuplicateButton_Tooltip; QuickConnectButton := TGTKImageButton.Create(Self); QuickConnectButton.SetFromStock('gtk-connect', isSmallToolbar); QuickConnectButton.Caption := LANGmiQuickConnectCaption; QuickConnectButton.UseUnderline := True; ButtonBox := TGTKVButtonBox.Create(Self); ButtonBox.Spacing := 10; ButtonBox.AddControl(QuickConnectButton); // ButtonBox.AddControl(TGTKHSeparator.Create(Self)); ButtonBox.AddControl(TGTKEventBox.Create(Self)); ButtonBox.AddControl(AddConnectionButton); ButtonBox.AddControl(EditButton); ButtonBox.AddControl(DuplicateButton); ButtonBox.AddControl(RemoveButton); DoNotSavePasswordsCheckBox := TGTKCheckButton.CreateWithLabel(Self, LANGFConnectionManager_DoNotSavePasswordsCheckBox_Label); DoNotSavePasswordsCheckBox.Tooltip := LANGFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip; DoNotSynchronizeKeyringCheckBox := TGTKCheckButton.CreateWithLabel(Self, LANGFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label); DoNotSynchronizeKeyringCheckBox.Tooltip := LANGFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip; ListViewTable.AddControlEx(0, 1, 3, 5, ListViewScrolledWindow, [taoExpand, taoFill], [taoExpand, taoFill], 0, 5); ListViewTable.AddControlEx(0, 6, 3, 1, DoNotSavePasswordsCheckBox, [taoExpand, taoFill], [taoShrink], 10, 0); ListViewTable.AddControlEx(0, 7, 3, 1, DoNotSynchronizeKeyringCheckBox, [taoExpand, taoFill], [taoShrink], 10, 2); ListViewTable.AddControlEx(3, 2, 1, 3, ButtonBox, [taoShrink, taoFill], [taoShrink], 5, 5); ListViewTable.AddControlEx(3, 5, 1, 1, TGTKLabel.Create(Self), [taoShrink, taoFill], [taoExpand, taoFill], 0, 2); ItemsPopupMenu := TGTKMenuItem.Create(Self); ConnectMenuItem := TGTKMenuItem.CreateTyped(Self, itImageText); ConnectMenuItem.Caption := LANGConnMgr_ConnectButton; ConnectMenuItem.StockIcon := 'gtk-connect'; ConnectMenuItem.OnClick := ConnectButtonClick; AddConnectionMenuItem := TGTKMenuItem.CreateTyped(Self, itImageText); AddConnectionMenuItem.Caption := LANGConnMgr_AddConnectionButtonCaption; AddConnectionMenuItem.StockIcon := 'gtk-add'; AddConnectionMenuItem.OnClick := AddConnectionButtonClick; EditMenuItem := TGTKMenuItem.CreateTyped(Self, itImageText); EditMenuItem.Caption := LANGConnMgr_EditButtonCaption; EditMenuItem.OnClick := EditButtonClick; RemoveMenuItem := TGTKMenuItem.CreateTyped(Self, itImageText); RemoveMenuItem.Caption := LANGConnMgr_RemoveButtonCaption; RemoveMenuItem.StockIcon := 'gtk-remove'; RemoveMenuItem.OnClick := RemoveButtonClick; DuplicateMenuItem := TGTKMenuItem.CreateTyped(Self, itImageText); DuplicateMenuItem.Caption := LANGFConnectionManager_DuplicateMenuItem_Caption; DuplicateMenuItem.OnClick := DuplicateButtonClick; ItemsPopupMenu.Add(ConnectMenuItem); ItemsPopupMenu.Add(TGTKMenuItem.CreateTyped(Self, itSeparator)); ItemsPopupMenu.Add(AddConnectionMenuItem); ItemsPopupMenu.Add(EditMenuItem); ItemsPopupMenu.Add(DuplicateMenuItem); ItemsPopupMenu.Add(RemoveMenuItem); FillList; ListView.OnSelectionChanged := ListViewSelectionChanged; ListView.OnDblClick := ListViewDblClick; ListView.PopupMenu := ItemsPopupMenu; ListView.SetFocus; if (ListView.Items.Count > 0) and (ConfConnMgrActiveItem >= 0) and (ConfConnMgrActiveItem < ListView.Items.Count) then begin ListView.Items[ConfConnMgrActiveItem].Selected := True; ListView.Items[ConfConnMgrActiveItem].SetCursor(0, False, False, 0, 0); end; ListViewSelectionChanged(Self); AddConnectionButton.OnClick := AddConnectionButtonClick; EditButton.OnClick := EditButtonClick; DuplicateButton.OnClick := DuplicateButtonClick; RemoveButton.OnClick := RemoveButtonClick; CloseButton.OnClick := CloseButtonClick; ConnectButton.OnClick := ConnectButtonClick; StopButton.OnClick := StopButtonClick; QuickConnectButton.OnClick := QuickConnectButtonClick; OnKeyDown := FormKeyDown; OnClose := FormClose; OnResponse := FormResponse; end; procedure TFConnectionManager.ListViewSelectionChanged(Sender: TObject); begin try EditButton.Enabled := Assigned(ListView.Selected); DuplicateButton.Enabled := Assigned(ListView.Selected); RemoveButton.Enabled := Assigned(ListView.Selected); ConnectButton.Enabled := Assigned(ListView.Selected); ConnectMenuItem.Enabled := Assigned(ListView.Selected); EditMenuItem.Enabled := Assigned(ListView.Selected); DuplicateMenuItem.Enabled := Assigned(ListView.Selected); RemoveMenuItem.Enabled := Assigned(ListView.Selected); except end; end; procedure TFConnectionManager.FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); begin case Key of GDK_RETURN, GDK_KP_ENTER: if StopButton.Visible then StopButtonClick(Sender) else if Assigned(ListView.Selected) then DoConnect; GDK_ESCAPE: begin Accept := False; if StopButton.Visible then StopButtonClick(Sender) else ModalResult := mbCancel; end; end; end; procedure TFConnectionManager.ListViewDblClick(Sender: TObject; Button: TGDKMouseButton; Shift: TShiftState; X, Y: Integer; var Accept: boolean); begin if Assigned(ListView.Selected) and (Button = mbLeft) and (ListView.GetItemAtPos(X, Y) <> nil) then DoConnect; end; procedure TFConnectionManager.ListViewKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); begin case Key of GDK_Delete_Key: RemoveButtonClick(Sender); end; end; procedure TFConnectionManager.FormClose(Sender: TObject; var Action: TCloseAction); begin if ListView.Selected <> nil then ConfConnMgrActiveItem := ListView.Selected.Index; ConfConnMgrDoNotSavePasswords := DoNotSavePasswordsCheckBox.Checked; ConfConnMgrDoNotSynchronizeKeyring := DoNotSynchronizeKeyringCheckBox.Checked; ConfConnMgrSortColumn := ListView.SortColumnID; ConfConnMgrSortType := Integer(ListView.SortOrder); ConfConnMgrColumn1Width := ListView.Columns[0].Width; end; procedure TFConnectionManager.FormResponse(Sender: TObject; const ResponseID: integer); var Action: TCloseAction; begin FormClose(Sender, Action); end; (********************************************************************************************************************************) (********************************************************************************************************************************) procedure TFConnectionManager.AddConnectionButtonClick(Sender: TObject); var Item: TGTKListItem; ConnMgrItem: TConnMgrItem; begin try FConnectionProperties := TFConnectionProperties.Create(Self); if FConnectionProperties.Run = mbOK then begin ConnMgrItem := TConnMgrItem.Create; with FConnectionProperties do begin ConnMgrItem.ConnectionName := NameEntry.Text; ConnMgrItem.ServiceType := GetService; ConnMgrItem.Server := ServerEntry.Text; ConnMgrItem.Username := UserNameEntry.Text; ConnMgrItem.Password := PasswordEntry.Text; ConnMgrItem.TargetDir := TargetDirEntry.Text; ConnMgrItem.PluginID := ''; if (PluginOptionMenu.ItemIndex <> 0) and (PluginOptionMenu.Items[PluginOptionMenu.ItemIndex].Data <> nil) then ConnMgrItem.PluginID := TVFSPlugin(PluginOptionMenu.Items[PluginOptionMenu.ItemIndex].Data).ModuleID; end; ConnectionMgrList.Add(ConnMgrItem); Item := ListView.Items.Add; Item.SetValue(0, ConnMgrItem); Item.SetValue(1, ConnMgrItem.ConnectionName); Item.SetValue(2, FConnectionProperties.MakeURI(True)); Item.Selected := True; Item.SetCursor(0, False, not Application.GTKVersion_2_2_0_Up, 0.5, 0); end; finally FConnectionProperties.Free; ListView.SetFocus; end; end; procedure TFConnectionManager.EditButtonClick(Sender: TObject); var Item: TGTKListItem; ConnMgrItem: TConnMgrItem; i: integer; begin try Item := ListView.Selected; if Item = nil then Exit; ConnMgrItem := Item.AsPointer(0); if ConnMgrItem = nil then Exit; FConnectionProperties := TFConnectionProperties.Create(Self); FConnectionProperties.NameEntry.Text := ConnMgrItem.ConnectionName; FConnectionProperties.URIEntry.Text := ConstructURI(True, False, ConnMgrItem.ServiceType, ConnMgrItem.Server, ConnMgrItem.Username, ConnMgrItem.Password, ConnMgrItem.TargetDir); FConnectionProperties.ServiceTypeOptionMenuChanged(Sender); // Find the plugin by PluginID for i := 0 to FConnectionProperties.PluginOptionMenu.Items.Count - 1 do if (FConnectionProperties.PluginOptionMenu.Items[i].Data <> nil) and (TVFSPlugin(FConnectionProperties.PluginOptionMenu.Items[i].Data).ModuleID = ConnMgrItem.PluginID) then begin FConnectionProperties.PluginOptionMenu.ItemIndex := i; Break; end; if FConnectionProperties.Run = mbOK then begin with FConnectionProperties do begin ConnMgrItem.ConnectionName := NameEntry.Text; ConnMgrItem.ServiceType := GetService; ConnMgrItem.Server := ServerEntry.Text; ConnMgrItem.Username := UserNameEntry.Text; ConnMgrItem.Password := PasswordEntry.Text; ConnMgrItem.TargetDir := TargetDirEntry.Text; ConnMgrItem.PluginID := ''; if (PluginOptionMenu.ItemIndex <> 0) and (PluginOptionMenu.Items[PluginOptionMenu.ItemIndex].Data <> nil) then ConnMgrItem.PluginID := TVFSPlugin(PluginOptionMenu.Items[PluginOptionMenu.ItemIndex].Data).ModuleID; end; Item.SetValue(1, ConnMgrItem.ConnectionName); Item.SetValue(2, FConnectionProperties.MakeURI(True)); end; finally FConnectionProperties.Free; ListView.SetFocus; end; end; procedure TFConnectionManager.DuplicateButtonClick(Sender: TObject); var Item: TGTKListItem; ConnMgrItem: TConnMgrItem; i: integer; begin try Item := ListView.Selected; if Item = nil then Exit; ConnMgrItem := Item.AsPointer(0); if ConnMgrItem = nil then Exit; FConnectionProperties := TFConnectionProperties.Create(Self); FConnectionProperties.NameEntry.Text := ''; FConnectionProperties.URIEntry.Text := ConstructURI(True, False, ConnMgrItem.ServiceType, ConnMgrItem.Server, ConnMgrItem.Username, ConnMgrItem.Password, ConnMgrItem.TargetDir); FConnectionProperties.ServiceTypeOptionMenuChanged(Sender); // Find the plugin by PluginID for i := 0 to FConnectionProperties.PluginOptionMenu.Items.Count - 1 do if (FConnectionProperties.PluginOptionMenu.Items[i].Data <> nil) and (TVFSPlugin(FConnectionProperties.PluginOptionMenu.Items[i].Data).ModuleID = ConnMgrItem.PluginID) then begin FConnectionProperties.PluginOptionMenu.ItemIndex := i; Break; end; if FConnectionProperties.Run = mbOK then begin ConnMgrItem := TConnMgrItem.Create; with FConnectionProperties do begin ConnMgrItem.ConnectionName := NameEntry.Text; ConnMgrItem.ServiceType := GetService; ConnMgrItem.Server := ServerEntry.Text; ConnMgrItem.Username := UserNameEntry.Text; ConnMgrItem.Password := PasswordEntry.Text; ConnMgrItem.TargetDir := TargetDirEntry.Text; ConnMgrItem.PluginID := ''; if (PluginOptionMenu.ItemIndex <> 0) and (PluginOptionMenu.Items[PluginOptionMenu.ItemIndex].Data <> nil) then ConnMgrItem.PluginID := TVFSPlugin(PluginOptionMenu.Items[PluginOptionMenu.ItemIndex].Data).ModuleID; end; ConnectionMgrList.Add(ConnMgrItem); Item := ListView.Items.Add; Item.SetValue(0, ConnMgrItem); Item.SetValue(1, ConnMgrItem.ConnectionName); Item.SetValue(2, FConnectionProperties.MakeURI(True)); Item.Selected := True; Item.SetCursor(0, False, not Application.GTKVersion_2_2_0_Up, 0.5, 0); end; finally FConnectionProperties.Free; ListView.SetFocus; end; end; procedure TFConnectionManager.RemoveButtonClick(Sender: TObject); var Item: TGTKListItem; ConnMgrItem: TConnMgrItem; i, OldIndex: integer; begin Item := ListView.Selected; if Item = nil then Exit; ConnMgrItem := Item.AsPointer(0); if ConnMgrItem = nil then Exit; if Application.MessageBox(PGtkWindow(FWidget), Format(LANGConnMgr_DoYouWantDelete, [Item.AsString(1)]), [mbYes, mbNo], mbQuestion, mbYes, mbNo) = mbYes then begin OldIndex := ListView.ConvertToSorted(Item.Index); if ConnectionMgrList.Count > 0 then for i := 0 to ConnectionMgrList.Count - 1 do if ConnectionMgrList[i] = ConnMgrItem then begin ConnectionMgrList.Delete(i); Break; end; ConnMgrItem.Free; ListView.Items.Delete(Item.Index); // Preserve selection if ListView.Items.Count > 0 then begin if ListView.Items.Count <= OldIndex then OldIndex := ListView.ConvertFromSorted(ListView.Items.Count - 1) else OldIndex := ListView.ConvertFromSorted(OldIndex); ListView.Items[OldIndex].Selected := True; ListView.Items[OldIndex].SetCursor(0, False, not Application.GTKVersion_2_2_0_Up, 0.5, 0); end; ListView.SetFocus; end; end; procedure TFConnectionManager.FillList; var i: integer; Item: TGTKListItem; ConnMgrItem: TConnMgrItem; begin if ConnectionMgrList.Count > 0 then for i := 0 to ConnectionMgrList.Count - 1 do begin ConnMgrItem := ConnectionMgrList[i]; Item := ListView.Items.Add; Item.SetValue(0, ConnMgrItem); Item.SetValue(1, ConnMgrItem.ConnectionName); Item.SetValue(2, ConstructURI(True, True, ConnMgrItem.ServiceType, ConnMgrItem.Server, ConnMgrItem.Username, ConnMgrItem.Password, ConnMgrItem.TargetDir)); end; if (ConfConnMgrActiveItem < 0) or (ConfConnMgrActiveItem > ConnectionMgrList.Count) then ConfConnMgrActiveItem := 0; DoNotSavePasswordsCheckBox.Checked := ConfConnMgrDoNotSavePasswords; DoNotSynchronizeKeyringCheckBox.Checked := ConfConnMgrDoNotSynchronizeKeyring; end; (********************************************************************************************************************************) procedure TFConnectionManager.CloseButtonClick(Sender: TObject); begin ModalResult := mbCancel; end; procedure TFConnectionManager.ConnectButtonClick(Sender: TObject); begin DoConnect; end; procedure TFConnectionManager.StopButtonClick(Sender: TObject); begin if Thread <> nil then Thread.FCancelRequested := True; end; procedure TFConnectionManager.QuickConnectButtonClick(Sender: TObject); var AFQuickConnect: TFQuickConnect; begin ConfConnMgrDoNotSavePasswords := DoNotSavePasswordsCheckBox.Checked; ConfConnMgrDoNotSynchronizeKeyring := DoNotSynchronizeKeyringCheckBox.Checked; try AFQuickConnect := TFQuickConnect.Create(Self); AFQuickConnect.SourcePanelEngine := SourcePanelEngine; AFQuickConnect.ConnectionManager := Self; if (AFQuickConnect.Run = mbOK) and (AFQuickConnect.ConnectedEngine <> nil) then begin ConnectedEngine := AFQuickConnect.ConnectedEngine; ModalResult := mbOK; end; finally AFQuickConnect.Free; end; end; (********************************************************************************************************************************) procedure TFConnectionManager.DoConnect; var Engine: TVFSEngine; i, j: integer; VFSPlugin: TVFSPlugin; FActiveConnInfo: TConnMgrItem; DontShowAgain: boolean; res: TMessageButton; begin FActiveConnInfo := nil; if ListView.Selected <> nil then FActiveConnInfo := ListView.Selected.AsPointer(0); if FActiveConnInfo = nil then Exit; if PluginList.Count = 0 then begin Application.MessageBox(PGtkWindow(FWidget), LANGThereIsNoModuleAvailable, [mbOK], mbError, mbOK, mbOK); Exit; end; // Find VFS module to use for this connection VFSPlugin := nil; if Length(FActiveConnInfo.PluginID) > 0 then for i := 0 to PluginList.Count - 1 do if TVFSPlugin(PluginList[i]).ModuleID = FActiveConnInfo.PluginID then begin VFSPlugin := PluginList[i]; Break; end; if VFSPlugin = nil then begin for i := 0 to PluginList.Count - 1 do begin if Length(TVFSPlugin(PluginList[i]).Services) > 0 then for j := 0 to Length(TVFSPlugin(PluginList[i]).Services) - 1 do if WideCompareText(TVFSPlugin(PluginList[i]).Services[j], FActiveConnInfo.ServiceType) = 0 then begin VFSPlugin := PluginList[i]; Break; end; if VFSPlugin <> nil then Break; end; if VFSPlugin = nil then VFSPlugin := PluginList[0]; // Fallback in hope some other plugin can handle it end; if (SourcePanelEngine is TVFSEngine) and ConfReplaceConnectionWarning then begin DontShowAgain := False; res := MessageBoxShowOnce(PGtkWindow(FWidget), LANGCloseOpenConnection, LANGDontShowAgain, DontShowAgain, [mbYes, mbNo], mbWarning, mbYes, mbNo); if DontShowAgain then begin ConfReplaceConnectionWarning := False; WriteMainGUISettings; end; if res <> mbYes then Exit; end; ListViewTable.Enabled := False; CloseButton.Enabled := False; ConnectButton.Enabled := False; ConnectButton.Visible := False; StopButton.Enabled := True; StopButton.Visible := True; StopButton.Default := True; StopButton.SetFocus; ConfConnMgrDoNotSavePasswords := DoNotSavePasswordsCheckBox.Checked; ConfConnMgrDoNotSynchronizeKeyring := DoNotSynchronizeKeyringCheckBox.Checked; // Construct the VFS Engine and try to open the connection Engine := TVFSEngine.Create(VFSPlugin); Engine.ParentEngine := SourcePanelEngine; Engine.SavePath := SourcePanelEngine.Path; Engine.Password := FActiveConnInfo.Password; Engine.PasswordUsed := False; if not DoConnectInternal(UTF8ToStr(FActiveConnInfo.GetURI(False)), Engine, FWidget, False) then begin if not FSilenceError then Application.MessageBox(PGtkWindow(FWidget), LANGCouldntOpenURI, [mbOK], mbError, mbOK, mbOK); ListViewTable.Enabled := True; CloseButton.Enabled := True; ConnectButton.Enabled := True; ConnectButton.Visible := True; StopButton.Visible := False; StopButton.Enabled := False; ListView.SetFocus; Engine.Free; Exit; end; if not DoNotSavePasswordsCheckBox.Checked then FActiveConnInfo.Password := Engine.Password; Engine.Password := ''; // Security precaution StopButton.Enabled := False; ConnectedEngine := Engine; ModalResult := mbOK; end; function TFConnectionManager.DoConnectInternal(const URI: string; Engine: TVFSEngine; VFSDialogsParentWindow: PGtkWidget; VFSQuickConnectMode: boolean): boolean; begin Result := False; FSilenceError := False; Thread := TOpenConnectionThread.Create; try Thread.VFSConnectionManagerMode := VFSDialogsParentWindow = FWidget; Thread.VFSQuickConnectMode := VFSQuickConnectMode; Thread.VFSDialogsParentWindow := VFSDialogsParentWindow; Thread.AEngine := Engine; Thread.URI := URI; Thread.Resume; repeat Sleep(ConstInternalProgressTimer); Application.ProcessMessages; if Thread.VFSAskQuestion_Display then begin Thread.VFSAskQuestion_Display := False; DebugMsg(['Main thread: displaying question dialog']); HandleVFSAskQuestionCallback(FWidget, Thread.VFSAskQuestion_Message, Thread.VFSAskQuestion_Choices, Thread.VFSAskQuestion_Choice); Thread.VFSCallbackEvent.SetEvent; end; if Thread.VFSAskPassword_Display then begin Thread.VFSAskPassword_Display := False; DebugMsg(['Main thread: displaying password prompt']); Thread.VFSAskPassword_Result := HandleVFSAskPasswordCallback(FWidget, Thread.VFSAskPassword_Message, Thread.VFSAskPassword_default_user, Thread.VFSAskPassword_default_domain, Thread.VFSAskPassword_default_password, Thread.VFSAskPassword_flags, Thread.VFSAskPassword_username, Thread.VFSAskPassword_password, Thread.VFSAskPassword_anonymous, Thread.VFSAskPassword_domain, Thread.VFSAskPassword_password_save); Thread.VFSCallbackEvent.SetEvent; end; until Thread.Finished; Result := Thread.OpenResult; FSilenceError := Thread.VFSCallbackCancelled; Thread.Free; Thread := nil; except on E: Exception do DebugMsg(['*** Exception raised in TFConnectionManager.DoConnect (', E.ClassName, '): ', E.Message]); end; end; end. tuxcmd-0.6.70+dfsg/libgtk_kylix/0000755000175000017500000000000011300022643015530 5ustar salvisalvituxcmd-0.6.70+dfsg/libgtk_kylix/GTKClasses.pas0000644000175000017500000001213611300022643020203 0ustar salvisalvi(* GTK-Kylix Library: GTKClasses - Non-visual objects Version 0.6.4 (last updated 2003-04-03) Copyright (C) 2003 Tomas Bzatek This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 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 Library General Public License for more details. You should have received a copy of the GNU Library 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. *) unit GTKClasses; interface uses gtk2, gdk2, glib2, Classes, SysUtils; type TGDKColor = record pixel: Cardinal; red, green, blue: Word; end; (****************************************** TGLIST ******************************************************************************) TGList = class(TComponent) private FNotify: TNotifyEvent; public FList: PGList; constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure Append(Data: Pointer); overload; procedure Append(Data: string); overload; procedure Delete(Index: integer); function Count: integer; published property Notify: TNotifyEvent read FNotify write FNotify; end; (****************************************** TGTKTIMER ***************************************************************************) TGTKTimer = class(TComponent) private FOnTimer: TNotifyEvent; FHandlerID: guint; FEnabled: boolean; FInterval: Cardinal; procedure SetEnabled(Value: boolean); procedure SetInterval(Value: Cardinal); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure Start; procedure Stop; published property OnTimer: TNotifyEvent read FOnTimer write FOnTimer; property Enabled: boolean read FEnabled write SetEnabled default False; property Interval: Cardinal read FInterval write SetInterval; end; (********************************************************************************************************************************) (********************************************************************************************************************************) implementation uses GTKUtils; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGList.Create(AOwner: TComponent); begin inherited Create(AOwner); FList := nil; FNotify := nil; end; destructor TGList.Destroy; begin g_list_free(FList); inherited Destroy; end; procedure TGList.Append(Data: Pointer); begin FList := g_list_append(FList, Data); if Assigned(FNotify) then FNotify(Self); end; procedure TGList.Append(Data: string); begin Append(Pointer(StringToPgchar(Data))); end; procedure TGList.Delete(Index: integer); var El: PGSList; begin El := g_list_nth_data(FList, Index); if El <> nil then FList := g_list_remove(FList, El); end; function TGList.Count: integer; begin Result := 0; if FList <> nil then Result := g_list_length(FList); end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKTimer.Create(AOwner: TComponent); begin inherited Create(AOwner); FOnTimer := nil; FEnabled := False; FInterval := 0; FHandlerID := 0; end; destructor TGTKTimer.Destroy; begin SetEnableD(False); inherited Destroy; end; procedure TGTKTimer.SetEnabled(Value: boolean); begin if Value <> FEnabled then begin FEnabled := Value; if Value then Start else Stop; end; end; procedure TGTKTimer.SetInterval(Value: Cardinal); begin if FInterval <> Value then begin FInterval := Value; Stop; Start; end; end; function TGTKTimer_Timeout(data: gpointer): gboolean; cdecl; begin if Assigned(TGTKTimer(data).FOnTimer) then TGTKTimer(data).FOnTimer(TGTKTimer(data)); Result := True; end; procedure TGTKTimer.Start; begin if FHandlerID > 0 then Stop; if FEnabled then FHandlerID := gtk_timeout_add(FInterval, TGTKTimer_Timeout, Self); end; procedure TGTKTimer.Stop; begin if FHandlerID > 0 then gtk_timeout_remove(FHandlerID); FHandlerID := 0; end; (********************************************************************************************************************************) (********************************************************************************************************************************) end. tuxcmd-0.6.70+dfsg/libgtk_kylix/GTKView.pas0000644000175000017500000015232011300022643017520 0ustar salvisalvi(* GTK-Kylix Library: GTKView - GtkTreeView and its modifications Version 0.6.21 (last updated 2006-05-06) Copyright (C) 2006 Tomas Bzatek This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 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 Library General Public License for more details. You should have received a copy of the GNU Library 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. *) unit GTKView; {$O+} // Optimization needs to be enabled for this unit due to bug in compiler (fixed columns doesn't work) interface uses gtk2, gdk2, gdk2pixbuf, glib2, Classes, GTKControls, GTKConsts, GTKUtils, GTKClasses, GTKForms, GTKPixbuf; // Quick jump: QForms QControls QStdCtrls QComCtrls type TGTKListItem = class; TGTKTreeViewColumn = class; (****************************************** TGTKTREEVIEWCOLUMN ******************************************************************) TGTKTreeViewColumnSizingMode = (smGrowOnly, smAutoSize, smFixed); TGTKTreeViewSortOrder = (soAscending, soDescending, soNone); TGTKTreeViewColumnType = (ctText, ctToggle, ctImageText); TGTKTreeViewColumnEditedEvent = procedure(Sender: TObject; Column: TGTKTreeViewColumn; Item: TGTKListItem; var NewText: string; var AllowChange: boolean; var DataColumn: integer) of object; TGTKTreeViewColumnToggledEvent = procedure(Sender: TObject; Column: TGTKTreeViewColumn; Item: TGTKListItem) of object; TGTKTreeViewColumn = class(TComponent) private FOwner: TComponent; FColumnType: TGTKTreeViewColumnType; FOnEdited: TGTKTreeViewColumnEditedEvent; FOnToggled: TGTKTreeViewColumnToggledEvent; FOnClicked: TNotifyEvent; FIndex: integer; function GetCaption: string; function GetVisible: boolean; function GetResizable: boolean; function GetSizingMode: TGTKTreeViewColumnSizingMode; function GetWidth: integer; function GetFixedWidth: integer; function GetMinWidth: integer; function GetMaxWidth: integer; function GetClickable: boolean; function GetAlignment: Double; function GetReorderable: boolean; function GetSortID: integer; function GetShowSortIndicator: boolean; function GetSortOrder: TGTKTreeViewSortOrder; procedure SetCaption(Value: string); procedure SetVisible(Value: boolean); procedure SetResizable(Value: boolean); procedure SetSizingMode(Value: TGTKTreeViewColumnSizingMode); procedure SetFixedWidth(Value: integer); procedure SetMinWidth(Value: integer); procedure SetMaxWidth(Value: integer); procedure SetClickable(Value: boolean); procedure SetAlignment(Value: Double); procedure SetReorderable(Value: boolean); procedure SetSortID(Value: integer); procedure SetShowSortIndicator(Value: boolean); procedure SetSortOrder(Value: TGTKTreeViewSortOrder); procedure SetColumnType(Value: TGTKTreeViewColumnType); public FColumn: PGtkTreeViewColumn; FRenderer, FPixbufRenderer: PGtkCellRenderer; constructor Create(AOwner: TComponent); override; constructor CreateTyped(AOwner: TComponent; ColType: TGTKTreeViewColumnType); destructor Destroy; override; procedure AddAttribute(Attribute: string; Value: integer); procedure SetProperty(AProperty: string; Value: integer); overload; procedure SetProperty(AProperty: string; Value: string); overload; procedure SetProperty(AProperty: string; Value: Double); overload; procedure SetProperty(AProperty: string; Value: pointer); overload; procedure AddImageAttribute(Attribute: string; Value: integer); procedure SetImageProperty(AProperty: string; Value: integer); overload; procedure SetImageProperty(AProperty: string; Value: string); overload; procedure SetImageProperty(AProperty: string; Value: Double); overload; procedure SetImageProperty(AProperty: string; Value: pointer); overload; procedure ClearAttributes; property Parent: TComponent read FOwner; published property Caption: string read GetCaption write SetCaption; property Visible: boolean read GetVisible write SetVisible; property Resizable: boolean read GetResizable write SetResizable; property SizingMode: TGTKTreeViewColumnSizingMode read GetSizingMode write SetSizingMode; property Width: integer read GetWidth; property FixedWidth: integer read GetFixedWidth write SetFixedWidth; property MinWidth: integer read GetMinWidth write SetMinWidth; property MaxWidth: integer read GetMaxWidth write SetMaxWidth; property Clickable: boolean read GetClickable write SetClickable; property Alignment: Double read GetAlignment write SetAlignment; property Reorderable: boolean read GetReorderable write SetReorderable; property SortID: integer read GetSortID write SetSortID; property ShowSortIndicator: boolean read GetShowSortIndicator write SetShowSortIndicator; property SortOrder: TGTKTreeViewSortOrder read GetSortOrder write SetSortOrder; property ColumnType: TGTKTreeViewColumnType read FColumnType write SetColumnType; property Index: integer read FIndex; property OnEdited: TGTKTreeViewColumnEditedEvent read FOnEdited write FOnEdited; property OnToggled: TGTKTreeViewColumnToggledEvent read FOnToggled write FOnToggled; property OnClicked: TNotifyEvent read FOnClicked write FOnClicked; end; (****************************************** TGTKTREEVIEWCOLUMNS *****************************************************************) TGTKTreeViewColumns = class(TComponent) private FOwner: TComponent; FList: TList; function GetCount: Integer; function GetItem(Index: Integer): TGTKTreeViewColumn; procedure SetItem(Index: Integer; Value: TGTKTreeViewColumn); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; function Add: TGTKTreeViewColumn; function AddTyped(ColType: TGTKTreeViewColumnType): TGTKTreeViewColumn; procedure Insert(Index: Integer; Item: TGTKTreeViewColumn); procedure Delete(Index: Integer); procedure Clear; procedure AutosizeColumns; property Items[Index: Integer]: TGTKTreeViewColumn read GetItem write SetItem; default; property Parent: TComponent read FOwner; published property Count: Integer read GetCount; end; (****************************************** TGTKLISTITEM ************************************************************************) TGTKListItem = class(TComponent) private FOwner: TComponent; FIndex: longint; FData: pointer; function GetSelected: boolean; procedure SetSelected(Value: boolean); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; function AsString(Index: longint): string; function AsInteger(Index: longint): integer; function AsPointer(Index: longint): pointer; function AsBoolean(Index: longint): boolean; procedure SetValue(Index: longint; Value: string); overload; procedure SetValue(Index: longint; Value: integer); overload; procedure SetValue(Index: longint; Value: pointer); overload; procedure SetValue(Index: longint; Value: boolean); overload; procedure SetCursor(const FocusColumnNo: integer; const StartEditing, UseAlignment: boolean; const AlignX, AlignY: Double); procedure StartEditing(ColumnNo: integer); procedure RedrawRow; property Data: pointer read FData write FData; property Parent: TComponent read FOwner; function IsVisible: boolean; published property Selected: boolean read GetSelected write SetSelected; property Index: integer read FIndex; end; (****************************************** TGTKLISTITEMS ***********************************************************************) TGTKListColumnType = (lcText, lcNumber, lcPointer, lcPixbuf, lcBoolean); TGTKListItems = class(TComponent) private FStore: PGtkListStore; FOwner: TComponent; FList: TList; function GetCount: longint; function GetItem(Index: longint): TGTKListItem; procedure SetItem(Index: longint; Value: TGTKListItem); public constructor Create(AOwner: TComponent); override; constructor CreateTyped(AOwner: TComponent; ColumnTypes: array of TGTKListColumnType); destructor Destroy; override; procedure SetColumnTypes(Types: array of TGTKListColumnType); function Add: TGTKListItem; procedure Insert(Index: longint; Item: TGTKListItem); procedure Append(Item: TGTKListItem); procedure Delete(Index: longint); procedure Clear; property Items[Index: longint]: TGTKListItem read GetItem write SetItem; default; property Parent: TComponent read FOwner; published property Count: longint read GetCount; end; (****************************************** TGTKVIEW ****************************************************************************) TGTKSelectionMode = (smNone, smSingle, smBrowse, smMultiple); TGTKCellDataFunc = procedure (Sender: TObject; tree_view: PGtkTreeView; tree_column : PGtkTreeViewColumn; cell : PGtkCellRenderer; tree_model : PGtkTreeModel; iter : PGtkTreeIter) of object; TGTKSortCoversionFunc = function (Sender: TObject; const Index: integer): integer of object; TGTKView = class(TGTKContainer) private FColumns: TGTKTreeViewColumns; FOnSelectionChanged: TNotifyEvent; FTreeModelSort: PGtkTreeModelSort; FCellDataFunc: TGTKCellDataFunc; FTreeModel: PGtkTreeModel; FToSortedConvFunc, FFromSortedConvFunc: TGTKSortCoversionFunc; function GetSelectionMode: TGTKSelectionMode; function GetShowHeaders: boolean; function GetRulesHint: boolean; function GetReorderable: boolean; function GetEnableSearch: boolean; function GetSearchColumn: integer; function GetSortColumnID: integer; function GetSortOrder: TGTKTreeViewSortOrder; procedure SetSelectionMode(Value: TGTKSelectionMode); procedure SetShowHeaders(Value: boolean); procedure SetRulesHint(Value: boolean); procedure SetReorderable(Value: boolean); procedure SetEnableSearch(Value: boolean); procedure SetSearchColumn(Value: integer); procedure SetSortColumnID(Value: integer); procedure SetSortOrder(Value: TGTKTreeViewSortOrder); protected public FSelection: PGtkTreeSelection; constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure SelectAll; procedure DeselectAll; procedure SetSortInfo(ColumnID: integer; Order: TGTKTreeViewSortOrder); function ConvertToSorted(Index: integer): integer; function ConvertFromSorted(Index: integer): integer; procedure ConvertPathToChild(var Path: PGtkTreePath); procedure ConvertChildToPath(var Path: PGtkTreePath); published property Columns: TGTKTreeViewColumns read FColumns write FColumns; property SelectionMode: TGTKSelectionMode read GetSelectionMode write SetSelectionMode; property OnSelectionChanged: TNotifyEvent read FOnSelectionChanged write FOnSelectionChanged; property ShowHeaders: boolean read GetShowHeaders write SetShowHeaders; property RulesHint: boolean read GetRulesHint write SetRulesHint; property Reorderable: boolean read GetReorderable write SetReorderable; property EnableSearch: boolean read GetEnableSearch write SetEnableSearch; property SearchColumn: integer read GetSearchColumn write SetSearchColumn; property SortColumnID: integer read GetSortColumnID write SetSortColumnID; property SortOrder: TGTKTreeViewSortOrder read GetSortOrder write SetSortOrder; property CellDataFunc: TGTKCellDataFunc read FCellDataFunc write FCellDataFunc; property FromSortedCoversionFunc: TGTKSortCoversionFunc read FFromSortedConvFunc write FFromSortedConvFunc; property ToSortedCoversionFunc: TGTKSortCoversionFunc read FToSortedConvFunc write FToSortedConvFunc; end; (****************************************** TGTKLISTVIEW ************************************************************************) TGTKLVItemActivateEvent = procedure (Sender: TObject; Item: TGTKListItem) of object; TGTKTreeViewCompareFunc = function (Sender: TObject; var model: PGtkTreeModel; var a, b: PGtkTreeIter): integer of object; TGTKListView = class(TGTKView) private FOnItemActivate: TGTKLVItemActivateEvent; FSortable: boolean; FCompareFunc: TGTKTreeViewCompareFunc; FOnColumnsChanged: TNotifyEvent; protected FListItems: TGTKListItems; procedure Recreate; function GetSelected: TGTKListItem; procedure SetSelected(Value: TGTKListItem); public constructor Create(AOwner: TComponent); override; constructor CreateTyped(AOwner: TComponent; Sortable: boolean; ColumnTypes: array of TGTKListColumnType); destructor Destroy; override; procedure StartEditing(ColumnNo: integer); function GetItemAtPos(X, Y: integer): TGTKListItem; published property Items: TGTKListItems read FListItems write FListItems; property Selected: TGTKListItem read GetSelected write SetSelected; property OnItemActivate: TGTKLVItemActivateEvent read FOnItemActivate write FOnItemActivate; property CompareFunc: TGTKTreeViewCompareFunc read FCompareFunc write FCompareFunc; property OnColumnsChanged: TNotifyEvent read FOnColumnsChanged write FOnColumnsChanged; end; (********************************************************************************************************************************) (********************************************************************************************************************************) implementation uses SysUtils, DateUtils; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKView.Create(AOwner: TComponent); begin inherited Create(AOwner); FColumns := TGTKTreeViewColumns.Create(Self); FOnSelectionChanged := nil; FToSortedConvFunc := nil; FFromSortedConvFunc := nil; end; destructor TGTKView.Destroy; begin FColumns.Free; inherited Destroy; end; function TGTKView.GetSelectionMode: TGTKSelectionMode; begin Result := TGTKSelectionMode(gtk_tree_selection_get_mode(FSelection)); end; procedure TGTKView.SetSelectionMode(Value: TGTKSelectionMode); begin gtk_tree_selection_set_mode(FSelection, Integer(Value)); end; procedure TGTKView.SelectAll; begin gtk_tree_selection_select_all(FSelection); end; procedure TGTKView.DeselectAll; begin gtk_tree_selection_unselect_all(FSelection); end; function TGTKView.GetShowHeaders: boolean; begin Result := gtk_tree_view_get_headers_visible(PGtkTreeView(FWidget)); end; procedure TGTKView.SetShowHeaders(Value: boolean); begin gtk_tree_view_set_headers_visible(PGtkTreeView(FWidget), Value); end; function TGTKView.GetRulesHint: boolean; begin Result := gtk_tree_view_get_rules_hint(PGtkTreeView(FWidget)); end; procedure TGTKView.SetRulesHint(Value: boolean); begin gtk_tree_view_set_rules_hint(PGtkTreeView(FWidget), Value); end; function TGTKView.GetReorderable: boolean; begin Result := gtk_tree_view_get_reorderable(PGtkTreeView(FWidget)); end; procedure TGTKView.SetReorderable(Value: boolean); begin gtk_tree_view_set_reorderable(PGtkTreeView(FWidget), Value); end; function TGTKView.GetEnableSearch: boolean; begin Result := gtk_tree_view_get_enable_search(PGtkTreeView(FWidget)); end; procedure TGTKView.SetEnableSearch(Value: boolean); begin gtk_tree_view_set_enable_search(PGtkTreeView(FWidget), Value); end; function TGTKView.GetSearchColumn: integer; begin Result := gtk_tree_view_get_search_column(PGtkTreeView(FWidget)); end; procedure TGTKView.SetSearchColumn(Value: integer); begin gtk_tree_view_set_search_column(PGtkTreeView(FWidget), Value); end; function TGTKView.GetSortColumnID: integer; var sort_column_id: gint; order: TGtkSortType; begin Result := -1; if (FTreeModelSort <> nil) and gtk_tree_sortable_get_sort_column_id(PGtkTreeSortable(FTreeModelSort), @sort_column_id, @order) then Result := sort_column_id; end; procedure TGTKView.SetSortColumnID(Value: integer); begin if FTreeModelSort <> nil then gtk_tree_sortable_set_sort_column_id(PGtkTreeSortable(FTreeModelSort), Value, TGtkSortType(GetSortOrder)); end; procedure TGTKView.ConvertChildToPath(var Path: PGtkTreePath); var NewPath: PGtkTreePath; begin if Assigned(FTreeModelSort) then if not Assigned(FToSortedConvFunc) then begin NewPath := gtk_tree_model_sort_convert_child_path_to_path(FTreeModelSort, Path); Path := NewPath; end else begin NewPath := gtk_tree_path_new_from_string(PChar(IntToStr(FToSortedConvFunc(Self, StrToIntDef(gtk_tree_path_to_string(Path), 0))))); Path := NewPath; end; end; procedure TGTKView.ConvertPathToChild(var Path: PGtkTreePath); var NewPath: PGtkTreePath; begin if Assigned(FTreeModelSort) then if not Assigned(FFromSortedConvFunc) then begin NewPath := gtk_tree_model_sort_convert_path_to_child_path(FTreeModelSort, Path); Path := NewPath; end else begin NewPath := gtk_tree_path_new_from_string(PChar(IntToStr(FFromSortedConvFunc(Self, StrToIntDef(gtk_tree_path_to_string(Path), 0))))); Path := NewPath; end; end; function TGTKView.GetSortOrder: TGTKTreeViewSortOrder; var sort_column_id: gint; order: TGtkSortType; begin Result := soNone; if (FTreeModelSort <> nil) and gtk_tree_sortable_get_sort_column_id(PGtkTreeSortable(FTreeModelSort), @sort_column_id, @order) then Result := TGTKTreeViewSortOrder(order); end; procedure TGTKView.SetSortOrder(Value: TGTKTreeViewSortOrder); begin if FTreeModelSort <> nil then gtk_tree_sortable_set_sort_column_id(PGtkTreeSortable(FTreeModelSort), GetSortColumnID, TGtkSortType(Value)); end; procedure TGTKView.SetSortInfo(ColumnID: integer; Order: TGTKTreeViewSortOrder); begin if FTreeModelSort <> nil then gtk_tree_sortable_set_sort_column_id(PGtkTreeSortable(FTreeModelSort), ColumnID, TGtkSortType(Order)); end; function TGTKView.ConvertToSorted(Index: integer): integer; var Path: PGtkTreePath; Iter: TGtkTreeIter; begin Result := Index; if Application.GTKVersion_2_0_5_Up then begin Path := gtk_tree_path_new_from_string(StringToPgchar(IntToStr(Index))); if not Assigned(Path) then Exit; if Assigned(FTreeModelSort) then Path := gtk_tree_model_sort_convert_child_path_to_path(FTreeModelSort, Path); if not Assigned(Path) then Exit; Result := gtk_tree_path_get_indices(Path)^; gtk_tree_path_free(Path); end else if Assigned(FToSortedConvFunc) then Result := FToSortedConvFunc(Self, Index) else begin gtk_tree_model_get_iter_from_string(FTreeModel, @Iter, PChar(IntToStr(Index))); // gtk_tree_model_sort_convert_child_iter_to_iter(FTreeModelSort, @NewIter, @Iter); Path := gtk_tree_model_get_path(FTreeModel, @Iter); if not Assigned(Path) then Exit; if Assigned(FTreeModelSort) then Path := gtk_tree_model_sort_convert_child_path_to_path(FTreeModelSort, Path); if not Assigned(Path) then Exit; Result := StrToIntDef(String(gtk_tree_path_to_string(Path)), Index); gtk_tree_path_free(Path); end; end; function TGTKView.ConvertFromSorted(Index: integer): integer; var Path: PGtkTreePath; Iter: TGtkTreeIter; begin Result := Index; if Application.GTKVersion_2_0_5_Up then begin Path := gtk_tree_path_new_from_string(StringToPgchar(IntToStr(Index))); if not Assigned(Path) then Exit; if Assigned(FTreeModelSort) then Path := gtk_tree_model_sort_convert_path_to_child_path(FTreeModelSort, Path); if not Assigned(Path) then Exit; Result := gtk_tree_path_get_indices(Path)^; gtk_tree_path_free(Path); end else if Assigned(FFromSortedConvFunc) then Result := FFromSortedConvFunc(Self, Index) else begin gtk_tree_model_get_iter_from_string(FTreeModel, @Iter, PChar(IntToStr(Index))); // gtk_tree_model_sort_convert_child_iter_to_iter(FTreeModelSort, @NewIter, @Iter); Path := gtk_tree_model_get_path(FTreeModel, @Iter); if not Assigned(Path) then Exit; if Assigned(FTreeModelSort) then Path := gtk_tree_model_sort_convert_path_to_child_path(FTreeModelSort, Path); if not Assigned(Path) then Exit; Result := StrToIntDef(String(gtk_tree_path_to_string(Path)), Index); gtk_tree_path_free(Path); end; end; procedure CellDataFunc(tree_column : PGtkTreeViewColumn; cell : PGtkCellRenderer; tree_model : PGtkTreeModel; iter : PGtkTreeIter; data : gpointer); cdecl; begin if Assigned(TGTKView(data).FCellDataFunc) then TGTKView(data).FCellDataFunc(TGTKView(data), PGtkTreeView(TGTKView(data).FWidget), tree_column, cell, tree_model, iter); end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKListView.Create(AOwner: TComponent); begin inherited Create(AOwner); FListItems := TGTKListItems.Create(Self); FSortable := False; FCompareFunc := nil; Recreate; end; destructor TGTKListView.Destroy; begin FListItems.Free; inherited Destroy; end; procedure TGTKListView_changed(treeselection: PGtkTreeSelection; user_data: gpointer); cdecl; begin if Assigned(TGTKListView(user_data).FOnSelectionChanged) then TGTKListView(user_data).FOnSelectionChanged(TGTKListView(user_data)); end; procedure TGTKListView_row_activated(treeview: PGtkTreeView; arg1: PGtkTreePath; arg2: PGtkTreeViewColumn; user_data: gpointer); cdecl; var Item: TGTKListItem; AIndex: integer; begin Item := nil; if Assigned(arg1) then begin TGTKListView(user_data).ConvertPathToChild(arg1); if Application.GTKVersion_2_0_5_Up then AIndex := gtk_tree_path_get_indices(arg1)^ else AIndex := StrToIntDef(String(gtk_tree_path_to_string(arg1)), 0); Item := TGTKListView(user_data).Items[AIndex]; Item.FIndex := AIndex; end; if Assigned(TGTKListView(user_data).FOnItemActivate) then TGTKListView(user_data).FOnItemActivate(TGTKListView(user_data), Item); end; procedure TGTKListView_columns_changed(treeselection: PGtkTreeSelection; user_data: gpointer); cdecl; begin if Assigned(TGTKListView(user_data).FOnColumnsChanged) then TGTKListView(user_data).FOnColumnsChanged(TGTKListView(user_data)); end; procedure TGTKListView.Recreate; begin if Assigned(FWidget) then gtk_widget_destroy(PGtkWidget(FWidget)); FTreeModelSort := nil; if not FSortable then FWidget := gtk_tree_view_new_with_model(PGtkTreeModel(FListItems.FStore)) else begin FTreeModelSort := gtk_tree_model_sort_new_with_model(FListItems.FStore); FWidget := gtk_tree_view_new_with_model(FTreeModelSort); end; FSelection := gtk_tree_view_get_selection(PGtkTreeView(FWidget)); g_signal_connect(FSelection, 'changed', G_CALLBACK(@TGTKListView_changed), Self); g_signal_connect(FWidget, 'row-activated', G_CALLBACK(@TGTKListView_row_activated), Self); g_signal_connect_after(FWidget, 'columns-changed', G_CALLBACK(@TGTKListView_columns_changed), Self); FTreeModel := gtk_tree_view_get_model(PGtkTreeView(FWidget)); Show; end; constructor TGTKListView.CreateTyped(AOwner: TComponent; Sortable: boolean; ColumnTypes: array of TGTKListColumnType); begin inherited Create(AOwner); FListItems := TGTKListItems.CreateTyped(Self, ColumnTypes); FSortable := Sortable; FCompareFunc := nil; Recreate; end; function TGTKListView.GetSelected: TGTKListItem; var Iter{, NewIter}: TGtkTreeIter; Path: PGtkTreePath; AIndex: integer; i: integer; begin Result := nil; Path := nil; if not Application.GTKVersion_2_0_5_Up then begin for i := 0 to Items.Count - 1 do begin Path := gtk_tree_path_new_from_string(PChar(IntToStr(i))); if gtk_tree_selection_path_is_selected(gtk_tree_view_get_selection(PGtkTreeView(FWidget)), Path) then Break else // WriteLn('Index ', i, ', Selected: ', gtk_tree_selection_path_is_selected(gtk_tree_view_get_selection(PGtkTreeView(FWidget)), Path)); gtk_tree_path_free(Path); Path := nil; end; // WriteLn('Selected: ', String(gtk_tree_path_to_string(Path))); ConvertPathToChild(Path); (* gtk_tree_model_get_iter_from_string(gtk_tree_view_get_model(PGtkTreeView(FWidget)){FTreeModelSort}, @Iter, gtk_tree_path_to_string(Path)); gtk_tree_model_sort_convert_child_iter_to_iter(FTreeModelSort, @NewIter, @Iter); Path := gtk_tree_model_get_path({FTreeModelSort}gtk_tree_view_get_model(PGtkTreeView(FWidget)), @NewIter); *) // gtk_tree_model_sort_clear_cache(FTreeModelSort); // Path := gtk_tree_model_sort_convert_path_to_child_path(FTreeModelSort, Path); end else begin if not gtk_tree_selection_get_selected(gtk_tree_view_get_selection(PGtkTreeView(FWidget)), nil, @Iter) then Exit; Path := gtk_tree_model_get_path(gtk_tree_view_get_model(PGtkTreeView(FWidget)), @iter); if not Assigned(Path) then Exit; ConvertPathToChild(Path); end; // WriteLn('Selected Converted: ', String(gtk_tree_path_to_string(Path))); if Assigned(Path) then begin if Application.GTKVersion_2_0_5_Up then AIndex := gtk_tree_path_get_indices(Path)^ else AIndex := StrToIntDef(String(gtk_tree_path_to_string(Path)), 0); Result := Items[AIndex]; Result.FIndex := AIndex; gtk_tree_path_free(Path); end; end; procedure TGTKListView.SetSelected(Value: TGTKListItem); var Path: PGtkTreePath; begin Path := gtk_tree_path_new_from_string(StringToPgchar(IntToStr(Value.FIndex))); ConvertChildToPath(Path); gtk_tree_selection_select_path(FSelection, Path); gtk_tree_path_free(Path); end; function GtkTreeIterCompareFunc(model: PGtkTreeModel; a: PGtkTreeIter; b: PGtkTreeIter; user_data: gpointer): gint; cdecl; var Value: TGValue; s: string; begin if not Assigned(TGTKListView(user_data).FCompareFunc) then begin Value.g_type := 0; gtk_tree_model_get_value(model, a, TGTKView(user_data).GetSortColumnID, @Value); s := string(PChar(Value.data[0].v_pointer)); Value.g_type := 0; gtk_tree_model_get_value(model, b, TGTKView(user_data).GetSortColumnID, @Value); Result := AnsiCompareStr(s, PChar(Value.data[0].v_pointer)); end else Result := TGTKListView(user_data).FCompareFunc(TGTKView(user_data), model, a, b); end; procedure TGTKListView.StartEditing(ColumnNo: integer); var Iter: TGtkTreeIter; Path: PGtkTreePath; begin if not gtk_tree_selection_get_selected(FSelection, nil, @Iter) then Exit; Path := gtk_tree_model_get_path(FTreeModel, @iter); if not Assigned(Path) then Exit; gtk_tree_view_set_cursor(PGtkTreeView(FWidget), Path, FColumns[ColumnNo].FColumn, True); end; function TGTKListView.GetItemAtPos(X, Y: integer): TGTKListItem; var Path: PGtkTreePath; Column: PGtkTreeViewColumn; AIndex: integer; begin Result := nil; if gtk_tree_view_get_path_at_pos(PGtkTreeView(FWidget), X, Y, Path, Column, nil, nil) then begin if not Assigned(Path) then Exit; ConvertPathToChild(Path); if Application.GTKVersion_2_0_5_Up then AIndex := gtk_tree_path_get_indices(Path)^ else AIndex := StrToIntDef(String(gtk_tree_path_to_string(Path)), 0); Result := Items[AIndex]; Result.FIndex := AIndex; gtk_tree_path_free(Path); end; end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKListItems.Create(AOwner: TComponent); const Types : GType = G_TYPE_STRING; begin inherited Create(AOwner); FOwner := AOwner; FStore := gtk_list_store_newv(1, @Types); FList := TList.Create; end; destructor TGTKListItems.Destroy; begin if not (csDestroying in ComponentState) then begin Clear; FList.Free; gtk_object_destroy(PGtkObject(FStore)); end; inherited Destroy; end; constructor TGTKListItems.CreateTyped(AOwner: TComponent; ColumnTypes: array of TGTKListColumnType); var i: integer; Cols : array[0..255] of GType; begin inherited Create(AOwner); FOwner := AOwner; FList := TList.Create; for i := Low(ColumnTypes) to High(ColumnTypes) do case ColumnTypes[i] of lcText : Cols[i] := G_TYPE_STRING; lcNumber : Cols[i] := G_TYPE_LONG; lcPointer : Cols[i] := G_TYPE_POINTER; lcPixbuf : Cols[i] := GDK_TYPE_PIXBUF; lcBoolean : Cols[i] := G_TYPE_BOOLEAN; end; FStore := gtk_list_store_newv(Length(ColumnTypes), @Cols); end; procedure TGTKListItems.SetColumnTypes(Types: array of TGTKListColumnType); var i: integer; Cols : array[0..255] of GType; begin for i := Low(Types) to High(Types) do case Types[i] of lcText : Cols[i] := G_TYPE_STRING; lcNumber : Cols[i] := G_TYPE_LONG; lcPointer : Cols[i] := G_TYPE_POINTER; lcPixbuf : Cols[i] := GDK_TYPE_PIXBUF; lcBoolean : Cols[i] := G_TYPE_BOOLEAN; end; g_object_unref(PGObject(FStore)); FStore := gtk_list_store_newv(Length(Types), @Cols); (FOwner as TGTKListView).Recreate; end; function TGTKListItems.GetItem(Index: longint): TGTKListItem; begin Result := TGTKListItem(FList[Index]); Result.FIndex := Index; end; procedure TGTKListItems.SetItem(Index: longint; Value: TGTKListItem); begin FList[Index] := Value; end; function TGTKListItems.Add: TGTKListItem; begin Result := TGTKListItem.Create(Self); Result.FIndex := GetCount; // Insert(GetCount, Result); Append(Result); end; function TGTKListItems.GetCount: longint; begin Result := FList.Count; end; procedure TGTKListItems.Clear; var i: longint; begin for i := Count - 1 downto 0 do Delete(i); // !!!! DON'T use here gtk_list_store_clear(FStore), because it causes memory leaks !!!! end; procedure TGTKListItems.Delete(Index: longint); var x: pointer; Iter: TGtkTreeIter; begin x := FList[Index]; if gtk_tree_model_get_iter_from_string(PGtkTreeModel(FStore), @Iter, StringToPgchar(IntToStr(Index))) then begin // (FOwner as TGTKView).CovertSortableIter(Iter); gtk_list_store_remove(FStore, @Iter); end; FList.Delete(Index); TObject(x).Free; end; procedure TGTKListItems.Insert(Index: longint; Item: TGTKListItem); var Iter: TGtkTreeIter; begin FList.Insert(Index, Item); gtk_list_store_insert(FStore, @Iter, Index); end; procedure TGTKListItems.Append(Item: TGTKListItem); var Iter: TGtkTreeIter; begin FList.Add(Item); gtk_list_store_append(FStore, @Iter); end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKTreeViewColumns.Create(AOwner: TComponent); begin inherited Create(AOwner); FOwner := AOwner; FList := TList.Create; end; destructor TGTKTreeViewColumns.Destroy; begin if not (csDestroying in ComponentState) then begin Clear; FList.Free; end; inherited Destroy; end; function TGTKTreeViewColumns.GetItem(Index: Integer): TGTKTreeViewColumn; begin Result := TGTKTreeViewColumn(FList[Index]); Result.FIndex := Index; end; procedure TGTKTreeViewColumns.SetItem(Index: Integer; Value: TGTKTreeViewColumn); begin FList[Index] := Value; end; function TGTKTreeViewColumns.Add: TGTKTreeViewColumn; begin Result := TGTKTreeViewColumn.Create(Self); Result.FIndex := GetCount; Insert(GetCount, Result); end; function TGTKTreeViewColumns.AddTyped(ColType: TGTKTreeViewColumnType): TGTKTreeViewColumn; begin Result := TGTKTreeViewColumn.CreateTyped(Self, ColType); Result.FIndex := GetCount; Insert(GetCount, Result); end; function TGTKTreeViewColumns.GetCount: Integer; begin Result := FList.Count; end; procedure TGTKTreeViewColumns.Clear; var i: Integer; begin for i := Count - 1 downto 0 do Delete(i); end; procedure TGTKTreeViewColumns.Delete(Index: Integer); var x : pointer; begin if not (csDestroying in ComponentState) then gtk_tree_view_remove_column(PGtkTreeView((FOwner as TGTKControl).FWidget), TGTKTreeViewColumn(FList[Index]).FColumn); x := FList[Index]; FList.Delete(Index); TObject(x).Free; end; procedure TGTKTreeViewColumns.Insert(Index: Integer; Item: TGTKTreeViewColumn); begin FList.Insert(Index, Item); Item.FIndex := Index; gtk_tree_view_insert_column(PGtkTreeView((FOwner as TGTKControl).FWidget), Item.FColumn, Index); if Assigned((FOwner as TGTKView).FTreeModelSort) then gtk_tree_sortable_set_sort_func(PGtkTreeSortable((FOwner as TGTKView).FTreeModelSort), Index, TGtkTreeIterCompareFunc(@GtkTreeIterCompareFunc), FOwner, nil); gtk_tree_view_column_set_cell_data_func(Item.FColumn, Item.FRenderer, @CellDataFunc, (FOwner as TGTKView), nil); if Item.ColumnType = ctImageText then gtk_tree_view_column_set_cell_data_func(Item.FColumn, Item.FPixbufRenderer, @CellDataFunc, (FOwner as TGTKView), nil); end; procedure TGTKTreeViewColumns.AutosizeColumns; begin gtk_tree_view_columns_autosize(PGtkTreeView((FOwner as TGTKControl).FWidget)); end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKTreeViewColumn.Create(AOwner: TComponent); begin inherited Create(AOwner); FOwner := AOwner; FColumn := gtk_tree_view_column_new; FRenderer := nil; FPixbufRenderer := nil; FOnEdited := nil; FOnToggled := nil; FOnClicked := nil; SetColumnType(ctText); end; constructor TGTKTreeViewColumn.CreateTyped(AOwner: TComponent; ColType: TGTKTreeViewColumnType); begin inherited Create(AOwner); FOwner := AOwner; FColumn := gtk_tree_view_column_new; FRenderer := nil; FPixbufRenderer := nil; FOnEdited := nil; FOnToggled := nil; FOnClicked := nil; SetColumnType(ColType); end; destructor TGTKTreeViewColumn.Destroy; begin if not (csDestroying in ComponentState) then begin gtk_object_destroy(PGtkObject(FRenderer)); if GTK_IS_OBJECT(FColumn) then gtk_object_destroy(PGtkObject(FColumn)); end; inherited Destroy; end; function TGTKTreeViewColumn.GetCaption: string; begin Result := PgcharToString(gtk_tree_view_column_get_title(FColumn)); end; procedure TGTKTreeViewColumn.SetCaption(Value: string); begin gtk_tree_view_column_set_title(FColumn, StringToPgchar(Value)); end; function TGTKTreeViewColumn.GetVisible: boolean; begin Result := gtk_tree_view_column_get_visible(FColumn); end; procedure TGTKTreeViewColumn.SetVisible(Value: boolean); begin gtk_tree_view_column_set_visible(FColumn, Value); end; function TGTKTreeViewColumn.GetResizable: boolean; begin Result := gtk_tree_view_column_get_resizable(FColumn); end; procedure TGTKTreeViewColumn.SetResizable(Value: boolean); begin gtk_tree_view_column_set_resizable(FColumn, Value); end; function TGTKTreeViewColumn.GetSizingMode: TGTKTreeViewColumnSizingMode; begin Result := TGTKTreeViewColumnSizingMode(gtk_tree_view_column_get_sizing(FColumn)); end; procedure TGTKTreeViewColumn.SetSizingMode(Value: TGTKTreeViewColumnSizingMode); begin gtk_tree_view_column_set_sizing(FColumn, TGtkTreeViewColumnSizing(Value)); end; function TGTKTreeViewColumn.GetWidth: integer; begin Result := gtk_tree_view_column_get_width(FColumn); end; function TGTKTreeViewColumn.GetFixedWidth: integer; begin Result := gtk_tree_view_column_get_fixed_width(FColumn); end; procedure TGTKTreeViewColumn.SetFixedWidth(Value: integer); begin gtk_tree_view_column_set_fixed_width(FColumn, Value); end; function TGTKTreeViewColumn.GetMinWidth: integer; begin Result := gtk_tree_view_column_get_min_width(FColumn); end; procedure TGTKTreeViewColumn.SetMinWidth(Value: integer); begin gtk_tree_view_column_set_min_width(FColumn, Value); end; function TGTKTreeViewColumn.GetMaxWidth: integer; begin Result := gtk_tree_view_column_get_max_width(FColumn); end; procedure TGTKTreeViewColumn.SetMaxWidth(Value: integer); begin gtk_tree_view_column_set_max_width(FColumn, Value); end; function TGTKTreeViewColumn.GetClickable: boolean; begin Result := gtk_tree_view_column_get_clickable(FColumn); end; procedure TGTKTreeViewColumn.SetClickable(Value: boolean); begin gtk_tree_view_column_set_clickable(FColumn, Value); end; function TGTKTreeViewColumn.GetAlignment: Double; begin Result := gtk_tree_view_column_get_alignment(FColumn); end; procedure TGTKTreeViewColumn.SetAlignment(Value: Double); begin gtk_tree_view_column_set_alignment(FColumn, Value); end; function TGTKTreeViewColumn.GetReorderable: boolean; begin Result := gtk_tree_view_column_get_reorderable(FColumn); end; procedure TGTKTreeViewColumn.SetReorderable(Value: boolean); begin gtk_tree_view_column_set_reorderable(FColumn, Value); end; function TGTKTreeViewColumn.GetSortID: integer; begin Result := gtk_tree_view_column_get_sort_column_id(FColumn); end; procedure TGTKTreeViewColumn.SetSortID(Value: integer); begin gtk_tree_view_column_set_sort_column_id(FColumn, Value); end; function TGTKTreeViewColumn.GetShowSortIndicator: boolean; begin Result := gtk_tree_view_column_get_sort_indicator(FColumn); end; procedure TGTKTreeViewColumn.SetShowSortIndicator(Value: boolean); begin gtk_tree_view_column_set_sort_indicator(FColumn, Value); end; function TGTKTreeViewColumn.GetSortOrder: TGTKTreeViewSortOrder; begin Result := TGTKTreeViewSortOrder(gtk_tree_view_column_get_sort_order(FColumn)); end; procedure TGTKTreeViewColumn.SetSortOrder(Value: TGTKTreeViewSortOrder); begin gtk_tree_view_column_set_sort_order(FColumn, TGtkSortType(Value)); end; procedure TGTKTreeViewColumn_edited(cell: PGtkCellRendererText; const path_string, new_text: pgchar; data: gpointer); cdecl; var NewText: string; AllowChange: boolean; DataColumn, AIndex: integer; Path: PGtkTreePath; begin if Assigned(TGTKTreeViewColumn(data).FOnEdited) then begin NewText := PgcharToString(new_text); AllowChange := True; DataColumn := TGTKTreeViewColumn(data).FIndex; Path := gtk_tree_path_new_from_string(path_string); if not Assigned(Path) then Exit; if Application.GTKVersion_2_0_5_Up then AIndex := gtk_tree_path_get_indices(Path)^ else AIndex := StrToIntDef(String(gtk_tree_path_to_string(Path)), 0); TGTKTreeViewColumn(data).FOnEdited(TGTKTreeViewColumn(data), TGTKTreeViewColumn(data), ((TGTKTreeViewColumn(data).FOwner as TGTKTreeViewColumns).FOwner as TGTKListView).Items[AIndex], NewText, AllowChange, DataColumn); if AllowChange and (((TGTKTreeViewColumn(data).FOwner as TGTKTreeViewColumns).FOwner as TGTKListView).Items.Count < AIndex) then ((TGTKTreeViewColumn(data).FOwner as TGTKTreeViewColumns).FOwner as TGTKListView).Items[AIndex].SetValue(DataColumn, NewText); gtk_tree_path_free(Path); end; end; procedure TGTKTreeViewColumn_toggled(cell: PGtkCellRendererToggle; const path_string: pgchar; data: gpointer); cdecl; var Path: PGtkTreePath; AIndex: integer; begin if Assigned(data) and Assigned(TGTKTreeViewColumn(data).FOnToggled) then begin Path := gtk_tree_path_new_from_string(path_string); if not Assigned(Path) then Exit; if Application.GTKVersion_2_0_5_Up then AIndex := gtk_tree_path_get_indices(Path)^ else AIndex := StrToIntDef(String(gtk_tree_path_to_string(Path)), 0); TGTKTreeViewColumn(data).FOnToggled(TGTKTreeViewColumn(data), TGTKTreeViewColumn(data), ((TGTKTreeViewColumn(data).FOwner as TGTKTreeViewColumns).FOwner as TGTKListView).Items[AIndex]); end; end; procedure TGTKTreeViewColumn_clicked(treeviewcolumn: PGtkTreeViewColumn; user_data: gpointer); cdecl; begin if Assigned(user_data) and Assigned(TGTKTreeViewColumn(user_data).FOnClicked) then TGTKTreeViewColumn(user_data).FOnClicked(TGTKTreeViewColumn(user_data)); end; procedure TGTKTreeViewColumn.SetColumnType(Value: TGTKTreeViewColumnType); begin FColumnType := Value; if Assigned(FRenderer) then begin gtk_tree_view_column_clear(FColumn); gtk_object_destroy(PGtkObject(FRenderer)); end; case Value of ctText : FRenderer := gtk_cell_renderer_text_new; ctToggle : FRenderer := gtk_cell_renderer_toggle_new; ctImageText : begin FRenderer := gtk_cell_renderer_text_new; FPixbufRenderer := gtk_cell_renderer_pixbuf_new; end; end; if Value = ctImageText then gtk_tree_view_column_pack_start(FColumn, FPixbufRenderer, False); gtk_tree_view_column_pack_start(FColumn, FRenderer, True); if (Value = ctImageText) or (Value = ctText) then g_signal_connect(FRenderer, 'edited', G_CALLBACK(@TGTKTreeViewColumn_edited), Self); if Value = ctToggle then g_signal_connect(FRenderer, 'toggled', G_CALLBACK(@TGTKTreeViewColumn_toggled), Self); g_signal_connect_after(FColumn, 'clicked', G_CALLBACK(@TGTKTreeViewColumn_clicked), Self); end; procedure TGTKTreeViewColumn.AddAttribute(Attribute: string; Value: integer); begin gtk_tree_view_column_add_attribute(FColumn, FRenderer, StringToPgchar(Attribute), Value); end; procedure TGTKTreeViewColumn.AddImageAttribute(Attribute: string; Value: integer); begin gtk_tree_view_column_add_attribute(FColumn, FPixbufRenderer, StringToPgchar(Attribute), Value); end; procedure TGTKTreeViewColumn.ClearAttributes; begin gtk_tree_view_column_clear_attributes(FColumn, FRenderer); end; procedure TGTKTreeViewColumn.SetProperty(AProperty: string; Value: integer); var AValue: TGValue; begin AValue.g_type := G_TYPE_LONG; AValue.data[0].v_long := Value; g_object_set_property(PGObject(FRenderer), StringToPgchar(AProperty), @AValue); end; procedure TGTKTreeViewColumn.SetProperty(AProperty: string; Value: string); var AValue: TGValue; begin AValue.g_type := G_TYPE_STRING; AValue.data[0].v_pointer := StringToPgchar(Value); g_object_set_property(PGObject(FRenderer), StringToPgchar(AProperty), @AValue); end; procedure TGTKTreeViewColumn.SetProperty(AProperty: string; Value: Double); var AValue: TGValue; begin AValue.g_type := G_TYPE_DOUBLE; AValue.data[0].v_double := Value; g_object_set_property(PGObject(FRenderer), StringToPgchar(AProperty), @AValue); end; procedure TGTKTreeViewColumn.SetProperty(AProperty: string; Value: pointer); var AValue: TGValue; begin AValue.g_type := G_TYPE_POINTER; AValue.data[0].v_pointer := Value; g_object_set_property(PGObject(FRenderer), StringToPgchar(AProperty), @AValue); end; procedure TGTKTreeViewColumn.SetImageProperty(AProperty: string; Value: integer); var AValue: TGValue; begin AValue.g_type := G_TYPE_LONG; AValue.data[0].v_long := Value; g_object_set_property(PGObject(FPixbufRenderer), StringToPgchar(AProperty), @AValue); end; procedure TGTKTreeViewColumn.SetImageProperty(AProperty: string; Value: string); var AValue: TGValue; begin AValue.g_type := G_TYPE_STRING; AValue.data[0].v_pointer := StringToPgchar(Value); g_object_set_property(PGObject(FPixbufRenderer), StringToPgchar(AProperty), @AValue); end; procedure TGTKTreeViewColumn.SetImageProperty(AProperty: string; Value: Double); var AValue: TGValue; begin AValue.g_type := G_TYPE_DOUBLE; AValue.data[0].v_double := Value; g_object_set_property(PGObject(FPixbufRenderer), StringToPgchar(AProperty), @AValue); end; procedure TGTKTreeViewColumn.SetImageProperty(AProperty: string; Value: pointer); var AValue: TGValue; begin AValue.g_type := G_TYPE_POINTER; AValue.data[0].v_pointer := Value; g_object_set_property(PGObject(FPixbufRenderer), StringToPgchar(AProperty), @AValue); end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKListItem.Create(AOwner: TComponent); begin inherited Create(AOwner); FOwner := AOwner; FData := nil; end; destructor TGTKListItem.Destroy; begin inherited Destroy; end; function TGTKListItem.AsString(Index: longint): string; var Iter: TGtkTreeIter; AValue: TGValue; begin Result := ''; if gtk_tree_model_get_iter_from_string(PGtkTreeModel((FOwner as TGTKListItems).FStore), @Iter, StringToPgchar(IntToStr(FIndex))) then begin AValue.g_type := 0; gtk_tree_model_get_value(PGtkTreeModel((FOwner as TGTKListItems).FStore), @Iter, Index, @AValue); Result := PgcharToString(AValue.data[0].v_pointer); end; end; function TGTKListItem.AsInteger(Index: longint): integer; var Iter: TGtkTreeIter; AValue: TGValue; begin Result := 0; if gtk_tree_model_get_iter_from_string(PGtkTreeModel((FOwner as TGTKListItems).FStore), @Iter, StringToPgchar(IntToStr(FIndex))) then begin AValue.g_type := 0; gtk_tree_model_get_value(PGtkTreeModel((FOwner as TGTKListItems).FStore), @Iter, Index, @AValue); Result := AValue.data[0].v_long; end; end; function TGTKListItem.AsPointer(Index: longint): pointer; var Iter: TGtkTreeIter; AValue: TGValue; begin Result := nil; if gtk_tree_model_get_iter_from_string(PGtkTreeModel((FOwner as TGTKListItems).FStore), @Iter, StringToPgchar(IntToStr(FIndex))) then begin AValue.g_type := 0; gtk_tree_model_get_value(PGtkTreeModel((FOwner as TGTKListItems).FStore), @Iter, Index, @AValue); Result := AValue.data[0].v_pointer; end; end; function TGTKListItem.AsBoolean(Index: longint): boolean; var Iter: TGtkTreeIter; AValue: TGValue; begin Result := False; if gtk_tree_model_get_iter_from_string(PGtkTreeModel((FOwner as TGTKListItems).FStore), @Iter, StringToPgchar(IntToStr(FIndex))) then begin AValue.g_type := 0; gtk_tree_model_get_value(PGtkTreeModel((FOwner as TGTKListItems).FStore), @Iter, Index, @AValue); Result := boolean(AValue.data[0].v_int); end; end; procedure TGTKListItem.SetValue(Index: longint; Value: string); var Iter: TGtkTreeIter; begin if gtk_tree_model_get_iter_from_string(PGtkTreeModel((FOwner as TGTKListItems).FStore), @Iter, StringToPgchar(IntToStr(FIndex))) then gtk_list_store_set(PGtkTreeModel((FOwner as TGTKListItems).FStore), @Iter, Index, StringToPgchar(Value), -1); end; procedure TGTKListItem.SetValue(Index: longint; Value: integer); var Iter: TGtkTreeIter; begin if gtk_tree_model_get_iter_from_string(PGtkTreeModel((FOwner as TGTKListItems).FStore), @Iter, StringToPgchar(IntToStr(FIndex))) then gtk_list_store_set(PGtkTreeModel((FOwner as TGTKListItems).FStore), @Iter, Index, Value, -1); end; procedure TGTKListItem.SetValue(Index: longint; Value: pointer); var Iter: TGtkTreeIter; begin if gtk_tree_model_get_iter_from_string(PGtkTreeModel((FOwner as TGTKListItems).FStore), @Iter, StringToPgchar(IntToStr(FIndex))) then gtk_list_store_set(PGtkTreeModel((FOwner as TGTKListItems).FStore), @Iter, Index, Value, -1); end; procedure TGTKListItem.SetValue(Index: longint; Value: boolean); var Iter: TGtkTreeIter; begin if gtk_tree_model_get_iter_from_string(PGtkTreeModel((FOwner as TGTKListItems).FStore), @Iter, StringToPgchar(IntToStr(FIndex))) then gtk_list_store_set(PGtkTreeModel((FOwner as TGTKListItems).FStore), @Iter, Index, Value, -1); end; function TGTKListItem.GetSelected: boolean; var Iter: TGtkTreeIter; begin Result := False; if gtk_tree_model_get_iter_from_string(PGtkTreeModel((FOwner as TGTKListItems).FStore), @Iter, StringToPgchar(IntToStr(FIndex))) then begin // ((FOwner as TGTKListItems).FOwner as TGTKView).ConvertSortableIter(Iter); Result := gtk_tree_selection_iter_is_selected(((FOwner as TGTKListItems).FOwner as TGTKView).FSelection, @Iter); end; end; procedure TGTKListItem.SetSelected(Value: boolean); var Iter, NewIter: TGtkTreeIter; Path: PGtkTreePath; begin try if not Application.GTKVersion_2_0_5_Up then begin Path := gtk_tree_path_new_from_string(StringToPgchar(IntToStr(FIndex))); ((FOwner as TGTKListItems).FOwner as TGTKView).ConvertChildToPath(Path); gtk_tree_selection_select_path(((FOwner as TGTKListItems).FOwner as TGTKView).FSelection, Path); gtk_tree_path_free(Path); end else if gtk_tree_model_get_iter_from_string(PGtkTreeModel((FOwner as TGTKListItems).FStore), @Iter, StringToPgchar(IntToStr(FIndex))) then begin if Assigned(((FOwner as TGTKListItems).FOwner as TGTKView).FTreeModelSort) then begin gtk_tree_model_sort_convert_child_iter_to_iter(((FOwner as TGTKListItems).FOwner as TGTKView).FTreeModelSort, @NewIter, @Iter); Iter := NewIter; end; if Value then gtk_tree_selection_select_iter(((FOwner as TGTKListItems).FOwner as TGTKView).FSelection, @Iter) else gtk_tree_selection_unselect_iter(((FOwner as TGTKListItems).FOwner as TGTKView).FSelection, @Iter); end; except end; end; procedure TGTKListItem.SetCursor(const FocusColumnNo: integer; const StartEditing, UseAlignment: boolean; const AlignX, AlignY: Double); var Path: PGtkTreePath; Column: PGtkTreeViewColumn; // Renderer: PGtkCellRenderer; i : integer; begin Path := gtk_tree_path_new_from_string(StringToPgchar(IntToStr(FIndex))); if not Assigned(Path) then Exit; ((FOwner as TGTKListItems).FOwner as TGTKView).ConvertChildToPath(Path); if not Assigned(Path) then Exit; Column := ((FOwner as TGTKListItems).FOwner as TGTKView).Columns[FocusColumnNo].FColumn; // Renderer := ((FOwner as TGTKListItems).FOwner as TGTKView).Columns[FocusColumnNo].FRenderer; // if not Application.GTKVersion_2_0_5_Up then for i := 1 to 2 do gtk_main_iteration_do(False); // This ugly piece of code HAVE TO BE HERE due some focus-related problems in GtkTreeView gtk_tree_view_set_cursor(PGtkTreeView(((FOwner as TGTKListItems).FOwner as TGTKView).FWidget), Path, Column, StartEditing); // gtk_tree_view_set_cursor(PGtkTreeView(((FOwner as TGTKListItems).FOwner as TGTKView).FWidget), Path, Column, StartEditing); // gtk_tree_view_set_cursor_on_cell(PGtkTreeView(((FOwner as TGTKListItems).FOwner as TGTKView).FWidget), Path, Column, Renderer, StartEditing); gtk_tree_view_scroll_to_cell(PGtkTreeView(((FOwner as TGTKListItems).FOwner as TGTKView).FWidget), Path, nil, UseAlignment, AlignX, AlignY); gtk_tree_path_free(Path); end; procedure TGTKListItem.StartEditing(ColumnNo: integer); var CellEditable: PGtkCellEditable; Path: PGtkTreePath; Column: PGtkTreeViewColumn; BackgroundRect, CellRect: TGdkRectangle; begin Path := gtk_tree_path_new_from_string(StringToPgchar(IntToStr(FIndex))); if not Assigned(Path) then Exit; ((FOwner as TGTKListItems).FOwner as TGTKView).ConvertChildToPath(Path); if not Assigned(Path) then Exit; Column := ((FOwner as TGTKListItems).FOwner as TGTKView).Columns[ColumnNo].FColumn; gtk_tree_view_get_background_area(PGtkTreeView(((FOwner as TGTKListItems).FOwner as TGTKView).FWidget), Path, Column, @BackgroundRect); gtk_tree_view_get_cell_area(PGtkTreeView(((FOwner as TGTKListItems).FOwner as TGTKView).FWidget), Path, Column, @CellRect); gtk_tree_view_column_focus_cell(Column, ((FOwner as TGTKListItems).FOwner as TGTKView).Columns[ColumnNo].FRenderer); CellEditable := gtk_cell_renderer_start_editing(((FOwner as TGTKListItems).FOwner as TGTKView).Columns[ColumnNo].FRenderer, nil, ((FOwner as TGTKListItems).FOwner as TGTKView).FWidget, PChar(StringToPgchar(IntToStr(FIndex))), @BackgroundRect, @CellRect, {GTK_CELL_RENDERER_SELECTED or GTK_CELL_RENDERER_SORTED} 0); gtk_widget_show(CellEditable); // gtk_cell_editable_start_editing(CellEditable, nil); gtk_tree_path_free(Path); end; procedure TGTKListItem.RedrawRow; var Rect, BackgroundRect: TGdkRectangle; Path: PGtkTreePath; Column: PGtkTreeViewColumn; begin Path := gtk_tree_path_new_from_string(StringToPgchar(IntToStr(FIndex))); if not Assigned(Path) then Exit; ((FOwner as TGTKListItems).FOwner as TGTKView).ConvertChildToPath(Path); if not Assigned(Path) then Exit; Column := ((FOwner as TGTKListItems).FOwner as TGTKView).Columns[0].FColumn; gtk_tree_view_get_background_area(PGtkTreeView(((FOwner as TGTKListItems).FOwner as TGTKView).FWidget), Path, Column, @BackgroundRect); Rect.x := 0; Rect.width := ((FOwner as TGTKListItems).FOwner as TGTKView).FWidget^.allocation.width; Rect.y := BackgroundRect.y; Rect.height := BackgroundRect.height; gdk_window_invalidate_rect(gtk_tree_view_get_bin_window(PGtkTreeView(((FOwner as TGTKListItems).FOwner as TGTKView).FWidget)), @Rect, True); gtk_tree_path_free(Path); end; function TGTKListItem.IsVisible: boolean; var CellRect, VisibleRect: TGdkRectangle; Path: PGtkTreePath; begin Result := False; gtk_tree_view_get_visible_rect(PGtkTreeView(((FOwner as TGTKListItems).FOwner as TGTKView).FWidget), @VisibleRect); if not Assigned(Path) then Exit; Path := gtk_tree_path_new_from_string(StringToPgchar(IntToStr(FIndex))); ((FOwner as TGTKListItems).FOwner as TGTKView).ConvertChildToPath(Path); if not Assigned(Path) then Exit; gtk_tree_view_get_background_area(PGtkTreeView(((FOwner as TGTKListItems).FOwner as TGTKView).FWidget), Path, nil, @CellRect); gtk_tree_path_free(Path); Result := (CellRect.y > VisibleRect.y) and (CellRect.y + CellRect.height < VisibleRect.y + VisibleRect.height); end; (********************************************************************************************************************************) (********************************************************************************************************************************) end. tuxcmd-0.6.70+dfsg/libgtk_kylix/GTKForms.pas0000644000175000017500000007355411300022643017707 0ustar salvisalvi(* GTK-Kylix Library: GTKForms - Basic windows (TGTKForm, TGTKDialog), TGTKApplication, TGDKScreen Version 0.6.28 (last updated 2008-10-12) Copyright (C) 2007 Tomas Bzatek This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 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 Library General Public License for more details. You should have received a copy of the GNU Library 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. *) unit GTKForms; interface uses gtk2, gdk2, glib2, Classes, SysUtils, GTKControls, GTKConsts; type // Some basic types PCharArray = array[0..0] of PChar; __pthread_t = {$ifdef cpu64}QWord{$else}DWord{$endif}; TCustomGTKForm = class; (****************************************** TGDKSCREEN **************************************************************************) TGDKScreen = class(TComponent) private FForms: TList; FActiveForm: TCustomGTKForm; procedure AddForm(AForm: TCustomGTKForm); function GetForm(Index: Integer): TCustomGTKForm; function GetFormCount: Integer; procedure RemoveForm(AForm: TCustomGTKForm); function GetHeight: Integer; function GetWidth: Integer; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; property ActiveForm: TCustomGTKForm read FActiveForm; property FormCount: Integer read GetFormCount; property Forms[Index: Integer]: TCustomGTKForm read GetForm; property Height: Integer read GetHeight; property Width: Integer read GetWidth; end; (****************************************** TGTKFORM ****************************************************************************) TCloseAction = (caNone, caHide, caFree, caMinimize); TCloseEvent = procedure(Sender: TObject; var Action: TCloseAction) of object; TCloseQueryEvent = procedure(Sender: TObject; var CanClose: Boolean) of object; TWindowPosition = (wpNone, wpCenter, wpMouse, wpCenterAlways, wpCenterOnParent); TGDKWindowState = (wsNormal, wsState1, wsMinimized, wsState2, wsMaximized); TGDKWindowTypeHint = (whNormal, whDialog, whToolbar, whSplashScreen, whUtility, whDock, whDesktop); TCustomGTKForm = class(TGTKBin) procedure FormCreate(Sender: TObject); dynamic; private FOnClose: TCloseEvent; FOnCloseQuery: TCloseQueryEvent; FOnResize: TNotifyEvent; FOnShow: TNotifyEvent; FCaption: string; FOnDestroy: TNotifyEvent; function GetWindowPosition: TWindowPosition; function GetResizeable: boolean; function GetWindowTypeHint: TGDKWindowTypeHint; function GetWindowState: TGDKWindowState; function GetLeft: integer; function GetTop: integer; function GetWidth: integer; function GetHeight: integer; procedure SetVisible(Value: Boolean); procedure SetCaption(Value: string); procedure SetWindowPosition(Value: TWindowPosition); procedure SetResizeable(Value: Boolean); procedure SetWindowTypeHint(Value: TGDKWindowTypeHint); procedure SetLeft(Value: integer); procedure SetTop(Value: integer); procedure SetWidth(Value: integer); procedure SetHeight(Value: integer); procedure SetDefault(Value: TGTKControl); protected procedure DoClose(var Action: TCloseAction); dynamic; property Visible write SetVisible default False; property OnClose: TCloseEvent read FOnClose write FOnClose; property OnCloseQuery: TCloseQueryEvent read FOnCloseQuery write FOnCloseQuery; property OnResize: TNotifyEvent read FOnResize write FOnResize; property OnShow: TNotifyEvent read FOnShow write FOnShow; property Caption: string read FCaption write SetCaption; property WindowPosition: TWindowPosition read GetWindowPosition write SetWindowPosition; property Resizeable: boolean read GetResizeable write SetResizeable; property OnDestroy: TNotifyEvent read FOnDestroy write FOnDestroy; property WindowTypeHint: TGDKWindowTypeHint read GetWindowTypeHint write SetWindowTypeHint; property WindowState: TGDKWindowState read GetWindowState; property Left: integer read GetLeft write SetLeft; property Top: integer read GetTop write SetTop; property Width: integer read GetWidth write SetWidth; property Height: integer read GetHeight write SetHeight; property Default: TGTKControl write SetDefault; public FAccelGroup: PGtkAccelGroup; Tooltips: TGTKTooltips; constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure Release; function Close: boolean; procedure ShowModal; virtual; function CloseQuery: Boolean; virtual; procedure SetDefaultSize(DefaultWidth, DefaultHeight: integer); procedure SetTransientFor(Parent: TCustomGTKForm); procedure Maximize; procedure Unmaximize; procedure Minimize; procedure Unminimize; procedure Stick; procedure Unstick; procedure WindowMove(ALeft, ATop: integer); procedure Resize(AWidth, AHeight: integer); end; TGTKForm = class(TCustomGTKForm) public constructor Create(AOwner: TComponent); override; procedure Show; virtual; procedure Hide; end; (****************************************** TGTKDIALOG **************************************************************************) TMessageButton = (mbYes, mbNo, mbOK, mbCancel, mbApply, mbClose, mbHelp, mbPrint, mbQuit, mbStop, mbBack, mbForward, mbNone); TMessageButtons = set of TMessageButton; TGTKDialogResponseEvent = procedure(Sender: TObject; const ResponseID: integer) of object; TGTKDialog = class(TCustomGTKForm) private FButtons: TMessageButtons; FOnResponse: TGTKDialogResponseEvent; function GetShowSeparator: boolean; procedure SetButtons(Value: TMessageButtons); procedure SetShowSeparator(Value: boolean); procedure SetModalResult(Value: TMessageButton); procedure SetDefaultButton(Value: TMessageButton); procedure SetParentForm(Value: TCustomGTKForm); public ClientArea: TGTKVBox; ActionArea: TGTKHBox; constructor Create(AOwner: TComponent); override; function Run: TMessageButton; procedure AddButton(ButtonCaption: string; ButtonID: integer); procedure SetResponseSensitive(ButtonID: integer; Sensitive: boolean); published property Buttons: TMessageButtons read FButtons write SetButtons default []; property ShowSeparator: boolean read GetShowSeparator write SetShowSeparator; property ModalResult: TMessageButton write SetModalResult; property DefaultButton: TMessageButton write SetDefaultButton; property Caption; property OnResponse: TGTKDialogResponseEvent read FOnResponse write FOnResponse; property ParentForm: TCustomGTKForm write SetParentForm; end; (****************************************** TGTKAPPLICATION *********************************************************************) TMessageStyle = (mbError, mbInfo, mbQuestion, mbWarning); TExceptionEvent = procedure (Sender: TObject; E: Exception) of object; TGTKApplication = class(TComponent) private FTerminated: Boolean; FOnException: TExceptionEvent; FMainForm: TCustomGTKForm; FMainFormSet, FGTK205Up, FGTK220Up, FGTK240Up, FGTK260Up, FGTK280Up: Boolean; FThreadID: __pthread_t; procedure Quit; protected procedure CreateHandle; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure ControlDestroyed(Control: TGTKControl); procedure CreateForm(InstanceClass: TComponentClass; var Reference); procedure HandleException(Sender: TObject); procedure HandleMessage; procedure HookSynchronizeWakeup; procedure Initialize; function MessageBox(const Text: string; Buttons: TMessageButtons = [mbOK]; Style: TMessageStyle = mbInfo; Default: TMessageButton = mbNone; Escape: TMessageButton = mbNone): TMessageButton; overload; function MessageBox(ParentWindow: PGtkWindow; const Text: string; Buttons: TMessageButtons = [mbOK]; Style: TMessageStyle = mbInfo; Default: TMessageButton = mbNone; Escape: TMessageButton = mbNone): TMessageButton; overload; procedure ProcessMessages; procedure Run; procedure ShowException(E: Exception); procedure Terminate; procedure UnhookSynchronizeWakeup; property MainForm: TCustomGTKForm read FMainForm; property Terminated: Boolean read FTerminated; property OnException: TExceptionEvent read FOnException write FOnException; published property GTKVersion_2_0_5_Up: boolean read FGTK205Up; property GTKVersion_2_2_0_Up: boolean read FGTK220Up; property GTKVersion_2_4_0_Up: boolean read FGTK240Up; property GTKVersion_2_6_0_Up: boolean read FGTK260Up; property GTKVersion_2_8_0_Up: boolean read FGTK280Up; property ThreadID: __pthread_t read FThreadID; end; { Global objects } var Application: TGTKApplication; Screen: TGDKScreen; Argc: Integer; Argv: PPChar; function GetParentForm(Control: TGTKControl): TCustomGTKForm; (********************************************************************************************************************************) (********************************************************************************************************************************) (********************************************************************************************************************************) (********************************************************************************************************************************) implementation uses GTKUtils; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGDKScreen.Create(AOwner: TComponent); begin inherited Create(AOwner); FForms := TList.Create; FActiveForm := nil; end; destructor TGDKScreen.Destroy; begin FForms.Free; inherited Destroy; end; procedure TGDKScreen.AddForm(AForm: TCustomGTKForm); begin FForms.Add(AForm); end; function TGDKScreen.GetForm(Index: Integer): TCustomGTKForm; begin Result := FForms[Index]; end; function TGDKScreen.GetFormCount: Integer; begin Result := FForms.Count; end; procedure TGDKScreen.RemoveForm(AForm: TCustomGTKForm); begin FForms.Remove(AForm); end; function TGDKScreen.GetHeight: Integer; begin Result := gdk_screen_height; end; function TGDKScreen.GetWidth: Integer; begin Result := gdk_screen_width; end; (********************************************************************************************************************************) (********************************************************************************************************************************) function TCustomGTKForm_delete_event(widget: PGtkWidget; event: PGdkEvent; user_data: gpointer): gboolean; cdecl; begin Result := not TCustomGTKForm(user_data).Close; end; procedure TCustomGTKForm_show(anobject : PGtkObject; user_data: pgpointer); cdecl; begin if Assigned(TCustomGTKForm(user_data).FOnShow) then TCustomGTKForm(user_data).FOnShow(TCustomGTKForm(user_data)); end; procedure TCustomGTKForm_size_allocate(widget : PGtkWidget; allocation : PGtkAllocation; user_data : gpointer); cdecl; begin if Assigned(TCustomGTKForm(user_data).FOnResize) then TCustomGTKForm(user_data).FOnResize(TCustomGTKForm(user_data)); end; constructor TCustomGTKForm.Create(AOwner: TComponent); begin inherited Create(AOwner); Tooltips := TGTKTooltips.Create(Self); FOnClose := nil; FOnCloseQuery := nil; FOnDestroy := nil; FCaption := ''; FAccelGroup := gtk_accel_group_new; Screen.AddForm(Self); end; destructor TCustomGTKForm.Destroy; begin try Screen.RemoveForm(Self); if Assigned(FOnDestroy) then FOnDestroy(Self); except end; Tooltips.Free; if not Application.Terminated then gtk_widget_destroy(FWidget); inherited Destroy; end; procedure TCustomGTKForm.SetVisible(Value: Boolean); begin inherited Visible := Value; end; function TCustomGTKForm.Close: boolean; var CloseAction: TCloseAction; begin CloseAction := caFree; if CloseQuery then begin DoClose(CloseAction); if CloseAction <> caNone then if Application.MainForm = Self then Application.Terminate else if CloseAction = caHide then Hide { else if CloseAction = caMinimize then WindowState := wsMinimized } else Release; end else CloseAction := caNone; Result := CloseAction = caFree; end; function TCustomGTKForm.CloseQuery: Boolean; begin Result := True; if Assigned(FOnCloseQuery) then FOnCloseQuery(Self, Result); end; procedure TCustomGTKForm.DoClose(var Action: TCloseAction); begin if Assigned(FOnClose) then FOnClose(Self, Action); end; procedure TCustomGTKForm.Release; begin // SetParent(nil); // if Assigned(FWidget) and GTK_IS_WIDGET(FWidget) then gtk_widget_destroy(PGtkWidget(FWidget)); end; procedure TCustomGTKForm.FormCreate(Sender: TObject); begin // Dummy procedure, override it in ordinary instance if needed end; procedure TCustomGTKForm.SetCaption(Value: string); begin FCaption := Value; gtk_window_set_title(PGtkWindow(FWidget), PChar(Value)); end; function TCustomGTKForm.GetWindowPosition: TWindowPosition; begin Result := TWindowPosition(position(PGtkWindow(FWidget)^)); end; procedure TCustomGTKForm.SetWindowPosition(Value: TWindowPosition); begin gtk_window_set_position(PGtkWindow(FWidget), TGtkWindowPosition(Value)); end; function TCustomGTKForm.GetResizeable: boolean; begin Result := gtk_window_get_resizable(PGtkWindow(FWidget)); end; procedure TCustomGTKForm.SetResizeable(Value: Boolean); begin gtk_window_set_resizable(PGtkWindow(FWidget), Value); end; procedure TCustomGTKForm.SetDefaultSize(DefaultWidth, DefaultHeight: integer); begin gtk_window_set_default_size(PGtkWindow(FWidget), DefaultWidth, DefaultHeight); end; procedure TCustomGTKForm.SetTransientFor(Parent: TCustomGTKForm); begin if Assigned(Parent) and Assigned(Parent.FWidget) then gtk_window_set_transient_for(PGtkWindow(FWidget), PGtkWindow(Parent.FWidget)); end; procedure TCustomGTKForm.ShowModal; begin gtk_window_set_modal(PGtkWindow(FWidget), True); if Assigned(Parent) and (Parent is TCustomGTKForm) then gtk_window_set_transient_for(PGtkWindow(FWidget), PGtkWindow(Parent.FWidget)); SetVisible(True); end; function TCustomGTKForm.GetWindowTypeHint: TGDKWindowTypeHint; begin Result := TGDKWindowTypeHint(gtk_window_get_type_hint(PGtkWindow(FWidget))); end; procedure TCustomGTKForm.SetWindowTypeHint(Value: TGDKWindowTypeHint); begin gtk_window_set_type_hint(PGtkWindow(FWidget), gdk2.TGdkWindowTypeHint(Value)); end; function TCustomGTKForm.GetWindowState: TGDKWindowState; begin Result := TGDKWindowState(gdk_window_get_state(PGdkWindow(FWidget^.window))); end; procedure TCustomGTKForm.Maximize; begin gtk_window_maximize(PGtkWindow(FWidget)); end; procedure TCustomGTKForm.Unmaximize; begin gtk_window_unmaximize(PGtkWindow(FWidget)); end; procedure TCustomGTKForm.Minimize; begin gtk_window_iconify(PGtkWindow(FWidget)); end; procedure TCustomGTKForm.Unminimize; begin gtk_window_deiconify(PGtkWindow(FWidget)); end; procedure TCustomGTKForm.Stick; begin gtk_window_stick(PGtkWindow(FWidget)); end; procedure TCustomGTKForm.Unstick; begin gtk_window_unstick(PGtkWindow(FWidget)); end; procedure TCustomGTKForm.WindowMove(ALeft, ATop: integer); begin gtk_window_move(PGtkWindow(FWidget), ALeft, ATop); end; function TCustomGTKForm.GetLeft: integer; var PosLeft, PosTop: integer; begin gtk_window_get_position(PGtkWindow(FWidget), @PosLeft, @PosTop); Result := PosLeft; end; function TCustomGTKForm.GetTop: integer; var PosLeft, PosTop: integer; begin gtk_window_get_position(PGtkWindow(FWidget), @PosLeft, @PosTop); Result := PosTop; end; function TCustomGTKForm.GetWidth: integer; var AWidth, AHeight: integer; begin gtk_window_get_size(PGtkWindow(FWidget), @AWidth, @AHeight); Result := AWidth; end; function TCustomGTKForm.GetHeight: integer; var AWidth, AHeight: integer; begin gtk_window_get_size(PGtkWindow(FWidget), @AWidth, @AHeight); Result := AHeight; end; procedure TCustomGTKForm.SetLeft(Value: integer); begin gtk_window_move(PGtkWindow(FWidget), Value, GetTop); end; procedure TCustomGTKForm.SetTop(Value: integer); begin gtk_window_move(PGtkWindow(FWidget), GetLeft, Value); end; procedure TCustomGTKForm.SetWidth(Value: integer); begin gtk_window_resize(PGtkWindow(FWidget), Value, GetHeight); end; procedure TCustomGTKForm.SetHeight(Value: integer); begin gtk_window_resize(PGtkWindow(FWidget), GetWidth, Value); end; procedure TCustomGTKForm.Resize(AWidth, AHeight: integer); begin gtk_window_resize(PGtkWindow(FWidget), AWidth, AHeight); end; procedure TCustomGTKForm.SetDefault(Value: TGTKControl); begin gtk_window_set_default(PGtkWindow(FWidget), Value.FWidget); end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKApplication.Create(AOwner: TComponent); begin inherited Create(AOwner); FMainForm := nil; FMainFormSet := False; if not Assigned(Classes.ApplicationHandleException) then Classes.ApplicationHandleException := HandleException; if not Assigned(Classes.ApplicationShowException) then Classes.ApplicationShowException := ShowException; CreateHandle; HookSynchronizeWakeup; FThreadID := 0; end; procedure my_g_thread_init(vtable:Pointer);cdecl;external 'libgthread-2.0.so' name 'g_thread_init'; procedure TGTKApplication.CreateHandle; var I: Integer; Temp: string; Ver : Pchar; begin Argc := ParamCount + 1; Argv := AllocMem((Argc + 1) * SizeOf(PChar)); for I := 0 to Argc - 1 do begin Temp := ParamStr(I); {$R-} PCharArray(Argv^)[I] := AllocMem(Length(Temp)+1); StrCopy(PCharArray(Argv^)[I], PChar(Temp)); {$R+} end; {$R-} PCharArray(Argv^)[Argc] := nil; {$R+} // Check for correct version of GTK+ library Ver := gtk_check_version(2, 8, 0); FGTK280Up := Ver = nil; if not FGTK280Up then Ver := gtk_check_version(2, 6, 0); FGTK260Up := Ver = nil; if not FGTK260Up then Ver := gtk_check_version(2, 4, 0); FGTK240Up := Ver = nil; if not FGTK240Up then Ver := gtk_check_version(2, 2, 0); FGTK220Up := Ver = nil; if not FGTK220Up then Ver := gtk_check_version(2, 0, 5); FGTK205Up := Ver = nil; if not FGTK220Up then WriteLn('Warning: Your version of GTK+ is old and some workarounds has been activated. It is recommended to update GTK libraries at least to 2.2.0'); if Ver <> nil then Ver := gtk_check_version(2, 0, 0); if Ver <> nil then WriteLn('Warning: There might be some problems with GTK+ library or version conflict.'); // Init threads my_g_thread_init(nil); (* ATTENTION: do not call gdk_threads_init(), it causes deadlocks and we don't really need it *) // gdk_threads_init; // Initialize the widget set gtk_init(@argc, @argv); { if not gtk_init_check(@argc, @argv) then begin WriteLn('Unable to initialize GTK+ interface. Make sure you have correctly installed all of GTK libraries and have set a valid X server in the DISPLAY variable.'); Halt(1); end; } end; destructor TGTKApplication.Destroy; type TExceptionEvent = procedure (E: Exception) of object; var P: TNotifyEvent; E: TExceptionEvent; begin UnhookSynchronizeWakeup; P := HandleException; if @P = @Classes.ApplicationHandleException then Classes.ApplicationHandleException := nil; E := ShowException; if @E = @Classes.ApplicationShowException then Classes.ApplicationShowException := nil; inherited Destroy; end; procedure TGTKApplication.HookSynchronizeWakeup; begin if not Assigned(Classes.WakeMainThread) then Classes.WakeMainThread := WakeMainThread; end; procedure TGTKApplication.UnhookSynchronizeWakeup; var P: TNotifyEvent; begin P := WakeMainThread; if @P = @Classes.WakeMainThread then Classes.WakeMainThread := nil; end; procedure TGTKApplication.HandleException(Sender: TObject); begin if ExceptObject is Exception then begin if not (ExceptObject is EAbort) then if Assigned(FOnException) then FOnException(Sender, Exception(ExceptObject)) else ShowException(Exception(ExceptObject)); end else SysUtils.ShowException(ExceptObject, ExceptAddr); end; procedure TGTKApplication.CreateForm(InstanceClass: TComponentClass; var Reference); var Instance: TComponent; begin Instance := TComponent(InstanceClass.NewInstance); TComponent(Reference) := Instance; try Instance.Create(Self); except TComponent(Reference) := nil; raise; end; if not FMainFormSet and (Instance is TCustomGTKForm) then begin // FMainForm will be set to the first form created by TForm.Create but // it will be reset by CreateForm if one was created early, such as through // a splash screen. This allows applications that don't use CreateForm to // still have a main form but preserve the semantics the first CreateForm // being the main form. { TCustomGTKForm(Instance).HandleNeeded; } FMainForm := TCustomGTKForm(Instance); { if TForm(Instance).ActiveControl = nil then TForm(Instance).SetFocusedControl(TForm(Instance));} FMainFormSet := True; end; end; procedure TGTKApplication.ControlDestroyed(Control: TGTKControl); begin if FMainForm = Control then FMainForm := nil; if Screen.FActiveForm = Control then Screen.FActiveForm := nil; end; procedure TGTKApplication.Initialize; begin end; // function GetCurrentThreadID: Integer; external 'libpthread.so.0' name 'pthread_self'; procedure TGTKApplication.ProcessMessages; begin while WordBool(gtk_events_pending) do gtk_main_iteration; // QApplication_processEvents(Handle); { if GetCurrentThreadID = Integer(MainThreadID) then CheckSynchronize; } end; procedure TGTKApplication.HandleMessage; begin // QApplication_processOneEvent(Handle); { if GetCurrentThreadID = Integer(MainThreadID) then CheckSynchronize; } end; procedure _exit(status: longint); cdecl; external 'libc.so.6' name '_exit'; function __pthread_self: __pthread_t; cdecl; external 'libpthread.so.0' name 'pthread_self'; procedure TGTKApplication.Run; begin repeat try // gdk_threads_enter; FThreadID := __pthread_self; gtk_main; // gdk_threads_leave; except on E : Exception do if E is EControlC then begin WriteLn('*** Exception: ', E.Message); _exit(1); Exit; end else HandleException(E); end; until Terminated; end; function TGTKApplication_MessageBox_key_press_event(widget: PGtkWidget; event: PGdkEventKey; user_data : gpointer): gboolean; cdecl; begin Result := False; if event^.keyval = GDK_ESCAPE then begin gtk_dialog_response(PGtkDialog(widget), integer(user_data)); // Beep; Result := True; end; end; function TGTKApplication.MessageBox(const Text: string; Buttons: TMessageButtons; Style: TMessageStyle; Default, Escape: TMessageButton): TMessageButton; var DialogParent: PGtkWindow; begin if Screen.FormCount > 0 then DialogParent := PGtkWindow(Screen.Forms[0].FWidget) else DialogParent := nil; Result := MessageBox(DialogParent, Text, Buttons, Style, Default, Escape); end; function TGTKApplication.MessageBox(ParentWindow: PGtkWindow; const Text: string; Buttons: TMessageButtons = [mbOK]; Style: TMessageStyle = mbInfo; Default: TMessageButton = mbNone; Escape: TMessageButton = mbNone): TMessageButton; const TMessageStyleID : array[0..3] of TGtkMessageType = (GTK_MESSAGE_ERROR, GTK_MESSAGE_INFO, GTK_MESSAGE_QUESTION, GTK_MESSAGE_WARNING); var Dialog: PGtkWidget; i: integer; begin if Application.Terminated then begin Result := Escape; Exit; end; Dialog := gtk_message_dialog_new(ParentWindow, GTK_DIALOG_MODAL or GTK_DIALOG_DESTROY_WITH_PARENT, TMessageStyleID[Integer(Style)], GTK_BUTTONS_NONE, StringToPgchar(Text)); for i := 1 to NumMessageButtons do if TMessageButton(i - 1) in Buttons then gtk_dialog_add_button(PGtkDialog(Dialog), MessageButtonID[i], i); if Escape <> mbNone then g_signal_connect(PGtkObject(Dialog), 'key-press-event', G_CALLBACK(@TGTKApplication_MessageBox_key_press_event), Pointer(Ord(Escape) + 1{MessageButtonID[Ord(Escape)]})); if Default <> mbNone then gtk_dialog_set_default_response(PGtkDialog(Dialog), Ord(Default)); Result := TMessageButton(gtk_dialog_run(PGtkDialog(Dialog)) - 1); gtk_widget_destroy(Dialog); end; procedure TGTKApplication.ShowException(E: Exception); var Msg: string; begin Msg := E.Message; if (Msg <> '') and (AnsiLastChar(Msg) = '.') then Delete(Msg, Length(Msg), 1); MessageBox(Format('An unhandled exception has occured: '#10' %s'#10#10'It is strongly recommended to save your data and quit the application.', [Msg]), [mbOk], mbError); end; procedure TGTKApplication.Terminate; begin if (not Application.Terminated) and CallTerminateProcs then begin FTerminated := True; Quit; end; end; procedure TGTKApplication.Quit; begin gtk_main_quit(); { // The user lost interest gtk_exit(0); } end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKForm.Create(AOwner: TComponent); begin inherited Create(AOwner); FWidget := gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_add_accel_group(PGtkWindow(FWidget), FAccelGroup); g_signal_connect(PGtkObject(FWidget), 'delete-event', G_CALLBACK(@TCustomGTKForm_delete_event), Self); g_signal_connect(PGtkObject(FWidget), 'size-allocate', G_CALLBACK(@TCustomGTKForm_size_allocate), Self); g_signal_connect(PGtkObject(FWidget), 'show', G_CALLBACK(@TCustomGTKForm_show), Self); Visible := False; SetResizeable(True); FormCreate(Self); if Visible then Show; end; procedure TGTKForm.Hide; begin SetVisible(False); end; procedure TGTKForm.Show; begin SetVisible(True); end; (********************************************************************************************************************************) (********************************************************************************************************************************) procedure TGTKDialog_response_event(dialog: PGtkDialog; arg1: gint; user_data: gpointer); cdecl; begin if Assigned(TGTKDialog(user_data).FOnResponse) then TGTKDialog(user_data).FOnResponse(TGTKDialog(user_data), arg1); end; constructor TGTKDialog.Create(AOwner: TComponent); begin inherited Create(AOwner); FWidget := gtk_dialog_new; if Assigned(AOwner) and (AOwner is TCustomGTKForm) then SetTransientFor(AOwner as TCustomGTKForm); FOnResponse := nil; gtk_window_add_accel_group(PGtkWindow(FWidget), FAccelGroup); g_signal_connect(PGtkObject(FWidget), 'delete-event', G_CALLBACK(@TCustomGTKForm_delete_event), Self); g_signal_connect(PGtkObject(FWidget), 'show', G_CALLBACK(@TCustomGTKForm_show), Self); g_signal_connect(PGtkObject(FWidget), 'response', G_CALLBACK(@TGTKDialog_response_event), Self); ClientArea := TGTKVBox.CreateLinked(Self, PGtkDialog(FWidget)^.vbox); ActionArea := TGTKHBox.CreateLinked(Self, PGtkDialog(FWidget)^.action_area); FButtons := []; Visible := False; SetResizeable(True); FormCreate(Self); if Visible then Show; end; function TGTKDialog.Run: TMessageButton; begin gtk_widget_show{_all}(FWidget); Result := TMessageButton(gtk_dialog_run(PGtkDialog(FWidget))); end; procedure TGTKDialog.SetButtons(Value: TMessageButtons); var i: integer; begin for i := 1 to NumMessageButtons do if TMessageButton(i - 1) in Value then gtk_dialog_add_button(PGtkDialog(FWidget), MessageButtonID[i], i - 1); end; function TGTKDialog.GetShowSeparator: boolean; begin Result := gtk_dialog_get_has_separator(PGtkDialog(FWidget)); end; procedure TGTKDialog.SetShowSeparator(Value: boolean); begin gtk_dialog_set_has_separator(PGtkDialog(FWidget), Value); end; procedure TGTKDialog.SetModalResult(Value: TMessageButton); begin gtk_dialog_response(PGtkDialog(FWidget), Integer(Value)); end; procedure TGTKDialog.SetDefaultButton(Value: TMessageButton); begin gtk_dialog_set_default_response(PGtkDialog(FWidget), Integer(Value)); end; procedure TGTKDialog.AddButton(ButtonCaption: string; ButtonID: integer); begin gtk_dialog_add_button(PGtkDialog(FWidget), StringToPgchar(ButtonCaption), ButtonID); end; procedure TGTKDialog.SetResponseSensitive(ButtonID: integer; Sensitive: boolean); begin gtk_dialog_set_response_sensitive(PGtkDialog(FWidget), ButtonID, Sensitive); end; procedure TGTKDialog.SetParentForm(Value: TCustomGTKForm); begin if Value <> nil then gtk_window_set_transient_for(PGtkWindow(FWidget), PGtkWindow(Value.FWidget)); end; (********************************************************************************************************************************) (********************************************************************************************************************************) function GetParentForm(Control: TGTKControl): TCustomGTKForm; begin while Control.Parent <> nil do Control := Control.Parent; if Control is TCustomGTKForm then Result := TCustomGTKForm(Control) else Result := nil; end; initialization Screen := TGDKScreen.Create(nil); Application := TGTKApplication.Create(Screen); finalization Application.Free; Screen.Free; end. tuxcmd-0.6.70+dfsg/libgtk_kylix/GTKText.pas0000644000175000017500000001303211300022643017526 0ustar salvisalvi(* GTK-Kylix Library: GTKText - Multiline Text Editor (GtkTextView) Version 0.5.16 (last updated 2003-01-21) Copyright (C) 2003 Tomas Bzatek This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 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 Library General Public License for more details. You should have received a copy of the GNU Library 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. *) unit GTKText; interface uses gtk2, gdk2, glib2, Classes, GTKControls, GTKConsts, GTKUtils, GTKClasses, GTKForms; type TGTKTextBuffer = class; (****************************************** TGTKTEXTVIEW ************************************************************************) TGTKTextViewWrapMode = (wmWrapNone, wmWrapChar, wmWrapWord); TGTKTextView = class(TGTKContainer) private FTextBuffer: TGTKTextBuffer; function GetWrapMode: TGTKTextViewWrapMode; procedure SetWrapMode(Value: TGTKTextViewWrapMode); function GetReadOnly: boolean; procedure SetReadOnly(Value: boolean); function GetCursorVisible: boolean; procedure SetCursorVisible(Value: boolean); protected public constructor Create(AOwner: TComponent); override; destructor Destroy; override; published property WrapMode: TGTKTextViewWrapMode read GetWrapMode write SetWrapMode; property ReadOnly: boolean read GetReadOnly write SetReadOnly; property CursorVisible: boolean read GetCursorVisible write SetCursorVisible; property TextBuffer: TGTKTextBuffer read FTextBuffer write FTextBuffer; property Lines: TGTKTextBuffer read FTextBuffer write FTextBuffer; end; (****************************************** TGTKTEXTBUFFER **********************************************************************) TGTKTextBuffer = class private FOwner: TGTKTextView; FBuffer: PGtkTextBuffer; function GetLineCount: integer; function GetCharCount: integer; protected public constructor Create(AOwner: TGTKTextView); destructor Destroy; override; procedure SetText(const Text: string); procedure InsertText(const Text: string); published property Count: integer read GetLineCount; property LineCount: integer read GetLineCount; property CharCount: integer read GetCharCount; end; (********************************************************************************************************************************) (********************************************************************************************************************************) implementation uses SysUtils, DateUtils; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKTextView.Create(AOwner: TComponent); begin inherited Create(AOwner); FTextBuffer := TGTKTextBuffer.Create(Self); FWidget := gtk_text_view_new_with_buffer(FTextBuffer.FBuffer); Show; g_object_unref(FTextBuffer.FBuffer); end; destructor TGTKTextView.Destroy; begin inherited Destroy; end; function TGTKTextView.GetWrapMode: TGTKTextViewWrapMode; begin Result := TGTKTextViewWrapMode(gtk_text_view_get_wrap_mode(PGtkTextView(FWidget))); end; procedure TGTKTextView.SetWrapMode(Value: TGTKTextViewWrapMode); begin gtk_text_view_set_wrap_mode(PGtkTextView(FWidget), integer(Value)); end; function TGTKTextView.GetReadOnly: boolean; begin Result := not gtk_text_view_get_editable(PGtkTextView(FWidget)); end; procedure TGTKTextView.SetReadOnly(Value: boolean); begin gtk_text_view_set_editable(PGtkTextView(FWidget), not Value); end; function TGTKTextView.GetCursorVisible: boolean; begin Result := gtk_text_view_get_cursor_visible(PGtkTextView(FWidget)); end; procedure TGTKTextView.SetCursorVisible(Value: boolean); begin gtk_text_view_set_cursor_visible(PGtkTextView(FWidget), Value); end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKTextBuffer.Create(AOwner: TGTKTextView); begin inherited Create; FOwner := AOwner; FBuffer := gtk_text_buffer_new(nil); end; destructor TGTKTextBuffer.Destroy; begin inherited Destroy; end; procedure TGTKTextBuffer.SetText(const Text: string); begin gtk_text_buffer_set_text(FBuffer, PChar(Text), -1); end; procedure TGTKTextBuffer.InsertText(const Text: string); var Iter: TGtkTextIter; begin gtk_text_buffer_get_end_iter(FBuffer, @Iter); gtk_text_buffer_insert(FBuffer, @Iter, PChar(Text), -1); end; function TGTKTextBuffer.GetLineCount: integer; begin Result := gtk_text_buffer_get_line_count(FBuffer); end; function TGTKTextBuffer.GetCharCount: integer; begin Result := gtk_text_buffer_get_char_count(FBuffer); end; (********************************************************************************************************************************) end. tuxcmd-0.6.70+dfsg/libgtk_kylix/GTKExtCtrls.pas0000644000175000017500000006274411300022643020370 0ustar salvisalvi(* GTK-Kylix Library: GTKExtCtrls - Extended visual controls Version 0.6.23 (last updated 2008-08-23) Copyright (C) 2004 Tomas Bzatek This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 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 Library General Public License for more details. You should have received a copy of the GNU Library 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. *) unit GTKExtCtrls; interface uses gtk2, gdk2, glib2, Classes, GTKControls, GTKConsts, GTKStdCtrls, GTKUtils, GTKMenus; // Quick jump: QForms QControls QStdCtrls QExtCtrls type (****************************************** TGTKSEPARATOR ***********************************************************************) TGTKSeparator = class(TGTKControl) public constructor Create(AOwner: TComponent); override; destructor Destroy; override; end; (****************************************** TGTKHSEPARATOR **********************************************************************) TGTKHSeparator = class(TGTKSeparator) public constructor Create(AOwner: TComponent); override; end; (****************************************** TGTKVSEPARATOR **********************************************************************) TGTKVSeparator = class(TGTKSeparator) public constructor Create(AOwner: TComponent); override; end; (****************************************** TGTKHANDLEBOX ***********************************************************************) TGTKHandleBox = class(TGTKBin) private function GetShadowType: TGTKShadowType; function GetHandlePosition: TGTKPosition; function GetSnapEdge: TGTKPosition; procedure SetShadowType(Value: TGTKShadowType); procedure SetHandlePosition(Value: TGTKPosition); procedure SetSnapEdge(Value: TGTKPosition); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; published property ShadowType: TGTKShadowType read GetShadowType write SetShadowType; property HandlePosition: TGTKPosition read GetHandlePosition write SetHandlePosition; property SnapEdge: TGTKPosition read GetSnapEdge write SetSnapEdge; end; (****************************************** TGTKPROGRESSBAR *********************************************************************) TGTKProgressBarOrientation = (poLeftToRight, poRightToLeft, poBottomToTop, poTopToBottom); TGTKProgressBar = class(TGTKControl) private FMax: Int64; function GetText: string; function GetFraction: Double; function GetPulseStep: Double; function GetOrientation: TGTKProgressBarOrientation; function GetValue: Int64; procedure SetText(Value: string); procedure SetFraction(Value: Double); procedure SetPulseStep(Value: Double); procedure SetOrientation(Value: TGTKProgressBarOrientation); procedure SetValue(Value: Int64); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure Pulse; published property Text: string read GetText write SetText; property Fraction: Double read GetFraction write SetFraction; property PulseStep: Double read GetPulseStep write SetPulseStep; property Orientation: TGTKProgressBarOrientation read GetOrientation write SetOrientation; property Max: Int64 read FMax write FMax; property Value: Int64 read GetValue write SetValue; end; (****************************************** TGTKPANED ***************************************************************************) TGTKPaned = class(TGTKContainer) private FChild1, FChild2: TGTKControl; FOnResize: TNotifyEvent; function GetPosition: integer; procedure SetPosition(Value: integer); procedure SetChild1(Value: TGTKControl); procedure SetChild2(Value: TGTKControl); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; published property Child1: TGTKControl read FChild1 write SetChild1; property Child2: TGTKControl read FChild2 write SetChild2; property Position: integer read GetPosition write SetPosition; property OnResize: TNotifyEvent read FOnResize write FOnResize; end; (****************************************** TGTKHPANED **************************************************************************) TGTKHPaned = class(TGTKPaned) public constructor Create(AOwner: TComponent); override; end; (****************************************** TGTKVPANED **************************************************************************) TGTKVPaned = class(TGTKPaned) public constructor Create(AOwner: TComponent); override; end; (****************************************** TGTKNOTEBOOK ************************************************************************) TGTKNotebook = class(TGTKContainer) private FOnSwitchPage: TNotifyEvent; function GetPageIndex: integer; function GetTabPosition: TGTKPosition; function GetShowTabs: boolean; function GetShowBorder: boolean; function GetScrollable: boolean; procedure SetPageIndex(Value: integer); procedure SetTabPosition(Value: TGTKPosition); procedure SetShowTabs(Value: boolean); procedure SetShowBorder(Value: boolean); procedure SetScrollable(Value: boolean); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; function AppendPage(Child: TGTKControl; Caption: string): integer; procedure RemovePage(PageNo: integer); function GetCaption(PageNo: integer): string; procedure SetCaption(PageNo: integer; Caption: string); procedure NextPage; procedure PrevPage; function GetExpandTab(PageNo: integer): boolean; procedure SetExpandTab(PageNo: integer; Value: boolean); function GetFillTab(PageNo: integer): boolean; procedure SetFillTab(PageNo: integer; Value: boolean); function GetTabLabel(PageNo: integer): TGTKLabel; published property PageIndex: integer read GetPageIndex write SetPageIndex; property TabPosition: TGTKPosition read GetTabPosition write SetTabPosition; property ShowTabs: boolean read GetShowTabs write SetShowTabs; property ShowBorder: boolean read GetShowBorder write SetShowBorder; property Scrollable: boolean read GetScrollable write SetScrollable; property OnSwitchPage: TNotifyEvent read FOnSwitchPage write FOnSwitchPage; end; (****************************************** TGTKOPTIONMENU **********************************************************************) TGTKOptionMenu = class(TGTKButton) private FItems: TGTKMenuItem; FOnChanged: TNotifyEvent; procedure ItemsChanged(Sender: TObject); function GetItemIndex: integer; procedure SetItemIndex(Value: integer); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; published property Items: TGTKMenuItem read FItems; property ItemIndex: integer read GetItemIndex write SetItemIndex; property OnChanged: TNotifyEvent read FOnChanged write FOnChanged; end; (****************************************** TGTKSCROLLEDWINDOW ******************************************************************) TGTKScrollBarPolicy = (sbAlways, sbAutomatic, sbNever); TGTKScrolledWindow = class(TGTKBin) private function GetHorizScrollBarPolicy: TGTKScrollBarPolicy; function GetVertScrollBarPolicy: TGTKScrollBarPolicy; procedure SetHorizScrollBarPolicy(Value: TGTKScrollBarPolicy); procedure SetVertScrollBarPolicy(Value: TGTKScrollBarPolicy); function GetShadowType: TGTKShadowType; procedure SetShadowType(Value: TGTKShadowType); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure AddWithViewPort(Control: TGTKControl); published property HorizScrollBarPolicy: TGTKScrollBarPolicy read GetHorizScrollBarPolicy write SetHorizScrollBarPolicy; property VertScrollBarPolicy: TGTKScrollBarPolicy read GetVertScrollBarPolicy write SetVertScrollBarPolicy; property ShadowType: TGTKShadowType read GetShadowType write SetShadowType; end; (****************************************** TGTKBUTTONBOX ***********************************************************************) TGTKButtonBoxLayout = (blDefault, blSpread, blEdge, blStart, blEnd); TGTKButtonBox = class(TGTKBox) private function GetLayout: TGTKButtonBoxLayout; procedure SetLayout(Value: TGTKButtonBoxLayout); public constructor Create(AOwner: TComponent); override; published property Layout: TGTKButtonBoxLayout read GetLayout write SetLayout; end; (****************************************** TGTKHBUTTONBOX **********************************************************************) TGTKHButtonBox = class(TGTKButtonBox) public constructor Create(AOwner: TComponent); override; end; (****************************************** TGTKVBUTTONBOX **********************************************************************) TGTKVButtonBox = class(TGTKButtonBox) public constructor Create(AOwner: TComponent); override; end; (********************************************************************************************************************************) (********************************************************************************************************************************) implementation (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKSeparator.Create(AOwner: TComponent); begin inherited Create(AOwner); end; destructor TGTKSeparator.Destroy; begin inherited Destroy; end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKHSeparator.Create(AOwner: TComponent); begin inherited Create(AOwner); FWidget := gtk_hseparator_new; Show; end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKVSeparator.Create(AOwner: TComponent); begin inherited Create(AOwner); FWidget := gtk_vseparator_new; Show; end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKHandleBox.Create(AOwner: TComponent); begin inherited Create(AOwner); FWidget := gtk_handle_box_new; Show; end; destructor TGTKHandleBox.Destroy; begin inherited Destroy; end; function TGTKHandleBox.GetShadowType: TGTKShadowType; begin Result := TGTKShadowType(gtk_handle_box_get_shadow_type(PGtkHandleBox(FWidget))); end; procedure TGTKHandleBox.SetShadowType(Value: TGTKShadowType); begin gtk_handle_box_set_shadow_type(PGtkHandleBox(FWidget), gtk2.TGtkShadowType(Value)); end; function TGTKHandleBox.GetHandlePosition: TGTKPosition; begin Result := TGTKPosition(gtk_handle_box_get_handle_position(PGtkHandleBox(FWidget))); end; procedure TGTKHandleBox.SetHandlePosition(Value: TGTKPosition); begin gtk_handle_box_set_handle_position(PGtkHandleBox(FWidget), Integer(Value)); end; function TGTKHandleBox.GetSnapEdge: TGTKPosition; begin Result := TGTKPosition(gtk_handle_box_get_snap_edge(PGtkHandleBox(FWidget))); end; procedure TGTKHandleBox.SetSnapEdge(Value: TGTKPosition); begin gtk_handle_box_set_snap_edge(PGtkHandleBox(FWidget), Integer(Value)); end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKProgressBar.Create(AOwner: TComponent); begin inherited Create(AOwner); FMax := 100; FWidget := gtk_progress_bar_new; Show; end; destructor TGTKProgressBar.Destroy; begin inherited Destroy; end; procedure TGTKProgressBar.Pulse; begin gtk_progress_bar_pulse(PGtkProgressBar(FWidget)); end; function TGTKProgressBar.GetText: string; begin Result := PgcharToString(gtk_progress_bar_get_text(PGtkProgressBar(FWidget))); end; procedure TGTKProgressBar.SetText(Value: string); begin gtk_progress_bar_set_text(PGtkProgressbar(FWidget), StringToPgchar(Value)); end; function TGTKProgressBar.GetFraction: Double; begin Result := gtk_progress_bar_get_fraction(PGtkProgressbar(FWidget)); end; procedure TGTKProgressBar.SetFraction(Value: Double); begin gtk_progress_bar_set_fraction(PGtkProgressbar(FWidget), Value); end; function TGTKProgressBar.GetPulseStep: Double; begin Result := gtk_progress_bar_get_pulse_step(PGtkProgressbar(FWidget)); end; procedure TGTKProgressBar.SetPulseStep(Value: Double); begin gtk_progress_bar_set_pulse_step(PGtkProgressbar(FWidget), Value); end; function TGTKProgressBar.GetOrientation: TGTKProgressBarOrientation; begin Result := TGTKProgressBarOrientation(gtk_progress_bar_get_orientation(PGtkProgressBar(FWidget))); end; procedure TGTKProgressBar.SetOrientation(Value: TGTKProgressBarOrientation); begin gtk_progress_bar_set_orientation(PGtkProgressbar(FWidget), gtk2.TGtkProgressBarOrientation(Value)); end; function TGTKProgressBar.GetValue: Int64; begin Result := Round(Fraction * Max); end; procedure TGTKProgressBar.SetValue(Value: Int64); begin if FMax = 0 then Fraction := 0 else Fraction := Value / FMax; end; (********************************************************************************************************************************) (********************************************************************************************************************************) procedure TGTKPaned_resize(widget : PGtkWidget; allocation : PGtkAllocation; user_data : gpointer); cdecl; begin if Assigned(TGTKPaned(user_data).FOnResize) then TGTKPaned(user_data).FOnResize(TGTKPaned(user_data)); end; constructor TGTKPaned.Create(AOwner: TComponent); begin inherited Create(AOwner); FChild1 := nil; FChild2 := nil; end; destructor TGTKPaned.Destroy; begin inherited Destroy; end; procedure TGTKPaned.SetChild1(Value: TGTKControl); begin gtk_paned_pack1(PGtkPaned(FWidget), Value.FWidget, True, False); g_signal_connect(PGtkObject(Value.FWidget), 'size-allocate', G_CALLBACK(@TGTKPaned_resize), Self); end; procedure TGTKPaned.SetChild2(Value: TGTKControl); begin gtk_paned_pack2(PGtkPaned(FWidget), Value.FWidget, True, False); end; function TGTKPaned.GetPosition: integer; begin Result := gtk_paned_get_position(PGtkPaned(FWidget)); end; procedure TGTKPaned.SetPosition(Value: integer); begin gtk_paned_set_position(PGtkPaned(FWidget), Value); end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKHPaned.Create(AOwner: TComponent); begin inherited Create(AOwner); FWidget := gtk_hpaned_new; Show; end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKVPaned.Create(AOwner: TComponent); begin inherited Create(AOwner); FWidget := gtk_vpaned_new; Show; end; (********************************************************************************************************************************) (********************************************************************************************************************************) procedure TGTKNotebook_switch_page(notebook: PGtkNotebook; page: PGtkNotebookPage; page_num: guint; user_data: gpointer); cdecl; begin if Assigned(user_data) and Assigned(TGTKNotebook(user_data).FOnSwitchPage) then TGTKNotebook(user_data).FOnSwitchPage(user_data); end; constructor TGTKNotebook.Create(AOwner: TComponent); begin inherited Create(AOwner); FWidget := gtk_notebook_new; FOnSwitchPage := nil; g_signal_connect_after(PGtkObject(FWidget), 'switch-page', G_CALLBACK(@TGTKNotebook_switch_page), Self); Show; end; destructor TGTKNotebook.Destroy; begin inherited Destroy; end; function TGTKNotebook.AppendPage(Child: TGTKControl; Caption: string): integer; begin Result := gtk_notebook_append_page(PGtkNotebook(FWidget), Child.FWidget, nil); gtk_notebook_set_tab_label_text(PGtkNotebook(FWidget), Child.FWidget, StringToPgchar(Caption)); end; function TGTKNotebook.GetCaption(PageNo: integer): string; begin Result := PgcharToString(gtk_notebook_get_tab_label_text(PGtkNotebook(FWidget), gtk_notebook_get_nth_page(PGtkNotebook(FWidget), PageNo))); end; procedure TGTKNotebook.SetCaption(PageNo: integer; Caption: string); begin gtk_notebook_set_tab_label_text(PGtkNotebook(FWidget), gtk_notebook_get_nth_page(PGtkNotebook(FWidget), PageNo), StringToPgchar(Caption)); end; procedure TGTKNotebook.RemovePage(PageNo: integer); begin gtk_notebook_remove_page(PGtkNotebook(FWidget), PageNo); end; function TGTKNotebook.GetPageIndex: integer; begin Result := gtk_notebook_get_current_page(PGtkNotebook(FWidget)); end; procedure TGTKNotebook.SetPageIndex(Value: integer); begin gtk_notebook_set_page(PGtkNotebook(FWidget), Value); end; procedure TGTKNotebook.NextPage; begin gtk_notebook_next_page(PGtkNotebook(FWidget)); end; procedure TGTKNotebook.PrevPage; begin gtk_notebook_prev_page(PGtkNotebook(FWidget)); end; function TGTKNotebook.GetTabPosition: TGTKPosition; begin Result := TGTKPosition(gtk_notebook_get_tab_pos(PGtkNotebook(FWidget))); end; procedure TGTKNotebook.SetTabPosition(Value: TGTKPosition); begin gtk_notebook_set_tab_pos(PGtkNotebook(FWidget), Integer(Value)); end; function TGTKNotebook.GetShowTabs: boolean; begin Result := gtk_notebook_get_show_tabs(PGtkNotebook(FWidget)); end; procedure TGTKNotebook.SetShowTabs(Value: boolean); begin gtk_notebook_set_show_tabs(PGtkNotebook(FWidget), Value); end; function TGTKNotebook.GetShowBorder: boolean; begin Result := gtk_notebook_get_show_border(PGtkNotebook(FWidget)); end; procedure TGTKNotebook.SetShowBorder(Value: boolean); begin gtk_notebook_set_show_border(PGtkNotebook(FWidget), Value); end; function TGTKNotebook.GetScrollable: boolean; begin Result := gtk_notebook_get_scrollable(PGtkNotebook(FWidget)); end; procedure TGTKNotebook.SetScrollable(Value: boolean); begin gtk_notebook_set_scrollable(PGtkNotebook(FWidget), Value); end; function TGTKNotebook.GetExpandTab(PageNo: integer): boolean; var expand, fill: Pgboolean; packtype: PGtkPackType; begin gtk_notebook_query_tab_label_packing(PGtkNotebook(FWidget), gtk_notebook_get_nth_page(PGtkNotebook(FWidget), PageNo), expand, fill, packtype); Result := expand <> nil; end; procedure TGTKNotebook.SetExpandTab(PageNo: integer; Value: boolean); begin gtk_notebook_set_tab_label_packing(PGtkNotebook(FWidget), gtk_notebook_get_nth_page(PGtkNotebook(FWidget), PageNo), Value, GetFillTab(PageNo), GTK_PACK_START); end; function TGTKNotebook.GetFillTab(PageNo: integer): boolean; var expand, fill: Pgboolean; packtype: PGtkPackType; begin gtk_notebook_query_tab_label_packing(PGtkNotebook(FWidget), gtk_notebook_get_nth_page(PGtkNotebook(FWidget), PageNo), expand, fill, packtype); Result := fill <> nil; end; procedure TGTKNotebook.SetFillTab(PageNo: integer; Value: boolean); begin gtk_notebook_set_tab_label_packing(PGtkNotebook(FWidget), gtk_notebook_get_nth_page(PGtkNotebook(FWidget), PageNo), GetExpandTab(PageNo), Value, GTK_PACK_START); end; function TGTKNotebook.GetTabLabel(PageNo: integer): TGTKLabel; begin Result := TGTKLabel.CreateFromWidget(Self, gtk_notebook_get_tab_label(PGtkNotebook(FWidget), gtk_notebook_get_nth_page(PGtkNotebook(FWidget), PageNo))); end; (********************************************************************************************************************************) (********************************************************************************************************************************) procedure TGTKOptionMenu_changed(optionmenu: PGtkOptionMenu; user_data: pgpointer); cdecl; begin if Assigned(TGTKOptionMenu(user_data).FOnChanged) then TGTKOptionMenu(user_data).FOnChanged(TGTKOptionMenu(user_data)); end; constructor TGTKOptionMenu.Create(AOwner: TComponent); begin inherited Create(AOwner); FOnChanged := nil; FWidget := gtk_option_menu_new; g_signal_connect(PGtkObject(FWidget), 'changed', G_CALLBACK(@TGTKOptionMenu_changed), Self); Show; FItems := TGTKMenuItem.Create(Self); FItems.FParentMenu := Self; FItems.Notify := ItemsChanged; end; destructor TGTKOptionMenu.Destroy; begin FItems.Notify := nil; FItems.Free; inherited Destroy; end; procedure TGTKOptionMenu.ItemsChanged(Sender: TObject); begin if Assigned(FItems.FMenu) and (gtk_option_menu_get_menu(PGtkOptionMenu(FWidget)) <> FItems.FMenu) then gtk_option_menu_set_menu(PGtkOptionMenu(FWidget), FItems.FMenu); end; function TGTKOptionMenu.GetItemIndex: integer; begin Result := gtk_option_menu_get_history(PGtkOptionMenu(FWidget)); end; procedure TGTKOptionMenu.SetItemIndex(Value: integer); begin gtk_option_menu_set_history(PGtkOptionMenu(FWidget), Value); end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKScrolledWindow.Create(AOwner: TComponent); begin inherited Create(AOwner); FWidget := gtk_scrolled_window_new(nil, nil); Show; end; destructor TGTKScrolledWindow.Destroy; begin inherited Destroy; end; function TGTKScrolledWindow.GetHorizScrollBarPolicy: TGTKScrollBarPolicy; var hscrollbar, vscrollbar: tGtkPolicyType; begin gtk_scrolled_window_get_policy(PGtkScrolledWindow(FWidget), @hscrollbar, @vscrollbar); Result := TGTKScrollBarPolicy(hscrollbar); end; procedure TGTKScrolledWindow.SetHorizScrollBarPolicy(Value: TGTKScrollBarPolicy); begin gtk_scrolled_window_set_policy(PGtkScrolledWindow(FWidget), TGtkPolicyType(Value), TGtkPolicyType(VertScrollBarPolicy)); end; function TGTKScrolledWindow.GetVertScrollBarPolicy: TGTKScrollBarPolicy; var hscrollbar, vscrollbar: tGtkPolicyType; begin gtk_scrolled_window_get_policy(PGtkScrolledWindow(FWidget), @hscrollbar, @vscrollbar); Result := TGTKScrollBarPolicy(vscrollbar); end; procedure TGTKScrolledWindow.SetVertScrollBarPolicy(Value: TGTKScrollBarPolicy); begin gtk_scrolled_window_set_policy(PGtkScrolledWindow(FWidget), TGtkPolicyType(HorizScrollBarPolicy), TGtkPolicyType(Value)); end; function TGTKScrolledWindow.GetShadowType: TGTKShadowType; begin Result := TGTKShadowType(gtk_scrolled_window_get_shadow_type(PGtkScrolledWindow(FWidget))); end; procedure TGTKScrolledWindow.SetShadowType(Value: TGTKShadowType); begin gtk_scrolled_window_set_shadow_type(PGtkScrolledWindow(FWidget), gtk2.TGtkShadowType(Value)); end; procedure TGTKScrolledWindow.AddWithViewPort(Control: TGTKControl); begin gtk_scrolled_window_add_with_viewport(PGtkScrolledWindow(FWidget), Control.FWidget); end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKButtonBox.Create(AOwner: TComponent); begin inherited Create(AOwner); end; function TGTKButtonBox.GetLayout: TGTKButtonBoxLayout; begin Result := TGTKButtonBoxLayout(gtk_button_box_get_layout(PGtkButtonBox(FWidget))); end; procedure TGTKButtonBox.SetLayout(Value: TGTKButtonBoxLayout); begin gtk_button_box_set_layout(PGtkButtonBox(FWidget), Integer(Value)); end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKHButtonBox.Create(AOwner: TComponent); begin inherited Create(AOwner); FWidget := gtk_hbutton_box_new; Show; end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKVButtonBox.Create(AOwner: TComponent); begin inherited Create(AOwner); FWidget := gtk_vbutton_box_new; Show; end; (********************************************************************************************************************************) (********************************************************************************************************************************) end. tuxcmd-0.6.70+dfsg/libgtk_kylix/GTKConsts.pas0000644000175000017500000001377311300022643020067 0ustar salvisalvi(* GTK-Kylix Library: GTKConsts - Various constants, mainly key codes Version 0.5.20 (last updated 2003-01-25) Copyright (C) 2003 Tomas Bzatek This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 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 Library General Public License for more details. You should have received a copy of the GNU Library 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. *) unit GTKConsts; interface uses glib2, gdk2, gtk2; const // copied from gdkkeysyms GDK_BackSpace = $FF08; GDK_Tab = $FF09; GDK_Linefeed = $FF0A; GDK_Clear_Key = $FF0B; GDK_Return = $FF0D; GDK_Pause = $FF13; GDK_Scroll_Lock = $FF14; GDK_Sys_Req = $FF15; GDK_Escape = $FF1B; GDK_Delete_Key = $FFFF; GDK_Home = $FF50; GDK_Left = $FF51; GDK_Up = $FF52; GDK_Right = $FF53; GDK_Down = $FF54; GDK_Prior = $FF55; GDK_Page_Up = $FF55; GDK_Next = $FF56; GDK_Page_Down = $FF56; GDK_End = $FF57; GDK_Insert = $FF63; GDK_Num_Lock = $FF7F; GDK_KP_Space = $FF80; GDK_KP_Tab = $FF89; GDK_KP_Enter = $FF8D; GDK_KP_F1 = $FF91; GDK_KP_F2 = $FF92; GDK_KP_F3 = $FF93; GDK_KP_F4 = $FF94; GDK_KP_Home = $FF95; GDK_KP_Left = $FF96; GDK_KP_Up = $FF97; GDK_KP_Right = $FF98; GDK_KP_Down = $FF99; GDK_KP_Prior = $FF9A; GDK_KP_Page_Up = $FF9A; GDK_KP_Next = $FF9B; GDK_KP_Page_Down = $FF9B; GDK_KP_End = $FF9C; GDK_KP_PLUS = 65451; GDK_KP_MINUS = 65453; GDK_KP_ASTERISK = 65450; GDK_KP_SLASH = 65455; GDK_KP_0 = $FFB0; GDK_KP_1 = $FFB1; GDK_KP_2 = $FFB2; GDK_KP_3 = $FFB3; GDK_KP_4 = $FFB4; GDK_KP_5 = $FFB5; GDK_KP_6 = $FFB6; GDK_KP_7 = $FFB7; GDK_KP_8 = $FFB8; GDK_KP_9 = $FFB9; GDK_F1 = $FFBE; GDK_F2 = $FFBF; GDK_F3 = $FFC0; GDK_F4 = $FFC1; GDK_F5 = $FFC2; GDK_F6 = $FFC3; GDK_F7 = $FFC4; GDK_F8 = $FFC5; GDK_F9 = $FFC6; GDK_F10 = $FFC7; GDK_F11 = $FFC8; GDK_L1 = $FFC8; GDK_F12 = $FFC9; GDK_L2 = $FFC9; GDK_F13 = $FFCA; GDK_L3 = $FFCA; GDK_F14 = $FFCB; GDK_L4 = $FFCB; GDK_F15 = $FFCC; GDK_L5 = $FFCC; GDK_F16 = $FFCD; GDK_L6 = $FFCD; GDK_F17 = $FFCE; GDK_L7 = $FFCE; GDK_F18 = $FFCF; GDK_L8 = $FFCF; GDK_F19 = $FFD0; GDK_L9 = $FFD0; GDK_F20 = $FFD1; GDK_L10 = $FFD1; GDK_F21 = $FFD2; GDK_R1 = $FFD2; GDK_F22 = $FFD3; GDK_R2 = $FFD3; GDK_F23 = $FFD4; GDK_R3 = $FFD4; GDK_F24 = $FFD5; GDK_R4 = $FFD5; GDK_F25 = $FFD6; GDK_R5 = $FFD6; GDK_F26 = $FFD7; GDK_R6 = $FFD7; GDK_F27 = $FFD8; GDK_R7 = $FFD8; GDK_F28 = $FFD9; GDK_R8 = $FFD9; GDK_F29 = $FFDA; GDK_R9 = $FFDA; GDK_F30 = $FFDB; GDK_R10 = $FFDB; GDK_F31 = $FFDC; GDK_R11 = $FFDC; GDK_F32 = $FFDD; GDK_R12 = $FFDD; GDK_F33 = $FFDE; GDK_R13 = $FFDE; GDK_F34 = $FFDF; GDK_R14 = $FFDF; GDK_F35 = $FFE0; GDK_R15 = $FFE0; GDK_space = $020; GDK_exclam = $021; GDK_quotedbl = $022; GDK_numbersign = $023; GDK_dollar = $024; GDK_percent = $025; GDK_ampersand = $026; GDK_apostrophe = $027; GDK_quoteright = $027; GDK_parenleft = $028; GDK_parenright = $029; GDK_asterisk = $02a; GDK_plus_key = $02b; GDK_comma = $02c; GDK_minus = $02d; GDK_period = $02e; GDK_slash = $02f; GDK_0 = $030; GDK_1 = $031; GDK_2 = $032; GDK_3 = $033; GDK_4 = $034; GDK_5 = $035; GDK_6 = $036; GDK_7 = $037; GDK_8 = $038; GDK_9 = $039; GDK_colon = $03a; GDK_semicolon = $03b; GDK_less = $03c; GDK_equal = $03d; GDK_greater = $03e; GDK_question = $03f; GDK_at = $040; GDK_Capital_A = $041; GDK_Capital_B = $042; GDK_Capital_C = $043; GDK_Capital_D = $044; GDK_Capital_E = $045; GDK_Capital_F = $046; GDK_Capital_G = $047; GDK_Capital_H = $048; GDK_Capital_I = $049; GDK_Capital_J = $04a; GDK_Capital_K = $04b; GDK_Capital_L = $04c; GDK_Capital_M = $04d; GDK_Capital_N = $04e; GDK_Capital_O = $04f; GDK_Capital_P = $050; GDK_Capital_Q = $051; GDK_Capital_R = $052; GDK_Capital_S = $053; GDK_Capital_T = $054; GDK_Capital_U = $055; GDK_Capital_V = $056; GDK_Capital_W = $057; GDK_Capital_X = $058; GDK_Capital_Y = $059; GDK_Capital_Z = $05a; GDK_bracketleft = $05b; GDK_backslash = $05c; GDK_bracketright = $05d; GDK_quoteleft = $060; GDK_a = $061; GDK_b = $062; GDK_c = $063; GDK_d = $064; GDK_e = $065; GDK_f = $066; GDK_g = $067; GDK_h = $068; GDK_i = $069; GDK_j = $06a; GDK_k = $06b; GDK_l = $06c; GDK_m = $06d; GDK_n = $06e; GDK_o = $06f; GDK_p = $070; GDK_q = $071; GDK_r = $072; GDK_s = $073; GDK_t = $074; GDK_u = $075; GDK_v = $076; GDK_w = $077; GDK_x = $078; GDK_y = $079; GDK_z = $07a; GDK_aacute = $0e1; GDK_leftarrow = $8fb; GDK_uparrow = $8fc; GDK_rightarrow = $8fd; GDK_downarrow = $8fe; GDK_WIN_POPUP = $FF67; NumMessageButtons = 12; MessageButtonID : array[1..NumMessageButtons] of Pgchar = (GTK_STOCK_YES, GTK_STOCK_NO, GTK_STOCK_OK, GTK_STOCK_CANCEL, GTK_STOCK_APPLY, GTK_STOCK_CLOSE, GTK_STOCK_HELP, GTK_STOCK_PRINT, GTK_STOCK_QUIT, GTK_STOCK_STOP, GTK_STOCK_GO_BACK, GTK_STOCK_GO_FORWARD); resourcestring SCDefaultMenuItemCaption = 'MenuItem'; SCDefaultButtonCaption = 'Button'; SCDefaultLabelCaption = 'Label'; SCDefaultToggleButtonCaption = 'ToggleButton'; SCDefaultCheckButtonCaption = 'CheckButton'; SCDefaultRadioButtonCaption = 'RadioButton'; SCDefaultFrameCaption = 'Frame'; implementation end. tuxcmd-0.6.70+dfsg/libgtk_kylix/GTKControls.pas0000644000175000017500000011375211300022643020417 0ustar salvisalvi(* GTK-Kylix Library: GTKControls - Basic objects Version 0.6.23 (last updated 2008-11-11) Copyright (C) 2007 Tomas Bzatek This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 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 Library General Public License for more details. You should have received a copy of the GNU Library 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. *) unit GTKControls; interface uses gtk2, gdk2, glib2, Classes; // Quick jump: QForms QControls const { TModalResult values } mrNone = 0; mrOk = mrNone + 1; mrCancel = mrOk + 1; mrYes = mrCancel + 1; mrNo = mrYes + 1; mrAbort = mrNo + 1; mrRetry = mrAbort + 1; mrIgnore = mrRetry + 1; mrAll = mrIgnore + 1; mrNoToAll = mrAll + 1; mrYesToAll = mrNoToAll + 1; type {$IFNDEF CPU64} // 32-bit platform TComponent64 = class(TComponent); {$ELSE} // 64-bit platform TComponent64 = class(TComponent) private FTag: QWORD; published property Tag: QWORD read FTag write FTag default 0; end; {$ENDIF} type TGTKShadowType = (stNone, stShadowIn, stShadowOut, stEtchedIn, stEtchedOut); TGTKPosition = (poLeft, poRight, poTop, poBottom); (****************************************** TGTKCONTROL *************************************************************************) TGDKMouseButton = (mbLeft, mbMiddle, mbRight, mbNoButton); TGDKKeyEvent = procedure (Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean) of object; TGDKMouseEvent = procedure (Sender: TObject; Button: TGDKMouseButton; Shift: TShiftState; X, Y: Integer; var Accept: boolean) of object; TGDKFocusEvent = procedure (Sender: TObject; var Accept: boolean) of object; TGDKExposeEvent = procedure (Sender: TObject; const Rect: PGdkRectangle; var Accept: boolean) of object; TGTKControlState = (csNormal, csActive, csPrelight, csSelected, csInsensitive); TGTKControl = class(TComponent64) private FVisible: Boolean; FParent: TGTKControl; FPopupMenu: TGTKControl; FButtonPressSignalHandler, FButtonReleaseSignalHandler, FKeyDownSignalHandler, FKeyUpSignalHandler, FFocusInSignalHandler, FFocusOutSignalHandler, FExposeSignalHandler, FMotionNotifyHandler: gulong; FOnKeyDown: TGDKKeyEvent; FOnKeyUp: TGDKKeyEvent; FOnEnter: TGDKFocusEvent; FOnExit: TGDKFocusEvent; FOnMouseDown: TGDKMouseEvent; FOnMouseUp: TGDKMouseEvent; FOnDblClick: TGDKMouseEvent; FOnExpose: TGDKExposeEvent; FOnMouseMove: TGDKMouseEvent; function GetWidth: Integer; function GetHeight: Integer; function GetLeft: Integer; function GetTop: Integer; function GetEnabled: boolean; function GetTooltip: string; function GetCanFocus: boolean; function GetFocused: boolean; function GetDefault: boolean; function GetControlState: TGTKControlState; procedure SetHeight(const Value: Integer); procedure SetVisible(const Value: Boolean); procedure SetWidth(const Value: Integer); procedure SetEnabled(const Value: boolean); procedure SetPopupMenu(Value: TGTKControl); procedure SetTooltip(Value: string); procedure SetFocused(Value: boolean); procedure SetOnKeyDown(Value: TGDKKeyEvent); procedure SetOnKeyUp(Value: TGDKKeyEvent); procedure SetOnEnter(Value: TGDKFocusEvent); procedure SetOnExit(Value: TGDKFocusEvent); procedure SetOnMouseDown(Value: TGDKMouseEvent); procedure SetOnMouseUp(Value: TGDKMouseEvent); procedure SetDefault(Value: boolean); procedure SetOnDblClick(Value: TGDKMouseEvent); procedure SetCanFocus(Value: boolean); procedure SetOnExpose(Value: TGDKExposeEvent); procedure SetControlState(Value: TGTKControlState); procedure SetOnMouseMove(Value: TGDKMouseEvent); protected procedure SetParent(const Value: TGTKControl); virtual; public FWidget: PGtkWidget; constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure Hide; procedure HideAll; procedure Show; procedure ShowAll; procedure SetSizeRequest(const Width, Height: Integer); property Parent: TGTKControl read FParent write SetParent; property Visible: Boolean read FVisible write SetVisible default True; property Enabled: Boolean read GetEnabled write SetEnabled default True; property PopupMenu: TGTKControl read FPopupMenu write SetPopupMenu; procedure SetFocus; procedure SetForegroundColor(Red, Green, Blue: word); overload; procedure SetForegroundColor(State: integer; Red, Green, Blue: word); overload; procedure SetForegroundColor(State: integer; Color: PGdkColor); overload; procedure SetForegroundColor(Color: PGdkColor); overload; procedure SetBackgroundColor(Red, Green, Blue: word); overload; procedure SetBackgroundColor(State: integer; Red, Green, Blue: word); overload; procedure SetBackgroundColor(State: integer; Color: PGdkColor); overload; procedure SetBackgroundColor(Color: PGdkColor); overload; procedure SetTextColor(Red, Green, Blue: word); overload; procedure SetTextColor(State: integer; Red, Green, Blue: word); overload; procedure SetBaseColor(Red, Green, Blue: word); overload; procedure SetBaseColor(State: integer; Red, Green, Blue: word); overload; procedure Invalidate; procedure SetAlignment(XAlign, YAlign: Double); procedure SetPadding(XPad, YPad: integer); function GetData(Key: string): Pointer; procedure SetData(Key: string; Value: Pointer); published property Width: Integer read GetWidth write SetWidth; property Height: Integer read GetHeight write SetHeight; property Left: Integer read GetLeft; property Top: Integer read GetTop; property Tooltip: string read GetTooltip write SetTooltip; property CanFocus: boolean read GetCanFocus write SetCanFocus; property Focused: boolean read GetFocused write SetFocused; property Default: boolean read GetDefault write SetDefault; property OnKeyDown: TGDKKeyEvent read FOnKeyDown write SetOnKeyDown; property OnKeyUp: TGDKKeyEvent read FOnKeyUp write SetOnKeyUp; property OnEnter: TGDKFocusEvent read FOnEnter write SetOnEnter; property OnExit: TGDKFocusEvent read FOnExit write SetOnExit; property OnMouseDown: TGDKMouseEvent read FOnMouseDown write SetOnMouseDown; property OnMouseUp: TGDKMouseEvent read FOnMouseUp write SetOnMouseUp; property OnMouseMove: TGDKMouseEvent read FOnMouseMove write SetOnMouseMove; property OnDblClick: TGDKMouseEvent read FOnDblClick write SetOnDblClick; property OnExpose: TGDKExposeEvent read FOnExpose write SetOnExpose; property ComponentState; property ControlState: TGTKControlState read GetControlState write SetControlState; end; (****************************************** TGTKCONTAINER ***********************************************************************) TGTKContainer = class(TGTKControl) private function GetBorderWidth: integer; procedure SetBorderWidth(Value: integer); function GetChildrenCount: integer; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure AddControl(AControl: TGTKControl); procedure RemoveControl(AControl: TGTKControl); published property BorderWidth: integer read GetBorderWidth write SetBorderWidth; property ChildrenCount: integer read GetChildrenCount; end; (****************************************** TGTKBIN *****************************************************************************) TGTKBin = class(TGTKContainer) private function GetChildControl: PGtkWidget; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; property ChildControl: PGtkWidget read GetChildControl; end; (****************************************** TGTKBOX *****************************************************************************) TGTKBox = class(TGTKContainer) private FLinked: boolean; function GetHomogeneous: boolean; function GetSpacing: integer; procedure SetHomogeneous(Value: boolean); procedure SetSpacing(Value: integer); public constructor Create(AOwner: TComponent); override; constructor CreateLinked(AOwner: TComponent; Widget: PGtkWidget); destructor Destroy; override; procedure AddControl(Control: TGTKControl); procedure AddControlEnd(Control: TGTKControl); procedure AddControlEx(Control: TGTKControl; Expand, Fill: boolean; Padding: integer); procedure AddControlEndEx(Control: TGTKControl; Expand, Fill: boolean; Padding: integer); published property Homogeneous: boolean read GetHomogeneous write SetHomogeneous; property Spacing: integer read GetSpacing write SetSpacing; end; (****************************************** TGTKHBOX ****************************************************************************) TGTKHBox = class(TGTKBox) public constructor Create(AOwner: TComponent); override; destructor Destroy; override; end; (****************************************** TGTKVBOX ****************************************************************************) TGTKVBox = class(TGTKBox) public constructor Create(AOwner: TComponent); override; destructor Destroy; override; end; (****************************************** TGTKEVENTBOX ************************************************************************) TGTKEventBox = class(TGTKBin) public constructor Create(AOwner: TComponent); override; destructor Destroy; override; end; (****************************************** TGTKTOOLTIPS ************************************************************************) TGTKTooltips = class(TComponent) private function GetEnabled: boolean; procedure SetEnabled(Value: boolean); public FObject: PGtkTooltips; constructor Create(AOwner: TComponent); override; destructor Destroy; override; published property Enabled: boolean read GetEnabled write SetEnabled; end; (****************************************** TGTKTABLE ***************************************************************************) TGTKTableAttachOptions = set of (taoExpand, taoShrink, taoFill); TGTKTable = class(TGTKContainer) private function GetRowCount: integer; procedure SetRowCount(Value: integer); function GetColCount: integer; procedure SetColCount(Value: integer); function GetRowSpacing: integer; procedure SetRowSpacing(Value: integer); function GetColSpacing: integer; procedure SetColSpacing(Value: integer); function GetHomogeneous: boolean; procedure SetHomogeneous(Value: boolean); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure SetRowColCount(Rows, Cols: integer); procedure AddControl(Column, Row, NumCols, NumRows: integer; Control: TGTKControl; XPadding, YPadding: integer); procedure AddControlEx(Column, Row, NumCols, NumRows: integer; Control: TGTKControl; XAttachOptions, YAttachOptions: TGTKTableAttachOptions; XPadding, YPadding: integer); published property RowCount: integer read GetRowCount write SetRowCount; property ColCount: integer read GetColCount write SetColCount; property RowSpacing: integer read GetRowSpacing write SetRowSpacing; property ColSpacing: integer read GetColSpacing write SetColSpacing; property Homogeneous: boolean read GetHomogeneous write SetHomogeneous; end; procedure Beep; (********************************************************************************************************************************) (********************************************************************************************************************************) (********************************************************************************************************************************) (********************************************************************************************************************************) implementation uses GTKMenus, GTKForms, GTKUtils; procedure Beep; begin gdk_beep; end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKControl.Create(AOwner: TComponent); begin inherited Create(AOwner); if AOwner is TGTKControl then FParent := AOwner as TGTKControl; FButtonPressSignalHandler := 0; FButtonReleaseSignalHandler := 0; FKeyDownSignalHandler := 0; FKeyUpSignalHandler := 0; FFocusInSignalHandler := 0; FFocusOutSignalHandler := 0; FExposeSignalHandler := 0; FVisible := True; FWidget := nil; FPopupMenu := nil; FOnKeyDown := nil; FOnKeyUp := nil; FOnEnter := nil; FOnExit := nil; FOnExpose := nil; FOnMouseMove := nil; FOnMouseDown := nil; FOnMouseUp := nil; end; destructor TGTKControl.Destroy; begin try // SetParent(nil); // if Assigned(FWidget) {and GTK_IS_WIDGET(FWidget)} then gtk_widget_destroy(PGtkWidget(FWidget)); except end; inherited Destroy; end; procedure TGTKControl.Hide; begin FVisible := False; gtk_widget_hide(FWidget); end; procedure TGTKControl.HideAll; begin if Parent <> nil then Parent.HideAll; FVisible := False; gtk_widget_hide_all(FWidget); end; procedure TGTKControl.Show; begin FVisible := True; gtk_widget_show(FWidget); end; procedure TGTKControl.ShowAll; begin if Parent <> nil then Parent.ShowAll; FVisible := True; gtk_widget_show_all(FWidget); end; procedure TGTKControl.SetParent(const Value: TGTKControl); begin if (csDestroying in ComponentState) then Exit; if FParent <> Value then begin if Value = Self then raise EInvalidOperation.Create('Invalid Operation'); FParent := Value; try if Assigned(FWidget) and GTK_IS_WIDGET(FWidget) then if Assigned(Value) then gtk_widget_set_parent(FWidget, Value.FWidget) else gtk_widget_unparent(FWidget); except end; end; end; procedure TGTKControl.SetVisible(const Value: Boolean); begin if Value then Show else Hide; end; function TGTKControl.GetWidth: Integer; begin Result := FWidget^.allocation.width; end; function TGTKControl.GetHeight: Integer; begin Result := FWidget^.allocation.height; end; procedure TGTKControl.SetWidth(const Value: Integer); begin SetSizeRequest(Value, GetHeight); end; procedure TGTKControl.SetHeight(const Value: Integer); begin SetSizeRequest(GetWidth, Value); end; procedure TGTKControl.SetSizeRequest(const Width, Height: Integer); begin gtk_widget_set_size_request(FWidget, Width, Height); end; function TGTKControl.GetLeft: Integer; begin Result := FWidget^.allocation.x; end; function TGTKControl.GetTop: Integer; begin Result := FWidget^.allocation.y; end; function TGTKControl.GetEnabled: boolean; begin Result := False; if (csDestroying in ComponentState) then Exit; Result := GTK_WIDGET_SENSITIVE(FWidget); end; procedure TGTKControl.SetEnabled(const Value: boolean); begin gtk_widget_set_sensitive(FWidget, Value); end; function TGTKControl_button_press_event(widget: PGtkWidget; event: PGdkEventButton; user_data: gpointer):gboolean; cdecl; var Shift: TShiftState; Accept: boolean; begin Shift := []; if event^.state and GDK_SHIFT_MASK = GDK_SHIFT_MASK then Include(Shift, ssShift); if event^.state and GDK_CONTROL_MASK = GDK_CONTROL_MASK then Include(Shift, ssCtrl); if event^.state and GDK_MOD1_MASK = GDK_MOD1_MASK then Include(Shift, ssAlt); Accept := True; if Assigned(TGTKControl(user_data).FOnMouseDown) and (event^._type = GDK_BUTTON_PRESS) then TGTKControl(user_data).FOnMouseDown(TGTKControl(user_data), TGDKMouseButton(event^.button - 1), Shift, Trunc(event^.x), Trunc(event^.y), Accept); if Assigned(TGTKControl(user_data).FOnDblClick) and (event^._type = GDK_2BUTTON_PRESS) then TGTKControl(user_data).FOnDblClick(TGTKControl(user_data), TGDKMouseButton(event^.button - 1), Shift, Trunc(event^.x), Trunc(event^.y), Accept); Result := not Accept; if Accept then if (Event^.button = 3) and Assigned(TGTKControl(user_data).FPopupMenu) then begin // if Assigned(TGTKMenuItem(TGTKControl(user_data).FPopupMenu).OnPopup) then TGTKMenuItem(TGTKControl(user_data).FPopupMenu).OnPopup(TGTKMenuItem(TGTKControl(user_data).FPopupMenu)); if Assigned(TGTKMenuItem(TGTKControl(user_data).FPopupMenu).OnPopup) then TGTKMenuItem(TGTKControl(user_data).FPopupMenu).OnPopup(TGTKControl(user_data)); gtk_menu_popup(PGtkMenu(TGTKMenuItem(TGTKControl(user_data).FPopupMenu).FMenu), nil, nil, nil, nil, event^.button, event^.time); Result := False; // Allow list views to process their events - select an item beneath the cursor end; end; procedure TGTKControl.SetPopupMenu(Value: TGTKControl); begin if FPopupMenu <> Value then begin FPopupMenu := Value; if not Assigned(Value) then begin if not Assigned(FOnMouseDown) then begin g_signal_handler_disconnect(PGtkObject(FWidget), FButtonPressSignalHandler); FButtonPressSignalHandler := 0; end; end else if FButtonPressSignalHandler = 0 then FButtonPressSignalHandler := g_signal_connect(PGtkObject(FWidget), 'button-press-event', G_CALLBACK(@TGTKControl_button_press_event), Self) end; end; function TGTKControl.GetTooltip: string; var TooltipsData : PGtkTooltipsData; begin Result := ''; TooltipsData := gtk_tooltips_data_get(FWidget); if Assigned(TooltipsData) then Result := PgcharToString(TooltipsData^.tip_text); end; procedure TGTKControl.SetTooltip(Value: string); var FParentForm : TCustomGTKForm; begin FParentForm := GetParentForm(Self); if FParentForm <> nil then gtk_tooltips_set_tip(FParentForm.Tooltips.FObject, FWidget, StringToPgchar(Value), nil); end; procedure TGTKControl.SetFocus; begin if (csDestroying in ComponentState) then Exit; gtk_widget_grab_focus(FWidget); end; function TGTKControl.GetCanFocus: boolean; begin Result := False; if (csDestroying in ComponentState) then Exit; Result := GTK_WIDGET_CAN_FOCUS(FWidget); end; procedure TGTKControl.SetCanFocus(Value: boolean); begin { if Value then FWidget^.private_flags := FWidget^.private_flags or GTK_CAN_FOCUS else FWidget^.private_flags := FWidget^.private_flags and (not GTK_CAN_FOCUS); } g_object_set(G_OBJECT(FWidget), 'can-focus', Ord(Value), nil); end; function TGTKControl.GetFocused: boolean; begin Result := False; try if (csDestroying in ComponentState) or (FWidget = nil) then Exit; Result := GTK_WIDGET_HAS_FOCUS(FWidget); except end; end; procedure TGTKControl.SetFocused(Value: boolean); begin SetFocus; end; function TGTKControl_key_event(event: PGdkEventKey; user_data : gpointer; KeyDown : boolean): gboolean; var Shift: TShiftState; Accept: boolean; begin Accept := True; Shift := []; if event^.state and GDK_SHIFT_MASK = GDK_SHIFT_MASK then Include(Shift, ssShift); if event^.state and GDK_CONTROL_MASK = GDK_CONTROL_MASK then Include(Shift, ssCtrl); if event^.state and GDK_MOD1_MASK = GDK_MOD1_MASK then Include(Shift, ssAlt); if KeyDown then begin if Assigned(TGTKControl(user_data).FOnKeyDown) then TGTKControl(user_data).FOnKeyDown(TGTKControl(user_data), event^.keyval, Shift, Accept); end else if Assigned(TGTKControl(user_data).FOnKeyUp) then TGTKControl(user_data).FOnKeyUp(TGTKControl(user_data), event^.keyval, Shift, Accept); Result := not Accept; end; function TGTKControl_key_press_event(widget: PGtkWidget; event: PGdkEventKey; user_data : gpointer): gboolean; cdecl; begin Result := TGTKControl_key_event(event, user_data, True); end; function TGTKControl_key_release_event(widget: PGtkWidget; event: PGdkEventKey; user_data : gpointer): gboolean; cdecl; begin Result := TGTKControl_key_event(event, user_data, False); end; procedure TGTKControl.SetOnKeyDown(Value: TGDKKeyEvent); begin if @FOnKeyDown <> @Value then begin FOnKeyDown := Value; if Assigned(Value) then FKeyDownSignalHandler := g_signal_connect(PGtkObject(FWidget), 'key-press-event', G_CALLBACK(@TGTKControl_key_press_event), Self) else g_signal_handler_disconnect(PGtkObject(FWidget), FKeyDownSignalHandler); end; end; procedure TGTKControl.SetOnKeyUp(Value: TGDKKeyEvent); begin if @FOnKeyUp <> @Value then begin FOnKeyUp := Value; if Assigned(Value) then FKeyUpSignalHandler := g_signal_connect(PGtkObject(FWidget), 'key-release-event', G_CALLBACK(@TGTKControl_key_release_event), Self) else g_signal_handler_disconnect(PGtkObject(FWidget), FKeyUpSignalHandler); end; end; function TGTKControl_focus_in_event(widget: PGtkWidget; event: PGdkEventFocus; user_data : gpointer): gboolean; cdecl; var Accept: boolean; begin Accept := True; if Assigned(TGTKControl(user_data).FOnEnter) then TGTKControl(user_data).FOnEnter(TGTKControl(user_data), Accept); Result := not Accept; end; function TGTKControl_focus_out_event(widget: PGtkWidget; event: PGdkEventFocus; user_data : gpointer): gboolean; cdecl; var Accept: boolean; begin Accept := True; if Assigned(TGTKControl(user_data).FOnExit) then TGTKControl(user_data).FOnExit(TGTKControl(user_data), Accept); Result := not Accept; end; procedure TGTKControl.SetOnEnter(Value: TGDKFocusEvent); begin if @FOnEnter <> @Value then begin FOnEnter := Value; if Assigned(Value) then FFocusInSignalHandler := g_signal_connect(PGtkObject(FWidget), 'focus-in-event', G_CALLBACK(@TGTKControl_focus_in_event), Self) else g_signal_handler_disconnect(PGtkObject(FWidget), FFocusInSignalHandler); end; end; procedure TGTKControl.SetOnExit(Value: TGDKFocusEvent); begin if @FOnExit <> @Value then begin FOnExit := Value; if Assigned(Value) then FFocusOutSignalHandler := g_signal_connect(PGtkObject(FWidget), 'focus-out-event', G_CALLBACK(@TGTKControl_focus_out_event), Self) else g_signal_handler_disconnect(PGtkObject(FWidget), FFocusOutSignalHandler); end; end; procedure TGTKControl.SetForegroundColor(Red, Green, Blue: word); begin gtk_widget_modify_fg(FWidget, 0, AllocateColor(FWidget, Red, Green, Blue)); end; procedure TGTKControl.SetForegroundColor(State: integer; Red, Green, Blue: word); begin gtk_widget_modify_fg(FWidget, State, AllocateColor(FWidget, Red, Green, Blue)); end; procedure TGTKControl.SetForegroundColor(State: integer; Color: PGdkColor); begin gtk_widget_modify_fg(FWidget, State, Color); end; procedure TGTKControl.SetForegroundColor(Color: PGdkColor); begin gtk_widget_modify_fg(FWidget, 0, Color); end; procedure TGTKControl.SetBackgroundColor(Red, Green, Blue: word); begin gtk_widget_modify_bg(FWidget, 0, AllocateColor(FWidget, Red, Green, Blue)); end; procedure TGTKControl.SetBackgroundColor(State: integer; Red, Green, Blue: word); begin gtk_widget_modify_bg(FWidget, State, AllocateColor(FWidget, Red, Green, Blue)); end; procedure TGTKControl.SetBackgroundColor(State: integer; Color: PGdkColor); begin gtk_widget_modify_bg(FWidget, State, Color); end; procedure TGTKControl.SetBackgroundColor(Color: PGdkColor); begin gtk_widget_modify_bg(FWidget, 0, Color); end; procedure TGTKControl.SetTextColor(Red, Green, Blue: word); begin gtk_widget_modify_text(FWidget, 0, AllocateColor(FWidget, Red, Green, Blue)); end; procedure TGTKControl.SetTextColor(State: integer; Red, Green, Blue: word); begin gtk_widget_modify_text(FWidget, State, AllocateColor(FWidget, Red, Green, Blue)); end; procedure TGTKControl.SetBaseColor(Red, Green, Blue: word); begin gtk_widget_modify_base(FWidget, 0, AllocateColor(FWidget, Red, Green, Blue)); end; procedure TGTKControl.SetBaseColor(State: integer; Red, Green, Blue: word); begin gtk_widget_modify_base(FWidget, State, AllocateColor(FWidget, Red, Green, Blue)); end; procedure TGTKControl.SetOnMouseDown(Value: TGDKMouseEvent); begin if @FOnMouseDown <> @Value then begin FOnMouseDown := Value; if not Assigned(Value) then begin if (not Assigned(FPopupMenu)) and (not Assigned(FOnDblClick)) then begin g_signal_handler_disconnect(PGtkObject(FWidget), FButtonPressSignalHandler); FButtonPressSignalHandler := 0; end; end else if FButtonPressSignalHandler = 0 then FButtonPressSignalHandler := g_signal_connect(PGtkObject(FWidget), 'button-press-event', G_CALLBACK(@TGTKControl_button_press_event), Self) end; end; procedure TGTKControl.SetOnDblClick(Value: TGDKMouseEvent); begin if @FOnMouseDown <> @Value then begin FOnDblClick := Value; if not Assigned(Value) then begin if (not Assigned(FPopupMenu)) and (not Assigned(FOnMouseDown)) then begin g_signal_handler_disconnect(PGtkObject(FWidget), FButtonPressSignalHandler); FButtonPressSignalHandler := 0; end; end else if FButtonPressSignalHandler = 0 then FButtonPressSignalHandler := g_signal_connect(PGtkObject(FWidget), 'button-press-event', G_CALLBACK(@TGTKControl_button_press_event), Self) end; end; function TGTKControl_button_release_event(widget: PGtkWidget; event: PGdkEventButton; user_data: gpointer):gboolean; cdecl; var Shift: TShiftState; Accept: boolean; begin Shift := []; if event^.state and GDK_SHIFT_MASK = GDK_SHIFT_MASK then Include(Shift, ssShift); if event^.state and GDK_CONTROL_MASK = GDK_CONTROL_MASK then Include(Shift, ssCtrl); if event^.state and GDK_MOD1_MASK = GDK_MOD1_MASK then Include(Shift, ssAlt); Accept := True; if Assigned(TGTKControl(user_data).FOnMouseUp) then TGTKControl(user_data).FOnMouseUp(TGTKControl(user_data), TGDKMouseButton(event^.button - 1), Shift, Trunc(event^.x), Trunc(event^.y), Accept); Result := not Accept; end; procedure TGTKControl.SetOnMouseUp(Value: TGDKMouseEvent); begin if @FOnMouseUp <> @Value then begin FOnMouseUp := Value; if Assigned(Value) then FButtonReleaseSignalHandler := g_signal_connect(PGtkObject(FWidget), 'button-release-event', G_CALLBACK(@TGTKControl_button_release_event), Self) else g_signal_handler_disconnect(PGtkObject(FWidget), FButtonReleaseSignalHandler); end; end; function TGTKControl_motion_notify_event(widget: PGtkWidget; event: PGdkEventMotion; user_data: gpointer): gboolean; cdecl; var Shift: TShiftState; Button: TGDKMouseButton; Accept: boolean; begin Accept := True; Result := False; if event^.is_hint <> 0 then Exit; Shift := []; if event^.state and GDK_SHIFT_MASK = GDK_SHIFT_MASK then Include(Shift, ssShift); if event^.state and GDK_CONTROL_MASK = GDK_CONTROL_MASK then Include(Shift, ssCtrl); if event^.state and GDK_MOD1_MASK = GDK_MOD1_MASK then Include(Shift, ssAlt); if event^.state and GDK_BUTTON1_MASK = GDK_BUTTON1_MASK then Button := mbLeft else if event^.state and GDK_BUTTON2_MASK = GDK_BUTTON2_MASK then Button := mbMiddle else if event^.state and GDK_BUTTON3_MASK = GDK_BUTTON3_MASK then Button := mbRight else Button := mbNoButton; if Assigned(TGTKControl(user_data).FOnMouseMove) then TGTKControl(user_data).FOnMouseMove(TGTKControl(user_data), Button, Shift, Trunc(event^.x), Trunc(event^.y), Accept); Result := not Accept; end; procedure TGTKControl.SetOnMouseMove(Value: TGDKMouseEvent); begin if @FOnMouseMove <> @Value then begin FOnMouseMove := Value; if Assigned(Value) then FMotionNotifyHandler := g_signal_connect(PGtkObject(FWidget), 'motion-notify-event', G_CALLBACK(@TGTKControl_motion_notify_event), Self) else g_signal_handler_disconnect(PGtkObject(FWidget), FMotionNotifyHandler); end; end; function TGTKControl.GetDefault: boolean; begin Result := False; if (csDestroying in ComponentState) then Exit; Result := GTK_WIDGET_HAS_DEFAULT(FWidget); end; procedure TGTKControl.SetDefault(Value: boolean); begin if (csDestroying in ComponentState) then Exit; GTK_WIDGET_SET_FLAGS(FWidget, GTK_CAN_DEFAULT); // gtk_widget_grab_default(FWidget); end; procedure TGTKControl.Invalidate; begin if (csDestroying in ComponentState) then Exit; gtk_widget_queue_draw(FWidget); end; procedure TGTKControl.SetAlignment(XAlign, YAlign: Double); begin gtk_misc_set_alignment(PGtkMisc(FWidget), XAlign, YAlign); end; procedure TGTKControl.SetPadding(XPad, YPad: integer); begin gtk_misc_set_padding(PGtkMisc(FWidget), XPad, YPad); end; function TGTKControl_expose_event(widget: PGtkWidget; event: PGdkEventExpose; user_data: gpointer):gboolean; cdecl; var Accept: boolean; begin Accept := True; if Assigned(TGTKControl(user_data).FOnExpose) then TGTKControl(user_data).FOnExpose(TGTKControl(user_data), @event^.area, Accept); Result := not Accept; end; procedure TGTKControl.SetOnExpose(Value: TGDKExposeEvent); begin if @FOnExpose <> @Value then begin FOnExpose := Value; if Assigned(Value) then FExposeSignalHandler := g_signal_connect(PGtkObject(FWidget), 'expose-event', G_CALLBACK(@TGTKControl_expose_event), Self) else g_signal_handler_disconnect(PGtkObject(FWidget), FExposeSignalHandler); end; end; function TGTKControl.GetControlState: TGTKControlState; begin Result := TGTKControlState(FWidget^.state); end; procedure TGTKControl.SetControlState(Value: TGTKControlState); begin gtk_widget_set_state(FWidget, integer(Value)); end; function TGTKControl.GetData(Key: string): Pointer; begin Result := g_object_get_data(G_OBJECT(FWidget), PChar(Key)); end; procedure TGTKControl.SetData(Key: string; Value: Pointer); begin g_object_set_data(G_OBJECT(FWidget), PChar(Key), Value); end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKContainer.Create(AOwner: TComponent); begin inherited Create(AOwner); end; destructor TGTKContainer.Destroy; begin inherited Destroy; end; function TGTKContainer.GetBorderWidth: integer; begin Result := gtk_container_get_border_width(PGtkContainer(FWidget)); end; procedure TGTKContainer.SetBorderWidth(Value: integer); begin gtk_container_set_border_width(PGtkContainer(FWidget), Value); end; procedure TGTKContainer.AddControl(AControl: TGTKControl); begin gtk_container_add(PGtkContainer(FWidget), AControl.FWidget); end; procedure TGTKContainer.RemoveControl(AControl: TGTKControl); begin gtk_container_remove(PGtkContainer(FWidget), AControl.FWidget); end; function TGTKContainer.GetChildrenCount: integer; begin Result := g_list_length(gtk_container_get_children(PGtkContainer(FWidget))); end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKBin.Create(AOwner: TComponent); begin inherited Create(AOwner); end; destructor TGTKBin.Destroy; begin inherited Destroy; end; function TGTKBin.GetChildControl: PGtkWidget; begin Result := gtk_bin_get_child(PGtkBin(FWidget)); end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKBox.Create(AOwner: TComponent); begin inherited Create(AOwner); FLinked := False; end; constructor TGTKBox.CreateLinked(AOwner: TComponent; Widget: PGtkWidget); begin inherited Create(AOwner); FLinked := True; FWidget := Widget; Show; end; destructor TGTKBox.Destroy; begin if not FLinked then inherited Destroy; end; procedure TGTKBox.AddControl(Control: TGTKControl); begin gtk_box_pack_start_defaults(PGtkBox(FWidget), Control.FWidget); end; procedure TGTKBox.AddControlEnd(Control: TGTKControl); begin gtk_box_pack_end_defaults(PGtkBox(FWidget), Control.FWidget); end; procedure TGTKBox.AddControlEx(Control: TGTKControl; Expand, Fill: boolean; Padding: integer); begin gtk_box_pack_start(PGtkBox(FWidget), Control.FWidget, Expand, Fill, Padding); end; procedure TGTKBox.AddControlEndEx(Control: TGTKControl; Expand, Fill: boolean; Padding: integer); begin gtk_box_pack_end(PGtkBox(FWidget), Control.FWidget, Expand, Fill, Padding); end; function TGTKBox.GetHomogeneous: boolean; begin Result := gtk_box_get_homogeneous(PGtkBox(FWidget)); end; procedure TGTKBox.SetHomogeneous(Value: boolean); begin gtk_box_set_homogeneous(PGtkBox(FWidget), Value); end; function TGTKBox.GetSpacing: integer; begin Result := gtk_box_get_spacing(PGtkBox(FWidget)); end; procedure TGTKBox.SetSpacing(Value: integer); begin gtk_box_set_spacing(PGtkBox(FWidget), Value); end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKHBox.Create(AOwner: TComponent); begin inherited Create(AOwner); if ClassName = 'TGTKHBox' then begin FWidget := gtk_hbox_new(True, 0); Show; end; end; destructor TGTKHBox.Destroy; begin inherited Destroy; end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKVBox.Create(AOwner: TComponent); begin inherited Create(AOwner); if ClassName = 'TGTKVBox' then begin FWidget := gtk_vbox_new(False, 0); Show; end; end; destructor TGTKVBox.Destroy; begin inherited Destroy; end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKTooltips.Create(AOwner: TComponent); begin inherited Create(AOwner); FObject := gtk_tooltips_new; end; destructor TGTKTooltips.Destroy; begin inherited Destroy; end; function TGTKTooltips.GetEnabled: boolean; begin Result := Boolean(gtk2.enabled(FObject^)); end; procedure TGTKTooltips.SetEnabled(Value: boolean); begin if Value then gtk_tooltips_enable(FObject) else gtk_tooltips_disable(FObject); end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKEventBox.Create(AOwner: TComponent); begin inherited Create(AOwner); FWidget := gtk_event_box_new; Show; end; destructor TGTKEventBox.Destroy; begin inherited Destroy; end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKTable.Create(AOwner: TComponent); begin inherited Create(AOwner); FWidget := gtk_table_new(0, 0, False); Show; end; destructor TGTKTable.Destroy; begin inherited Destroy; end; function TGTKTable.GetRowCount: integer; begin Result := PGtkTable(FWidget)^.nrows; end; procedure TGTKTable.SetRowCount(Value: integer); begin SetRowColCount(Value, ColCount); end; function TGTKTable.GetColCount: integer; begin Result := PGtkTable(FWidget)^.ncols; end; procedure TGTKTable.SetColCount(Value: integer); begin SetRowColCount(RowCount, Value); end; procedure TGTKTable.SetRowColCount(Rows, Cols: integer); begin gtk_table_resize(PGtkTable(FWidget), Rows, Cols); end; function TGTKTable.GetRowSpacing: integer; begin Result := gtk_table_get_default_row_spacing(PGtkTable(FWidget)); end; procedure TGTKTable.SetRowSpacing(Value: integer); begin gtk_table_set_row_spacings(PGtkTable(FWidget), Value); end; function TGTKTable.GetColSpacing: integer; begin Result := gtk_table_get_default_col_spacing(PGtkTable(FWidget)); end; procedure TGTKTable.SetColSpacing(Value: integer); begin gtk_table_set_col_spacings(PGtkTable(FWidget), Value); end; function TGTKTable.GetHomogeneous: boolean; begin Result := gtk_table_get_homogeneous(PGtkTable(FWidget)); end; procedure TGTKTable.SetHomogeneous(Value: boolean); begin gtk_table_set_homogeneous(PGtkTable(FWidget), Value); end; procedure TGTKTable.AddControl(Column, Row, NumCols, NumRows: integer; Control: TGTKControl; XPadding, YPadding: integer); begin gtk_table_attach(PGtkTable(FWidget), Control.FWidget, Column, Column + NumCols, Row, Row + NumRows, GTK_EXPAND or GTK_SHRINK or GTK_FILL, GTK_EXPAND or GTK_SHRINK or GTK_FILL, XPadding, YPadding); end; procedure TGTKTable.AddControlEx(Column, Row, NumCols, NumRows: integer; Control: TGTKControl; XAttachOptions, YAttachOptions: TGTKTableAttachOptions; XPadding, YPadding: integer); begin gtk_table_attach(PGtkTable(FWidget), Control.FWidget, Column, Column + NumCols, Row, Row + NumRows, (GTK_EXPAND*Ord(taoExpand in XAttachOptions)) or (GTK_SHRINK*Ord(taoShrink in XAttachOptions)) or (GTK_FILL*Ord(taoFill in XAttachOptions)), (GTK_EXPAND*Ord(taoExpand in YAttachOptions)) or (GTK_SHRINK*Ord(taoShrink in YAttachOptions)) or (GTK_FILL*Ord(taoFill in YAttachOptions)), XPadding, YPadding); end; (********************************************************************************************************************************) (********************************************************************************************************************************) end. tuxcmd-0.6.70+dfsg/libgtk_kylix/GTKMenus.pas0000644000175000017500000004353111300022643017700 0ustar salvisalvi(* GTK-Kylix Library: GTKMenus - Menu handling and related routines Version 0.6.13 (last updated 2003-07-10) Copyright (C) 2003 Tomas Bzatek This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 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 Library General Public License for more details. You should have received a copy of the GNU Library 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. *) unit GTKMenus; interface uses gtk2, gdk2, glib2, Classes, GTKControls, GTKConsts, GTKUtils, GTKPixbuf; // Quick jump: QForms QControls QMenus type (****************************************** TGDKSHORTCUTS ***********************************************************************) TGDKShortCut = record Key: word; Locked: boolean; ModAlt: boolean; ModShift: boolean; ModCtrl: boolean; end; TGDKShortCuts = class(TComponent) private FList: TList; FOwner: TGTKControl; function GetCount: Integer; function GetItem(Index: Integer): TGDKShortCut; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure Add(Item: TGDKShortCut); procedure AddName(Item: string); procedure Clear; procedure Delete(Index: Integer); procedure Insert(Index: Integer; Item: TGDKShortCut); function IndexOf(Item: TGDKShortCut): Integer; property Count: Integer read GetCount; property Items[Index: Integer]: TGDKShortCut read GetItem; default; end; (****************************************** TGTKMENUITEM ************************************************************************) TGTKMenuItemType = (itLabel, itSeparator, itTearOff, itCheck, itImageText, itRadio); TGTKMenuItemGroup = PGSList; TGTKMenuItem = class(TGTKBin) private FItems: TList; FTearOffTitle: string; FOnClick: TNotifyEvent; FUKey: guint; FItemType: TGTKMenuItemType; FNotify: TNotifyEvent; FImageWidget: PGtkWidget; FData: Pointer; FOnPopup: TNotifyEvent; function GetCount: Integer; function GetItem(Index: Integer): TGTKMenuItem; function GetCaption: string; function GetRightJustified: boolean; function GetTornOff: boolean; function GetChecked: boolean; function GetGroup: TGTKMenuItemGroup; procedure SetCaption(Value: string); procedure SetTearOffTitle(Value: string); procedure SetRightJustified(Value: boolean); procedure SetItemType(Value: TGTKMenuItemType); procedure SetTornOff(Value: boolean); procedure SetChecked(Value: boolean); procedure SetStockIcon(Value: string); procedure SetIcon(Value: TGDKPixbuf); procedure SetGroup(Value: TGTKMenuItemGroup); protected public FMenu: PGtkWidget; FParentMenu: TGTKControl; ShortCuts: TGDKShortCuts; constructor Create(AOwner: TComponent); override; constructor CreateTyped(AOwner: TComponent; const ItemType: TGTKMenuItemType; AGroup: TGTKMenuItemGroup = nil); destructor Destroy; override; procedure Recreate(AGroup: TGTKMenuItemGroup = nil); procedure Add(Item: TGTKMenuItem); procedure Clear; procedure Delete(Index: Integer); procedure Insert(Index: Integer; Item: TGTKMenuItem); procedure TearOff; procedure UnTearOff; procedure PopUp; procedure PopDown; procedure SetCaptionPlain(Value: string); property Count: Integer read GetCount; property Items[Index: Integer]: TGTKMenuItem read GetItem; default; property Caption: string read GetCaption write SetCaption; property TearOffTitle: string read FTearOffTitle write SetTearOffTitle; property RightJustified: boolean read GetRightJustified write SetRightJustified default False; property OnClick: TNotifyEvent read FOnClick write FOnClick; property ItemType: TGTKMenuItemType read FItemType write SetItemType default itLabel; property TornOff: boolean read GetTornOff write SetTornOff; property Checked: boolean read GetChecked write SetChecked; property Notify: TNotifyEvent read FNotify write FNotify; property StockIcon: string write SetStockIcon; property Icon: TGDKPixbuf write SetIcon; property Data: Pointer read FData write FData; property OnPopup: TNotifyEvent read FOnPopup write FOnPopup; property Group: TGTKMenuItemGroup read GetGroup write SetGroup; end; (****************************************** TGTKMENUBAR *************************************************************************) TGTKMenuBar = class(TGTKContainer) private FItems: TGTKMenuItem; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; published property Items: TGTKMenuItem read FItems; end; function MakeGDKShortCut(Key: word; Locked, ModAlt, ModShift, ModCtrl : boolean): TGDKShortCut; (********************************************************************************************************************************) (********************************************************************************************************************************) (********************************************************************************************************************************) (********************************************************************************************************************************) implementation uses GTKForms, GTKExtCtrls; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKMenuBar.Create(AOwner: TComponent); begin inherited Create(AOwner); FWidget := gtk_menu_bar_new; Show; FItems := TGTKMenuItem.Create(Self); FItems.FParentMenu := Self; end; destructor TGTKMenuBar.Destroy; begin if Assigned(FItems) then FItems.Free; inherited Destroy; end; (********************************************************************************************************************************) (********************************************************************************************************************************) procedure TGTKMenuItem_activate(menuitem : PGtkMenuItem; user_data: pgpointer); cdecl; begin if Assigned(TGTKMenuItem(user_data).FOnClick) then TGTKMenuItem(user_data).FOnClick(TGTKMenuItem(user_data)); end; constructor TGTKMenuItem.Create(AOwner: TComponent); begin inherited Create(AOwner); FItemType := itLabel; FImageWidget := nil; FItems := nil; FMenu := nil; FOnClick := nil; FWidget := nil; FParentMenu := nil; FNotify := nil; FData := nil; FOnPopup := nil; ShortCuts := TGDKShortCuts.Create(Self); FTearOffTitle := ''; FUKey := 0; Recreate; end; constructor TGTKMenuItem.CreateTyped(AOwner: TComponent; const ItemType: TGTKMenuItemType; AGroup: TGTKMenuItemGroup = nil); begin inherited Create(AOwner); FItemType := ItemType; FImageWidget := nil; FItems := nil; FMenu := nil; FOnClick := nil; FWidget := nil; FParentMenu := nil; FNotify := nil; FData := nil; ShortCuts := TGDKShortCuts.Create(Self); FTearOffTitle := ''; FUKey := 0; Recreate(AGroup); end; destructor TGTKMenuItem.Destroy; begin if not (csDestroying in ComponentState) then begin ShortCuts.Free; if FItems <> nil then begin Clear; FItems.Free; FItems := nil; end; end; inherited Destroy; end; procedure TGTKMenuItem.Recreate(AGroup: TGTKMenuItemGroup = nil); begin if Assigned(FWidget) then begin gtk_widget_unparent(FWidget); gtk_widget_hide(FWidget); gtk_widget_destroy(FWidget); end; case FItemType of itLabel: FWidget := gtk_menu_item_new_with_mnemonic(Pgchar(SCDefaultMenuItemCaption)); itSeparator: FWidget := gtk_menu_item_new; itTearOff: FWidget := gtk_tearoff_menu_item_new; itCheck: FWidget := gtk_check_menu_item_new_with_mnemonic(Pgchar(SCDefaultMenuItemCaption)); itImageText: begin FWidget := gtk_image_menu_item_new_with_mnemonic(Pgchar(SCDefaultMenuItemCaption)); FImageWidget := gtk_image_new; gtk_widget_show(FImageWidget); gtk_image_menu_item_set_image(PGtkImageMenuItem(FWidget), FImageWidget); end; itRadio: FWidget := gtk_radio_menu_item_new_with_mnemonic(AGroup, Pgchar(SCDefaultMenuItemCaption)); end; g_signal_connect(PGtkObject(FWidget), 'activate', G_CALLBACK(@TGTKMenuItem_activate), Self); Show; end; procedure TGTKMenuItem.Add(Item: TGTKMenuItem); begin Insert(GetCount, Item); end; procedure TGTKMenuItem.Clear; var i: Integer; begin if Count > 0 then for i := Count - 1 downto 0 do Delete(i); end; function TGTKMenuItem.GetCount: Integer; begin if FItems = nil then Result := 0 else Result := FItems.Count; end; function TGTKMenuItem.GetItem(Index: Integer): TGTKMenuItem; begin Result := nil; if FItems = nil then Exit; Result := FItems[Index]; end; procedure TGTKMenuItem.Delete(Index: Integer); begin if (Index < 0) or (FItems = nil) or (Index >= GetCount) then Exit; if FParentMenu is TGTKMenuBar then gtk_container_remove(PGtkContainer(Parent.FWidget), TGTKMenuItem(FItems[Index]).FWidget) else gtk_container_remove(PGtkContainer(FMenu), TGTKMenuItem(FItems[Index]).FWidget); // Items[Index].Free; FItems.Delete(Index); if FItems.Count = 0 then begin if (FParentMenu is TGTKMenuItem) or (FParentMenu is TGTKMenuBar) then begin if (FParentMenu is TGTKMenuItem) or (FParentMenu is TGTKMenuBar) then gtk_menu_item_remove_submenu(PGtkMenuItem(FWidget)); gtk_widget_destroy(FMenu); FMenu := nil; end; FItems.Free; FItems := nil; end; if Assigned(Notify) then Notify(Self); end; procedure TGTKMenuItem.Insert(Index: Integer; Item: TGTKMenuItem); begin if (Item = Self) or (FItemType in [itSeparator, itTearOff]) then Exit; if FItems = nil then begin FItems := TList.Create; if FMenu = nil then FMenu := gtk_menu_new; if (FParentMenu is TGTKMenuItem) or (FParentMenu is TGTKMenuBar) then gtk_menu_item_set_submenu(PGtkMenuItem(FWidget), FMenu); SetTearOffTitle(FTearOffTitle); end; Item.FParentMenu := Self; FItems.Insert(Index, Item); if FParentMenu is TGTKMenuBar then gtk_menu_shell_insert(PGtkMenuShell(FParentMenu.FWidget), Item.FWidget, Index) else gtk_menu_shell_insert(PGtkMenuShell(FMenu), Item.FWidget, Index); if Assigned(Notify) then Notify(Self); end; function TGTKMenuItem.GetCaption: string; begin Result := ''; if FItemType in [itSeparator, itTearOff] then Exit; if Assigned(ChildControl) then Result := PgcharToString(gtk_label_get_text(PGtkLabel(ChildControl))); end; procedure TGTKMenuItem.SetCaption(Value: string); begin if FItemType in [itSeparator, itTearOff] then Exit; gtk_label_set_markup_with_mnemonic(PGtkLabel(ChildControl), StringToPgchar(Value)); if FTearOffTitle = '' then SetTearOffTitle(Value); end; procedure TGTKMenuItem.SetCaptionPlain(Value: string); begin if FItemType in [itSeparator, itTearOff] then Exit; gtk_label_set_markup(PGtkLabel(ChildControl), StringToPgchar(Value)); if FTearOffTitle = '' then SetTearOffTitle(Value); end; procedure TGTKMenuItem.SetTearOffTitle(Value: string); begin FTearOffTitle := Value; if FItemType = itTearOff then begin if Assigned(FParentMenu) and (FParentMenu is TGTKMenuItem) and Assigned((FParentMenu as TGTKMenuItem).FMenu) then gtk_menu_set_title(PGtkMenu((FParentMenu as TGTKMenuItem).FMenu), StringToPgchar(FTearOffTitle)) end else if Assigned(FMenu) then gtk_menu_set_title(PGtkMenu(FMenu), StringToPgchar(FTearOffTitle)); end; function TGTKMenuItem.GetRightJustified: boolean; begin Result := False; if FItemType in [itSeparator, itTearOff] then Exit; Result := gtk_menu_item_get_right_justified(PGtkMenuItem(FWidget)); end; procedure TGTKMenuItem.SetRightJustified(Value: boolean); begin if FItemType in [itSeparator, itTearOff] then Exit; gtk_menu_item_set_right_justified(PGtkMenuItem(FWidget), Value); end; procedure TGTKMenuItem.SetItemType(Value: TGTKMenuItemType); begin if Value <> FItemType then begin FItemType := Value; Recreate; end; end; function TGTKMenuItem.GetTornOff: boolean; begin if FItemType = itTearOff then Result := Boolean(torn_off(PGTKTearOffMenuItem(FWidget)^)) else if Assigned(FMenu) and (Count > 0) then Result := Boolean(torn_off(PGTKMenu(FMenu)^)) else Result := False; end; procedure TGTKMenuItem.SetTornOff(Value: boolean); begin if FItemType = itTearOff then begin if Assigned(FParentMenu) and (FParentMenu is TGTKMenuItem) and Assigned((FParentMenu as TGTKMenuItem).FMenu) then gtk_menu_set_tearoff_state(PGtkMenu((FParentMenu as TGTKMenuItem).FMenu), Value); end else if Assigned(FMenu) then gtk_menu_set_tearoff_state(PGtkMenu(FMenu), Value); end; procedure TGTKMenuItem.TearOff; begin SetTornOff(True); end; procedure TGTKMenuItem.UnTearOff; begin SetTornOff(False); end; function TGTKMenuItem.GetChecked: boolean; begin Result := False; if (FItemType = itCheck) or (FItemType = itRadio) then Result := Boolean(active(PGtkCheckMenuItem(FWidget)^)); end; procedure TGTKMenuItem.SetChecked(Value: boolean); begin if (FItemType = itCheck) or (FItemType = itRadio) then gtk_check_menu_item_set_active(PGtkCheckMenuItem(FWidget), Value); end; procedure TGTKMenuItem.PopUp; begin if Assigned(FOnPopup) then FOnPopup(Self); if (FItems <> nil) and (FItems.Count > 0) then gtk_menu_popup(PGtkMenu(FMenu), nil, nil, nil, nil, 3, gtk_get_current_event_time); end; procedure TGTKMenuItem.PopDown; begin if (FItems <> nil) and (FItems.Count > 0) then gtk_menu_popdown(PGtkMenu(FMenu)); end; procedure TGTKMenuItem.SetStockIcon(Value: string); begin gtk_image_set_from_stock(PGtkImage(FImageWidget), PChar(Value), GTK_ICON_SIZE_MENU); end; procedure TGTKMenuItem.SetIcon(Value: TGDKPixbuf); begin gtk_image_set_from_pixbuf(PGtkImage(FImageWidget), Value.FPixbuf); end; function TGTKMenuItem.GetGroup: TGTKMenuItemGroup; begin Result := gtk_radio_menu_item_get_group(PGtkRadioMenuItem(FWidget)); end; procedure TGTKMenuItem.SetGroup(Value: TGTKMenuItemGroup); begin gtk_radio_menu_item_set_group(PGtkRadioMenuItem(FWidget), Value); end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGDKShortCuts.Create(AOwner: TComponent); begin inherited Create(AOwner); FList := TList.Create; FOwner := TGTKControl(AOwner); end; destructor TGDKShortCuts.Destroy; begin if not (csDestroying in ComponentState) then Clear; inherited Destroy; end; function TGDKShortCuts.GetCount: Integer; begin Result := FList.Count; end; procedure TGDKShortCuts.Add(Item: TGDKShortCut); begin Insert(GetCount, Item); end; procedure TGDKShortCuts.AddName(Item: string); var Key, Modifiers: guint; begin gtk_accelerator_parse(StringToPgchar(Item), @Key, @Modifiers); if Key <> 0 then Add(MakeGDKShortCut(Key, False, Modifiers and GDK_MOD1_MASK = GDK_MOD1_MASK, Modifiers and GDK_SHIFT_MASK = GDK_SHIFT_MASK, Modifiers and GDK_CONTROL_MASK = GDK_CONTROL_MASK)); end; procedure TGDKShortCuts.Clear; var i: Integer; begin for i := Count - 1 downto 0 do Delete(i); end; function GetAccelMods(SC: TGDKShortCut): guint; begin Result := 0; if SC.ModShift then Inc(Result, GDK_SHIFT_MASK); if SC.ModCtrl then Inc(Result, GDK_CONTROL_MASK); if SC.ModAlt then Inc(Result, GDK_MOD1_MASK); end; function GetAccelFlags(SC: TGDKShortCut): TGtkAccelFlags; begin Result := GTK_ACCEL_VISIBLE; if SC.Locked then Result := GTK_ACCEL_LOCKED; end; procedure TGDKShortCuts.Delete(Index: Integer); begin if (Index < 0) or (FList = nil) or (Index >= GetCount) then Exit; if (GetParentForm(FOwner) <> nil) and (not (csDestroying in ComponentState)) then gtk_widget_remove_accelerator(FOwner.FWidget, GetParentForm(FOwner).FAccelGroup, TGDKShortCut(FList[Index]^).Key, GetAccelMods(TGDKShortCut(FList[Index]^))); FList.Delete(Index); end; procedure TGDKShortCuts.Insert(Index: Integer; Item: TGDKShortCut); begin FList.Insert(Index, @Item); if GetParentForm(FOwner) <> nil then gtk_widget_add_accelerator(FOwner.FWidget, 'activate', GetParentForm(FOwner).FAccelGroup, Item.Key, GetAccelMods(Item), GetAccelFlags(Item)); end; function TGDKShortCuts.GetItem(Index: Integer): TGDKShortCut; begin Result := TGDKShortCut(FList[Index]^); end; function TGDKShortCuts.IndexOf(Item: TGDKShortCut): Integer; var i : integer; begin Result := -1; if FList.Count > 0 then for i := 0 to FList.Count - 1 do if (TGDKShortCut(FList[i]^).Key = Item.Key) and (TGDKShortCut(FList[i]^).Locked = Item.Locked) and (TGDKShortCut(FList[i]^).ModAlt = Item.ModAlt) and (TGDKShortCut(FList[i]^).ModShift = Item.ModShift) and (TGDKShortCut(FList[i]^).ModCtrl = Item.ModCtrl) then begin Result := i; Break; end; end; function MakeGDKShortCut(Key: word; Locked, ModAlt, ModShift, ModCtrl : boolean): TGDKShortCut; begin Result.Key := Key; Result.Locked := Locked; Result.ModAlt := ModAlt; Result.ModShift := ModShift; Result.ModCtrl := ModCtrl; end; (********************************************************************************************************************************) (********************************************************************************************************************************) end. tuxcmd-0.6.70+dfsg/libgtk_kylix/GTKStdCtrls.pas0000644000175000017500000010045411300022643020351 0ustar salvisalvi(* GTK-Kylix Library: GTKStdCtrls - Standard visual controls (such as buttons, labels, entry) Version 0.6.24 (last updated 2008-11-17) Copyright (C) 2007 Tomas Bzatek This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 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 Library General Public License for more details. You should have received a copy of the GNU Library 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. *) unit GTKStdCtrls; interface uses gtk2, gdk2, glib2, Classes, GTKControls, GTKConsts, GTKClasses; // Quick jump: QForms QControls QStdCtrls type (****************************************** TGTKBUTTON **************************************************************************) TGTKBorderStyle = (bsNormal, bsHalf, bsNone); TGTKButton = class(TGTKBin) private FOnClick: TNotifyEvent; function GetCaption: string; function GetUseStock: boolean; function GetUseUnderline: boolean; function GetBorderStyle: TGTKBorderStyle; procedure SetCaption(Value: string); procedure SetUseStock(Value: boolean); procedure SetUseUnderline(Value: boolean); procedure SetBorderStyle(Value: TGTKBorderStyle); public constructor Create(AOwner: TComponent); override; constructor CreateFromStock(AOwner: TComponent; const StockID: PChar); destructor Destroy; override; published property Caption: string read GetCaption write SetCaption; property OnClick: TNotifyEvent read FOnClick write FOnClick; property UseStock: boolean read GetUseStock write SetUseStock; property UseUnderline: boolean read GetUseUnderline write SetUseUnderline; property BorderStyle: TGTKBorderStyle read GetBorderStyle write SetBorderStyle; end; (****************************************** TGTKMISC ****************************************************************************) TGTKMisc = class(TGTKControl) private function GetXAlign: Single; function GetYAlign: Single; function GetXPadding: integer; function GetYPadding: integer; procedure SetXAlign(Value: Single); procedure SetYAlign(Value: Single); procedure SetXPadding(Value: integer); procedure SetYPadding(Value: integer); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure SetAlignment(XAlign, YAlign : Single); procedure SetPadding(XPadding, YPadding : integer); published property XAlign: Single read GetXAlign write SetXAlign; property YAlign: Single read GetYAlign write SetYAlign; property XPadding: integer read GetXPadding write SetXPadding; property YPadding: integer read GetYPadding write SetYPadding; end; (****************************************** TGTKLABEL **************************************************************************) TGTKAlignment = (taLeftJustify, taRightJustify, taCenter, taFill); TGTKLabel = class(TGTKMisc) private FLinked: boolean; function GetCaption: string; function GetAlignment: TGTKAlignment; function GetUseMarkup: boolean; function GetLineWrap: boolean; function GetUseUnderline: boolean; function GetSelectable: boolean; procedure SetCaption(Value: string); procedure SetAlignment(Value: TGTKAlignment); procedure SetUseMarkup(Value: boolean); procedure SetLineWrap(Value: boolean); procedure SetUseUnderline(Value: boolean); procedure SetFocusControl(Value: TGTKControl); procedure SetSelectable(Value: boolean); public constructor Create(AOwner: TComponent); override; constructor CreateFromWidget(AOwner: TComponent; Widget: PGtkWidget); destructor Destroy; override; procedure SetMarkup(const Text: string); published property Caption: string read GetCaption write SetCaption; property Alignment: TGTKAlignment read GetAlignment write SetAlignment; property UseMarkup: boolean read GetUseMarkup write SetUseMarkup; property LineWrap: boolean read GetLineWrap write SetLineWrap; property UseUnderline: boolean read GetUseUnderline write SetUseUnderline; property FocusControl: TGTKControl write SetFocusControl; property Selectable: boolean read GetSelectable write SetSelectable; end; (****************************************** TGTKTOGGLEBUTTON ********************************************************************) TGTKToggleButton = class(TGTKButton) private FOnToggled: TNotifyEvent; function GetCaption: string; function GetChecked: boolean; function GetDrawIndicator: boolean; function GetInconsistent: boolean; procedure SetCaption(Value: string); procedure SetChecked(Value: boolean); procedure SetDrawIndicator(Value: boolean); procedure SetInconsistent(Value: boolean); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; published property Caption: string read GetCaption write SetCaption; property Checked: boolean read GetChecked write SetChecked; property DrawIndicator: boolean read GetDrawIndicator write SetDrawIndicator; property OnToggled: TNotifyEvent read FOnToggled write FOnToggled; property Inconsistent: boolean read GetInconsistent write SetInconsistent; property UseUnderline; end; (****************************************** TGTKCHECKBUTTON *********************************************************************) TGTKCheckButton = class(TGTKToggleButton) public constructor Create(AOwner: TComponent); override; constructor CreateWithLabel(AOwner: TComponent; const ALabel: string); destructor Destroy; override; published property Caption; property Checked; property DrawIndicator; property OnToggled; property UseUnderline; end; (****************************************** TGTKRADIOBUTTON *********************************************************************) TGTKRadioButton = class(TGTKToggleButton) public constructor Create(AOwner: TComponent); override; constructor CreateWithLabel(AOwner: TComponent; const ALabel: string); destructor Destroy; override; procedure SetRadioGroup(RadioButton: TGTKRadioButton); published property Caption; property Checked; property DrawIndicator; property OnToggled; end; (****************************************** TGTKFRAME ***************************************************************************) TGTKFrame = class(TGTKBin) private function GetCaption: string; function GetShadowType: TGTKShadowType; procedure SetCaption(Value: string); procedure SetShadowType(Value: TGTKShadowType); public constructor Create(AOwner: TComponent); override; constructor CreateWithoutLabel(AOwner: TComponent); destructor Destroy; override; published property Caption: string read GetCaption write SetCaption; property ShadowType: TGTKShadowType read GetShadowType write SetShadowType; end; (****************************************** TGTKEDITABLE ************************************************************************) TGTKEditable = class(TGTKControl) private FOnChanged: TNotifyEvent; function GetEditable: boolean; function GetPosition: integer; procedure SetEditable(Value: boolean); procedure SetPosition(Value: integer); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure CutClipboard; procedure CopyClipboard; procedure PasteClipboard; procedure DeleteSelection; procedure SelectRegion(StartPosition, EndPosition: integer); procedure InsertText(AText: string; Position: integer); procedure DeleteText(StartPosition, EndPosition: integer); function GetChars(StartPosition, EndPosition: integer): string; published property Editable: boolean read GetEditable write SetEditable; property CursorPosition: integer read GetPosition write SetPosition; property OnChanged: TNotifyEvent read FOnChanged write FOnChanged; end; (****************************************** TGTKENTRY ************************************************************************) TGTKEntry = class(TGTKEditable) private FLinked: boolean; function GetText: string; function GetMaxLength: integer; function GetVisibility: boolean; procedure SetText(Value: string); procedure SetMaxLength(Value: integer); procedure SetVisibility(Value: boolean); public constructor Create(AOwner: TComponent); override; constructor CreateFromWidget(AOwner: TComponent; Widget: PGtkWidget); destructor Destroy; override; procedure SelectAll; published property Text: string read GetText write SetText; property MaxLength: integer read GetMaxLength write SetMaxLength; property Visibility: boolean read GetVisibility write SetVisibility; end; (****************************************** TGTKCOMBO **************************************************************************) TGTKCombo = class(TGTKHBox) private procedure ItemsChanged(Sender: TObject); function GetAllowEmpty: boolean; function GetMatchValue: boolean; function GetCaseSensitive: boolean; procedure SetAllowEmpty(Value: boolean); procedure SetMatchValue(Value: boolean); procedure SetCaseSensitive(Value: boolean); public Items: TGList; Entry: TGTKEntry; constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure UpdateItems; procedure SetPolicy(MatchValue, AllowEmpty: boolean); procedure DisableActivate; published property AllowEmpty: boolean read GetAllowEmpty write SetAllowEmpty; property MatchValue: boolean read GetMatchValue write SetMatchValue; property CaseSensitive: boolean read GetCaseSensitive write SetCaseSensitive; end; (****************************************** TGTKSPINEDIT ************************************************************************) TGTKSpinEdit = class(TGTKEntry) private FAdjustment: PGtkAdjustment; function GetDigits: integer; procedure SetDigits(AValue: integer); function GetMin: Double; procedure SetMin(AValue: Double); function GetMax: Double; procedure SetMax(AValue: Double); function GetIncrementStep: Double; procedure SetIncrementStep(AValue: Double); function GetIncrementPage: Double; procedure SetIncrementPage(AValue: Double); function GetValue: Double; procedure SetValue(AValue: Double); function GetAsInteger: integer; procedure SetAsInteger(AValue: integer); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; published property Digits: integer read GetDigits write SetDigits; property Min: Double read GetMin write SetMin; property Max: Double read GetMax write SetMax; property IncrementStep: Double read GetIncrementStep write SetIncrementStep; property IncrementPage: Double read GetIncrementPage write SetIncrementPage; property Value: Double read GetValue write SetValue; property AsInteger: integer read GetAsInteger write SetAsInteger; property AsFloat: Double read GetValue write SetValue; end; procedure TGTKButton_OnClick(button: PGtkButton; user_data: Pgpointer); cdecl; (********************************************************************************************************************************) (********************************************************************************************************************************) implementation uses GTKUtils; (********************************************************************************************************************************) (********************************************************************************************************************************) procedure TGTKButton_OnClick(button: PGtkButton; user_data: Pgpointer); cdecl; begin if Assigned(TGTKButton(user_data).FOnClick) then TGTKButton(user_data).FOnClick(TGTKButton(user_data)); end; constructor TGTKButton.Create(AOwner: TComponent); begin inherited Create(AOwner); FOnClick := nil; if ClassName = 'TGTKButton' then begin FWidget := gtk_button_new_with_mnemonic(StringToPgchar(SCDefaultButtonCaption)); g_signal_connect(PGtkObject(FWidget), 'clicked', G_CALLBACK(@TGTKButton_OnClick), Self); Show; end; end; constructor TGTKButton.CreateFromStock(AOwner: TComponent; const StockID: PChar); begin inherited Create(AOwner); FOnClick := nil; if ClassName = 'TGTKButton' then begin FWidget := gtk_button_new_from_stock(StockID); g_signal_connect(PGtkObject(FWidget), 'clicked', G_CALLBACK(@TGTKButton_OnClick), Self); Show; end; end; destructor TGTKButton.Destroy; begin inherited Destroy; end; function TGTKButton.GetCaption: string; begin Result := PgcharToString(gtk_label_get_text(PGtkLabel(ChildControl))); end; procedure TGTKButton.SetCaption(Value: string); begin gtk_label_set_text_with_mnemonic(PGtkLabel(ChildControl), StringToPgchar(Value)); end; function TGTKButton.GetUseStock: boolean; begin Result := gtk_button_get_use_stock(PGtkButton(FWidget)); end; procedure TGTKButton.SetUseStock(Value: boolean); begin gtk_button_set_use_stock(PGtkButton(FWidget), Value); end; function TGTKButton.GetUseUnderline: boolean; begin Result := gtk_button_get_use_underline(PGtkButton(FWidget)); end; procedure TGTKButton.SetUseUnderline(Value: boolean); begin gtk_button_set_use_underline(PGtkButton(FWidget), Value); end; function TGTKButton.GetBorderStyle: TGTKBorderStyle; begin Result := TGTKBorderStyle(gtk_button_get_relief(PGtkButton(FWidget))); end; procedure TGTKButton.SetBorderStyle(Value: TGTKBorderStyle); begin gtk_button_set_relief(PGtkButton(FWidget), integer(Value)); end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKMisc.Create(AOwner: TComponent); begin inherited Create(AOwner); end; destructor TGTKMisc.Destroy; begin inherited Destroy; end; procedure TGTKMisc.SetAlignment(XAlign, YAlign : Single); begin // Writeln('gtk_misc_set_alignment, FWidget = ', integer(FWidget), ', XAlign = ', XAlign, ', YAlign = ', YAlign); gtk_misc_set_alignment(PGtkMisc(FWidget), XAlign, YAlign); end; function TGTKMisc.GetXAlign: Single; {var xalign, yalign: pgfloat; } begin { gtk_misc_get_alignment(PGtkMisc(FWidget), xalign, yalign); if Assigned(xalign) then Result := Single(xalign^) else Result := 0; } if Assigned(FWidget) then Result := PGtkMisc(FWidget)^.xalign else Result := 0; end; procedure TGTKMisc.SetXAlign(Value: Single); begin SetAlignment(Value, YAlign); end; function TGTKMisc.GetYAlign: Single; {var xalign, yalign: Extended; x: Extended; } begin { gtk_misc_get_alignment(PGtkMisc(FWidget), @xalign, @yalign); writeln('yalign = ', integer(yalign)); if Assigned(yalign) then Result := yalign else Result := 0; } if Assigned(FWidget) then Result := PGtkMisc(FWidget)^.yalign else Result := 0; end; procedure TGTKMisc.SetYAlign(Value: Single); begin SetAlignment(XAlign, Value); end; procedure TGTKMisc.SetPadding(XPadding, YPadding : integer); begin gtk_misc_set_padding(PGtkMisc(FWidget), XPadding, YPadding); end; procedure x_gtk_misc_get_padding(misc:PGtkMisc; xpad:Pgint; ypad:Pgint); cdecl; external gtklib name 'gtk_misc_get_padding'; function TGTKMisc.GetXPadding: integer; var xpad, ypad: gint; begin x_gtk_misc_get_padding(PGtkMisc(FWidget), @xpad, @ypad); Result := xpad; end; procedure TGTKMisc.SetXPadding(Value: integer); begin SetPadding(Value, YPadding); end; function TGTKMisc.GetYPadding: integer; var xpad, ypad: gint; begin x_gtk_misc_get_padding(PGtkMisc(FWidget), @xpad, @ypad); Result := ypad; end; procedure TGTKMisc.SetYPadding(Value: integer); begin SetPadding(XPadding, Value); end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKLabel.Create(AOwner: TComponent); begin inherited Create(AOwner); FWidget := gtk_label_new(nil); FLinked := False; Show; end; constructor TGTKLabel.CreateFromWidget(AOwner: TComponent; Widget: PGtkWidget); begin inherited Create(AOwner); FWidget := Widget; FLinked := True; Show; end; destructor TGTKLabel.Destroy; begin if not FLinked then inherited Destroy; end; function TGTKLabel.GetCaption: string; begin Result := PgcharToString(gtk_label_get_text(PGtkLabel(FWidget))); end; procedure TGTKLabel.SetCaption(Value: string); begin gtk_label_set_text(PGtkLabel(FWidget), StringToPgchar(Value)); end; function TGTKLabel.GetAlignment: TGTKAlignment; begin Result := TGTKAlignment(gtk_label_get_justify(PGtkLabel(FWidget))); end; procedure TGTKLabel.SetAlignment(Value: TGTKAlignment); begin gtk_label_set_justify(PGtkLabel(FWidget), TGtkJustification(Value)); end; procedure TGTKLabel.SetMarkup(const Text: string); begin gtk_label_set_markup(PGtkLabel(FWidget), PChar(Text)); end; function TGTKLabel.GetUseMarkup: boolean; begin Result := gtk_label_get_use_markup(PGtkLabel(FWidget)); end; procedure TGTKLabel.SetUseMarkup(Value: boolean); begin gtk_label_set_use_markup(PGtkLabel(FWidget), Value); end; function TGTKLabel.GetLineWrap: boolean; begin Result := gtk_label_get_line_wrap(PGtkLabel(FWidget)); end; procedure TGTKLabel.SetLineWrap(Value: boolean); begin gtk_label_set_line_wrap(PGtkLabel(FWidget), Value); end; function TGTKLabel.GetUseUnderline: boolean; begin Result := gtk_label_get_use_underline(PGtkLabel(FWidget)); end; procedure TGTKLabel.SetUseUnderline(Value: boolean); begin gtk_label_set_use_underline(PGtkLabel(FWidget), Value); end; procedure TGTKLabel.SetFocusControl(Value: TGTKControl); begin gtk_label_set_mnemonic_widget(PGtkLabel(FWidget), Value.FWidget); end; function TGTKLabel.GetSelectable: boolean; begin Result := gtk_label_get_selectable(PGtkLabel(FWidget)); end; procedure TGTKLabel.SetSelectable(Value: boolean); begin gtk_label_set_selectable(PGtkLabel(FWidget), Value); end; (********************************************************************************************************************************) (********************************************************************************************************************************) procedure TGTKToggleButton_OnToggled(ToggleButton: PGtkToggleButton; user_data: Pgpointer); cdecl; begin if Assigned(TGTKToggleButton(user_data).FOnToggled) then TGTKToggleButton(user_data).FOnToggled(TGTKToggleButton(user_data)); end; constructor TGTKToggleButton.Create(AOwner: TComponent); begin inherited Create(AOwner); FOnToggled := nil; if ClassName = 'TGTKToggleButton' then begin FWidget := gtk_toggle_button_new_with_label(StringToPgchar(SCDefaultToggleButtonCaption)); g_signal_connect(PGtkObject(FWidget), 'toggled', G_CALLBACK(@TGTKToggleButton_OnToggled), Self); Show; end; end; destructor TGTKToggleButton.Destroy; begin inherited Destroy; end; function TGTKToggleButton.GetCaption: string; begin Result := PgcharToString(gtk_label_get_text(PGtkLabel(ChildControl))); end; procedure TGTKToggleButton.SetCaption(Value: string); begin gtk_label_set_text(PGtkLabel(ChildControl), StringToPgchar(Value)); end; function TGTKToggleButton.GetChecked: boolean; begin Result := gtk_toggle_button_get_active(PGtkToggleButton(FWidget)); end; procedure TGTKToggleButton.SetChecked(Value: boolean); begin gtk_toggle_button_set_active(PGtkToggleButton(FWidget), Value); end; function TGTKToggleButton.GetDrawIndicator: boolean; begin Result := gtk_toggle_button_get_mode(PGtkToggleButton(FWidget)); end; procedure TGTKToggleButton.SetDrawIndicator(Value: boolean); begin gtk_toggle_button_set_mode(PGtkToggleButton(FWidget), Value); end; function TGTKToggleButton.GetInconsistent: boolean; begin Result := gtk_toggle_button_get_inconsistent(PGtkToggleButton(FWidget)); end; procedure TGTKToggleButton.SetInconsistent(Value: boolean); begin gtk_toggle_button_set_inconsistent(PGtkToggleButton(FWidget), Value); end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKCheckButton.Create(AOwner: TComponent); begin inherited Create(AOwner); if ClassName = 'TGTKCheckButton' then begin FWidget := gtk_check_button_new_with_mnemonic(StringToPgchar(SCDefaultCheckButtonCaption)); g_signal_connect(PGtkObject(FWidget), 'toggled', G_CALLBACK(@TGTKToggleButton_OnToggled), Self); Show; end; end; constructor TGTKCheckButton.CreateWithLabel(AOwner: TComponent; const ALabel: string); begin inherited Create(AOwner); if ClassName = 'TGTKCheckButton' then begin FWidget := gtk_check_button_new_with_mnemonic(StringToPgchar(ALabel)); g_signal_connect(PGtkObject(FWidget), 'toggled', G_CALLBACK(@TGTKToggleButton_OnToggled), Self); Show; end; end; destructor TGTKCheckButton.Destroy; begin inherited Destroy; end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKRadioButton.Create(AOwner: TComponent); begin inherited Create(AOwner); if ClassName = 'TGTKRadioButton' then begin FWidget := gtk_radio_button_new_with_label(nil, StringToPgchar(SCDefaultRadioButtonCaption)); g_signal_connect(PGtkObject(FWidget), 'toggled', G_CALLBACK(@TGTKToggleButton_OnToggled), Self); Show; end; end; constructor TGTKRadioButton.CreateWithLabel(AOwner: TComponent; const ALabel: string); begin inherited Create(AOwner); if ClassName = 'TGTKRadioButton' then begin FWidget := gtk_radio_button_new_with_mnemonic(nil, StringToPgchar(ALabel)); g_signal_connect(PGtkObject(FWidget), 'toggled', G_CALLBACK(@TGTKToggleButton_OnToggled), Self); Show; end; end; destructor TGTKRadioButton.Destroy; begin inherited Destroy; end; procedure TGTKRadioButton.SetRadioGroup(RadioButton: TGTKRadioButton); begin if Assigned(RadioButton) then gtk_radio_button_set_group(PGtkRadioButton(FWidget), gtk_radio_button_get_group(PGtkRadioButton(RadioButton.FWidget))) else gtk_radio_button_set_group(PGtkRadioButton(FWidget), nil); end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKFrame.Create(AOwner: TComponent); begin inherited Create(AOwner); FWidget := gtk_frame_new(StringToPgchar(SCDefaultFrameCaption)); Show; end; constructor TGTKFrame.CreateWithoutLabel(AOwner: TComponent); begin inherited Create(AOwner); FWidget := gtk_frame_new(nil); Show; end; destructor TGTKFrame.Destroy; begin inherited Destroy; end; function TGTKFrame.GetCaption: string; begin Result := PgcharToString(gtk_frame_get_label(PGtkFrame(FWidget))); end; procedure TGTKFrame.SetCaption(Value: string); begin gtk_label_set_text(PGtkLabel(gtk_frame_get_label_widget(PGtkFrame(FWidget))), StringToPgchar(Value)); end; function TGTKFrame.GetShadowType: TGTKShadowType; begin Result := TGTKShadowType(gtk_frame_get_shadow_type(PGtkFrame(FWidget))); end; procedure TGTKFrame.SetShadowType(Value: TGTKShadowType); begin gtk_frame_set_shadow_type(PGtkFrame(FWidget), gtk2.TGtkShadowType(Value)); end; (********************************************************************************************************************************) (********************************************************************************************************************************) procedure TGTKEditable_Changed(editable: PGtkEditable; user_data: gpointer); cdecl; begin if Assigned(TGTKEditable(user_data).FOnChanged) then TGTKEditable(user_data).FOnChanged(TGTKEditable(user_data)); end; constructor TGTKEditable.Create(AOwner: TComponent); begin inherited Create(AOwner); FOnChanged := nil; end; destructor TGTKEditable.Destroy; begin inherited Destroy; end; function TGTKEditable.GetEditable: boolean; begin Result := gtk_editable_get_editable(PGtkEditable(FWidget)); end; procedure TGTKEditable.SetEditable(Value: boolean); begin gtk_entry_set_editable(PGtkEntry(FWidget), Value); end; procedure TGTKEditable.CutClipboard; begin gtk_editable_cut_clipboard(PGtkEditable(FWidget)); end; procedure TGTKEditable.CopyClipboard; begin gtk_editable_copy_clipboard(PGtkEditable(FWidget)); end; procedure TGTKEditable.PasteClipboard; begin gtk_editable_paste_clipboard(PGtkEditable(FWidget)); end; procedure TGTKEditable.DeleteSelection; begin gtk_editable_delete_selection(PGtkEditable(FWidget)); end; procedure TGTKEditable.InsertText(AText: string; Position: integer); begin gtk_editable_insert_text(PGtkEditable(FWidget), StringToPgchar(AText), Length(AText), @Position); end; procedure TGTKEditable.DeleteText(StartPosition, EndPosition: integer); begin gtk_editable_delete_text(PGtkEditable(FWidget), StartPosition, EndPosition); end; function TGTKEditable.GetChars(StartPosition, EndPosition: integer): string; begin Result := PgcharToString(gtk_editable_get_chars(PGtkEditable(FWidget), StartPosition, EndPosition)); end; procedure TGTKEditable.SelectRegion(StartPosition, EndPosition: integer); begin gtk_editable_select_region(PGtkEditable(FWidget), StartPosition, EndPosition); end; function TGTKEditable.GetPosition: integer; begin Result := gtk_editable_get_position(PGtkEditable(FWidget)); end; procedure TGTKEditable.SetPosition(Value: integer); begin gtk_editable_set_position(PGtkEditable(FWidget), Value); end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKEntry.Create(AOwner: TComponent); begin inherited Create(AOwner); FLinked := False; FWidget := gtk_entry_new; Show; g_signal_connect(PGtkObject(FWidget), 'changed', G_CALLBACK(@TGTKEditable_Changed), Self); end; constructor TGTKEntry.CreateFromWidget(AOwner: TComponent; Widget: PGtkWidget); begin inherited Create(AOwner); FLinked := True; FWidget := Widget; g_signal_connect(PGtkObject(FWidget), 'changed', G_CALLBACK(@TGTKEditable_Changed), Self); end; destructor TGTKEntry.Destroy; begin if not FLinked then inherited Destroy; end; function TGTKEntry.GetText: string; begin Result := PgcharToString(gtk_entry_get_text(PGtkEntry(FWidget))); end; procedure TGTKEntry.SetText(Value: string); begin gtk_entry_set_text(PGtkEntry(FWidget), StringToPgchar(Value)); end; function TGTKEntry.GetMaxLength: integer; begin Result := gtk_entry_get_max_length(PGtkEntry(FWidget)); end; procedure TGTKEntry.SetMaxLength(Value: integer); begin gtk_entry_set_max_length(PGtkEntry(FWidget), Value); end; function TGTKEntry.GetVisibility: boolean; begin Result := gtk_entry_get_visibility(PGtkEntry(FWidget)); end; procedure TGTKEntry.SetVisibility(Value: boolean); begin // g_object_set(FWidget, 'visibility', gboolean(Value), nil); gtk_entry_set_visibility(PGtkEntry(FWidget), Value); end; procedure TGTKEntry.SelectAll; begin SelectRegion(0, Length(Text)); end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKCombo.Create(AOwner: TComponent); begin inherited Create(AOwner); FWidget := gtk_combo_new; Items := TGList.Create(Self); Items.Notify := ItemsChanged; Entry := TGTKEntry.CreateFromWidget(Self, PGtkCombo(FWidget)^.entry); Show; end; destructor TGTKCombo.Destroy; begin Items.Free; inherited Destroy; end; procedure TGTKCombo.UpdateItems; begin gtk_combo_set_popdown_strings(PGtkCombo(FWidget), Items.FList); end; function TGTKCombo.GetAllowEmpty: boolean; begin Result := Boolean(ok_if_empty(PGtkCombo(FWidget)^)); end; procedure TGTKCombo.SetAllowEmpty(Value: boolean); begin SetPolicy(GetMatchValue, Value); end; function TGTKCombo.GetMatchValue: boolean; begin Result := Boolean(value_in_list(PGtkCombo(FWidget)^)); end; procedure TGTKCombo.SetMatchValue(Value: boolean); begin SetPolicy(Value, GetAllowEmpty); end; procedure TGTKCombo.SetPolicy(MatchValue, AllowEmpty: boolean); begin gtk_combo_set_value_in_list(PGtkCombo(FWidget), MatchValue, AllowEmpty); end; function TGTKCombo.GetCaseSensitive: boolean; begin Result := Boolean(gtk2.case_sensitive(PGtkCombo(FWidget)^)); end; procedure TGTKCombo.SetCaseSensitive(Value: boolean); begin gtk_combo_set_case_sensitive(PGtkCombo(FWidget), Value); end; procedure TGTKCombo.DisableActivate; begin gtk_combo_disable_activate(PGtkCombo(FWidget)); end; procedure TGTKCombo.ItemsChanged(Sender: TObject); begin UpdateItems; end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKSpinEdit.Create(AOwner: TComponent); begin inherited Create(AOwner); FAdjustment := PGtkAdjustment(gtk_adjustment_new(0, 0, 0, 1, 10, 0)); FWidget := gtk_spin_button_new(FAdjustment, 1, 0); Show; end; destructor TGTKSpinEdit.Destroy; begin inherited Destroy; end; function TGTKSpinEdit.GetDigits: integer; begin Result := gtk_spin_button_get_digits(PGtkSpinButton(FWidget)); end; procedure TGTKSpinEdit.SetDigits(AValue: integer); begin gtk_spin_button_set_digits(PGtkSpinButton(FWidget), AValue); end; function TGTKSpinEdit.GetMin: Double; var amin, amax: Double; begin gtk_spin_button_get_range(PGtkSpinButton(FWidget), @amin, @amax); Result := amin; end; procedure TGTKSpinEdit.SetMin(AValue: Double); begin gtk_spin_button_set_range(PGtkSpinButton(FWidget), AValue, Max); end; function TGTKSpinEdit.GetMax: Double; var amin, amax: Double; begin gtk_spin_button_get_range(PGtkSpinButton(FWidget), @amin, @amax); Result := amax; end; procedure TGTKSpinEdit.SetMax(AValue: Double); begin gtk_spin_button_set_range(PGtkSpinButton(FWidget), Min, AValue); end; function TGTKSpinEdit.GetIncrementStep: Double; var astep, apage: Double; begin gtk_spin_button_get_increments(PGtkSpinButton(FWidget), @astep, @apage); Result := astep; end; procedure TGTKSpinEdit.SetIncrementStep(AValue: Double); begin gtk_spin_button_set_increments(PGtkSpinButton(FWidget), AValue, IncrementPage); end; function TGTKSpinEdit.GetIncrementPage: Double; var astep, apage: Double; begin gtk_spin_button_get_increments(PGtkSpinButton(FWidget), @astep, @apage); Result := apage; end; procedure TGTKSpinEdit.SetIncrementPage(AValue: Double); begin gtk_spin_button_set_increments(PGtkSpinButton(FWidget), IncrementStep, AValue); end; function TGTKSpinEdit.GetValue: Double; begin Result := gtk_spin_button_get_value(PGtkSpinButton(FWidget)); end; procedure TGTKSpinEdit.SetValue(AValue: Double); begin gtk_spin_button_set_value(PGtkSpinButton(FWidget), AValue); end; function TGTKSpinEdit.GetAsInteger: integer; begin Result := gtk_spin_button_get_value_as_int(PGtkSpinButton(FWidget)); end; procedure TGTKSpinEdit.SetAsInteger(AValue: integer); begin gtk_spin_button_set_value(PGtkSpinButton(FWidget), AValue); end; (********************************************************************************************************************************) (********************************************************************************************************************************) end. tuxcmd-0.6.70+dfsg/libgtk_kylix/GTKUtils.pas0000644000175000017500000001747311300022643017717 0ustar salvisalvi(* GTK-Kylix Library: GTKUtils - Various utilities Version 0.6.17 (last updated 2003-10-07) Copyright (C) 2003 Tomas Bzatek This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 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 Library General Public License for more details. You should have received a copy of the GNU Library 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. *) unit GTKUtils; interface uses gtk2, gdk2, glib2, SysUtils, GTKControls, GTKClasses; (********************************************************************************************************************************) function PgcharToString(const S: Pgchar): string; function StringToPgchar(const S: string): Pgchar; function AllocateColor(Widget: PGtkWidget; R, G, B: Word): PGdkColor; overload; function AllocateColor(R, G, B: Word): TGDKColor; overload; function KeyValToUnicode(const Key: word): guint32; function UnicodeToKeyVal(const UnicodeVal: guint32): word; function GetDefaultForegroundColor(State: integer): PGdkColor; overload; function GetDefaultForegroundColor(Widget: TGTKControl; State: integer): PGdkColor; overload; function GetDefaultBackgroundColor(State: integer): PGdkColor; overload; function GetDefaultBackgroundColor(Widget: TGTKControl; State: integer): PGdkColor; overload; function GetDefaultBaseColor(State: integer): PGdkColor; overload; function GetDefaultBaseColor(Widget: TGTKControl; State: integer): PGdkColor; overload; function GetDefaultTextColor(State: integer): PGdkColor; overload; function GetDefaultTextColor(Widget: TGTKControl; State: integer): PGdkColor; overload; function GDKColorToPGdkColor(Color: TGDKColor): PGdkColor; function PGdkColorToGDKColor(Color: PGdkColor): TGDKColor; function GDKColorToString(Color: TGDKColor): string; function StringToGDKColor(Str: string; var Color: TGDKColor): boolean; (********************************************************************************************************************************) implementation (********************************************************************************************************************************) function PgcharToString(const S: Pgchar): string; begin Result := string(S); end; (********************************************************************************************************************************) function StringToPgchar(const S: string): Pgchar; begin Result := PChar(S); end; (********************************************************************************************************************************) function AllocateColor(Widget: PGtkWidget; R, G, B: Word): PGdkColor; begin New(Result); with Result^ do begin Pixel := 0; Red := R; Green := G; Blue := B; end; if Assigned(Widget) then gdk_colormap_alloc_color(gtk_widget_get_colormap(Widget), Result, True, False); end; function AllocateColor(R, G, B: Word): TGDKColor; begin Result.red := R; Result.green := G; Result.blue := B; end; (********************************************************************************************************************************) function KeyValToUnicode(const Key: word): guint32; begin Result := gdk_keyval_to_unicode(Key); end; (********************************************************************************************************************************) function UnicodeToKeyVal(const UnicodeVal: guint32): word; begin Result := gdk_unicode_to_keyval(UnicodeVal); end; (********************************************************************************************************************************) function GetDefaultForegroundColor(State: integer): PGdkColor; var Widget: PGtkWidget; Style: PGtkStyle; begin Widget := gtk_window_new(GTK_WINDOW_TOPLEVEL); Style := gtk_rc_get_style(Widget); Result := @Style^.fg[State]; gtk_widget_destroy(Widget); end; function GetDefaultForegroundColor(Widget: TGTKControl; State: integer): PGdkColor; var Style: PGtkStyle; begin Style := gtk_rc_get_style(Widget.FWidget); Result := @Style^.fg[State]; end; (********************************************************************************************************************************) function GetDefaultBackgroundColor(State: integer): PGdkColor; var Widget: PGtkWidget; Style: PGtkStyle; begin Widget := gtk_window_new(GTK_WINDOW_TOPLEVEL); Style := gtk_rc_get_style(Widget); Result := @Style^.bg[State]; gtk_widget_destroy(Widget); end; function GetDefaultBackgroundColor(Widget: TGTKControl; State: integer): PGdkColor; var Style: PGtkStyle; begin Style := gtk_rc_get_style(Widget.FWidget); Result := @Style^.bg[State]; end; (********************************************************************************************************************************) function GetDefaultBaseColor(State: integer): PGdkColor; var Widget: PGtkWidget; Style: PGtkStyle; begin Widget := gtk_window_new(GTK_WINDOW_TOPLEVEL); Style := gtk_rc_get_style(Widget); Result := @Style^.base[State]; gtk_widget_destroy(Widget); end; function GetDefaultBaseColor(Widget: TGTKControl; State: integer): PGdkColor; var Style: PGtkStyle; begin Style := gtk_rc_get_style(Widget.FWidget); Result := @Style^.base[State]; end; (********************************************************************************************************************************) function GetDefaultTextColor(State: integer): PGdkColor; var Widget: PGtkWidget; Style: PGtkStyle; begin Widget := gtk_window_new(GTK_WINDOW_TOPLEVEL); Style := gtk_rc_get_style(Widget); Result := @Style^.text[State]; gtk_widget_destroy(Widget); end; function GetDefaultTextColor(Widget: TGTKControl; State: integer): PGdkColor; var Style: PGtkStyle; begin Style := gtk_rc_get_style(Widget.FWidget); Result := @Style^.text[State]; end; (********************************************************************************************************************************) function GDKColorToPGdkColor(Color: TGDKColor): PGdkColor; begin New(Result); Result^.pixel := Color.pixel; Result^.red := Color.red; Result^.green := Color.green; Result^.blue := Color.blue; end; (********************************************************************************************************************************) function PGdkColorToGDKColor(Color: PGdkColor): TGDKColor; begin Result.pixel := Color.pixel; Result.red := Color.red; Result.green := Color.green; Result.blue := Color.blue; end; (********************************************************************************************************************************) function GDKColorToString(Color: TGDKColor): string; begin Result := Format('#%.2x%.2x%.2xFF', [Color.red div 256, Color.green div 256, Color.blue div 256]); end; (********************************************************************************************************************************) function StringToGDKColor(Str: string; var Color: TGDKColor): boolean; var AColor: PGdkColor; begin Result := False; Str := ANSIUpperCase(Trim(Str)); if (Length(Str) < 7) or (Str[1] <> '#') then Exit; try New(AColor); if Length(Str) = 9 then Delete(Str, 8, 2); Result := boolean(gdk_color_parse(PChar(Str), AColor)); Color := PGdkColorToGDKColor(AColor); Dispose(AColor); except end; end; (********************************************************************************************************************************) end. tuxcmd-0.6.70+dfsg/libgtk_kylix/GTKDialogs.pas0000644000175000017500000002145011300022643020167 0ustar salvisalvi(* GTK-Kylix Library: GTKDialogs - Special purpose dialogs Version 0.7.0 (last updated 2006-02-05) Copyright (C) 2006 Tomas Bzatek This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 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 Library General Public License for more details. You should have received a copy of the GNU Library 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. *) unit GTKDialogs; interface uses gtk2, gdk2, glib2, Classes, GTKControls, GTKConsts, GTKUtils, GTKClasses, GTKForms; type (****************************************** TGTKFILESELECTIONDIALOG *************************************************************) TGTKFileSelectionDialog = class(TGTKDialog) private function GetFileName: string; function GetShowFileOpButtons: boolean; function GetMultiSelect: boolean; procedure SetFileName(Value: string); procedure SetShowFileOpButtons(Value: boolean); procedure SetMultiSelect(Value: boolean); protected public constructor Create(AOwner: TComponent); override; constructor CreateWithTitle(AOwner: TComponent; const Title: string); destructor Destroy; override; published property FileName: string read GetFileName write SetFileName; property ShowFileOpButtons: boolean read GetShowFileOpButtons write SetShowFileOpButtons; property MultiSelect: boolean read GetMultiSelect write SetMultiSelect; end; (****************************************** TGTKCOLORSELECTIONDIALOG ************************************************************) TGTKColorSelectionDialog = class(TGTKDialog) private function GetShowOpacity: boolean; procedure SetShowOpacity(Value: boolean); function GetShowPalette: boolean; procedure SetShowPalette(Value: boolean); function GetColor: TGDKColor; procedure SetColor(Value: TGDKColor); protected public constructor Create(AOwner: TComponent); override; constructor CreateWithTitle(AOwner: TComponent; const Title: string); destructor Destroy; override; property Color: TGDKColor read GetColor write SetColor; published property ShowOpacity: boolean read GetShowOpacity write SetShowOpacity; property ShowPalette: boolean read GetShowPalette write SetShowPalette; end; (****************************************** TGTKFONTSELECTIONDIALOG *************************************************************) TGTKFontSelectionDialog = class(TGTKDialog) private function GetFontName: string; procedure SetFontName(Value: string); function GetPreviewText: string; procedure SetPreviewText(Value: string); protected public constructor Create(AOwner: TComponent); override; constructor CreateWithTitle(AOwner: TComponent; const Title: string); destructor Destroy; override; published property FontName: string read GetFontName write SetFontName; property PreviewText: string read GetPreviewText write SetPreviewText; end; (********************************************************************************************************************************) (********************************************************************************************************************************) implementation uses SysUtils, DateUtils; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKFileSelectionDialog.Create(AOwner: TComponent); begin inherited Create(AOwner); FWidget := gtk_file_selection_new(nil); Show; end; constructor TGTKFileSelectionDialog.CreateWithTitle(AOwner: TComponent; const Title: string); begin inherited Create(AOwner); FWidget := gtk_file_selection_new(StringToPgchar(Title)); Show; end; destructor TGTKFileSelectionDialog.Destroy; begin inherited Destroy; end; function TGTKFileSelectionDialog.GetFileName: string; begin Result := string(gtk_file_selection_get_filename(PGtkFileSelection(FWidget))); end; procedure TGTKFileSelectionDialog.SetFileName(Value: string); begin gtk_file_selection_set_filename(PGtkFileSelection(FWidget), PChar(Value)); end; function TGTKFileSelectionDialog.GetShowFileOpButtons: boolean; var b: Boolean; begin g_object_get(FWidget, 'show-fileops', @b, nil); Result := b; end; procedure TGTKFileSelectionDialog.SetShowFileOpButtons(Value: boolean); begin if Value then gtk_file_selection_show_fileop_buttons(PGtkFileSelection(FWidget)) else gtk_file_selection_hide_fileop_buttons(PGtkFileSelection(FWidget)); end; function TGTKFileSelectionDialog.GetMultiSelect: boolean; begin Result := gtk_file_selection_get_select_multiple(PGtkFileSelection(FWidget)); end; procedure TGTKFileSelectionDialog.SetMultiSelect(Value: boolean); begin gtk_file_selection_set_select_multiple(PGtkFileSelection(FWidget), Value); end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKColorSelectionDialog.Create(AOwner: TComponent); begin inherited Create(AOwner); FWidget := gtk_color_selection_dialog_new(nil); Show; end; constructor TGTKColorSelectionDialog.CreateWithTitle(AOwner: TComponent; const Title: string); begin inherited Create(AOwner); FWidget := gtk_color_selection_dialog_new(StringToPgchar(Title)); Show; end; destructor TGTKColorSelectionDialog.Destroy; begin inherited Destroy; end; function TGTKColorSelectionDialog.GetShowOpacity: boolean; begin Result := gtk_color_selection_get_has_opacity_control(PGtkColorSelection(PGtkColorSelectionDialog(FWidget)^.colorsel)); end; procedure TGTKColorSelectionDialog.SetShowOpacity(Value: boolean); begin gtk_color_selection_set_has_opacity_control(PGtkColorSelection(PGtkColorSelectionDialog(FWidget)^.colorsel), Value); end; function TGTKColorSelectionDialog.GetShowPalette: boolean; begin Result := gtk_color_selection_get_has_palette(PGtkColorSelection(PGtkColorSelectionDialog(FWidget)^.colorsel)); end; procedure TGTKColorSelectionDialog.SetShowPalette(Value: boolean); begin gtk_color_selection_set_has_palette(PGtkColorSelection(PGtkColorSelectionDialog(FWidget)^.colorsel), Value); end; function TGTKColorSelectionDialog.GetColor: TGDKColor; var Col: gdk2.TGDkColor; begin gtk_color_selection_get_current_color(PGtkColorSelection(PGtkColorSelectionDialog(FWidget)^.colorsel), @Col); Result := PGdkColorToGDKColor(@Col); end; procedure TGTKColorSelectionDialog.SetColor(Value: TGDKColor); var Col: PGDkColor; begin Col := GDKColorToPGdkColor(Value); gtk_color_selection_set_current_color(PGtkColorSelection(PGtkColorSelectionDialog(FWidget)^.colorsel), Col); end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKFontSelectionDialog.Create(AOwner: TComponent); begin inherited Create(AOwner); FWidget := gtk_font_selection_dialog_new(nil); Show; end; constructor TGTKFontSelectionDialog.CreateWithTitle(AOwner: TComponent; const Title: string); begin inherited Create(AOwner); FWidget := gtk_font_selection_dialog_new(StringToPgchar(Title)); Show; end; destructor TGTKFontSelectionDialog.Destroy; begin inherited Destroy; end; function TGTKFontSelectionDialog.GetFontName: string; begin Result := PgcharToString(gtk_font_selection_dialog_get_font_name(PGtkFontSelectionDialog(FWidget))); end; procedure TGTKFontSelectionDialog.SetFontName(Value: string); begin gtk_font_selection_dialog_set_font_name(PGtkFontSelectionDialog(FWidget), StringToPgchar(Value)); end; function TGTKFontSelectionDialog.GetPreviewText: string; begin Result := PgcharToString(gtk_font_selection_dialog_get_preview_text(PGtkFontSelectionDialog(FWidget))); end; procedure TGTKFontSelectionDialog.SetPreviewText(Value: string); begin gtk_font_selection_dialog_set_preview_text(PGtkFontSelectionDialog(FWidget), StringToPgchar(Value)); end; (********************************************************************************************************************************) end. tuxcmd-0.6.70+dfsg/libgtk_kylix/GTKPixbuf.pas0000644000175000017500000001553011300022643020044 0ustar salvisalvi(* GTK-Kylix Library: GTKPixbuf - Image handling routines Version 0.6.2 (last updated 2003-03-30) Copyright (C) 2003 Tomas Bzatek This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 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 Library General Public License for more details. You should have received a copy of the GNU Library 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. *) unit GTKPixbuf; interface uses glib2, gdk2, gdk2pixbuf, gtk2, Classes, GTKControls, GTKStdCtrls; type TGTKIconSize = (isInvalid, isMenu, isSmallToolbar, isLargeToolbar, isButton, isDND, isDialog); (****************************************** TGDKPIXBUF **************************************************************************) TGDKPixbuf = class (TComponent) private function GetWidth: integer; function GetHeight: integer; function GetBPP: integer; protected public FPixbuf: PGdkPixbuf; constructor Create(AOwner: TComponent); override; constructor CreateNew(AOwner: TComponent; const Width, Height, BPP: integer; const HasAlpha: boolean); destructor Destroy; override; function LoadFromFile(const FileName: string): boolean; function LoadFromXPM(const Data: PPChar): boolean; function LoadFromInline(Data: Pointer): boolean; procedure Fill(const Pixel: Cardinal); procedure ScaleSimple(const DestWidth, DestHeight: integer); function Copy: PGdkPixbuf; procedure CopyArea(Source: TGDKPixbuf; SourceX, SourceY, SourceWidth, SourceHeight, DestX, DestY: integer); procedure SetFromStock(Stock_ID: string; IconSize: TGTKIconSize); published property Width: integer read GetWidth; property Height: integer read GetHeight; property BPP: integer read GetBPP; end; (****************************************** TGTKIMAGE ***************************************************************************) TGTKImage = class(TGTKMisc) private protected public constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure LoadFromFile(const FileName: string); procedure SetFromPixbuf(Pixbuf: TGDKPixbuf); function GetPixbuf: PGdkPixbuf; procedure CopyFromPixbuf(Pixbuf: TGDKPixbuf); procedure SetFromStock(Stock_ID: string; IconSize: TGTKIconSize); end; (********************************************************************************************************************************) (********************************************************************************************************************************) implementation uses SysUtils, DateUtils; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGDKPixbuf.Create(AOwner: TComponent); begin inherited Create(AOwner); FPixbuf := nil; end; constructor TGDKPixbuf.CreateNew(AOwner: TComponent; const Width, Height, BPP: integer; const HasAlpha: boolean); begin inherited Create(AOwner); FPixbuf := gdk_pixbuf_new(GDK_COLORSPACE_RGB, HasAlpha, BPP, Width, Height); end; destructor TGDKPixbuf.Destroy; begin if FPixbuf <> nil then gdk_pixbuf_unref(FPixbuf); inherited Destroy; end; function TGDKPixbuf.GetWidth: integer; begin Result := gdk_pixbuf_get_width(FPixbuf); end; function TGDKPixbuf.GetHeight: integer; begin Result := gdk_pixbuf_get_height(FPixbuf); end; function TGDKPixbuf.GetBPP: integer; begin Result := gdk_pixbuf_get_bits_per_sample(FPixbuf); end; function TGDKPixbuf.LoadFromFile(const FileName: string): boolean; var P: Pointer; Error: PGError; begin Error := nil; P := gdk_pixbuf_new_from_file(PChar(FileName), @Error); Result := P <> nil; if P <> nil then FPixbuf := P; end; function TGDKPixbuf.LoadFromXPM(const Data: PPChar): boolean; var P: Pointer; begin P := gdk_pixbuf_new_from_xpm_data(Data); Result := P <> nil; if P <> nil then FPixbuf := P; end; function TGDKPixbuf.LoadFromInline(Data: Pointer): boolean; var P: Pointer; Error: PGError; begin Error := nil; P := gdk_pixbuf_new_from_inline(-1, Pguint8(Data)^, True, @Error); Result := P <> nil; if Error <> nil then begin WriteLn('TGDKPixbuf.LoadFromInline error: ', Error^.message); g_error_free(Error); end; if P <> nil then FPixbuf := P; end; procedure TGDKPixbuf.Fill(const Pixel: Cardinal); begin gdk_pixbuf_fill(FPixbuf, Pixel); end; procedure TGDKPixbuf.ScaleSimple(const DestWidth, DestHeight: integer); begin FPixbuf := gdk_pixbuf_scale_simple(FPixbuf, DestWidth, DestHeight, GDK_INTERP_BILINEAR); end; function TGDKPixbuf.Copy: PGdkPixbuf; begin Result := gdk_pixbuf_copy(FPixbuf); end; procedure TGDKPixbuf.CopyArea(Source: TGDKPixbuf; SourceX, SourceY, SourceWidth, SourceHeight, DestX, DestY: integer); begin gdk_pixbuf_copy_area(Source.FPixbuf, SourceX, SourceY, SourceWidth, SourceHeight, FPixbuf, DestX, DestY); end; procedure TGDKPixbuf.SetFromStock(Stock_ID: string; IconSize: TGTKIconSize); begin FPixbuf := gtk_widget_render_icon(gtk_label_new(nil), PChar(Stock_ID), Ord(IconSize), nil); end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKImage.Create(AOwner: TComponent); begin inherited Create(AOwner); FWidget := gtk_image_new; Show; end; destructor TGTKImage.Destroy; begin inherited Destroy; end; procedure TGTKImage.LoadFromFile(const FileName: string); begin gtk_image_set_from_file(PGtkImage(FWidget), PChar(FileName)); end; function TGTKImage.GetPixbuf: PGdkPixbuf; begin Result := gtk_image_get_pixbuf(PGtkImage(FWidget)); end; procedure TGTKImage.SetFromPixbuf(Pixbuf: TGDKPixbuf); begin gtk_image_set_from_pixbuf(PGtkImage(FWidget), Pixbuf.FPixbuf); end; procedure TGTKImage.CopyFromPixbuf(Pixbuf: TGDKPixbuf); begin gtk_image_set_from_pixbuf(PGtkImage(FWidget), Pixbuf.Copy); end; procedure TGTKImage.SetFromStock(Stock_ID: string; IconSize: TGTKIconSize); begin gtk_image_set_from_stock(PGtkImage(FWidget), PChar(Stock_ID), Ord(IconSize)); end; (********************************************************************************************************************************) end. tuxcmd-0.6.70+dfsg/pixmaps/0000755000175000017500000000000011300022643014515 5ustar salvisalvituxcmd-0.6.70+dfsg/pixmaps/gnome_dev_removable_usb_16_png.inc0000644000175000017500000001304211300022643023232 0ustar salvisalviconst gnome_dev_removable_usb_16_png: array[1..1049] of byte = ( $47, $64, $6B, $50, $00, $00, $04, $18, $01, $01, $00, $02, $00, $00, $00, $40, $00, $00, $00, $10, $00, $00, $00, $10, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $FF, $FF, $71, $FF, $FF, $FF, $FF, $62, $5B, $81, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $41, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $46, $41, $41, $41, $FF, $FF, $FF, $FF, $FF, $62, $5B, $81, $FF, $62, $5B, $81, $FF, $62, $5B, $81, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $46, $71, $71, $71, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $62, $5B, $81, $FF, $FF, $FF, $FF, $FF, $62, $5B, $81, $FF, $62, $5B, $81, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $D9, $D9, $D9, $FF, $00, $00, $00, $FF, $FF, $FF, $FF, $FF, $AD, $A9, $BC, $FF, $A7, $A3, $B9, $FF, $FF, $FF, $FF, $FF, $62, $5B, $81, $FF, $FF, $FF, $FF, $FF, $62, $5B, $81, $FF, $62, $5B, $81, $FF, $FF, $FF, $FF, $FF, $FC, $FB, $FB, $FF, $FB, $FC, $FB, $FF, $FB, $FB, $FC, $FF, $FB, $FC, $FC, $FF, $FB, $FC, $FB, $FF, $D5, $D6, $D5, $FF, $00, $00, $00, $FF, $FF, $FF, $FF, $FF, $BD, $BB, $CA, $FF, $62, $5B, $81, $FF, $FF, $FF, $FF, $FF, $62, $5B, $81, $FF, $62, $5B, $81, $FF, $62, $5B, $81, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $F7, $F7, $F7, $FF, $F8, $F7, $F7, $FF, $F7, $F7, $F8, $FF, $F8, $F7, $F8, $FF, $F8, $F8, $F8, $FF, $D3, $D3, $D2, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $FF, $FF, $FF, $FF, $F1, $F0, $F3, $FF, $62, $5B, $81, $FF, $62, $5B, $81, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $F6, $F6, $F6, $FF, $F4, $F4, $F4, $FF, $F3, $F3, $F4, $FF, $F4, $F4, $F4, $FF, $F4, $F3, $F4, $FF, $F4, $F4, $F4, $FF, $F4, $F3, $F4, $FF, $CE, $CE, $CE, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $FA, $FA, $FA, $FF, $FF, $FF, $FF, $FF, $7C, $76, $95, $FF, $62, $5B, $81, $FF, $8C, $87, $A3, $FF, $FF, $FF, $FF, $FF, $F0, $F0, $F0, $FF, $F0, $F0, $F0, $FF, $F0, $F0, $F0, $FF, $F0, $F0, $F0, $FF, $F0, $F0, $F0, $FF, $F0, $F0, $F0, $FF, $F0, $F0, $F0, $FF, $CC, $CC, $CC, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $F9, $F9, $F9, $FF, $FF, $FF, $FF, $FF, $62, $5B, $81, $FF, $62, $5B, $81, $FF, $62, $5B, $81, $FF, $FF, $FF, $FF, $FF, $F0, $F0, $F0, $FF, $F0, $F0, $F0, $FF, $F0, $F0, $F0, $FF, $F0, $F0, $F0, $FF, $F0, $F0, $F0, $FF, $F0, $F0, $F0, $FF, $F0, $F0, $F0, $FF, $CC, $CC, $CC, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $F7, $F7, $F7, $FF, $FF, $FF, $FF, $FF, $9B, $97, $AD, $FF, $62, $5B, $81, $FF, $9B, $97, $AD, $FF, $FF, $FF, $FF, $FF, $EC, $ED, $ED, $FF, $ED, $EC, $EC, $FF, $EC, $EC, $ED, $FF, $EC, $EC, $EC, $FF, $EC, $EC, $ED, $FF, $EC, $ED, $EC, $FF, $EC, $EC, $ED, $FF, $C8, $C8, $C8, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $FE, $FE, $FE, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $F4, $F4, $F4, $FF, $F4, $F4, $F4, $FF, $EB, $EB, $EB, $FF, $EB, $EB, $EB, $FF, $E3, $E3, $E3, $FF, $C9, $C9, $C9, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $CE, $CE, $CE, $FF, $B9, $B9, $B9, $FF, $B9, $B9, $B9, $FF, $B9, $B9, $B9, $FF, $B9, $B9, $B9, $FF, $B9, $B9, $B9, $FF, $B9, $B9, $B9, $FF, $B9, $B9, $B9, $FF, $B9, $B9, $B9, $FF, $B9, $B9, $B9, $FF, $B9, $B9, $B9, $FF, $B9, $B9, $B9, $FF, $B9, $B9, $B9, $FF, $A7, $A7, $A8, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $CE, $CE, $CE, $FF, $D0, $D0, $D0, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $EA, $EA, $EA, $FF, $B9, $B9, $B9, $FF, $F7, $F7, $F7, $FF, $7E, $7E, $7E, $FF, $A2, $A2, $A2, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $CD, $CD, $CD, $FF, $B9, $B9, $B9, $FF, $E0, $E0, $E0, $FF, $E0, $E0, $E0, $FF, $E0, $E0, $E0, $FF, $E0, $E0, $E0, $FF, $E0, $E0, $E0, $FF, $E0, $E0, $E0, $FF, $E0, $E0, $E0, $FF, $D0, $D0, $D0, $FF, $B9, $B9, $B9, $FF, $7E, $7E, $7E, $FF, $90, $90, $90, $FF, $9F, $9F, $9F, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $BD, $BD, $BD, $FF, $9C, $9C, $9C, $FF, $9D, $9D, $9C, $FF, $9D, $9C, $9D, $FF, $9C, $9D, $9C, $FF, $9C, $9D, $9C, $FF, $9C, $9D, $9C, $FF, $9C, $9D, $9C, $FF, $9D, $9D, $9D, $FF, $9D, $9C, $9D, $FF, $9C, $9D, $9D, $FF, $9D, $9C, $9D, $FF, $9D, $9D, $9C, $FF, $9C, $9C, $9C, $FF, $00, $00, $00, $FF, $00, $00, $00, $79, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $62, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00); tuxcmd-0.6.70+dfsg/pixmaps/stock_lock_16_png.inc0000644000175000017500000001302511300022643020516 0ustar salvisalviconst stock_lock_16_png: array[1..1049] of byte = ( $47, $64, $6B, $50, $00, $00, $04, $18, $01, $01, $00, $02, $00, $00, $00, $40, $00, $00, $00, $10, $00, $00, $00, $10, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $69, $00, $00, $00, $BB, $00, $00, $00, $C6, $00, $00, $00, $C6, $00, $00, $00, $C1, $00, $00, $00, $3B, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $10, $1E, $1E, $1E, $94, $7A, $7A, $7A, $FB, $D2, $D2, $D2, $FF, $DB, $DB, $DB, $FF, $DB, $DB, $DB, $FF, $BC, $BC, $BC, $FE, $72, $72, $72, $F1, $08, $08, $08, $86, $00, $00, $00, $03, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $13, $13, $13, $7E, $84, $84, $84, $FC, $BE, $BE, $BE, $F7, $38, $38, $38, $F2, $1C, $1C, $1C, $F9, $1C, $1C, $1C, $F9, $4D, $4D, $4D, $FC, $B1, $B1, $B1, $FF, $84, $84, $84, $F6, $00, $00, $00, $6F, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $2D, $2D, $2D, $EB, $C2, $C2, $C2, $FD, $09, $09, $09, $DE, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $2E, $2E, $2E, $FC, $AA, $AA, $AA, $FE, $00, $00, $00, $BD, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $2B, $2B, $2B, $FC, $C0, $C0, $C0, $FC, $00, $00, $00, $DC, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $16, $16, $16, $FA, $C1, $C0, $C0, $FF, $00, $00, $00, $E0, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $60, $13, $11, $0E, $F8, $9B, $97, $94, $FF, $20, $1D, $1C, $FF, $0B, $0B, $07, $FF, $04, $03, $02, $FF, $04, $03, $02, $FF, $05, $04, $03, $FF, $2F, $29, $21, $FF, $A8, $A3, $9E, $FF, $1A, $13, $0B, $FF, $00, $00, $00, $60, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $A5, $91, $76, $FF, $E0, $C4, $A0, $FF, $DF, $C4, $A3, $FF, $DF, $C4, $A3, $FF, $DA, $BE, $9A, $FF, $DA, $BE, $9A, $FF, $DA, $BE, $9A, $FF, $D6, $BA, $94, $FF, $CD, $A6, $76, $FF, $81, $5A, $2B, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $04, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $E2, $C5, $A1, $FF, $D8, $B5, $8C, $FF, $CA, $9F, $68, $FF, $AC, $87, $58, $FF, $A7, $82, $52, $FF, $A7, $82, $52, $FF, $A7, $82, $53, $FF, $A3, $7B, $4B, $FF, $BC, $88, $49, $FF, $AC, $71, $2E, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $05, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $E3, $C6, $A2, $FF, $D5, $AE, $7E, $FF, $B0, $8D, $5F, $FF, $D5, $B2, $84, $FF, $CF, $AB, $7C, $FF, $CF, $AB, $7C, $FF, $CF, $AC, $7B, $FF, $CB, $A4, $71, $FF, $BC, $87, $46, $FF, $AA, $6F, $2B, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $E1, $C4, $A0, $FF, $D0, $A6, $74, $FF, $C7, $9B, $64, $FF, $AA, $84, $55, $FF, $A4, $7E, $4E, $FF, $A4, $7E, $4E, $FF, $A4, $7E, $4E, $FF, $A0, $77, $44, $FF, $BA, $84, $42, $FF, $AC, $71, $2E, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $E1, $C2, $9C, $FF, $CE, $A4, $70, $FF, $AD, $8D, $64, $FF, $D2, $B2, $89, $FF, $CD, $AC, $83, $FF, $CD, $AC, $83, $FF, $CE, $AD, $83, $FF, $CC, $A7, $7B, $FF, $B8, $80, $3E, $FF, $AD, $73, $32, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $E0, $C2, $9E, $FF, $D4, $AC, $79, $FF, $CD, $A6, $6E, $FF, $AF, $8D, $5E, $FF, $AB, $87, $58, $FF, $AB, $87, $58, $FF, $AB, $88, $58, $FF, $A8, $81, $4C, $FF, $BC, $87, $46, $FF, $B4, $7E, $3E, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $D0, $A8, $74, $FF, $C6, $96, $5D, $FF, $BE, $8D, $50, $FF, $BE, $8D, $50, $FF, $BA, $89, $4B, $FF, $BA, $89, $4B, $FF, $BD, $8C, $4E, $FF, $BC, $8A, $4C, $FF, $BA, $86, $47, $FF, $A4, $71, $36, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $60, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $77, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00); tuxcmd-0.6.70+dfsg/pixmaps/gnome_dev_cdrom_16_png.inc0000644000175000017500000001303211300022643021510 0ustar salvisalviconst gnome_dev_cdrom_16_png: array[1..1049] of byte = ( $47, $64, $6B, $50, $00, $00, $04, $18, $01, $01, $00, $02, $00, $00, $00, $40, $00, $00, $00, $10, $00, $00, $00, $10, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $61, $00, $00, $00, $B7, $00, $00, $00, $EC, $00, $00, $00, $FF, $00, $00, $00, $EC, $00, $00, $00, $B7, $00, $00, $00, $61, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $30, $00, $00, $00, $C9, $70, $70, $70, $FF, $D5, $D5, $D5, $FF, $F8, $F8, $F8, $FF, $FF, $FF, $FF, $FF, $F8, $F8, $F8, $FF, $AE, $AE, $AE, $FF, $5D, $5C, $5D, $FF, $00, $00, $00, $C9, $00, $00, $00, $30, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $30, $00, $00, $00, $EC, $C5, $C5, $C5, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $A3, $A3, $A3, $FF, $00, $00, $00, $EC, $00, $00, $00, $30, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $C9, $C5, $C5, $C5, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $F2, $F2, $F2, $FF, $D9, $D9, $D9, $FF, $69, $69, $69, $FF, $00, $00, $00, $C9, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $61, $70, $70, $70, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $CE, $CE, $CE, $FF, $CE, $CE, $CE, $FF, $CE, $CE, $CE, $FF, $F4, $F4, $F4, $FF, $DA, $DA, $DA, $FF, $DD, $DD, $DC, $FF, $B4, $B4, $B4, $FF, $34, $34, $34, $FF, $00, $00, $00, $61, $00, $00, $00, $00, $00, $00, $00, $B7, $D5, $D6, $D5, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $AB, $AB, $AB, $FF, $31, $31, $31, $FF, $00, $00, $00, $FF, $3B, $3A, $3A, $FF, $B6, $B6, $B6, $FF, $DD, $DD, $DD, $FF, $E0, $E0, $E0, $FF, $E3, $E4, $E3, $FF, $7D, $7D, $7D, $FF, $00, $00, $00, $D0, $00, $00, $00, $00, $00, $00, $00, $EC, $F8, $F8, $F8, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $CE, $CE, $CE, $FF, $31, $31, $31, $FF, $00, $00, $00, $12, $00, $00, $00, $00, $00, $00, $00, $12, $34, $34, $34, $FF, $F0, $F0, $F1, $FF, $E3, $E4, $E3, $FF, $E7, $E6, $E7, $FF, $AC, $AC, $AC, $FF, $00, $00, $00, $F3, $00, $00, $00, $00, $00, $00, $00, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $CE, $CE, $CE, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $F4, $F4, $F4, $FF, $E7, $E7, $E7, $FF, $EA, $EA, $EA, $FF, $BF, $C0, $C0, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $EC, $F8, $F8, $F8, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $CE, $CE, $CE, $FF, $30, $30, $30, $FF, $00, $00, $00, $12, $00, $00, $00, $00, $00, $00, $00, $12, $5C, $5C, $5C, $FF, $F5, $F5, $F5, $FF, $EA, $EA, $EA, $FF, $EE, $ED, $EE, $FF, $B1, $B0, $B1, $FF, $00, $00, $00, $F0, $00, $00, $00, $00, $00, $00, $00, $B7, $D8, $D9, $D9, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FC, $FC, $FC, $FF, $BB, $BB, $BB, $FF, $35, $35, $35, $FF, $00, $00, $00, $FF, $94, $94, $94, $FF, $E8, $E8, $E8, $FF, $F3, $F3, $F3, $FF, $EE, $EE, $EE, $FF, $F1, $F1, $F1, $FF, $84, $84, $85, $FF, $00, $00, $00, $C5, $00, $00, $00, $00, $00, $00, $00, $61, $74, $74, $74, $FF, $FF, $FF, $FF, $FF, $FD, $FD, $FD, $FF, $E3, $E3, $E3, $FF, $DE, $DE, $DE, $FF, $F5, $F5, $F5, $FF, $F8, $F8, $F8, $FF, $F9, $F9, $F8, $FF, $EE, $EE, $EE, $FF, $EE, $EF, $EF, $FF, $F1, $F1, $F2, $FF, $C5, $C5, $C5, $FF, $39, $39, $39, $FF, $00, $00, $00, $61, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $C9, $A3, $A3, $A3, $FF, $B8, $B8, $B8, $FF, $DF, $DF, $DF, $FF, $E2, $E1, $E2, $FF, $E5, $E5, $E5, $FF, $E9, $E8, $E8, $FF, $EB, $EB, $EB, $FF, $EE, $EF, $EF, $FF, $F2, $F2, $F2, $FF, $C5, $C5, $C5, $FF, $5F, $5F, $5F, $FF, $00, $00, $00, $D3, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $30, $00, $00, $00, $EC, $6A, $6A, $6A, $FF, $B6, $B6, $B7, $FF, $E5, $E5, $E5, $FF, $E8, $E8, $E9, $FF, $EB, $EC, $EC, $FF, $EF, $EF, $EF, $FF, $F2, $F2, $F2, $FF, $9F, $9F, $9F, $FF, $5F, $5F, $5F, $FF, $00, $00, $00, $F0, $00, $00, $00, $30, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $30, $00, $00, $00, $C9, $42, $42, $42, $FF, $7E, $7E, $7E, $FF, $AD, $AD, $AD, $FF, $C1, $C1, $C1, $FF, $B3, $B2, $B2, $FF, $85, $85, $85, $FF, $3A, $3A, $3A, $FF, $00, $00, $00, $C9, $00, $00, $00, $30, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $61, $00, $00, $00, $B7, $00, $00, $00, $EC, $00, $00, $00, $FF, $00, $00, $00, $EC, $00, $00, $00, $B7, $00, $00, $00, $61, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00); tuxcmd-0.6.70+dfsg/pixmaps/gnome_mime_x_directory_smb_share_16_png.inc0000644000175000017500000001305311300022643025136 0ustar salvisalviconst gnome_mime_x_directory_smb_share_16_png: array[1..1049] of byte = ( $47, $64, $6B, $50, $00, $00, $04, $18, $01, $01, $00, $02, $00, $00, $00, $40, $00, $00, $00, $10, $00, $00, $00, $10, $00, $00, $00, $00, $00, $00, $00, $00, $0E, $0E, $0E, $59, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $4F, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $8E, $92, $7C, $FF, $8E, $92, $7C, $FF, $8E, $92, $7C, $FF, $8E, $92, $7C, $FF, $66, $69, $58, $FF, $00, $00, $00, $FF, $00, $00, $00, $30, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $8E, $92, $7C, $FF, $68, $6A, $57, $FF, $68, $6A, $57, $FF, $67, $69, $56, $FF, $67, $69, $56, $FF, $56, $58, $48, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $30, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $A2, $A3, $9B, $FF, $D8, $D9, $CC, $FF, $D1, $D3, $C6, $FF, $D0, $D1, $C4, $FF, $BA, $BB, $AF, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $D6, $D7, $CA, $FF, $D6, $D7, $CA, $FF, $D6, $D7, $CA, $FF, $D6, $D7, $CA, $FF, $D6, $D7, $CA, $FF, $D6, $D7, $CA, $FF, $DB, $DC, $CF, $FF, $C3, $C5, $B1, $FF, $BB, $BE, $AA, $FF, $B9, $BB, $A8, $FF, $A5, $A6, $95, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $D0, $D1, $C4, $FF, $C8, $CA, $B5, $FF, $C8, $CA, $B5, $FF, $C8, $CA, $B5, $FF, $C8, $CA, $B5, $FF, $BC, $BE, $AA, $FF, $BC, $BE, $AA, $FF, $BC, $BE, $AA, $FF, $BA, $BC, $A9, $FF, $B8, $B9, $A7, $FF, $A4, $A5, $94, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $D7, $D8, $CC, $FF, $C1, $C4, $AE, $FF, $BF, $C2, $AC, $FF, $BC, $BF, $AA, $FF, $BB, $BD, $A9, $FF, $B9, $BA, $A6, $FF, $B8, $B9, $A5, $FF, $B5, $B7, $A3, $FF, $AF, $B0, $9D, $FF, $AC, $AD, $9B, $FF, $99, $9B, $8A, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $D7, $D8, $CC, $FF, $BC, $BE, $A9, $FF, $BA, $BC, $A7, $FF, $B7, $B9, $A5, $FF, $B7, $B8, $A3, $FF, $B4, $B5, $A1, $FF, $B2, $B4, $A0, $FF, $AF, $B1, $9D, $FF, $A9, $AA, $97, $FF, $A5, $A7, $94, $FF, $93, $94, $84, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $D7, $D8, $CC, $FF, $B6, $B8, $A3, $FF, $B4, $B6, $A1, $FF, $B2, $B4, $9F, $FF, $B0, $B2, $9D, $FF, $AE, $AF, $9B, $FF, $AC, $AE, $99, $FF, $A8, $AB, $97, $FF, $A3, $A4, $91, $FF, $9F, $A1, $8F, $FF, $8E, $90, $7F, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $C1, $C2, $B8, $FF, $A1, $A3, $8F, $FF, $9F, $A1, $8D, $FF, $9C, $9E, $8B, $FF, $7D, $7E, $70, $FF, $BC, $BD, $B5, $FF, $7A, $7C, $6D, $FF, $94, $96, $84, $FF, $8F, $90, $7F, $FF, $8C, $8E, $7E, $FF, $8B, $8D, $7C, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $5C, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $AB, $AB, $AB, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $5C, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $B9, $B9, $B9, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $33, $32, $31, $44, $00, $00, $00, $F3, $C9, $C9, $C9, $FE, $00, $00, $00, $FE, $33, $32, $31, $44, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $16, $00, $00, $00, $1E, $00, $00, $00, $35, $00, $00, $00, $52, $00, $00, $00, $74, $00, $00, $00, $9C, $00, $00, $00, $C7, $EA, $EA, $EA, $FF, $DE, $DE, $DE, $FB, $CC, $CC, $CC, $FF, $00, $00, $00, $EC, $00, $00, $00, $C0, $00, $00, $00, $81, $00, $00, $00, $52, $00, $00, $00, $39, $00, $00, $00, $33, $00, $00, $00, $00, $C8, $C8, $C8, $15, $C8, $C8, $C8, $27, $C8, $C8, $C8, $44, $C8, $C8, $C8, $66, $B0, $B0, $B0, $9E, $86, $86, $86, $D5, $CD, $CD, $CD, $F0, $B4, $B4, $B4, $FA, $B4, $B4, $B4, $FB, $7B, $7B, $7B, $F0, $95, $95, $94, $C8, $AB, $AA, $AA, $81, $C8, $C8, $C8, $46, $C8, $C8, $C8, $31, $C8, $C8, $C8, $2C, $00, $00, $00, $14, $00, $00, $00, $20, $00, $00, $00, $39, $00, $00, $00, $5E, $00, $00, $00, $7E, $00, $00, $00, $A8, $00, $00, $00, $D1, $00, $00, $00, $EE, $00, $00, $00, $FC, $00, $00, $00, $FC, $00, $00, $00, $EB, $00, $00, $00, $BF, $00, $00, $00, $85, $00, $00, $00, $58, $00, $00, $00, $42, $00, $00, $00, $3C, $00); tuxcmd-0.6.70+dfsg/pixmaps/tuxcmd_32_png.inc0000644000175000017500000003044311300022643017670 0ustar salvisalviconst tuxcmd_32_png: array[1..2354] of byte = ( $47, $64, $6B, $50, $00, $00, $09, $31, $02, $01, $00, $02, $00, $00, $00, $80, $00, $00, $00, $20, $00, $00, $00, $20, $8C, $FF, $FF, $FF, $00, $03, $7C, $A6, $D2, $26, $90, $B3, $D9, $65, $98, $B9, $DC, $84, $82, $A3, $C1, $E0, $94, $03, $98, $B9, $DC, $84, $90, $B3, $D9, $65, $7C, $A6, $D2, $26, $95, $FF, $FF, $FF, $00, $05, $7F, $A8, $D4, $24, $9F, $BE, $DE, $93, $B6, $CD, $E6, $C5, $D8, $E5, $F2, $F0, $F6, $F9, $FC, $FF, $84, $FF, $FF, $FF, $FF, $05, $F6, $F9, $FC, $FF, $D8, $E5, $F2, $F0, $B6, $CD, $E6, $C5, $9F, $BE, $DE, $93, $7F, $A8, $D4, $24, $90, $FF, $FF, $FF, $00, $08, $79, $A4, $D1, $13, $9F, $BE, $DE, $9C, $CE, $DE, $EE, $E5, $FE, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FC, $FD, $FE, $FF, $DE, $E8, $F3, $FF, $CF, $DE, $EE, $FF, $82, $C2, $D5, $E9, $FF, $08, $CF, $DE, $EE, $FF, $DE, $E8, $F3, $FF, $FC, $FD, $FE, $FF, $FF, $FF, $FF, $FF, $FE, $FF, $FF, $FF, $CE, $DE, $EE, $E5, $9F, $BE, $DE, $9C, $79, $A4, $D1, $13, $8D, $FF, $FF, $FF, $00, $07, $92, $B5, $DA, $54, $BF, $D3, $E9, $DC, $FC, $FD, $FE, $FF, $FF, $FF, $FF, $FF, $D8, $E4, $F1, $FF, $9F, $BC, $DC, $FF, $73, $9E, $CC, $FF, $86, $6B, $98, $C9, $FF, $07, $73, $9E, $CC, $FF, $9F, $BC, $DC, $FF, $D8, $E4, $F1, $FF, $FF, $FF, $FF, $FF, $FC, $FD, $FE, $FF, $BF, $D3, $E9, $DC, $92, $B5, $DA, $54, $8B, $FF, $FF, $FF, $00, $05, $9A, $BA, $DD, $7C, $D9, $E5, $F2, $EC, $FF, $FF, $FF, $FF, $E1, $EA, $F4, $FF, $8F, $B0, $D5, $FF, $8C, $68, $95, $C6, $FF, $05, $8F, $B0, $D5, $FF, $E1, $EA, $F4, $FF, $FF, $FF, $FF, $FF, $D9, $E5, $F2, $EC, $9A, $BA, $DD, $7C, $89, $FF, $FF, $FF, $00, $05, $9A, $BA, $DD, $7C, $E9, $F0, $F7, $F8, $FF, $FF, $FF, $FF, $C4, $D5, $E8, $FF, $69, $95, $C5, $FF, $8E, $65, $92, $C4, $FF, $05, $69, $95, $C5, $FF, $C4, $D5, $E8, $FF, $FF, $FF, $FF, $FF, $E9, $F0, $F7, $F8, $9A, $BA, $DD, $7C, $87, $FF, $FF, $FF, $00, $04, $92, $B5, $DA, $54, $D9, $E5, $F2, $EC, $FF, $FF, $FF, $FF, $AE, $C5, $DF, $FF, $92, $62, $8F, $C1, $FF, $04, $AE, $C5, $DF, $FF, $FF, $FF, $FF, $FF, $D9, $E5, $F2, $EC, $92, $B5, $DA, $54, $85, $FF, $FF, $FF, $00, $04, $79, $A4, $D1, $13, $BF, $D3, $E9, $DC, $FF, $FF, $FF, $FF, $C2, $D3, $E6, $FF, $8B, $5F, $8C, $BF, $FF, $01, $5F, $8B, $BE, $FF, $88, $5F, $8C, $BF, $FF, $04, $C2, $D3, $E6, $FF, $FF, $FF, $FF, $FF, $BF, $D3, $E9, $DC, $79, $A4, $D1, $13, $84, $FF, $FF, $FF, $00, $04, $9F, $BE, $DE, $9C, $FC, $FD, $FE, $FF, $DF, $E8, $F2, $FF, $60, $8C, $BE, $FF, $87, $5C, $89, $BC, $FF, $08, $69, $85, $A4, $FF, $61, $6B, $73, $FF, $51, $58, $5D, $FF, $40, $46, $49, $FF, $31, $37, $39, $FF, $53, $5C, $61, $FF, $67, $79, $8C, $FF, $5E, $83, $AD, $FF, $85, $5C, $89, $BC, $FF, $04, $60, $8C, $BE, $FF, $DF, $E8, $F2, $FF, $FC, $FD, $FE, $FF, $9F, $BE, $DE, $9C, $83, $FF, $FF, $FF, $00, $12, $7F, $A8, $D4, $24, $CE, $DE, $EE, $E5, $FF, $FF, $FF, $FF, $85, $A5, $CC, $FF, $5A, $86, $BA, $FF, $5A, $85, $B8, $FF, $5B, $83, $B1, $FF, $60, $83, $AB, $FF, $65, $83, $A5, $FF, $69, $81, $9E, $FF, $69, $7D, $92, $FF, $4F, $56, $59, $FF, $2E, $34, $36, $FF, $41, $46, $47, $FF, $3E, $43, $45, $FF, $63, $68, $68, $FF, $4F, $54, $54, $FF, $2F, $35, $37, $FF, $82, $2C, $32, $34, $FF, $02, $49, $50, $55, $FF, $5F, $7C, $9C, $FF, $84, $5A, $86, $BA, $FF, $04, $85, $A5, $CC, $FF, $FF, $FF, $FF, $FF, $CE, $DE, $EE, $E5, $7F, $A8, $D4, $24, $82, $FF, $FF, $FF, $00, $05, $95, $B3, $D0, $99, $87, $8A, $8B, $FF, $51, $57, $5A, $FF, $44, $4A, $4D, $FF, $38, $3E, $41, $FF, $89, $2E, $34, $36, $FF, $04, $3C, $42, $44, $FF, $3F, $44, $46, $FF, $3D, $43, $44, $FF, $33, $39, $3B, $FF, $82, $2C, $32, $34, $FF, $82, $2E, $34, $36, $FF, $01, $5C, $6C, $7C, $FF, $84, $57, $83, $B7, $FF, $03, $D2, $DE, $EC, $FF, $FE, $FF, $FF, $FF, $9F, $BE, $DE, $93, $82, $FF, $FF, $FF, $00, $0C, $AA, $C0, $D6, $C9, $A9, $AB, $AC, $FF, $67, $76, $80, $FF, $5F, $69, $6F, $FF, $51, $55, $56, $FF, $4C, $51, $51, $FF, $4B, $50, $50, $FF, $4A, $50, $51, $FF, $4A, $4F, $50, $FF, $47, $4C, $4D, $FF, $31, $37, $39, $FF, $2E, $34, $36, $FF, $82, $2A, $30, $32, $FF, $02, $27, $2C, $2E, $FF, $2A, $30, $32, $FF, $87, $2E, $34, $36, $FF, $01, $56, $76, $9B, $FF, $83, $54, $80, $B4, $FF, $0C, $90, $AD, $CE, $FF, $FF, $FF, $FF, $FF, $B6, $CD, $E6, $C5, $FF, $FF, $FF, $00, $7C, $A6, $D2, $26, $D8, $E5, $F2, $F0, $FB, $FC, $FD, $FF, $5B, $84, $B6, $FF, $51, $7D, $B2, $FF, $4F, $79, $A9, $FF, $60, $72, $85, $FF, $3D, $44, $46, $FF, $82, $2E, $34, $36, $FF, $08, $27, $2C, $2D, $FF, $2C, $30, $31, $FF, $3B, $3E, $3E, $FF, $3D, $41, $41, $FF, $3C, $41, $41, $FF, $39, $3C, $3D, $FF, $34, $37, $38, $FF, $27, $2C, $2E, $FF, $85, $2E, $34, $36, $FF, $02, $8E, $92, $93, $FF, $8C, $9D, $B2, $FF, $83, $51, $7D, $B2, $FF, $07, $5B, $84, $B6, $FF, $FB, $FC, $FD, $FF, $D8, $E5, $F2, $F0, $7C, $A6, $D2, $26, $90, $B3, $D9, $65, $F6, $F9, $FC, $FF, $D7, $E1, $ED, $FF, $84, $4E, $7A, $AF, $FF, $02, $51, $77, $A6, $FF, $50, $58, $5C, $FF, $87, $2E, $34, $36, $FF, $03, $38, $3D, $3F, $FF, $41, $44, $44, $FF, $2D, $33, $34, $FF, $83, $2E, $34, $36, $FF, $04, $38, $3E, $40, $FF, $DB, $DB, $DB, $FF, $D7, $DB, $DF, $FF, $53, $7E, $B1, $FF, $83, $4E, $7A, $AF, $FF, $06, $D7, $E1, $ED, $FF, $F6, $F9, $FC, $FF, $90, $B3, $D9, $65, $98, $B9, $DC, $84, $FF, $FF, $FF, $FF, $C4, $D2, $E4, $FF, $85, $4B, $77, $AD, $FF, $02, $50, $79, $AC, $FF, $6A, $72, $79, $FF, $8C, $2E, $34, $36, $FF, $04, $34, $3A, $3C, $FF, $DB, $DB, $DB, $FF, $DE, $DE, $DE, $FF, $8C, $A8, $CA, $FF, $83, $4B, $77, $AD, $FF, $06, $C4, $D2, $E4, $FF, $FF, $FF, $FF, $FF, $98, $B9, $DC, $84, $A3, $C1, $E0, $94, $FF, $FF, $FF, $FF, $B1, $C4, $DB, $FF, $86, $48, $74, $AA, $FF, $02, $4E, $78, $AD, $FF, $72, $7B, $83, $FF, $8C, $2E, $34, $36, $FF, $03, $C8, $C9, $C9, $FF, $DE, $DE, $DE, $FF, $CA, $D5, $E3, $FF, $83, $48, $74, $AA, $FF, $02, $B1, $C4, $DB, $FF, $FF, $FF, $FF, $FF, $82, $A3, $C1, $E0, $94, $02, $FF, $FF, $FF, $FF, $B0, $C3, $DA, $FF, $87, $45, $71, $A8, $FF, $02, $4B, $75, $AA, $FF, $66, $6F, $76, $FF, $8A, $2E, $34, $36, $FF, $05, $36, $3B, $3D, $FF, $AF, $B0, $B1, $FF, $DE, $DE, $DE, $FF, $DD, $DD, $DE, $FF, $56, $7E, $B0, $FF, $82, $45, $71, $A8, $FF, $06, $B0, $C3, $DA, $FF, $FF, $FF, $FF, $FF, $A3, $C1, $E0, $94, $98, $B9, $DC, $84, $FF, $FF, $FF, $FF, $C1, $CF, $E1, $FF, $88, $42, $6E, $A5, $FF, $02, $48, $72, $A6, $FF, $5B, $64, $6A, $FF, $82, $2E, $34, $36, $FF, $09, $5B, $5F, $61, $FF, $A2, $A4, $A5, $FF, $B6, $B7, $B7, $FF, $CD, $CD, $CE, $FF, $D9, $D9, $D9, $FF, $DF, $DF, $DF, $FF, $D5, $D6, $D6, $FF, $CD, $CE, $CE, $FF, $DB, $DB, $DB, $FF, $82, $DE, $DE, $DE, $FF, $01, $8C, $A6, $C6, $FF, $82, $42, $6E, $A5, $FF, $06, $C1, $CF, $E1, $FF, $FF, $FF, $FF, $FF, $98, $B9, $DC, $84, $90, $B3, $D9, $65, $F6, $F9, $FC, $FF, $D3, $DD, $EA, $FF, $89, $3F, $6B, $A3, $FF, $05, $48, $71, $A4, $FF, $8F, $93, $96, $FF, $D0, $D1, $D1, $FF, $DD, $DD, $DD, $FF, $DE, $DE, $DE, $FF, $82, $DD, $DD, $DD, $FF, $83, $DE, $DE, $DE, $FF, $01, $DD, $DD, $DD, $FF, $83, $DE, $DE, $DE, $FF, $01, $A9, $BA, $D0, $FF, $82, $3F, $6B, $A3, $FF, $07, $D3, $DD, $EA, $FF, $F6, $F9, $FC, $FF, $90, $B3, $D9, $65, $7C, $A6, $D2, $26, $D8, $E5, $F2, $F0, $FA, $FB, $FD, $FF, $48, $70, $A5, $FF, $87, $3D, $68, $A0, $FF, $03, $47, $70, $A4, $FF, $BF, $CA, $D9, $FF, $DD, $DD, $DD, $FF, $87, $DE, $DE, $DE, $FF, $0F, $DD, $DD, $DD, $FF, $DE, $DE, $DE, $FF, $DD, $DD, $DD, $FF, $DE, $DE, $DE, $FF, $DD, $DD, $DD, $FF, $C0, $CB, $D9, $FF, $3D, $68, $A0, $FF, $48, $70, $A5, $FF, $FA, $FB, $FD, $FF, $D8, $E5, $F2, $F0, $7C, $A6, $D2, $26, $FF, $FF, $FF, $00, $B6, $CD, $E6, $C5, $FF, $FF, $FF, $FF, $80, $9B, $C0, $FF, $84, $3A, $65, $9D, $FF, $04, $3B, $66, $9D, $FF, $6D, $8C, $B4, $FF, $B2, $C0, $D3, $FF, $D8, $D8, $DB, $FF, $85, $DE, $DE, $DE, $FF, $83, $DF, $DF, $DF, $FF, $83, $DE, $DE, $DE, $FF, $01, $DD, $DD, $DD, $FF, $82, $DE, $DE, $DE, $FF, $05, $DA, $DF, $E6, $FF, $3A, $65, $9D, $FF, $80, $9B, $C0, $FF, $FF, $FF, $FF, $FF, $B6, $CD, $E6, $C5, $82, $FF, $FF, $FF, $00, $03, $9F, $BE, $DE, $93, $FE, $FF, $FF, $FF, $CA, $D5, $E4, $FF, $83, $37, $62, $9B, $FF, $05, $66, $86, $B2, $FF, $CB, $D4, $E0, $FF, $EE, $EE, $EE, $FF, $DE, $DE, $DE, $FF, $DD, $DD, $DD, $FF, $83, $DE, $DE, $DE, $FF, $01, $DD, $DD, $DD, $FF, $82, $E0, $E0, $E0, $FF, $82, $DF, $DF, $DF, $FF, $82, $DE, $DE, $DE, $FF, $01, $DD, $DD, $DD, $FF, $82, $DE, $DE, $DE, $FF, $06, $DD, $DD, $DD, $FF, $DD, $DD, $DE, $FF, $96, $AD, $CA, $FF, $CB, $D5, $E4, $FF, $FE, $FF, $FF, $FF, $9F, $BE, $DE, $93, $82, $FF, $FF, $FF, $00, $08, $7F, $A8, $D4, $24, $CE, $DE, $EE, $E5, $FF, $FF, $FF, $FF, $69, $88, $B3, $FF, $34, $5F, $98, $FF, $91, $A8, $C7, $FF, $FD, $FE, $FE, $FF, $FB, $FB, $FB, $FF, $82, $DD, $DD, $DD, $FF, $82, $DF, $DF, $DF, $FF, $82, $DE, $DE, $DE, $FF, $03, $E0, $E0, $E0, $FF, $DF, $DF, $DF, $FF, $E0, $E0, $E0, $FF, $84, $DF, $DF, $DF, $FF, $02, $DE, $DE, $DE, $FF, $DD, $DD, $DD, $FF, $82, $DE, $DE, $DE, $FF, $05, $EF, $EF, $EF, $FF, $FD, $FD, $FE, $FF, $FF, $FF, $FF, $FF, $CE, $DE, $EE, $E5, $7F, $A8, $D4, $24, $83, $FF, $FF, $FF, $00, $05, $9F, $BE, $DE, $9C, $FC, $FD, $FE, $FF, $D7, $DF, $EA, $FF, $80, $9A, $BE, $FF, $FE, $FE, $FF, $FF, $82, $FF, $FF, $FF, $FF, $03, $F9, $F9, $F9, $FF, $F0, $F0, $F0, $FF, $DE, $DE, $DE, $FF, $82, $DD, $DD, $DD, $FF, $04, $DE, $DE, $DE, $FF, $DF, $DF, $DF, $FF, $E0, $E0, $E0, $FF, $DE, $DE, $DE, $FF, $82, $DF, $DF, $DF, $FF, $01, $E0, $E0, $E0, $FF, $84, $DE, $DE, $DE, $FF, $05, $EE, $EE, $EE, $FF, $F5, $F5, $F5, $FF, $EB, $EF, $F5, $FF, $FC, $FD, $FE, $FF, $9F, $BE, $DE, $9C, $84, $FF, $FF, $FF, $00, $04, $79, $A4, $D1, $13, $BF, $D3, $E9, $DC, $FF, $FF, $FF, $FF, $E1, $E7, $EF, $FF, $85, $FF, $FF, $FF, $FF, $05, $FA, $FA, $FA, $FF, $F7, $F7, $F7, $FF, $E3, $E3, $E3, $FF, $E0, $E0, $E0, $FF, $DF, $DF, $DF, $FF, $82, $E0, $E0, $E0, $FF, $82, $E1, $E1, $E1, $FF, $82, $E0, $E0, $E0, $FF, $08, $DF, $DF, $DF, $FF, $E0, $E0, $E0, $FF, $F5, $F5, $F5, $FF, $F9, $F9, $F9, $FF, $EF, $F2, $F6, $FF, $FF, $FF, $FF, $FF, $BF, $D3, $E9, $DC, $79, $A4, $D1, $13, $85, $FF, $FF, $FF, $00, $04, $92, $B5, $DA, $54, $D9, $E5, $F2, $EC, $FF, $FF, $FF, $FF, $DC, $E3, $ED, $FF, $8A, $FF, $FF, $FF, $FF, $84, $ED, $ED, $ED, $FF, $84, $FF, $FF, $FF, $FF, $04, $EC, $F0, $F5, $FF, $FF, $FF, $FF, $FF, $D9, $E5, $F2, $EC, $92, $B5, $DA, $54, $87, $FF, $FF, $FF, $00, $04, $9A, $BA, $DD, $7C, $E9, $F0, $F7, $F8, $FF, $FF, $FF, $FF, $E1, $E7, $EF, $FF, $90, $FF, $FF, $FF, $FF, $04, $E6, $EB, $F2, $FF, $FF, $FF, $FF, $FF, $E9, $F0, $F7, $F8, $9A, $BA, $DD, $7C, $89, $FF, $FF, $FF, $00, $05, $9A, $BA, $DD, $7C, $D9, $E5, $F2, $EC, $FF, $FF, $FF, $FF, $E2, $E7, $EF, $FF, $F1, $F4, $F8, $FF, $8C, $FF, $FF, $FF, $FF, $05, $F8, $F9, $FB, $FF, $E9, $ED, $F3, $FF, $FF, $FF, $FF, $FF, $D9, $E5, $F2, $EC, $9A, $BA, $DD, $7C, $8B, $FF, $FF, $FF, $00, $06, $92, $B5, $DA, $54, $BF, $D3, $E9, $DC, $FC, $FD, $FE, $FF, $FF, $FF, $FF, $FF, $DF, $E5, $EE, $FF, $E9, $ED, $F3, $FF, $88, $FF, $FF, $FF, $FF, $06, $F2, $F4, $F8, $FF, $E0, $E6, $EF, $FF, $FF, $FF, $FF, $FF, $FC, $FD, $FE, $FF, $BF, $D3, $E9, $DC, $92, $B5, $DA, $54, $8D, $FF, $FF, $FF, $00, $08, $79, $A4, $D1, $13, $9F, $BE, $DE, $9C, $CE, $DE, $EE, $E5, $FE, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FB, $FC, $FD, $FF, $E3, $E8, $F0, $FF, $E0, $E6, $EE, $FF, $82, $E4, $E9, $F0, $FF, $08, $DF, $E5, $EE, $FF, $E1, $E7, $EF, $FF, $FB, $FC, $FD, $FF, $FF, $FF, $FF, $FF, $FE, $FF, $FF, $FF, $CE, $DE, $EE, $E5, $9F, $BE, $DE, $9C, $79, $A4, $D1, $13, $90, $FF, $FF, $FF, $00, $05, $7F, $A8, $D4, $24, $9F, $BE, $DE, $93, $B6, $CD, $E6, $C5, $D8, $E5, $F2, $F0, $F6, $F9, $FC, $FF, $84, $FF, $FF, $FF, $FF, $05, $F6, $F9, $FC, $FF, $D8, $E5, $F2, $F0, $B6, $CD, $E6, $C5, $9F, $BE, $DE, $93, $7F, $A8, $D4, $24, $95, $FF, $FF, $FF, $00, $03, $7C, $A6, $D2, $26, $90, $B3, $D9, $65, $98, $B9, $DC, $84, $82, $A3, $C1, $E0, $94, $03, $98, $B9, $DC, $84, $90, $B3, $D9, $65, $7C, $A6, $D2, $26, $8C, $FF, $FF, $FF, $00, $00); tuxcmd-0.6.70+dfsg/pixmaps/tools/0000755000175000017500000000000011300022643015655 5ustar salvisalvituxcmd-0.6.70+dfsg/pixmaps/tools/tuxcmd_32_png.c0000644000175000017500000002167011300022643020503 0ustar salvisalvi/* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (tuxcmd_32_png) #endif #ifdef __GNUC__ static const guint8 tuxcmd_32_png[] __attribute__ ((__aligned__ (4))) = #else static const guint8 tuxcmd_32_png[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (2329) */ "\0\0\11""1" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (128) */ "\0\0\0\200" /* width (32) */ "\0\0\0\40" /* height (32) */ "\0\0\0\40" /* pixel_data: */ "\214\377\377\377\0\3|\246\322&\220\263\331e\230\271\334\204\202\243\301" "\340\224\3\230\271\334\204\220\263\331e|\246\322&\225\377\377\377\0\5" "\177\250\324$\237\276\336\223\266\315\346\305\330\345\362\360\366\371" "\374\377\204\377\377\377\377\5\366\371\374\377\330\345\362\360\266\315" "\346\305\237\276\336\223\177\250\324$\220\377\377\377\0\10y\244\321\23" "\237\276\336\234\316\336\356\345\376\377\377\377\377\377\377\377\374" "\375\376\377\336\350\363\377\317\336\356\377\202\302\325\351\377\10\317" "\336\356\377\336\350\363\377\374\375\376\377\377\377\377\377\376\377" "\377\377\316\336\356\345\237\276\336\234y\244\321\23\215\377\377\377" "\0\7\222\265\332T\277\323\351\334\374\375\376\377\377\377\377\377\330" "\344\361\377\237\274\334\377s\236\314\377\206k\230\311\377\7s\236\314" "\377\237\274\334\377\330\344\361\377\377\377\377\377\374\375\376\377" "\277\323\351\334\222\265\332T\213\377\377\377\0\5\232\272\335|\331\345" "\362\354\377\377\377\377\341\352\364\377\217\260\325\377\214h\225\306" "\377\5\217\260\325\377\341\352\364\377\377\377\377\377\331\345\362\354" "\232\272\335|\211\377\377\377\0\5\232\272\335|\351\360\367\370\377\377" "\377\377\304\325\350\377i\225\305\377\216e\222\304\377\5i\225\305\377" "\304\325\350\377\377\377\377\377\351\360\367\370\232\272\335|\207\377" "\377\377\0\4\222\265\332T\331\345\362\354\377\377\377\377\256\305\337" "\377\222b\217\301\377\4\256\305\337\377\377\377\377\377\331\345\362\354" "\222\265\332T\205\377\377\377\0\4y\244\321\23\277\323\351\334\377\377" "\377\377\302\323\346\377\213_\214\277\377\1_\213\276\377\210_\214\277" "\377\4\302\323\346\377\377\377\377\377\277\323\351\334y\244\321\23\204" "\377\377\377\0\4\237\276\336\234\374\375\376\377\337\350\362\377`\214" "\276\377\207\\\211\274\377\10i\205\244\377aks\377QX]\377@FI\377179\377" "S\\a\377gy\214\377^\203\255\377\205\\\211\274\377\4`\214\276\377\337" "\350\362\377\374\375\376\377\237\276\336\234\203\377\377\377\0\22\177" "\250\324$\316\336\356\345\377\377\377\377\205\245\314\377Z\206\272\377" "Z\205\270\377[\203\261\377`\203\253\377e\203\245\377i\201\236\377i}\222" "\377OVY\377.46\377AFG\377>CE\377chh\377OTT\377/57\377\202,24\377\2IP" "U\377_|\234\377\204Z\206\272\377\4\205\245\314\377\377\377\377\377\316" "\336\356\345\177\250\324$\202\377\377\377\0\5\225\263\320\231\207\212" "\213\377QWZ\377DJM\3778>A\377\211.46\377\4>" "\377=AA\377@\377\333\333\333\377\327\333\337\377S~\261\377\203Nz\257" "\377\6\327\341\355\377\366\371\374\377\220\263\331e\230\271\334\204\377" "\377\377\377\304\322\344\377\205Kw\255\377\2Py\254\377jry\377\214.46" "\377\4""4:<\377\333\333\333\377\336\336\336\377\214\250\312\377\203K" "w\255\377\6\304\322\344\377\377\377\377\377\230\271\334\204\243\301\340" "\224\377\377\377\377\261\304\333\377\206Ht\252\377\2Nx\255\377r{\203" "\377\214.46\377\3\310\311\311\377\336\336\336\377\312\325\343\377\203" "Ht\252\377\2\261\304\333\377\377\377\377\377\202\243\301\340\224\2\377" "\377\377\377\260\303\332\377\207Eq\250\377\2Ku\252\377fov\377\212.46" "\377\5""6;=\377\257\260\261\377\336\336\336\377\335\335\336\377V~\260" "\377\202Eq\250\377\6\260\303\332\377\377\377\377\377\243\301\340\224" "\230\271\334\204\377\377\377\377\301\317\341\377\210Bn\245\377\2Hr\246" "\377[dj\377\202.46\377\11[_a\377\242\244\245\377\266\267\267\377\315" "\315\316\377\331\331\331\377\337\337\337\377\325\326\326\377\315\316" "\316\377\333\333\333\377\202\336\336\336\377\1\214\246\306\377\202Bn" "\245\377\6\301\317\341\377\377\377\377\377\230\271\334\204\220\263\331" "e\366\371\374\377\323\335\352\377\211\77k\243\377\5Hq\244\377\217\223" "\226\377\320\321\321\377\335\335\335\377\336\336\336\377\202\335\335" "\335\377\203\336\336\336\377\1\335\335\335\377\203\336\336\336\377\1" "\251\272\320\377\202\77k\243\377\7\323\335\352\377\366\371\374\377\220" "\263\331e|\246\322&\330\345\362\360\372\373\375\377Hp\245\377\207=h\240" "\377\3Gp\244\377\277\312\331\377\335\335\335\377\207\336\336\336\377" "\17\335\335\335\377\336\336\336\377\335\335\335\377\336\336\336\377\335" "\335\335\377\300\313\331\377=h\240\377Hp\245\377\372\373\375\377\330" "\345\362\360|\246\322&\377\377\377\0\266\315\346\305\377\377\377\377" "\200\233\300\377\204:e\235\377\4;f\235\377m\214\264\377\262\300\323\377" "\330\330\333\377\205\336\336\336\377\203\337\337\337\377\203\336\336" "\336\377\1\335\335\335\377\202\336\336\336\377\5\332\337\346\377:e\235" "\377\200\233\300\377\377\377\377\377\266\315\346\305\202\377\377\377" "\0\3\237\276\336\223\376\377\377\377\312\325\344\377\2037b\233\377\5" "f\206\262\377\313\324\340\377\356\356\356\377\336\336\336\377\335\335" "\335\377\203\336\336\336\377\1\335\335\335\377\202\340\340\340\377\202" "\337\337\337\377\202\336\336\336\377\1\335\335\335\377\202\336\336\336" "\377\6\335\335\335\377\335\335\336\377\226\255\312\377\313\325\344\377" "\376\377\377\377\237\276\336\223\202\377\377\377\0\10\177\250\324$\316" "\336\356\345\377\377\377\377i\210\263\3774_\230\377\221\250\307\377\375" "\376\376\377\373\373\373\377\202\335\335\335\377\202\337\337\337\377" "\202\336\336\336\377\3\340\340\340\377\337\337\337\377\340\340\340\377" "\204\337\337\337\377\2\336\336\336\377\335\335\335\377\202\336\336\336" "\377\5\357\357\357\377\375\375\376\377\377\377\377\377\316\336\356\345" "\177\250\324$\203\377\377\377\0\5\237\276\336\234\374\375\376\377\327" "\337\352\377\200\232\276\377\376\376\377\377\202\377\377\377\377\3\371" "\371\371\377\360\360\360\377\336\336\336\377\202\335\335\335\377\4\336" "\336\336\377\337\337\337\377\340\340\340\377\336\336\336\377\202\337" "\337\337\377\1\340\340\340\377\204\336\336\336\377\5\356\356\356\377" "\365\365\365\377\353\357\365\377\374\375\376\377\237\276\336\234\204" "\377\377\377\0\4y\244\321\23\277\323\351\334\377\377\377\377\341\347" "\357\377\205\377\377\377\377\5\372\372\372\377\367\367\367\377\343\343" "\343\377\340\340\340\377\337\337\337\377\202\340\340\340\377\202\341" "\341\341\377\202\340\340\340\377\10\337\337\337\377\340\340\340\377\365" "\365\365\377\371\371\371\377\357\362\366\377\377\377\377\377\277\323" "\351\334y\244\321\23\205\377\377\377\0\4\222\265\332T\331\345\362\354" "\377\377\377\377\334\343\355\377\212\377\377\377\377\204\355\355\355" "\377\204\377\377\377\377\4\354\360\365\377\377\377\377\377\331\345\362" "\354\222\265\332T\207\377\377\377\0\4\232\272\335|\351\360\367\370\377" "\377\377\377\341\347\357\377\220\377\377\377\377\4\346\353\362\377\377" "\377\377\377\351\360\367\370\232\272\335|\211\377\377\377\0\5\232\272" "\335|\331\345\362\354\377\377\377\377\342\347\357\377\361\364\370\377" "\214\377\377\377\377\5\370\371\373\377\351\355\363\377\377\377\377\377" "\331\345\362\354\232\272\335|\213\377\377\377\0\6\222\265\332T\277\323" "\351\334\374\375\376\377\377\377\377\377\337\345\356\377\351\355\363" "\377\210\377\377\377\377\6\362\364\370\377\340\346\357\377\377\377\377" "\377\374\375\376\377\277\323\351\334\222\265\332T\215\377\377\377\0\10" "y\244\321\23\237\276\336\234\316\336\356\345\376\377\377\377\377\377" "\377\377\373\374\375\377\343\350\360\377\340\346\356\377\202\344\351" "\360\377\10\337\345\356\377\341\347\357\377\373\374\375\377\377\377\377" "\377\376\377\377\377\316\336\356\345\237\276\336\234y\244\321\23\220" "\377\377\377\0\5\177\250\324$\237\276\336\223\266\315\346\305\330\345" "\362\360\366\371\374\377\204\377\377\377\377\5\366\371\374\377\330\345" "\362\360\266\315\346\305\237\276\336\223\177\250\324$\225\377\377\377" "\0\3|\246\322&\220\263\331e\230\271\334\204\202\243\301\340\224\3\230" "\271\334\204\220\263\331e|\246\322&\214\377\377\377\0"}; tuxcmd-0.6.70+dfsg/pixmaps/tools/stock_lock_16_png.c0000644000175000017500000000644211300022643021334 0ustar salvisalvi/* GdkPixbuf RGBA C-Source image dump */ #ifdef __SUNPRO_C #pragma align 4 (stock_lock_16_png) #endif #ifdef __GNUC__ static const guint8 stock_lock_16_png[] __attribute__ ((__aligned__ (4))) = #else static const guint8 stock_lock_16_png[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1024) */ "\0\0\4\30" /* pixdata_type (0x1010002) */ "\1\1\0\2" /* rowstride (64) */ "\0\0\0@" /* width (16) */ "\0\0\0\20" /* height (16) */ "\0\0\0\20" /* pixel_data: */ "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0i\0\0\0\273\0\0\0\306\0\0\0\306" "\0\0\0\301\0\0\0;\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\20\36\36\36\224zzz\373\322\322\322\377\333\333\333" "\377\333\333\333\377\274\274\274\376rrr\361\10\10\10\206\0\0\0\3\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\23\23\23~\204\204\204\374" "\276\276\276\367888\362\34\34\34\371\34\34\34\371MMM\374\261\261\261" "\377\204\204\204\366\0\0\0o\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0---\353\302\302\302\375\11\11\11\336\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0...\374\252\252\252\376\0\0\0\275\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0+++\374\300\300\300\374\0\0\0\334\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\26\26\26\372\301\300\300\377\0\0\0\340\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\23\21\16\370\233\227\224\377\40\35\34" "\377\13\13\7\377\4\3\2\377\4\3\2\377\5\4\3\377/)!\377\250\243\236\377" "\32\23\13\377\0\0\0`\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\377\245\221" "v\377\340\304\240\377\337\304\243\377\337\304\243\377\332\276\232\377" "\332\276\232\377\332\276\232\377\326\272\224\377\315\246v\377\201Z+\377" "\0\0\0\377\0\0\0\0\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\377\342\305\241\377" "\330\265\214\377\312\237h\377\254\207X\377\247\202R\377\247\202R\377" "\247\202S\377\243{K\377\274\210I\377\254q.\377\0\0\0\377\0\0\0\0\0\0" "\0\5\0\0\0\0\0\0\0\0\0\0\0\377\343\306\242\377\325\256~\377\260\215_" "\377\325\262\204\377\317\253|\377\317\253|\377\317\254{\377\313\244q" "\377\274\207F\377\252o+\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\377\341\304\240\377\320\246t\377\307\233d\377\252\204U\377\244" "~N\377\244~N\377\244~N\377\240wD\377\272\204B\377\254q.\377\0\0\0\377" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\341\302\234\377\316\244p\377" "\255\215d\377\322\262\211\377\315\254\203\377\315\254\203\377\316\255" "\203\377\314\247{\377\270\200>\377\255s2\377\0\0\0\377\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\377\340\302\236\377\324\254y\377\315\246n\377" "\257\215^\377\253\207X\377\253\207X\377\253\210X\377\250\201L\377\274" "\207F\377\264~>\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" "\320\250t\377\306\226]\377\276\215P\377\276\215P\377\272\211K\377\272" "\211K\377\275\214N\377\274\212L\377\272\206G\377\244q6\377\0\0\0\377" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0\0\0\377\0\0\0\377\0\0\0\377" "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" "\0\0\0w\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0"}; tuxcmd-0.6.70+dfsg/pixmaps/tools/tuxcmd_24_png.c0000644000175000017500000001276011300022643020504 0ustar salvisalvi/* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (tuxcmd_24_png) #endif #ifdef __GNUC__ static const guint8 tuxcmd_24_png[] __attribute__ ((__aligned__ (4))) = #else static const guint8 tuxcmd_24_png[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1428) */ "\0\0\5\254" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\210\377\377\377\0\3r\237\317\1\213\260\330/\247\303\341p\202\274\322" "\350\226\3\247\303\341p\213\260\330/r\237\317\1\216\377\377\377\0\5\227" "\270\3341\301\325\352\262\325\342\361\337\356\364\371\374\377\377\377" "\377\202\374\375\376\377\5\377\377\377\377\356\364\371\374\325\342\361" "\337\301\325\352\262\227\270\3341\212\377\377\377\0\7r\237\317\2\251" "\305\342\177\340\352\364\351\370\372\374\377\305\326\352\377\247\301" "\337\377\212\255\324\377\202p\233\312\377\7\212\255\324\377\247\301\337" "\377\305\326\352\377\370\372\374\377\340\352\364\351\251\305\342\177" "r\237\317\2\207\377\377\377\0\5\225\267\333$\276\323\351\273\371\373" "\375\377\327\342\360\377z\241\315\377\210h\224\306\377\5z\241\315\377" "\327\342\360\377\371\373\375\377\276\323\351\273\225\267\333$\205\377" "\377\377\0\4r\237\317\2\276\323\351\273\371\373\375\377\243\275\333\377" "\214d\220\302\377\4\243\275\333\377\371\373\375\377\276\323\351\273r" "\237\317\2\204\377\377\377\0\3\251\305\342\177\371\373\375\377\240\272" "\331\377\210`\214\277\377\1`\213\276\377\205`\214\277\377\3\240\272\331" "\377\371\373\375\377\251\305\342\177\203\377\377\377\0\3\227\270\334" "1\340\352\364\351\324\337\355\377\205\\\210\274\377\10f\207\256\377c" "oy\377JQU\3778=@\377;AC\377`ku\377i\201\235\377\\\206\270\377\203\\\210" "\274\377\3\324\337\355\377\340\352\364\351\227\270\3341\202\377\377\377" "\0\15\265\310\333\267\264\267\270\377t\204\225\377q\177\217\377y\204" "\220\377v~\205\377gmq\377dij\377RUW\377GMN\377\77FF\377chg\377MQR\377" "\202.46\377\2@GI\377a~\234\377\202X\204\270\377\17l\222\300\377\366\371" "\373\377\301\325\352\262\377\377\377\0r\237\317\1\230\242\255\352T[b" "\377\377\1\77\377y|}\377r}\205\377\206Q}\262\377\4\300\320\343\377\377" "\377\377\377\373\374\375\377\214\261\330\271\202\377\377\377\0\1\231" "\272\334\327\202\377\377\377\377\1\210\245\312\377\205O{\261\377\2Sy" "\251\377R]f\377\212.46\377\5""7<>\377KOO\377OSS\377QVU\377JNN\377\207" ".46\377\4x{|\377\356\356\356\377\365\366\367\377b\211\271\377\205O{\261" "\377\1\210\245\312\377\202\377\377\377\377\4\231\272\334\327\377\377" "\377\0r\237\317\2\241\277\337\341\202\377\377\377\377\1d\212\271\377" "\206My\257\377\2Lx\256\377Ugz\377\215.46\377\2""5;=\3776;=\377\206.4" "6\377\4\245\250\251\377\356\356\356\377\357\357\357\377\247\275\327\377" "\205My\257\377\1d\212\271\377\202\377\377\377\377\4\241\277\337\341r" "\237\317\2r\237\317\30\261\312\344\347\202\377\377\377\377\1R{\260\377" "\210Lw\255\377\2Zr\217\3775;>\377\223.46\377\1\232\235\236\377\202\356" "\356\356\377\2\350\352\357\377Pz\257\377\204Lw\255\377\1R{\260\377\202" "\377\377\377\377\6\261\312\344\347r\237\317\30r\237\3172\304\327\353" "\362\377\377\377\377\363\366\371\377\212Ju\253\377\2Wv\234\377=DF\377" "\222.46\377\1}\201\202\377\202\356\356\356\377\2\360\360\360\377\210" "\244\310\377\205Ju\253\377\10\363\366\371\377\377\377\377\377\304\327" "\353\362r\237\3172w\242\321N\325\342\361\376\377\377\377\377\340\347" "\361\377\213Hs\252\377\2Qq\232\3778>@\377\221.46\377\1`de\377\203\356" "\356\356\377\1\301\317\340\377\205Hs\252\377\3\340\347\361\377\377\377" "\377\377\325\342\361\376\202w\242\321N\3\325\342\361\376\377\377\377" "\377\340\347\360\377\214Fq\250\377\2Tr\225\3774:<\377\220.46\377\1AG" "H\377\203\356\356\356\377\2\355\357\360\377Ox\254\377\204Fq\250\377\10" "\340\347\360\377\377\377\377\377\325\342\361\376w\242\321Nr\237\3172" "\304\327\353\362\377\377\377\377\363\365\371\377\215Do\246\377\2Wq\220" "\377179\377\206.46\377\12""6<>\377SWY\377ost\377\212\215\216\377\207" "\213\214\377}\200\202\377rvx\377hkm\377\\ac\377ptv\377\204\356\356\356" "\377\1\206\242\305\377\204Do\246\377\6\363\365\371\377\377\377\377\377" "\304\327\353\362r\237\3172r\237\317\30\261\312\344\347\202\377\377\377" "\377\1Hr\250\377\215Bm\245\377\2Yp\213\377/57\377\202.46\377\4i\241\377\2Jr\246" "\377\310\322\336\377\223\356\356\356\377\2\351\352\354\377\77j\241\377" "\202>i\241\377\1|\231\277\377\202\377\377\377\377\1\231\272\334\327\202" "\377\377\377\0\4\214\261\330\271\373\374\375\377\377\377\377\377\270" "\310\334\377\214g\236\377\263\304\331\377\365\365\365" "\377\233\356\356\356\377\6\362\363\363\377\246\271\322\377\310\324\343" "\377\377\377\377\377\376\376\377\377\216\262\331\303\204\377\377\377" "\0\2\201\251\324Q\307\331\354\361\202\377\377\377\377\1i\210\263\377" "\2024_\231\377\4Ck\241\377\334\343\355\377\377\377\377\377\373\373\373" "\377\233\356\356\356\377\1\367\367\367\377\203\377\377\377\377\2\307" "\331\354\361\201\251\324Q\205\377\377\377\0\7\216\262\331\307\372\374" "\375\377\377\377\377\377\327\337\353\3773^\227\377;d\233\377\324\335" "\351\377\203\377\377\377\377\1\366\366\366\377\232\356\356\356\377\5" "\372\372\372\377\365\367\372\377\377\377\377\377\372\374\375\377\216" "\262\331\307\206\377\377\377\0\2z\245\3227\270\316\347\353\202\377\377" "\377\377\2\212\242\302\377\307\323\342\377\205\377\377\377\377\2\374" "\374\374\377\363\363\363\377\227\356\356\356\377\2\364\364\364\377\371" "\372\374\377\202\377\377\377\377\2\270\316\347\353z\245\3227\207\377" "\377\377\0\5\213\260\327\273\363\367\373\377\377\377\377\377\375\375" "\375\377\371\373\374\377\207\377\377\377\377\5\374\374\374\377\367\367" "\367\377\364\364\364\377\361\361\361\377\357\357\357\377\217\356\356" "\356\377\10\357\357\357\377\362\362\362\377\367\367\367\377\377\377\377" "\377\375\375\376\377\377\377\377\377\363\367\373\377\213\260\327\273" "\210\377\377\377\0\6r\237\317\30\226\270\333\334\374\375\376\377\377" "\377\377\377\364\366\371\377\373\374\375\377\213\377\377\377\377\2\375" "\375\375\377\374\374\374\377\202\373\373\373\377\202\372\372\372\377" "\204\371\371\371\377\203\372\372\372\377\2\373\373\373\377\375\375\375" "\377\203\377\377\377\377\5\372\373\374\377\377\377\377\377\374\375\376" "\377\226\270\333\334r\237\317\30\211\377\377\377\0\2~\247\3237\250\304" "\341\345\202\377\377\377\377\2\352\356\364\377\375\375\376\377\233\377" "\377\377\377\1\363\365\371\377\202\377\377\377\377\2\250\304\341\345" "~\247\3237\213\377\377\377\0\2\210\256\326d\301\325\352\356\202\377\377" "\377\377\2\365\367\372\377\372\373\374\377\230\377\377\377\377\2\375" "\375\376\377\366\370\372\377\202\377\377\377\377\2\301\325\352\356\210" "\256\326d\215\377\377\377\0\2\214\260\330\212\301\325\352\356\202\377" "\377\377\377\2\374\374\375\377\345\352\361\377\226\377\377\377\377\2" "\367\370\373\377\375\375\376\377\202\377\377\377\377\2\301\325\352\356" "\214\260\330\212\217\377\377\377\0\3\210\256\326d\250\304\341\345\374" "\375\376\377\202\377\377\377\377\2\351\355\363\377\373\374\375\377\222" "\377\377\377\377\2\376\376\377\377\362\364\370\377\202\377\377\377\377" "\3\374\375\376\377\250\304\341\345\210\256\326d\221\377\377\377\0\3~" "\247\3237\226\270\333\334\363\367\373\377\203\377\377\377\377\2\346\353" "\362\377\366\370\372\377\216\377\377\377\377\2\372\373\374\377\346\353" "\362\377\203\377\377\377\377\3\363\367\373\377\226\270\333\334~\247\323" "7\223\377\377\377\0\4r\237\317\30\213\260\327\273\270\316\347\353\372" "\374\375\377\203\377\377\377\377\2\366\367\372\377\354\357\365\377\211" "\377\377\377\377\3\375\375\376\377\363\365\371\377\370\371\373\377\203" "\377\377\377\377\4\372\374\375\377\270\316\347\353\213\260\327\273r\237" "\317\30\226\377\377\377\0\4z\245\3227\216\262\331\307\307\331\354\361" "\376\376\377\377\206\377\377\377\377\4\367\371\373\377\360\362\367\377" "\357\362\367\377\367\370\373\377\206\377\377\377\377\4\376\376\377\377" "\307\331\354\361\216\262\331\307z\245\3227\232\377\377\377\0\5\201\251" "\324Q\216\262\331\303\242\300\337\340\324\342\360\372\373\374\375\377" "\212\377\377\377\377\5\373\374\375\377\324\342\360\372\242\300\337\340" "\216\262\331\303\201\251\324Q\236\377\377\377\0\7r\237\317\13\177\250" "\323Z\214\261\330\271\231\272\334\327\241\277\337\341\261\312\344\347" "\304\327\353\362\202\325\342\361\376\7\304\327\353\362\261\312\344\347" "\241\277\337\341\231\272\334\327\214\261\330\271\177\250\323Zr\237\317" "\13\244\377\377\377\0\3r\237\317\2r\237\317\30r\237\3172\202w\242\321" "N\3r\237\3172r\237\317\30r\237\317\2\224\377\377\377\0"}; tuxcmd-0.6.70+dfsg/pixmaps/tools/gdk-pixbuf-pas.c0000644000175000017500000000651411300022643020650 0ustar salvisalvi#include #include #include #include #include #include #include "emblem_symbolic_link_png.c" #include "gnome_dev_cdrom_16_png.c" #include "gnome_dev_floppy_16_png.c" #include "gnome_dev_harddisk_16_png.c" #include "gnome_dev_removable_usb_16_png.c" #include "gnome_mime_application_zip_16_png.c" #include "gnome_mime_x_directory_smb_share_16_png.c" #include "stock_folder_16_png.c" #include "stock_lock_16_png.c" #include "stock_lock_48_png.c" #include "stock_new_16_png.c" #include "stock_up_one_dir_16_png.c" #include "tuxcmd_16_png.c" #include "tuxcmd_24_png.c" #include "tuxcmd_32_png.c" #include "tuxcmd_48_png.c" #include "tuxcmd_64_png.c" #include "tuxcmd_128_png.c" #define HEADER_BYTES 24 #define LINE_ELEMENTS 16 #define NEW_LINE "\n " void dump_pas_struct (const guint8 *data, const guint32 len, const char *name) { guint32 i; guint32 counter = 1; g_print ("const %s: array[1..%d] of byte = (%s", name, len, NEW_LINE); for (i = 0; i < len; i++) { if ((i == 4) || (i == 8) || (i == 12) || (i == 16) || (i == 20) || (i == 24)) { g_print (NEW_LINE); } g_print ("$%.2X", *(guint8*) (data + i)); if (i < len - 1) g_print (", "); if (i >= HEADER_BYTES) { if ((counter % LINE_ELEMENTS) == 0) g_print (NEW_LINE); counter++; } } g_print (");\n\n"); } int main (int argc, char* argv[]) { dump_pas_struct (&emblem_symbolic_link_png[0], G_N_ELEMENTS (emblem_symbolic_link_png), "emblem_symbolic_link_png"); dump_pas_struct (&gnome_dev_cdrom_16_png[0], G_N_ELEMENTS (gnome_dev_cdrom_16_png), "gnome_dev_cdrom_16_png"); dump_pas_struct (&gnome_dev_floppy_16_png[0], G_N_ELEMENTS (gnome_dev_floppy_16_png), "gnome_dev_floppy_16_png"); dump_pas_struct (&gnome_dev_harddisk_16_png[0], G_N_ELEMENTS (gnome_dev_harddisk_16_png), "gnome_dev_harddisk_16_png"); dump_pas_struct (&gnome_dev_removable_usb_16_png[0], G_N_ELEMENTS (gnome_dev_removable_usb_16_png), "gnome_dev_removable_usb_16_png"); dump_pas_struct (&gnome_mime_application_zip_16_png[0], G_N_ELEMENTS (gnome_mime_application_zip_16_png), "gnome_mime_application_zip_16_png"); dump_pas_struct (&gnome_mime_x_directory_smb_share_16_png[0], G_N_ELEMENTS (gnome_mime_x_directory_smb_share_16_png), "gnome_mime_x_directory_smb_share_16_png"); dump_pas_struct (&stock_folder_16_png[0], G_N_ELEMENTS (stock_folder_16_png), "stock_folder_16_png"); dump_pas_struct (&stock_lock_16_png[0], G_N_ELEMENTS (stock_lock_16_png), "stock_lock_16_png"); dump_pas_struct (&stock_lock_48_png[0], G_N_ELEMENTS (stock_lock_48_png), "stock_lock_48_png"); dump_pas_struct (&stock_new_16_png[0], G_N_ELEMENTS (stock_new_16_png), "stock_new_16_png"); dump_pas_struct (&stock_up_one_dir_16_png[0], G_N_ELEMENTS (stock_up_one_dir_16_png), "stock_up_one_dir_16_png"); dump_pas_struct (&tuxcmd_16_png[0], G_N_ELEMENTS (tuxcmd_16_png), "tuxcmd_16_png"); dump_pas_struct (&tuxcmd_24_png[0], G_N_ELEMENTS (tuxcmd_24_png), "tuxcmd_24_png"); dump_pas_struct (&tuxcmd_32_png[0], G_N_ELEMENTS (tuxcmd_32_png), "tuxcmd_32_png"); dump_pas_struct (&tuxcmd_48_png[0], G_N_ELEMENTS (tuxcmd_48_png), "tuxcmd_48_png"); dump_pas_struct (&tuxcmd_64_png[0], G_N_ELEMENTS (tuxcmd_64_png), "tuxcmd_64_png"); dump_pas_struct (&tuxcmd_128_png[0], G_N_ELEMENTS (tuxcmd_128_png), "tuxcmd_128_png"); return 0; } tuxcmd-0.6.70+dfsg/pixmaps/tools/stock_lock_48_png.c0000644000175000017500000006252211300022643021342 0ustar salvisalvi/* GdkPixbuf RGBA C-Source image dump */ #ifdef __SUNPRO_C #pragma align 4 (stock_lock_48_png) #endif #ifdef __GNUC__ static const guint8 stock_lock_48_png[] __attribute__ ((__aligned__ (4))) = #else static const guint8 stock_lock_48_png[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (9216) */ "\0\0$\30" /* pixdata_type (0x1010002) */ "\1\1\0\2" /* rowstride (192) */ "\0\0\0\300" /* width (48) */ "\0\0\0""0" /* height (48) */ "\0\0\0""0" /* pixel_data: */ "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\1\0\0\0\2\0\0\0\3" "\0\0\0\4\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\4\0\0\0\3\0\0\0\2\0\0\0\1\0\0" "\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\1\0\0\0\2\0\0\0\4\0\0\0\7\0\0\0\13\0\0\0\16\0\0\0\21\0\0\0\23\0\0" "\0\23\0\0\0\23\0\0\0\21\0\0\0\16\0\0\0\13\0\0\0\7\0\0\0\4\0\0\0\2\0\0" "\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\4\0\0\0\10\0\0" "\0\16\0\0\0g\0\0\0\253\0\0\0\332\0\0\0\366\1\1\1\377\0\0\0\366\0\0\0" "\334\0\0\0\260\0\0\0r\0\0\0\36\0\0\0\26\0\0\0\16\0\0\0\10\0\0\0\4\0\0" "\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\2\0\0\0\6\0\0\0\14\0\0\0\203\0\0\0\354" "\1\1\1\377\233\233\233\377\320\320\320\377\343\343\343\377\351\351\351" "\377\335\335\335\377\306\306\306\377\221\221\221\377\1\1\1\377\0\0\0" "\356\0\0\0\221\0\0\0#\0\0\0\27\0\0\0\15\0\0\0\6\0\0\0\2\0\0\0\1\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\2\0" "\0\0\7\0\0\0\77\0\0\0\320\1\1\1\377\276\276\276\377\352\352\352\377\361" "\361\361\377\363\363\363\377\361\361\361\377\355\355\355\377\352\352" "\352\377\346\346\346\377\342\342\342\377\330\330\330\377\234\234\234" "\377\1\1\1\377\0\0\0\330\0\0\0W\0\0\0\36\0\0\0\21\0\0\0\7\0\0\0\2\0\0" "\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\7" "\0\0\0R\0\0\0\366```\377\343\343\343\377\363\363\363\377\360\360\360" "\377\354\354\354\377\346\346\346\377\344\344\344\377\343\343\343\377" "\342\342\342\377\342\342\342\377\342\342\342\377\341\341\341\377\326" "\326\326\377\267\267\267\377EEE\377\0\0\0\367\0\0\0n\0\0\0\"\0\0\0\22" "\0\0\0\7\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0" "\0\6\0\0\0>\0\0\0\366\205\205\205\377\354\354\354\377\363\363\363\377" "\352\352\352\377\343\343\343\377\331\331\331\377\316\316\316\377\302" "\302\302\377\302\302\302\377\314\314\314\377\325\325\325\377\334\334" "\334\377\340\340\340\377\335\335\335\377\310\310\310\377\271\271\271" "\377bbb\377\0\0\0\370\0\0\0Y\0\0\0\"\0\0\0\17\0\0\0\5\0\0\0\1\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\4\0\0\0\15\0\0\0\320^^^\377\354\354\354" "\377\363\363\363\377\350\350\350\377\334\334\334\377\274\274\274\370" "XXX\360\24\24\24\341\0\0\0\333\0\0\0\326\0\0\0\324{{{\352\276\276\276" "\366\340\340\340\377\337\337\337\377\334\334\334\377\303\303\303\377" "\273\273\273\377LLL\377\0\0\0\274\0\0\0""5\0\0\0\34\0\0\0\13\0\0\0\3" "\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\10\0\0\0\203\1\1\1\377\342\342" "\342\377\363\363\363\377\351\351\351\377\330\330\330\377\227\227\227" "\354\0\0\0\352\0\0\0\275\0\0\0h\0\0\0Z\0\0\0S\0\0\0R\0\0\0Z\0\0\0\306" "\234\234\234\351\335\335\335\371\340\340\340\377\330\330\330\377\273" "\273\273\377\266\266\266\377\1\1\1\377\0\0\0y\0\0\0+\0\0\0\23\0\0\0\7" "\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\3\0\0\0\15\0\0\0\354\271\271\271\377\363" "\363\363\377\353\353\353\377\330\330\330\377\212\212\212\356\0\0\0\343" "\0\0\0~\0\0\0X\0\0\0F\0\0\0""9\0\0\0""1\0\0\0.\0\0\0""2\0\0\0<\0\0\0" "\224\221\221\221\340\333\333\333\367\337\337\337\377\316\316\316\377" "\263\263\263\377\223\223\223\377\0\0\0\313\0\0\0;\0\0\0\36\0\0\0\13\0" "\0\0\3\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\1\0\0\0\6\0\0\0E\1\1\1\377\352\352\352\377\361\361" "\361\377\335\335\335\377\300\300\300\377\2\2\2\350\0\0\0\214\0\0\0U\0" "\0\0=\0\0\0)\0\0\0\34\0\0\0\25\0\0\0\23\0\0\0\26\0\0\0\37\0\0\0.\0\0" "\0\240\242\242\242\337\345\345\345\377\335\335\335\377\300\300\300\377" "\266\266\266\377\1\1\1\377\0\0\0a\0\0\0)\0\0\0\22\0\0\0\5\0\0\0\1\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\2\0\0\0\11\0\0\0p\240\240\240\377\361\361\361\377\350\350\350\377" "\306\306\306\377\200\200\200\355\0\0\0\322\0\0\0[\0\0\0>\0\0\0&\0\0\0" "\24\0\0\0\13\0\0\0\7\0\0\0\6\0\0\0\7\0\0\0\15\0\0\0\30\0\0\0""0\2\2\2" "\313\334\334\334\357\352\352\352\377\321\321\321\377\256\256\256\377" "vvv\377\0\0\0\221\0\0\0""5\0\0\0\30\0\0\0\10\0\0\0\2\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3\0\0\0\14" "\0\0\0\223\320\320\320\377\362\362\362\377\331\331\331\377\300\300\300" "\377///\345\0\0\0\213\0\0\0K\0\0\0,\0\0\0\26\0\0\0\11\0\0\0\3\0\0\0\1" "\0\0\0\1\0\0\0\2\0\0\0\4\0\0\0\13\0\0\0\31\0\0\0n\202\202\202\341\356" "\356\356\377\334\334\334\377\265\265\265\377\237\237\237\377\0\0\0\274" "\0\0\0>\0\0\0\37\0\0\0\13\0\0\0\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\4\0\0\0\16\0\0\0\325\341\341\341" "\377\361\361\361\377\314\314\314\377\300\300\300\377\17\17\17\331\0\0" "\0e\0\0\0=\0\0\0!\0\0\0\16\0\0\0\5\0\0\0\2\0\0\0\1\0\0\0\1\0\0\0\1\0" "\0\0\2\0\0\0\6\0\0\0\17\0\0\0#\37\37\37\324\354\354\354\377\342\342\342" "\377\300\300\300\377\250\250\250\377\0\0\0\326\0\0\0G\0\0\0&\0\0\0\16" "\0\0\0\4\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\2\0\0\0\7\0\0\0\24\0\0\0\336\346\346\346\377\357\357\357\377\313" "\313\313\377\267\267\267\377\0\0\0\322\0\0\0X\0\0\0""7\0\0\0\34\0\0\0" "\15\0\0\0\10\0\0\0\6\0\0\0\6\0\0\0\6\0\0\0\6\0\0\0\6\0\0\0\10\0\0\0\16" "\0\0\0\35\0\0\0\301\351\351\351\377\345\345\345\377\305\305\305\377\256" "\256\256\377\0\0\0\360\0\0\0P\0\0\0.\0\0\0\25\0\0\0\10\0\0\0\3\0\0\0" "\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\2\0\0\0\6\0\0\0\17\0\0\0" "\37\0\0\0\354\332\332\332\377\353\353\353\377\312\312\312\377\253\253" "\253\377\0\0\0\322\0\0\0Z\0\0\0<\0\0\0&\0\0\0\32\0\0\0\26\0\0\0\25\0" "\0\0\25\0\0\0\25\0\0\0\25\0\0\0\25\0\0\0\26\0\0\0\32\0\0\0&\0\0\0\301" "\344\344\344\377\343\343\343\377\312\312\312\377\255\254\252\377\0\0" "\0\371\0\0\0Z\0\0\0;\0\0\0\"\0\0\0\23\0\0\0\13\0\0\0\5\0\0\0\2\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\1\0\0\0\6""1\26\7f7\31\10\3777\31\10\3777\31\10" "\377\234R\27\377\270n%\377\271k&\377\247Z\34\3777\31\10\3777\31\10\377" "7\31\10\3777\31\10\3777\31\10\3777\31\10\3777\31\10\3777\31\10\3777\31" "\10\3777\31\10\3777\31\10\3777\31\10\3777\31\10\3777\31\10\3777\31\10" "\377\245^\37\377\274s*\377\270o'\377\227U\32\3777\31\10\3777\31\10\377" "7\31\10\3777\31\10\377%\20\5_\0\0\0\33\0\0\0\16\0\0\0\5\0\0\0\1\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\3\0\0\0\13""7\31\10\377\311\234b\377\364\341\313\377\364" "\340\311\377\357\333\276\377\354\325\267\377\353\322\264\377\352\322" "\263\377\353\317\260\377\351\316\256\377\350\314\253\377\347\314\250" "\377\350\307\241\377\346\306\241\377\346\306\241\377\346\306\241\377" "\346\306\241\377\346\306\241\377\350\307\241\377\350\307\241\377\346" "\306\241\377\345\305\240\377\345\305\240\377\343\302\232\377\340\300" "\233\377\340\275\223\377\337\272\222\377\337\272\216\377\335\263\206" "\377\325\254|\377\242a\33\3777\31\10\377\0\0\0""1\0\0\0\33\0\0\0\13\0" "\0\0\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\1\0\0\0\4\0\0\0\20""7\31\10\377\365\346\320\377\352" "\323\257\377\352\317\257\377\343\302\232\377\332\270\213\377\332\266" "\207\377\330\260\201\377\326\256\177\377\323\253|\377\321\251t\377\317" "\245n\377\314\243m\377\312\237g\377\312\237g\377\312\237g\377\312\237" "g\377\312\237g\377\312\237g\377\312\237g\377\310\236g\377\306\233c\377" "\302\230a\377\302\223[\377\277\220R\377\274\210K\377\275\204@\377\272" "~=\377\263v4\377\247j\"\377\215S\24\3777\31\10\377\0\0\0E\0\0\0'\0\0" "\0\17\0\0\0\4\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\5\0\0\0\23""7\31\10\377\365\344\316\377" "\351\316\256\377\347\315\250\377\337\275\220\377\330\261\203\377\325" "\255~\377\322\252{\377\322\246w\377\320\247q\377\315\243l\377\310\237" "h\377\305\233d\377\304\231a\377\304\231a\377\304\231a\377\305\232b\377" "\305\232b\377\305\232b\377\305\232b\377\304\231a\377\302\230]\377\301" "\224Z\377\277\220T\377\276\216O\377\274\207I\377\272\202\77\377\272~" "=\377\261t2\377\247j\"\377\213R\24\3777\31\10\377\0\0\0R\0\0\0.\0\0\0" "\23\0\0\0\5\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\1\0\0\0\6\0\0\0\24""7\31\10\377\365\346\320\377" "\353\317\260\377\351\316\256\377\340\277\227\377\333\264\206\377\330" "\260\201\377\327\257\200\377\322\254{\377\322\246w\377\320\246o\377\314" "\243m\377\312\237g\377\307\234d\377\307\234d\377\307\234d\377\307\234" "d\377\307\234d\377\307\234d\377\307\234d\377\305\232b\377\302\227_\377" "\302\223[\377\277\220T\377\276\216O\377\274\204A\377\272\202\77\377\265" "|8\377\257s,\377\243f\36\377\207P\24\3777\31\10\377\0\0\0W\0\0\0""2\0" "\0\0\25\0\0\0\6\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\6\0\0\0\25""7\31\10\377\365\344\316" "\377\352\317\257\377\350\315\251\377\337\274\222\377\325\255~\377\322" "\253}\377\322\252{\377\320\253u\377\320\246o\377\315\243l\377\310\237" "h\377\307\234d\377\305\233d\377\305\232b\377\305\233d\377\307\234d\377" "\310\236g\377\310\237h\377\312\237g\377\307\235f\377\305\233d\377\304" "\231a\377\302\230]\377\277\221V\377\276\216O\377\276\206E\377\274\203" "\77\377\266|7\377\252l#\377\215U\24\3777\31\10\377\0\0\0X\0\0\0""3\0" "\0\0\25\0\0\0\6\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\6\0\0\0\25""7\31\10\377\365\344\316" "\377\351\316\256\377\350\316\251\377\341\274\224\377\332\264\207\377" "\330\262\201\377\327\257\200\377\322\252{\377\320\250s\377\317\245n\377" "\312\241k\377\312\237g\377\307\234d\377\310\236g\377\310\236g\377\310" "\237h\377\310\237h\377\310\237h\377\312\237g\377\305\233d\377\305\232" "b\377\302\227_\377\301\224Z\377\276\217Q\377\274\207I\377\272\201=\377" "\267~:\377\263y4\377\246i!\377\213R\24\3777\31\10\377\0\0\0Y\0\0\0""3" "\0\0\0\26\0\0\0\6\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\6\0\0\0\25""7\31\10\377\364\341\313" "\377\350\315\251\377\345\311\244\377\335\272\220\377\325\255~\377\322" "\252{\377\322\252{\377\322\245u\377\321\247p\377\314\243m\377\312\237" "g\377\310\236g\377\305\232b\377\305\233d\377\307\234d\377\310\236g\377" "\310\237h\377\312\237g\377\312\237g\377\310\236g\377\306\233c\377\304" "\231a\377\302\227_\377\277\221V\377\275\214L\377\274\210E\377\273\202" ">\377\266|7\377\251k\"\377\215S\24\3777\31\10\377\0\0\0Y\0\0\0""3\0\0" "\0\26\0\0\0\6\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\6\0\0\0\25""7\31\10\377\365\344\316\377" "\351\315\254\377\347\313\246\377\337\274\222\377\330\260\201\377\320" "\244s\377\312\237p\377\311\234k\377\306\224`\377\277\216V\377\270\207" "O\377\264\203K\377\256|E\377\255zC\377\257{C\377\260|D\377\262\177H\377" "\263\202J\377\266\206N\377\267\207P\377\266\207O\377\267\210P\377\267" "\207N\377\266\205H\377\266\203D\377\274\205C\377\272~=\377\263x2\377" "\247j\"\377\213R\24\3777\31\10\377\0\0\0Y\0\0\0""3\0\0\0\26\0\0\0\6\0" "\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\1\0\0\0\6\0\0\0\25""7\31\10\377\364\341\313\377\350\314\247" "\377\345\312\244\377\334\271\217\377\326\256\177\377\327\262\204\377" "\327\262\205\377\330\257\200\377\330\262|\377\326\262}\377\327\264}\377" "\330\265|\377\332\267~\377\333\271\200\377\333\271\200\377\333\270\200" "\377\331\266~\377\327\264{\377\325\260x\377\320\252s\377\314\241d\377" "\310\234^\377\304\226V\377\302\217O\377\277\210C\377\265}:\377\265x6" "\377\255r,\377\244f\35\377\207P\24\3777\31\10\377\0\0\0Y\0\0\0""3\0\0" "\0\26\0\0\0\6\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\6\0\0\0\25""7\31\10\377\365\344\316\377" "\351\315\254\377\347\313\246\377\335\272\220\377\325\255~\377\316\245" "r\377\314\240j\377\311\234d\377\301\225^\377\274\217W\377\266\205N\377" "\256~D\377\251u=\377\252r<\377\251r;\377\252s<\377\252y\77\377\255|C" "\377\261\202G\377\265\201J\377\267\205J\377\267\206I\377\270\206H\377" "\267\201E\377\270~;\377\267\177<\377\266|7\377\260u/\377\244h!\377\211" "Q\24\3777\31\10\377\0\0\0Y\0\0\0""3\0\0\0\26\0\0\0\6\0\0\0\1\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0" "\0\6\0\0\0\25""7\31\10\377\365\346\320\377\352\317\257\377\351\316\252" "\377\341\274\224\377\333\264\206\377\334\267\212\377\335\270\213\377" "\332\265\207\377\330\264\204\377\330\265\201\377\333\266\201\377\333" "\271\205\377\335\272\203\377\337\276\206\377\336\276\210\377\335\275" "\207\377\334\273\205\377\331\266\200\377\326\262{\377\321\252r\377\312" "\243g\377\307\234a\377\303\226Y\377\300\220O\377\276\210G\377\267\177" "<\377\266z9\377\261v0\377\244h!\377\213R\24\3777\31\10\377\0\0\0Y\0\0" "\0""3\0\0\0\26\0\0\0\6\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\6\0\0\0\25""7\31\10\377\364" "\341\313\377\351\316\252\377\345\311\244\377\332\270\213\377\322\254" "w\377\317\240p\377\315\242l\377\310\235f\377\303\227a\377\276\221Z\377" "\266\207O\377\260\200F\377\255w@\377\250w=\377\252x>\377\252yB\377\254" "{E\377\262\200I\377\265\205M\377\266\211R\377\271\210P\377\270\210N\377" "\272\212N\377\271\207H\377\271\204B\377\272\202\77\377\267}8\377\263" "x2\377\255o&\377\211Q\24\3777\31\10\377\0\0\0Y\0\0\0""3\0\0\0\26\0\0" "\0\6\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\1\0\0\0\6\0\0\0\25""7\31\10\377\365\344\316\377\351\316" "\252\377\347\313\246\377\334\271\217\377\326\256\177\377\325\257\201" "\377\325\257\200\377\326\253|\377\325\256x\377\322\255w\377\324\257x" "\377\325\261z\377\331\265}\377\332\270\177\377\333\270\200\377\332\267" "\177\377\330\265|\377\325\261x\377\322\254t\377\315\246o\377\311\234" "`\377\304\230\\\377\302\223S\377\277\213L\377\276\206A\377\267~:\377" "\265y8\377\255v.\377\257r*\377\207P\24\3777\31\10\377\0\0\0Y\0\0\0""3" "\0\0\0\26\0\0\0\6\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\6\0\0\0\25""7\31\10\377\365\346\320" "\377\352\317\257\377\351\316\252\377\341\275\226\377\333\264\206\377" "\325\253{\377\322\250x\377\315\245s\377\312\237i\377\304\226^\377\275" "\216W\377\267\207P\377\260~F\377\256{C\377\254yA\377\255zB\377\257|E" "\377\261\200H\377\265\205M\377\266\210M\377\270\206K\377\270\207L\377" "\270\206H\377\270\204C\377\271\177<\377\267~:\377\265y8\377\257s,\377" "\275\202B\377\207P\24\3777\31\10\377\0\0\0Y\0\0\0""3\0\0\0\26\0\0\0\6" "\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\1\0\0\0\6\0\0\0\25""7\31\10\377\364\341\313\377\347\314\250" "\377\346\306\241\377\333\270\216\377\323\253|\377\325\260~\377\324\254" "|\377\325\255w\377\322\253u\377\323\254t\377\322\254t\377\325\260x\377" "\327\263x\377\331\267{\377\331\267{\377\331\267\177\377\331\266}\377" "\326\262z\377\323\256u\377\316\250q\377\313\237f\377\310\233^\377\304" "\226X\377\300\215O\377\276\210G\377\272~=\377\264{7\377\261v0\377\300" "\215Q\377\211N\24\3777\31\10\377\0\0\0Y\0\0\0""3\0\0\0\26\0\0\0\6\0\0" "\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\1\0\0\0\6\0\0\0\25""7\31\10\377\364\340\311\377\347\313\246\377" "\346\306\241\377\334\263\207\377\321\253v\377\321\245r\377\320\246o\377" "\315\243l\377\310\237h\377\304\231a\377\302\227_\377\300\222W\377\277" "\221V\377\277\221V\377\300\222W\377\302\223[\377\301\227\\\377\302\230" "]\377\302\230a\377\302\223[\377\277\221V\377\277\220T\377\275\215N\377" "\274\211G\377\270\200=\377\265|8\377\265x6\377\257t.\377\300\215Q\377" "\206L\23\3777\31\10\377\0\0\0Y\0\0\0""3\0\0\0\26\0\0\0\6\0\0\0\1\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1" "\0\0\0\6\0\0\0\25""7\31\10\377\364\341\313\377\346\312\245\377\346\306" "\241\377\333\264\206\377\321\253v\377\320\247q\377\317\245n\377\312\241" "k\377\310\236g\377\304\231a\377\302\223[\377\277\221V\377\276\220U\377" "\276\217Q\377\275\220V\377\275\220V\377\275\220V\377\275\220V\377\275" "\220V\377\275\216P\377\275\215N\377\274\210K\377\273\204D\377\272\202" "\77\377\267~:\377\264{7\377\261w2\377\255q*\377\312\235c\377\207M\24" "\3777\31\10\377\0\0\0Y\0\0\0""3\0\0\0\26\0\0\0\6\0\0\0\1\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\6" "\0\0\0\25""7\31\10\377\364\341\313\377\350\314\247\377\344\310\243\377" "\332\270\215\377\323\253|\377\322\246w\377\320\253u\377\320\246o\377" "\313\242l\377\310\237h\377\306\233c\377\304\231a\377\302\227_\377\302" "\230]\377\302\230a\377\302\230a\377\304\231a\377\304\231a\377\304\231" "a\377\302\230a\377\301\222V\377\277\221V\377\276\217Q\377\274\210K\377" "\274\204A\377\265}:\377\265|8\377\261v0\377\314\237i\377\211Q\24\377" "7\31\10\377\0\0\0Y\0\0\0""3\0\0\0\26\0\0\0\6\0\0\0\1\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\6\0\0" "\0\25""7\31\10\377\365\344\316\377\350\315\251\377\345\311\244\377\334" "\271\217\377\325\255~\377\322\252{\377\322\253y\377\321\247p\377\317" "\245n\377\312\241k\377\310\237h\377\305\232b\377\305\232b\377\305\232" "b\377\305\232b\377\305\232b\377\305\232b\377\305\232b\377\305\232b\377" "\304\231a\377\302\223[\377\277\221V\377\277\220R\377\274\207I\377\274" "\203\77\377\267~:\377\270\177;\377\274\202=\377\316\241k\377\211N\24" "\3777\31\10\377\0\0\0Y\0\0\0""3\0\0\0\26\0\0\0\6\0\0\0\1\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\6" "\0\0\0\25""7\31\10\377\364\341\313\377\350\313\245\377\345\311\244\377" "\332\270\213\377\322\252{\377\322\245u\377\321\247p\377\315\244n\377" "\312\237g\377\307\234d\377\304\231a\377\301\227\\\377\300\223Y\377\300" "\222W\377\300\222W\377\300\222W\377\300\222W\377\300\222W\377\300\222" "W\377\277\221V\377\277\220R\377\276\216O\377\274\211G\377\273\204D\377" "\271\201>\377\265|8\377\270\177;\377\274\205E\377\315\240j\377\207P\24" "\3777\31\10\377\0\0\0Y\0\0\0""3\0\0\0\26\0\0\0\6\0\0\0\1\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\6" "\0\0\0\25""7\31\10\377\364\340\311\377\346\311\243\377\345\305\240\377" "\331\270\210\377\323\246v\377\320\247q\377\317\245n\377\313\242l\377" "\312\237g\377\306\233c\377\305\232b\377\304\231a\377\302\230]\377\302" "\230a\377\302\230a\377\304\231a\377\304\231a\377\305\232b\377\305\232" "b\377\304\231a\377\301\224Z\377\300\223Y\377\277\220T\377\274\214M\377" "\274\211G\377\276\212M\377\304\231a\377\276\213O\377\307\235`\377\211" "N\24\3777\31\10\377\0\0\0X\0\0\0""3\0\0\0\25\0\0\0\6\0\0\0\1\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0" "\0\6\0\0\0\24""7\31\10\377\364\340\311\377\346\310\241\377\341\303\234" "\377\332\263\205\377\321\245r\377\317\245n\377\315\243l\377\310\237h" "\377\305\233d\377\302\231_\377\302\223[\377\300\222W\377\277\221V\377" "\277\221V\377\300\222W\377\302\223[\377\301\227\\\377\305\232b\377\310" "\236g\377\315\243l\377\315\243l\377\316\241k\377\316\241k\377\322\253" "y\377\322\252w\377\321\245r\377\324\247s\377\277\212L\377\261s0\377\207" "M\24\3777\31\10\377\0\0\0U\0\0\0""0\0\0\0\24\0\0\0\6\0\0\0\1\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0" "\0\5\0\0\0\22""3\27\7\301\262u-\377\307\235`\377\304\232]\377\275\214" "L\377\272~=\377\270~9\377\266z9\377\265x6\377\263u2\377\257w.\377\255" "r,\377\254t+\377\252r)\377\252r)\377\252r)\377\256q)\377\256q)\377\256" "q)\377\256q)\377\252r)\377\251m&\377\252l#\377\245i\"\377\243g\40\377" "\242e\35\377\236a\31\377\233_\30\377\231]\26\377\222V\25\377X0\15\377" "&\21\5\264\0\0\0L\0\0\0*\0\0\0\21\0\0\0\4\0\0\0\1\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\4\0\0\0\16" "+\23\6q1\26\7\3077\31\10\3777\31\10\3777\31\10\3777\31\10\3777\31\10" "\3777\31\10\3777\31\10\3777\31\10\3777\31\10\3777\31\10\3777\31\10\377" "7\31\10\3777\31\10\3777\31\10\3777\31\10\3777\31\10\3777\31\10\3777\31" "\10\3777\31\10\3777\31\10\3777\31\10\3777\31\10\3777\31\10\3777\31\10" "\3777\31\10\3777\31\10\3777\31\10\3777\31\10\377&\21\5\264\14\5\1f\0" "\0\0<\0\0\0\40\0\0\0\14\0\0\0\3\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\11\0\0\0\30" "\0\0\0-\0\0\0A\0\0\0O\0\0\0V\0\0\0X\0\0\0X\0\0\0X\0\0\0Y\0\0\0Y\0\0\0" "Y\0\0\0Y\0\0\0Y\0\0\0Y\0\0\0Y\0\0\0Y\0\0\0Y\0\0\0Y\0\0\0Y\0\0\0Y\0\0" "\0Y\0\0\0Y\0\0\0Y\0\0\0Y\0\0\0Y\0\0\0Y\0\0\0Y\0\0\0X\0\0\0X\0\0\0T\0" "\0\0L\0\0\0<\0\0\0'\0\0\0\24\0\0\0\7\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0" "\0\4\0\0\0\15\0\0\0\30\0\0\0$\0\0\0,\0\0\0""1\0\0\0""3\0\0\0""3\0\0\0" "3\0\0\0""3\0\0\0""3\0\0\0""3\0\0\0""3\0\0\0""3\0\0\0""3\0\0\0""3\0\0" "\0""3\0\0\0""3\0\0\0""3\0\0\0""3\0\0\0""3\0\0\0""3\0\0\0""3\0\0\0""3" "\0\0\0""3\0\0\0""3\0\0\0""3\0\0\0""3\0\0\0""3\0\0\0""2\0\0\0""0\0\0\0" "*\0\0\0\40\0\0\0\24\0\0\0\11\0\0\0\3\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\2\0\0\0\4\0\0\0\11\0\0\0\16\0\0\0\22\0\0\0\24\0\0\0\25\0\0\0\25\0" "\0\0\25\0\0\0\26\0\0\0\26\0\0\0\26\0\0\0\26\0\0\0\26\0\0\0\26\0\0\0\26" "\0\0\0\26\0\0\0\26\0\0\0\26\0\0\0\26\0\0\0\26\0\0\0\26\0\0\0\26\0\0\0" "\26\0\0\0\26\0\0\0\26\0\0\0\26\0\0\0\26\0\0\0\25\0\0\0\25\0\0\0\24\0" "\0\0\21\0\0\0\14\0\0\0\7\0\0\0\3\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\1\0\0\0\2\0\0\0\4\0\0\0\5\0\0\0\6\0\0\0\6\0\0\0\6\0\0" "\0\6\0\0\0\6\0\0\0\6\0\0\0\6\0\0\0\6\0\0\0\6\0\0\0\6\0\0\0\6\0\0\0\6" "\0\0\0\6\0\0\0\6\0\0\0\6\0\0\0\6\0\0\0\6\0\0\0\6\0\0\0\6\0\0\0\6\0\0" "\0\6\0\0\0\6\0\0\0\6\0\0\0\6\0\0\0\6\0\0\0\6\0\0\0\4\0\0\0\3\0\0\0\2" "\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0" "\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1" "\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0" "\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0"}; tuxcmd-0.6.70+dfsg/pixmaps/tools/tuxcmd_64_png.c0000644000175000017500000004403311300022643020506 0ustar salvisalvi/* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (tuxcmd_64_png) #endif #ifdef __GNUC__ static const guint8 tuxcmd_64_png[] __attribute__ ((__aligned__ (4))) = #else static const guint8 tuxcmd_64_png[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (4973) */ "\0\0\23\205" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (256) */ "\0\0\1\0" /* width (64) */ "\0\0\0@" /* height (64) */ "\0\0\0@" /* pixel_data: */ "\237\377\377\377\0\202r\237\317\23\267\377\377\377\0\7r\237\317\33{\245" "\322o\204\253\325\247\204\253\325\304\201\251\324\333\203\253\325\343" "\206\255\326\351\202\222\265\332\351\7\206\255\326\351\203\253\325\343" "\201\251\324\333\204\253\325\304\204\253\325\247{\245\322or\237\317\33" "\255\377\377\377\0\10r\237\317+\177\250\323\207\202\252\324\332\224\266" "\332\351\307\331\354\373\341\353\365\377\360\364\372\377\375\375\376" "\377\206\377\377\377\377\10\375\375\376\377\360\364\372\377\341\353\365" "\377\307\331\354\373\224\266\332\351\202\252\324\332\177\250\323\207" "r\237\317+\247\377\377\377\0\6r\237\317\11~\247\323\202\201\251\324\342" "\236\275\336\352\321\340\357\376\371\373\375\377\220\377\377\377\377" "\6\371\373\375\377\321\340\357\376\236\275\336\352\201\251\324\342~\247" "\323\202r\237\317\11\242\377\377\377\0\5r\237\317\2{\245\322h\201\251" "\324\345\302\326\352\367\374\375\376\377\226\377\377\377\377\5\374\375" "\376\377\302\326\352\367\201\251\324\345{\245\322hr\237\317\2\237\377" "\377\377\0\4w\243\321M\201\251\324\335\265\315\346\363\370\372\375\377" "\206\377\377\377\377\6\362\366\373\377\311\332\354\377\266\314\345\377" "\246\302\337\377\227\267\332\377\210\255\325\377\202y\242\317\377\6\210" "\255\325\377\227\267\332\377\246\302\337\377\266\314\345\377\311\332" "\354\377\362\366\373\377\206\377\377\377\377\4\370\372\375\377\265\315" "\346\363\201\251\324\335w\243\321M\234\377\377\377\0\4r\237\317\17\201" "\251\324\303\250\304\342\357\363\367\373\377\205\377\377\377\377\4\351" "\357\367\377\273\320\346\377\215\260\325\377m\232\311\377\214l\231\311" "\377\4m\232\311\377\215\260\325\377\273\320\346\377\351\357\367\377\205" "\377\377\377\377\4\363\367\373\377\250\304\342\357\201\251\324\303r\237" "\317\17\231\377\377\377\0\3r\237\317$\201\251\324\335\330\345\362\374" "\205\377\377\377\377\2\323\340\357\377\205\252\322\377\224j\227\310\377" "\2\205\252\322\377\323\340\357\377\205\377\377\377\377\3\330\345\362" "\374\201\251\324\335r\237\317$\227\377\377\377\0\3w\242\321E\206\255" "\326\346\353\361\370\377\204\377\377\377\377\2\340\352\364\377\217\260" "\325\377\230i\226\307\377\2\217\260\325\377\340\352\364\377\204\377\377" "\377\377\3\353\361\370\377\206\255\326\346w\242\321E\225\377\377\377" "\0\3}\246\323t\224\266\332\352\367\371\374\377\203\377\377\377\377\3" "\361\365\372\377\234\271\332\377h\224\306\377\232g\224\306\377\3h\224" "\306\377\234\271\332\377\361\365\372\377\203\377\377\377\377\3\367\371" "\374\377\224\266\332\352}\246\323t\223\377\377\377\0\3}\246\323t\245" "\301\340\355\375\376\376\377\203\377\377\377\377\2\340\351\363\377w\237" "\312\377\236f\223\304\377\2w\237\312\377\340\351\363\377\203\377\377" "\377\377\3\375\376\376\377\245\301\340\355}\246\323t\221\377\377\377" "\0\3w\242\321E\224\266\332\352\375\376\376\377\203\377\377\377\377\2" "\312\331\352\377j\225\305\377\240e\221\303\377\2j\225\305\377\312\331" "\352\377\203\377\377\377\377\3\375\376\376\377\224\266\332\352w\242\321" "E\217\377\377\377\0\3r\237\317$\206\255\326\346\367\371\374\377\202\377" "\377\377\377\2\376\377\377\377\255\305\337\377\244c\220\302\377\2\255" "\305\337\377\376\377\377\377\202\377\377\377\377\3\367\371\374\377\206" "\255\326\346r\237\317$\215\377\377\377\0\3r\237\317\17\201\251\324\335" "\353\361\370\377\203\377\377\377\377\1\254\304\336\377\246b\216\301\377" "\1\254\304\336\377\203\377\377\377\377\3\353\361\370\377\201\251\324" "\335r\237\317\17\214\377\377\377\0\2\201\251\324\303\330\345\362\374" "\203\377\377\377\377\1\310\327\351\377\250`\214\277\377\1\310\327\351" "\377\203\377\377\377\377\2\330\345\362\374\201\251\324\303\213\377\377" "\377\0\2w\243\321M\250\304\342\357\203\377\377\377\377\2\337\350\362" "\377e\217\300\377\226_\213\276\377\2_\212\274\377]\207\270\377\220_\213" "\276\377\2e\217\300\377\337\350\362\377\203\377\377\377\377\2\250\304" "\342\357w\243\321M\211\377\377\377\0\3r\237\317\2\201\251\324\335\363" "\367\373\377\202\377\377\377\377\2\360\364\371\377o\226\304\377\220]" "\211\275\377\15\\\207\272\377_}\237\377cw\215\377`p\177\377Zeo\377OX" "]\377@FI\377068\377/57\377DKO\377Wbl\377^q\205\377Yz\240\377\215]\211" "\275\377\2o\226\304\377\360\364\371\377\202\377\377\377\377\3\363\367" "\373\377\201\251\324\335r\237\317\2\210\377\377\377\0\2{\245\322h\265" "\315\346\363\203\377\377\377\377\1\225\262\323\377\217\\\210\273\377" "\3^|\236\377[gr\377:@B\377\214.46\377\3HPV\377Zr\216\377[\205\266\377" "\213\\\210\273\377\1\225\262\323\377\203\377\377\377\377\2\265\315\346" "\363{\245\322h\207\377\377\377\0\3r\237\317\11\201\251\324\345\370\372" "\375\377\202\377\377\377\377\2\335\346\361\377[\206\272\377\215Z\206" "\272\377\2Z\203\263\377[fq\377\221.46\377\3:@C\377Wi|\377W\202\264\377" "\211Z\206\272\377\2[\206\272\377\335\346\361\377\202\377\377\377\377" "\3\370\372\375\377\201\251\324\345r\237\317\11\206\377\377\377\0\2~\247" "\323\202\302\326\352\367\203\377\377\377\377\1\203\244\313\377\204Y\205" "\271\377\13X\203\266\377U~\256\377U{\246\377Yz\241\377]x\231\377`x\221" "\377bu\211\377bq\200\377^ju\377Xbj\377>DF\377\204.46\377\11""068\377" "9@A\377\77\377\77EF\377@FG\377\77DD" "\377;AB\3778>\77\377179\377\243.46\377\1Me\200\377\210T\200\265\377\1" "\345\354\364\377\202\377\377\377\377\2\321\340\357\376\177\250\323\207" "\204\377\377\377\0\2\202\252\324\332\371\373\375\377\202\377\377\377" "\377\22\253\300\327\377Nt\241\377[w\226\377k{\215\377Yaf\377PUT\377Z" "_]\377\\`^\377Y]\\\377V[Y\377TWW\377PUT\377ORR\377KPO\377HNM\377AFG\377" "9\77\77\377168\377\230.46\377\1CLS\377\210S\177\264\377\1\257\304\334" "\377\202\377\377\377\377\2\371\373\375\377\202\252\324\332\203\377\377" "\377\0\2r\237\317\33\224\266\332\351\203\377\377\377\377\1y\233\304\377" "\204R}\262\377\3Jm\224\377MZd\377/57\377\206.46\377\13""068\377:\77A" "\377EKJ\377QTT\377VZY\377Y\\[\377X\\[\377SXW\377OSS\377\77EF\377168\377" "\217.46\377\4""068\377TY[\377PVZ\377Mr\236\377\207R}\262\377\1y\233\304" "\377\203\377\377\377\377\2\224\266\332\351r\237\317\33\202\377\377\377" "\0\2{\245\322o\307\331\354\373\202\377\377\377\377\2\360\364\370\377" "Q}\262\377\206P|\261\377\2Qu\241\377[ep\377\215.46\377\7""5;=\377LPP" "\377adc\377lol\377gkh\377MRQ\3774:;\377\212.46\377\5""068\377\313\314" "\315\377\356\356\356\377\372\372\372\377\177\237\306\377\207P|\261\377" "\2Q}\262\377\360\364\370\377\202\377\377\377\377\2\307\331\354\373{\245" "\322o\202\377\377\377\0\2\204\253\325\247\341\353\365\377\202\377\377" "\377\377\1\276\316\342\377\211Oz\260\377\2Oh\206\37718:\377\217.46\377" "\5""5;=\377LQP\377adc\377^b`\3779>@\377\210.46\377\1JNP\377\202\356\356" "\356\377\2\361\361\361\377\312\327\347\377\210Oz\260\377\1\276\316\342" "\377\202\377\377\377\377\2\341\353\365\377\204\253\325\247\202\377\377" "\377\0\2\204\253\325\304\360\364\372\377\202\377\377\377\377\1\246\274" "\327\377\212My\257\377\2No\225\377;BE\377\222.46\377\1""28:\377\210." "46\377\1Y^_\377\203\356\356\356\377\2\367\367\367\377d\212\271\377\207" "My\257\377\1\246\274\327\377\202\377\377\377\377\2\360\364\372\377\204" "\253\325\304\202\377\377\377\0\2\201\251\324\333\375\375\376\377\202" "\377\377\377\377\1\222\254\315\377\213Lw\255\377\2Lq\241\377IQU\377\232" ".46\377\1AGH\377\203\356\356\356\377\2\357\357\357\377\256\301\332\377" "\207Lw\255\377\1\222\254\315\377\202\377\377\377\377\2\375\375\376\377" "\201\251\324\333\202\377\377\377\0\1\203\253\325\343\203\377\377\377" "\377\1\177\236\304\377\214Jv\254\377\2Jt\247\377Vak\377\231.46\377\2" "-35\377\344\345\345\377\203\356\356\356\377\2\355\360\363\377P{\257\377" "\206Jv\254\377\1\177\236\304\377\203\377\377\377\377\1\203\253\325\343" "\202\377\377\377\0\1\206\255\326\351\203\377\377\377\377\1k\216\272\377" "\215It\253\377\2It\252\377Wcp\377\230.46\377\2-35\377\306\310\310\377" "\203\356\356\356\377\2\362\362\362\377\203\240\306\377\206It\253\377" "\1k\216\272\377\203\377\377\377\377\4\206\255\326\351\377\377\377\0r" "\237\317\23\222\265\332\351\203\377\377\377\377\1V\177\261\377\216Gs" "\252\377\2Gs\251\377S^i\377\230.46\377\1\250\252\252\377\204\356\356" "\356\377\1\275\314\336\377\206Gs\252\377\1V\177\261\377\203\377\377\377" "\377\1\222\265\332\351\202r\237\317\23\1\222\265\332\351\203\377\377" "\377\377\1U}\257\377\217Fq\250\377\2Eo\244\377QYa\377\227.46\377\1\214" "\217\220\377\204\356\356\356\377\2\355\357\362\377Lu\253\377\205Fq\250" "\377\1U}\257\377\203\377\377\377\377\4\222\265\332\351r\237\317\23\377" "\377\377\0\206\255\326\351\203\377\377\377\377\1g\212\267\377\220Ep\247" "\377\2En\243\377MU[\377\226.46\377\1quv\377\204\356\356\356\377\2\360" "\360\360\377\177\234\302\377\205Ep\247\377\1g\212\267\377\203\377\377" "\377\377\1\206\255\326\351\202\377\377\377\0\1\203\253\325\343\203\377" "\377\377\377\1z\230\300\377\221Cn\246\377\2Em\240\377HOT\377\207.46\377" "\17""9\77A\377kno\377\207\212\213\377\243\246\246\377\277\300\301\377" "\332\332\333\377\352\352\352\377\337\340\340\377\324\325\325\377\312" "\313\313\377\277\301\301\377\265\266\267\377\252\254\255\377\241\243" "\244\377\317\320\320\377\205\356\356\356\377\1\270\310\334\377\205Cn" "\246\377\1z\230\300\377\203\377\377\377\377\1\203\253\325\343\202\377" "\377\377\0\2\201\251\324\333\375\375\376\377\202\377\377\377\377\1\214" "\246\310\377\222Bm\244\377\2Hm\235\377DJN\377\203.46\377\4/57\377afg" "\377\252\255\255\377\347\347\347\377\223\356\356\356\377\1\350\352\356" "\377\205Bm\244\377\1\214\246\310\377\202\377\377\377\377\2\375\375\376" "\377\201\251\324\333\202\377\377\377\0\2\204\253\325\304\360\364\372" "\377\202\377\377\377\377\1\237\265\321\377\223@k\243\377\5Jn\232\377" "\77EH\377FKL\377\220\222\223\377\326\327\327\377\226\356\356\356\377" "\2\357\357\357\377Pw\253\377\204@k\243\377\1\237\265\321\377\202\377" "\377\377\377\2\360\364\372\377\204\253\325\304\202\377\377\377\0\2\204" "\253\325\247\341\353\365\377\202\377\377\377\377\1\270\310\335\377\223" "\77j\242\377\3Cm\244\377\275\306\322\377\355\355\355\377\231\356\356" "\356\377\1j\212\264\377\204\77j\242\377\1\270\310\335\377\202\377\377" "\377\377\2\341\353\365\377\204\253\325\247\202\377\377\377\0\2{\245\322" "o\307\331\354\373\202\377\377\377\377\2\356\362\367\377\77i\242\377\221" "=h\241\377\2Dm\243\377\262\300\323\377\233\356\356\356\377\1\203\235" "\276\377\203=h\241\377\2\77i\242\377\356\362\367\377\202\377\377\377" "\377\2\307\331\354\373{\245\322o\202\377\377\377\0\2r\237\317\33\224" "\266\332\351\203\377\377\377\377\1h\212\265\377\220\3\3\3\207\0" "\0\0""8\0\0\0\0\2\2\2\0\23\23\23\0$$$\0%%%\0$$$\0$$$\0"}; tuxcmd-0.6.70+dfsg/pixmaps/tools/stock_up_one_dir_16_png.c0000644000175000017500000000721011300022643022521 0ustar salvisalvi/* GdkPixbuf RGBA C-Source image dump */ #ifdef __SUNPRO_C #pragma align 4 (stock_up_one_dir_16_png) #endif #ifdef __GNUC__ static const guint8 stock_up_one_dir_16_png[] __attribute__ ((__aligned__ (4))) = #else static const guint8 stock_up_one_dir_16_png[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1024) */ "\0\0\4\30" /* pixdata_type (0x1010002) */ "\1\1\0\2" /* rowstride (64) */ "\0\0\0@" /* width (16) */ "\0\0\0\20" /* height (16) */ "\0\0\0\20" /* pixel_data: */ "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0""9\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0""9\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "9\0\0\0\377\344\345\336\377\323\325\312\377\323\325\312\377\245\247\227" "\377\0\0\0\377\0\0\0""9\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\377\363\364\360\377\253\256\231\377\275\300" "\255\377\274\276\252\377\261\264\237\377nq\\\377\0\0\0\377\0\0\0\377" "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0e\0\0\0\0\0\0" "\0\377\346\347\335\377\365\366\363\377\346\347\335\377\346\347\335\377" "\346\347\335\377\344\345\333\377\346\347\335\377\342\344\331\377\342" "\344\331\377\341\343\330\377\341\343\330\377\337\341\326\377\304\306" "\266\377\0\0\0\377\0\0\0\0\0\0\0\377\367\367\366\377\323\326\305\377" "\323\326\304\377\322\324\302\377stj\377\316\321\275\377\314\316\272\377" "\312\315\271\377\312\315\271\377\310\313\266\377\306\311\263\377\304" "\310\261\377\223\226|\377\0\0\0\377\0\0\0\0\0\0\0\377\360\360\353\377" "\323\326\305\377\323\326\304\377tvl\377\0\0\0\377rti\377\314\316\272" "\377\312\315\271\377\312\315\271\377\310\313\266\377\306\311\263\377" "\304\310\261\377\223\226|\377\0\0\0\377\0\0\0\0\0\0\0\377\360\361\354" "\377\322\324\302\377|~s\377\0\0\0\377\0\0\0\377\0\0\0\377oqe\377\306" "\311\263\377\306\311\263\377\304\310\261\377\303\306\257\377\301\304" "\255\377\220\224x\377\0\0\0\377\0\0\0\0\0\0\0\377\357\360\353\377\316" "\321\275\377\314\316\272\377\312\315\271\377\0\0\0\377\306\311\263\377" "\304\310\261\377\303\306\257\377\303\306\257\377\301\304\255\377\277" "\302\253\377\275\301\250\377\216\221u\377\0\0\0\377\0\0\0\0\0\0\0\377" "\355\356\350\377\312\315\271\377\310\313\266\377\306\311\263\377\0\0" "\0\377\303\306\257\377\301\304\255\377\277\302\253\377\277\302\253\377" "\275\301\250\377\273\276\245\377\272\275\243\377\213\217r\377\0\0\0\377" "\0\0\0\0\0\0\0\377\354\356\347\377\306\311\263\377\304\310\261\377\303" "\306\257\377\0\0\0\377\0\0\0\377\0\0\0\377781\377UVK\377cdV\377\213\215" "y\377\267\272\240\377\213\217r\377\0\0\0\377\0\0\0\0\0\0\0\377\350\350" "\340\377\303\306\257\377\301\304\255\377\277\302\253\377\275\301\250" "\377\273\276\245\377\272\275\243\377\267\272\240\377\267\272\240\377" "\267\272\240\377\267\272\240\377\267\272\240\377\213\217r\377\0\0\0\377" "\0\0\0\0\0\0\0\377\306\311\272\377\220\224x\377\216\222v\377\216\221" "u\377\214\220s\377\213\217r\377\213\217r\377\213\217r\377\213\217r\377" "\213\217r\377\213\217r\377\213\217r\377dgQ\377\0\0\0\377\0\0\0\0\0\0" "\0e\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0" "\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0" "\0e\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}; tuxcmd-0.6.70+dfsg/pixmaps/tools/emblem_symbolic_link_png.c0000644000175000017500000000313411300022643023045 0ustar salvisalvi/* GdkPixbuf RGBA C-Source image dump */ #ifdef __SUNPRO_C #pragma align 4 (emblem_symbolic_link_png) #endif #ifdef __GNUC__ static const guint8 emblem_symbolic_link_png[] __attribute__ ((__aligned__ (4))) = #else static const guint8 emblem_symbolic_link_png[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (324) */ "\0\0\1\\" /* pixdata_type (0x1010002) */ "\1\1\0\2" /* rowstride (36) */ "\0\0\0$" /* width (9) */ "\0\0\0\11" /* height (9) */ "\0\0\0\11" /* pixel_data: */ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" "\0\0\0\377\0\0\0\377\0\0\0\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\0\0\0\377\0\0\0\377\377\377\377\377\0""3f\377\0""3f\377\0""3f\377" "\0""3f\377\357\357\357\377\314\314\314\377\0\0\0\377\0\0\0\377\377\377" "\377\377\0""3f\377\0""3f\377\0""3f\377\357\357\357\377\357\357\357\377" "\314\314\314\377\0\0\0\377\0\0\0\377\377\377\377\377\0""3f\377\0""3f" "\377\0""3f\377\0""3f\377\357\357\357\377\314\314\314\377\0\0\0\377\0" "\0\0\377\377\377\377\377\0""3f\377\357\357\357\377\0""3f\377\0""3f\377" "\0,Y\377\314\314\314\377\0\0\0\377\0\0\0\377\377\377\377\377\357\357" "\357\377\357\357\357\377\357\357\357\377\0(P\377\0%J\377\314\314\314" "\377\0\0\0\377\0\0\0\377\377\377\377\377\314\314\314\377\314\314\314" "\377\314\314\314\377\314\314\314\377\314\314\314\377\314\314\314\377" "\30\30\30\377\0\0\0\377\0\0\0\377\11\11\11\377\0\0\0\377\0\0\0\377\0" "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"}; tuxcmd-0.6.70+dfsg/pixmaps/tools/tuxcmd_16_png.c0000644000175000017500000000672711300022643020513 0ustar salvisalvi/* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (tuxcmd_16_png) #endif #ifdef __GNUC__ static const guint8 tuxcmd_16_png[] __attribute__ ((__aligned__ (4))) = #else static const guint8 tuxcmd_16_png[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (827) */ "\0\0\3S" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (64) */ "\0\0\0@" /* width (16) */ "\0\0\0\20" /* height (16) */ "\0\0\0\20" /* pixel_data: */ "\204\377\377\377\0\3\206\254\326\7\260\311\344Y\311\333\355\201\202\327" "\344\361\252\3\312\333\355\202\260\311\344Y\206\254\326\7\207\377\377" "\377\0\4\264\314\345<\337\351\364\313\341\352\364\377\276\321\347\377" "\202\240\275\334\377\4\276\321\347\377\341\352\364\377\337\351\364\313" "\264\314\345<\205\377\377\377\0\3\302\326\352t\352\360\367\364\241\275" "\333\377\206g\223\305\377\3\241\275\333\377\352\360\367\364\302\326\352" "t\203\377\377\377\0\3\264\314\345<\352\360\367\364y\236\312\377\204a" "\215\300\377\1a\215\277\377\203a\215\300\377\32y\236\312\377\352\360" "\367\364\264\314\345<\377\377\377\0\206\254\326\7\337\351\364\313\232" "\265\325\377\\\206\271\377b\206\263\377f\206\254\377iw\205\377IOQ\377" "CII\377LSW\377hw\206\377\\\205\266\377[\207\273\377\232\265\325\377\337" "\351\364\313\206\254\326\7\246\276\327^ovz\377:@A\37728:\3774:;\3771" "79\377\202.46\377\32HNP\377/57\377.46\377T\\b\377W\200\262\377U\201\266" "\377\334\345\360\377\260\311\344Y\311\333\355\201\260\304\334\377Sz\252" "\377j|\221\3774:<\3776<<\377BGH\377AEF\377\377\204.46\377\5," "24\377quv\377\311\322\340\377Ju\253\377\211\245\310\377\202\327\344\361" "\252\1\205\241\305\377\203Do\246\377\15Yu\230\3778>@\377/57\377W\\]\377" "\206\211\212\377\203\206\207\377\240\242\243\377\344\345\347\377Is\250" "\377\205\241\305\377\327\344\361\252\311\333\355\201\251\274\325\377" "\203>i\241\377\5U{\254\377\257\272\305\377\334\334\334\377\344\344\344" "\377\340\340\340\377\202\345\345\345\377\33\347\347\347\377i\212\263" "\377\251\274\325\377\312\333\355\202\260\311\344Y\326\337\352\3778c\234" "\3779d\234\377\224\252\306\377\347\350\352\377\346\346\346\377\343\343" "\343\377\341\341\341\377\342\342\342\377\345\345\345\377\353\353\353" "\377\351\351\351\377\245\267\315\377\326\337\352\377\260\311\344Y\206" "\254\326\7\337\351\364\313\207\240\302\377\277\315\337\377\370\370\370" "\377\354\354\354\377\351\351\351\377\202\353\353\353\377\1\352\352\352" "\377\202\356\356\356\377\23\354\354\354\377\350\354\360\377\341\352\365" "\315\206\254\326\7\377\377\377\0\264\314\345<\352\357\365\365\344\351" "\361\377\377\377\377\377\376\376\376\377\374\374\374\377\371\371\371" "\377\367\367\367\377\365\365\365\377\370\370\370\377\372\372\372\377" "\363\365\367\377\355\361\367\366\264\314\345<\203\377\377\377\0\3\302" "\326\352t\351\356\365\365\334\342\354\377\206\377\377\377\377\3\355\360" "\365\377\354\360\366\366\302\326\352t\205\377\377\377\0\12\264\314\345" "<\337\351\364\314\334\343\354\377\315\327\344\377\333\342\354\377\343" "\350\360\377\335\344\355\377\341\347\357\377\340\351\364\314\264\314" "\345<\207\377\377\377\0\3\206\254\326\7\260\311\344Y\311\333\355\201" "\202\327\344\361\252\3\312\333\355\202\260\311\344Y\206\254\326\7\204" "\377\377\377\0"}; tuxcmd-0.6.70+dfsg/pixmaps/tools/gnome_dev_removable_usb_16_png.c0000644000175000017500000001015511300022643024045 0ustar salvisalvi/* GdkPixbuf RGBA C-Source image dump */ #ifdef __SUNPRO_C #pragma align 4 (gnome_dev_removable_usb_16_png) #endif #ifdef __GNUC__ static const guint8 gnome_dev_removable_usb_16_png[] __attribute__ ((__aligned__ (4))) = #else static const guint8 gnome_dev_removable_usb_16_png[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1024) */ "\0\0\4\30" /* pixdata_type (0x1010002) */ "\1\1\0\2" /* rowstride (64) */ "\0\0\0@" /* width (16) */ "\0\0\0\20" /* height (16) */ "\0\0\0\20" /* pixel_data: */ "\0\0\0\0\0\0\0\0\377\377\377q\377\377\377\377b[\201\377\377\377\377\377" "\377\377\377A\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0FAAA\377\377\377\377\377b[\201\377b[\201\377b[" "\201\377\377\377\377\377\377\377\377\377\377\377\377\377\0\0\0\377\0" "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0Fqqq\377\377\377" "\377\377\377\377\377\377\377\377\377\377b[\201\377\377\377\377\377b[" "\201\377b[\201\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\331\331\331\377\0\0\0\377" "\377\377\377\377\255\251\274\377\247\243\271\377\377\377\377\377b[\201" "\377\377\377\377\377b[\201\377b[\201\377\377\377\377\377\374\373\373" "\377\373\374\373\377\373\373\374\377\373\374\374\377\373\374\373\377" "\325\326\325\377\0\0\0\377\377\377\377\377\275\273\312\377b[\201\377" "\377\377\377\377b[\201\377b[\201\377b[\201\377\377\377\377\377\377\377" "\377\377\367\367\367\377\370\367\367\377\367\367\370\377\370\367\370" "\377\370\370\370\377\323\323\322\377\0\0\0\377\0\0\0\377\377\377\377" "\377\361\360\363\377b[\201\377b[\201\377\377\377\377\377\377\377\377" "\377\366\366\366\377\364\364\364\377\363\363\364\377\364\364\364\377" "\364\363\364\377\364\364\364\377\364\363\364\377\316\316\316\377\0\0" "\0\377\0\0\0\377\372\372\372\377\377\377\377\377|v\225\377b[\201\377" "\214\207\243\377\377\377\377\377\360\360\360\377\360\360\360\377\360" "\360\360\377\360\360\360\377\360\360\360\377\360\360\360\377\360\360" "\360\377\314\314\314\377\0\0\0\377\0\0\0\377\371\371\371\377\377\377" "\377\377b[\201\377b[\201\377b[\201\377\377\377\377\377\360\360\360\377" "\360\360\360\377\360\360\360\377\360\360\360\377\360\360\360\377\360" "\360\360\377\360\360\360\377\314\314\314\377\0\0\0\377\0\0\0\377\367" "\367\367\377\377\377\377\377\233\227\255\377b[\201\377\233\227\255\377" "\377\377\377\377\354\355\355\377\355\354\354\377\354\354\355\377\354" "\354\354\377\354\354\355\377\354\355\354\377\354\354\355\377\310\310" "\310\377\0\0\0\377\0\0\0\377\376\376\376\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\364\364\364\377\364\364\364\377\353\353\353\377" "\353\353\353\377\343\343\343\377\311\311\311\377\0\0\0\377\0\0\0\377" "\316\316\316\377\271\271\271\377\271\271\271\377\271\271\271\377\271" "\271\271\377\271\271\271\377\271\271\271\377\271\271\271\377\271\271" "\271\377\271\271\271\377\271\271\271\377\271\271\271\377\271\271\271" "\377\247\247\250\377\0\0\0\377\0\0\0\377\316\316\316\377\320\320\320" "\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0" "\0\377\352\352\352\377\271\271\271\377\367\367\367\377~~~\377\242\242" "\242\377\0\0\0\377\0\0\0\377\315\315\315\377\271\271\271\377\340\340" "\340\377\340\340\340\377\340\340\340\377\340\340\340\377\340\340\340" "\377\340\340\340\377\340\340\340\377\320\320\320\377\271\271\271\377" "~~~\377\220\220\220\377\237\237\237\377\0\0\0\377\0\0\0\377\275\275\275" "\377\234\234\234\377\235\235\234\377\235\234\235\377\234\235\234\377" "\234\235\234\377\234\235\234\377\234\235\234\377\235\235\235\377\235" "\234\235\377\234\235\235\377\235\234\235\377\235\235\234\377\234\234" "\234\377\0\0\0\377\0\0\0y\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0" "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0" "\0\0\377\0\0\0\377\0\0\0\377\0\0\0b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0"}; tuxcmd-0.6.70+dfsg/pixmaps/tools/Makefile0000644000175000017500000000034611300022643017320 0ustar salvisalviCC = gcc CFLAGS = -Wall -ggdb gdk-pixbuf-pas: gdk-pixbuf-pas.c $(CC) -o gdk-pixbuf-pas gdk-pixbuf-pas.c -I. -I/usr/include $(CFLAGS) `pkg-config glib-2.0 --cflags --libs` clean: rm -f *.o gdk-pixbuf-pas all: gdk-pixbuf-pas tuxcmd-0.6.70+dfsg/pixmaps/tools/tuxcmd_128_png.c0000644000175000017500000010623611300022643020573 0ustar salvisalvi/* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (tuxcmd_128_png) #endif #ifdef __GNUC__ static const guint8 tuxcmd_128_png[] __attribute__ ((__aligned__ (4))) = #else static const guint8 tuxcmd_128_png[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (10096) */ "\0\0'\210" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (512) */ "\0\0\2\0" /* width (128) */ "\0\0\0\200" /* height (128) */ "\0\0\0\200" /* pixel_data: */ "\377\377\377\377\0\377\377\377\377\0\377\377\377\377\0\377\377\377\377" "\0\377\377\377\377\0\277\377\377\377\0\4r\237\317\10r\237\317\24r\237" "\317!r\237\317-\202r\237\317:\4r\237\317-r\237\317!r\237\317\24r\237" "\317\10\357\377\377\377\0\7r\237\317\24r\237\317>r\237\317dr\237\317" "\213r\237\317\262v\241\320\334s\237\317\373\212r\237\317\377\7s\237\317" "\373u\241\320\335r\237\317\262r\237\317\213r\237\317dr\237\317>r\237" "\317\24\344\377\377\377\0\5r\237\317\21r\237\317Pr\237\317\221u\241\320" "\326r\237\317\376\202r\237\317\377\10\177\250\323\372\226\267\333\375" "\255\307\343\377\276\323\351\377\305\327\353\377\314\334\356\377\323" "\341\360\377\333\346\363\377\202\341\353\365\377\10\333\346\363\377\323" "\341\360\377\314\334\356\377\305\327\353\377\276\323\351\377\255\307" "\343\377\226\267\333\375\177\250\323\372\202r\237\317\377\5r\237\317" "\376u\241\320\326r\237\317\221r\237\317Pr\237\317\21\335\377\377\377" "\0\12r\237\317!r\237\317\177u\241\320\322r\237\317\376r\237\317\377\177" "\250\324\372\246\302\341\377\312\333\355\377\343\354\365\377\370\372" "\375\377\222\377\377\377\377\12\370\372\375\377\343\354\365\377\312\333" "\355\377\246\302\341\377\177\250\324\372r\237\317\377r\237\317\376u\241" "\320\322r\237\317\177r\237\317!\327\377\377\377\0\10r\237\317\17r\237" "\317dt\241\320\305r\237\317\376u\241\320\375\237\275\336\377\305\327" "\353\377\352\361\370\377\234\377\377\377\377\10\352\361\370\377\305\327" "\353\377\237\275\336\377u\241\320\375r\237\317\376t\241\320\305r\237" "\317dr\237\317\17\322\377\377\377\0\7r\237\317(s\237\317\241s\240\317" "\371s\237\317\376\225\267\333\374\311\332\355\377\367\372\374\377\242" "\377\377\377\377\7\367\372\374\377\311\332\355\377\225\267\333\374s\237" "\317\376s\240\317\371s\237\317\241r\237\317(\316\377\377\377\0\6r\237" "\3170s\240\317\253r\237\317\376|\246\322\374\274\321\350\377\360\364" "\372\377\250\377\377\377\377\6\360\364\372\377\274\321\350\377|\246\322" "\374r\237\317\376s\240\317\253r\237\3170\312\377\377\377\0\6r\237\317" "3t\240\320\266r\237\317\377\200\250\324\373\302\325\352\377\372\374\375" "\377\254\377\377\377\377\6\372\374\375\377\302\325\352\377\200\250\324" "\373r\237\317\377t\240\320\266r\237\3173\306\377\377\377\0\6r\237\317" "\22r\237\317\230r\237\317\376\204\253\325\374\307\331\354\377\374\375" "\376\377\221\377\377\377\377\6\361\366\372\377\334\347\362\377\315\334" "\355\377\305\327\352\377\275\322\347\377\265\314\344\377\202\255\307" "\342\377\6\265\314\344\377\275\322\347\377\305\327\352\377\315\334\355" "\377\334\347\362\377\361\366\372\377\221\377\377\377\377\6\374\375\376" "\377\307\331\354\377\204\253\325\374r\237\317\376r\237\317\230r\237\317" "\22\302\377\377\377\0\6r\237\317\1r\237\317ct\240\320\356w\242\321\374" "\275\322\351\377\374\375\376\377\216\377\377\377\377\5\360\365\372\377" "\303\326\352\377\242\276\336\377\213\257\326\377v\240\316\377\216m\232" "\313\377\5v\240\316\377\213\257\326\377\242\276\336\377\303\326\352\377" "\360\365\372\377\216\377\377\377\377\6\374\375\376\377\275\322\351\377" "w\242\321\374t\240\320\356r\237\317cr\237\317\1\277\377\377\377\0\5r" "\237\317$t\240\320\310r\237\317\377\240\276\337\376\360\364\372\377\215" "\377\377\377\377\4\346\356\366\377\271\316\346\377\213\257\325\377m\231" "\312\377\226l\231\312\377\4m\231\312\377\213\257\325\377\271\316\346" "\377\346\356\366\377\215\377\377\377\377\5\360\364\372\377\240\276\337" "\376r\237\317\377t\240\320\310r\237\317$\275\377\377\377\0\4r\237\317" "Vt\240\320\364\202\252\325\373\330\345\362\377\213\377\377\377\377\4" "\376\376\377\377\334\346\362\377\256\306\341\377\200\247\321\377\236" "k\230\311\377\4\200\247\321\377\256\306\341\377\334\346\362\377\376\376" "\377\377\213\377\377\377\377\4\330\345\362\377\202\252\325\373t\240\320" "\364r\237\317V\272\377\377\377\0\5r\237\317\10r\237\317\227r\237\317" "\377\237\276\336\376\367\371\374\377\212\377\377\377\377\3\363\367\373" "\377\254\305\341\377w\237\315\377\244k\227\311\377\3w\237\315\377\254" "\305\341\377\363\367\373\377\212\377\377\377\377\5\367\371\374\377\237" "\276\336\376r\237\317\377r\237\317\227r\237\317\10\267\377\377\377\0" "\4r\237\317%u\241\320\323t\241\320\375\302\326\352\377\212\377\377\377" "\377\3\371\373\375\377\270\315\345\377r\235\313\377\250j\227\310\377" "\3r\235\313\377\270\315\345\377\371\373\375\377\212\377\377\377\377\4" "\303\326\352\377t\241\320\375u\241\320\323r\237\317%\265\377\377\377" "\0\4r\237\3179t\240\320\361\203\253\325\373\342\353\365\377\211\377\377" "\377\377\3\375\376\376\377\304\326\351\377x\241\315\377\254i\226\307" "\377\3x\241\315\377\305\326\351\377\375\376\376\377\211\377\377\377\377" "\4\342\353\365\377\203\253\325\373t\240\320\361r\237\3179\263\377\377" "\377\0\4r\237\317Js\240\317\370\220\263\331\374\365\370\374\377\211\377" "\377\377\377\2\321\337\356\377\201\246\317\377\260h\225\306\377\2\201" "\246\317\377\321\337\356\377\211\377\377\377\377\4\365\370\374\377\220" "\263\331\374s\240\317\370r\237\317J\261\377\377\377\0\4r\237\317\\s\237" "\317\374\232\272\334\375\371\373\375\377\210\377\377\377\377\2\337\350" "\363\377\214\256\324\377\264g\224\306\377\2\214\256\324\377\337\350\363" "\377\210\377\377\377\377\4\371\373\375\377\232\272\334\375s\237\317\374" "r\237\317\\\257\377\377\377\0\4r\237\317lr\237\317\376\245\301\340\376" "\374\375\376\377\210\377\377\377\377\2\272\316\345\377h\224\305\377\266" "g\223\305\377\2h\224\305\377\272\316\345\377\210\377\377\377\377\4\374" "\375\376\377\245\301\340\376r\237\317\376r\237\317l\255\377\377\377\0" "\4r\237\317\\r\237\317\376\256\310\343\377\376\377\377\377\207\377\377" "\377\377\2\373\374\375\377\236\273\332\377\272f\223\304\377\2\236\273" "\332\377\373\374\375\377\207\377\377\377\377\4\376\377\377\377\256\310" "\343\377r\237\317\376r\237\317\\\253\377\377\377\0\4r\237\317Js\237\317" "\374\245\301\340\376\376\377\377\377\207\377\377\377\377\2\361\365\371" "\377\207\252\321\377\274e\222\304\377\2\207\252\321\377\361\365\371\377" "\207\377\377\377\377\4\376\377\377\377\245\301\340\376s\237\317\374r" "\237\317J\251\377\377\377\0\4r\237\3179s\240\317\370\232\272\334\375" "\374\375\376\377\207\377\377\377\377\2\337\351\363\377t\235\311\377\276" "d\221\303\377\2t\235\311\377\337\351\363\377\207\377\377\377\377\4\374" "\375\376\377\232\272\334\375s\240\317\370r\237\3179\247\377\377\377\0" "\4r\237\317%t\240\320\361\220\263\331\374\371\373\375\377\207\377\377" "\377\377\2\311\330\352\377i\224\304\377\300d\220\302\377\2i\224\304\377" "\311\330\352\377\207\377\377\377\377\4\371\373\375\377\220\263\331\374" "t\240\320\361r\237\317%\245\377\377\377\0\4r\237\317\10u\241\320\323" "\203\253\325\373\365\370\374\377\206\377\377\377\377\2\376\377\377\377" "\255\304\337\377\304c\217\302\377\2\255\304\337\377\376\377\377\377\206" "\377\377\377\377\4\365\370\374\377\203\253\325\373u\241\320\323r\237" "\317\10\244\377\377\377\0\3r\237\317\227t\241\320\375\342\353\365\377" "\207\377\377\377\377\1\254\304\336\377\306b\216\301\377\1\254\304\336" "\377\207\377\377\377\377\3\342\353\365\377t\241\320\375r\237\317\227" "\243\377\377\377\0\3r\237\317Vr\237\317\377\302\326\352\377\207\377\377" "\377\377\1\310\330\351\377\310a\216\300\377\1\310\330\351\377\207\377" "\377\377\377\3\302\326\352\377r\237\317\377r\237\317V\241\377\377\377" "\0\3r\237\317$t\240\320\364\237\276\336\376\207\377\377\377\377\2\337" "\350\362\377f\221\301\377\310`\215\277\377\2f\221\301\377\337\350\362" "\377\207\377\377\377\377\3\237\276\336\376t\240\320\364r\237\317$\237" "\377\377\377\0\4r\237\317\1t\240\320\310\202\252\325\373\367\371\374" "\377\206\377\377\377\377\2\360\364\371\377q\230\306\377\312`\214\277" "\377\2q\230\306\377\360\364\371\377\206\377\377\377\377\4\367\371\374" "\377\202\252\325\373t\240\320\310r\237\317\1\236\377\377\377\0\3r\237" "\317cr\237\317\377\330\345\362\377\206\377\377\377\377\2\373\374\375" "\377\202\244\314\377\314_\213\276\377\2\202\244\314\377\373\374\375\377" "\206\377\377\377\377\3\330\345\362\377r\237\317\377r\237\317c\235\377" "\377\377\0\3r\237\317\22t\240\320\356\240\276\337\376\207\377\377\377" "\377\1\231\265\325\377\245^\212\275\377\15]\211\274\377W~\252\377Pq\226" "\377Rp\221\377Tn\213\377Ul\205\377Vj\177\377Ugx\377Sfz\377Rk\205\377" "On\217\377Tx\240\377^\211\273\377\234^\212\275\377\1\231\265\325\377" "\207\377\377\377\377\3\240\276\337\376t\240\320\356r\237\317\22\234\377" "\377\377\0\3r\237\317\230w\242\321\374\360\364\372\377\206\377\377\377" "\377\1\266\312\341\377\241]\211\275\377\6[\204\265\377Ss\231\377Xn\206" "\377Ucr\377IQX\3774;=\377\213.46\377\4""5;\77\377KYe\377Nh\204\377W}" "\252\377\232]\211\275\377\1\266\312\341\377\206\377\377\377\377\3\360" "\364\372\377w\242\321\374r\237\317\230\233\377\377\377\0\3r\237\3173" "r\237\317\376\275\322\351\377\206\377\377\377\377\2\334\346\361\377]" "\212\275\377\236\\\211\274\377\4W\201\257\377Wp\213\377O[d\37717:\377" "\223.46\377\4/57\377HT_\377Op\223\377[\210\273\377\227\\\211\274\377" "\2]\212\275\377\334\346\361\377\206\377\377\377\377\3\275\322\351\377" "r\237\317\376r\237\3173\232\377\377\377\0\3t\240\320\266\204\253\325" "\374\374\375\376\377\206\377\377\377\377\1\204\245\314\377\234\\\210" "\273\377\4Y\202\262\377Vm\205\377KU]\377068\377\231.46\377\3=EK\377M" "f\201\377Y\202\263\377\226\\\210\273\377\1\204\245\314\377\206\377\377" "\377\377\3\374\375\376\377\204\253\325\374t\240\320\266\231\377\377\377" "\0\3r\237\3170r\237\317\377\307\331\354\377\206\377\377\377\377\1\315" "\333\352\377\233[\207\273\377\3Z\204\266\377Ym\203\3778\77B\377\236." "46\377\3""39<\377J]o\377Rx\243\377\225[\207\273\377\1\315\333\352\377" "\206\377\377\377\377\3\307\331\354\377r\237\317\377r\237\3170\230\377" "\377\377\0\3s\240\317\253\200\250\324\373\374\375\376\377\205\377\377" "\377\377\2\375\376\376\377u\232\305\377\232Z\206\272\377\2W|\247\377" "EMR\377\243.46\377\2CP[\377Qw\242\377\223Z\206\272\377\2u\232\305\377" "\375\376\376\377\205\377\377\377\377\3\374\375\376\377\200\250\324\373" "s\240\317\253\227\377\377\377\0\3r\237\317(r\237\317\376\302\325\352" "\377\206\377\377\377\377\1\276\317\344\377\227Y\205\271\377\5X\202\265" "\377Rx\244\377Sq\225\377Xm\204\3777>@\377\210.46\377\15""179\377>CE\377" "HNN\377KPQ\377W]\\\377osq\377rvt\377tyv\377w|y\377rwu\377bgf\377RXW\377" "4:<\377\220.46\377\3/58\377F\\q\377W\200\261\377\222Y\205\271\377\1\277" "\320\344\377\206\377\377\377\377\3\302\325\352\377r\237\317\376r\237" "\317(\226\377\377\377\0\3s\237\317\241|\246\322\374\372\374\375\377\205" "\377\377\377\377\2\370\372\374\377i\221\300\377\207X\205\271\377\21W" "\202\265\377T}\255\377Qx\244\377Qu\234\377Tt\227\377Wr\221\377Yq\212" "\377Zo\205\377Zl~\377Zhx\377Wdp\377T`i\377PZa\377KSZ\377ELQ\377=DG\377" "/57\377\221.46\377\4:@A\377]ba\377\200\204\201\377\243\247\242\377\203" "\272\275\266\377\4\265\270\262\377\214\220\215\377]ba\3774:<\377\217" ".46\377\2""8@D\377Kl\217\377\221X\205\271\377\2i\221\300\377\370\372" "\374\377\205\377\377\377\377\3\372\374\375\377|\246\322\374s\237\317" "\241\225\377\377\377\0\3r\237\317\17s\240\317\371\274\321\350\377\202" "\377\377\377\377\15\335\336\336\377\311\312\313\377\274\276\276\377\256" "\260\261\377\202\214\227\377br\203\377_ly\377[fr\377V_g\377OW^\377GO" "R\377>EH\37749<\377\246.46\377\2:@A\377[``\377\204cgg\377\2]ba\3777=" ">\377\220.46\377\2E]u\377W\203\267\377\220X\204\270\377\1\257\304\335" "\377\206\377\377\377\377\3\274\321\350\377s\240\317\371r\237\317\17\224" "\377\377\377\0\5r\237\317ds\237\317\376\337\343\351\377\235\240\241\377" "OTV\377\314.46\377\2@O^\377U~\257\377\217W\203\267\377\2`\212\273\377" "\362\365\371\377\205\377\377\377\377\3\360\364\372\377s\237\317\376r" "\237\317d\224\377\377\377\0\3t\241\320\305\221\263\326\374SXY\377\317" ".46\377\2=KX\377U\200\263\377\217V\202\266\377\1\240\271\326\377\206" "\377\377\377\377\2\225\267\333\374t\241\320\305\223\377\377\377\0\3r" "\237\317!r\237\317\376ju}\377\321.46\377\1@Uj\377\217U\201\266\377\2" "b\213\274\377\376\376\376\377\205\377\377\377\377\3\311\332\355\377r" "\237\317\376r\237\317!\222\377\377\377\0\12r\237\317\177u\241\320\375" "\271\276\300\377bfh\377.46\377/57\3775;=\3776<<\37729:\377068\377\313" ".46\377\1Gg\213\377\217T\200\265\377\1\326\341\355\377\205\377\377\377" "\377\3\367\372\374\377u\241\320\375r\237\317\177\222\377\377\377\0\2" "u\241\320\322\237\275\336\377\202\377\377\377\377\31\367\367\367\377" "\352\352\353\377\336\337\337\377\314\315\316\377\202\223\244\377^s\210" "\377eq{\377elo\377bfe\377fjg\377mpm\377tws\377vyv\377rur\377lpm\377f" "jg\377`dc\377Z^]\377TYX\377NSS\377HNM\377BHI\377\377168\377" "\270.46\377\1;M`\377\217T\200\264\377\1\241\271\326\377\206\377\377\377" "\377\2\237\275\336\377u\241\320\322\221\377\377\377\0\3r\237\317\21r" "\237\317\376\305\327\353\377\206\377\377\377\377\1k\221\277\377\203S" "\177\264\377\32S\177\263\377Nu\242\377Ic\200\377ALT\377289\377\377\250.46\377\1Ed\206\377\217R~\263\377\1\342\351\362\377" "\205\377\377\377\377\3\352\361\370\377r\237\317\377r\237\317P\220\377" "\377\377\0\2r\237\317\221\177\250\324\372\206\377\377\377\377\1\254\301" "\332\377\212Q}\262\377\3P{\257\377Hb\177\3777>B\377\222.46\377\15/57" "\3779>@\377EIJ\377OSS\377Z^]\377dhe\377pro\377tvr\377orn\377afd\377R" "WV\377BHI\37739;\377\236.46\377\5cgi\377\177\203\204\377y|~\377W\\]\377" "CC\377\224.46\377\1V[]\377\204\356\356\356\377\2\373" "\373\373\377\327\341\355\377\217P|\261\377\2Q}\261\377\355\362\367\377" "\205\377\377\377\377\3\312\333\355\377r\237\317\376r\237\317\24\216\377" "\377\377\0\3r\237\317>r\237\317\377\343\354\365\377\205\377\377\377\377" "\1\267\311\337\377\220O{\260\377\3O{\257\377Ga}\37728;\377\236.46\377" "\7""168\377GLL\377adc\377{~z\377}\200{\377_ca\3775:<\377\221.46\377\1" "\207\212\213\377\204\356\356\356\377\3\362\362\362\377\377\377\377\377" "t\226\300\377\217O{\260\377\1\267\311\337\377\205\377\377\377\377\3\343" "\354\365\377r\237\317\377r\237\317>\216\377\377\377\0\3r\237\317dr\237" "\317\377\370\372\375\377\205\377\377\377\377\1\216\252\314\377\222Nz" "\257\377\2Jn\230\377BJO\377\241.46\377\4;@A\377TYX\377ilj\377PTT\377" "\220.46\377\1\234\237\240\377\205\356\356\356\377\2\371\371\371\377\303" "\322\344\377\217Nz\257\377\1\216\252\314\377\205\377\377\377\377\3\370" "\372\375\377r\237\317\377r\237\317d\216\377\377\377\0\2r\237\317\213" "\177\250\323\372\206\377\377\377\377\1r\225\300\377\223My\257\377\2K" "u\252\377Ydp\377\243.46\377\1""168\377\220.46\377\1\260\262\262\377\205" "\356\356\356\377\3\360\360\360\377\374\374\375\377c\212\271\377\216M" "y\257\377\1r\225\300\377\206\377\377\377\377\2\177\250\323\372r\237\317" "\213\216\377\377\377\0\2r\237\317\262\226\267\333\375\206\377\377\377" "\377\1W\200\263\377\225Mx\256\377\1`p\202\377\263.46\377\1\253\255\256" "\377\206\356\356\356\377\2\366\366\366\377\262\304\334\377\216Mx\256" "\377\1W\200\263\377\206\377\377\377\377\2\226\267\333\375r\237\317\262" "\216\377\377\377\0\2v\241\320\334\255\307\343\377\205\377\377\377\377" "\1\356\362\367\377\227Lw\255\377\2^s\214\377068\377\261.46\377\1\230" "\233\234\377\206\356\356\356\377\3\357\357\357\377\366\370\372\377W\200" "\262\377\216Lw\255\377\1\356\362\367\377\205\377\377\377\377\2\255\307" "\343\377u\241\320\335\216\377\377\377\0\2s\237\317\373\276\323\351\377" "\205\377\377\377\377\1\323\336\353\377\230Kw\255\377\2Yt\224\3775;>\377" "\260.46\377\1\206\212\213\377\207\356\356\356\377\2\371\371\371\377\240" "\267\324\377\216Kw\255\377\1\323\336\353\377\205\377\377\377\377\2\276" "\323\351\377s\237\317\373\215\377\377\377\0\3r\237\317\10r\237\317\377" "\305\327\353\377\205\377\377\377\377\1\301\320\343\377\231Jv\254\377" "\2Ss\231\377CE\377\210\356\356\356\377\2\365\365\365\377\272\313\337" "\377\215It\253\377\1\254\300\331\377\205\377\377\377\377\3\323\341\360" "\377r\237\317\377r\237\317!\214\377\377\377\0\3r\237\317-r\237\317\377" "\333\346\363\377\205\377\377\377\377\1\242\270\324\377\234Hs\252\377" "\2Fi\222\3774;=\377\254.46\377\2-35\377\331\332\332\377\207\356\356\356" "\377\3\357\357\357\377\362\365\370\377Lv\254\377\214Hs\252\377\1\242" "\270\324\377\205\377\377\377\377\3\333\346\363\377r\237\317\377r\237" "\317-\214\377\377\377\0\3r\237\317:r\237\317\377\341\353\365\377\205" "\377\377\377\377\1\227\260\316\377\235Gs\251\377\2Ih\214\37718:\377\253" ".46\377\2-35\377\263\265\265\377\210\356\356\356\377\2\371\371\371\377" "{\233\301\377\214Gs\251\377\1\227\260\316\377\205\377\377\377\377\3\341" "\353\365\377r\237\317\377r\237\317:\214\377\377\377\0\3r\237\317:r\237" "\317\377\341\353\365\377\205\377\377\377\377\1\227\257\316\377\236Fr" "\251\377\2Jf\207\377068\377\253.46\377\1\214\217\220\377\210\356\356" "\356\377\2\362\362\362\377\270\311\336\377\214Fr\251\377\1\227\257\316" "\377\205\377\377\377\377\3\341\353\365\377r\237\317\377r\237\317:\214" "\377\377\377\0\3r\237\317-r\237\317\377\333\346\363\377\205\377\377\377" "\377\1\240\267\323\377\237Eq\250\377\1Kd\177\377\253.46\377\1gkm\377" "\211\356\356\356\377\2\360\363\367\377Hs\251\377\213Eq\250\377\1\240" "\267\323\377\205\377\377\377\377\3\333\346\363\377r\237\317\377r\237" "\317-\214\377\377\377\0\3r\237\317!r\237\317\377\323\341\360\377\205" "\377\377\377\377\1\252\276\327\377\240Ep\247\377\1M`x\377\252.46\377" "\1@FG\377\211\356\356\356\377\2\367\367\367\377y\230\300\377\213Ep\247" "\377\1\252\276\327\377\205\377\377\377\377\3\323\341\360\377r\237\317" "\377r\237\317!\214\377\377\377\0\3r\237\317\24r\237\317\377\314\334\356" "\377\205\377\377\377\377\1\264\305\333\377\241Do\246\377\1L]p\377\227" ".46\377\14=AC\377OTV\377`ef\377ost\377imo\377bfh\377[_a\377SXY\377LQ" "S\377EJK\377=CE\377068\377\206.46\377\2BGI\377\354\354\354\377\210\356" "\356\356\377\2\361\361\361\377\266\307\334\377\213Do\246\377\1\264\305" "\333\377\205\377\377\377\377\3\314\334\356\377r\237\317\377r\237\317" "\24\214\377\377\377\0\3r\237\317\10r\237\317\377\305\327\353\377\205" "\377\377\377\377\1\277\316\341\377\241Cn\246\377\2Cn\245\377KZi\377\220" ".46\377\6""39;\377X]^\377\201\204\204\377\247\251\252\377\317\320\320" "\377\353\353\353\377\213\356\356\356\377\10\355\355\355\377\341\341\342" "\377\320\321\321\377\300\301\302\377\262\264\264\377\241\243\244\377" "\241\244\244\377\327\327\330\377\212\356\356\356\377\2\356\361\365\377" "Fp\247\377\212Cn\246\377\1\277\316\341\377\205\377\377\377\377\3\305" "\327\353\377r\237\317\377r\237\317\10\215\377\377\377\0\2s\237\317\373" "\276\323\351\377\205\377\377\377\377\1\321\334\351\377\242Bn\245\377" "\2Bm\243\377JWb\377\214.46\377\4DIK\377\201\204\205\377\275\276\277\377" "\352\352\352\377\242\356\356\356\377\2\366\366\366\377u\225\275\377\212" "Bn\245\377\1\321\334\351\377\205\377\377\377\377\2\276\323\351\377s\237" "\317\373\216\377\377\377\0\2v\241\320\334\255\307\343\377\205\377\377" "\377\377\1\355\361\366\377\243Bm\244\377\2Bk\240\377IS[\377\210.46\377" "\3JOQ\377\212\214\215\377\306\307\307\377\246\356\356\356\377\2\360\360" "\360\377\252\275\326\377\212Bm\244\377\1\355\361\366\377\205\377\377" "\377\377\2\255\307\343\377u\241\320\335\216\377\377\377\0\2r\237\317" "\262\226\267\333\375\206\377\377\377\377\1Lu\251\377\243Al\244\377\2" "@i\235\377FNU\377\205.46\377\2glm\377\272\273\274\377\252\356\356\356" "\377\1\316\330\345\377\211Al\244\377\1Lu\251\377\206\377\377\377\377" "\2\226\267\333\375r\237\317\262\216\377\377\377\0\2r\237\317\213\177" "\250\323\372\206\377\377\377\377\1h\212\266\377\244@k\243\377\6\77g\231" "\377CJM\377.46\3777=>\377\201\204\204\377\322\323\323\377\254\356\356" "\356\377\2\353\355\360\377Al\244\377\210@k\243\377\1h\212\266\377\206" "\377\377\377\377\2\177\250\323\372r\237\317\213\216\377\377\377\0\3r" "\237\317dr\237\317\377\370\372\375\377\205\377\377\377\377\1\204\240" "\304\377\245\77j\242\377\3_~\243\377\232\235\236\377\343\343\343\377" "\256\356\356\356\377\2\357\357\357\377^\202\261\377\210\77j\242\377\1" "\204\240\304\377\205\377\377\377\377\3\370\372\375\377r\237\317\377r" "\237\317d\216\377\377\377\0\3r\237\317>r\237\317\377\343\354\365\377" "\205\377\377\377\377\1\260\302\331\377\244>i\242\377\2Ir\246\377\330" "\334\344\377\261\356\356\356\377\1\201\235\300\377\210>i\242\377\1\260" "\302\331\377\205\377\377\377\377\3\343\354\365\377r\237\317\377r\237" "\317>\216\377\377\377\0\3r\237\317\24r\237\317\376\312\333\355\377\205" "\377\377\377\377\2\353\360\365\377\77j\241\377\242>i\241\377\2Ak\242" "\377\271\306\327\377\262\356\356\356\377\1\245\267\316\377\207>i\241" "\377\2\77j\241\377\353\360\365\377\205\377\377\377\377\3\312\333\355" "\377r\237\317\376r\237\317\24\217\377\377\377\0\2u\241\320\326\246\302" "\341\377\206\377\377\377\377\1f\210\264\377\241=h\240\377\2Ty\253\377" "\311\322\336\377\263\356\356\356\377\1\303\316\333\377\207=h\240\377" "\1f\210\264\377\206\377\377\377\377\2\246\302\341\377u\241\320\326\220" "\377\377\377\0\2r\237\317\221\177\250\324\372\206\377\377\377\377\1\242" "\266\322\377\240h\240\377m\214\264\377" "\242\265\314\377\325\333\343\377\276\356\356\356\377\1i\211\263\377\205" "9d\235\377\1\320\332\350\377\205\377\377\377\377\3\367\372\374\377u\241" "\320\375r\237\317\177\222\377\377\377\0\3r\237\317!r\237\317\376\311" "\332\355\377\205\377\377\377\377\2\375\376\376\377Ho\244\377\2218c\234" "\377\3Pv\246\377\236\261\313\377\342\345\350\377\301\356\356\356\377" "\1|\227\273\377\2048c\234\377\2Ho\244\377\375\376\376\377\205\377\377" "\377\377\3\311\332\355\377r\237\317\376r\237\317!\223\377\377\377\0\2" "t\241\320\305\225\267\333\374\206\377\377\377\377\1\217\247\307\377\217" "7b\233\377\3e\206\262\377\272\307\327\377\354\355\355\377\303\356\356" "\356\377\2\327\334\344\377g\210\263\377\2037b\233\377\1\217\247\307\377" "\206\377\377\377\377\2\225\267\333\374t\241\320\305\224\377\377\377\0" "\3r\237\317ds\237\317\376\360\364\372\377\205\377\377\377\377\2\357\363" "\367\377Aj\240\377\2146a\233\377\4""9c\235\377\240\265\320\377\376\376" "\377\377\366\366\366\377\304\356\356\356\377\6\357\357\357\377\375\376" "\376\377\247\272\323\377=g\237\377Aj\240\377\357\363\367\377\205\377" "\377\377\377\3\360\364\372\377s\237\317\376r\237\317d\224\377\377\377" "\0\3r\237\317\17s\240\317\371\274\321\350\377\206\377\377\377\377\1\237" "\263\317\377\2136a\232\377\2Pu\247\377\324\335\351\377\202\377\377\377" "\377\1\373\373\373\377\304\356\356\356\377\1\360\360\360\377\202\377" "\377\377\377\2\341\347\360\377\264\304\332\377\206\377\377\377\377\3" "\274\321\350\377s\240\317\371r\237\317\17\225\377\377\377\0\3s\237\317" "\241|\246\322\374\372\374\375\377\205\377\377\377\377\2\367\371\373\377" "Jp\243\377\2115`\231\377\2x\224\273\377\363\366\371\377\204\377\377\377" "\377\1\357\357\357\377\303\356\356\356\377\1\361\361\361\377\211\377" "\377\377\377\3\372\374\375\377|\246\322\374s\237\317\241\226\377\377" "\377\0\3r\237\317(r\237\317\376\302\325\352\377\206\377\377\377\377\1" "\257\300\327\377\2104_\231\377\2\204\236\301\377\376\376\377\377\205" "\377\377\377\377\1\366\366\366\377\303\356\356\356\377\1\363\363\363" "\377\211\377\377\377\377\3\302\325\352\377r\237\317\376r\237\317(\227" "\377\377\377\0\3s\240\317\253\200\250\324\373\374\375\376\377\205\377" "\377\377\377\2\375\375\376\377Uy\251\377\2063^\230\377\2\206\240\302" "\377\376\376\377\377\207\377\377\377\377\1\362\362\362\377\302\356\356" "\356\377\1\367\367\367\377\210\377\377\377\377\3\374\375\376\377\200" "\250\324\373s\240\317\253\230\377\377\377\0\3r\237\3170r\237\317\377" "\307\331\354\377\206\377\377\377\377\1\301\316\340\377\2052]\227\377" "\1\211\242\303\377\211\377\377\377\377\2\375\375\375\377\357\357\357" "\377\301\356\356\356\377\1\374\374\374\377\210\377\377\377\377\3\307" "\331\354\377r\237\317\377r\237\3170\231\377\377\377\0\3t\240\320\266" "\204\253\325\374\374\375\376\377\206\377\377\377\377\1d\204\260\377\203" "2\\\226\377\1\206\237\301\377\213\377\377\377\377\2\373\373\373\377\360" "\360\360\377\277\356\356\356\377\1\360\360\360\377\210\377\377\377\377" "\3\374\375\376\377\204\253\325\374t\240\320\266\232\377\377\377\0\3r" "\237\3173r\237\317\376\275\322\351\377\206\377\377\377\377\5\323\334" "\351\3773]\227\3771\\\226\377h\207\262\377\375\375\376\377\214\377\377" "\377\377\2\376\376\376\377\364\364\364\377\276\356\356\356\377\1\371" "\371\371\377\210\377\377\377\377\3\275\322\351\377r\237\317\376r\237" "\3173\233\377\377\377\0\3r\237\317\230w\242\321\374\360\364\372\377\206" "\377\377\377\377\3\242\265\317\377Ns\244\377\361\364\370\377\217\377" "\377\377\377\2\372\372\372\377\361\361\361\377\273\356\356\356\377\1" "\364\364\364\377\210\377\377\377\377\3\360\364\372\377w\242\321\374r" "\237\317\230\234\377\377\377\0\3r\237\317\22t\240\320\356\240\276\337" "\376\207\377\377\377\377\1\352\357\364\377\222\377\377\377\377\3\373" "\373\373\377\365\365\365\377\357\357\357\377\267\356\356\356\377\2\364" "\364\364\377\376\376\376\377\210\377\377\377\377\3\240\276\337\376t\240" "\320\356r\237\317\22\235\377\377\377\0\3r\237\317cr\237\317\377\330\345" "\362\377\206\377\377\377\377\1\376\376\377\377\224\377\377\377\377\4" "\376\376\376\377\371\371\371\377\365\365\365\377\361\361\361\377\262" "\356\356\356\377\2\361\361\361\377\373\373\373\377\211\377\377\377\377" "\3\330\345\362\377r\237\317\377r\237\317c\236\377\377\377\0\4r\237\317" "\1t\240\320\310\202\252\325\373\367\371\374\377\206\377\377\377\377\1" "\376\376\376\377\227\377\377\377\377\7\376\376\376\377\373\373\373\377" "\370\370\370\377\364\364\364\377\363\363\363\377\361\361\361\377\357" "\357\357\377\247\356\356\356\377\4\357\357\357\377\364\364\364\377\370" "\370\370\377\374\374\374\377\212\377\377\377\377\4\367\371\374\377\202" "\252\325\373t\240\320\310r\237\317\1\237\377\377\377\0\3r\237\317$t\240" "\320\364\237\276\336\376\207\377\377\377\377\1\376\376\377\377\235\377" "\377\377\377\3\376\376\376\377\374\374\374\377\372\372\372\377\202\371" "\371\371\377\202\370\370\370\377\202\367\367\367\377\202\366\366\366" "\377\202\365\365\365\377\202\364\364\364\377\202\363\363\363\377\204" "\362\362\362\377\204\363\363\363\377\203\364\364\364\377\203\365\365" "\365\377\203\366\366\366\377\5\367\367\367\377\371\371\371\377\373\373" "\373\377\374\374\374\377\376\376\376\377\216\377\377\377\377\3\237\276" "\336\376t\240\320\364r\237\317$\241\377\377\377\0\3r\237\317Vr\237\317" "\377\302\326\352\377\330\377\377\377\377\3\302\326\352\377r\237\317\377" "r\237\317V\243\377\377\377\0\3r\237\317\227t\241\320\375\342\353\365" "\377\326\377\377\377\377\3\342\353\365\377t\241\320\375r\237\317\227" "\244\377\377\377\0\4r\237\317\10u\241\320\323\203\253\325\373\365\370" "\374\377\206\377\377\377\377\1\376\376\377\377\315\377\377\377\377\4" "\365\370\374\377\203\253\325\373u\241\320\323r\237\317\10\245\377\377" "\377\0\4r\237\317%t\240\320\361\220\263\331\374\371\373\375\377\322\377" "\377\377\377\4\371\373\375\377\220\263\331\374t\240\320\361r\237\317" "%\247\377\377\377\0\4r\237\3179s\240\317\370\232\272\334\375\374\375" "\376\377\207\377\377\377\377\1\376\377\377\377\310\377\377\377\377\4" "\374\375\376\377\232\272\334\375s\240\317\370r\237\3179\251\377\377\377" "\0\4r\237\317Js\237\317\374\245\301\340\376\376\377\377\377\207\377\377" "\377\377\1\376\376\376\377\306\377\377\377\377\4\376\377\377\377\245" "\301\340\376s\237\317\374r\237\317J\253\377\377\377\0\4r\237\317\\r\237" "\317\376\256\310\343\377\376\377\377\377\207\377\377\377\377\1\376\376" "\376\377\304\377\377\377\377\4\376\377\377\377\256\310\343\377r\237\317" "\376r\237\317\\\255\377\377\377\0\4r\237\317lr\237\317\376\245\301\340" "\376\374\375\376\377\312\377\377\377\377\4\374\375\376\377\245\301\340" "\376r\237\317\376r\237\317l\257\377\377\377\0\4r\237\317\\s\237\317\374" "\232\272\334\375\371\373\375\377\210\377\377\377\377\1\374\375\375\377" "\277\377\377\377\377\4\371\373\375\377\232\272\334\375s\237\317\374r" "\237\317\\\261\377\377\377\0\4r\237\317Js\240\317\370\220\263\331\374" "\365\370\374\377\306\377\377\377\377\4\365\370\374\377\220\263\331\374" "s\240\317\370r\237\317J\263\377\377\377\0\4r\237\3179t\240\320\361\203" "\253\325\373\342\353\365\377\211\377\377\377\377\1\376\377\377\377\272" "\377\377\377\377\4\342\353\365\377\203\253\325\373t\240\320\361r\237" "\3179\265\377\377\377\0\4r\237\317%u\241\320\323t\241\320\375\302\326" "\352\377\212\377\377\377\377\1\376\377\377\377\267\377\377\377\377\4" "\303\326\352\377t\241\320\375u\241\320\323r\237\317%\267\377\377\377" "\0\5r\237\317\10r\237\317\227r\237\317\377\237\276\336\376\367\371\374" "\377\212\377\377\377\377\1\375\375\376\377\263\377\377\377\377\5\367" "\371\374\377\237\276\336\376r\237\317\377r\237\317\227r\237\317\10\272" "\377\377\377\0\4r\237\317Vt\240\320\364\202\252\325\373\330\345\362\377" "\274\377\377\377\377\4\330\345\362\377\202\252\325\373t\240\320\364r" "\237\317V\275\377\377\377\0\5r\237\317$t\240\320\310r\237\317\377\240" "\276\337\376\360\364\372\377\270\377\377\377\377\5\360\364\372\377\240" "\276\337\376r\237\317\377t\240\320\310r\237\317$\277\377\377\377\0\6" "r\237\317\1r\237\317ct\240\320\356w\242\321\374\275\322\351\377\374\375" "\376\377\264\377\377\377\377\6\374\375\376\377\275\322\351\377w\242\321" "\374t\240\320\356r\237\317cr\237\317\1\302\377\377\377\0\6r\237\317\22" "r\237\317\230r\237\317\376\204\253\325\374\307\331\354\377\374\375\376" "\377\260\377\377\377\377\6\374\375\376\377\307\331\354\377\204\253\325" "\374r\237\317\376r\237\317\230r\237\317\22\306\377\377\377\0\6r\237\317" "3t\240\320\266r\237\317\377\200\250\324\373\302\325\352\377\372\374\375" "\377\254\377\377\377\377\6\372\374\375\377\302\325\352\377\200\250\324" "\373r\237\317\377t\240\320\266r\237\3173\312\377\377\377\0\6r\237\317" "0s\240\317\253r\237\317\376|\246\322\374\274\321\350\377\360\364\372" "\377\250\377\377\377\377\6\360\364\372\377\274\321\350\377|\246\322\374" "r\237\317\376s\240\317\253r\237\3170\316\377\377\377\0\7r\237\317(s\237" "\317\241s\240\317\371s\237\317\376\225\267\333\374\311\332\355\377\367" "\372\374\377\242\377\377\377\377\7\367\372\374\377\311\332\355\377\225" "\267\333\374s\237\317\376s\240\317\371s\237\317\241r\237\317(\322\377" "\377\377\0\10r\237\317\17r\237\317dt\241\320\305r\237\317\376u\241\320" "\375\237\275\336\377\305\327\353\377\352\361\370\377\234\377\377\377" "\377\10\352\361\370\377\305\327\353\377\237\275\336\377u\241\320\375" "r\237\317\376t\241\320\305r\237\317dr\237\317\17\327\377\377\377\0\12" "r\237\317!r\237\317\177u\241\320\322r\237\317\376r\237\317\377\177\250" "\324\372\246\302\341\377\312\333\355\377\343\354\365\377\370\372\375" "\377\222\377\377\377\377\12\370\372\375\377\343\354\365\377\312\333\355" "\377\246\302\341\377\177\250\324\372r\237\317\377r\237\317\376u\241\320" "\322r\237\317\177r\237\317!\335\377\377\377\0\5r\237\317\21r\237\317" "Pr\237\317\221u\241\320\326r\237\317\376\202r\237\317\377\10\177\250" "\323\372\226\267\333\375\255\307\343\377\276\323\351\377\305\327\353" "\377\314\334\356\377\323\341\360\377\333\346\363\377\202\341\353\365" "\377\10\333\346\363\377\323\341\360\377\314\334\356\377\305\327\353\377" "\276\323\351\377\255\307\343\377\226\267\333\375\177\250\323\372\202" "r\237\317\377\5r\237\317\376u\241\320\326r\237\317\221r\237\317Pr\237" "\317\21\344\377\377\377\0\7r\237\317\24r\237\317>r\237\317dr\237\317" "\213r\237\317\262v\241\320\334s\237\317\373\212r\237\317\377\7s\237\317" "\373u\241\320\335r\237\317\262r\237\317\213r\237\317dr\237\317>r\237" "\317\24\357\377\377\377\0\4r\237\317\10r\237\317\24r\237\317!r\237\317" "-\202r\237\317:\4r\237\317-r\237\317!r\237\317\24r\237\317\10\377\377" "\377\377\0\377\377\377\377\0\377\377\377\377\0\377\377\377\377\0\377" "\377\377\377\0\377\377\377\377\0\377\377\377\377\0\303\377\377\377\0"}; tuxcmd-0.6.70+dfsg/pixmaps/tools/stock_new_16_png.c0000644000175000017500000000776311300022643021204 0ustar salvisalvi/* GdkPixbuf RGBA C-Source image dump */ #ifdef __SUNPRO_C #pragma align 4 (stock_new_16_png) #endif #ifdef __GNUC__ static const guint8 stock_new_16_png[] __attribute__ ((__aligned__ (4))) = #else static const guint8 stock_new_16_png[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1024) */ "\0\0\4\30" /* pixdata_type (0x1010002) */ "\1\1\0\2" /* rowstride (64) */ "\0\0\0@" /* width (16) */ "\0\0\0\20" /* height (16) */ "\0\0\0\20" /* pixel_data: */ "\0\0\0\0\0\0\0S\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0" "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0L\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\377\376\376\376\377\376\376\376\377\376\376\376" "\377\376\376\376\377\376\376\376\377\376\376\376\377\375\375\375\377" "\340\340\340\377\301\301\301\377\0\0\0\377\0\0\0S\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\377\376\376\376\377\361\361\361\377\361\361\361\377" "\361\361\361\377\361\361\361\377\361\361\361\377\361\361\361\377\303" "\303\303\377\373\373\373\377\250\250\250\377\0\0\0\377\0\0\0L\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\377\376\376\376\377\361\361\361\377\361\361\361" "\377\361\361\361\377\361\361\361\377\361\361\361\377\361\361\361\377" "\255\255\255\377vvv\377]]]\377@@@\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\377\376\376\376\377\361\361\361\377\361\361\361\377\361\361" "\361\377\361\361\361\377\361\361\361\377\360\360\360\377\342\342\342" "\377\205\205\205\377KKI\377\26\26\26\377\0\0\0\377\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\377\376\376\376\377\361\361\361\377\357\357\357\377\357" "\357\357\377\357\357\357\377\357\357\357\377\357\357\357\377\357\357" "\357\377\356\356\356\377\356\356\356\377\305\305\305\377\0\0\0\377\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\376\376\376\377\357\357\357\377\357" "\357\357\377\357\357\357\377\356\356\356\377\356\356\356\377\356\356" "\356\377\356\356\356\377\356\356\356\377\354\354\354\377\304\304\304" "\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\375\375\375\377\356" "\356\356\377\356\356\356\377\356\356\356\377\356\356\356\377\356\356" "\356\377\356\356\356\377\356\356\356\377\356\356\356\377\353\353\353" "\377\303\303\303\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\375" "\375\375\377\355\355\355\377\354\354\354\377\354\354\354\377\354\354" "\354\377\353\353\353\377\353\353\353\377\352\352\352\377\352\352\352" "\377\352\352\352\377\301\301\301\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\377\375\375\375\377\353\353\353\377\350\350\350\377\350\350" "\350\377\350\350\350\377\350\350\350\377\350\350\350\377\350\350\350" "\377\350\350\350\377\350\350\350\377\300\300\300\377\0\0\0\377\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\377\375\375\375\377\352\352\352\377\352\352" "\352\377\351\351\351\377\351\351\351\377\350\350\350\377\350\350\350" "\377\350\350\350\377\347\347\347\377\347\347\347\377\277\277\277\377" "\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\375\375\375\377\350\350" "\350\377\346\346\346\377\346\346\346\377\346\346\346\377\346\346\346" "\377\346\346\346\377\346\346\346\377\346\346\346\377\345\345\345\377" "\276\276\276\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\375\375" "\375\377\347\347\347\377\347\347\347\377\346\346\346\377\346\346\346" "\377\346\346\346\377\345\345\345\377\345\345\345\377\344\344\344\377" "\344\344\344\377\275\275\275\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\377\375\375\375\377\346\346\346\377\345\345\345\377\345\345\345" "\377\345\345\345\377\344\344\344\377\344\344\344\377\343\343\343\377" "\343\343\343\377\343\343\343\377\273\273\273\377\0\0\0\377\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\377\302\302\302\377\275\275\275\377\275\275\275" "\377\275\275\275\377\274\274\274\377\274\274\274\377\273\273\273\377" "\273\273\273\377\273\273\273\377\273\273\273\377\240\240\240\377\0\0" "\0\324\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0k\0\0\0\377\0\0\0\377\0\0\0\377\0" "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" "\0\0\0\377\0\0\0d\0\0\0\0\0\0\0\0"}; tuxcmd-0.6.70+dfsg/pixmaps/tools/gnome_dev_harddisk_16_png.c0000644000175000017500000001032611300022643023011 0ustar salvisalvi/* GdkPixbuf RGBA C-Source image dump */ #ifdef __SUNPRO_C #pragma align 4 (gnome_dev_harddisk_16_png) #endif #ifdef __GNUC__ static const guint8 gnome_dev_harddisk_16_png[] __attribute__ ((__aligned__ (4))) = #else static const guint8 gnome_dev_harddisk_16_png[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1024) */ "\0\0\4\30" /* pixdata_type (0x1010002) */ "\1\1\0\2" /* rowstride (64) */ "\0\0\0@" /* width (16) */ "\0\0\0\20" /* height (16) */ "\0\0\0\20" /* pixel_data: */ "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0F\0" "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" "\0\0\0F\0\0\0\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\331\331\331\377\0\0\0\377\0\0\0\377\375\375\375" "\377\374\374\374\377\373\373\373\377\373\374\374\377\373\373\373\377" "\373\373\373\377\373\373\373\377\373\373\373\377\374\373\373\377\373" "\374\373\377\373\373\374\377\373\374\374\377\373\374\373\377\325\326" "\325\377\0\0\0\377\0\0\0\377\374\373\374\377\367\370\370\377\367\370" "\370\377\367\367\367\377\370\367\367\377\367\370\367\377\367\370\367" "\377\370\370\370\377\367\367\367\377\370\367\367\377\367\367\370\377" "\370\367\370\377\370\370\370\377\323\323\322\377\0\0\0\377\0\0\0\377" "\372\372\372\377\363\363\364\377\364\364\364\377\364\364\364\377\364" "\364\364\377\364\364\363\377\363\364\364\377\364\364\364\377\363\363" "\364\377\364\364\364\377\364\363\364\377\364\364\364\377\364\363\364" "\377\316\316\316\377\0\0\0\377\0\0\0\377\371\371\371\377\360\360\360" "\377\360\360\360\377\360\360\360\377\360\360\360\377\360\360\360\377" "\360\360\360\377\360\360\360\377\360\360\360\377\360\360\360\377\360" "\360\360\377\360\360\360\377\360\360\360\377\314\314\314\377\0\0\0\377" "\0\0\0\377\371\371\371\377\360\360\360\377\360\360\360\377\360\360\360" "\377\360\360\360\377\360\360\360\377\360\360\360\377\360\360\360\377" "\360\360\360\377\360\360\360\377\360\360\360\377\360\360\360\377\360" "\360\360\377\314\314\314\377\0\0\0\377\0\0\0\377\367\367\367\377\354" "\354\354\377\355\354\354\377\354\354\354\377\355\354\354\377\354\354" "\354\377\354\355\355\377\355\354\354\377\354\354\355\377\354\354\354" "\377\354\354\355\377\354\355\354\377\354\354\355\377\310\310\310\377" "\0\0\0\377\0\0\0\377\376\376\376\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\364\364\364\377\364\364\364\377\353\353\353\377\353\353" "\353\377\343\343\343\377\311\311\311\377\0\0\0\377\0\0\0\377\316\316" "\316\377\271\271\271\377\271\271\271\377\271\271\271\377\271\271\271" "\377\271\271\271\377\271\271\271\377\271\271\271\377\271\271\271\377" "\271\271\271\377\271\271\271\377\271\271\271\377\271\271\271\377\247" "\247\250\377\0\0\0\377\0\0\0\377\316\316\316\377\271\271\271\377\235" "\235\235\377\322\322\322\377\235\235\235\377\322\322\322\377\235\235" "\235\377\322\322\322\377\235\235\235\377\322\322\322\377\235\235\235" "\377\322\322\322\377\271\271\271\377\242\242\242\377\0\0\0\377\0\0\0" "\377\315\315\315\377\266\266\266\377\233\233\232\377\321\321\321\377" "\233\232\233\377\321\321\321\377\232\233\232\377\321\321\321\377\233" "\232\233\377\321\321\321\377\233\232\232\377\321\321\321\377\267\266" "\266\377\237\237\237\377\0\0\0\377\0\0\0\377\275\275\275\377\234\234" "\234\377\235\235\234\377\235\234\235\377\234\235\234\377\234\235\234" "\377\234\235\234\377\234\235\234\377\235\235\235\377\235\234\235\377" "\234\235\235\377\235\234\235\377\235\235\234\377\234\234\234\377\0\0" "\0\377\0\0\0y\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0" "\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0" "\0\377\0\0\0\377\0\0\0b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0"}; tuxcmd-0.6.70+dfsg/pixmaps/tools/README0000644000175000017500000000063311300022643016537 0ustar salvisalviHow to translate image to an inline form suitable for compilation in the main binary: 1. Use `gdk-pixbuf-csource' utility to get C source of the pixmap 2. Include the C source file in gdk-pixbuf-pas.c 3. Recompile (use attached Makefile), run, split the output in several Pascal source files See http://library.gnome.org/devel/gdk-pixbuf/stable/gdk-pixbuf-inline.html for inlining TODO: Further automatize tuxcmd-0.6.70+dfsg/pixmaps/tools/gnome_dev_floppy_16_png.c0000644000175000017500000001013211300022643022524 0ustar salvisalvi/* GdkPixbuf RGBA C-Source image dump */ #ifdef __SUNPRO_C #pragma align 4 (gnome_dev_floppy_16_png) #endif #ifdef __GNUC__ static const guint8 gnome_dev_floppy_16_png[] __attribute__ ((__aligned__ (4))) = #else static const guint8 gnome_dev_floppy_16_png[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1024) */ "\0\0\4\30" /* pixdata_type (0x1010002) */ "\1\1\0\2" /* rowstride (64) */ "\0\0\0@" /* width (16) */ "\0\0\0\20" /* height (16) */ "\0\0\0\20" /* pixel_data: */ "\0\0\0G\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0" "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" "\0\0\0\377\0\0\0U\0\0\0\377\367\370\372\377\313\335\353\377\310\212\200" "\377\321\217\204\377\321\217\204\377\321\217\204\377\321\217\204\377" "\321\217\204\377\321\217\204\377\321\220\204\377\321\217\204\377\323" "\221\206\377\277\325\350\377\277\325\350\377\0\0\0\377\0\0\0\377\333" "\347\361\377\215\251\276\377\267\207~\377\307uh\377\307tg\377\307tg\377" "\307tg\377\307tg\377\307tf\377\307tg\377\310vh\377\315\206z\377\215\251" "\276\377Ti|\377\0\0\0\377\0\0\0\377\317\340\355\377\215\251\276\377\327" "\327\327\377\376\376\376\377\376\376\376\377\376\376\376\377\376\376" "\376\377\376\376\376\377\376\376\376\377\376\376\376\377\376\376\376" "\377\371\371\371\377\204\240\265\377Odu\377\0\0\0\377\0\0\0\377\317\340" "\355\377\215\251\276\377\327\327\327\377\327\327\327\377\327\327\327" "\377\327\327\327\377\327\327\327\377\327\327\327\377\327\327\327\377" "\327\327\327\377\326\326\326\377\361\361\361\377\201\232\256\377I`r\377" "\0\0\0\377\0\0\0\377\317\340\355\377\215\251\276\377\327\327\327\377" "\376\376\376\377\376\376\376\377\376\376\376\377\376\376\376\377\374" "\374\374\377\364\364\364\377\353\353\353\377\353\353\353\377\361\361" "\361\377\201\232\256\377I`r\377\0\0\0\377\0\0\0\377\317\340\355\377\215" "\251\276\377\327\327\327\377\327\327\327\377\327\327\327\377\327\327" "\327\377\324\324\324\377\305\305\305\377\305\305\305\377\305\305\305" "\377\305\305\305\377\361\361\361\377\201\232\256\377I`r\377\0\0\0\377" "\0\0\0\377\317\340\355\377\215\251\276\377\356\356\356\377\376\376\376" "\377\376\376\376\377\362\362\362\377\353\353\353\377\353\353\353\377" "\353\353\353\377\353\353\353\377\353\353\353\377\356\356\356\377\201" "\232\256\377I`r\377\0\0\0\377\0\0\0\377\317\340\355\377\215\251\276\377" "\256\277\315\377\312\326\337\377\307\317\332\377\277\313\326\377\277" "\313\326\377\277\313\326\377\277\313\326\377\277\313\326\377\277\313" "\326\377\241\266\304\377\201\232\256\377I`r\377\0\0\0\377\0\0\0\377\317" "\340\355\377\215\251\276\377\215\251\276\377\211\246\274\377\177\232" "\256\377\201\232\256\377\201\232\256\377\201\232\256\377\201\232\256" "\377~\231\255\377}\227\254\377\201\232\256\377\201\232\256\377I`r\377" "\0\0\0\377\0\0\0\377\317\340\355\377\215\251\276\377\214\250\275\377" "\250\261\275\377\305\305\305\377\305\305\305\377\316\316\316\377\353" "\353\353\377\327\327\327\377\234\235\235\377/FV\377\200\206\214\377\201" "\232\256\377I`r\377\0\0\0\377\0\0\0\377\317\340\355\377\215\251\276\377" "\204\240\265\377\305\305\305\377\305\305\305\377\30""0B\3773IZ\377\326" "\326\326\377\305\305\305\377\271\271\271\377\23-<\377Xm\200\377\227\245" "\260\377I`r\377\0\0\0\377\0\0\0\377\317\340\355\377\206\244\271\377\201" "\232\256\377\305\305\305\377\315\315\315\377.CS\377Zp\202\377\305\305" "\305\377\305\305\305\377\277\277\277\377\21(5\377Zp\202\377\235\251\260" "\377I`r\377\0\0\0\377\0\0\0\377kx\202\377\203\236\262\377\201\232\256" "\377\315\315\315\377\346\346\346\377!6H\377_y\211\377\305\305\305\377" "\302\302\302\377\262\262\262\377\21,:\377Zp\202\377\237\251\260\377I" "`r\377\0\0\0\377\0\0\0U\0\0\0\377Ycm\377Odu\377\241\241\241\377\300\300" "\300\377\220\220\220\377\220\220\220\377\206\206\206\377nnn\377zzz\377" "-9I\377>O\\\377\200\207\217\377\32""1@\377\0\0\0\377\0\0\0\0\0\0\0U\0" "\0\0\377\0\0\0\323\0\0\0\334\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" "\0\0\0\377\0\0\0\377\0\0\0\340\0\0\0\341\0\0\0\377\0\0\0\377\0\0\0G"}; tuxcmd-0.6.70+dfsg/pixmaps/stock_lock_48_png.inc0000644000175000017500000014002511300022643020524 0ustar salvisalviconst stock_lock_48_png: array[1..9241] of byte = ( $47, $64, $6B, $50, $00, $00, $24, $18, $01, $01, $00, $02, $00, $00, $00, $C0, $00, $00, $00, $30, $00, $00, $00, $30, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $01, $00, $00, $00, $02, $00, $00, $00, $03, $00, $00, $00, $04, $00, $00, $00, $05, $00, $00, $00, $05, $00, $00, $00, $05, $00, $00, $00, $04, $00, $00, $00, $03, $00, $00, $00, $02, $00, $00, $00, $01, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $02, $00, $00, $00, $04, $00, $00, $00, $07, $00, $00, $00, $0B, $00, $00, $00, $0E, $00, $00, $00, $11, $00, $00, $00, $13, $00, $00, $00, $13, $00, $00, $00, $13, $00, $00, $00, $11, $00, $00, $00, $0E, $00, $00, $00, $0B, $00, $00, $00, $07, $00, $00, $00, $04, $00, $00, $00, $02, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $04, $00, $00, $00, $08, $00, $00, $00, $0E, $00, $00, $00, $67, $00, $00, $00, $AB, $00, $00, $00, $DA, $00, $00, $00, $F6, $01, $01, $01, $FF, $00, $00, $00, $F6, $00, $00, $00, $DC, $00, $00, $00, $B0, $00, $00, $00, $72, $00, $00, $00, $1E, $00, $00, $00, $16, $00, $00, $00, $0E, $00, $00, $00, $08, $00, $00, $00, $04, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $02, $00, $00, $00, $06, $00, $00, $00, $0C, $00, $00, $00, $83, $00, $00, $00, $EC, $01, $01, $01, $FF, $9B, $9B, $9B, $FF, $D0, $D0, $D0, $FF, $E3, $E3, $E3, $FF, $E9, $E9, $E9, $FF, $DD, $DD, $DD, $FF, $C6, $C6, $C6, $FF, $91, $91, $91, $FF, $01, $01, $01, $FF, $00, $00, $00, $EE, $00, $00, $00, $91, $00, $00, $00, $23, $00, $00, $00, $17, $00, $00, $00, $0D, $00, $00, $00, $06, $00, $00, $00, $02, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $02, $00, $00, $00, $07, $00, $00, $00, $3F, $00, $00, $00, $D0, $01, $01, $01, $FF, $BE, $BE, $BE, $FF, $EA, $EA, $EA, $FF, $F1, $F1, $F1, $FF, $F3, $F3, $F3, $FF, $F1, $F1, $F1, $FF, $ED, $ED, $ED, $FF, $EA, $EA, $EA, $FF, $E6, $E6, $E6, $FF, $E2, $E2, $E2, $FF, $D8, $D8, $D8, $FF, $9C, $9C, $9C, $FF, $01, $01, $01, $FF, $00, $00, $00, $D8, $00, $00, $00, $57, $00, $00, $00, $1E, $00, $00, $00, $11, $00, $00, $00, $07, $00, $00, $00, $02, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $02, $00, $00, $00, $07, $00, $00, $00, $52, $00, $00, $00, $F6, $60, $60, $60, $FF, $E3, $E3, $E3, $FF, $F3, $F3, $F3, $FF, $F0, $F0, $F0, $FF, $EC, $EC, $EC, $FF, $E6, $E6, $E6, $FF, $E4, $E4, $E4, $FF, $E3, $E3, $E3, $FF, $E2, $E2, $E2, $FF, $E2, $E2, $E2, $FF, $E2, $E2, $E2, $FF, $E1, $E1, $E1, $FF, $D6, $D6, $D6, $FF, $B7, $B7, $B7, $FF, $45, $45, $45, $FF, $00, $00, $00, $F7, $00, $00, $00, $6E, $00, $00, $00, $22, $00, $00, $00, $12, $00, $00, $00, $07, $00, $00, $00, $02, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $06, $00, $00, $00, $3E, $00, $00, $00, $F6, $85, $85, $85, $FF, $EC, $EC, $EC, $FF, $F3, $F3, $F3, $FF, $EA, $EA, $EA, $FF, $E3, $E3, $E3, $FF, $D9, $D9, $D9, $FF, $CE, $CE, $CE, $FF, $C2, $C2, $C2, $FF, $C2, $C2, $C2, $FF, $CC, $CC, $CC, $FF, $D5, $D5, $D5, $FF, $DC, $DC, $DC, $FF, $E0, $E0, $E0, $FF, $DD, $DD, $DD, $FF, $C8, $C8, $C8, $FF, $B9, $B9, $B9, $FF, $62, $62, $62, $FF, $00, $00, $00, $F8, $00, $00, $00, $59, $00, $00, $00, $22, $00, $00, $00, $0F, $00, $00, $00, $05, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $04, $00, $00, $00, $0D, $00, $00, $00, $D0, $5E, $5E, $5E, $FF, $EC, $EC, $EC, $FF, $F3, $F3, $F3, $FF, $E8, $E8, $E8, $FF, $DC, $DC, $DC, $FF, $BC, $BC, $BC, $F8, $58, $58, $58, $F0, $14, $14, $14, $E1, $00, $00, $00, $DB, $00, $00, $00, $D6, $00, $00, $00, $D4, $7B, $7B, $7B, $EA, $BE, $BE, $BE, $F6, $E0, $E0, $E0, $FF, $DF, $DF, $DF, $FF, $DC, $DC, $DC, $FF, $C3, $C3, $C3, $FF, $BB, $BB, $BB, $FF, $4C, $4C, $4C, $FF, $00, $00, $00, $BC, $00, $00, $00, $35, $00, $00, $00, $1C, $00, $00, $00, $0B, $00, $00, $00, $03, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $02, $00, $00, $00, $08, $00, $00, $00, $83, $01, $01, $01, $FF, $E2, $E2, $E2, $FF, $F3, $F3, $F3, $FF, $E9, $E9, $E9, $FF, $D8, $D8, $D8, $FF, $97, $97, $97, $EC, $00, $00, $00, $EA, $00, $00, $00, $BD, $00, $00, $00, $68, $00, $00, $00, $5A, $00, $00, $00, $53, $00, $00, $00, $52, $00, $00, $00, $5A, $00, $00, $00, $C6, $9C, $9C, $9C, $E9, $DD, $DD, $DD, $F9, $E0, $E0, $E0, $FF, $D8, $D8, $D8, $FF, $BB, $BB, $BB, $FF, $B6, $B6, $B6, $FF, $01, $01, $01, $FF, $00, $00, $00, $79, $00, $00, $00, $2B, $00, $00, $00, $13, $00, $00, $00, $07, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $03, $00, $00, $00, $0D, $00, $00, $00, $EC, $B9, $B9, $B9, $FF, $F3, $F3, $F3, $FF, $EB, $EB, $EB, $FF, $D8, $D8, $D8, $FF, $8A, $8A, $8A, $EE, $00, $00, $00, $E3, $00, $00, $00, $7E, $00, $00, $00, $58, $00, $00, $00, $46, $00, $00, $00, $39, $00, $00, $00, $31, $00, $00, $00, $2E, $00, $00, $00, $32, $00, $00, $00, $3C, $00, $00, $00, $94, $91, $91, $91, $E0, $DB, $DB, $DB, $F7, $DF, $DF, $DF, $FF, $CE, $CE, $CE, $FF, $B3, $B3, $B3, $FF, $93, $93, $93, $FF, $00, $00, $00, $CB, $00, $00, $00, $3B, $00, $00, $00, $1E, $00, $00, $00, $0B, $00, $00, $00, $03, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $06, $00, $00, $00, $45, $01, $01, $01, $FF, $EA, $EA, $EA, $FF, $F1, $F1, $F1, $FF, $DD, $DD, $DD, $FF, $C0, $C0, $C0, $FF, $02, $02, $02, $E8, $00, $00, $00, $8C, $00, $00, $00, $55, $00, $00, $00, $3D, $00, $00, $00, $29, $00, $00, $00, $1C, $00, $00, $00, $15, $00, $00, $00, $13, $00, $00, $00, $16, $00, $00, $00, $1F, $00, $00, $00, $2E, $00, $00, $00, $A0, $A2, $A2, $A2, $DF, $E5, $E5, $E5, $FF, $DD, $DD, $DD, $FF, $C0, $C0, $C0, $FF, $B6, $B6, $B6, $FF, $01, $01, $01, $FF, $00, $00, $00, $61, $00, $00, $00, $29, $00, $00, $00, $12, $00, $00, $00, $05, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $02, $00, $00, $00, $09, $00, $00, $00, $70, $A0, $A0, $A0, $FF, $F1, $F1, $F1, $FF, $E8, $E8, $E8, $FF, $C6, $C6, $C6, $FF, $80, $80, $80, $ED, $00, $00, $00, $D2, $00, $00, $00, $5B, $00, $00, $00, $3E, $00, $00, $00, $26, $00, $00, $00, $14, $00, $00, $00, $0B, $00, $00, $00, $07, $00, $00, $00, $06, $00, $00, $00, $07, $00, $00, $00, $0D, $00, $00, $00, $18, $00, $00, $00, $30, $02, $02, $02, $CB, $DC, $DC, $DC, $EF, $EA, $EA, $EA, $FF, $D1, $D1, $D1, $FF, $AE, $AE, $AE, $FF, $76, $76, $76, $FF, $00, $00, $00, $91, $00, $00, $00, $35, $00, $00, $00, $18, $00, $00, $00, $08, $00, $00, $00, $02, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $03, $00, $00, $00, $0C, $00, $00, $00, $93, $D0, $D0, $D0, $FF, $F2, $F2, $F2, $FF, $D9, $D9, $D9, $FF, $C0, $C0, $C0, $FF, $2F, $2F, $2F, $E5, $00, $00, $00, $8B, $00, $00, $00, $4B, $00, $00, $00, $2C, $00, $00, $00, $16, $00, $00, $00, $09, $00, $00, $00, $03, $00, $00, $00, $01, $00, $00, $00, $01, $00, $00, $00, $02, $00, $00, $00, $04, $00, $00, $00, $0B, $00, $00, $00, $19, $00, $00, $00, $6E, $82, $82, $82, $E1, $EE, $EE, $EE, $FF, $DC, $DC, $DC, $FF, $B5, $B5, $B5, $FF, $9F, $9F, $9F, $FF, $00, $00, $00, $BC, $00, $00, $00, $3E, $00, $00, $00, $1F, $00, $00, $00, $0B, $00, $00, $00, $03, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $04, $00, $00, $00, $0E, $00, $00, $00, $D5, $E1, $E1, $E1, $FF, $F1, $F1, $F1, $FF, $CC, $CC, $CC, $FF, $C0, $C0, $C0, $FF, $0F, $0F, $0F, $D9, $00, $00, $00, $65, $00, $00, $00, $3D, $00, $00, $00, $21, $00, $00, $00, $0E, $00, $00, $00, $05, $00, $00, $00, $02, $00, $00, $00, $01, $00, $00, $00, $01, $00, $00, $00, $01, $00, $00, $00, $02, $00, $00, $00, $06, $00, $00, $00, $0F, $00, $00, $00, $23, $1F, $1F, $1F, $D4, $EC, $EC, $EC, $FF, $E2, $E2, $E2, $FF, $C0, $C0, $C0, $FF, $A8, $A8, $A8, $FF, $00, $00, $00, $D6, $00, $00, $00, $47, $00, $00, $00, $26, $00, $00, $00, $0E, $00, $00, $00, $04, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $02, $00, $00, $00, $07, $00, $00, $00, $14, $00, $00, $00, $DE, $E6, $E6, $E6, $FF, $EF, $EF, $EF, $FF, $CB, $CB, $CB, $FF, $B7, $B7, $B7, $FF, $00, $00, $00, $D2, $00, $00, $00, $58, $00, $00, $00, $37, $00, $00, $00, $1C, $00, $00, $00, $0D, $00, $00, $00, $08, $00, $00, $00, $06, $00, $00, $00, $06, $00, $00, $00, $06, $00, $00, $00, $06, $00, $00, $00, $06, $00, $00, $00, $08, $00, $00, $00, $0E, $00, $00, $00, $1D, $00, $00, $00, $C1, $E9, $E9, $E9, $FF, $E5, $E5, $E5, $FF, $C5, $C5, $C5, $FF, $AE, $AE, $AE, $FF, $00, $00, $00, $F0, $00, $00, $00, $50, $00, $00, $00, $2E, $00, $00, $00, $15, $00, $00, $00, $08, $00, $00, $00, $03, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $02, $00, $00, $00, $06, $00, $00, $00, $0F, $00, $00, $00, $1F, $00, $00, $00, $EC, $DA, $DA, $DA, $FF, $EB, $EB, $EB, $FF, $CA, $CA, $CA, $FF, $AB, $AB, $AB, $FF, $00, $00, $00, $D2, $00, $00, $00, $5A, $00, $00, $00, $3C, $00, $00, $00, $26, $00, $00, $00, $1A, $00, $00, $00, $16, $00, $00, $00, $15, $00, $00, $00, $15, $00, $00, $00, $15, $00, $00, $00, $15, $00, $00, $00, $15, $00, $00, $00, $16, $00, $00, $00, $1A, $00, $00, $00, $26, $00, $00, $00, $C1, $E4, $E4, $E4, $FF, $E3, $E3, $E3, $FF, $CA, $CA, $CA, $FF, $AD, $AC, $AA, $FF, $00, $00, $00, $F9, $00, $00, $00, $5A, $00, $00, $00, $3B, $00, $00, $00, $22, $00, $00, $00, $13, $00, $00, $00, $0B, $00, $00, $00, $05, $00, $00, $00, $02, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $06, $31, $16, $07, $66, $37, $19, $08, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $9C, $52, $17, $FF, $B8, $6E, $25, $FF, $B9, $6B, $26, $FF, $A7, $5A, $1C, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $A5, $5E, $1F, $FF, $BC, $73, $2A, $FF, $B8, $6F, $27, $FF, $97, $55, $1A, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $25, $10, $05, $5F, $00, $00, $00, $1B, $00, $00, $00, $0E, $00, $00, $00, $05, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $03, $00, $00, $00, $0B, $37, $19, $08, $FF, $C9, $9C, $62, $FF, $F4, $E1, $CB, $FF, $F4, $E0, $C9, $FF, $EF, $DB, $BE, $FF, $EC, $D5, $B7, $FF, $EB, $D2, $B4, $FF, $EA, $D2, $B3, $FF, $EB, $CF, $B0, $FF, $E9, $CE, $AE, $FF, $E8, $CC, $AB, $FF, $E7, $CC, $A8, $FF, $E8, $C7, $A1, $FF, $E6, $C6, $A1, $FF, $E6, $C6, $A1, $FF, $E6, $C6, $A1, $FF, $E6, $C6, $A1, $FF, $E6, $C6, $A1, $FF, $E8, $C7, $A1, $FF, $E8, $C7, $A1, $FF, $E6, $C6, $A1, $FF, $E5, $C5, $A0, $FF, $E5, $C5, $A0, $FF, $E3, $C2, $9A, $FF, $E0, $C0, $9B, $FF, $E0, $BD, $93, $FF, $DF, $BA, $92, $FF, $DF, $BA, $8E, $FF, $DD, $B3, $86, $FF, $D5, $AC, $7C, $FF, $A2, $61, $1B, $FF, $37, $19, $08, $FF, $00, $00, $00, $31, $00, $00, $00, $1B, $00, $00, $00, $0B, $00, $00, $00, $03, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $04, $00, $00, $00, $10, $37, $19, $08, $FF, $F5, $E6, $D0, $FF, $EA, $D3, $AF, $FF, $EA, $CF, $AF, $FF, $E3, $C2, $9A, $FF, $DA, $B8, $8B, $FF, $DA, $B6, $87, $FF, $D8, $B0, $81, $FF, $D6, $AE, $7F, $FF, $D3, $AB, $7C, $FF, $D1, $A9, $74, $FF, $CF, $A5, $6E, $FF, $CC, $A3, $6D, $FF, $CA, $9F, $67, $FF, $CA, $9F, $67, $FF, $CA, $9F, $67, $FF, $CA, $9F, $67, $FF, $CA, $9F, $67, $FF, $CA, $9F, $67, $FF, $CA, $9F, $67, $FF, $C8, $9E, $67, $FF, $C6, $9B, $63, $FF, $C2, $98, $61, $FF, $C2, $93, $5B, $FF, $BF, $90, $52, $FF, $BC, $88, $4B, $FF, $BD, $84, $40, $FF, $BA, $7E, $3D, $FF, $B3, $76, $34, $FF, $A7, $6A, $22, $FF, $8D, $53, $14, $FF, $37, $19, $08, $FF, $00, $00, $00, $45, $00, $00, $00, $27, $00, $00, $00, $0F, $00, $00, $00, $04, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $05, $00, $00, $00, $13, $37, $19, $08, $FF, $F5, $E4, $CE, $FF, $E9, $CE, $AE, $FF, $E7, $CD, $A8, $FF, $DF, $BD, $90, $FF, $D8, $B1, $83, $FF, $D5, $AD, $7E, $FF, $D2, $AA, $7B, $FF, $D2, $A6, $77, $FF, $D0, $A7, $71, $FF, $CD, $A3, $6C, $FF, $C8, $9F, $68, $FF, $C5, $9B, $64, $FF, $C4, $99, $61, $FF, $C4, $99, $61, $FF, $C4, $99, $61, $FF, $C5, $9A, $62, $FF, $C5, $9A, $62, $FF, $C5, $9A, $62, $FF, $C5, $9A, $62, $FF, $C4, $99, $61, $FF, $C2, $98, $5D, $FF, $C1, $94, $5A, $FF, $BF, $90, $54, $FF, $BE, $8E, $4F, $FF, $BC, $87, $49, $FF, $BA, $82, $3F, $FF, $BA, $7E, $3D, $FF, $B1, $74, $32, $FF, $A7, $6A, $22, $FF, $8B, $52, $14, $FF, $37, $19, $08, $FF, $00, $00, $00, $52, $00, $00, $00, $2E, $00, $00, $00, $13, $00, $00, $00, $05, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $06, $00, $00, $00, $14, $37, $19, $08, $FF, $F5, $E6, $D0, $FF, $EB, $CF, $B0, $FF, $E9, $CE, $AE, $FF, $E0, $BF, $97, $FF, $DB, $B4, $86, $FF, $D8, $B0, $81, $FF, $D7, $AF, $80, $FF, $D2, $AC, $7B, $FF, $D2, $A6, $77, $FF, $D0, $A6, $6F, $FF, $CC, $A3, $6D, $FF, $CA, $9F, $67, $FF, $C7, $9C, $64, $FF, $C7, $9C, $64, $FF, $C7, $9C, $64, $FF, $C7, $9C, $64, $FF, $C7, $9C, $64, $FF, $C7, $9C, $64, $FF, $C7, $9C, $64, $FF, $C5, $9A, $62, $FF, $C2, $97, $5F, $FF, $C2, $93, $5B, $FF, $BF, $90, $54, $FF, $BE, $8E, $4F, $FF, $BC, $84, $41, $FF, $BA, $82, $3F, $FF, $B5, $7C, $38, $FF, $AF, $73, $2C, $FF, $A3, $66, $1E, $FF, $87, $50, $14, $FF, $37, $19, $08, $FF, $00, $00, $00, $57, $00, $00, $00, $32, $00, $00, $00, $15, $00, $00, $00, $06, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $06, $00, $00, $00, $15, $37, $19, $08, $FF, $F5, $E4, $CE, $FF, $EA, $CF, $AF, $FF, $E8, $CD, $A9, $FF, $DF, $BC, $92, $FF, $D5, $AD, $7E, $FF, $D2, $AB, $7D, $FF, $D2, $AA, $7B, $FF, $D0, $AB, $75, $FF, $D0, $A6, $6F, $FF, $CD, $A3, $6C, $FF, $C8, $9F, $68, $FF, $C7, $9C, $64, $FF, $C5, $9B, $64, $FF, $C5, $9A, $62, $FF, $C5, $9B, $64, $FF, $C7, $9C, $64, $FF, $C8, $9E, $67, $FF, $C8, $9F, $68, $FF, $CA, $9F, $67, $FF, $C7, $9D, $66, $FF, $C5, $9B, $64, $FF, $C4, $99, $61, $FF, $C2, $98, $5D, $FF, $BF, $91, $56, $FF, $BE, $8E, $4F, $FF, $BE, $86, $45, $FF, $BC, $83, $3F, $FF, $B6, $7C, $37, $FF, $AA, $6C, $23, $FF, $8D, $55, $14, $FF, $37, $19, $08, $FF, $00, $00, $00, $58, $00, $00, $00, $33, $00, $00, $00, $15, $00, $00, $00, $06, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $06, $00, $00, $00, $15, $37, $19, $08, $FF, $F5, $E4, $CE, $FF, $E9, $CE, $AE, $FF, $E8, $CE, $A9, $FF, $E1, $BC, $94, $FF, $DA, $B4, $87, $FF, $D8, $B2, $81, $FF, $D7, $AF, $80, $FF, $D2, $AA, $7B, $FF, $D0, $A8, $73, $FF, $CF, $A5, $6E, $FF, $CA, $A1, $6B, $FF, $CA, $9F, $67, $FF, $C7, $9C, $64, $FF, $C8, $9E, $67, $FF, $C8, $9E, $67, $FF, $C8, $9F, $68, $FF, $C8, $9F, $68, $FF, $C8, $9F, $68, $FF, $CA, $9F, $67, $FF, $C5, $9B, $64, $FF, $C5, $9A, $62, $FF, $C2, $97, $5F, $FF, $C1, $94, $5A, $FF, $BE, $8F, $51, $FF, $BC, $87, $49, $FF, $BA, $81, $3D, $FF, $B7, $7E, $3A, $FF, $B3, $79, $34, $FF, $A6, $69, $21, $FF, $8B, $52, $14, $FF, $37, $19, $08, $FF, $00, $00, $00, $59, $00, $00, $00, $33, $00, $00, $00, $16, $00, $00, $00, $06, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $06, $00, $00, $00, $15, $37, $19, $08, $FF, $F4, $E1, $CB, $FF, $E8, $CD, $A9, $FF, $E5, $C9, $A4, $FF, $DD, $BA, $90, $FF, $D5, $AD, $7E, $FF, $D2, $AA, $7B, $FF, $D2, $AA, $7B, $FF, $D2, $A5, $75, $FF, $D1, $A7, $70, $FF, $CC, $A3, $6D, $FF, $CA, $9F, $67, $FF, $C8, $9E, $67, $FF, $C5, $9A, $62, $FF, $C5, $9B, $64, $FF, $C7, $9C, $64, $FF, $C8, $9E, $67, $FF, $C8, $9F, $68, $FF, $CA, $9F, $67, $FF, $CA, $9F, $67, $FF, $C8, $9E, $67, $FF, $C6, $9B, $63, $FF, $C4, $99, $61, $FF, $C2, $97, $5F, $FF, $BF, $91, $56, $FF, $BD, $8C, $4C, $FF, $BC, $88, $45, $FF, $BB, $82, $3E, $FF, $B6, $7C, $37, $FF, $A9, $6B, $22, $FF, $8D, $53, $14, $FF, $37, $19, $08, $FF, $00, $00, $00, $59, $00, $00, $00, $33, $00, $00, $00, $16, $00, $00, $00, $06, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $06, $00, $00, $00, $15, $37, $19, $08, $FF, $F5, $E4, $CE, $FF, $E9, $CD, $AC, $FF, $E7, $CB, $A6, $FF, $DF, $BC, $92, $FF, $D8, $B0, $81, $FF, $D0, $A4, $73, $FF, $CA, $9F, $70, $FF, $C9, $9C, $6B, $FF, $C6, $94, $60, $FF, $BF, $8E, $56, $FF, $B8, $87, $4F, $FF, $B4, $83, $4B, $FF, $AE, $7C, $45, $FF, $AD, $7A, $43, $FF, $AF, $7B, $43, $FF, $B0, $7C, $44, $FF, $B2, $7F, $48, $FF, $B3, $82, $4A, $FF, $B6, $86, $4E, $FF, $B7, $87, $50, $FF, $B6, $87, $4F, $FF, $B7, $88, $50, $FF, $B7, $87, $4E, $FF, $B6, $85, $48, $FF, $B6, $83, $44, $FF, $BC, $85, $43, $FF, $BA, $7E, $3D, $FF, $B3, $78, $32, $FF, $A7, $6A, $22, $FF, $8B, $52, $14, $FF, $37, $19, $08, $FF, $00, $00, $00, $59, $00, $00, $00, $33, $00, $00, $00, $16, $00, $00, $00, $06, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $06, $00, $00, $00, $15, $37, $19, $08, $FF, $F4, $E1, $CB, $FF, $E8, $CC, $A7, $FF, $E5, $CA, $A4, $FF, $DC, $B9, $8F, $FF, $D6, $AE, $7F, $FF, $D7, $B2, $84, $FF, $D7, $B2, $85, $FF, $D8, $AF, $80, $FF, $D8, $B2, $7C, $FF, $D6, $B2, $7D, $FF, $D7, $B4, $7D, $FF, $D8, $B5, $7C, $FF, $DA, $B7, $7E, $FF, $DB, $B9, $80, $FF, $DB, $B9, $80, $FF, $DB, $B8, $80, $FF, $D9, $B6, $7E, $FF, $D7, $B4, $7B, $FF, $D5, $B0, $78, $FF, $D0, $AA, $73, $FF, $CC, $A1, $64, $FF, $C8, $9C, $5E, $FF, $C4, $96, $56, $FF, $C2, $8F, $4F, $FF, $BF, $88, $43, $FF, $B5, $7D, $3A, $FF, $B5, $78, $36, $FF, $AD, $72, $2C, $FF, $A4, $66, $1D, $FF, $87, $50, $14, $FF, $37, $19, $08, $FF, $00, $00, $00, $59, $00, $00, $00, $33, $00, $00, $00, $16, $00, $00, $00, $06, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $06, $00, $00, $00, $15, $37, $19, $08, $FF, $F5, $E4, $CE, $FF, $E9, $CD, $AC, $FF, $E7, $CB, $A6, $FF, $DD, $BA, $90, $FF, $D5, $AD, $7E, $FF, $CE, $A5, $72, $FF, $CC, $A0, $6A, $FF, $C9, $9C, $64, $FF, $C1, $95, $5E, $FF, $BC, $8F, $57, $FF, $B6, $85, $4E, $FF, $AE, $7E, $44, $FF, $A9, $75, $3D, $FF, $AA, $72, $3C, $FF, $A9, $72, $3B, $FF, $AA, $73, $3C, $FF, $AA, $79, $3F, $FF, $AD, $7C, $43, $FF, $B1, $82, $47, $FF, $B5, $81, $4A, $FF, $B7, $85, $4A, $FF, $B7, $86, $49, $FF, $B8, $86, $48, $FF, $B7, $81, $45, $FF, $B8, $7E, $3B, $FF, $B7, $7F, $3C, $FF, $B6, $7C, $37, $FF, $B0, $75, $2F, $FF, $A4, $68, $21, $FF, $89, $51, $14, $FF, $37, $19, $08, $FF, $00, $00, $00, $59, $00, $00, $00, $33, $00, $00, $00, $16, $00, $00, $00, $06, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $06, $00, $00, $00, $15, $37, $19, $08, $FF, $F5, $E6, $D0, $FF, $EA, $CF, $AF, $FF, $E9, $CE, $AA, $FF, $E1, $BC, $94, $FF, $DB, $B4, $86, $FF, $DC, $B7, $8A, $FF, $DD, $B8, $8B, $FF, $DA, $B5, $87, $FF, $D8, $B4, $84, $FF, $D8, $B5, $81, $FF, $DB, $B6, $81, $FF, $DB, $B9, $85, $FF, $DD, $BA, $83, $FF, $DF, $BE, $86, $FF, $DE, $BE, $88, $FF, $DD, $BD, $87, $FF, $DC, $BB, $85, $FF, $D9, $B6, $80, $FF, $D6, $B2, $7B, $FF, $D1, $AA, $72, $FF, $CA, $A3, $67, $FF, $C7, $9C, $61, $FF, $C3, $96, $59, $FF, $C0, $90, $4F, $FF, $BE, $88, $47, $FF, $B7, $7F, $3C, $FF, $B6, $7A, $39, $FF, $B1, $76, $30, $FF, $A4, $68, $21, $FF, $8B, $52, $14, $FF, $37, $19, $08, $FF, $00, $00, $00, $59, $00, $00, $00, $33, $00, $00, $00, $16, $00, $00, $00, $06, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $06, $00, $00, $00, $15, $37, $19, $08, $FF, $F4, $E1, $CB, $FF, $E9, $CE, $AA, $FF, $E5, $C9, $A4, $FF, $DA, $B8, $8B, $FF, $D2, $AC, $77, $FF, $CF, $A0, $70, $FF, $CD, $A2, $6C, $FF, $C8, $9D, $66, $FF, $C3, $97, $61, $FF, $BE, $91, $5A, $FF, $B6, $87, $4F, $FF, $B0, $80, $46, $FF, $AD, $77, $40, $FF, $A8, $77, $3D, $FF, $AA, $78, $3E, $FF, $AA, $79, $42, $FF, $AC, $7B, $45, $FF, $B2, $80, $49, $FF, $B5, $85, $4D, $FF, $B6, $89, $52, $FF, $B9, $88, $50, $FF, $B8, $88, $4E, $FF, $BA, $8A, $4E, $FF, $B9, $87, $48, $FF, $B9, $84, $42, $FF, $BA, $82, $3F, $FF, $B7, $7D, $38, $FF, $B3, $78, $32, $FF, $AD, $6F, $26, $FF, $89, $51, $14, $FF, $37, $19, $08, $FF, $00, $00, $00, $59, $00, $00, $00, $33, $00, $00, $00, $16, $00, $00, $00, $06, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $06, $00, $00, $00, $15, $37, $19, $08, $FF, $F5, $E4, $CE, $FF, $E9, $CE, $AA, $FF, $E7, $CB, $A6, $FF, $DC, $B9, $8F, $FF, $D6, $AE, $7F, $FF, $D5, $AF, $81, $FF, $D5, $AF, $80, $FF, $D6, $AB, $7C, $FF, $D5, $AE, $78, $FF, $D2, $AD, $77, $FF, $D4, $AF, $78, $FF, $D5, $B1, $7A, $FF, $D9, $B5, $7D, $FF, $DA, $B8, $7F, $FF, $DB, $B8, $80, $FF, $DA, $B7, $7F, $FF, $D8, $B5, $7C, $FF, $D5, $B1, $78, $FF, $D2, $AC, $74, $FF, $CD, $A6, $6F, $FF, $C9, $9C, $60, $FF, $C4, $98, $5C, $FF, $C2, $93, $53, $FF, $BF, $8B, $4C, $FF, $BE, $86, $41, $FF, $B7, $7E, $3A, $FF, $B5, $79, $38, $FF, $AD, $76, $2E, $FF, $AF, $72, $2A, $FF, $87, $50, $14, $FF, $37, $19, $08, $FF, $00, $00, $00, $59, $00, $00, $00, $33, $00, $00, $00, $16, $00, $00, $00, $06, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $06, $00, $00, $00, $15, $37, $19, $08, $FF, $F5, $E6, $D0, $FF, $EA, $CF, $AF, $FF, $E9, $CE, $AA, $FF, $E1, $BD, $96, $FF, $DB, $B4, $86, $FF, $D5, $AB, $7B, $FF, $D2, $A8, $78, $FF, $CD, $A5, $73, $FF, $CA, $9F, $69, $FF, $C4, $96, $5E, $FF, $BD, $8E, $57, $FF, $B7, $87, $50, $FF, $B0, $7E, $46, $FF, $AE, $7B, $43, $FF, $AC, $79, $41, $FF, $AD, $7A, $42, $FF, $AF, $7C, $45, $FF, $B1, $80, $48, $FF, $B5, $85, $4D, $FF, $B6, $88, $4D, $FF, $B8, $86, $4B, $FF, $B8, $87, $4C, $FF, $B8, $86, $48, $FF, $B8, $84, $43, $FF, $B9, $7F, $3C, $FF, $B7, $7E, $3A, $FF, $B5, $79, $38, $FF, $AF, $73, $2C, $FF, $BD, $82, $42, $FF, $87, $50, $14, $FF, $37, $19, $08, $FF, $00, $00, $00, $59, $00, $00, $00, $33, $00, $00, $00, $16, $00, $00, $00, $06, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $06, $00, $00, $00, $15, $37, $19, $08, $FF, $F4, $E1, $CB, $FF, $E7, $CC, $A8, $FF, $E6, $C6, $A1, $FF, $DB, $B8, $8E, $FF, $D3, $AB, $7C, $FF, $D5, $B0, $7E, $FF, $D4, $AC, $7C, $FF, $D5, $AD, $77, $FF, $D2, $AB, $75, $FF, $D3, $AC, $74, $FF, $D2, $AC, $74, $FF, $D5, $B0, $78, $FF, $D7, $B3, $78, $FF, $D9, $B7, $7B, $FF, $D9, $B7, $7B, $FF, $D9, $B7, $7F, $FF, $D9, $B6, $7D, $FF, $D6, $B2, $7A, $FF, $D3, $AE, $75, $FF, $CE, $A8, $71, $FF, $CB, $9F, $66, $FF, $C8, $9B, $5E, $FF, $C4, $96, $58, $FF, $C0, $8D, $4F, $FF, $BE, $88, $47, $FF, $BA, $7E, $3D, $FF, $B4, $7B, $37, $FF, $B1, $76, $30, $FF, $C0, $8D, $51, $FF, $89, $4E, $14, $FF, $37, $19, $08, $FF, $00, $00, $00, $59, $00, $00, $00, $33, $00, $00, $00, $16, $00, $00, $00, $06, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $06, $00, $00, $00, $15, $37, $19, $08, $FF, $F4, $E0, $C9, $FF, $E7, $CB, $A6, $FF, $E6, $C6, $A1, $FF, $DC, $B3, $87, $FF, $D1, $AB, $76, $FF, $D1, $A5, $72, $FF, $D0, $A6, $6F, $FF, $CD, $A3, $6C, $FF, $C8, $9F, $68, $FF, $C4, $99, $61, $FF, $C2, $97, $5F, $FF, $C0, $92, $57, $FF, $BF, $91, $56, $FF, $BF, $91, $56, $FF, $C0, $92, $57, $FF, $C2, $93, $5B, $FF, $C1, $97, $5C, $FF, $C2, $98, $5D, $FF, $C2, $98, $61, $FF, $C2, $93, $5B, $FF, $BF, $91, $56, $FF, $BF, $90, $54, $FF, $BD, $8D, $4E, $FF, $BC, $89, $47, $FF, $B8, $80, $3D, $FF, $B5, $7C, $38, $FF, $B5, $78, $36, $FF, $AF, $74, $2E, $FF, $C0, $8D, $51, $FF, $86, $4C, $13, $FF, $37, $19, $08, $FF, $00, $00, $00, $59, $00, $00, $00, $33, $00, $00, $00, $16, $00, $00, $00, $06, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $06, $00, $00, $00, $15, $37, $19, $08, $FF, $F4, $E1, $CB, $FF, $E6, $CA, $A5, $FF, $E6, $C6, $A1, $FF, $DB, $B4, $86, $FF, $D1, $AB, $76, $FF, $D0, $A7, $71, $FF, $CF, $A5, $6E, $FF, $CA, $A1, $6B, $FF, $C8, $9E, $67, $FF, $C4, $99, $61, $FF, $C2, $93, $5B, $FF, $BF, $91, $56, $FF, $BE, $90, $55, $FF, $BE, $8F, $51, $FF, $BD, $90, $56, $FF, $BD, $90, $56, $FF, $BD, $90, $56, $FF, $BD, $90, $56, $FF, $BD, $90, $56, $FF, $BD, $8E, $50, $FF, $BD, $8D, $4E, $FF, $BC, $88, $4B, $FF, $BB, $84, $44, $FF, $BA, $82, $3F, $FF, $B7, $7E, $3A, $FF, $B4, $7B, $37, $FF, $B1, $77, $32, $FF, $AD, $71, $2A, $FF, $CA, $9D, $63, $FF, $87, $4D, $14, $FF, $37, $19, $08, $FF, $00, $00, $00, $59, $00, $00, $00, $33, $00, $00, $00, $16, $00, $00, $00, $06, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $06, $00, $00, $00, $15, $37, $19, $08, $FF, $F4, $E1, $CB, $FF, $E8, $CC, $A7, $FF, $E4, $C8, $A3, $FF, $DA, $B8, $8D, $FF, $D3, $AB, $7C, $FF, $D2, $A6, $77, $FF, $D0, $AB, $75, $FF, $D0, $A6, $6F, $FF, $CB, $A2, $6C, $FF, $C8, $9F, $68, $FF, $C6, $9B, $63, $FF, $C4, $99, $61, $FF, $C2, $97, $5F, $FF, $C2, $98, $5D, $FF, $C2, $98, $61, $FF, $C2, $98, $61, $FF, $C4, $99, $61, $FF, $C4, $99, $61, $FF, $C4, $99, $61, $FF, $C2, $98, $61, $FF, $C1, $92, $56, $FF, $BF, $91, $56, $FF, $BE, $8F, $51, $FF, $BC, $88, $4B, $FF, $BC, $84, $41, $FF, $B5, $7D, $3A, $FF, $B5, $7C, $38, $FF, $B1, $76, $30, $FF, $CC, $9F, $69, $FF, $89, $51, $14, $FF, $37, $19, $08, $FF, $00, $00, $00, $59, $00, $00, $00, $33, $00, $00, $00, $16, $00, $00, $00, $06, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $06, $00, $00, $00, $15, $37, $19, $08, $FF, $F5, $E4, $CE, $FF, $E8, $CD, $A9, $FF, $E5, $C9, $A4, $FF, $DC, $B9, $8F, $FF, $D5, $AD, $7E, $FF, $D2, $AA, $7B, $FF, $D2, $AB, $79, $FF, $D1, $A7, $70, $FF, $CF, $A5, $6E, $FF, $CA, $A1, $6B, $FF, $C8, $9F, $68, $FF, $C5, $9A, $62, $FF, $C5, $9A, $62, $FF, $C5, $9A, $62, $FF, $C5, $9A, $62, $FF, $C5, $9A, $62, $FF, $C5, $9A, $62, $FF, $C5, $9A, $62, $FF, $C5, $9A, $62, $FF, $C4, $99, $61, $FF, $C2, $93, $5B, $FF, $BF, $91, $56, $FF, $BF, $90, $52, $FF, $BC, $87, $49, $FF, $BC, $83, $3F, $FF, $B7, $7E, $3A, $FF, $B8, $7F, $3B, $FF, $BC, $82, $3D, $FF, $CE, $A1, $6B, $FF, $89, $4E, $14, $FF, $37, $19, $08, $FF, $00, $00, $00, $59, $00, $00, $00, $33, $00, $00, $00, $16, $00, $00, $00, $06, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $06, $00, $00, $00, $15, $37, $19, $08, $FF, $F4, $E1, $CB, $FF, $E8, $CB, $A5, $FF, $E5, $C9, $A4, $FF, $DA, $B8, $8B, $FF, $D2, $AA, $7B, $FF, $D2, $A5, $75, $FF, $D1, $A7, $70, $FF, $CD, $A4, $6E, $FF, $CA, $9F, $67, $FF, $C7, $9C, $64, $FF, $C4, $99, $61, $FF, $C1, $97, $5C, $FF, $C0, $93, $59, $FF, $C0, $92, $57, $FF, $C0, $92, $57, $FF, $C0, $92, $57, $FF, $C0, $92, $57, $FF, $C0, $92, $57, $FF, $C0, $92, $57, $FF, $BF, $91, $56, $FF, $BF, $90, $52, $FF, $BE, $8E, $4F, $FF, $BC, $89, $47, $FF, $BB, $84, $44, $FF, $B9, $81, $3E, $FF, $B5, $7C, $38, $FF, $B8, $7F, $3B, $FF, $BC, $85, $45, $FF, $CD, $A0, $6A, $FF, $87, $50, $14, $FF, $37, $19, $08, $FF, $00, $00, $00, $59, $00, $00, $00, $33, $00, $00, $00, $16, $00, $00, $00, $06, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $06, $00, $00, $00, $15, $37, $19, $08, $FF, $F4, $E0, $C9, $FF, $E6, $C9, $A3, $FF, $E5, $C5, $A0, $FF, $D9, $B8, $88, $FF, $D3, $A6, $76, $FF, $D0, $A7, $71, $FF, $CF, $A5, $6E, $FF, $CB, $A2, $6C, $FF, $CA, $9F, $67, $FF, $C6, $9B, $63, $FF, $C5, $9A, $62, $FF, $C4, $99, $61, $FF, $C2, $98, $5D, $FF, $C2, $98, $61, $FF, $C2, $98, $61, $FF, $C4, $99, $61, $FF, $C4, $99, $61, $FF, $C5, $9A, $62, $FF, $C5, $9A, $62, $FF, $C4, $99, $61, $FF, $C1, $94, $5A, $FF, $C0, $93, $59, $FF, $BF, $90, $54, $FF, $BC, $8C, $4D, $FF, $BC, $89, $47, $FF, $BE, $8A, $4D, $FF, $C4, $99, $61, $FF, $BE, $8B, $4F, $FF, $C7, $9D, $60, $FF, $89, $4E, $14, $FF, $37, $19, $08, $FF, $00, $00, $00, $58, $00, $00, $00, $33, $00, $00, $00, $15, $00, $00, $00, $06, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $06, $00, $00, $00, $14, $37, $19, $08, $FF, $F4, $E0, $C9, $FF, $E6, $C8, $A1, $FF, $E1, $C3, $9C, $FF, $DA, $B3, $85, $FF, $D1, $A5, $72, $FF, $CF, $A5, $6E, $FF, $CD, $A3, $6C, $FF, $C8, $9F, $68, $FF, $C5, $9B, $64, $FF, $C2, $99, $5F, $FF, $C2, $93, $5B, $FF, $C0, $92, $57, $FF, $BF, $91, $56, $FF, $BF, $91, $56, $FF, $C0, $92, $57, $FF, $C2, $93, $5B, $FF, $C1, $97, $5C, $FF, $C5, $9A, $62, $FF, $C8, $9E, $67, $FF, $CD, $A3, $6C, $FF, $CD, $A3, $6C, $FF, $CE, $A1, $6B, $FF, $CE, $A1, $6B, $FF, $D2, $AB, $79, $FF, $D2, $AA, $77, $FF, $D1, $A5, $72, $FF, $D4, $A7, $73, $FF, $BF, $8A, $4C, $FF, $B1, $73, $30, $FF, $87, $4D, $14, $FF, $37, $19, $08, $FF, $00, $00, $00, $55, $00, $00, $00, $30, $00, $00, $00, $14, $00, $00, $00, $06, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $05, $00, $00, $00, $12, $33, $17, $07, $C1, $B2, $75, $2D, $FF, $C7, $9D, $60, $FF, $C4, $9A, $5D, $FF, $BD, $8C, $4C, $FF, $BA, $7E, $3D, $FF, $B8, $7E, $39, $FF, $B6, $7A, $39, $FF, $B5, $78, $36, $FF, $B3, $75, $32, $FF, $AF, $77, $2E, $FF, $AD, $72, $2C, $FF, $AC, $74, $2B, $FF, $AA, $72, $29, $FF, $AA, $72, $29, $FF, $AA, $72, $29, $FF, $AE, $71, $29, $FF, $AE, $71, $29, $FF, $AE, $71, $29, $FF, $AE, $71, $29, $FF, $AA, $72, $29, $FF, $A9, $6D, $26, $FF, $AA, $6C, $23, $FF, $A5, $69, $22, $FF, $A3, $67, $20, $FF, $A2, $65, $1D, $FF, $9E, $61, $19, $FF, $9B, $5F, $18, $FF, $99, $5D, $16, $FF, $92, $56, $15, $FF, $58, $30, $0D, $FF, $26, $11, $05, $B4, $00, $00, $00, $4C, $00, $00, $00, $2A, $00, $00, $00, $11, $00, $00, $00, $04, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $04, $00, $00, $00, $0E, $2B, $13, $06, $71, $31, $16, $07, $C7, $37, $19, $08, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $37, $19, $08, $FF, $26, $11, $05, $B4, $0C, $05, $01, $66, $00, $00, $00, $3C, $00, $00, $00, $20, $00, $00, $00, $0C, $00, $00, $00, $03, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $02, $00, $00, $00, $09, $00, $00, $00, $18, $00, $00, $00, $2D, $00, $00, $00, $41, $00, $00, $00, $4F, $00, $00, $00, $56, $00, $00, $00, $58, $00, $00, $00, $58, $00, $00, $00, $58, $00, $00, $00, $59, $00, $00, $00, $59, $00, $00, $00, $59, $00, $00, $00, $59, $00, $00, $00, $59, $00, $00, $00, $59, $00, $00, $00, $59, $00, $00, $00, $59, $00, $00, $00, $59, $00, $00, $00, $59, $00, $00, $00, $59, $00, $00, $00, $59, $00, $00, $00, $59, $00, $00, $00, $59, $00, $00, $00, $59, $00, $00, $00, $59, $00, $00, $00, $59, $00, $00, $00, $59, $00, $00, $00, $59, $00, $00, $00, $58, $00, $00, $00, $58, $00, $00, $00, $54, $00, $00, $00, $4C, $00, $00, $00, $3C, $00, $00, $00, $27, $00, $00, $00, $14, $00, $00, $00, $07, $00, $00, $00, $02, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $04, $00, $00, $00, $0D, $00, $00, $00, $18, $00, $00, $00, $24, $00, $00, $00, $2C, $00, $00, $00, $31, $00, $00, $00, $33, $00, $00, $00, $33, $00, $00, $00, $33, $00, $00, $00, $33, $00, $00, $00, $33, $00, $00, $00, $33, $00, $00, $00, $33, $00, $00, $00, $33, $00, $00, $00, $33, $00, $00, $00, $33, $00, $00, $00, $33, $00, $00, $00, $33, $00, $00, $00, $33, $00, $00, $00, $33, $00, $00, $00, $33, $00, $00, $00, $33, $00, $00, $00, $33, $00, $00, $00, $33, $00, $00, $00, $33, $00, $00, $00, $33, $00, $00, $00, $33, $00, $00, $00, $33, $00, $00, $00, $33, $00, $00, $00, $32, $00, $00, $00, $30, $00, $00, $00, $2A, $00, $00, $00, $20, $00, $00, $00, $14, $00, $00, $00, $09, $00, $00, $00, $03, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $02, $00, $00, $00, $04, $00, $00, $00, $09, $00, $00, $00, $0E, $00, $00, $00, $12, $00, $00, $00, $14, $00, $00, $00, $15, $00, $00, $00, $15, $00, $00, $00, $15, $00, $00, $00, $16, $00, $00, $00, $16, $00, $00, $00, $16, $00, $00, $00, $16, $00, $00, $00, $16, $00, $00, $00, $16, $00, $00, $00, $16, $00, $00, $00, $16, $00, $00, $00, $16, $00, $00, $00, $16, $00, $00, $00, $16, $00, $00, $00, $16, $00, $00, $00, $16, $00, $00, $00, $16, $00, $00, $00, $16, $00, $00, $00, $16, $00, $00, $00, $16, $00, $00, $00, $16, $00, $00, $00, $16, $00, $00, $00, $15, $00, $00, $00, $15, $00, $00, $00, $14, $00, $00, $00, $11, $00, $00, $00, $0C, $00, $00, $00, $07, $00, $00, $00, $03, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $02, $00, $00, $00, $04, $00, $00, $00, $05, $00, $00, $00, $06, $00, $00, $00, $06, $00, $00, $00, $06, $00, $00, $00, $06, $00, $00, $00, $06, $00, $00, $00, $06, $00, $00, $00, $06, $00, $00, $00, $06, $00, $00, $00, $06, $00, $00, $00, $06, $00, $00, $00, $06, $00, $00, $00, $06, $00, $00, $00, $06, $00, $00, $00, $06, $00, $00, $00, $06, $00, $00, $00, $06, $00, $00, $00, $06, $00, $00, $00, $06, $00, $00, $00, $06, $00, $00, $00, $06, $00, $00, $00, $06, $00, $00, $00, $06, $00, $00, $00, $06, $00, $00, $00, $06, $00, $00, $00, $06, $00, $00, $00, $06, $00, $00, $00, $04, $00, $00, $00, $03, $00, $00, $00, $02, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $01, $00, $00, $00, $01, $00, $00, $00, $01, $00, $00, $00, $01, $00, $00, $00, $01, $00, $00, $00, $01, $00, $00, $00, $01, $00, $00, $00, $01, $00, $00, $00, $01, $00, $00, $00, $01, $00, $00, $00, $01, $00, $00, $00, $01, $00, $00, $00, $01, $00, $00, $00, $01, $00, $00, $00, $01, $00, $00, $00, $01, $00, $00, $00, $01, $00, $00, $00, $01, $00, $00, $00, $01, $00, $00, $00, $01, $00, $00, $00, $01, $00, $00, $00, $01, $00, $00, $00, $01, $00, $00, $00, $01, $00, $00, $00, $01, $00, $00, $00, $01, $00, $00, $00, $01, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00); tuxcmd-0.6.70+dfsg/pixmaps/tuxcmd_64_png.inc0000644000175000017500000006400011300022643017671 0ustar salvisalviconst tuxcmd_64_png: array[1..4998] of byte = ( $47, $64, $6B, $50, $00, $00, $13, $85, $02, $01, $00, $02, $00, $00, $01, $00, $00, $00, $00, $40, $00, $00, $00, $40, $9F, $FF, $FF, $FF, $00, $82, $72, $9F, $CF, $13, $B7, $FF, $FF, $FF, $00, $07, $72, $9F, $CF, $1B, $7B, $A5, $D2, $6F, $84, $AB, $D5, $A7, $84, $AB, $D5, $C4, $81, $A9, $D4, $DB, $83, $AB, $D5, $E3, $86, $AD, $D6, $E9, $82, $92, $B5, $DA, $E9, $07, $86, $AD, $D6, $E9, $83, $AB, $D5, $E3, $81, $A9, $D4, $DB, $84, $AB, $D5, $C4, $84, $AB, $D5, $A7, $7B, $A5, $D2, $6F, $72, $9F, $CF, $1B, $AD, $FF, $FF, $FF, $00, $08, $72, $9F, $CF, $2B, $7F, $A8, $D3, $87, $82, $AA, $D4, $DA, $94, $B6, $DA, $E9, $C7, $D9, $EC, $FB, $E1, $EB, $F5, $FF, $F0, $F4, $FA, $FF, $FD, $FD, $FE, $FF, $86, $FF, $FF, $FF, $FF, $08, $FD, $FD, $FE, $FF, $F0, $F4, $FA, $FF, $E1, $EB, $F5, $FF, $C7, $D9, $EC, $FB, $94, $B6, $DA, $E9, $82, $AA, $D4, $DA, $7F, $A8, $D3, $87, $72, $9F, $CF, $2B, $A7, $FF, $FF, $FF, $00, $06, $72, $9F, $CF, $09, $7E, $A7, $D3, $82, $81, $A9, $D4, $E2, $9E, $BD, $DE, $EA, $D1, $E0, $EF, $FE, $F9, $FB, $FD, $FF, $90, $FF, $FF, $FF, $FF, $06, $F9, $FB, $FD, $FF, $D1, $E0, $EF, $FE, $9E, $BD, $DE, $EA, $81, $A9, $D4, $E2, $7E, $A7, $D3, $82, $72, $9F, $CF, $09, $A2, $FF, $FF, $FF, $00, $05, $72, $9F, $CF, $02, $7B, $A5, $D2, $68, $81, $A9, $D4, $E5, $C2, $D6, $EA, $F7, $FC, $FD, $FE, $FF, $96, $FF, $FF, $FF, $FF, $05, $FC, $FD, $FE, $FF, $C2, $D6, $EA, $F7, $81, $A9, $D4, $E5, $7B, $A5, $D2, $68, $72, $9F, $CF, $02, $9F, $FF, $FF, $FF, $00, $04, $77, $A3, $D1, $4D, $81, $A9, $D4, $DD, $B5, $CD, $E6, $F3, $F8, $FA, $FD, $FF, $86, $FF, $FF, $FF, $FF, $06, $F2, $F6, $FB, $FF, $C9, $DA, $EC, $FF, $B6, $CC, $E5, $FF, $A6, $C2, $DF, $FF, $97, $B7, $DA, $FF, $88, $AD, $D5, $FF, $82, $79, $A2, $CF, $FF, $06, $88, $AD, $D5, $FF, $97, $B7, $DA, $FF, $A6, $C2, $DF, $FF, $B6, $CC, $E5, $FF, $C9, $DA, $EC, $FF, $F2, $F6, $FB, $FF, $86, $FF, $FF, $FF, $FF, $04, $F8, $FA, $FD, $FF, $B5, $CD, $E6, $F3, $81, $A9, $D4, $DD, $77, $A3, $D1, $4D, $9C, $FF, $FF, $FF, $00, $04, $72, $9F, $CF, $0F, $81, $A9, $D4, $C3, $A8, $C4, $E2, $EF, $F3, $F7, $FB, $FF, $85, $FF, $FF, $FF, $FF, $04, $E9, $EF, $F7, $FF, $BB, $D0, $E6, $FF, $8D, $B0, $D5, $FF, $6D, $9A, $C9, $FF, $8C, $6C, $99, $C9, $FF, $04, $6D, $9A, $C9, $FF, $8D, $B0, $D5, $FF, $BB, $D0, $E6, $FF, $E9, $EF, $F7, $FF, $85, $FF, $FF, $FF, $FF, $04, $F3, $F7, $FB, $FF, $A8, $C4, $E2, $EF, $81, $A9, $D4, $C3, $72, $9F, $CF, $0F, $99, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $24, $81, $A9, $D4, $DD, $D8, $E5, $F2, $FC, $85, $FF, $FF, $FF, $FF, $02, $D3, $E0, $EF, $FF, $85, $AA, $D2, $FF, $94, $6A, $97, $C8, $FF, $02, $85, $AA, $D2, $FF, $D3, $E0, $EF, $FF, $85, $FF, $FF, $FF, $FF, $03, $D8, $E5, $F2, $FC, $81, $A9, $D4, $DD, $72, $9F, $CF, $24, $97, $FF, $FF, $FF, $00, $03, $77, $A2, $D1, $45, $86, $AD, $D6, $E6, $EB, $F1, $F8, $FF, $84, $FF, $FF, $FF, $FF, $02, $E0, $EA, $F4, $FF, $8F, $B0, $D5, $FF, $98, $69, $96, $C7, $FF, $02, $8F, $B0, $D5, $FF, $E0, $EA, $F4, $FF, $84, $FF, $FF, $FF, $FF, $03, $EB, $F1, $F8, $FF, $86, $AD, $D6, $E6, $77, $A2, $D1, $45, $95, $FF, $FF, $FF, $00, $03, $7D, $A6, $D3, $74, $94, $B6, $DA, $EA, $F7, $F9, $FC, $FF, $83, $FF, $FF, $FF, $FF, $03, $F1, $F5, $FA, $FF, $9C, $B9, $DA, $FF, $68, $94, $C6, $FF, $9A, $67, $94, $C6, $FF, $03, $68, $94, $C6, $FF, $9C, $B9, $DA, $FF, $F1, $F5, $FA, $FF, $83, $FF, $FF, $FF, $FF, $03, $F7, $F9, $FC, $FF, $94, $B6, $DA, $EA, $7D, $A6, $D3, $74, $93, $FF, $FF, $FF, $00, $03, $7D, $A6, $D3, $74, $A5, $C1, $E0, $ED, $FD, $FE, $FE, $FF, $83, $FF, $FF, $FF, $FF, $02, $E0, $E9, $F3, $FF, $77, $9F, $CA, $FF, $9E, $66, $93, $C4, $FF, $02, $77, $9F, $CA, $FF, $E0, $E9, $F3, $FF, $83, $FF, $FF, $FF, $FF, $03, $FD, $FE, $FE, $FF, $A5, $C1, $E0, $ED, $7D, $A6, $D3, $74, $91, $FF, $FF, $FF, $00, $03, $77, $A2, $D1, $45, $94, $B6, $DA, $EA, $FD, $FE, $FE, $FF, $83, $FF, $FF, $FF, $FF, $02, $CA, $D9, $EA, $FF, $6A, $95, $C5, $FF, $A0, $65, $91, $C3, $FF, $02, $6A, $95, $C5, $FF, $CA, $D9, $EA, $FF, $83, $FF, $FF, $FF, $FF, $03, $FD, $FE, $FE, $FF, $94, $B6, $DA, $EA, $77, $A2, $D1, $45, $8F, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $24, $86, $AD, $D6, $E6, $F7, $F9, $FC, $FF, $82, $FF, $FF, $FF, $FF, $02, $FE, $FF, $FF, $FF, $AD, $C5, $DF, $FF, $A4, $63, $90, $C2, $FF, $02, $AD, $C5, $DF, $FF, $FE, $FF, $FF, $FF, $82, $FF, $FF, $FF, $FF, $03, $F7, $F9, $FC, $FF, $86, $AD, $D6, $E6, $72, $9F, $CF, $24, $8D, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $0F, $81, $A9, $D4, $DD, $EB, $F1, $F8, $FF, $83, $FF, $FF, $FF, $FF, $01, $AC, $C4, $DE, $FF, $A6, $62, $8E, $C1, $FF, $01, $AC, $C4, $DE, $FF, $83, $FF, $FF, $FF, $FF, $03, $EB, $F1, $F8, $FF, $81, $A9, $D4, $DD, $72, $9F, $CF, $0F, $8C, $FF, $FF, $FF, $00, $02, $81, $A9, $D4, $C3, $D8, $E5, $F2, $FC, $83, $FF, $FF, $FF, $FF, $01, $C8, $D7, $E9, $FF, $A8, $60, $8C, $BF, $FF, $01, $C8, $D7, $E9, $FF, $83, $FF, $FF, $FF, $FF, $02, $D8, $E5, $F2, $FC, $81, $A9, $D4, $C3, $8B, $FF, $FF, $FF, $00, $02, $77, $A3, $D1, $4D, $A8, $C4, $E2, $EF, $83, $FF, $FF, $FF, $FF, $02, $DF, $E8, $F2, $FF, $65, $8F, $C0, $FF, $96, $5F, $8B, $BE, $FF, $02, $5F, $8A, $BC, $FF, $5D, $87, $B8, $FF, $90, $5F, $8B, $BE, $FF, $02, $65, $8F, $C0, $FF, $DF, $E8, $F2, $FF, $83, $FF, $FF, $FF, $FF, $02, $A8, $C4, $E2, $EF, $77, $A3, $D1, $4D, $89, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $02, $81, $A9, $D4, $DD, $F3, $F7, $FB, $FF, $82, $FF, $FF, $FF, $FF, $02, $F0, $F4, $F9, $FF, $6F, $96, $C4, $FF, $90, $5D, $89, $BD, $FF, $0D, $5C, $87, $BA, $FF, $5F, $7D, $9F, $FF, $63, $77, $8D, $FF, $60, $70, $7F, $FF, $5A, $65, $6F, $FF, $4F, $58, $5D, $FF, $40, $46, $49, $FF, $30, $36, $38, $FF, $2F, $35, $37, $FF, $44, $4B, $4F, $FF, $57, $62, $6C, $FF, $5E, $71, $85, $FF, $59, $7A, $A0, $FF, $8D, $5D, $89, $BD, $FF, $02, $6F, $96, $C4, $FF, $F0, $F4, $F9, $FF, $82, $FF, $FF, $FF, $FF, $03, $F3, $F7, $FB, $FF, $81, $A9, $D4, $DD, $72, $9F, $CF, $02, $88, $FF, $FF, $FF, $00, $02, $7B, $A5, $D2, $68, $B5, $CD, $E6, $F3, $83, $FF, $FF, $FF, $FF, $01, $95, $B2, $D3, $FF, $8F, $5C, $88, $BB, $FF, $03, $5E, $7C, $9E, $FF, $5B, $67, $72, $FF, $3A, $40, $42, $FF, $8C, $2E, $34, $36, $FF, $03, $48, $50, $56, $FF, $5A, $72, $8E, $FF, $5B, $85, $B6, $FF, $8B, $5C, $88, $BB, $FF, $01, $95, $B2, $D3, $FF, $83, $FF, $FF, $FF, $FF, $02, $B5, $CD, $E6, $F3, $7B, $A5, $D2, $68, $87, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $09, $81, $A9, $D4, $E5, $F8, $FA, $FD, $FF, $82, $FF, $FF, $FF, $FF, $02, $DD, $E6, $F1, $FF, $5B, $86, $BA, $FF, $8D, $5A, $86, $BA, $FF, $02, $5A, $83, $B3, $FF, $5B, $66, $71, $FF, $91, $2E, $34, $36, $FF, $03, $3A, $40, $43, $FF, $57, $69, $7C, $FF, $57, $82, $B4, $FF, $89, $5A, $86, $BA, $FF, $02, $5B, $86, $BA, $FF, $DD, $E6, $F1, $FF, $82, $FF, $FF, $FF, $FF, $03, $F8, $FA, $FD, $FF, $81, $A9, $D4, $E5, $72, $9F, $CF, $09, $86, $FF, $FF, $FF, $00, $02, $7E, $A7, $D3, $82, $C2, $D6, $EA, $F7, $83, $FF, $FF, $FF, $FF, $01, $83, $A4, $CB, $FF, $84, $59, $85, $B9, $FF, $0B, $58, $83, $B6, $FF, $55, $7E, $AE, $FF, $55, $7B, $A6, $FF, $59, $7A, $A1, $FF, $5D, $78, $99, $FF, $60, $78, $91, $FF, $62, $75, $89, $FF, $62, $71, $80, $FF, $5E, $6A, $75, $FF, $58, $62, $6A, $FF, $3E, $44, $46, $FF, $84, $2E, $34, $36, $FF, $09, $30, $36, $38, $FF, $39, $40, $41, $FF, $3C, $42, $43, $FF, $57, $5D, $5C, $FF, $78, $7D, $7A, $FF, $88, $8C, $89, $FF, $83, $87, $84, $FF, $5D, $62, $61, $FF, $33, $39, $3B, $FF, $87, $2E, $34, $36, $FF, $02, $40, $48, $4C, $FF, $54, $75, $9C, $FF, $89, $59, $85, $B9, $FF, $01, $83, $A4, $CB, $FF, $83, $FF, $FF, $FF, $FF, $02, $C2, $D6, $EA, $F7, $7E, $A7, $D3, $82, $86, $FF, $FF, $FF, $00, $0A, $81, $A9, $D4, $E2, $E4, $E6, $E7, $FF, $9D, $A0, $A1, $FF, $84, $88, $89, $FF, $6B, $72, $77, $FF, $59, $61, $69, $FF, $52, $59, $5E, $FF, $49, $50, $53, $FF, $3F, $46, $49, $FF, $34, $3A, $3D, $FF, $94, $2E, $34, $36, $FF, $01, $3F, $45, $45, $FF, $82, $51, $56, $56, $FF, $02, $4B, $50, $50, $FF, $2F, $35, $37, $FF, $87, $2E, $34, $36, $FF, $03, $30, $36, $38, $FF, $52, $65, $79, $FF, $56, $80, $B4, $FF, $88, $57, $83, $B8, $FF, $01, $CE, $DB, $EA, $FF, $82, $FF, $FF, $FF, $FF, $02, $FC, $FD, $FE, $FF, $81, $A9, $D4, $E2, $85, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $2B, $7D, $94, $AC, $F0, $30, $36, $38, $FF, $AA, $2E, $34, $36, $FF, $02, $49, $55, $61, $FF, $55, $81, $B5, $FF, $87, $56, $82, $B6, $FF, $01, $75, $99, $C3, $FF, $83, $FF, $FF, $FF, $FF, $02, $9E, $BD, $DE, $EA, $72, $9F, $CF, $2B, $84, $FF, $FF, $FF, $00, $0B, $7F, $A8, $D3, $87, $9D, $AA, $B5, $FE, $5E, $62, $64, $FF, $43, $49, $49, $FF, $38, $3E, $3F, $FF, $3F, $45, $46, $FF, $40, $46, $47, $FF, $3F, $44, $44, $FF, $3B, $41, $42, $FF, $38, $3E, $3F, $FF, $31, $37, $39, $FF, $A3, $2E, $34, $36, $FF, $01, $4D, $65, $80, $FF, $88, $54, $80, $B5, $FF, $01, $E5, $EC, $F4, $FF, $82, $FF, $FF, $FF, $FF, $02, $D1, $E0, $EF, $FE, $7F, $A8, $D3, $87, $84, $FF, $FF, $FF, $00, $02, $82, $AA, $D4, $DA, $F9, $FB, $FD, $FF, $82, $FF, $FF, $FF, $FF, $12, $AB, $C0, $D7, $FF, $4E, $74, $A1, $FF, $5B, $77, $96, $FF, $6B, $7B, $8D, $FF, $59, $61, $66, $FF, $50, $55, $54, $FF, $5A, $5F, $5D, $FF, $5C, $60, $5E, $FF, $59, $5D, $5C, $FF, $56, $5B, $59, $FF, $54, $57, $57, $FF, $50, $55, $54, $FF, $4F, $52, $52, $FF, $4B, $50, $4F, $FF, $48, $4E, $4D, $FF, $41, $46, $47, $FF, $39, $3F, $3F, $FF, $31, $36, $38, $FF, $98, $2E, $34, $36, $FF, $01, $43, $4C, $53, $FF, $88, $53, $7F, $B4, $FF, $01, $AF, $C4, $DC, $FF, $82, $FF, $FF, $FF, $FF, $02, $F9, $FB, $FD, $FF, $82, $AA, $D4, $DA, $83, $FF, $FF, $FF, $00, $02, $72, $9F, $CF, $1B, $94, $B6, $DA, $E9, $83, $FF, $FF, $FF, $FF, $01, $79, $9B, $C4, $FF, $84, $52, $7D, $B2, $FF, $03, $4A, $6D, $94, $FF, $4D, $5A, $64, $FF, $2F, $35, $37, $FF, $86, $2E, $34, $36, $FF, $0B, $30, $36, $38, $FF, $3A, $3F, $41, $FF, $45, $4B, $4A, $FF, $51, $54, $54, $FF, $56, $5A, $59, $FF, $59, $5C, $5B, $FF, $58, $5C, $5B, $FF, $53, $58, $57, $FF, $4F, $53, $53, $FF, $3F, $45, $46, $FF, $31, $36, $38, $FF, $8F, $2E, $34, $36, $FF, $04, $30, $36, $38, $FF, $54, $59, $5B, $FF, $50, $56, $5A, $FF, $4D, $72, $9E, $FF, $87, $52, $7D, $B2, $FF, $01, $79, $9B, $C4, $FF, $83, $FF, $FF, $FF, $FF, $02, $94, $B6, $DA, $E9, $72, $9F, $CF, $1B, $82, $FF, $FF, $FF, $00, $02, $7B, $A5, $D2, $6F, $C7, $D9, $EC, $FB, $82, $FF, $FF, $FF, $FF, $02, $F0, $F4, $F8, $FF, $51, $7D, $B2, $FF, $86, $50, $7C, $B1, $FF, $02, $51, $75, $A1, $FF, $5B, $65, $70, $FF, $8D, $2E, $34, $36, $FF, $07, $35, $3B, $3D, $FF, $4C, $50, $50, $FF, $61, $64, $63, $FF, $6C, $6F, $6C, $FF, $67, $6B, $68, $FF, $4D, $52, $51, $FF, $34, $3A, $3B, $FF, $8A, $2E, $34, $36, $FF, $05, $30, $36, $38, $FF, $CB, $CC, $CD, $FF, $EE, $EE, $EE, $FF, $FA, $FA, $FA, $FF, $7F, $9F, $C6, $FF, $87, $50, $7C, $B1, $FF, $02, $51, $7D, $B2, $FF, $F0, $F4, $F8, $FF, $82, $FF, $FF, $FF, $FF, $02, $C7, $D9, $EC, $FB, $7B, $A5, $D2, $6F, $82, $FF, $FF, $FF, $00, $02, $84, $AB, $D5, $A7, $E1, $EB, $F5, $FF, $82, $FF, $FF, $FF, $FF, $01, $BE, $CE, $E2, $FF, $89, $4F, $7A, $B0, $FF, $02, $4F, $68, $86, $FF, $31, $38, $3A, $FF, $8F, $2E, $34, $36, $FF, $05, $35, $3B, $3D, $FF, $4C, $51, $50, $FF, $61, $64, $63, $FF, $5E, $62, $60, $FF, $39, $3E, $40, $FF, $88, $2E, $34, $36, $FF, $01, $4A, $4E, $50, $FF, $82, $EE, $EE, $EE, $FF, $02, $F1, $F1, $F1, $FF, $CA, $D7, $E7, $FF, $88, $4F, $7A, $B0, $FF, $01, $BE, $CE, $E2, $FF, $82, $FF, $FF, $FF, $FF, $02, $E1, $EB, $F5, $FF, $84, $AB, $D5, $A7, $82, $FF, $FF, $FF, $00, $02, $84, $AB, $D5, $C4, $F0, $F4, $FA, $FF, $82, $FF, $FF, $FF, $FF, $01, $A6, $BC, $D7, $FF, $8A, $4D, $79, $AF, $FF, $02, $4E, $6F, $95, $FF, $3B, $42, $45, $FF, $92, $2E, $34, $36, $FF, $01, $32, $38, $3A, $FF, $88, $2E, $34, $36, $FF, $01, $59, $5E, $5F, $FF, $83, $EE, $EE, $EE, $FF, $02, $F7, $F7, $F7, $FF, $64, $8A, $B9, $FF, $87, $4D, $79, $AF, $FF, $01, $A6, $BC, $D7, $FF, $82, $FF, $FF, $FF, $FF, $02, $F0, $F4, $FA, $FF, $84, $AB, $D5, $C4, $82, $FF, $FF, $FF, $00, $02, $81, $A9, $D4, $DB, $FD, $FD, $FE, $FF, $82, $FF, $FF, $FF, $FF, $01, $92, $AC, $CD, $FF, $8B, $4C, $77, $AD, $FF, $02, $4C, $71, $A1, $FF, $49, $51, $55, $FF, $9A, $2E, $34, $36, $FF, $01, $41, $47, $48, $FF, $83, $EE, $EE, $EE, $FF, $02, $EF, $EF, $EF, $FF, $AE, $C1, $DA, $FF, $87, $4C, $77, $AD, $FF, $01, $92, $AC, $CD, $FF, $82, $FF, $FF, $FF, $FF, $02, $FD, $FD, $FE, $FF, $81, $A9, $D4, $DB, $82, $FF, $FF, $FF, $00, $01, $83, $AB, $D5, $E3, $83, $FF, $FF, $FF, $FF, $01, $7F, $9E, $C4, $FF, $8C, $4A, $76, $AC, $FF, $02, $4A, $74, $A7, $FF, $56, $61, $6B, $FF, $99, $2E, $34, $36, $FF, $02, $2D, $33, $35, $FF, $E4, $E5, $E5, $FF, $83, $EE, $EE, $EE, $FF, $02, $ED, $F0, $F3, $FF, $50, $7B, $AF, $FF, $86, $4A, $76, $AC, $FF, $01, $7F, $9E, $C4, $FF, $83, $FF, $FF, $FF, $FF, $01, $83, $AB, $D5, $E3, $82, $FF, $FF, $FF, $00, $01, $86, $AD, $D6, $E9, $83, $FF, $FF, $FF, $FF, $01, $6B, $8E, $BA, $FF, $8D, $49, $74, $AB, $FF, $02, $49, $74, $AA, $FF, $57, $63, $70, $FF, $98, $2E, $34, $36, $FF, $02, $2D, $33, $35, $FF, $C6, $C8, $C8, $FF, $83, $EE, $EE, $EE, $FF, $02, $F2, $F2, $F2, $FF, $83, $A0, $C6, $FF, $86, $49, $74, $AB, $FF, $01, $6B, $8E, $BA, $FF, $83, $FF, $FF, $FF, $FF, $04, $86, $AD, $D6, $E9, $FF, $FF, $FF, $00, $72, $9F, $CF, $13, $92, $B5, $DA, $E9, $83, $FF, $FF, $FF, $FF, $01, $56, $7F, $B1, $FF, $8E, $47, $73, $AA, $FF, $02, $47, $73, $A9, $FF, $53, $5E, $69, $FF, $98, $2E, $34, $36, $FF, $01, $A8, $AA, $AA, $FF, $84, $EE, $EE, $EE, $FF, $01, $BD, $CC, $DE, $FF, $86, $47, $73, $AA, $FF, $01, $56, $7F, $B1, $FF, $83, $FF, $FF, $FF, $FF, $01, $92, $B5, $DA, $E9, $82, $72, $9F, $CF, $13, $01, $92, $B5, $DA, $E9, $83, $FF, $FF, $FF, $FF, $01, $55, $7D, $AF, $FF, $8F, $46, $71, $A8, $FF, $02, $45, $6F, $A4, $FF, $51, $59, $61, $FF, $97, $2E, $34, $36, $FF, $01, $8C, $8F, $90, $FF, $84, $EE, $EE, $EE, $FF, $02, $ED, $EF, $F2, $FF, $4C, $75, $AB, $FF, $85, $46, $71, $A8, $FF, $01, $55, $7D, $AF, $FF, $83, $FF, $FF, $FF, $FF, $04, $92, $B5, $DA, $E9, $72, $9F, $CF, $13, $FF, $FF, $FF, $00, $86, $AD, $D6, $E9, $83, $FF, $FF, $FF, $FF, $01, $67, $8A, $B7, $FF, $90, $45, $70, $A7, $FF, $02, $45, $6E, $A3, $FF, $4D, $55, $5B, $FF, $96, $2E, $34, $36, $FF, $01, $71, $75, $76, $FF, $84, $EE, $EE, $EE, $FF, $02, $F0, $F0, $F0, $FF, $7F, $9C, $C2, $FF, $85, $45, $70, $A7, $FF, $01, $67, $8A, $B7, $FF, $83, $FF, $FF, $FF, $FF, $01, $86, $AD, $D6, $E9, $82, $FF, $FF, $FF, $00, $01, $83, $AB, $D5, $E3, $83, $FF, $FF, $FF, $FF, $01, $7A, $98, $C0, $FF, $91, $43, $6E, $A6, $FF, $02, $45, $6D, $A0, $FF, $48, $4F, $54, $FF, $87, $2E, $34, $36, $FF, $0F, $39, $3F, $41, $FF, $6B, $6E, $6F, $FF, $87, $8A, $8B, $FF, $A3, $A6, $A6, $FF, $BF, $C0, $C1, $FF, $DA, $DA, $DB, $FF, $EA, $EA, $EA, $FF, $DF, $E0, $E0, $FF, $D4, $D5, $D5, $FF, $CA, $CB, $CB, $FF, $BF, $C1, $C1, $FF, $B5, $B6, $B7, $FF, $AA, $AC, $AD, $FF, $A1, $A3, $A4, $FF, $CF, $D0, $D0, $FF, $85, $EE, $EE, $EE, $FF, $01, $B8, $C8, $DC, $FF, $85, $43, $6E, $A6, $FF, $01, $7A, $98, $C0, $FF, $83, $FF, $FF, $FF, $FF, $01, $83, $AB, $D5, $E3, $82, $FF, $FF, $FF, $00, $02, $81, $A9, $D4, $DB, $FD, $FD, $FE, $FF, $82, $FF, $FF, $FF, $FF, $01, $8C, $A6, $C8, $FF, $92, $42, $6D, $A4, $FF, $02, $48, $6D, $9D, $FF, $44, $4A, $4E, $FF, $83, $2E, $34, $36, $FF, $04, $2F, $35, $37, $FF, $61, $66, $67, $FF, $AA, $AD, $AD, $FF, $E7, $E7, $E7, $FF, $93, $EE, $EE, $EE, $FF, $01, $E8, $EA, $EE, $FF, $85, $42, $6D, $A4, $FF, $01, $8C, $A6, $C8, $FF, $82, $FF, $FF, $FF, $FF, $02, $FD, $FD, $FE, $FF, $81, $A9, $D4, $DB, $82, $FF, $FF, $FF, $00, $02, $84, $AB, $D5, $C4, $F0, $F4, $FA, $FF, $82, $FF, $FF, $FF, $FF, $01, $9F, $B5, $D1, $FF, $93, $40, $6B, $A3, $FF, $05, $4A, $6E, $9A, $FF, $3F, $45, $48, $FF, $46, $4B, $4C, $FF, $90, $92, $93, $FF, $D6, $D7, $D7, $FF, $96, $EE, $EE, $EE, $FF, $02, $EF, $EF, $EF, $FF, $50, $77, $AB, $FF, $84, $40, $6B, $A3, $FF, $01, $9F, $B5, $D1, $FF, $82, $FF, $FF, $FF, $FF, $02, $F0, $F4, $FA, $FF, $84, $AB, $D5, $C4, $82, $FF, $FF, $FF, $00, $02, $84, $AB, $D5, $A7, $E1, $EB, $F5, $FF, $82, $FF, $FF, $FF, $FF, $01, $B8, $C8, $DD, $FF, $93, $3F, $6A, $A2, $FF, $03, $43, $6D, $A4, $FF, $BD, $C6, $D2, $FF, $ED, $ED, $ED, $FF, $99, $EE, $EE, $EE, $FF, $01, $6A, $8A, $B4, $FF, $84, $3F, $6A, $A2, $FF, $01, $B8, $C8, $DD, $FF, $82, $FF, $FF, $FF, $FF, $02, $E1, $EB, $F5, $FF, $84, $AB, $D5, $A7, $82, $FF, $FF, $FF, $00, $02, $7B, $A5, $D2, $6F, $C7, $D9, $EC, $FB, $82, $FF, $FF, $FF, $FF, $02, $EE, $F2, $F7, $FF, $3F, $69, $A2, $FF, $91, $3D, $68, $A1, $FF, $02, $44, $6D, $A3, $FF, $B2, $C0, $D3, $FF, $9B, $EE, $EE, $EE, $FF, $01, $83, $9D, $BE, $FF, $83, $3D, $68, $A1, $FF, $02, $3F, $69, $A2, $FF, $EE, $F2, $F7, $FF, $82, $FF, $FF, $FF, $FF, $02, $C7, $D9, $EC, $FB, $7B, $A5, $D2, $6F, $82, $FF, $FF, $FF, $00, $02, $72, $9F, $CF, $1B, $94, $B6, $DA, $E9, $83, $FF, $FF, $FF, $FF, $01, $68, $8A, $B5, $FF, $90, $3C, $67, $9F, $FF, $02, $63, $85, $B0, $FF, $D1, $D8, $E1, $FF, $9C, $EE, $EE, $EE, $FF, $01, $9E, $B1, $CA, $FF, $83, $3C, $67, $9F, $FF, $01, $68, $8A, $B5, $FF, $83, $FF, $FF, $FF, $FF, $02, $94, $B6, $DA, $E9, $72, $9F, $CF, $1B, $83, $FF, $FF, $FF, $00, $02, $82, $AA, $D4, $DA, $F9, $FB, $FD, $FF, $82, $FF, $FF, $FF, $FF, $01, $A4, $B8, $D2, $FF, $8D, $3A, $65, $9E, $FF, $03, $4B, $72, $A6, $FF, $8D, $A5, $C3, $FF, $D0, $D7, $E1, $FF, $9E, $EE, $EE, $EE, $FF, $01, $B8, $C4, $D6, $FF, $83, $3A, $65, $9E, $FF, $01, $A4, $B8, $D2, $FF, $82, $FF, $FF, $FF, $FF, $02, $F9, $FB, $FD, $FF, $82, $AA, $D4, $DA, $84, $FF, $FF, $FF, $00, $02, $7F, $A8, $D3, $87, $D1, $E0, $EF, $FE, $82, $FF, $FF, $FF, $FF, $01, $E1, $E7, $F0, $FF, $8A, $39, $64, $9D, $FF, $04, $3D, $67, $9F, $FF, $76, $92, $B9, $FF, $BB, $C7, $D7, $FF, $EB, $EC, $EC, $FF, $A0, $EE, $EE, $EE, $FF, $01, $D3, $D9, $E2, $FF, $83, $39, $64, $9D, $FF, $01, $E1, $E7, $F0, $FF, $82, $FF, $FF, $FF, $FF, $02, $D1, $E0, $EF, $FE, $7F, $A8, $D3, $87, $84, $FF, $FF, $FF, $00, $02, $72, $9F, $CF, $2B, $9E, $BD, $DE, $EA, $83, $FF, $FF, $FF, $FF, $01, $5C, $7F, $AD, $FF, $87, $37, $62, $9B, $FF, $03, $44, $6C, $A1, $FF, $97, $AC, $C7, $FF, $DC, $E1, $E6, $FF, $A3, $EE, $EE, $EE, $FF, $04, $EA, $EB, $EC, $FF, $72, $90, $B8, $FF, $37, $62, $9B, $FF, $5C, $7F, $AD, $FF, $83, $FF, $FF, $FF, $FF, $02, $9E, $BD, $DE, $EA, $72, $9F, $CF, $2B, $85, $FF, $FF, $FF, $00, $02, $81, $A9, $D4, $E2, $FC, $FD, $FE, $FF, $82, $FF, $FF, $FF, $FF, $01, $C4, $D1, $E1, $FF, $86, $36, $61, $9A, $FF, $03, $62, $84, $B0, $FF, $E6, $EB, $F2, $FF, $F8, $F8, $F8, $FF, $A5, $EE, $EE, $EE, $FF, $03, $FD, $FD, $FD, $FF, $B6, $C5, $DA, $FF, $C8, $D4, $E3, $FF, $82, $FF, $FF, $FF, $FF, $02, $FC, $FD, $FE, $FF, $81, $A9, $D4, $E2, $86, $FF, $FF, $FF, $00, $02, $7E, $A7, $D3, $82, $C2, $D6, $EA, $F7, $83, $FF, $FF, $FF, $FF, $01, $68, $87, $B3, $FF, $84, $35, $5F, $99, $FF, $04, $83, $9C, $C0, $FF, $FC, $FC, $FD, $FF, $FF, $FF, $FF, $FF, $FD, $FD, $FD, $FF, $A4, $EE, $EE, $EE, $FF, $01, $EF, $EF, $EF, $FF, $85, $FF, $FF, $FF, $FF, $02, $C2, $D6, $EA, $F7, $7E, $A7, $D3, $82, $86, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $09, $81, $A9, $D4, $E5, $F8, $FA, $FD, $FF, $82, $FF, $FF, $FF, $FF, $02, $D5, $DE, $EA, $FF, $34, $5F, $98, $FF, $82, $33, $5E, $98, $FF, $02, $78, $94, $BB, $FF, $FD, $FE, $FE, $FF, $83, $FF, $FF, $FF, $FF, $01, $F8, $F8, $F8, $FF, $A3, $EE, $EE, $EE, $FF, $03, $F1, $F1, $F1, $FF, $FF, $FF, $FF, $FF, $FE, $FE, $FF, $FF, $82, $FF, $FF, $FF, $FF, $03, $F8, $FA, $FD, $FF, $81, $A9, $D4, $E5, $72, $9F, $CF, $09, $87, $FF, $FF, $FF, $00, $02, $7B, $A5, $D2, $68, $B5, $CD, $E6, $F3, $83, $FF, $FF, $FF, $FF, $04, $7A, $95, $BB, $FF, $32, $5C, $96, $FF, $6B, $89, $B3, $FF, $FA, $FB, $FD, $FF, $85, $FF, $FF, $FF, $FF, $01, $F6, $F6, $F6, $FF, $A2, $EE, $EE, $EE, $FF, $01, $F5, $F5, $F5, $FF, $84, $FF, $FF, $FF, $FF, $02, $B5, $CD, $E6, $F3, $7B, $A5, $D2, $68, $88, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $02, $81, $A9, $D4, $DD, $F3, $F7, $FB, $FF, $82, $FF, $FF, $FF, $FF, $03, $EC, $F0, $F5, $FF, $70, $8E, $B6, $FF, $F7, $F9, $FB, $FF, $87, $FF, $FF, $FF, $FF, $02, $FB, $FB, $FB, $FF, $F2, $F2, $F2, $FF, $9F, $EE, $EE, $EE, $FF, $03, $F0, $F0, $F0, $FF, $FE, $FE, $FE, $FF, $FD, $FD, $FE, $FF, $82, $FF, $FF, $FF, $FF, $03, $F3, $F7, $FB, $FF, $81, $A9, $D4, $DD, $72, $9F, $CF, $02, $89, $FF, $FF, $FF, $00, $02, $77, $A3, $D1, $4D, $A8, $C4, $E2, $EF, $83, $FF, $FF, $FF, $FF, $01, $F1, $F4, $F8, $FF, $8A, $FF, $FF, $FF, $FF, $04, $FD, $FD, $FD, $FF, $F7, $F7, $F7, $FF, $F3, $F3, $F3, $FF, $F1, $F1, $F1, $FF, $99, $EE, $EE, $EE, $FF, $04, $EF, $EF, $EF, $FF, $F4, $F4, $F4, $FF, $FD, $FD, $FD, $FF, $FE, $FE, $FE, $FF, $83, $FF, $FF, $FF, $FF, $02, $A8, $C4, $E2, $EF, $77, $A3, $D1, $4D, $8B, $FF, $FF, $FF, $00, $02, $81, $A9, $D4, $C3, $D8, $E5, $F2, $FC, $83, $FF, $FF, $FF, $FF, $01, $EE, $F1, $F6, $FF, $8E, $FF, $FF, $FF, $FF, $03, $FD, $FD, $FD, $FF, $FA, $FA, $FA, $FF, $F7, $F7, $F7, $FF, $82, $F5, $F5, $F5, $FF, $82, $F4, $F4, $F4, $FF, $82, $F3, $F3, $F3, $FF, $82, $F2, $F2, $F2, $FF, $82, $F1, $F1, $F1, $FF, $84, $F2, $F2, $F2, $FF, $83, $F3, $F3, $F3, $FF, $04, $F4, $F4, $F4, $FF, $F7, $F7, $F7, $FF, $FA, $FA, $FA, $FF, $FD, $FD, $FD, $FF, $86, $FF, $FF, $FF, $FF, $02, $D8, $E5, $F2, $FC, $81, $A9, $D4, $C3, $8C, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $0F, $81, $A9, $D4, $DD, $EB, $F1, $F8, $FF, $83, $FF, $FF, $FF, $FF, $01, $E9, $ED, $F3, $FF, $AA, $FF, $FF, $FF, $FF, $03, $EB, $F1, $F8, $FF, $81, $A9, $D4, $DD, $72, $9F, $CF, $0F, $8D, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $24, $86, $AD, $D6, $E6, $F7, $F9, $FC, $FF, $82, $FF, $FF, $FF, $FF, $02, $FE, $FE, $FF, $FF, $EC, $F0, $F5, $FF, $A5, $FF, $FF, $FF, $FF, $01, $FE, $FE, $FF, $FF, $82, $FF, $FF, $FF, $FF, $03, $F7, $F9, $FC, $FF, $86, $AD, $D6, $E6, $72, $9F, $CF, $24, $8F, $FF, $FF, $FF, $00, $03, $77, $A2, $D1, $45, $94, $B6, $DA, $EA, $FD, $FE, $FE, $FF, $83, $FF, $FF, $FF, $FF, $01, $F4, $F6, $F9, $FF, $A6, $FF, $FF, $FF, $FF, $03, $FD, $FE, $FE, $FF, $94, $B6, $DA, $EA, $77, $A2, $D1, $45, $91, $FF, $FF, $FF, $00, $03, $7D, $A6, $D3, $74, $A5, $C1, $E0, $ED, $FD, $FE, $FE, $FF, $83, $FF, $FF, $FF, $FF, $01, $EE, $F1, $F6, $FF, $A0, $FF, $FF, $FF, $FF, $01, $FB, $FC, $FD, $FF, $83, $FF, $FF, $FF, $FF, $03, $FD, $FE, $FE, $FF, $A5, $C1, $E0, $ED, $7D, $A6, $D3, $74, $93, $FF, $FF, $FF, $00, $03, $7D, $A6, $D3, $74, $94, $B6, $DA, $EA, $F7, $F9, $FC, $FF, $83, $FF, $FF, $FF, $FF, $02, $F1, $F3, $F7, $FF, $F0, $F3, $F7, $FF, $9D, $FF, $FF, $FF, $FF, $01, $F9, $FA, $FC, $FF, $83, $FF, $FF, $FF, $FF, $03, $F7, $F9, $FC, $FF, $94, $B6, $DA, $EA, $7D, $A6, $D3, $74, $95, $FF, $FF, $FF, $00, $03, $77, $A2, $D1, $45, $86, $AD, $D6, $E6, $EB, $F1, $F8, $FF, $84, $FF, $FF, $FF, $FF, $01, $EE, $F2, $F6, $FF, $9A, $FF, $FF, $FF, $FF, $01, $FA, $FB, $FC, $FF, $84, $FF, $FF, $FF, $FF, $03, $EB, $F1, $F8, $FF, $86, $AD, $D6, $E6, $77, $A2, $D1, $45, $97, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $24, $81, $A9, $D4, $DD, $D8, $E5, $F2, $FC, $85, $FF, $FF, $FF, $FF, $02, $EE, $F1, $F6, $FF, $FE, $FE, $FF, $FF, $95, $FF, $FF, $FF, $FF, $01, $FB, $FC, $FD, $FF, $85, $FF, $FF, $FF, $FF, $03, $D8, $E5, $F2, $FC, $81, $A9, $D4, $DD, $72, $9F, $CF, $24, $99, $FF, $FF, $FF, $00, $04, $72, $9F, $CF, $0F, $81, $A9, $D4, $C3, $A8, $C4, $E2, $EF, $F3, $F7, $FB, $FF, $85, $FF, $FF, $FF, $FF, $02, $EF, $F2, $F6, $FF, $F5, $F7, $F9, $FF, $91, $FF, $FF, $FF, $FF, $01, $F7, $F8, $FB, $FF, $85, $FF, $FF, $FF, $FF, $04, $F3, $F7, $FB, $FF, $A8, $C4, $E2, $EF, $81, $A9, $D4, $C3, $72, $9F, $CF, $0F, $9C, $FF, $FF, $FF, $00, $04, $77, $A3, $D1, $4D, $81, $A9, $D4, $DD, $B5, $CD, $E6, $F3, $F8, $FA, $FD, $FF, $86, $FF, $FF, $FF, $FF, $03, $F9, $FA, $FC, $FF, $F2, $F4, $F8, $FF, $FB, $FC, $FD, $FF, $89, $FF, $FF, $FF, $FF, $02, $F7, $F9, $FB, $FF, $F9, $FA, $FC, $FF, $86, $FF, $FF, $FF, $FF, $04, $F8, $FA, $FD, $FF, $B5, $CD, $E6, $F3, $81, $A9, $D4, $DD, $77, $A3, $D1, $4D, $9F, $FF, $FF, $FF, $00, $05, $72, $9F, $CF, $02, $7B, $A5, $D2, $68, $81, $A9, $D4, $E5, $C2, $D6, $EA, $F7, $FC, $FD, $FE, $FF, $96, $FF, $FF, $FF, $FF, $05, $FC, $FD, $FE, $FF, $C2, $D6, $EA, $F7, $81, $A9, $D4, $E5, $7B, $A5, $D2, $68, $72, $9F, $CF, $02, $A2, $FF, $FF, $FF, $00, $06, $72, $9F, $CF, $09, $7E, $A7, $D3, $82, $81, $A9, $D4, $E2, $9E, $BD, $DE, $EA, $D1, $E0, $EF, $FE, $F9, $FB, $FD, $FF, $90, $FF, $FF, $FF, $FF, $06, $F9, $FB, $FD, $FF, $D1, $E0, $EF, $FE, $9E, $BD, $DE, $EA, $81, $A9, $D4, $E2, $7E, $A7, $D3, $82, $72, $9F, $CF, $09, $A7, $FF, $FF, $FF, $00, $08, $72, $9F, $CF, $2B, $7F, $A8, $D3, $87, $82, $AA, $D4, $DA, $94, $B6, $DA, $E9, $C7, $D9, $EC, $FB, $E1, $EB, $F5, $FF, $F0, $F4, $FA, $FF, $FD, $FD, $FE, $FF, $86, $FF, $FF, $FF, $FF, $08, $FD, $FD, $FE, $FF, $F0, $F4, $FA, $FF, $E1, $EB, $F5, $FF, $C7, $D9, $EC, $FB, $94, $B6, $DA, $E9, $82, $AA, $D4, $DA, $7F, $A8, $D3, $87, $72, $9F, $CF, $2B, $AD, $FF, $FF, $FF, $00, $07, $72, $9F, $CF, $1B, $7B, $A5, $D2, $6F, $84, $AB, $D5, $A7, $84, $AB, $D5, $C4, $81, $A9, $D4, $DB, $83, $AB, $D5, $E3, $86, $AD, $D6, $E9, $82, $92, $B5, $DA, $E9, $07, $86, $AD, $D6, $E9, $83, $AB, $D5, $E3, $81, $A9, $D4, $DB, $84, $AB, $D5, $C4, $84, $AB, $D5, $A7, $7B, $A5, $D2, $6F, $72, $9F, $CF, $1B, $B7, $FF, $FF, $FF, $00, $82, $72, $9F, $CF, $13, $9F, $FF, $FF, $FF, $00, $00); tuxcmd-0.6.70+dfsg/pixmaps/emblem_symbolic_link_png.inc0000644000175000017500000000362311300022643022237 0ustar salvisalviconst emblem_symbolic_link_png: array[1..349] of byte = ( $47, $64, $6B, $50, $00, $00, $01, $5C, $01, $01, $00, $02, $00, $00, $00, $24, $00, $00, $00, $09, $00, $00, $00, $09, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $FF, $FF, $FF, $FF, $00, $33, $66, $FF, $00, $33, $66, $FF, $00, $33, $66, $FF, $00, $33, $66, $FF, $EF, $EF, $EF, $FF, $CC, $CC, $CC, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $FF, $FF, $FF, $FF, $00, $33, $66, $FF, $00, $33, $66, $FF, $00, $33, $66, $FF, $EF, $EF, $EF, $FF, $EF, $EF, $EF, $FF, $CC, $CC, $CC, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $FF, $FF, $FF, $FF, $00, $33, $66, $FF, $00, $33, $66, $FF, $00, $33, $66, $FF, $00, $33, $66, $FF, $EF, $EF, $EF, $FF, $CC, $CC, $CC, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $FF, $FF, $FF, $FF, $00, $33, $66, $FF, $EF, $EF, $EF, $FF, $00, $33, $66, $FF, $00, $33, $66, $FF, $00, $2C, $59, $FF, $CC, $CC, $CC, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $FF, $FF, $FF, $FF, $EF, $EF, $EF, $FF, $EF, $EF, $EF, $FF, $EF, $EF, $EF, $FF, $00, $28, $50, $FF, $00, $25, $4A, $FF, $CC, $CC, $CC, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $FF, $FF, $FF, $FF, $CC, $CC, $CC, $FF, $CC, $CC, $CC, $FF, $CC, $CC, $CC, $FF, $CC, $CC, $CC, $FF, $CC, $CC, $CC, $FF, $CC, $CC, $CC, $FF, $18, $18, $18, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $09, $09, $09, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00); tuxcmd-0.6.70+dfsg/pixmaps/tuxcmd_48_png.inc0000644000175000017500000004534111300022643017702 0ustar salvisalviconst tuxcmd_48_png: array[1..3594] of byte = ( $47, $64, $6B, $50, $00, $00, $0E, $09, $02, $01, $00, $02, $00, $00, $00, $C0, $00, $00, $00, $30, $00, $00, $00, $30, $94, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $02, $72, $9F, $CF, $18, $72, $9F, $CF, $32, $82, $77, $A2, $D1, $4E, $03, $72, $9F, $CF, $32, $72, $9F, $CF, $18, $72, $9F, $CF, $02, $A4, $FF, $FF, $FF, $00, $07, $72, $9F, $CF, $0B, $7F, $A8, $D3, $5A, $8C, $B1, $D8, $B9, $99, $BA, $DC, $D7, $A1, $BF, $DF, $E1, $B1, $CA, $E4, $E7, $C4, $D7, $EB, $F2, $82, $D5, $E2, $F1, $FE, $07, $C4, $D7, $EB, $F2, $B1, $CA, $E4, $E7, $A1, $BF, $DF, $E1, $99, $BA, $DC, $D7, $8C, $B1, $D8, $B9, $7F, $A8, $D3, $5A, $72, $9F, $CF, $0B, $9E, $FF, $FF, $FF, $00, $05, $81, $A9, $D4, $51, $8E, $B2, $D9, $C3, $A2, $C0, $DF, $E0, $D4, $E2, $F0, $FA, $FB, $FC, $FD, $FF, $8A, $FF, $FF, $FF, $FF, $05, $FB, $FC, $FD, $FF, $D4, $E2, $F0, $FA, $A2, $C0, $DF, $E0, $8E, $B2, $D9, $C3, $81, $A9, $D4, $51, $9A, $FF, $FF, $FF, $00, $04, $7A, $A5, $D2, $37, $8E, $B2, $D9, $C7, $C7, $D9, $EC, $F1, $FE, $FE, $FF, $FF, $86, $FF, $FF, $FF, $FF, $01, $F5, $F8, $FC, $FF, $82, $E7, $EE, $F6, $FF, $01, $F5, $F8, $FC, $FF, $86, $FF, $FF, $FF, $FF, $04, $FE, $FE, $FF, $FF, $C7, $D9, $EC, $F1, $8E, $B2, $D9, $C7, $7A, $A5, $D2, $37, $96, $FF, $FF, $FF, $00, $04, $72, $9F, $CF, $18, $8B, $B0, $D7, $BB, $B8, $CE, $E7, $EB, $FA, $FC, $FD, $FF, $83, $FF, $FF, $FF, $FF, $05, $F5, $F8, $FB, $FF, $CA, $DA, $EC, $FF, $9C, $BA, $DB, $FF, $80, $A6, $D1, $FF, $72, $9C, $CC, $FF, $84, $6D, $99, $CA, $FF, $05, $72, $9C, $CC, $FF, $80, $A6, $D1, $FF, $9C, $BA, $DB, $FF, $CA, $DA, $EC, $FF, $F5, $F8, $FB, $FF, $83, $FF, $FF, $FF, $FF, $04, $FA, $FC, $FD, $FF, $B8, $CE, $E7, $EB, $8B, $B0, $D7, $BB, $72, $9F, $CF, $18, $93, $FF, $FF, $FF, $00, $03, $7E, $A7, $D3, $37, $96, $B8, $DB, $DC, $F3, $F7, $FB, $FF, $83, $FF, $FF, $FF, $FF, $03, $D5, $E2, $EF, $FF, $91, $B2, $D6, $FF, $6D, $99, $C9, $FF, $8C, $6B, $97, $C8, $FF, $03, $6D, $99, $C9, $FF, $91, $B2, $D6, $FF, $D5, $E2, $EF, $FF, $83, $FF, $FF, $FF, $FF, $03, $F3, $F7, $FB, $FF, $96, $B8, $DB, $DC, $7E, $A7, $D3, $37, $91, $FF, $FF, $FF, $00, $03, $88, $AE, $D6, $64, $A8, $C4, $E1, $E5, $FC, $FD, $FE, $FF, $82, $FF, $FF, $FF, $FF, $02, $E2, $EA, $F4, $FF, $90, $B0, $D5, $FF, $92, $69, $95, $C7, $FF, $02, $90, $B0, $D5, $FF, $E2, $EA, $F4, $FF, $82, $FF, $FF, $FF, $FF, $03, $FC, $FD, $FE, $FF, $A8, $C4, $E1, $E5, $88, $AE, $D6, $64, $8F, $FF, $FF, $FF, $00, $02, $8C, $B0, $D8, $8A, $C1, $D5, $EA, $EE, $82, $FF, $FF, $FF, $FF, $03, $FD, $FD, $FE, $FF, $A7, $C0, $DD, $FF, $68, $93, $C5, $FF, $94, $67, $93, $C5, $FF, $03, $68, $93, $C5, $FF, $A7, $C0, $DD, $FF, $FD, $FD, $FE, $FF, $82, $FF, $FF, $FF, $FF, $02, $C1, $D5, $EA, $EE, $8C, $B0, $D8, $8A, $8D, $FF, $FF, $FF, $00, $02, $88, $AE, $D6, $64, $C1, $D5, $EA, $EE, $82, $FF, $FF, $FF, $FF, $02, $F4, $F7, $FB, $FF, $8C, $AD, $D2, $FF, $98, $65, $91, $C3, $FF, $02, $8C, $AD, $D2, $FF, $F4, $F7, $FB, $FF, $82, $FF, $FF, $FF, $FF, $02, $C1, $D5, $EA, $EE, $88, $AE, $D6, $64, $8B, $FF, $FF, $FF, $00, $02, $7E, $A7, $D3, $37, $A8, $C4, $E1, $E5, $82, $FF, $FF, $FF, $FF, $02, $E8, $EF, $F6, $FF, $79, $9F, $CB, $FF, $9A, $63, $8F, $C2, $FF, $02, $79, $9F, $CB, $FF, $E8, $EF, $F6, $FF, $82, $FF, $FF, $FF, $FF, $02, $A8, $C4, $E1, $E5, $7E, $A7, $D3, $37, $89, $FF, $FF, $FF, $00, $06, $72, $9F, $CF, $18, $96, $B8, $DB, $DC, $FC, $FD, $FE, $FF, $FF, $FF, $FF, $FF, $F4, $F7, $FB, $FF, $77, $9D, $C9, $FF, $9C, $61, $8D, $C0, $FF, $06, $77, $9D, $C9, $FF, $F4, $F7, $FB, $FF, $FF, $FF, $FF, $FF, $FC, $FD, $FE, $FF, $96, $B8, $DB, $DC, $72, $9F, $CF, $18, $88, $FF, $FF, $FF, $00, $05, $8B, $B0, $D7, $BB, $F3, $F7, $FB, $FF, $FF, $FF, $FF, $FF, $FC, $FD, $FE, $FF, $88, $A9, $CF, $FF, $91, $5F, $8B, $BE, $FF, $01, $5E, $89, $BB, $FF, $8C, $5F, $8B, $BE, $FF, $05, $88, $A9, $CF, $FF, $FC, $FD, $FE, $FF, $FF, $FF, $FF, $FF, $F3, $F7, $FB, $FF, $8B, $B0, $D7, $BB, $87, $FF, $FF, $FF, $00, $02, $7A, $A5, $D2, $37, $B8, $CE, $E7, $EB, $82, $FF, $FF, $FF, $FF, $01, $A1, $BB, $D8, $FF, $8C, $5D, $89, $BC, $FF, $0B, $60, $83, $AA, $FF, $65, $77, $8A, $FF, $5F, $6C, $77, $FF, $55, $5F, $66, $FF, $48, $4F, $53, $FF, $36, $3C, $3F, $FF, $2F, $35, $37, $FF, $44, $4A, $4E, $FF, $58, $63, $6D, $FF, $60, $74, $89, $FF, $5A, $82, $B1, $FF, $89, $5D, $89, $BC, $FF, $01, $A1, $BB, $D8, $FF, $82, $FF, $FF, $FF, $FF, $02, $B8, $CE, $E7, $EB, $7A, $A5, $D2, $37, $86, $FF, $FF, $FF, $00, $05, $8E, $B2, $D9, $C7, $FA, $FC, $FD, $FF, $FF, $FF, $FF, $FF, $DF, $E7, $F2, $FF, $5C, $87, $BB, $FF, $8A, $5B, $87, $BB, $FF, $02, $65, $80, $9D, $FF, $49, $50, $53, $FF, $8A, $2E, $34, $36, $FF, $03, $33, $3A, $3C, $FF, $59, $65, $71, $FF, $5A, $7B, $A2, $FF, $87, $5B, $87, $BB, $FF, $05, $5C, $87, $BB, $FF, $DF, $E7, $F2, $FF, $FF, $FF, $FF, $FF, $FA, $FC, $FD, $FF, $8E, $B2, $D9, $C7, $85, $FF, $FF, $FF, $00, $02, $81, $A9, $D4, $51, $C7, $D9, $EC, $F1, $82, $FF, $FF, $FF, $FF, $01, $84, $A5, $CB, $FF, $82, $59, $85, $B9, $FF, $09, $58, $84, $B8, $FF, $57, $81, $B1, $FF, $5D, $81, $AA, $FF, $62, $81, $A5, $FF, $65, $80, $9D, $FF, $67, $7E, $96, $FF, $68, $7A, $8F, $FF, $65, $75, $86, $FF, $5A, $64, $6C, $FF, $83, $2E, $34, $36, $FF, $07, $31, $37, $39, $FF, $35, $3B, $3D, $FF, $48, $4E, $4E, $FF, $69, $6D, $6B, $FF, $71, $75, $73, $FF, $57, $5D, $5C, $FF, $31, $37, $39, $FF, $85, $2E, $34, $36, $FF, $02, $56, $65, $73, $FF, $57, $81, $B3, $FF, $86, $59, $85, $B9, $FF, $01, $84, $A5, $CB, $FF, $82, $FF, $FF, $FF, $FF, $02, $C7, $D9, $EC, $F1, $81, $A9, $D4, $51, $84, $FF, $FF, $FF, $00, $08, $8D, $B0, $D7, $C3, $AE, $B0, $B2, $FF, $79, $7C, $7E, $FF, $5F, $66, $6B, $FF, $50, $57, $5C, $FF, $47, $4D, $50, $FF, $3B, $41, $42, $FF, $2F, $35, $37, $FF, $8E, $2E, $34, $36, $FF, $04, $2F, $35, $37, $FF, $43, $49, $4A, $FF, $48, $4E, $4E, $FF, $3F, $44, $45, $FF, $86, $2E, $34, $36, $FF, $02, $43, $4A, $4F, $FF, $58, $79, $A0, $FF, $86, $57, $83, $B7, $FF, $04, $D0, $DC, $EB, $FF, $FF, $FF, $FF, $FF, $FE, $FE, $FF, $FF, $8E, $B2, $D9, $C3, $83, $FF, $FF, $FF, $00, $02, $72, $9F, $CF, $0B, $7A, $90, $A4, $EA, $A0, $2E, $34, $36, $FF, $02, $3F, $46, $4A, $FF, $54, $7E, $B2, $FF, $85, $55, $81, $B6, $FF, $01, $81, $A2, $C9, $FF, $82, $FF, $FF, $FF, $FF, $02, $A2, $C0, $DF, $E0, $72, $9F, $CF, $0B, $82, $FF, $FF, $FF, $00, $0A, $7F, $A8, $D3, $5A, $D4, $E2, $F0, $FA, $EA, $EA, $EB, $FF, $C3, $C5, $C9, $FF, $5B, $74, $8D, $FF, $68, $77, $86, $FF, $61, $69, $6F, $FF, $45, $4A, $4A, $FF, $44, $4A, $49, $FF, $45, $49, $4A, $FF, $82, $44, $49, $49, $FF, $82, $43, $48, $48, $FF, $03, $42, $47, $47, $FF, $3B, $40, $41, $FF, $32, $38, $39, $FF, $92, $2E, $34, $36, $FF, $01, $53, $67, $7D, $FF, $85, $53, $7F, $B4, $FF, $05, $56, $81, $B5, $FF, $F4, $F6, $FA, $FF, $FF, $FF, $FF, $FF, $D4, $E2, $F0, $FA, $7F, $A8, $D3, $5A, $82, $FF, $FF, $FF, $00, $04, $8C, $B1, $D8, $B9, $FB, $FC, $FD, $FF, $FF, $FF, $FF, $FF, $C0, $D0, $E3, $FF, $83, $51, $7D, $B2, $FF, $03, $4D, $73, $A0, $FF, $57, $65, $73, $FF, $34, $3A, $3C, $FF, $84, $2E, $34, $36, $FF, $09, $30, $36, $38, $FF, $3B, $40, $41, $FF, $47, $4B, $4B, $FF, $4E, $53, $52, $FF, $50, $54, $54, $FF, $48, $4E, $4D, $FF, $47, $4C, $4C, $FF, $41, $46, $47, $FF, $30, $36, $38, $FF, $8A, $2E, $34, $36, $FF, $03, $39, $3E, $3F, $FF, $79, $7C, $7D, $FF, $72, $7D, $85, $FF, $86, $51, $7D, $B2, $FF, $04, $C0, $D0, $E3, $FF, $FF, $FF, $FF, $FF, $FB, $FC, $FD, $FF, $8C, $B1, $D8, $B9, $82, $FF, $FF, $FF, $00, $01, $99, $BA, $DC, $D7, $82, $FF, $FF, $FF, $FF, $01, $88, $A5, $CA, $FF, $85, $4F, $7B, $B1, $FF, $02, $53, $79, $A9, $FF, $52, $5D, $66, $FF, $8A, $2E, $34, $36, $FF, $05, $37, $3C, $3E, $FF, $4B, $4F, $4F, $FF, $4F, $53, $53, $FF, $51, $56, $55, $FF, $4A, $4E, $4E, $FF, $87, $2E, $34, $36, $FF, $04, $78, $7B, $7C, $FF, $EE, $EE, $EE, $FF, $F5, $F6, $F7, $FF, $62, $89, $B9, $FF, $85, $4F, $7B, $B1, $FF, $01, $88, $A5, $CA, $FF, $82, $FF, $FF, $FF, $FF, $04, $99, $BA, $DC, $D7, $FF, $FF, $FF, $00, $72, $9F, $CF, $02, $A1, $BF, $DF, $E1, $82, $FF, $FF, $FF, $FF, $01, $64, $8A, $B9, $FF, $86, $4D, $79, $AF, $FF, $02, $4C, $78, $AE, $FF, $55, $67, $7A, $FF, $8D, $2E, $34, $36, $FF, $02, $35, $3B, $3D, $FF, $36, $3B, $3D, $FF, $86, $2E, $34, $36, $FF, $04, $A5, $A8, $A9, $FF, $EE, $EE, $EE, $FF, $EF, $EF, $EF, $FF, $A7, $BD, $D7, $FF, $85, $4D, $79, $AF, $FF, $01, $64, $8A, $B9, $FF, $82, $FF, $FF, $FF, $FF, $04, $A1, $BF, $DF, $E1, $72, $9F, $CF, $02, $72, $9F, $CF, $18, $B1, $CA, $E4, $E7, $82, $FF, $FF, $FF, $FF, $01, $52, $7B, $B0, $FF, $88, $4C, $77, $AD, $FF, $02, $5A, $72, $8F, $FF, $35, $3B, $3E, $FF, $93, $2E, $34, $36, $FF, $01, $9A, $9D, $9E, $FF, $82, $EE, $EE, $EE, $FF, $02, $E8, $EA, $EF, $FF, $50, $7A, $AF, $FF, $84, $4C, $77, $AD, $FF, $01, $52, $7B, $B0, $FF, $82, $FF, $FF, $FF, $FF, $06, $B1, $CA, $E4, $E7, $72, $9F, $CF, $18, $72, $9F, $CF, $32, $C4, $D7, $EB, $F2, $FF, $FF, $FF, $FF, $F3, $F6, $F9, $FF, $8A, $4A, $75, $AB, $FF, $02, $57, $76, $9C, $FF, $3D, $44, $46, $FF, $92, $2E, $34, $36, $FF, $01, $7D, $81, $82, $FF, $82, $EE, $EE, $EE, $FF, $02, $F0, $F0, $F0, $FF, $88, $A4, $C8, $FF, $85, $4A, $75, $AB, $FF, $08, $F3, $F6, $F9, $FF, $FF, $FF, $FF, $FF, $C4, $D7, $EB, $F2, $72, $9F, $CF, $32, $77, $A2, $D1, $4E, $D5, $E2, $F1, $FE, $FF, $FF, $FF, $FF, $E0, $E7, $F1, $FF, $8B, $48, $73, $AA, $FF, $02, $51, $71, $9A, $FF, $38, $3E, $40, $FF, $91, $2E, $34, $36, $FF, $01, $60, $64, $65, $FF, $83, $EE, $EE, $EE, $FF, $01, $C1, $CF, $E0, $FF, $85, $48, $73, $AA, $FF, $03, $E0, $E7, $F1, $FF, $FF, $FF, $FF, $FF, $D5, $E2, $F1, $FE, $82, $77, $A2, $D1, $4E, $03, $D5, $E2, $F1, $FE, $FF, $FF, $FF, $FF, $E0, $E7, $F0, $FF, $8C, $46, $71, $A8, $FF, $02, $54, $72, $95, $FF, $34, $3A, $3C, $FF, $90, $2E, $34, $36, $FF, $01, $41, $47, $48, $FF, $83, $EE, $EE, $EE, $FF, $02, $ED, $EF, $F0, $FF, $4F, $78, $AC, $FF, $84, $46, $71, $A8, $FF, $08, $E0, $E7, $F0, $FF, $FF, $FF, $FF, $FF, $D5, $E2, $F1, $FE, $77, $A2, $D1, $4E, $72, $9F, $CF, $32, $C4, $D7, $EB, $F2, $FF, $FF, $FF, $FF, $F3, $F5, $F9, $FF, $8D, $44, $6F, $A6, $FF, $02, $57, $71, $90, $FF, $31, $37, $39, $FF, $86, $2E, $34, $36, $FF, $0A, $36, $3C, $3E, $FF, $53, $57, $59, $FF, $6F, $73, $74, $FF, $8A, $8D, $8E, $FF, $87, $8B, $8C, $FF, $7D, $80, $82, $FF, $72, $76, $78, $FF, $68, $6B, $6D, $FF, $5C, $61, $63, $FF, $70, $74, $76, $FF, $84, $EE, $EE, $EE, $FF, $01, $86, $A2, $C5, $FF, $84, $44, $6F, $A6, $FF, $06, $F3, $F5, $F9, $FF, $FF, $FF, $FF, $FF, $C4, $D7, $EB, $F2, $72, $9F, $CF, $32, $72, $9F, $CF, $18, $B1, $CA, $E4, $E7, $82, $FF, $FF, $FF, $FF, $01, $48, $72, $A8, $FF, $8D, $42, $6D, $A5, $FF, $02, $59, $70, $8B, $FF, $2F, $35, $37, $FF, $82, $2E, $34, $36, $FF, $04, $3C, $41, $43, $FF, $82, $86, $87, $FF, $CA, $CB, $CB, $FF, $ED, $ED, $ED, $FF, $8D, $EE, $EE, $EE, $FF, $01, $BC, $C9, $DB, $FF, $83, $42, $6D, $A5, $FF, $01, $48, $72, $A8, $FF, $82, $FF, $FF, $FF, $FF, $04, $B1, $CA, $E4, $E7, $72, $9F, $CF, $18, $72, $9F, $CF, $02, $A1, $BF, $DF, $E1, $82, $FF, $FF, $FF, $FF, $01, $59, $7E, $AF, $FF, $8E, $40, $6B, $A3, $FF, $04, $60, $72, $86, $FF, $63, $67, $69, $FF, $AE, $B0, $B1, $FF, $E8, $E8, $E8, $FF, $90, $EE, $EE, $EE, $FF, $01, $D6, $DC, $E5, $FF, $83, $40, $6B, $A3, $FF, $01, $59, $7E, $AF, $FF, $82, $FF, $FF, $FF, $FF, $04, $A1, $BF, $DF, $E1, $72, $9F, $CF, $02, $FF, $FF, $FF, $00, $99, $BA, $DC, $D7, $82, $FF, $FF, $FF, $FF, $01, $7C, $99, $BF, $FF, $8D, $3E, $69, $A1, $FF, $02, $4A, $72, $A6, $FF, $C8, $D2, $DE, $FF, $93, $EE, $EE, $EE, $FF, $02, $E9, $EA, $EC, $FF, $3F, $6A, $A1, $FF, $82, $3E, $69, $A1, $FF, $01, $7C, $99, $BF, $FF, $82, $FF, $FF, $FF, $FF, $01, $99, $BA, $DC, $D7, $82, $FF, $FF, $FF, $00, $04, $8C, $B1, $D8, $B9, $FB, $FC, $FD, $FF, $FF, $FF, $FF, $FF, $B8, $C8, $DC, $FF, $8C, $3C, $67, $A0, $FF, $02, $55, $7A, $AC, $FF, $D0, $D7, $E1, $FF, $95, $EE, $EE, $EE, $FF, $01, $55, $79, $AA, $FF, $82, $3C, $67, $A0, $FF, $04, $B8, $C8, $DC, $FF, $FF, $FF, $FF, $FF, $FB, $FC, $FD, $FF, $8C, $B1, $D8, $B9, $82, $FF, $FF, $FF, $00, $05, $7F, $A8, $D3, $5A, $D4, $E2, $F0, $FA, $FF, $FF, $FF, $FF, $F2, $F5, $F9, $FF, $3D, $67, $A0, $FF, $88, $3A, $65, $9E, $FF, $04, $41, $6A, $A0, $FF, $7D, $97, $BB, $FF, $C0, $CC, $DA, $FF, $EC, $ED, $ED, $FF, $96, $EE, $EE, $EE, $FF, $07, $6F, $8D, $B5, $FF, $3A, $65, $9E, $FF, $3D, $67, $A0, $FF, $F2, $F5, $F9, $FF, $FF, $FF, $FF, $FF, $D4, $E2, $F0, $FA, $7F, $A8, $D3, $5A, $82, $FF, $FF, $FF, $00, $02, $72, $9F, $CF, $0B, $A2, $C0, $DF, $E0, $82, $FF, $FF, $FF, $FF, $01, $6C, $8B, $B6, $FF, $86, $38, $63, $9C, $FF, $03, $5C, $7E, $AC, $FF, $A7, $B8, $CF, $FF, $E4, $E7, $E9, $FF, $99, $EE, $EE, $EE, $FF, $03, $91, $A8, $C5, $FF, $38, $63, $9C, $FF, $6C, $8B, $B6, $FF, $82, $FF, $FF, $FF, $FF, $02, $A2, $C0, $DF, $E0, $72, $9F, $CF, $0B, $83, $FF, $FF, $FF, $00, $04, $8E, $B2, $D9, $C3, $FE, $FE, $FF, $FF, $FF, $FF, $FF, $FF, $C6, $D2, $E2, $FF, $84, $36, $61, $9A, $FF, $03, $3E, $67, $9E, $FF, $B3, $C4, $D9, $FF, $F5, $F5, $F5, $FF, $9B, $EE, $EE, $EE, $FF, $06, $F2, $F3, $F3, $FF, $A6, $B9, $D2, $FF, $C8, $D4, $E3, $FF, $FF, $FF, $FF, $FF, $FE, $FE, $FF, $FF, $8E, $B2, $D9, $C3, $84, $FF, $FF, $FF, $00, $02, $81, $A9, $D4, $51, $C7, $D9, $EC, $F1, $82, $FF, $FF, $FF, $FF, $01, $69, $88, $B3, $FF, $82, $34, $5F, $99, $FF, $04, $43, $6B, $A1, $FF, $DC, $E3, $ED, $FF, $FF, $FF, $FF, $FF, $FB, $FB, $FB, $FF, $9B, $EE, $EE, $EE, $FF, $01, $F7, $F7, $F7, $FF, $83, $FF, $FF, $FF, $FF, $02, $C7, $D9, $EC, $F1, $81, $A9, $D4, $51, $85, $FF, $FF, $FF, $00, $07, $8E, $B2, $D9, $C7, $FA, $FC, $FD, $FF, $FF, $FF, $FF, $FF, $D7, $DF, $EB, $FF, $33, $5E, $97, $FF, $3B, $64, $9B, $FF, $D4, $DD, $E9, $FF, $83, $FF, $FF, $FF, $FF, $01, $F6, $F6, $F6, $FF, $9A, $EE, $EE, $EE, $FF, $05, $FA, $FA, $FA, $FF, $F5, $F7, $FA, $FF, $FF, $FF, $FF, $FF, $FA, $FC, $FD, $FF, $8E, $B2, $D9, $C7, $86, $FF, $FF, $FF, $00, $02, $7A, $A5, $D2, $37, $B8, $CE, $E7, $EB, $82, $FF, $FF, $FF, $FF, $02, $8A, $A2, $C2, $FF, $C7, $D3, $E2, $FF, $85, $FF, $FF, $FF, $FF, $02, $FC, $FC, $FC, $FF, $F3, $F3, $F3, $FF, $97, $EE, $EE, $EE, $FF, $02, $F4, $F4, $F4, $FF, $F9, $FA, $FC, $FF, $82, $FF, $FF, $FF, $FF, $02, $B8, $CE, $E7, $EB, $7A, $A5, $D2, $37, $87, $FF, $FF, $FF, $00, $05, $8B, $B0, $D7, $BB, $F3, $F7, $FB, $FF, $FF, $FF, $FF, $FF, $FD, $FD, $FD, $FF, $F9, $FB, $FC, $FF, $87, $FF, $FF, $FF, $FF, $05, $FC, $FC, $FC, $FF, $F7, $F7, $F7, $FF, $F4, $F4, $F4, $FF, $F1, $F1, $F1, $FF, $EF, $EF, $EF, $FF, $8F, $EE, $EE, $EE, $FF, $08, $EF, $EF, $EF, $FF, $F2, $F2, $F2, $FF, $F7, $F7, $F7, $FF, $FF, $FF, $FF, $FF, $FD, $FD, $FE, $FF, $FF, $FF, $FF, $FF, $F3, $F7, $FB, $FF, $8B, $B0, $D7, $BB, $88, $FF, $FF, $FF, $00, $06, $72, $9F, $CF, $18, $96, $B8, $DB, $DC, $FC, $FD, $FE, $FF, $FF, $FF, $FF, $FF, $F4, $F6, $F9, $FF, $FB, $FC, $FD, $FF, $8B, $FF, $FF, $FF, $FF, $02, $FD, $FD, $FD, $FF, $FC, $FC, $FC, $FF, $82, $FB, $FB, $FB, $FF, $82, $FA, $FA, $FA, $FF, $84, $F9, $F9, $F9, $FF, $83, $FA, $FA, $FA, $FF, $02, $FB, $FB, $FB, $FF, $FD, $FD, $FD, $FF, $83, $FF, $FF, $FF, $FF, $05, $FA, $FB, $FC, $FF, $FF, $FF, $FF, $FF, $FC, $FD, $FE, $FF, $96, $B8, $DB, $DC, $72, $9F, $CF, $18, $89, $FF, $FF, $FF, $00, $02, $7E, $A7, $D3, $37, $A8, $C4, $E1, $E5, $82, $FF, $FF, $FF, $FF, $02, $EA, $EE, $F4, $FF, $FD, $FD, $FE, $FF, $9B, $FF, $FF, $FF, $FF, $01, $F3, $F5, $F9, $FF, $82, $FF, $FF, $FF, $FF, $02, $A8, $C4, $E1, $E5, $7E, $A7, $D3, $37, $8B, $FF, $FF, $FF, $00, $02, $88, $AE, $D6, $64, $C1, $D5, $EA, $EE, $82, $FF, $FF, $FF, $FF, $02, $F5, $F7, $FA, $FF, $FA, $FB, $FC, $FF, $98, $FF, $FF, $FF, $FF, $02, $FD, $FD, $FE, $FF, $F6, $F8, $FA, $FF, $82, $FF, $FF, $FF, $FF, $02, $C1, $D5, $EA, $EE, $88, $AE, $D6, $64, $8D, $FF, $FF, $FF, $00, $02, $8C, $B0, $D8, $8A, $C1, $D5, $EA, $EE, $82, $FF, $FF, $FF, $FF, $02, $FC, $FC, $FD, $FF, $E5, $EA, $F1, $FF, $96, $FF, $FF, $FF, $FF, $02, $F7, $F8, $FB, $FF, $FD, $FD, $FE, $FF, $82, $FF, $FF, $FF, $FF, $02, $C1, $D5, $EA, $EE, $8C, $B0, $D8, $8A, $8F, $FF, $FF, $FF, $00, $03, $88, $AE, $D6, $64, $A8, $C4, $E1, $E5, $FC, $FD, $FE, $FF, $82, $FF, $FF, $FF, $FF, $02, $E9, $ED, $F3, $FF, $FB, $FC, $FD, $FF, $92, $FF, $FF, $FF, $FF, $02, $FE, $FE, $FF, $FF, $F2, $F4, $F8, $FF, $82, $FF, $FF, $FF, $FF, $03, $FC, $FD, $FE, $FF, $A8, $C4, $E1, $E5, $88, $AE, $D6, $64, $91, $FF, $FF, $FF, $00, $03, $7E, $A7, $D3, $37, $96, $B8, $DB, $DC, $F3, $F7, $FB, $FF, $83, $FF, $FF, $FF, $FF, $02, $E6, $EB, $F2, $FF, $F6, $F8, $FA, $FF, $8E, $FF, $FF, $FF, $FF, $02, $FA, $FB, $FC, $FF, $E6, $EB, $F2, $FF, $83, $FF, $FF, $FF, $FF, $03, $F3, $F7, $FB, $FF, $96, $B8, $DB, $DC, $7E, $A7, $D3, $37, $93, $FF, $FF, $FF, $00, $04, $72, $9F, $CF, $18, $8B, $B0, $D7, $BB, $B8, $CE, $E7, $EB, $FA, $FC, $FD, $FF, $83, $FF, $FF, $FF, $FF, $02, $F6, $F7, $FA, $FF, $EC, $EF, $F5, $FF, $89, $FF, $FF, $FF, $FF, $03, $FD, $FD, $FE, $FF, $F3, $F5, $F9, $FF, $F8, $F9, $FB, $FF, $83, $FF, $FF, $FF, $FF, $04, $FA, $FC, $FD, $FF, $B8, $CE, $E7, $EB, $8B, $B0, $D7, $BB, $72, $9F, $CF, $18, $96, $FF, $FF, $FF, $00, $04, $7A, $A5, $D2, $37, $8E, $B2, $D9, $C7, $C7, $D9, $EC, $F1, $FE, $FE, $FF, $FF, $86, $FF, $FF, $FF, $FF, $04, $F7, $F9, $FB, $FF, $F0, $F2, $F7, $FF, $EF, $F2, $F7, $FF, $F7, $F8, $FB, $FF, $86, $FF, $FF, $FF, $FF, $04, $FE, $FE, $FF, $FF, $C7, $D9, $EC, $F1, $8E, $B2, $D9, $C7, $7A, $A5, $D2, $37, $9A, $FF, $FF, $FF, $00, $05, $81, $A9, $D4, $51, $8E, $B2, $D9, $C3, $A2, $C0, $DF, $E0, $D4, $E2, $F0, $FA, $FB, $FC, $FD, $FF, $8A, $FF, $FF, $FF, $FF, $05, $FB, $FC, $FD, $FF, $D4, $E2, $F0, $FA, $A2, $C0, $DF, $E0, $8E, $B2, $D9, $C3, $81, $A9, $D4, $51, $9E, $FF, $FF, $FF, $00, $07, $72, $9F, $CF, $0B, $7F, $A8, $D3, $5A, $8C, $B1, $D8, $B9, $99, $BA, $DC, $D7, $A1, $BF, $DF, $E1, $B1, $CA, $E4, $E7, $C4, $D7, $EB, $F2, $82, $D5, $E2, $F1, $FE, $07, $C4, $D7, $EB, $F2, $B1, $CA, $E4, $E7, $A1, $BF, $DF, $E1, $99, $BA, $DC, $D7, $8C, $B1, $D8, $B9, $7F, $A8, $D3, $5A, $72, $9F, $CF, $0B, $A4, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $02, $72, $9F, $CF, $18, $72, $9F, $CF, $32, $82, $77, $A2, $D1, $4E, $03, $72, $9F, $CF, $32, $72, $9F, $CF, $18, $72, $9F, $CF, $02, $94, $FF, $FF, $FF, $00, $00); tuxcmd-0.6.70+dfsg/pixmaps/stock_up_one_dir_16_png.inc0000644000175000017500000001303311300022643021710 0ustar salvisalviconst stock_up_one_dir_16_png: array[1..1049] of byte = ( $47, $64, $6B, $50, $00, $00, $04, $18, $01, $01, $00, $02, $00, $00, $00, $40, $00, $00, $00, $10, $00, $00, $00, $10, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $39, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $39, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $39, $00, $00, $00, $FF, $E4, $E5, $DE, $FF, $D3, $D5, $CA, $FF, $D3, $D5, $CA, $FF, $A5, $A7, $97, $FF, $00, $00, $00, $FF, $00, $00, $00, $39, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $F3, $F4, $F0, $FF, $AB, $AE, $99, $FF, $BD, $C0, $AD, $FF, $BC, $BE, $AA, $FF, $B1, $B4, $9F, $FF, $6E, $71, $5C, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $65, $00, $00, $00, $00, $00, $00, $00, $FF, $E6, $E7, $DD, $FF, $F5, $F6, $F3, $FF, $E6, $E7, $DD, $FF, $E6, $E7, $DD, $FF, $E6, $E7, $DD, $FF, $E4, $E5, $DB, $FF, $E6, $E7, $DD, $FF, $E2, $E4, $D9, $FF, $E2, $E4, $D9, $FF, $E1, $E3, $D8, $FF, $E1, $E3, $D8, $FF, $DF, $E1, $D6, $FF, $C4, $C6, $B6, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $FF, $F7, $F7, $F6, $FF, $D3, $D6, $C5, $FF, $D3, $D6, $C4, $FF, $D2, $D4, $C2, $FF, $73, $74, $6A, $FF, $CE, $D1, $BD, $FF, $CC, $CE, $BA, $FF, $CA, $CD, $B9, $FF, $CA, $CD, $B9, $FF, $C8, $CB, $B6, $FF, $C6, $C9, $B3, $FF, $C4, $C8, $B1, $FF, $93, $96, $7C, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $FF, $F0, $F0, $EB, $FF, $D3, $D6, $C5, $FF, $D3, $D6, $C4, $FF, $74, $76, $6C, $FF, $00, $00, $00, $FF, $72, $74, $69, $FF, $CC, $CE, $BA, $FF, $CA, $CD, $B9, $FF, $CA, $CD, $B9, $FF, $C8, $CB, $B6, $FF, $C6, $C9, $B3, $FF, $C4, $C8, $B1, $FF, $93, $96, $7C, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $FF, $F0, $F1, $EC, $FF, $D2, $D4, $C2, $FF, $7C, $7E, $73, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $6F, $71, $65, $FF, $C6, $C9, $B3, $FF, $C6, $C9, $B3, $FF, $C4, $C8, $B1, $FF, $C3, $C6, $AF, $FF, $C1, $C4, $AD, $FF, $90, $94, $78, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $FF, $EF, $F0, $EB, $FF, $CE, $D1, $BD, $FF, $CC, $CE, $BA, $FF, $CA, $CD, $B9, $FF, $00, $00, $00, $FF, $C6, $C9, $B3, $FF, $C4, $C8, $B1, $FF, $C3, $C6, $AF, $FF, $C3, $C6, $AF, $FF, $C1, $C4, $AD, $FF, $BF, $C2, $AB, $FF, $BD, $C1, $A8, $FF, $8E, $91, $75, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $FF, $ED, $EE, $E8, $FF, $CA, $CD, $B9, $FF, $C8, $CB, $B6, $FF, $C6, $C9, $B3, $FF, $00, $00, $00, $FF, $C3, $C6, $AF, $FF, $C1, $C4, $AD, $FF, $BF, $C2, $AB, $FF, $BF, $C2, $AB, $FF, $BD, $C1, $A8, $FF, $BB, $BE, $A5, $FF, $BA, $BD, $A3, $FF, $8B, $8F, $72, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $FF, $EC, $EE, $E7, $FF, $C6, $C9, $B3, $FF, $C4, $C8, $B1, $FF, $C3, $C6, $AF, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $37, $38, $31, $FF, $55, $56, $4B, $FF, $63, $64, $56, $FF, $8B, $8D, $79, $FF, $B7, $BA, $A0, $FF, $8B, $8F, $72, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $FF, $E8, $E8, $E0, $FF, $C3, $C6, $AF, $FF, $C1, $C4, $AD, $FF, $BF, $C2, $AB, $FF, $BD, $C1, $A8, $FF, $BB, $BE, $A5, $FF, $BA, $BD, $A3, $FF, $B7, $BA, $A0, $FF, $B7, $BA, $A0, $FF, $B7, $BA, $A0, $FF, $B7, $BA, $A0, $FF, $B7, $BA, $A0, $FF, $8B, $8F, $72, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $FF, $C6, $C9, $BA, $FF, $90, $94, $78, $FF, $8E, $92, $76, $FF, $8E, $91, $75, $FF, $8C, $90, $73, $FF, $8B, $8F, $72, $FF, $8B, $8F, $72, $FF, $8B, $8F, $72, $FF, $8B, $8F, $72, $FF, $8B, $8F, $72, $FF, $8B, $8F, $72, $FF, $8B, $8F, $72, $FF, $64, $67, $51, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $65, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $65, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00); tuxcmd-0.6.70+dfsg/pixmaps/tuxcmd_24_png.inc0000644000175000017500000001716211300022643017674 0ustar salvisalviconst tuxcmd_24_png: array[1..1453] of byte = ( $47, $64, $6B, $50, $00, $00, $05, $AC, $02, $01, $00, $02, $00, $00, $00, $60, $00, $00, $00, $18, $00, $00, $00, $18, $88, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $01, $8B, $B0, $D8, $2F, $A7, $C3, $E1, $70, $82, $BC, $D2, $E8, $96, $03, $A7, $C3, $E1, $70, $8B, $B0, $D8, $2F, $72, $9F, $CF, $01, $8E, $FF, $FF, $FF, $00, $05, $97, $B8, $DC, $31, $C1, $D5, $EA, $B2, $D5, $E2, $F1, $DF, $EE, $F4, $F9, $FC, $FF, $FF, $FF, $FF, $82, $FC, $FD, $FE, $FF, $05, $FF, $FF, $FF, $FF, $EE, $F4, $F9, $FC, $D5, $E2, $F1, $DF, $C1, $D5, $EA, $B2, $97, $B8, $DC, $31, $8A, $FF, $FF, $FF, $00, $07, $72, $9F, $CF, $02, $A9, $C5, $E2, $7F, $E0, $EA, $F4, $E9, $F8, $FA, $FC, $FF, $C5, $D6, $EA, $FF, $A7, $C1, $DF, $FF, $8A, $AD, $D4, $FF, $82, $70, $9B, $CA, $FF, $07, $8A, $AD, $D4, $FF, $A7, $C1, $DF, $FF, $C5, $D6, $EA, $FF, $F8, $FA, $FC, $FF, $E0, $EA, $F4, $E9, $A9, $C5, $E2, $7F, $72, $9F, $CF, $02, $87, $FF, $FF, $FF, $00, $05, $95, $B7, $DB, $24, $BE, $D3, $E9, $BB, $F9, $FB, $FD, $FF, $D7, $E2, $F0, $FF, $7A, $A1, $CD, $FF, $88, $68, $94, $C6, $FF, $05, $7A, $A1, $CD, $FF, $D7, $E2, $F0, $FF, $F9, $FB, $FD, $FF, $BE, $D3, $E9, $BB, $95, $B7, $DB, $24, $85, $FF, $FF, $FF, $00, $04, $72, $9F, $CF, $02, $BE, $D3, $E9, $BB, $F9, $FB, $FD, $FF, $A3, $BD, $DB, $FF, $8C, $64, $90, $C2, $FF, $04, $A3, $BD, $DB, $FF, $F9, $FB, $FD, $FF, $BE, $D3, $E9, $BB, $72, $9F, $CF, $02, $84, $FF, $FF, $FF, $00, $03, $A9, $C5, $E2, $7F, $F9, $FB, $FD, $FF, $A0, $BA, $D9, $FF, $88, $60, $8C, $BF, $FF, $01, $60, $8B, $BE, $FF, $85, $60, $8C, $BF, $FF, $03, $A0, $BA, $D9, $FF, $F9, $FB, $FD, $FF, $A9, $C5, $E2, $7F, $83, $FF, $FF, $FF, $00, $03, $97, $B8, $DC, $31, $E0, $EA, $F4, $E9, $D4, $DF, $ED, $FF, $85, $5C, $88, $BC, $FF, $08, $66, $87, $AE, $FF, $63, $6F, $79, $FF, $4A, $51, $55, $FF, $38, $3D, $40, $FF, $3B, $41, $43, $FF, $60, $6B, $75, $FF, $69, $81, $9D, $FF, $5C, $86, $B8, $FF, $83, $5C, $88, $BC, $FF, $03, $D4, $DF, $ED, $FF, $E0, $EA, $F4, $E9, $97, $B8, $DC, $31, $82, $FF, $FF, $FF, $00, $0D, $B5, $C8, $DB, $B7, $B4, $B7, $B8, $FF, $74, $84, $95, $FF, $71, $7F, $8F, $FF, $79, $84, $90, $FF, $76, $7E, $85, $FF, $67, $6D, $71, $FF, $64, $69, $6A, $FF, $52, $55, $57, $FF, $47, $4D, $4E, $FF, $3F, $46, $46, $FF, $63, $68, $67, $FF, $4D, $51, $52, $FF, $82, $2E, $34, $36, $FF, $02, $40, $47, $49, $FF, $61, $7E, $9C, $FF, $82, $58, $84, $B8, $FF, $0F, $6C, $92, $C0, $FF, $F6, $F9, $FB, $FF, $C1, $D5, $EA, $B2, $FF, $FF, $FF, $00, $72, $9F, $CF, $01, $98, $A2, $AD, $EA, $54, $5B, $62, $FF, $3C, $42, $45, $FF, $26, $2A, $2B, $FF, $2D, $33, $35, $FF, $2F, $34, $36, $FF, $2F, $35, $37, $FF, $2B, $30, $32, $FF, $2A, $2E, $30, $FF, $2C, $31, $33, $FF, $86, $2E, $34, $36, $FF, $02, $32, $38, $3A, $FF, $56, $7B, $A5, $FF, $82, $54, $80, $B5, $FF, $11, $BB, $CD, $E2, $FF, $D5, $E2, $F1, $DF, $72, $9F, $CF, $01, $8B, $B0, $D8, $2F, $EE, $F4, $F9, $FC, $96, $B0, $D0, $FF, $50, $7C, $B1, $FF, $56, $79, $A0, $FF, $57, $62, $69, $FF, $2E, $34, $36, $FF, $2F, $35, $37, $FF, $46, $4B, $4B, $FF, $4E, $52, $52, $FF, $52, $56, $57, $FF, $4F, $55, $54, $FF, $4D, $51, $52, $FF, $3D, $43, $44, $FF, $83, $2E, $34, $36, $FF, $02, $7E, $82, $83, $FF, $8B, $A0, $BA, $FF, $82, $50, $7C, $B1, $FF, $06, $96, $B0, $D0, $FF, $EE, $F4, $F9, $FC, $8B, $B0, $D8, $2F, $A7, $C3, $E1, $70, $FF, $FF, $FF, $FF, $71, $94, $BF, $FF, $82, $4C, $78, $AE, $FF, $02, $4B, $77, $AD, $FF, $57, $65, $71, $FF, $83, $2E, $34, $36, $FF, $83, $37, $3C, $3E, $FF, $01, $3C, $42, $43, $FF, $83, $2E, $34, $36, $FF, $0A, $C8, $C9, $C9, $FF, $DF, $E5, $EB, $FF, $4D, $79, $AF, $FF, $4C, $78, $AE, $FF, $71, $94, $BF, $FF, $FF, $FF, $FF, $FF, $A7, $C3, $E1, $70, $BC, $D2, $E8, $96, $FB, $FC, $FD, $FF, $4E, $78, $AD, $FF, $83, $49, $74, $AB, $FF, $02, $49, $74, $AA, $FF, $5A, $67, $76, $FF, $89, $2E, $34, $36, $FF, $06, $AF, $B1, $B1, $FF, $EF, $EF, $EF, $FF, $7A, $98, $C0, $FF, $49, $74, $AB, $FF, $4E, $78, $AD, $FF, $FB, $FC, $FD, $FF, $82, $BC, $D2, $E8, $96, $02, $FB, $FC, $FD, $FF, $4A, $74, $A9, $FF, $85, $45, $70, $A7, $FF, $01, $5B, $6B, $7A, $FF, $83, $2E, $34, $36, $FF, $0F, $30, $36, $38, $FF, $48, $4D, $4F, $FF, $5D, $60, $62, $FF, $54, $58, $5A, $FF, $48, $4D, $4F, $FF, $A3, $A6, $A7, $FF, $EE, $EE, $EE, $FF, $AF, $C0, $D5, $FF, $45, $70, $A7, $FF, $4A, $74, $A9, $FF, $FB, $FC, $FD, $FF, $BC, $D2, $E8, $96, $A7, $C3, $E1, $70, $FF, $FF, $FF, $FF, $68, $8A, $B7, $FF, $86, $41, $6C, $A4, $FF, $04, $5F, $6E, $7F, $FF, $5D, $62, $63, $FF, $A7, $AA, $AB, $FF, $E5, $E5, $E6, $FF, $86, $E3, $E3, $E3, $FF, $08, $DC, $E1, $E8, $FF, $41, $6C, $A4, $FF, $68, $8A, $B7, $FF, $FF, $FF, $FF, $FF, $A7, $C3, $E1, $70, $8B, $B0, $D8, $2F, $EE, $F4, $F9, $FC, $8B, $A4, $C6, $FF, $85, $3D, $68, $A0, $FF, $02, $42, $6C, $A3, $FF, $B7, $C4, $D6, $FF, $89, $E3, $E3, $E3, $FF, $08, $E2, $E2, $E3, $FF, $45, $6E, $A3, $FF, $8B, $A4, $C6, $FF, $EE, $F4, $F9, $FC, $8B, $B0, $D8, $2F, $72, $9F, $CF, $01, $D5, $E2, $F1, $DF, $B1, $C2, $D8, $FF, $83, $39, $64, $9D, $FF, $03, $58, $7C, $AB, $FF, $A6, $B8, $CF, $FF, $E2, $E5, $E8, $FF, $8B, $E3, $E3, $E3, $FF, $0B, $5F, $81, $AE, $FF, $B1, $C2, $D8, $FF, $D5, $E2, $F1, $DF, $72, $9F, $CF, $01, $FF, $FF, $FF, $00, $C1, $D5, $EA, $B2, $F5, $F7, $FA, $FF, $4D, $73, $A6, $FF, $38, $62, $9C, $FF, $A7, $BA, $D3, $FF, $E7, $E8, $E8, $FF, $8D, $E3, $E3, $E3, $FF, $03, $DD, $E1, $E6, $FF, $F6, $F8, $FB, $FF, $C1, $D5, $EA, $B2, $82, $FF, $FF, $FF, $00, $07, $97, $B8, $DC, $31, $E0, $EA, $F4, $E9, $C8, $D4, $E3, $FF, $B5, $C4, $D9, $FF, $FF, $FF, $FF, $FF, $FD, $FD, $FD, $FF, $E8, $E8, $E8, $FF, $8B, $E3, $E3, $E3, $FF, $04, $E5, $E5, $E5, $FF, $E3, $E7, $EB, $FF, $E0, $EA, $F4, $E9, $97, $B8, $DC, $31, $83, $FF, $FF, $FF, $00, $03, $A9, $C5, $E2, $7F, $F9, $FB, $FD, $FF, $E6, $EB, $F2, $FF, $83, $FF, $FF, $FF, $FF, $05, $FD, $FD, $FD, $FF, $FA, $FA, $FA, $FF, $F9, $F9, $F9, $FF, $EC, $EC, $EC, $FF, $EB, $EB, $EB, $FF, $82, $E9, $E9, $E9, $FF, $07, $EA, $EA, $EA, $FF, $EB, $EB, $EB, $FF, $ED, $ED, $ED, $FF, $EE, $EE, $EE, $FF, $F2, $F4, $F7, $FF, $FA, $FB, $FD, $FF, $A9, $C5, $E2, $7F, $84, $FF, $FF, $FF, $00, $04, $72, $9F, $CF, $02, $BE, $D3, $E9, $BB, $F8, $F9, $FB, $FF, $EA, $EE, $F4, $FF, $8C, $FF, $FF, $FF, $FF, $04, $EC, $F0, $F5, $FF, $F8, $F9, $FC, $FF, $BE, $D3, $E9, $BB, $72, $9F, $CF, $02, $85, $FF, $FF, $FF, $00, $05, $95, $B7, $DB, $24, $BE, $D3, $E9, $BB, $F9, $FB, $FD, $FF, $E7, $EB, $F2, $FF, $FE, $FE, $FF, $FF, $89, $FF, $FF, $FF, $FF, $04, $ED, $F1, $F6, $FF, $F9, $FB, $FD, $FF, $BE, $D3, $E9, $BB, $95, $B7, $DB, $24, $87, $FF, $FF, $FF, $00, $06, $72, $9F, $CF, $02, $A9, $C5, $E2, $7F, $E0, $EA, $F4, $E9, $F6, $F8, $FA, $FF, $DC, $E3, $ED, $FF, $F8, $FA, $FB, $FF, $84, $FF, $FF, $FF, $FF, $06, $FA, $FB, $FC, $FF, $DF, $E5, $EE, $FF, $F6, $F8, $FA, $FF, $E0, $EA, $F4, $E9, $A9, $C5, $E2, $7F, $72, $9F, $CF, $02, $8A, $FF, $FF, $FF, $00, $05, $97, $B8, $DC, $31, $C1, $D5, $EA, $B2, $D5, $E2, $F1, $DF, $EE, $F4, $F9, $FC, $FF, $FF, $FF, $FF, $82, $FC, $FC, $FE, $FF, $05, $FF, $FF, $FF, $FF, $EE, $F4, $F9, $FC, $D5, $E2, $F1, $DF, $C1, $D5, $EA, $B2, $97, $B8, $DC, $31, $8E, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $01, $8B, $B0, $D8, $2F, $A7, $C3, $E1, $70, $82, $BC, $D2, $E8, $96, $03, $A7, $C3, $E1, $70, $8B, $B0, $D8, $2F, $72, $9F, $CF, $01, $88, $FF, $FF, $FF, $00, $00); tuxcmd-0.6.70+dfsg/pixmaps/gnome_dev_floppy_16_png.inc0000644000175000017500000001303311300022643021716 0ustar salvisalviconst gnome_dev_floppy_16_png: array[1..1049] of byte = ( $47, $64, $6B, $50, $00, $00, $04, $18, $01, $01, $00, $02, $00, $00, $00, $40, $00, $00, $00, $10, $00, $00, $00, $10, $00, $00, $00, $47, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $55, $00, $00, $00, $FF, $F7, $F8, $FA, $FF, $CB, $DD, $EB, $FF, $C8, $8A, $80, $FF, $D1, $8F, $84, $FF, $D1, $8F, $84, $FF, $D1, $8F, $84, $FF, $D1, $8F, $84, $FF, $D1, $8F, $84, $FF, $D1, $8F, $84, $FF, $D1, $90, $84, $FF, $D1, $8F, $84, $FF, $D3, $91, $86, $FF, $BF, $D5, $E8, $FF, $BF, $D5, $E8, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $DB, $E7, $F1, $FF, $8D, $A9, $BE, $FF, $B7, $87, $7E, $FF, $C7, $75, $68, $FF, $C7, $74, $67, $FF, $C7, $74, $67, $FF, $C7, $74, $67, $FF, $C7, $74, $67, $FF, $C7, $74, $66, $FF, $C7, $74, $67, $FF, $C8, $76, $68, $FF, $CD, $86, $7A, $FF, $8D, $A9, $BE, $FF, $54, $69, $7C, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $CF, $E0, $ED, $FF, $8D, $A9, $BE, $FF, $D7, $D7, $D7, $FF, $FE, $FE, $FE, $FF, $FE, $FE, $FE, $FF, $FE, $FE, $FE, $FF, $FE, $FE, $FE, $FF, $FE, $FE, $FE, $FF, $FE, $FE, $FE, $FF, $FE, $FE, $FE, $FF, $FE, $FE, $FE, $FF, $F9, $F9, $F9, $FF, $84, $A0, $B5, $FF, $4F, $64, $75, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $CF, $E0, $ED, $FF, $8D, $A9, $BE, $FF, $D7, $D7, $D7, $FF, $D7, $D7, $D7, $FF, $D7, $D7, $D7, $FF, $D7, $D7, $D7, $FF, $D7, $D7, $D7, $FF, $D7, $D7, $D7, $FF, $D7, $D7, $D7, $FF, $D7, $D7, $D7, $FF, $D6, $D6, $D6, $FF, $F1, $F1, $F1, $FF, $81, $9A, $AE, $FF, $49, $60, $72, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $CF, $E0, $ED, $FF, $8D, $A9, $BE, $FF, $D7, $D7, $D7, $FF, $FE, $FE, $FE, $FF, $FE, $FE, $FE, $FF, $FE, $FE, $FE, $FF, $FE, $FE, $FE, $FF, $FC, $FC, $FC, $FF, $F4, $F4, $F4, $FF, $EB, $EB, $EB, $FF, $EB, $EB, $EB, $FF, $F1, $F1, $F1, $FF, $81, $9A, $AE, $FF, $49, $60, $72, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $CF, $E0, $ED, $FF, $8D, $A9, $BE, $FF, $D7, $D7, $D7, $FF, $D7, $D7, $D7, $FF, $D7, $D7, $D7, $FF, $D7, $D7, $D7, $FF, $D4, $D4, $D4, $FF, $C5, $C5, $C5, $FF, $C5, $C5, $C5, $FF, $C5, $C5, $C5, $FF, $C5, $C5, $C5, $FF, $F1, $F1, $F1, $FF, $81, $9A, $AE, $FF, $49, $60, $72, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $CF, $E0, $ED, $FF, $8D, $A9, $BE, $FF, $EE, $EE, $EE, $FF, $FE, $FE, $FE, $FF, $FE, $FE, $FE, $FF, $F2, $F2, $F2, $FF, $EB, $EB, $EB, $FF, $EB, $EB, $EB, $FF, $EB, $EB, $EB, $FF, $EB, $EB, $EB, $FF, $EB, $EB, $EB, $FF, $EE, $EE, $EE, $FF, $81, $9A, $AE, $FF, $49, $60, $72, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $CF, $E0, $ED, $FF, $8D, $A9, $BE, $FF, $AE, $BF, $CD, $FF, $CA, $D6, $DF, $FF, $C7, $CF, $DA, $FF, $BF, $CB, $D6, $FF, $BF, $CB, $D6, $FF, $BF, $CB, $D6, $FF, $BF, $CB, $D6, $FF, $BF, $CB, $D6, $FF, $BF, $CB, $D6, $FF, $A1, $B6, $C4, $FF, $81, $9A, $AE, $FF, $49, $60, $72, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $CF, $E0, $ED, $FF, $8D, $A9, $BE, $FF, $8D, $A9, $BE, $FF, $89, $A6, $BC, $FF, $7F, $9A, $AE, $FF, $81, $9A, $AE, $FF, $81, $9A, $AE, $FF, $81, $9A, $AE, $FF, $81, $9A, $AE, $FF, $7E, $99, $AD, $FF, $7D, $97, $AC, $FF, $81, $9A, $AE, $FF, $81, $9A, $AE, $FF, $49, $60, $72, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $CF, $E0, $ED, $FF, $8D, $A9, $BE, $FF, $8C, $A8, $BD, $FF, $A8, $B1, $BD, $FF, $C5, $C5, $C5, $FF, $C5, $C5, $C5, $FF, $CE, $CE, $CE, $FF, $EB, $EB, $EB, $FF, $D7, $D7, $D7, $FF, $9C, $9D, $9D, $FF, $2F, $46, $56, $FF, $80, $86, $8C, $FF, $81, $9A, $AE, $FF, $49, $60, $72, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $CF, $E0, $ED, $FF, $8D, $A9, $BE, $FF, $84, $A0, $B5, $FF, $C5, $C5, $C5, $FF, $C5, $C5, $C5, $FF, $18, $30, $42, $FF, $33, $49, $5A, $FF, $D6, $D6, $D6, $FF, $C5, $C5, $C5, $FF, $B9, $B9, $B9, $FF, $13, $2D, $3C, $FF, $58, $6D, $80, $FF, $97, $A5, $B0, $FF, $49, $60, $72, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $CF, $E0, $ED, $FF, $86, $A4, $B9, $FF, $81, $9A, $AE, $FF, $C5, $C5, $C5, $FF, $CD, $CD, $CD, $FF, $2E, $43, $53, $FF, $5A, $70, $82, $FF, $C5, $C5, $C5, $FF, $C5, $C5, $C5, $FF, $BF, $BF, $BF, $FF, $11, $28, $35, $FF, $5A, $70, $82, $FF, $9D, $A9, $B0, $FF, $49, $60, $72, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $6B, $78, $82, $FF, $83, $9E, $B2, $FF, $81, $9A, $AE, $FF, $CD, $CD, $CD, $FF, $E6, $E6, $E6, $FF, $21, $36, $48, $FF, $5F, $79, $89, $FF, $C5, $C5, $C5, $FF, $C2, $C2, $C2, $FF, $B2, $B2, $B2, $FF, $11, $2C, $3A, $FF, $5A, $70, $82, $FF, $9F, $A9, $B0, $FF, $49, $60, $72, $FF, $00, $00, $00, $FF, $00, $00, $00, $55, $00, $00, $00, $FF, $59, $63, $6D, $FF, $4F, $64, $75, $FF, $A1, $A1, $A1, $FF, $C0, $C0, $C0, $FF, $90, $90, $90, $FF, $90, $90, $90, $FF, $86, $86, $86, $FF, $6E, $6E, $6E, $FF, $7A, $7A, $7A, $FF, $2D, $39, $49, $FF, $3E, $4F, $5C, $FF, $80, $87, $8F, $FF, $1A, $31, $40, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $55, $00, $00, $00, $FF, $00, $00, $00, $D3, $00, $00, $00, $DC, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $E0, $00, $00, $00, $E1, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $47, $00); tuxcmd-0.6.70+dfsg/pixmaps/stock_new_16_png.inc0000644000175000017500000001302411300022643020356 0ustar salvisalviconst stock_new_16_png: array[1..1049] of byte = ( $47, $64, $6B, $50, $00, $00, $04, $18, $01, $01, $00, $02, $00, $00, $00, $40, $00, $00, $00, $10, $00, $00, $00, $10, $00, $00, $00, $00, $00, $00, $00, $53, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $4C, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $FE, $FE, $FE, $FF, $FE, $FE, $FE, $FF, $FE, $FE, $FE, $FF, $FE, $FE, $FE, $FF, $FE, $FE, $FE, $FF, $FE, $FE, $FE, $FF, $FD, $FD, $FD, $FF, $E0, $E0, $E0, $FF, $C1, $C1, $C1, $FF, $00, $00, $00, $FF, $00, $00, $00, $53, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $FE, $FE, $FE, $FF, $F1, $F1, $F1, $FF, $F1, $F1, $F1, $FF, $F1, $F1, $F1, $FF, $F1, $F1, $F1, $FF, $F1, $F1, $F1, $FF, $F1, $F1, $F1, $FF, $C3, $C3, $C3, $FF, $FB, $FB, $FB, $FF, $A8, $A8, $A8, $FF, $00, $00, $00, $FF, $00, $00, $00, $4C, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $FE, $FE, $FE, $FF, $F1, $F1, $F1, $FF, $F1, $F1, $F1, $FF, $F1, $F1, $F1, $FF, $F1, $F1, $F1, $FF, $F1, $F1, $F1, $FF, $F1, $F1, $F1, $FF, $AD, $AD, $AD, $FF, $76, $76, $76, $FF, $5D, $5D, $5D, $FF, $40, $40, $40, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $FE, $FE, $FE, $FF, $F1, $F1, $F1, $FF, $F1, $F1, $F1, $FF, $F1, $F1, $F1, $FF, $F1, $F1, $F1, $FF, $F1, $F1, $F1, $FF, $F0, $F0, $F0, $FF, $E2, $E2, $E2, $FF, $85, $85, $85, $FF, $4B, $4B, $49, $FF, $16, $16, $16, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $FE, $FE, $FE, $FF, $F1, $F1, $F1, $FF, $EF, $EF, $EF, $FF, $EF, $EF, $EF, $FF, $EF, $EF, $EF, $FF, $EF, $EF, $EF, $FF, $EF, $EF, $EF, $FF, $EF, $EF, $EF, $FF, $EE, $EE, $EE, $FF, $EE, $EE, $EE, $FF, $C5, $C5, $C5, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $FE, $FE, $FE, $FF, $EF, $EF, $EF, $FF, $EF, $EF, $EF, $FF, $EF, $EF, $EF, $FF, $EE, $EE, $EE, $FF, $EE, $EE, $EE, $FF, $EE, $EE, $EE, $FF, $EE, $EE, $EE, $FF, $EE, $EE, $EE, $FF, $EC, $EC, $EC, $FF, $C4, $C4, $C4, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $FD, $FD, $FD, $FF, $EE, $EE, $EE, $FF, $EE, $EE, $EE, $FF, $EE, $EE, $EE, $FF, $EE, $EE, $EE, $FF, $EE, $EE, $EE, $FF, $EE, $EE, $EE, $FF, $EE, $EE, $EE, $FF, $EE, $EE, $EE, $FF, $EB, $EB, $EB, $FF, $C3, $C3, $C3, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $FD, $FD, $FD, $FF, $ED, $ED, $ED, $FF, $EC, $EC, $EC, $FF, $EC, $EC, $EC, $FF, $EC, $EC, $EC, $FF, $EB, $EB, $EB, $FF, $EB, $EB, $EB, $FF, $EA, $EA, $EA, $FF, $EA, $EA, $EA, $FF, $EA, $EA, $EA, $FF, $C1, $C1, $C1, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $FD, $FD, $FD, $FF, $EB, $EB, $EB, $FF, $E8, $E8, $E8, $FF, $E8, $E8, $E8, $FF, $E8, $E8, $E8, $FF, $E8, $E8, $E8, $FF, $E8, $E8, $E8, $FF, $E8, $E8, $E8, $FF, $E8, $E8, $E8, $FF, $E8, $E8, $E8, $FF, $C0, $C0, $C0, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $FD, $FD, $FD, $FF, $EA, $EA, $EA, $FF, $EA, $EA, $EA, $FF, $E9, $E9, $E9, $FF, $E9, $E9, $E9, $FF, $E8, $E8, $E8, $FF, $E8, $E8, $E8, $FF, $E8, $E8, $E8, $FF, $E7, $E7, $E7, $FF, $E7, $E7, $E7, $FF, $BF, $BF, $BF, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $FD, $FD, $FD, $FF, $E8, $E8, $E8, $FF, $E6, $E6, $E6, $FF, $E6, $E6, $E6, $FF, $E6, $E6, $E6, $FF, $E6, $E6, $E6, $FF, $E6, $E6, $E6, $FF, $E6, $E6, $E6, $FF, $E6, $E6, $E6, $FF, $E5, $E5, $E5, $FF, $BE, $BE, $BE, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $FD, $FD, $FD, $FF, $E7, $E7, $E7, $FF, $E7, $E7, $E7, $FF, $E6, $E6, $E6, $FF, $E6, $E6, $E6, $FF, $E6, $E6, $E6, $FF, $E5, $E5, $E5, $FF, $E5, $E5, $E5, $FF, $E4, $E4, $E4, $FF, $E4, $E4, $E4, $FF, $BD, $BD, $BD, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $FD, $FD, $FD, $FF, $E6, $E6, $E6, $FF, $E5, $E5, $E5, $FF, $E5, $E5, $E5, $FF, $E5, $E5, $E5, $FF, $E4, $E4, $E4, $FF, $E4, $E4, $E4, $FF, $E3, $E3, $E3, $FF, $E3, $E3, $E3, $FF, $E3, $E3, $E3, $FF, $BB, $BB, $BB, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $C2, $C2, $C2, $FF, $BD, $BD, $BD, $FF, $BD, $BD, $BD, $FF, $BD, $BD, $BD, $FF, $BC, $BC, $BC, $FF, $BC, $BC, $BC, $FF, $BB, $BB, $BB, $FF, $BB, $BB, $BB, $FF, $BB, $BB, $BB, $FF, $BB, $BB, $BB, $FF, $A0, $A0, $A0, $FF, $00, $00, $00, $D4, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $6B, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $64, $00, $00, $00, $00, $00, $00, $00, $00, $00); tuxcmd-0.6.70+dfsg/pixmaps/tuxcmd_16_png.inc0000644000175000017500000001076611300022643017700 0ustar salvisalviconst tuxcmd_16_png: array[1..852] of byte = ( $47, $64, $6B, $50, $00, $00, $03, $53, $02, $01, $00, $02, $00, $00, $00, $40, $00, $00, $00, $10, $00, $00, $00, $10, $84, $FF, $FF, $FF, $00, $03, $86, $AC, $D6, $07, $B0, $C9, $E4, $59, $C9, $DB, $ED, $81, $82, $D7, $E4, $F1, $AA, $03, $CA, $DB, $ED, $82, $B0, $C9, $E4, $59, $86, $AC, $D6, $07, $87, $FF, $FF, $FF, $00, $04, $B4, $CC, $E5, $3C, $DF, $E9, $F4, $CB, $E1, $EA, $F4, $FF, $BE, $D1, $E7, $FF, $82, $A0, $BD, $DC, $FF, $04, $BE, $D1, $E7, $FF, $E1, $EA, $F4, $FF, $DF, $E9, $F4, $CB, $B4, $CC, $E5, $3C, $85, $FF, $FF, $FF, $00, $03, $C2, $D6, $EA, $74, $EA, $F0, $F7, $F4, $A1, $BD, $DB, $FF, $86, $67, $93, $C5, $FF, $03, $A1, $BD, $DB, $FF, $EA, $F0, $F7, $F4, $C2, $D6, $EA, $74, $83, $FF, $FF, $FF, $00, $03, $B4, $CC, $E5, $3C, $EA, $F0, $F7, $F4, $79, $9E, $CA, $FF, $84, $61, $8D, $C0, $FF, $01, $61, $8D, $BF, $FF, $83, $61, $8D, $C0, $FF, $1A, $79, $9E, $CA, $FF, $EA, $F0, $F7, $F4, $B4, $CC, $E5, $3C, $FF, $FF, $FF, $00, $86, $AC, $D6, $07, $DF, $E9, $F4, $CB, $9A, $B5, $D5, $FF, $5C, $86, $B9, $FF, $62, $86, $B3, $FF, $66, $86, $AC, $FF, $69, $77, $85, $FF, $49, $4F, $51, $FF, $43, $49, $49, $FF, $4C, $53, $57, $FF, $68, $77, $86, $FF, $5C, $85, $B6, $FF, $5B, $87, $BB, $FF, $9A, $B5, $D5, $FF, $DF, $E9, $F4, $CB, $86, $AC, $D6, $07, $A6, $BE, $D7, $5E, $6F, $76, $7A, $FF, $3A, $40, $41, $FF, $32, $38, $3A, $FF, $34, $3A, $3B, $FF, $31, $37, $39, $FF, $82, $2E, $34, $36, $FF, $1A, $48, $4E, $50, $FF, $2F, $35, $37, $FF, $2E, $34, $36, $FF, $54, $5C, $62, $FF, $57, $80, $B2, $FF, $55, $81, $B6, $FF, $DC, $E5, $F0, $FF, $B0, $C9, $E4, $59, $C9, $DB, $ED, $81, $B0, $C4, $DC, $FF, $53, $7A, $AA, $FF, $6A, $7C, $91, $FF, $34, $3A, $3C, $FF, $36, $3C, $3C, $FF, $42, $47, $48, $FF, $41, $45, $46, $FF, $3C, $42, $43, $FF, $30, $36, $38, $FF, $2E, $34, $36, $FF, $68, $6C, $6D, $FF, $86, $A2, $C0, $FF, $4F, $7B, $B1, $FF, $B0, $C4, $DC, $FF, $CA, $DB, $ED, $82, $D7, $E4, $F1, $AA, $89, $A5, $C8, $FF, $82, $4A, $75, $AB, $FF, $02, $5C, $77, $99, $FF, $36, $3C, $3E, $FF, $84, $2E, $34, $36, $FF, $05, $2C, $32, $34, $FF, $71, $75, $76, $FF, $C9, $D2, $E0, $FF, $4A, $75, $AB, $FF, $89, $A5, $C8, $FF, $82, $D7, $E4, $F1, $AA, $01, $85, $A1, $C5, $FF, $83, $44, $6F, $A6, $FF, $0D, $59, $75, $98, $FF, $38, $3E, $40, $FF, $2F, $35, $37, $FF, $57, $5C, $5D, $FF, $86, $89, $8A, $FF, $83, $86, $87, $FF, $A0, $A2, $A3, $FF, $E4, $E5, $E7, $FF, $49, $73, $A8, $FF, $85, $A1, $C5, $FF, $D7, $E4, $F1, $AA, $C9, $DB, $ED, $81, $A9, $BC, $D5, $FF, $83, $3E, $69, $A1, $FF, $05, $55, $7B, $AC, $FF, $AF, $BA, $C5, $FF, $DC, $DC, $DC, $FF, $E4, $E4, $E4, $FF, $E0, $E0, $E0, $FF, $82, $E5, $E5, $E5, $FF, $1B, $E7, $E7, $E7, $FF, $69, $8A, $B3, $FF, $A9, $BC, $D5, $FF, $CA, $DB, $ED, $82, $B0, $C9, $E4, $59, $D6, $DF, $EA, $FF, $38, $63, $9C, $FF, $39, $64, $9C, $FF, $94, $AA, $C6, $FF, $E7, $E8, $EA, $FF, $E6, $E6, $E6, $FF, $E3, $E3, $E3, $FF, $E1, $E1, $E1, $FF, $E2, $E2, $E2, $FF, $E5, $E5, $E5, $FF, $EB, $EB, $EB, $FF, $E9, $E9, $E9, $FF, $A5, $B7, $CD, $FF, $D6, $DF, $EA, $FF, $B0, $C9, $E4, $59, $86, $AC, $D6, $07, $DF, $E9, $F4, $CB, $87, $A0, $C2, $FF, $BF, $CD, $DF, $FF, $F8, $F8, $F8, $FF, $EC, $EC, $EC, $FF, $E9, $E9, $E9, $FF, $82, $EB, $EB, $EB, $FF, $01, $EA, $EA, $EA, $FF, $82, $EE, $EE, $EE, $FF, $13, $EC, $EC, $EC, $FF, $E8, $EC, $F0, $FF, $E1, $EA, $F5, $CD, $86, $AC, $D6, $07, $FF, $FF, $FF, $00, $B4, $CC, $E5, $3C, $EA, $EF, $F5, $F5, $E4, $E9, $F1, $FF, $FF, $FF, $FF, $FF, $FE, $FE, $FE, $FF, $FC, $FC, $FC, $FF, $F9, $F9, $F9, $FF, $F7, $F7, $F7, $FF, $F5, $F5, $F5, $FF, $F8, $F8, $F8, $FF, $FA, $FA, $FA, $FF, $F3, $F5, $F7, $FF, $ED, $F1, $F7, $F6, $B4, $CC, $E5, $3C, $83, $FF, $FF, $FF, $00, $03, $C2, $D6, $EA, $74, $E9, $EE, $F5, $F5, $DC, $E2, $EC, $FF, $86, $FF, $FF, $FF, $FF, $03, $ED, $F0, $F5, $FF, $EC, $F0, $F6, $F6, $C2, $D6, $EA, $74, $85, $FF, $FF, $FF, $00, $0A, $B4, $CC, $E5, $3C, $DF, $E9, $F4, $CC, $DC, $E3, $EC, $FF, $CD, $D7, $E4, $FF, $DB, $E2, $EC, $FF, $E3, $E8, $F0, $FF, $DD, $E4, $ED, $FF, $E1, $E7, $EF, $FF, $E0, $E9, $F4, $CC, $B4, $CC, $E5, $3C, $87, $FF, $FF, $FF, $00, $03, $86, $AC, $D6, $07, $B0, $C9, $E4, $59, $C9, $DB, $ED, $81, $82, $D7, $E4, $F1, $AA, $03, $CA, $DB, $ED, $82, $B0, $C9, $E4, $59, $86, $AC, $D6, $07, $84, $FF, $FF, $FF, $00, $00); tuxcmd-0.6.70+dfsg/pixmaps/stock_folder_16_png.inc0000644000175000017500000001302711300022643021043 0ustar salvisalviconst stock_folder_16_png: array[1..1049] of byte = ( $47, $64, $6B, $50, $00, $00, $04, $18, $01, $01, $00, $02, $00, $00, $00, $40, $00, $00, $00, $10, $00, $00, $00, $10, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $39, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $39, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $39, $00, $00, $00, $FF, $E4, $E5, $DE, $FF, $D3, $D5, $CA, $FF, $D3, $D5, $CA, $FF, $A5, $A7, $97, $FF, $00, $00, $00, $FF, $00, $00, $00, $39, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $F3, $F4, $F0, $FF, $AB, $AE, $99, $FF, $BD, $C0, $AD, $FF, $BC, $BE, $AA, $FF, $B1, $B4, $9F, $FF, $6E, $71, $5C, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $65, $00, $00, $00, $00, $00, $00, $00, $FF, $E6, $E7, $DD, $FF, $F5, $F6, $F3, $FF, $E6, $E7, $DD, $FF, $E6, $E7, $DD, $FF, $E6, $E7, $DD, $FF, $E4, $E5, $DB, $FF, $E6, $E7, $DD, $FF, $E2, $E4, $D9, $FF, $E2, $E4, $D9, $FF, $E1, $E3, $D8, $FF, $E1, $E3, $D8, $FF, $DF, $E1, $D6, $FF, $C4, $C6, $B6, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $FF, $F7, $F7, $F6, $FF, $D3, $D6, $C5, $FF, $D3, $D6, $C4, $FF, $D2, $D4, $C2, $FF, $D0, $D2, $C0, $FF, $CE, $D1, $BD, $FF, $CC, $CE, $BA, $FF, $CA, $CD, $B9, $FF, $CA, $CD, $B9, $FF, $C8, $CB, $B6, $FF, $C6, $C9, $B3, $FF, $C4, $C8, $B1, $FF, $93, $96, $7C, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $FF, $F0, $F0, $EB, $FF, $D3, $D6, $C5, $FF, $D3, $D6, $C4, $FF, $D2, $D4, $C2, $FF, $D0, $D2, $C0, $FF, $CE, $D1, $BD, $FF, $CC, $CE, $BA, $FF, $CA, $CD, $B9, $FF, $CA, $CD, $B9, $FF, $C8, $CB, $B6, $FF, $C6, $C9, $B3, $FF, $C4, $C8, $B1, $FF, $93, $96, $7C, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $FF, $F0, $F1, $EC, $FF, $D2, $D4, $C2, $FF, $D0, $D2, $C0, $FF, $CE, $D1, $BD, $FF, $CC, $CE, $BA, $FF, $CA, $CD, $B9, $FF, $C8, $CB, $B6, $FF, $C6, $C9, $B3, $FF, $C6, $C9, $B3, $FF, $C4, $C8, $B1, $FF, $C3, $C6, $AF, $FF, $C1, $C4, $AD, $FF, $90, $94, $78, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $FF, $EF, $F0, $EB, $FF, $CE, $D1, $BD, $FF, $CC, $CE, $BA, $FF, $CA, $CD, $B9, $FF, $C8, $CB, $B6, $FF, $C6, $C9, $B3, $FF, $C4, $C8, $B1, $FF, $C3, $C6, $AF, $FF, $C3, $C6, $AF, $FF, $C1, $C4, $AD, $FF, $BF, $C2, $AB, $FF, $BD, $C1, $A8, $FF, $8E, $91, $75, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $FF, $ED, $EE, $E8, $FF, $CA, $CD, $B9, $FF, $C8, $CB, $B6, $FF, $C6, $C9, $B3, $FF, $C4, $C8, $B1, $FF, $C3, $C6, $AF, $FF, $C1, $C4, $AD, $FF, $BF, $C2, $AB, $FF, $BF, $C2, $AB, $FF, $BD, $C1, $A8, $FF, $BB, $BE, $A5, $FF, $BA, $BD, $A3, $FF, $8B, $8F, $72, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $FF, $EC, $EE, $E7, $FF, $C6, $C9, $B3, $FF, $C4, $C8, $B1, $FF, $C3, $C6, $AF, $FF, $C1, $C4, $AD, $FF, $BF, $C2, $AB, $FF, $BD, $C1, $A8, $FF, $BB, $BE, $A5, $FF, $BB, $BE, $A5, $FF, $BA, $BD, $A3, $FF, $B7, $BA, $A0, $FF, $B7, $BA, $A0, $FF, $8B, $8F, $72, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $FF, $E8, $E8, $E0, $FF, $C3, $C6, $AF, $FF, $C1, $C4, $AD, $FF, $BF, $C2, $AB, $FF, $BD, $C1, $A8, $FF, $BB, $BE, $A5, $FF, $BA, $BD, $A3, $FF, $B7, $BA, $A0, $FF, $B7, $BA, $A0, $FF, $B7, $BA, $A0, $FF, $B7, $BA, $A0, $FF, $B7, $BA, $A0, $FF, $8B, $8F, $72, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $FF, $C6, $C9, $BA, $FF, $90, $94, $78, $FF, $8E, $92, $76, $FF, $8E, $91, $75, $FF, $8C, $90, $73, $FF, $8B, $8F, $72, $FF, $8B, $8F, $72, $FF, $8B, $8F, $72, $FF, $8B, $8F, $72, $FF, $8B, $8F, $72, $FF, $8B, $8F, $72, $FF, $8B, $8F, $72, $FF, $64, $67, $51, $FF, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $65, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $65, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00); tuxcmd-0.6.70+dfsg/pixmaps/gnome_dev_harddisk_16_png.inc0000644000175000017500000001303511300022643022200 0ustar salvisalviconst gnome_dev_harddisk_16_png: array[1..1049] of byte = ( $47, $64, $6B, $50, $00, $00, $04, $18, $01, $01, $00, $02, $00, $00, $00, $40, $00, $00, $00, $10, $00, $00, $00, $10, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $46, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $46, $00, $00, $00, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $D9, $D9, $D9, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $FD, $FD, $FD, $FF, $FC, $FC, $FC, $FF, $FB, $FB, $FB, $FF, $FB, $FC, $FC, $FF, $FB, $FB, $FB, $FF, $FB, $FB, $FB, $FF, $FB, $FB, $FB, $FF, $FB, $FB, $FB, $FF, $FC, $FB, $FB, $FF, $FB, $FC, $FB, $FF, $FB, $FB, $FC, $FF, $FB, $FC, $FC, $FF, $FB, $FC, $FB, $FF, $D5, $D6, $D5, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $FC, $FB, $FC, $FF, $F7, $F8, $F8, $FF, $F7, $F8, $F8, $FF, $F7, $F7, $F7, $FF, $F8, $F7, $F7, $FF, $F7, $F8, $F7, $FF, $F7, $F8, $F7, $FF, $F8, $F8, $F8, $FF, $F7, $F7, $F7, $FF, $F8, $F7, $F7, $FF, $F7, $F7, $F8, $FF, $F8, $F7, $F8, $FF, $F8, $F8, $F8, $FF, $D3, $D3, $D2, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $FA, $FA, $FA, $FF, $F3, $F3, $F4, $FF, $F4, $F4, $F4, $FF, $F4, $F4, $F4, $FF, $F4, $F4, $F4, $FF, $F4, $F4, $F3, $FF, $F3, $F4, $F4, $FF, $F4, $F4, $F4, $FF, $F3, $F3, $F4, $FF, $F4, $F4, $F4, $FF, $F4, $F3, $F4, $FF, $F4, $F4, $F4, $FF, $F4, $F3, $F4, $FF, $CE, $CE, $CE, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $F9, $F9, $F9, $FF, $F0, $F0, $F0, $FF, $F0, $F0, $F0, $FF, $F0, $F0, $F0, $FF, $F0, $F0, $F0, $FF, $F0, $F0, $F0, $FF, $F0, $F0, $F0, $FF, $F0, $F0, $F0, $FF, $F0, $F0, $F0, $FF, $F0, $F0, $F0, $FF, $F0, $F0, $F0, $FF, $F0, $F0, $F0, $FF, $F0, $F0, $F0, $FF, $CC, $CC, $CC, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $F9, $F9, $F9, $FF, $F0, $F0, $F0, $FF, $F0, $F0, $F0, $FF, $F0, $F0, $F0, $FF, $F0, $F0, $F0, $FF, $F0, $F0, $F0, $FF, $F0, $F0, $F0, $FF, $F0, $F0, $F0, $FF, $F0, $F0, $F0, $FF, $F0, $F0, $F0, $FF, $F0, $F0, $F0, $FF, $F0, $F0, $F0, $FF, $F0, $F0, $F0, $FF, $CC, $CC, $CC, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $F7, $F7, $F7, $FF, $EC, $EC, $EC, $FF, $ED, $EC, $EC, $FF, $EC, $EC, $EC, $FF, $ED, $EC, $EC, $FF, $EC, $EC, $EC, $FF, $EC, $ED, $ED, $FF, $ED, $EC, $EC, $FF, $EC, $EC, $ED, $FF, $EC, $EC, $EC, $FF, $EC, $EC, $ED, $FF, $EC, $ED, $EC, $FF, $EC, $EC, $ED, $FF, $C8, $C8, $C8, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $FE, $FE, $FE, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $F4, $F4, $F4, $FF, $F4, $F4, $F4, $FF, $EB, $EB, $EB, $FF, $EB, $EB, $EB, $FF, $E3, $E3, $E3, $FF, $C9, $C9, $C9, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $CE, $CE, $CE, $FF, $B9, $B9, $B9, $FF, $B9, $B9, $B9, $FF, $B9, $B9, $B9, $FF, $B9, $B9, $B9, $FF, $B9, $B9, $B9, $FF, $B9, $B9, $B9, $FF, $B9, $B9, $B9, $FF, $B9, $B9, $B9, $FF, $B9, $B9, $B9, $FF, $B9, $B9, $B9, $FF, $B9, $B9, $B9, $FF, $B9, $B9, $B9, $FF, $A7, $A7, $A8, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $CE, $CE, $CE, $FF, $B9, $B9, $B9, $FF, $9D, $9D, $9D, $FF, $D2, $D2, $D2, $FF, $9D, $9D, $9D, $FF, $D2, $D2, $D2, $FF, $9D, $9D, $9D, $FF, $D2, $D2, $D2, $FF, $9D, $9D, $9D, $FF, $D2, $D2, $D2, $FF, $9D, $9D, $9D, $FF, $D2, $D2, $D2, $FF, $B9, $B9, $B9, $FF, $A2, $A2, $A2, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $CD, $CD, $CD, $FF, $B6, $B6, $B6, $FF, $9B, $9B, $9A, $FF, $D1, $D1, $D1, $FF, $9B, $9A, $9B, $FF, $D1, $D1, $D1, $FF, $9A, $9B, $9A, $FF, $D1, $D1, $D1, $FF, $9B, $9A, $9B, $FF, $D1, $D1, $D1, $FF, $9B, $9A, $9A, $FF, $D1, $D1, $D1, $FF, $B7, $B6, $B6, $FF, $9F, $9F, $9F, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $BD, $BD, $BD, $FF, $9C, $9C, $9C, $FF, $9D, $9D, $9C, $FF, $9D, $9C, $9D, $FF, $9C, $9D, $9C, $FF, $9C, $9D, $9C, $FF, $9C, $9D, $9C, $FF, $9C, $9D, $9C, $FF, $9D, $9D, $9D, $FF, $9D, $9C, $9D, $FF, $9C, $9D, $9D, $FF, $9D, $9C, $9D, $FF, $9D, $9D, $9C, $FF, $9C, $9C, $9C, $FF, $00, $00, $00, $FF, $00, $00, $00, $79, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $62, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00); tuxcmd-0.6.70+dfsg/pixmaps/tuxcmd_128_png.inc0000644000175000017500000015112611300022643017760 0ustar salvisalviconst tuxcmd_128_png: array[1..10121] of byte = ( $47, $64, $6B, $50, $00, $00, $27, $88, $02, $01, $00, $02, $00, $00, $02, $00, $00, $00, $00, $80, $00, $00, $00, $80, $FF, $FF, $FF, $FF, $00, $FF, $FF, $FF, $FF, $00, $FF, $FF, $FF, $FF, $00, $FF, $FF, $FF, $FF, $00, $FF, $FF, $FF, $FF, $00, $BF, $FF, $FF, $FF, $00, $04, $72, $9F, $CF, $08, $72, $9F, $CF, $14, $72, $9F, $CF, $21, $72, $9F, $CF, $2D, $82, $72, $9F, $CF, $3A, $04, $72, $9F, $CF, $2D, $72, $9F, $CF, $21, $72, $9F, $CF, $14, $72, $9F, $CF, $08, $EF, $FF, $FF, $FF, $00, $07, $72, $9F, $CF, $14, $72, $9F, $CF, $3E, $72, $9F, $CF, $64, $72, $9F, $CF, $8B, $72, $9F, $CF, $B2, $76, $A1, $D0, $DC, $73, $9F, $CF, $FB, $8A, $72, $9F, $CF, $FF, $07, $73, $9F, $CF, $FB, $75, $A1, $D0, $DD, $72, $9F, $CF, $B2, $72, $9F, $CF, $8B, $72, $9F, $CF, $64, $72, $9F, $CF, $3E, $72, $9F, $CF, $14, $E4, $FF, $FF, $FF, $00, $05, $72, $9F, $CF, $11, $72, $9F, $CF, $50, $72, $9F, $CF, $91, $75, $A1, $D0, $D6, $72, $9F, $CF, $FE, $82, $72, $9F, $CF, $FF, $08, $7F, $A8, $D3, $FA, $96, $B7, $DB, $FD, $AD, $C7, $E3, $FF, $BE, $D3, $E9, $FF, $C5, $D7, $EB, $FF, $CC, $DC, $EE, $FF, $D3, $E1, $F0, $FF, $DB, $E6, $F3, $FF, $82, $E1, $EB, $F5, $FF, $08, $DB, $E6, $F3, $FF, $D3, $E1, $F0, $FF, $CC, $DC, $EE, $FF, $C5, $D7, $EB, $FF, $BE, $D3, $E9, $FF, $AD, $C7, $E3, $FF, $96, $B7, $DB, $FD, $7F, $A8, $D3, $FA, $82, $72, $9F, $CF, $FF, $05, $72, $9F, $CF, $FE, $75, $A1, $D0, $D6, $72, $9F, $CF, $91, $72, $9F, $CF, $50, $72, $9F, $CF, $11, $DD, $FF, $FF, $FF, $00, $0A, $72, $9F, $CF, $21, $72, $9F, $CF, $7F, $75, $A1, $D0, $D2, $72, $9F, $CF, $FE, $72, $9F, $CF, $FF, $7F, $A8, $D4, $FA, $A6, $C2, $E1, $FF, $CA, $DB, $ED, $FF, $E3, $EC, $F5, $FF, $F8, $FA, $FD, $FF, $92, $FF, $FF, $FF, $FF, $0A, $F8, $FA, $FD, $FF, $E3, $EC, $F5, $FF, $CA, $DB, $ED, $FF, $A6, $C2, $E1, $FF, $7F, $A8, $D4, $FA, $72, $9F, $CF, $FF, $72, $9F, $CF, $FE, $75, $A1, $D0, $D2, $72, $9F, $CF, $7F, $72, $9F, $CF, $21, $D7, $FF, $FF, $FF, $00, $08, $72, $9F, $CF, $0F, $72, $9F, $CF, $64, $74, $A1, $D0, $C5, $72, $9F, $CF, $FE, $75, $A1, $D0, $FD, $9F, $BD, $DE, $FF, $C5, $D7, $EB, $FF, $EA, $F1, $F8, $FF, $9C, $FF, $FF, $FF, $FF, $08, $EA, $F1, $F8, $FF, $C5, $D7, $EB, $FF, $9F, $BD, $DE, $FF, $75, $A1, $D0, $FD, $72, $9F, $CF, $FE, $74, $A1, $D0, $C5, $72, $9F, $CF, $64, $72, $9F, $CF, $0F, $D2, $FF, $FF, $FF, $00, $07, $72, $9F, $CF, $28, $73, $9F, $CF, $A1, $73, $A0, $CF, $F9, $73, $9F, $CF, $FE, $95, $B7, $DB, $FC, $C9, $DA, $ED, $FF, $F7, $FA, $FC, $FF, $A2, $FF, $FF, $FF, $FF, $07, $F7, $FA, $FC, $FF, $C9, $DA, $ED, $FF, $95, $B7, $DB, $FC, $73, $9F, $CF, $FE, $73, $A0, $CF, $F9, $73, $9F, $CF, $A1, $72, $9F, $CF, $28, $CE, $FF, $FF, $FF, $00, $06, $72, $9F, $CF, $30, $73, $A0, $CF, $AB, $72, $9F, $CF, $FE, $7C, $A6, $D2, $FC, $BC, $D1, $E8, $FF, $F0, $F4, $FA, $FF, $A8, $FF, $FF, $FF, $FF, $06, $F0, $F4, $FA, $FF, $BC, $D1, $E8, $FF, $7C, $A6, $D2, $FC, $72, $9F, $CF, $FE, $73, $A0, $CF, $AB, $72, $9F, $CF, $30, $CA, $FF, $FF, $FF, $00, $06, $72, $9F, $CF, $33, $74, $A0, $D0, $B6, $72, $9F, $CF, $FF, $80, $A8, $D4, $FB, $C2, $D5, $EA, $FF, $FA, $FC, $FD, $FF, $AC, $FF, $FF, $FF, $FF, $06, $FA, $FC, $FD, $FF, $C2, $D5, $EA, $FF, $80, $A8, $D4, $FB, $72, $9F, $CF, $FF, $74, $A0, $D0, $B6, $72, $9F, $CF, $33, $C6, $FF, $FF, $FF, $00, $06, $72, $9F, $CF, $12, $72, $9F, $CF, $98, $72, $9F, $CF, $FE, $84, $AB, $D5, $FC, $C7, $D9, $EC, $FF, $FC, $FD, $FE, $FF, $91, $FF, $FF, $FF, $FF, $06, $F1, $F6, $FA, $FF, $DC, $E7, $F2, $FF, $CD, $DC, $ED, $FF, $C5, $D7, $EA, $FF, $BD, $D2, $E7, $FF, $B5, $CC, $E4, $FF, $82, $AD, $C7, $E2, $FF, $06, $B5, $CC, $E4, $FF, $BD, $D2, $E7, $FF, $C5, $D7, $EA, $FF, $CD, $DC, $ED, $FF, $DC, $E7, $F2, $FF, $F1, $F6, $FA, $FF, $91, $FF, $FF, $FF, $FF, $06, $FC, $FD, $FE, $FF, $C7, $D9, $EC, $FF, $84, $AB, $D5, $FC, $72, $9F, $CF, $FE, $72, $9F, $CF, $98, $72, $9F, $CF, $12, $C2, $FF, $FF, $FF, $00, $06, $72, $9F, $CF, $01, $72, $9F, $CF, $63, $74, $A0, $D0, $EE, $77, $A2, $D1, $FC, $BD, $D2, $E9, $FF, $FC, $FD, $FE, $FF, $8E, $FF, $FF, $FF, $FF, $05, $F0, $F5, $FA, $FF, $C3, $D6, $EA, $FF, $A2, $BE, $DE, $FF, $8B, $AF, $D6, $FF, $76, $A0, $CE, $FF, $8E, $6D, $9A, $CB, $FF, $05, $76, $A0, $CE, $FF, $8B, $AF, $D6, $FF, $A2, $BE, $DE, $FF, $C3, $D6, $EA, $FF, $F0, $F5, $FA, $FF, $8E, $FF, $FF, $FF, $FF, $06, $FC, $FD, $FE, $FF, $BD, $D2, $E9, $FF, $77, $A2, $D1, $FC, $74, $A0, $D0, $EE, $72, $9F, $CF, $63, $72, $9F, $CF, $01, $BF, $FF, $FF, $FF, $00, $05, $72, $9F, $CF, $24, $74, $A0, $D0, $C8, $72, $9F, $CF, $FF, $A0, $BE, $DF, $FE, $F0, $F4, $FA, $FF, $8D, $FF, $FF, $FF, $FF, $04, $E6, $EE, $F6, $FF, $B9, $CE, $E6, $FF, $8B, $AF, $D5, $FF, $6D, $99, $CA, $FF, $96, $6C, $99, $CA, $FF, $04, $6D, $99, $CA, $FF, $8B, $AF, $D5, $FF, $B9, $CE, $E6, $FF, $E6, $EE, $F6, $FF, $8D, $FF, $FF, $FF, $FF, $05, $F0, $F4, $FA, $FF, $A0, $BE, $DF, $FE, $72, $9F, $CF, $FF, $74, $A0, $D0, $C8, $72, $9F, $CF, $24, $BD, $FF, $FF, $FF, $00, $04, $72, $9F, $CF, $56, $74, $A0, $D0, $F4, $82, $AA, $D5, $FB, $D8, $E5, $F2, $FF, $8B, $FF, $FF, $FF, $FF, $04, $FE, $FE, $FF, $FF, $DC, $E6, $F2, $FF, $AE, $C6, $E1, $FF, $80, $A7, $D1, $FF, $9E, $6B, $98, $C9, $FF, $04, $80, $A7, $D1, $FF, $AE, $C6, $E1, $FF, $DC, $E6, $F2, $FF, $FE, $FE, $FF, $FF, $8B, $FF, $FF, $FF, $FF, $04, $D8, $E5, $F2, $FF, $82, $AA, $D5, $FB, $74, $A0, $D0, $F4, $72, $9F, $CF, $56, $BA, $FF, $FF, $FF, $00, $05, $72, $9F, $CF, $08, $72, $9F, $CF, $97, $72, $9F, $CF, $FF, $9F, $BE, $DE, $FE, $F7, $F9, $FC, $FF, $8A, $FF, $FF, $FF, $FF, $03, $F3, $F7, $FB, $FF, $AC, $C5, $E1, $FF, $77, $9F, $CD, $FF, $A4, $6B, $97, $C9, $FF, $03, $77, $9F, $CD, $FF, $AC, $C5, $E1, $FF, $F3, $F7, $FB, $FF, $8A, $FF, $FF, $FF, $FF, $05, $F7, $F9, $FC, $FF, $9F, $BE, $DE, $FE, $72, $9F, $CF, $FF, $72, $9F, $CF, $97, $72, $9F, $CF, $08, $B7, $FF, $FF, $FF, $00, $04, $72, $9F, $CF, $25, $75, $A1, $D0, $D3, $74, $A1, $D0, $FD, $C2, $D6, $EA, $FF, $8A, $FF, $FF, $FF, $FF, $03, $F9, $FB, $FD, $FF, $B8, $CD, $E5, $FF, $72, $9D, $CB, $FF, $A8, $6A, $97, $C8, $FF, $03, $72, $9D, $CB, $FF, $B8, $CD, $E5, $FF, $F9, $FB, $FD, $FF, $8A, $FF, $FF, $FF, $FF, $04, $C3, $D6, $EA, $FF, $74, $A1, $D0, $FD, $75, $A1, $D0, $D3, $72, $9F, $CF, $25, $B5, $FF, $FF, $FF, $00, $04, $72, $9F, $CF, $39, $74, $A0, $D0, $F1, $83, $AB, $D5, $FB, $E2, $EB, $F5, $FF, $89, $FF, $FF, $FF, $FF, $03, $FD, $FE, $FE, $FF, $C4, $D6, $E9, $FF, $78, $A1, $CD, $FF, $AC, $69, $96, $C7, $FF, $03, $78, $A1, $CD, $FF, $C5, $D6, $E9, $FF, $FD, $FE, $FE, $FF, $89, $FF, $FF, $FF, $FF, $04, $E2, $EB, $F5, $FF, $83, $AB, $D5, $FB, $74, $A0, $D0, $F1, $72, $9F, $CF, $39, $B3, $FF, $FF, $FF, $00, $04, $72, $9F, $CF, $4A, $73, $A0, $CF, $F8, $90, $B3, $D9, $FC, $F5, $F8, $FC, $FF, $89, $FF, $FF, $FF, $FF, $02, $D1, $DF, $EE, $FF, $81, $A6, $CF, $FF, $B0, $68, $95, $C6, $FF, $02, $81, $A6, $CF, $FF, $D1, $DF, $EE, $FF, $89, $FF, $FF, $FF, $FF, $04, $F5, $F8, $FC, $FF, $90, $B3, $D9, $FC, $73, $A0, $CF, $F8, $72, $9F, $CF, $4A, $B1, $FF, $FF, $FF, $00, $04, $72, $9F, $CF, $5C, $73, $9F, $CF, $FC, $9A, $BA, $DC, $FD, $F9, $FB, $FD, $FF, $88, $FF, $FF, $FF, $FF, $02, $DF, $E8, $F3, $FF, $8C, $AE, $D4, $FF, $B4, $67, $94, $C6, $FF, $02, $8C, $AE, $D4, $FF, $DF, $E8, $F3, $FF, $88, $FF, $FF, $FF, $FF, $04, $F9, $FB, $FD, $FF, $9A, $BA, $DC, $FD, $73, $9F, $CF, $FC, $72, $9F, $CF, $5C, $AF, $FF, $FF, $FF, $00, $04, $72, $9F, $CF, $6C, $72, $9F, $CF, $FE, $A5, $C1, $E0, $FE, $FC, $FD, $FE, $FF, $88, $FF, $FF, $FF, $FF, $02, $BA, $CE, $E5, $FF, $68, $94, $C5, $FF, $B6, $67, $93, $C5, $FF, $02, $68, $94, $C5, $FF, $BA, $CE, $E5, $FF, $88, $FF, $FF, $FF, $FF, $04, $FC, $FD, $FE, $FF, $A5, $C1, $E0, $FE, $72, $9F, $CF, $FE, $72, $9F, $CF, $6C, $AD, $FF, $FF, $FF, $00, $04, $72, $9F, $CF, $5C, $72, $9F, $CF, $FE, $AE, $C8, $E3, $FF, $FE, $FF, $FF, $FF, $87, $FF, $FF, $FF, $FF, $02, $FB, $FC, $FD, $FF, $9E, $BB, $DA, $FF, $BA, $66, $93, $C4, $FF, $02, $9E, $BB, $DA, $FF, $FB, $FC, $FD, $FF, $87, $FF, $FF, $FF, $FF, $04, $FE, $FF, $FF, $FF, $AE, $C8, $E3, $FF, $72, $9F, $CF, $FE, $72, $9F, $CF, $5C, $AB, $FF, $FF, $FF, $00, $04, $72, $9F, $CF, $4A, $73, $9F, $CF, $FC, $A5, $C1, $E0, $FE, $FE, $FF, $FF, $FF, $87, $FF, $FF, $FF, $FF, $02, $F1, $F5, $F9, $FF, $87, $AA, $D1, $FF, $BC, $65, $92, $C4, $FF, $02, $87, $AA, $D1, $FF, $F1, $F5, $F9, $FF, $87, $FF, $FF, $FF, $FF, $04, $FE, $FF, $FF, $FF, $A5, $C1, $E0, $FE, $73, $9F, $CF, $FC, $72, $9F, $CF, $4A, $A9, $FF, $FF, $FF, $00, $04, $72, $9F, $CF, $39, $73, $A0, $CF, $F8, $9A, $BA, $DC, $FD, $FC, $FD, $FE, $FF, $87, $FF, $FF, $FF, $FF, $02, $DF, $E9, $F3, $FF, $74, $9D, $C9, $FF, $BE, $64, $91, $C3, $FF, $02, $74, $9D, $C9, $FF, $DF, $E9, $F3, $FF, $87, $FF, $FF, $FF, $FF, $04, $FC, $FD, $FE, $FF, $9A, $BA, $DC, $FD, $73, $A0, $CF, $F8, $72, $9F, $CF, $39, $A7, $FF, $FF, $FF, $00, $04, $72, $9F, $CF, $25, $74, $A0, $D0, $F1, $90, $B3, $D9, $FC, $F9, $FB, $FD, $FF, $87, $FF, $FF, $FF, $FF, $02, $C9, $D8, $EA, $FF, $69, $94, $C4, $FF, $C0, $64, $90, $C2, $FF, $02, $69, $94, $C4, $FF, $C9, $D8, $EA, $FF, $87, $FF, $FF, $FF, $FF, $04, $F9, $FB, $FD, $FF, $90, $B3, $D9, $FC, $74, $A0, $D0, $F1, $72, $9F, $CF, $25, $A5, $FF, $FF, $FF, $00, $04, $72, $9F, $CF, $08, $75, $A1, $D0, $D3, $83, $AB, $D5, $FB, $F5, $F8, $FC, $FF, $86, $FF, $FF, $FF, $FF, $02, $FE, $FF, $FF, $FF, $AD, $C4, $DF, $FF, $C4, $63, $8F, $C2, $FF, $02, $AD, $C4, $DF, $FF, $FE, $FF, $FF, $FF, $86, $FF, $FF, $FF, $FF, $04, $F5, $F8, $FC, $FF, $83, $AB, $D5, $FB, $75, $A1, $D0, $D3, $72, $9F, $CF, $08, $A4, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $97, $74, $A1, $D0, $FD, $E2, $EB, $F5, $FF, $87, $FF, $FF, $FF, $FF, $01, $AC, $C4, $DE, $FF, $C6, $62, $8E, $C1, $FF, $01, $AC, $C4, $DE, $FF, $87, $FF, $FF, $FF, $FF, $03, $E2, $EB, $F5, $FF, $74, $A1, $D0, $FD, $72, $9F, $CF, $97, $A3, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $56, $72, $9F, $CF, $FF, $C2, $D6, $EA, $FF, $87, $FF, $FF, $FF, $FF, $01, $C8, $D8, $E9, $FF, $C8, $61, $8E, $C0, $FF, $01, $C8, $D8, $E9, $FF, $87, $FF, $FF, $FF, $FF, $03, $C2, $D6, $EA, $FF, $72, $9F, $CF, $FF, $72, $9F, $CF, $56, $A1, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $24, $74, $A0, $D0, $F4, $9F, $BE, $DE, $FE, $87, $FF, $FF, $FF, $FF, $02, $DF, $E8, $F2, $FF, $66, $91, $C1, $FF, $C8, $60, $8D, $BF, $FF, $02, $66, $91, $C1, $FF, $DF, $E8, $F2, $FF, $87, $FF, $FF, $FF, $FF, $03, $9F, $BE, $DE, $FE, $74, $A0, $D0, $F4, $72, $9F, $CF, $24, $9F, $FF, $FF, $FF, $00, $04, $72, $9F, $CF, $01, $74, $A0, $D0, $C8, $82, $AA, $D5, $FB, $F7, $F9, $FC, $FF, $86, $FF, $FF, $FF, $FF, $02, $F0, $F4, $F9, $FF, $71, $98, $C6, $FF, $CA, $60, $8C, $BF, $FF, $02, $71, $98, $C6, $FF, $F0, $F4, $F9, $FF, $86, $FF, $FF, $FF, $FF, $04, $F7, $F9, $FC, $FF, $82, $AA, $D5, $FB, $74, $A0, $D0, $C8, $72, $9F, $CF, $01, $9E, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $63, $72, $9F, $CF, $FF, $D8, $E5, $F2, $FF, $86, $FF, $FF, $FF, $FF, $02, $FB, $FC, $FD, $FF, $82, $A4, $CC, $FF, $CC, $5F, $8B, $BE, $FF, $02, $82, $A4, $CC, $FF, $FB, $FC, $FD, $FF, $86, $FF, $FF, $FF, $FF, $03, $D8, $E5, $F2, $FF, $72, $9F, $CF, $FF, $72, $9F, $CF, $63, $9D, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $12, $74, $A0, $D0, $EE, $A0, $BE, $DF, $FE, $87, $FF, $FF, $FF, $FF, $01, $99, $B5, $D5, $FF, $A5, $5E, $8A, $BD, $FF, $0D, $5D, $89, $BC, $FF, $57, $7E, $AA, $FF, $50, $71, $96, $FF, $52, $70, $91, $FF, $54, $6E, $8B, $FF, $55, $6C, $85, $FF, $56, $6A, $7F, $FF, $55, $67, $78, $FF, $53, $66, $7A, $FF, $52, $6B, $85, $FF, $4F, $6E, $8F, $FF, $54, $78, $A0, $FF, $5E, $89, $BB, $FF, $9C, $5E, $8A, $BD, $FF, $01, $99, $B5, $D5, $FF, $87, $FF, $FF, $FF, $FF, $03, $A0, $BE, $DF, $FE, $74, $A0, $D0, $EE, $72, $9F, $CF, $12, $9C, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $98, $77, $A2, $D1, $FC, $F0, $F4, $FA, $FF, $86, $FF, $FF, $FF, $FF, $01, $B6, $CA, $E1, $FF, $A1, $5D, $89, $BD, $FF, $06, $5B, $84, $B5, $FF, $53, $73, $99, $FF, $58, $6E, $86, $FF, $55, $63, $72, $FF, $49, $51, $58, $FF, $34, $3B, $3D, $FF, $8B, $2E, $34, $36, $FF, $04, $35, $3B, $3F, $FF, $4B, $59, $65, $FF, $4E, $68, $84, $FF, $57, $7D, $AA, $FF, $9A, $5D, $89, $BD, $FF, $01, $B6, $CA, $E1, $FF, $86, $FF, $FF, $FF, $FF, $03, $F0, $F4, $FA, $FF, $77, $A2, $D1, $FC, $72, $9F, $CF, $98, $9B, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $33, $72, $9F, $CF, $FE, $BD, $D2, $E9, $FF, $86, $FF, $FF, $FF, $FF, $02, $DC, $E6, $F1, $FF, $5D, $8A, $BD, $FF, $9E, $5C, $89, $BC, $FF, $04, $57, $81, $AF, $FF, $57, $70, $8B, $FF, $4F, $5B, $64, $FF, $31, $37, $3A, $FF, $93, $2E, $34, $36, $FF, $04, $2F, $35, $37, $FF, $48, $54, $5F, $FF, $4F, $70, $93, $FF, $5B, $88, $BB, $FF, $97, $5C, $89, $BC, $FF, $02, $5D, $8A, $BD, $FF, $DC, $E6, $F1, $FF, $86, $FF, $FF, $FF, $FF, $03, $BD, $D2, $E9, $FF, $72, $9F, $CF, $FE, $72, $9F, $CF, $33, $9A, $FF, $FF, $FF, $00, $03, $74, $A0, $D0, $B6, $84, $AB, $D5, $FC, $FC, $FD, $FE, $FF, $86, $FF, $FF, $FF, $FF, $01, $84, $A5, $CC, $FF, $9C, $5C, $88, $BB, $FF, $04, $59, $82, $B2, $FF, $56, $6D, $85, $FF, $4B, $55, $5D, $FF, $30, $36, $38, $FF, $99, $2E, $34, $36, $FF, $03, $3D, $45, $4B, $FF, $4D, $66, $81, $FF, $59, $82, $B3, $FF, $96, $5C, $88, $BB, $FF, $01, $84, $A5, $CC, $FF, $86, $FF, $FF, $FF, $FF, $03, $FC, $FD, $FE, $FF, $84, $AB, $D5, $FC, $74, $A0, $D0, $B6, $99, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $30, $72, $9F, $CF, $FF, $C7, $D9, $EC, $FF, $86, $FF, $FF, $FF, $FF, $01, $CD, $DB, $EA, $FF, $9B, $5B, $87, $BB, $FF, $03, $5A, $84, $B6, $FF, $59, $6D, $83, $FF, $38, $3F, $42, $FF, $9E, $2E, $34, $36, $FF, $03, $33, $39, $3C, $FF, $4A, $5D, $6F, $FF, $52, $78, $A3, $FF, $95, $5B, $87, $BB, $FF, $01, $CD, $DB, $EA, $FF, $86, $FF, $FF, $FF, $FF, $03, $C7, $D9, $EC, $FF, $72, $9F, $CF, $FF, $72, $9F, $CF, $30, $98, $FF, $FF, $FF, $00, $03, $73, $A0, $CF, $AB, $80, $A8, $D4, $FB, $FC, $FD, $FE, $FF, $85, $FF, $FF, $FF, $FF, $02, $FD, $FE, $FE, $FF, $75, $9A, $C5, $FF, $9A, $5A, $86, $BA, $FF, $02, $57, $7C, $A7, $FF, $45, $4D, $52, $FF, $A3, $2E, $34, $36, $FF, $02, $43, $50, $5B, $FF, $51, $77, $A2, $FF, $93, $5A, $86, $BA, $FF, $02, $75, $9A, $C5, $FF, $FD, $FE, $FE, $FF, $85, $FF, $FF, $FF, $FF, $03, $FC, $FD, $FE, $FF, $80, $A8, $D4, $FB, $73, $A0, $CF, $AB, $97, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $28, $72, $9F, $CF, $FE, $C2, $D5, $EA, $FF, $86, $FF, $FF, $FF, $FF, $01, $BE, $CF, $E4, $FF, $97, $59, $85, $B9, $FF, $05, $58, $82, $B5, $FF, $52, $78, $A4, $FF, $53, $71, $95, $FF, $58, $6D, $84, $FF, $37, $3E, $40, $FF, $88, $2E, $34, $36, $FF, $0D, $31, $37, $39, $FF, $3E, $43, $45, $FF, $48, $4E, $4E, $FF, $4B, $50, $51, $FF, $57, $5D, $5C, $FF, $6F, $73, $71, $FF, $72, $76, $74, $FF, $74, $79, $76, $FF, $77, $7C, $79, $FF, $72, $77, $75, $FF, $62, $67, $66, $FF, $52, $58, $57, $FF, $34, $3A, $3C, $FF, $90, $2E, $34, $36, $FF, $03, $2F, $35, $38, $FF, $46, $5C, $71, $FF, $57, $80, $B1, $FF, $92, $59, $85, $B9, $FF, $01, $BF, $D0, $E4, $FF, $86, $FF, $FF, $FF, $FF, $03, $C2, $D5, $EA, $FF, $72, $9F, $CF, $FE, $72, $9F, $CF, $28, $96, $FF, $FF, $FF, $00, $03, $73, $9F, $CF, $A1, $7C, $A6, $D2, $FC, $FA, $FC, $FD, $FF, $85, $FF, $FF, $FF, $FF, $02, $F8, $FA, $FC, $FF, $69, $91, $C0, $FF, $87, $58, $85, $B9, $FF, $11, $57, $82, $B5, $FF, $54, $7D, $AD, $FF, $51, $78, $A4, $FF, $51, $75, $9C, $FF, $54, $74, $97, $FF, $57, $72, $91, $FF, $59, $71, $8A, $FF, $5A, $6F, $85, $FF, $5A, $6C, $7E, $FF, $5A, $68, $78, $FF, $57, $64, $70, $FF, $54, $60, $69, $FF, $50, $5A, $61, $FF, $4B, $53, $5A, $FF, $45, $4C, $51, $FF, $3D, $44, $47, $FF, $2F, $35, $37, $FF, $91, $2E, $34, $36, $FF, $04, $3A, $40, $41, $FF, $5D, $62, $61, $FF, $80, $84, $81, $FF, $A3, $A7, $A2, $FF, $83, $BA, $BD, $B6, $FF, $04, $B5, $B8, $B2, $FF, $8C, $90, $8D, $FF, $5D, $62, $61, $FF, $34, $3A, $3C, $FF, $8F, $2E, $34, $36, $FF, $02, $38, $40, $44, $FF, $4B, $6C, $8F, $FF, $91, $58, $85, $B9, $FF, $02, $69, $91, $C0, $FF, $F8, $FA, $FC, $FF, $85, $FF, $FF, $FF, $FF, $03, $FA, $FC, $FD, $FF, $7C, $A6, $D2, $FC, $73, $9F, $CF, $A1, $95, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $0F, $73, $A0, $CF, $F9, $BC, $D1, $E8, $FF, $82, $FF, $FF, $FF, $FF, $0D, $DD, $DE, $DE, $FF, $C9, $CA, $CB, $FF, $BC, $BE, $BE, $FF, $AE, $B0, $B1, $FF, $82, $8C, $97, $FF, $62, $72, $83, $FF, $5F, $6C, $79, $FF, $5B, $66, $72, $FF, $56, $5F, $67, $FF, $4F, $57, $5E, $FF, $47, $4F, $52, $FF, $3E, $45, $48, $FF, $34, $39, $3C, $FF, $A6, $2E, $34, $36, $FF, $02, $3A, $40, $41, $FF, $5B, $60, $60, $FF, $84, $63, $67, $67, $FF, $02, $5D, $62, $61, $FF, $37, $3D, $3E, $FF, $90, $2E, $34, $36, $FF, $02, $45, $5D, $75, $FF, $57, $83, $B7, $FF, $90, $58, $84, $B8, $FF, $01, $AF, $C4, $DD, $FF, $86, $FF, $FF, $FF, $FF, $03, $BC, $D1, $E8, $FF, $73, $A0, $CF, $F9, $72, $9F, $CF, $0F, $94, $FF, $FF, $FF, $00, $05, $72, $9F, $CF, $64, $73, $9F, $CF, $FE, $DF, $E3, $E9, $FF, $9D, $A0, $A1, $FF, $4F, $54, $56, $FF, $CC, $2E, $34, $36, $FF, $02, $40, $4F, $5E, $FF, $55, $7E, $AF, $FF, $8F, $57, $83, $B7, $FF, $02, $60, $8A, $BB, $FF, $F2, $F5, $F9, $FF, $85, $FF, $FF, $FF, $FF, $03, $F0, $F4, $FA, $FF, $73, $9F, $CF, $FE, $72, $9F, $CF, $64, $94, $FF, $FF, $FF, $00, $03, $74, $A1, $D0, $C5, $91, $B3, $D6, $FC, $53, $58, $59, $FF, $CF, $2E, $34, $36, $FF, $02, $3D, $4B, $58, $FF, $55, $80, $B3, $FF, $8F, $56, $82, $B6, $FF, $01, $A0, $B9, $D6, $FF, $86, $FF, $FF, $FF, $FF, $02, $95, $B7, $DB, $FC, $74, $A1, $D0, $C5, $93, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $21, $72, $9F, $CF, $FE, $6A, $75, $7D, $FF, $D1, $2E, $34, $36, $FF, $01, $40, $55, $6A, $FF, $8F, $55, $81, $B6, $FF, $02, $62, $8B, $BC, $FF, $FE, $FE, $FE, $FF, $85, $FF, $FF, $FF, $FF, $03, $C9, $DA, $ED, $FF, $72, $9F, $CF, $FE, $72, $9F, $CF, $21, $92, $FF, $FF, $FF, $00, $0A, $72, $9F, $CF, $7F, $75, $A1, $D0, $FD, $B9, $BE, $C0, $FF, $62, $66, $68, $FF, $2E, $34, $36, $FF, $2F, $35, $37, $FF, $35, $3B, $3D, $FF, $36, $3C, $3C, $FF, $32, $39, $3A, $FF, $30, $36, $38, $FF, $CB, $2E, $34, $36, $FF, $01, $47, $67, $8B, $FF, $8F, $54, $80, $B5, $FF, $01, $D6, $E1, $ED, $FF, $85, $FF, $FF, $FF, $FF, $03, $F7, $FA, $FC, $FF, $75, $A1, $D0, $FD, $72, $9F, $CF, $7F, $92, $FF, $FF, $FF, $00, $02, $75, $A1, $D0, $D2, $9F, $BD, $DE, $FF, $82, $FF, $FF, $FF, $FF, $19, $F7, $F7, $F7, $FF, $EA, $EA, $EB, $FF, $DE, $DF, $DF, $FF, $CC, $CD, $CE, $FF, $82, $93, $A4, $FF, $5E, $73, $88, $FF, $65, $71, $7B, $FF, $65, $6C, $6F, $FF, $62, $66, $65, $FF, $66, $6A, $67, $FF, $6D, $70, $6D, $FF, $74, $77, $73, $FF, $76, $79, $76, $FF, $72, $75, $72, $FF, $6C, $70, $6D, $FF, $66, $6A, $67, $FF, $60, $64, $63, $FF, $5A, $5E, $5D, $FF, $54, $59, $58, $FF, $4E, $53, $53, $FF, $48, $4E, $4D, $FF, $42, $48, $49, $FF, $3C, $42, $43, $FF, $36, $3D, $3E, $FF, $31, $36, $38, $FF, $B8, $2E, $34, $36, $FF, $01, $3B, $4D, $60, $FF, $8F, $54, $80, $B4, $FF, $01, $A1, $B9, $D6, $FF, $86, $FF, $FF, $FF, $FF, $02, $9F, $BD, $DE, $FF, $75, $A1, $D0, $D2, $91, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $11, $72, $9F, $CF, $FE, $C5, $D7, $EB, $FF, $86, $FF, $FF, $FF, $FF, $01, $6B, $91, $BF, $FF, $83, $53, $7F, $B4, $FF, $1A, $53, $7F, $B3, $FF, $4E, $75, $A2, $FF, $49, $63, $80, $FF, $41, $4C, $54, $FF, $32, $38, $39, $FF, $3C, $42, $43, $FF, $46, $4A, $4B, $FF, $50, $54, $54, $FF, $56, $5B, $5A, $FF, $5C, $60, $5E, $FF, $61, $66, $64, $FF, $68, $6B, $68, $FF, $6D, $70, $6D, $FF, $74, $76, $72, $FF, $79, $7C, $78, $FF, $7F, $81, $7D, $FF, $84, $86, $81, $FF, $85, $87, $82, $FF, $7B, $7E, $7A, $FF, $71, $74, $71, $FF, $67, $6B, $68, $FF, $5D, $61, $5F, $FF, $53, $58, $57, $FF, $49, $4E, $4E, $FF, $3F, $44, $45, $FF, $35, $3B, $3C, $FF, $AF, $2E, $34, $36, $FF, $02, $31, $38, $3C, $FF, $52, $7D, $B0, $FF, $8E, $53, $7F, $B4, $FF, $01, $6B, $91, $BF, $FF, $86, $FF, $FF, $FF, $FF, $03, $C5, $D7, $EB, $FF, $72, $9F, $CF, $FE, $72, $9F, $CF, $11, $90, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $50, $72, $9F, $CF, $FF, $EA, $F1, $F8, $FF, $85, $FF, $FF, $FF, $FF, $01, $E2, $E9, $F2, $FF, $88, $52, $7E, $B3, $FF, $03, $4C, $72, $9F, $FF, $48, $5E, $76, $FF, $3D, $44, $49, $FF, $8A, $2E, $34, $36, $FF, $11, $30, $36, $38, $FF, $35, $3B, $3D, $FF, $3B, $40, $41, $FF, $40, $46, $47, $FF, $48, $4D, $4D, $FF, $53, $58, $57, $FF, $5E, $61, $5F, $FF, $69, $6C, $6A, $FF, $74, $76, $72, $FF, $7B, $7E, $7A, $FF, $7B, $7D, $79, $FF, $72, $74, $72, $FF, $68, $6B, $68, $FF, $5D, $62, $60, $FF, $54, $57, $57, $FF, $46, $4B, $4B, $FF, $37, $3C, $3E, $FF, $A8, $2E, $34, $36, $FF, $01, $45, $64, $86, $FF, $8F, $52, $7E, $B3, $FF, $01, $E2, $E9, $F2, $FF, $85, $FF, $FF, $FF, $FF, $03, $EA, $F1, $F8, $FF, $72, $9F, $CF, $FF, $72, $9F, $CF, $50, $90, $FF, $FF, $FF, $00, $02, $72, $9F, $CF, $91, $7F, $A8, $D4, $FA, $86, $FF, $FF, $FF, $FF, $01, $AC, $C1, $DA, $FF, $8A, $51, $7D, $B2, $FF, $03, $50, $7B, $AF, $FF, $48, $62, $7F, $FF, $37, $3E, $42, $FF, $92, $2E, $34, $36, $FF, $0D, $2F, $35, $37, $FF, $39, $3E, $40, $FF, $45, $49, $4A, $FF, $4F, $53, $53, $FF, $5A, $5E, $5D, $FF, $64, $68, $65, $FF, $70, $72, $6F, $FF, $74, $76, $72, $FF, $6F, $72, $6E, $FF, $61, $66, $64, $FF, $52, $57, $56, $FF, $42, $48, $49, $FF, $33, $39, $3B, $FF, $9E, $2E, $34, $36, $FF, $05, $63, $67, $69, $FF, $7F, $83, $84, $FF, $79, $7C, $7E, $FF, $57, $5C, $5D, $FF, $3C, $4C, $5D, $FF, $8F, $51, $7D, $B2, $FF, $01, $AC, $C1, $DA, $FF, $86, $FF, $FF, $FF, $FF, $02, $7F, $A8, $D4, $FA, $72, $9F, $CF, $91, $90, $FF, $FF, $FF, $00, $02, $75, $A1, $D0, $D6, $A6, $C2, $E1, $FF, $86, $FF, $FF, $FF, $FF, $01, $76, $98, $C2, $FF, $8C, $51, $7C, $B2, $FF, $03, $4F, $78, $AB, $FF, $48, $5D, $75, $FF, $33, $3A, $3C, $FF, $98, $2E, $34, $36, $FF, $0A, $2F, $35, $37, $FF, $40, $45, $45, $FF, $52, $57, $56, $FF, $66, $6A, $67, $FF, $7A, $7C, $78, $FF, $7D, $7F, $7C, $FF, $6E, $71, $6E, $FF, $5F, $63, $61, $FF, $4E, $53, $52, $FF, $35, $3B, $3C, $FF, $97, $2E, $34, $36, $FF, $02, $2D, $33, $35, $FF, $A5, $A8, $A8, $FF, $82, $EE, $EE, $EE, $FF, $03, $F4, $F4, $F4, $FF, $FF, $FF, $FF, $FF, $95, $AF, $D0, $FF, $8F, $51, $7C, $B2, $FF, $01, $76, $98, $C2, $FF, $86, $FF, $FF, $FF, $FF, $02, $A6, $C2, $E1, $FF, $75, $A1, $D0, $D6, $8F, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $14, $72, $9F, $CF, $FE, $CA, $DB, $ED, $FF, $85, $FF, $FF, $FF, $FF, $02, $ED, $F2, $F7, $FF, $51, $7D, $B1, $FF, $8E, $50, $7C, $B1, $FF, $02, $4D, $75, $A4, $FF, $49, $57, $62, $FF, $9C, $2E, $34, $36, $FF, $08, $32, $39, $3A, $FF, $45, $4B, $4A, $FF, $58, $5D, $5C, $FF, $6E, $71, $6E, $FF, $84, $86, $82, $FF, $73, $77, $73, $FF, $59, $5C, $5B, $FF, $3E, $43, $43, $FF, $94, $2E, $34, $36, $FF, $01, $56, $5B, $5D, $FF, $84, $EE, $EE, $EE, $FF, $02, $FB, $FB, $FB, $FF, $D7, $E1, $ED, $FF, $8F, $50, $7C, $B1, $FF, $02, $51, $7D, $B1, $FF, $ED, $F2, $F7, $FF, $85, $FF, $FF, $FF, $FF, $03, $CA, $DB, $ED, $FF, $72, $9F, $CF, $FE, $72, $9F, $CF, $14, $8E, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $3E, $72, $9F, $CF, $FF, $E3, $EC, $F5, $FF, $85, $FF, $FF, $FF, $FF, $01, $B7, $C9, $DF, $FF, $90, $4F, $7B, $B0, $FF, $03, $4F, $7B, $AF, $FF, $47, $61, $7D, $FF, $32, $38, $3B, $FF, $9E, $2E, $34, $36, $FF, $07, $31, $36, $38, $FF, $47, $4C, $4C, $FF, $61, $64, $63, $FF, $7B, $7E, $7A, $FF, $7D, $80, $7B, $FF, $5F, $63, $61, $FF, $35, $3A, $3C, $FF, $91, $2E, $34, $36, $FF, $01, $87, $8A, $8B, $FF, $84, $EE, $EE, $EE, $FF, $03, $F2, $F2, $F2, $FF, $FF, $FF, $FF, $FF, $74, $96, $C0, $FF, $8F, $4F, $7B, $B0, $FF, $01, $B7, $C9, $DF, $FF, $85, $FF, $FF, $FF, $FF, $03, $E3, $EC, $F5, $FF, $72, $9F, $CF, $FF, $72, $9F, $CF, $3E, $8E, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $64, $72, $9F, $CF, $FF, $F8, $FA, $FD, $FF, $85, $FF, $FF, $FF, $FF, $01, $8E, $AA, $CC, $FF, $92, $4E, $7A, $AF, $FF, $02, $4A, $6E, $98, $FF, $42, $4A, $4F, $FF, $A1, $2E, $34, $36, $FF, $04, $3B, $40, $41, $FF, $54, $59, $58, $FF, $69, $6C, $6A, $FF, $50, $54, $54, $FF, $90, $2E, $34, $36, $FF, $01, $9C, $9F, $A0, $FF, $85, $EE, $EE, $EE, $FF, $02, $F9, $F9, $F9, $FF, $C3, $D2, $E4, $FF, $8F, $4E, $7A, $AF, $FF, $01, $8E, $AA, $CC, $FF, $85, $FF, $FF, $FF, $FF, $03, $F8, $FA, $FD, $FF, $72, $9F, $CF, $FF, $72, $9F, $CF, $64, $8E, $FF, $FF, $FF, $00, $02, $72, $9F, $CF, $8B, $7F, $A8, $D3, $FA, $86, $FF, $FF, $FF, $FF, $01, $72, $95, $C0, $FF, $93, $4D, $79, $AF, $FF, $02, $4B, $75, $AA, $FF, $59, $64, $70, $FF, $A3, $2E, $34, $36, $FF, $01, $31, $36, $38, $FF, $90, $2E, $34, $36, $FF, $01, $B0, $B2, $B2, $FF, $85, $EE, $EE, $EE, $FF, $03, $F0, $F0, $F0, $FF, $FC, $FC, $FD, $FF, $63, $8A, $B9, $FF, $8E, $4D, $79, $AF, $FF, $01, $72, $95, $C0, $FF, $86, $FF, $FF, $FF, $FF, $02, $7F, $A8, $D3, $FA, $72, $9F, $CF, $8B, $8E, $FF, $FF, $FF, $00, $02, $72, $9F, $CF, $B2, $96, $B7, $DB, $FD, $86, $FF, $FF, $FF, $FF, $01, $57, $80, $B3, $FF, $95, $4D, $78, $AE, $FF, $01, $60, $70, $82, $FF, $B3, $2E, $34, $36, $FF, $01, $AB, $AD, $AE, $FF, $86, $EE, $EE, $EE, $FF, $02, $F6, $F6, $F6, $FF, $B2, $C4, $DC, $FF, $8E, $4D, $78, $AE, $FF, $01, $57, $80, $B3, $FF, $86, $FF, $FF, $FF, $FF, $02, $96, $B7, $DB, $FD, $72, $9F, $CF, $B2, $8E, $FF, $FF, $FF, $00, $02, $76, $A1, $D0, $DC, $AD, $C7, $E3, $FF, $85, $FF, $FF, $FF, $FF, $01, $EE, $F2, $F7, $FF, $97, $4C, $77, $AD, $FF, $02, $5E, $73, $8C, $FF, $30, $36, $38, $FF, $B1, $2E, $34, $36, $FF, $01, $98, $9B, $9C, $FF, $86, $EE, $EE, $EE, $FF, $03, $EF, $EF, $EF, $FF, $F6, $F8, $FA, $FF, $57, $80, $B2, $FF, $8E, $4C, $77, $AD, $FF, $01, $EE, $F2, $F7, $FF, $85, $FF, $FF, $FF, $FF, $02, $AD, $C7, $E3, $FF, $75, $A1, $D0, $DD, $8E, $FF, $FF, $FF, $00, $02, $73, $9F, $CF, $FB, $BE, $D3, $E9, $FF, $85, $FF, $FF, $FF, $FF, $01, $D3, $DE, $EB, $FF, $98, $4B, $77, $AD, $FF, $02, $59, $74, $94, $FF, $35, $3B, $3E, $FF, $B0, $2E, $34, $36, $FF, $01, $86, $8A, $8B, $FF, $87, $EE, $EE, $EE, $FF, $02, $F9, $F9, $F9, $FF, $A0, $B7, $D4, $FF, $8E, $4B, $77, $AD, $FF, $01, $D3, $DE, $EB, $FF, $85, $FF, $FF, $FF, $FF, $02, $BE, $D3, $E9, $FF, $73, $9F, $CF, $FB, $8D, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $08, $72, $9F, $CF, $FF, $C5, $D7, $EB, $FF, $85, $FF, $FF, $FF, $FF, $01, $C1, $D0, $E3, $FF, $99, $4A, $76, $AC, $FF, $02, $53, $73, $99, $FF, $3C, $41, $44, $FF, $AF, $2E, $34, $36, $FF, $01, $75, $78, $7A, $FF, $87, $EE, $EE, $EE, $FF, $03, $F2, $F2, $F2, $FF, $ED, $F1, $F7, $FF, $4E, $79, $AE, $FF, $8D, $4A, $76, $AC, $FF, $01, $C1, $D0, $E3, $FF, $85, $FF, $FF, $FF, $FF, $03, $C5, $D7, $EB, $FF, $72, $9F, $CF, $FF, $72, $9F, $CF, $08, $8C, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $14, $72, $9F, $CF, $FF, $CC, $DC, $EE, $FF, $85, $FF, $FF, $FF, $FF, $01, $B6, $C8, $DD, $FF, $9A, $49, $75, $AB, $FF, $02, $4D, $72, $9D, $FF, $3D, $44, $48, $FF, $AE, $2E, $34, $36, $FF, $01, $62, $66, $66, $FF, $88, $EE, $EE, $EE, $FF, $02, $FC, $FC, $FC, $FF, $7E, $9D, $C3, $FF, $8D, $49, $75, $AB, $FF, $01, $B6, $C8, $DD, $FF, $85, $FF, $FF, $FF, $FF, $03, $CC, $DC, $EE, $FF, $72, $9F, $CF, $FF, $72, $9F, $CF, $14, $8C, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $21, $72, $9F, $CF, $FF, $D3, $E1, $F0, $FF, $85, $FF, $FF, $FF, $FF, $01, $AC, $C0, $D9, $FF, $9B, $49, $74, $AB, $FF, $02, $47, $6B, $98, $FF, $38, $3F, $41, $FF, $AD, $2E, $34, $36, $FF, $01, $3E, $43, $45, $FF, $88, $EE, $EE, $EE, $FF, $02, $F5, $F5, $F5, $FF, $BA, $CB, $DF, $FF, $8D, $49, $74, $AB, $FF, $01, $AC, $C0, $D9, $FF, $85, $FF, $FF, $FF, $FF, $03, $D3, $E1, $F0, $FF, $72, $9F, $CF, $FF, $72, $9F, $CF, $21, $8C, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $2D, $72, $9F, $CF, $FF, $DB, $E6, $F3, $FF, $85, $FF, $FF, $FF, $FF, $01, $A2, $B8, $D4, $FF, $9C, $48, $73, $AA, $FF, $02, $46, $69, $92, $FF, $34, $3B, $3D, $FF, $AC, $2E, $34, $36, $FF, $02, $2D, $33, $35, $FF, $D9, $DA, $DA, $FF, $87, $EE, $EE, $EE, $FF, $03, $EF, $EF, $EF, $FF, $F2, $F5, $F8, $FF, $4C, $76, $AC, $FF, $8C, $48, $73, $AA, $FF, $01, $A2, $B8, $D4, $FF, $85, $FF, $FF, $FF, $FF, $03, $DB, $E6, $F3, $FF, $72, $9F, $CF, $FF, $72, $9F, $CF, $2D, $8C, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $3A, $72, $9F, $CF, $FF, $E1, $EB, $F5, $FF, $85, $FF, $FF, $FF, $FF, $01, $97, $B0, $CE, $FF, $9D, $47, $73, $A9, $FF, $02, $49, $68, $8C, $FF, $31, $38, $3A, $FF, $AB, $2E, $34, $36, $FF, $02, $2D, $33, $35, $FF, $B3, $B5, $B5, $FF, $88, $EE, $EE, $EE, $FF, $02, $F9, $F9, $F9, $FF, $7B, $9B, $C1, $FF, $8C, $47, $73, $A9, $FF, $01, $97, $B0, $CE, $FF, $85, $FF, $FF, $FF, $FF, $03, $E1, $EB, $F5, $FF, $72, $9F, $CF, $FF, $72, $9F, $CF, $3A, $8C, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $3A, $72, $9F, $CF, $FF, $E1, $EB, $F5, $FF, $85, $FF, $FF, $FF, $FF, $01, $97, $AF, $CE, $FF, $9E, $46, $72, $A9, $FF, $02, $4A, $66, $87, $FF, $30, $36, $38, $FF, $AB, $2E, $34, $36, $FF, $01, $8C, $8F, $90, $FF, $88, $EE, $EE, $EE, $FF, $02, $F2, $F2, $F2, $FF, $B8, $C9, $DE, $FF, $8C, $46, $72, $A9, $FF, $01, $97, $AF, $CE, $FF, $85, $FF, $FF, $FF, $FF, $03, $E1, $EB, $F5, $FF, $72, $9F, $CF, $FF, $72, $9F, $CF, $3A, $8C, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $2D, $72, $9F, $CF, $FF, $DB, $E6, $F3, $FF, $85, $FF, $FF, $FF, $FF, $01, $A0, $B7, $D3, $FF, $9F, $45, $71, $A8, $FF, $01, $4B, $64, $7F, $FF, $AB, $2E, $34, $36, $FF, $01, $67, $6B, $6D, $FF, $89, $EE, $EE, $EE, $FF, $02, $F0, $F3, $F7, $FF, $48, $73, $A9, $FF, $8B, $45, $71, $A8, $FF, $01, $A0, $B7, $D3, $FF, $85, $FF, $FF, $FF, $FF, $03, $DB, $E6, $F3, $FF, $72, $9F, $CF, $FF, $72, $9F, $CF, $2D, $8C, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $21, $72, $9F, $CF, $FF, $D3, $E1, $F0, $FF, $85, $FF, $FF, $FF, $FF, $01, $AA, $BE, $D7, $FF, $A0, $45, $70, $A7, $FF, $01, $4D, $60, $78, $FF, $AA, $2E, $34, $36, $FF, $01, $40, $46, $47, $FF, $89, $EE, $EE, $EE, $FF, $02, $F7, $F7, $F7, $FF, $79, $98, $C0, $FF, $8B, $45, $70, $A7, $FF, $01, $AA, $BE, $D7, $FF, $85, $FF, $FF, $FF, $FF, $03, $D3, $E1, $F0, $FF, $72, $9F, $CF, $FF, $72, $9F, $CF, $21, $8C, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $14, $72, $9F, $CF, $FF, $CC, $DC, $EE, $FF, $85, $FF, $FF, $FF, $FF, $01, $B4, $C5, $DB, $FF, $A1, $44, $6F, $A6, $FF, $01, $4C, $5D, $70, $FF, $97, $2E, $34, $36, $FF, $0C, $3D, $41, $43, $FF, $4F, $54, $56, $FF, $60, $65, $66, $FF, $6F, $73, $74, $FF, $69, $6D, $6F, $FF, $62, $66, $68, $FF, $5B, $5F, $61, $FF, $53, $58, $59, $FF, $4C, $51, $53, $FF, $45, $4A, $4B, $FF, $3D, $43, $45, $FF, $30, $36, $38, $FF, $86, $2E, $34, $36, $FF, $02, $42, $47, $49, $FF, $EC, $EC, $EC, $FF, $88, $EE, $EE, $EE, $FF, $02, $F1, $F1, $F1, $FF, $B6, $C7, $DC, $FF, $8B, $44, $6F, $A6, $FF, $01, $B4, $C5, $DB, $FF, $85, $FF, $FF, $FF, $FF, $03, $CC, $DC, $EE, $FF, $72, $9F, $CF, $FF, $72, $9F, $CF, $14, $8C, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $08, $72, $9F, $CF, $FF, $C5, $D7, $EB, $FF, $85, $FF, $FF, $FF, $FF, $01, $BF, $CE, $E1, $FF, $A1, $43, $6E, $A6, $FF, $02, $43, $6E, $A5, $FF, $4B, $5A, $69, $FF, $90, $2E, $34, $36, $FF, $06, $33, $39, $3B, $FF, $58, $5D, $5E, $FF, $81, $84, $84, $FF, $A7, $A9, $AA, $FF, $CF, $D0, $D0, $FF, $EB, $EB, $EB, $FF, $8B, $EE, $EE, $EE, $FF, $08, $ED, $ED, $ED, $FF, $E1, $E1, $E2, $FF, $D0, $D1, $D1, $FF, $C0, $C1, $C2, $FF, $B2, $B4, $B4, $FF, $A1, $A3, $A4, $FF, $A1, $A4, $A4, $FF, $D7, $D7, $D8, $FF, $8A, $EE, $EE, $EE, $FF, $02, $EE, $F1, $F5, $FF, $46, $70, $A7, $FF, $8A, $43, $6E, $A6, $FF, $01, $BF, $CE, $E1, $FF, $85, $FF, $FF, $FF, $FF, $03, $C5, $D7, $EB, $FF, $72, $9F, $CF, $FF, $72, $9F, $CF, $08, $8D, $FF, $FF, $FF, $00, $02, $73, $9F, $CF, $FB, $BE, $D3, $E9, $FF, $85, $FF, $FF, $FF, $FF, $01, $D1, $DC, $E9, $FF, $A2, $42, $6E, $A5, $FF, $02, $42, $6D, $A3, $FF, $4A, $57, $62, $FF, $8C, $2E, $34, $36, $FF, $04, $44, $49, $4B, $FF, $81, $84, $85, $FF, $BD, $BE, $BF, $FF, $EA, $EA, $EA, $FF, $A2, $EE, $EE, $EE, $FF, $02, $F6, $F6, $F6, $FF, $75, $95, $BD, $FF, $8A, $42, $6E, $A5, $FF, $01, $D1, $DC, $E9, $FF, $85, $FF, $FF, $FF, $FF, $02, $BE, $D3, $E9, $FF, $73, $9F, $CF, $FB, $8E, $FF, $FF, $FF, $00, $02, $76, $A1, $D0, $DC, $AD, $C7, $E3, $FF, $85, $FF, $FF, $FF, $FF, $01, $ED, $F1, $F6, $FF, $A3, $42, $6D, $A4, $FF, $02, $42, $6B, $A0, $FF, $49, $53, $5B, $FF, $88, $2E, $34, $36, $FF, $03, $4A, $4F, $51, $FF, $8A, $8C, $8D, $FF, $C6, $C7, $C7, $FF, $A6, $EE, $EE, $EE, $FF, $02, $F0, $F0, $F0, $FF, $AA, $BD, $D6, $FF, $8A, $42, $6D, $A4, $FF, $01, $ED, $F1, $F6, $FF, $85, $FF, $FF, $FF, $FF, $02, $AD, $C7, $E3, $FF, $75, $A1, $D0, $DD, $8E, $FF, $FF, $FF, $00, $02, $72, $9F, $CF, $B2, $96, $B7, $DB, $FD, $86, $FF, $FF, $FF, $FF, $01, $4C, $75, $A9, $FF, $A3, $41, $6C, $A4, $FF, $02, $40, $69, $9D, $FF, $46, $4E, $55, $FF, $85, $2E, $34, $36, $FF, $02, $67, $6C, $6D, $FF, $BA, $BB, $BC, $FF, $AA, $EE, $EE, $EE, $FF, $01, $CE, $D8, $E5, $FF, $89, $41, $6C, $A4, $FF, $01, $4C, $75, $A9, $FF, $86, $FF, $FF, $FF, $FF, $02, $96, $B7, $DB, $FD, $72, $9F, $CF, $B2, $8E, $FF, $FF, $FF, $00, $02, $72, $9F, $CF, $8B, $7F, $A8, $D3, $FA, $86, $FF, $FF, $FF, $FF, $01, $68, $8A, $B6, $FF, $A4, $40, $6B, $A3, $FF, $06, $3F, $67, $99, $FF, $43, $4A, $4D, $FF, $2E, $34, $36, $FF, $37, $3D, $3E, $FF, $81, $84, $84, $FF, $D2, $D3, $D3, $FF, $AC, $EE, $EE, $EE, $FF, $02, $EB, $ED, $F0, $FF, $41, $6C, $A4, $FF, $88, $40, $6B, $A3, $FF, $01, $68, $8A, $B6, $FF, $86, $FF, $FF, $FF, $FF, $02, $7F, $A8, $D3, $FA, $72, $9F, $CF, $8B, $8E, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $64, $72, $9F, $CF, $FF, $F8, $FA, $FD, $FF, $85, $FF, $FF, $FF, $FF, $01, $84, $A0, $C4, $FF, $A5, $3F, $6A, $A2, $FF, $03, $5F, $7E, $A3, $FF, $9A, $9D, $9E, $FF, $E3, $E3, $E3, $FF, $AE, $EE, $EE, $EE, $FF, $02, $EF, $EF, $EF, $FF, $5E, $82, $B1, $FF, $88, $3F, $6A, $A2, $FF, $01, $84, $A0, $C4, $FF, $85, $FF, $FF, $FF, $FF, $03, $F8, $FA, $FD, $FF, $72, $9F, $CF, $FF, $72, $9F, $CF, $64, $8E, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $3E, $72, $9F, $CF, $FF, $E3, $EC, $F5, $FF, $85, $FF, $FF, $FF, $FF, $01, $B0, $C2, $D9, $FF, $A4, $3E, $69, $A2, $FF, $02, $49, $72, $A6, $FF, $D8, $DC, $E4, $FF, $B1, $EE, $EE, $EE, $FF, $01, $81, $9D, $C0, $FF, $88, $3E, $69, $A2, $FF, $01, $B0, $C2, $D9, $FF, $85, $FF, $FF, $FF, $FF, $03, $E3, $EC, $F5, $FF, $72, $9F, $CF, $FF, $72, $9F, $CF, $3E, $8E, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $14, $72, $9F, $CF, $FE, $CA, $DB, $ED, $FF, $85, $FF, $FF, $FF, $FF, $02, $EB, $F0, $F5, $FF, $3F, $6A, $A1, $FF, $A2, $3E, $69, $A1, $FF, $02, $41, $6B, $A2, $FF, $B9, $C6, $D7, $FF, $B2, $EE, $EE, $EE, $FF, $01, $A5, $B7, $CE, $FF, $87, $3E, $69, $A1, $FF, $02, $3F, $6A, $A1, $FF, $EB, $F0, $F5, $FF, $85, $FF, $FF, $FF, $FF, $03, $CA, $DB, $ED, $FF, $72, $9F, $CF, $FE, $72, $9F, $CF, $14, $8F, $FF, $FF, $FF, $00, $02, $75, $A1, $D0, $D6, $A6, $C2, $E1, $FF, $86, $FF, $FF, $FF, $FF, $01, $66, $88, $B4, $FF, $A1, $3D, $68, $A0, $FF, $02, $54, $79, $AB, $FF, $C9, $D2, $DE, $FF, $B3, $EE, $EE, $EE, $FF, $01, $C3, $CE, $DB, $FF, $87, $3D, $68, $A0, $FF, $01, $66, $88, $B4, $FF, $86, $FF, $FF, $FF, $FF, $02, $A6, $C2, $E1, $FF, $75, $A1, $D0, $D6, $90, $FF, $FF, $FF, $00, $02, $72, $9F, $CF, $91, $7F, $A8, $D4, $FA, $86, $FF, $FF, $FF, $FF, $01, $A2, $B6, $D2, $FF, $A0, $3C, $67, $A0, $FF, $02, $79, $95, $BB, $FF, $E4, $E6, $E9, $FF, $B4, $EE, $EE, $EE, $FF, $01, $D6, $DC, $E4, $FF, $87, $3C, $67, $A0, $FF, $01, $A2, $B6, $D2, $FF, $86, $FF, $FF, $FF, $FF, $02, $7F, $A8, $D4, $FA, $72, $9F, $CF, $91, $90, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $50, $72, $9F, $CF, $FF, $EA, $F1, $F8, $FF, $85, $FF, $FF, $FF, $FF, $01, $DE, $E5, $EF, $FF, $9E, $3B, $66, $9F, $FF, $02, $60, $82, $B0, $FF, $B7, $C4, $D6, $FF, $B6, $EE, $EE, $EE, $FF, $01, $E7, $E8, $EB, $FF, $87, $3B, $66, $9F, $FF, $01, $DE, $E5, $EF, $FF, $85, $FF, $FF, $FF, $FF, $03, $EA, $F1, $F8, $FF, $72, $9F, $CF, $FF, $72, $9F, $CF, $50, $90, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $11, $72, $9F, $CF, $FE, $C5, $D7, $EB, $FF, $86, $FF, $FF, $FF, $FF, $01, $56, $7B, $AC, $FF, $9B, $3A, $65, $9E, $FF, $02, $6A, $8A, $B4, $FF, $C0, $CB, $D9, $FF, $B9, $EE, $EE, $EE, $FF, $01, $43, $6C, $A3, $FF, $85, $3A, $65, $9E, $FF, $01, $56, $7B, $AC, $FF, $86, $FF, $FF, $FF, $FF, $03, $C5, $D7, $EB, $FF, $72, $9F, $CF, $FE, $72, $9F, $CF, $11, $91, $FF, $FF, $FF, $00, $02, $75, $A1, $D0, $D2, $9F, $BD, $DE, $FF, $86, $FF, $FF, $FF, $FF, $01, $93, $AA, $C9, $FF, $98, $3A, $65, $9D, $FF, $03, $56, $7A, $AA, $FF, $8C, $A3, $C3, $FF, $CA, $D3, $DE, $FF, $BB, $EE, $EE, $EE, $FF, $01, $56, $7B, $AB, $FF, $85, $3A, $65, $9D, $FF, $01, $93, $AA, $C9, $FF, $86, $FF, $FF, $FF, $FF, $02, $9F, $BD, $DE, $FF, $75, $A1, $D0, $D2, $92, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $7F, $75, $A1, $D0, $FD, $F7, $FA, $FC, $FF, $85, $FF, $FF, $FF, $FF, $01, $D0, $DA, $E8, $FF, $94, $39, $64, $9D, $FF, $04, $3E, $68, $A0, $FF, $6D, $8C, $B4, $FF, $A2, $B5, $CC, $FF, $D5, $DB, $E3, $FF, $BE, $EE, $EE, $EE, $FF, $01, $69, $89, $B3, $FF, $85, $39, $64, $9D, $FF, $01, $D0, $DA, $E8, $FF, $85, $FF, $FF, $FF, $FF, $03, $F7, $FA, $FC, $FF, $75, $A1, $D0, $FD, $72, $9F, $CF, $7F, $92, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $21, $72, $9F, $CF, $FE, $C9, $DA, $ED, $FF, $85, $FF, $FF, $FF, $FF, $02, $FD, $FE, $FE, $FF, $48, $6F, $A4, $FF, $91, $38, $63, $9C, $FF, $03, $50, $76, $A6, $FF, $9E, $B1, $CB, $FF, $E2, $E5, $E8, $FF, $C1, $EE, $EE, $EE, $FF, $01, $7C, $97, $BB, $FF, $84, $38, $63, $9C, $FF, $02, $48, $6F, $A4, $FF, $FD, $FE, $FE, $FF, $85, $FF, $FF, $FF, $FF, $03, $C9, $DA, $ED, $FF, $72, $9F, $CF, $FE, $72, $9F, $CF, $21, $93, $FF, $FF, $FF, $00, $02, $74, $A1, $D0, $C5, $95, $B7, $DB, $FC, $86, $FF, $FF, $FF, $FF, $01, $8F, $A7, $C7, $FF, $8F, $37, $62, $9B, $FF, $03, $65, $86, $B2, $FF, $BA, $C7, $D7, $FF, $EC, $ED, $ED, $FF, $C3, $EE, $EE, $EE, $FF, $02, $D7, $DC, $E4, $FF, $67, $88, $B3, $FF, $83, $37, $62, $9B, $FF, $01, $8F, $A7, $C7, $FF, $86, $FF, $FF, $FF, $FF, $02, $95, $B7, $DB, $FC, $74, $A1, $D0, $C5, $94, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $64, $73, $9F, $CF, $FE, $F0, $F4, $FA, $FF, $85, $FF, $FF, $FF, $FF, $02, $EF, $F3, $F7, $FF, $41, $6A, $A0, $FF, $8C, $36, $61, $9B, $FF, $04, $39, $63, $9D, $FF, $A0, $B5, $D0, $FF, $FE, $FE, $FF, $FF, $F6, $F6, $F6, $FF, $C4, $EE, $EE, $EE, $FF, $06, $EF, $EF, $EF, $FF, $FD, $FE, $FE, $FF, $A7, $BA, $D3, $FF, $3D, $67, $9F, $FF, $41, $6A, $A0, $FF, $EF, $F3, $F7, $FF, $85, $FF, $FF, $FF, $FF, $03, $F0, $F4, $FA, $FF, $73, $9F, $CF, $FE, $72, $9F, $CF, $64, $94, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $0F, $73, $A0, $CF, $F9, $BC, $D1, $E8, $FF, $86, $FF, $FF, $FF, $FF, $01, $9F, $B3, $CF, $FF, $8B, $36, $61, $9A, $FF, $02, $50, $75, $A7, $FF, $D4, $DD, $E9, $FF, $82, $FF, $FF, $FF, $FF, $01, $FB, $FB, $FB, $FF, $C4, $EE, $EE, $EE, $FF, $01, $F0, $F0, $F0, $FF, $82, $FF, $FF, $FF, $FF, $02, $E1, $E7, $F0, $FF, $B4, $C4, $DA, $FF, $86, $FF, $FF, $FF, $FF, $03, $BC, $D1, $E8, $FF, $73, $A0, $CF, $F9, $72, $9F, $CF, $0F, $95, $FF, $FF, $FF, $00, $03, $73, $9F, $CF, $A1, $7C, $A6, $D2, $FC, $FA, $FC, $FD, $FF, $85, $FF, $FF, $FF, $FF, $02, $F7, $F9, $FB, $FF, $4A, $70, $A3, $FF, $89, $35, $60, $99, $FF, $02, $78, $94, $BB, $FF, $F3, $F6, $F9, $FF, $84, $FF, $FF, $FF, $FF, $01, $EF, $EF, $EF, $FF, $C3, $EE, $EE, $EE, $FF, $01, $F1, $F1, $F1, $FF, $89, $FF, $FF, $FF, $FF, $03, $FA, $FC, $FD, $FF, $7C, $A6, $D2, $FC, $73, $9F, $CF, $A1, $96, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $28, $72, $9F, $CF, $FE, $C2, $D5, $EA, $FF, $86, $FF, $FF, $FF, $FF, $01, $AF, $C0, $D7, $FF, $88, $34, $5F, $99, $FF, $02, $84, $9E, $C1, $FF, $FE, $FE, $FF, $FF, $85, $FF, $FF, $FF, $FF, $01, $F6, $F6, $F6, $FF, $C3, $EE, $EE, $EE, $FF, $01, $F3, $F3, $F3, $FF, $89, $FF, $FF, $FF, $FF, $03, $C2, $D5, $EA, $FF, $72, $9F, $CF, $FE, $72, $9F, $CF, $28, $97, $FF, $FF, $FF, $00, $03, $73, $A0, $CF, $AB, $80, $A8, $D4, $FB, $FC, $FD, $FE, $FF, $85, $FF, $FF, $FF, $FF, $02, $FD, $FD, $FE, $FF, $55, $79, $A9, $FF, $86, $33, $5E, $98, $FF, $02, $86, $A0, $C2, $FF, $FE, $FE, $FF, $FF, $87, $FF, $FF, $FF, $FF, $01, $F2, $F2, $F2, $FF, $C2, $EE, $EE, $EE, $FF, $01, $F7, $F7, $F7, $FF, $88, $FF, $FF, $FF, $FF, $03, $FC, $FD, $FE, $FF, $80, $A8, $D4, $FB, $73, $A0, $CF, $AB, $98, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $30, $72, $9F, $CF, $FF, $C7, $D9, $EC, $FF, $86, $FF, $FF, $FF, $FF, $01, $C1, $CE, $E0, $FF, $85, $32, $5D, $97, $FF, $01, $89, $A2, $C3, $FF, $89, $FF, $FF, $FF, $FF, $02, $FD, $FD, $FD, $FF, $EF, $EF, $EF, $FF, $C1, $EE, $EE, $EE, $FF, $01, $FC, $FC, $FC, $FF, $88, $FF, $FF, $FF, $FF, $03, $C7, $D9, $EC, $FF, $72, $9F, $CF, $FF, $72, $9F, $CF, $30, $99, $FF, $FF, $FF, $00, $03, $74, $A0, $D0, $B6, $84, $AB, $D5, $FC, $FC, $FD, $FE, $FF, $86, $FF, $FF, $FF, $FF, $01, $64, $84, $B0, $FF, $83, $32, $5C, $96, $FF, $01, $86, $9F, $C1, $FF, $8B, $FF, $FF, $FF, $FF, $02, $FB, $FB, $FB, $FF, $F0, $F0, $F0, $FF, $BF, $EE, $EE, $EE, $FF, $01, $F0, $F0, $F0, $FF, $88, $FF, $FF, $FF, $FF, $03, $FC, $FD, $FE, $FF, $84, $AB, $D5, $FC, $74, $A0, $D0, $B6, $9A, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $33, $72, $9F, $CF, $FE, $BD, $D2, $E9, $FF, $86, $FF, $FF, $FF, $FF, $05, $D3, $DC, $E9, $FF, $33, $5D, $97, $FF, $31, $5C, $96, $FF, $68, $87, $B2, $FF, $FD, $FD, $FE, $FF, $8C, $FF, $FF, $FF, $FF, $02, $FE, $FE, $FE, $FF, $F4, $F4, $F4, $FF, $BE, $EE, $EE, $EE, $FF, $01, $F9, $F9, $F9, $FF, $88, $FF, $FF, $FF, $FF, $03, $BD, $D2, $E9, $FF, $72, $9F, $CF, $FE, $72, $9F, $CF, $33, $9B, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $98, $77, $A2, $D1, $FC, $F0, $F4, $FA, $FF, $86, $FF, $FF, $FF, $FF, $03, $A2, $B5, $CF, $FF, $4E, $73, $A4, $FF, $F1, $F4, $F8, $FF, $8F, $FF, $FF, $FF, $FF, $02, $FA, $FA, $FA, $FF, $F1, $F1, $F1, $FF, $BB, $EE, $EE, $EE, $FF, $01, $F4, $F4, $F4, $FF, $88, $FF, $FF, $FF, $FF, $03, $F0, $F4, $FA, $FF, $77, $A2, $D1, $FC, $72, $9F, $CF, $98, $9C, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $12, $74, $A0, $D0, $EE, $A0, $BE, $DF, $FE, $87, $FF, $FF, $FF, $FF, $01, $EA, $EF, $F4, $FF, $92, $FF, $FF, $FF, $FF, $03, $FB, $FB, $FB, $FF, $F5, $F5, $F5, $FF, $EF, $EF, $EF, $FF, $B7, $EE, $EE, $EE, $FF, $02, $F4, $F4, $F4, $FF, $FE, $FE, $FE, $FF, $88, $FF, $FF, $FF, $FF, $03, $A0, $BE, $DF, $FE, $74, $A0, $D0, $EE, $72, $9F, $CF, $12, $9D, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $63, $72, $9F, $CF, $FF, $D8, $E5, $F2, $FF, $86, $FF, $FF, $FF, $FF, $01, $FE, $FE, $FF, $FF, $94, $FF, $FF, $FF, $FF, $04, $FE, $FE, $FE, $FF, $F9, $F9, $F9, $FF, $F5, $F5, $F5, $FF, $F1, $F1, $F1, $FF, $B2, $EE, $EE, $EE, $FF, $02, $F1, $F1, $F1, $FF, $FB, $FB, $FB, $FF, $89, $FF, $FF, $FF, $FF, $03, $D8, $E5, $F2, $FF, $72, $9F, $CF, $FF, $72, $9F, $CF, $63, $9E, $FF, $FF, $FF, $00, $04, $72, $9F, $CF, $01, $74, $A0, $D0, $C8, $82, $AA, $D5, $FB, $F7, $F9, $FC, $FF, $86, $FF, $FF, $FF, $FF, $01, $FE, $FE, $FE, $FF, $97, $FF, $FF, $FF, $FF, $07, $FE, $FE, $FE, $FF, $FB, $FB, $FB, $FF, $F8, $F8, $F8, $FF, $F4, $F4, $F4, $FF, $F3, $F3, $F3, $FF, $F1, $F1, $F1, $FF, $EF, $EF, $EF, $FF, $A7, $EE, $EE, $EE, $FF, $04, $EF, $EF, $EF, $FF, $F4, $F4, $F4, $FF, $F8, $F8, $F8, $FF, $FC, $FC, $FC, $FF, $8A, $FF, $FF, $FF, $FF, $04, $F7, $F9, $FC, $FF, $82, $AA, $D5, $FB, $74, $A0, $D0, $C8, $72, $9F, $CF, $01, $9F, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $24, $74, $A0, $D0, $F4, $9F, $BE, $DE, $FE, $87, $FF, $FF, $FF, $FF, $01, $FE, $FE, $FF, $FF, $9D, $FF, $FF, $FF, $FF, $03, $FE, $FE, $FE, $FF, $FC, $FC, $FC, $FF, $FA, $FA, $FA, $FF, $82, $F9, $F9, $F9, $FF, $82, $F8, $F8, $F8, $FF, $82, $F7, $F7, $F7, $FF, $82, $F6, $F6, $F6, $FF, $82, $F5, $F5, $F5, $FF, $82, $F4, $F4, $F4, $FF, $82, $F3, $F3, $F3, $FF, $84, $F2, $F2, $F2, $FF, $84, $F3, $F3, $F3, $FF, $83, $F4, $F4, $F4, $FF, $83, $F5, $F5, $F5, $FF, $83, $F6, $F6, $F6, $FF, $05, $F7, $F7, $F7, $FF, $F9, $F9, $F9, $FF, $FB, $FB, $FB, $FF, $FC, $FC, $FC, $FF, $FE, $FE, $FE, $FF, $8E, $FF, $FF, $FF, $FF, $03, $9F, $BE, $DE, $FE, $74, $A0, $D0, $F4, $72, $9F, $CF, $24, $A1, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $56, $72, $9F, $CF, $FF, $C2, $D6, $EA, $FF, $D8, $FF, $FF, $FF, $FF, $03, $C2, $D6, $EA, $FF, $72, $9F, $CF, $FF, $72, $9F, $CF, $56, $A3, $FF, $FF, $FF, $00, $03, $72, $9F, $CF, $97, $74, $A1, $D0, $FD, $E2, $EB, $F5, $FF, $D6, $FF, $FF, $FF, $FF, $03, $E2, $EB, $F5, $FF, $74, $A1, $D0, $FD, $72, $9F, $CF, $97, $A4, $FF, $FF, $FF, $00, $04, $72, $9F, $CF, $08, $75, $A1, $D0, $D3, $83, $AB, $D5, $FB, $F5, $F8, $FC, $FF, $86, $FF, $FF, $FF, $FF, $01, $FE, $FE, $FF, $FF, $CD, $FF, $FF, $FF, $FF, $04, $F5, $F8, $FC, $FF, $83, $AB, $D5, $FB, $75, $A1, $D0, $D3, $72, $9F, $CF, $08, $A5, $FF, $FF, $FF, $00, $04, $72, $9F, $CF, $25, $74, $A0, $D0, $F1, $90, $B3, $D9, $FC, $F9, $FB, $FD, $FF, $D2, $FF, $FF, $FF, $FF, $04, $F9, $FB, $FD, $FF, $90, $B3, $D9, $FC, $74, $A0, $D0, $F1, $72, $9F, $CF, $25, $A7, $FF, $FF, $FF, $00, $04, $72, $9F, $CF, $39, $73, $A0, $CF, $F8, $9A, $BA, $DC, $FD, $FC, $FD, $FE, $FF, $87, $FF, $FF, $FF, $FF, $01, $FE, $FF, $FF, $FF, $C8, $FF, $FF, $FF, $FF, $04, $FC, $FD, $FE, $FF, $9A, $BA, $DC, $FD, $73, $A0, $CF, $F8, $72, $9F, $CF, $39, $A9, $FF, $FF, $FF, $00, $04, $72, $9F, $CF, $4A, $73, $9F, $CF, $FC, $A5, $C1, $E0, $FE, $FE, $FF, $FF, $FF, $87, $FF, $FF, $FF, $FF, $01, $FE, $FE, $FE, $FF, $C6, $FF, $FF, $FF, $FF, $04, $FE, $FF, $FF, $FF, $A5, $C1, $E0, $FE, $73, $9F, $CF, $FC, $72, $9F, $CF, $4A, $AB, $FF, $FF, $FF, $00, $04, $72, $9F, $CF, $5C, $72, $9F, $CF, $FE, $AE, $C8, $E3, $FF, $FE, $FF, $FF, $FF, $87, $FF, $FF, $FF, $FF, $01, $FE, $FE, $FE, $FF, $C4, $FF, $FF, $FF, $FF, $04, $FE, $FF, $FF, $FF, $AE, $C8, $E3, $FF, $72, $9F, $CF, $FE, $72, $9F, $CF, $5C, $AD, $FF, $FF, $FF, $00, $04, $72, $9F, $CF, $6C, $72, $9F, $CF, $FE, $A5, $C1, $E0, $FE, $FC, $FD, $FE, $FF, $CA, $FF, $FF, $FF, $FF, $04, $FC, $FD, $FE, $FF, $A5, $C1, $E0, $FE, $72, $9F, $CF, $FE, $72, $9F, $CF, $6C, $AF, $FF, $FF, $FF, $00, $04, $72, $9F, $CF, $5C, $73, $9F, $CF, $FC, $9A, $BA, $DC, $FD, $F9, $FB, $FD, $FF, $88, $FF, $FF, $FF, $FF, $01, $FC, $FD, $FD, $FF, $BF, $FF, $FF, $FF, $FF, $04, $F9, $FB, $FD, $FF, $9A, $BA, $DC, $FD, $73, $9F, $CF, $FC, $72, $9F, $CF, $5C, $B1, $FF, $FF, $FF, $00, $04, $72, $9F, $CF, $4A, $73, $A0, $CF, $F8, $90, $B3, $D9, $FC, $F5, $F8, $FC, $FF, $C6, $FF, $FF, $FF, $FF, $04, $F5, $F8, $FC, $FF, $90, $B3, $D9, $FC, $73, $A0, $CF, $F8, $72, $9F, $CF, $4A, $B3, $FF, $FF, $FF, $00, $04, $72, $9F, $CF, $39, $74, $A0, $D0, $F1, $83, $AB, $D5, $FB, $E2, $EB, $F5, $FF, $89, $FF, $FF, $FF, $FF, $01, $FE, $FF, $FF, $FF, $BA, $FF, $FF, $FF, $FF, $04, $E2, $EB, $F5, $FF, $83, $AB, $D5, $FB, $74, $A0, $D0, $F1, $72, $9F, $CF, $39, $B5, $FF, $FF, $FF, $00, $04, $72, $9F, $CF, $25, $75, $A1, $D0, $D3, $74, $A1, $D0, $FD, $C2, $D6, $EA, $FF, $8A, $FF, $FF, $FF, $FF, $01, $FE, $FF, $FF, $FF, $B7, $FF, $FF, $FF, $FF, $04, $C3, $D6, $EA, $FF, $74, $A1, $D0, $FD, $75, $A1, $D0, $D3, $72, $9F, $CF, $25, $B7, $FF, $FF, $FF, $00, $05, $72, $9F, $CF, $08, $72, $9F, $CF, $97, $72, $9F, $CF, $FF, $9F, $BE, $DE, $FE, $F7, $F9, $FC, $FF, $8A, $FF, $FF, $FF, $FF, $01, $FD, $FD, $FE, $FF, $B3, $FF, $FF, $FF, $FF, $05, $F7, $F9, $FC, $FF, $9F, $BE, $DE, $FE, $72, $9F, $CF, $FF, $72, $9F, $CF, $97, $72, $9F, $CF, $08, $BA, $FF, $FF, $FF, $00, $04, $72, $9F, $CF, $56, $74, $A0, $D0, $F4, $82, $AA, $D5, $FB, $D8, $E5, $F2, $FF, $BC, $FF, $FF, $FF, $FF, $04, $D8, $E5, $F2, $FF, $82, $AA, $D5, $FB, $74, $A0, $D0, $F4, $72, $9F, $CF, $56, $BD, $FF, $FF, $FF, $00, $05, $72, $9F, $CF, $24, $74, $A0, $D0, $C8, $72, $9F, $CF, $FF, $A0, $BE, $DF, $FE, $F0, $F4, $FA, $FF, $B8, $FF, $FF, $FF, $FF, $05, $F0, $F4, $FA, $FF, $A0, $BE, $DF, $FE, $72, $9F, $CF, $FF, $74, $A0, $D0, $C8, $72, $9F, $CF, $24, $BF, $FF, $FF, $FF, $00, $06, $72, $9F, $CF, $01, $72, $9F, $CF, $63, $74, $A0, $D0, $EE, $77, $A2, $D1, $FC, $BD, $D2, $E9, $FF, $FC, $FD, $FE, $FF, $B4, $FF, $FF, $FF, $FF, $06, $FC, $FD, $FE, $FF, $BD, $D2, $E9, $FF, $77, $A2, $D1, $FC, $74, $A0, $D0, $EE, $72, $9F, $CF, $63, $72, $9F, $CF, $01, $C2, $FF, $FF, $FF, $00, $06, $72, $9F, $CF, $12, $72, $9F, $CF, $98, $72, $9F, $CF, $FE, $84, $AB, $D5, $FC, $C7, $D9, $EC, $FF, $FC, $FD, $FE, $FF, $B0, $FF, $FF, $FF, $FF, $06, $FC, $FD, $FE, $FF, $C7, $D9, $EC, $FF, $84, $AB, $D5, $FC, $72, $9F, $CF, $FE, $72, $9F, $CF, $98, $72, $9F, $CF, $12, $C6, $FF, $FF, $FF, $00, $06, $72, $9F, $CF, $33, $74, $A0, $D0, $B6, $72, $9F, $CF, $FF, $80, $A8, $D4, $FB, $C2, $D5, $EA, $FF, $FA, $FC, $FD, $FF, $AC, $FF, $FF, $FF, $FF, $06, $FA, $FC, $FD, $FF, $C2, $D5, $EA, $FF, $80, $A8, $D4, $FB, $72, $9F, $CF, $FF, $74, $A0, $D0, $B6, $72, $9F, $CF, $33, $CA, $FF, $FF, $FF, $00, $06, $72, $9F, $CF, $30, $73, $A0, $CF, $AB, $72, $9F, $CF, $FE, $7C, $A6, $D2, $FC, $BC, $D1, $E8, $FF, $F0, $F4, $FA, $FF, $A8, $FF, $FF, $FF, $FF, $06, $F0, $F4, $FA, $FF, $BC, $D1, $E8, $FF, $7C, $A6, $D2, $FC, $72, $9F, $CF, $FE, $73, $A0, $CF, $AB, $72, $9F, $CF, $30, $CE, $FF, $FF, $FF, $00, $07, $72, $9F, $CF, $28, $73, $9F, $CF, $A1, $73, $A0, $CF, $F9, $73, $9F, $CF, $FE, $95, $B7, $DB, $FC, $C9, $DA, $ED, $FF, $F7, $FA, $FC, $FF, $A2, $FF, $FF, $FF, $FF, $07, $F7, $FA, $FC, $FF, $C9, $DA, $ED, $FF, $95, $B7, $DB, $FC, $73, $9F, $CF, $FE, $73, $A0, $CF, $F9, $73, $9F, $CF, $A1, $72, $9F, $CF, $28, $D2, $FF, $FF, $FF, $00, $08, $72, $9F, $CF, $0F, $72, $9F, $CF, $64, $74, $A1, $D0, $C5, $72, $9F, $CF, $FE, $75, $A1, $D0, $FD, $9F, $BD, $DE, $FF, $C5, $D7, $EB, $FF, $EA, $F1, $F8, $FF, $9C, $FF, $FF, $FF, $FF, $08, $EA, $F1, $F8, $FF, $C5, $D7, $EB, $FF, $9F, $BD, $DE, $FF, $75, $A1, $D0, $FD, $72, $9F, $CF, $FE, $74, $A1, $D0, $C5, $72, $9F, $CF, $64, $72, $9F, $CF, $0F, $D7, $FF, $FF, $FF, $00, $0A, $72, $9F, $CF, $21, $72, $9F, $CF, $7F, $75, $A1, $D0, $D2, $72, $9F, $CF, $FE, $72, $9F, $CF, $FF, $7F, $A8, $D4, $FA, $A6, $C2, $E1, $FF, $CA, $DB, $ED, $FF, $E3, $EC, $F5, $FF, $F8, $FA, $FD, $FF, $92, $FF, $FF, $FF, $FF, $0A, $F8, $FA, $FD, $FF, $E3, $EC, $F5, $FF, $CA, $DB, $ED, $FF, $A6, $C2, $E1, $FF, $7F, $A8, $D4, $FA, $72, $9F, $CF, $FF, $72, $9F, $CF, $FE, $75, $A1, $D0, $D2, $72, $9F, $CF, $7F, $72, $9F, $CF, $21, $DD, $FF, $FF, $FF, $00, $05, $72, $9F, $CF, $11, $72, $9F, $CF, $50, $72, $9F, $CF, $91, $75, $A1, $D0, $D6, $72, $9F, $CF, $FE, $82, $72, $9F, $CF, $FF, $08, $7F, $A8, $D3, $FA, $96, $B7, $DB, $FD, $AD, $C7, $E3, $FF, $BE, $D3, $E9, $FF, $C5, $D7, $EB, $FF, $CC, $DC, $EE, $FF, $D3, $E1, $F0, $FF, $DB, $E6, $F3, $FF, $82, $E1, $EB, $F5, $FF, $08, $DB, $E6, $F3, $FF, $D3, $E1, $F0, $FF, $CC, $DC, $EE, $FF, $C5, $D7, $EB, $FF, $BE, $D3, $E9, $FF, $AD, $C7, $E3, $FF, $96, $B7, $DB, $FD, $7F, $A8, $D3, $FA, $82, $72, $9F, $CF, $FF, $05, $72, $9F, $CF, $FE, $75, $A1, $D0, $D6, $72, $9F, $CF, $91, $72, $9F, $CF, $50, $72, $9F, $CF, $11, $E4, $FF, $FF, $FF, $00, $07, $72, $9F, $CF, $14, $72, $9F, $CF, $3E, $72, $9F, $CF, $64, $72, $9F, $CF, $8B, $72, $9F, $CF, $B2, $76, $A1, $D0, $DC, $73, $9F, $CF, $FB, $8A, $72, $9F, $CF, $FF, $07, $73, $9F, $CF, $FB, $75, $A1, $D0, $DD, $72, $9F, $CF, $B2, $72, $9F, $CF, $8B, $72, $9F, $CF, $64, $72, $9F, $CF, $3E, $72, $9F, $CF, $14, $EF, $FF, $FF, $FF, $00, $04, $72, $9F, $CF, $08, $72, $9F, $CF, $14, $72, $9F, $CF, $21, $72, $9F, $CF, $2D, $82, $72, $9F, $CF, $3A, $04, $72, $9F, $CF, $2D, $72, $9F, $CF, $21, $72, $9F, $CF, $14, $72, $9F, $CF, $08, $FF, $FF, $FF, $FF, $00, $FF, $FF, $FF, $FF, $00, $FF, $FF, $FF, $FF, $00, $FF, $FF, $FF, $FF, $00, $FF, $FF, $FF, $FF, $00, $FF, $FF, $FF, $FF, $00, $FF, $FF, $FF, $FF, $00, $C3, $FF, $FF, $FF, $00, $00); tuxcmd-0.6.70+dfsg/pixmaps/gnome_mime_application_zip_16_png.inc0000644000175000017500000001304511300022643023746 0ustar salvisalviconst gnome_mime_application_zip_16_png: array[1..1049] of byte = ( $47, $64, $6B, $50, $00, $00, $04, $18, $01, $01, $00, $02, $00, $00, $00, $40, $00, $00, $00, $10, $00, $00, $00, $10, $0B, $0B, $0B, $00, $07, $07, $07, $00, $00, $00, $01, $00, $02, $02, $02, $00, $10, $10, $10, $00, $02, $02, $02, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $2A, $11, $11, $10, $BB, $14, $14, $12, $D3, $00, $00, $00, $16, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $0B, $0B, $0B, $00, $07, $07, $07, $00, $00, $00, $01, $00, $00, $00, $00, $00, $09, $09, $09, $00, $00, $00, $00, $5A, $23, $23, $20, $BC, $38, $38, $36, $D3, $33, $34, $2F, $F4, $62, $65, $54, $FF, $6D, $6F, $5B, $FF, $13, $13, $10, $D5, $00, $00, $00, $02, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $0B, $0B, $0B, $00, $02, $02, $02, $00, $00, $00, $00, $0E, $02, $02, $02, $73, $36, $36, $33, $DF, $94, $94, $8C, $FD, $D4, $D4, $C8, $FF, $A0, $A1, $93, $FF, $73, $77, $63, $FF, $79, $7C, $66, $FF, $85, $88, $6F, $FF, $6A, $6E, $5A, $FF, $0B, $0C, $09, $B9, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $04, $04, $04, $25, $10, $10, $10, $90, $4F, $4F, $4E, $E9, $A8, $A8, $A5, $FF, $F5, $F5, $EB, $FF, $DE, $DF, $D2, $FF, $88, $8A, $7A, $FF, $69, $6C, $58, $FF, $73, $75, $61, $FF, $7A, $7E, $67, $FF, $81, $86, $6E, $FF, $98, $9C, $80, $FF, $5D, $60, $4E, $FF, $04, $04, $03, $83, $00, $00, $00, $00, $00, $00, $00, $00, $2D, $2E, $2B, $D5, $AF, $B0, $A8, $FF, $D2, $D2, $C8, $FF, $D4, $D5, $CD, $FF, $C9, $CA, $C5, $FF, $8D, $8E, $83, $FF, $61, $64, $4F, $FF, $70, $73, $5D, $FF, $79, $7D, $66, $FF, $83, $86, $6E, $FF, $89, $8C, $74, $FF, $82, $85, $6E, $FF, $75, $79, $61, $FF, $14, $15, $11, $D0, $00, $00, $00, $00, $00, $00, $00, $00, $50, $50, $4B, $ED, $F8, $F9, $E6, $FF, $CE, $D0, $BF, $FF, $A1, $A2, $91, $FF, $74, $77, $65, $FF, $7A, $7C, $6B, $FF, $94, $96, $85, $FF, $73, $77, $5F, $FF, $82, $86, $6F, $FF, $83, $86, $70, $FF, $72, $75, $60, $FF, $6E, $71, $5C, $FF, $70, $74, $5E, $FF, $16, $17, $13, $D3, $00, $00, $00, $00, $00, $00, $00, $00, $39, $3A, $36, $E5, $E4, $E5, $D4, $FF, $E5, $E6, $D4, $FF, $E6, $E7, $D6, $FF, $DE, $DF, $CE, $FF, $C5, $C6, $B3, $FF, $BF, $C1, $AE, $FF, $AA, $AD, $98, $FF, $79, $7C, $68, $FF, $69, $6C, $59, $FF, $6A, $6D, $58, $FF, $75, $79, $62, $FF, $77, $7A, $64, $FF, $16, $16, $13, $D6, $00, $00, $00, $00, $00, $00, $00, $00, $32, $33, $30, $DC, $E0, $E1, $D0, $FF, $E1, $E2, $D1, $FF, $DD, $DE, $CD, $FF, $E0, $E1, $D0, $FF, $E4, $E5, $D4, $FF, $EA, $EB, $DA, $FF, $C5, $C6, $B6, $FF, $5E, $62, $4F, $FF, $6B, $6F, $59, $FF, $72, $76, $60, $FF, $7C, $80, $67, $FF, $7C, $80, $69, $FF, $17, $17, $14, $DA, $00, $00, $00, $00, $00, $00, $00, $00, $2C, $2C, $29, $C8, $DC, $DD, $CC, $FF, $E2, $E3, $D2, $FF, $DE, $DF, $CE, $FF, $DE, $DF, $CE, $FF, $DD, $DE, $CD, $FF, $E8, $E9, $D8, $FF, $B8, $B9, $A8, $FF, $62, $65, $51, $FF, $72, $76, $60, $FF, $78, $7C, $65, $FF, $82, $86, $6D, $FF, $81, $84, $6D, $FF, $17, $18, $15, $DC, $02, $02, $02, $00, $1C, $1C, $1C, $00, $24, $24, $21, $B4, $D5, $D6, $C6, $FF, $E4, $E5, $D3, $FF, $DE, $DF, $CE, $FF, $DE, $DF, $CE, $FF, $DD, $DE, $CD, $FF, $E3, $E5, $D3, $FF, $B8, $BA, $A8, $FF, $69, $6D, $57, $FF, $77, $7C, $65, $FF, $7E, $82, $6A, $FF, $86, $8A, $70, $FF, $85, $88, $71, $FF, $17, $17, $15, $E3, $11, $11, $11, $14, $28, $28, $28, $04, $1A, $1A, $17, $B1, $CF, $CF, $C0, $FF, $E4, $E5, $D4, $FF, $DC, $DD, $CD, $FF, $DA, $DC, $CB, $FF, $D8, $D9, $C8, $FF, $DE, $DF, $CE, $FF, $B7, $BA, $A7, $FF, $70, $74, $5C, $FF, $7E, $82, $6A, $FF, $82, $86, $6D, $FF, $90, $94, $79, $FF, $8D, $8F, $79, $FF, $15, $15, $14, $F1, $1A, $1A, $1B, $57, $25, $25, $25, $26, $10, $10, $0F, $A9, $C2, $C3, $B5, $FF, $F0, $F2, $DF, $FF, $DC, $DD, $CD, $FF, $D4, $D6, $C5, $FF, $D2, $D4, $C4, $FF, $D8, $D9, $C9, $FF, $B7, $B9, $A6, $FF, $76, $7A, $62, $FF, $83, $88, $6D, $FF, $8F, $94, $78, $FF, $8C, $90, $76, $FF, $4C, $4D, $43, $FF, $0C, $0C, $0D, $DB, $20, $20, $20, $64, $25, $25, $25, $33, $03, $02, $03, $41, $36, $37, $32, $E7, $8D, $8F, $83, $FF, $CB, $CB, $BC, $FF, $DF, $E1, $CF, $FF, $D7, $D8, $C8, $FF, $D4, $D5, $C6, $FF, $B5, $B8, $A5, $FF, $81, $86, $6C, $FF, $90, $94, $79, $FF, $68, $6B, $58, $FF, $27, $28, $23, $FE, $0D, $0D, $0F, $D7, $1F, $1F, $1F, $7F, $24, $24, $24, $3A, $24, $24, $24, $10, $01, $01, $02, $00, $00, $00, $00, $0C, $00, $00, $00, $76, $25, $25, $22, $DA, $72, $73, $6A, $FD, $B2, $B3, $A6, $FF, $D6, $D8, $C9, $FF, $C5, $C8, $B2, $FF, $7A, $7E, $65, $FF, $41, $43, $38, $FF, $08, $08, $09, $E5, $0E, $0D, $0F, $8F, $23, $23, $23, $30, $26, $26, $26, $08, $24, $24, $24, $00, $24, $24, $24, $00, $01, $01, $02, $00, $08, $08, $07, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $50, $14, $14, $13, $C2, $5C, $5C, $56, $F8, $86, $87, $7A, $FF, $1A, $1A, $16, $F1, $00, $00, $00, $86, $00, $00, $00, $0E, $13, $13, $13, $00, $24, $24, $24, $00, $25, $25, $25, $00, $24, $24, $24, $00, $24, $24, $24, $00, $01, $01, $02, $00, $08, $08, $07, $00, $01, $01, $01, $00, $00, $00, $00, $00, $04, $04, $04, $00, $00, $00, $00, $00, $00, $00, $00, $3E, $03, $03, $03, $87, $00, $00, $00, $38, $00, $00, $00, $00, $02, $02, $02, $00, $13, $13, $13, $00, $24, $24, $24, $00, $25, $25, $25, $00, $24, $24, $24, $00, $24, $24, $24, $00, $00); tuxcmd-0.6.70+dfsg/UMain.pas0000644000175000017500000105063711300022643014566 0ustar salvisalvi(* Tux Commander - UMain - Main form and window-related functions Copyright (C) 2008 Tomas Bzatek Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UMain; interface uses gtk2, gdk2, gdk2pixbuf, glib2, pango, StrUtils, SysUtils, Types, Classes, DateUtils, GTKForms, GTKControls, GTKMenus, GTKStdCtrls, GTKExtCtrls, GTKView, GTKConsts, GTKUtils, GTKClasses, GTKPixbuf, UEngines, UConfig, UGnome, UVFSCore, UCoreClasses; type TFMain = class(TGTKForm) MainVBox : TGTKVBox; MainMenuHandleBox : TGTKHandleBox; MainMenu : TGTKMenuBar; LeftPanelBox, RightPanelBox : TGTKVBox; PanelSeparator : TGTKHPaned; LeftStatusBox, RightStatusBox, LeftPathLabelHBox, RightPathLabelHBox : TGTKHBox; LeftPathLabel, RightPathLabel : TGTKLabel; LeftPathLabelEventBox, RightPathLabelEventBox : TGTKEventBox; LeftScrolledWindow, RightScrolledWindow : TGTKScrolledWindow; LeftListView, RightListView: TGTKListView; LeftStatusLine, RightStatusLine : TGTKLabel; LeftUpButton, LeftRootButton, LeftHomeButton, RightUpButton, RightRootButton, RightHomeButton, LeftBookmarkButton, RightBookmarkButton : TGTKButton; LeftEqualButton, RightEqualButton : TGTKButton; LeftDiskInfoLabel, RightDiskInfoLabel : TGTKLabel; ButtonsBox : TGTKTable; F2Button, F3Button, F4Button, F5Button, F6Button, F7Button, F8Button : TGTKButton; mnuFile, mnuMark, mnuCommands, mnuShow, mnuSettings, mnuHelp : TGTKMenuItem; miExit : TGTKMenuItem; miSelectGroup, miUnselectGroup, miSelectAll, miUnselectAll, miInvertSelection : TGTKMenuItem; miRefresh : TGTKMenuItem; miShowDotFiles : TGTKMenuItem; miFileTypes: TGTKMenuItem; miAbout : TGTKMenuItem; miVerifyChecksums, miCreateChecksums : TGTKMenuItem; miSplitFile, miMergeFiles : TGTKMenuItem; miChangePermissions, miChangeOwner: TGTKMenuItem; miCreateSymlink, miEditSymlink: TGTKMenuItem; LeftQuickFindVBox, RightQuickFindVBox: TGTKVBox; LeftQuickFindHBox, RightQuickFindHBox: TGTKHBox; LeftQuickFindLabel, RightQuickFindLabel: TGTKLabel; LeftQuickFindEntry, RightQuickFindEntry: TGTKEntry; LeftQuickFindSeparator, RightQuickFindSeparator, ButtonBoxSeparator: TGTKHSeparator; CommandLineHBox: TGTKHBox; CommandLineCombo: TGTKCombo; CommandLineLabel: TGTKLabel; SplitterPopupMenu: TGTKMenuItem; FilePopupMenu: TGTKMenuItem; miPreferences: TGTKMenuItem; mnuBookmarks, miAddBookmark, miEditBookmarks, BookmarkPopup, BookmarkPopupDelete, miBookmarksSeparator: TGTKMenuItem; miShowDirectorySizes, miTargetSource: TGTKMenuItem; miCopyNames, miCopyFullPaths: TGTKMenuItem; ButtonBoxSpace: TGTKEventBox; MounterBarHandleBox : TGTKHandleBox; MounterBarTable: TGTKTable; MounterButtonPopupMenu, miMount, miUmount, miEject: TGTKMenuItem; miMounterSettings, miNoMounterBar, miShowOneMounterBar, miShowTwoMounterBar: TGTKMenuItem; LeftMounterTable, RightMounterTable: TGTKTable; miColumns: TGTKMenuItem; mnuPlugins, miTestPlugin: TGTKMenuItem; miSavePosition: TGTKMenuItem; LeftPanelNotebook, RightPanelNotebook: TEphyNotebook; LeftListBox, RightListBox: TGTKVBox; TabPopupMenu, miDuplicateTab, miCloseTab, miCloseAllTabs: TGTKMenuItem; mnuNetwork, miConnections, miOpenConnection, miQuickConnect, miDisconnect: TGTKMenuItem; miSearch: TGTKMenuItem; LeftDisconnectButton, RightDisconnectButton, LeftLeaveArchiveButton, RightLeaveArchiveButton: TGTKButton; OpenTerminalButton: TGTKButton; miNewTab: TGTKMenuItem; LeftPasswordButton, RightPasswordButton: TGTKImageButton; PathBoxPopupMenu: TGTKMenuItem; miPathBoxRefresh, miPathBoxCopyPath: TGTKMenuItem; procedure FormCreate(Sender: TObject); override; procedure FormDestroy(Sender: TObject); procedure FormResize(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure PanelSeparatorResize(Sender: TObject); procedure PanelSeparatorMouseUp(Sender: TObject; Button: TGDKMouseButton; Shift: TShiftState; X, Y: Integer; var Accept: boolean); procedure miExitClick(Sender: TObject); procedure miAboutClick(Sender: TObject); procedure miRefreshClick(Sender: TObject); procedure mnuMarkClick(Sender: TObject); procedure ListViewKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); procedure ListViewEnter(Sender: TObject; var Accept: boolean); procedure PathLabelMouseDown(Sender: TObject; Button: TGDKMouseButton; Shift: TShiftState; X, Y: Integer; var Accept: boolean); procedure PathButtonClick(Sender: TObject); function CompareFunc(Sender: TObject; var model: PGtkTreeModel; var a, b: PGtkTreeIter): integer; procedure F5ButtonClick(Sender: TObject); procedure F6ButtonClick(Sender: TObject); procedure F7ButtonClick(Sender: TObject); procedure F8ButtonClick(Sender: TObject); procedure ListViewDblClick(Sender: TObject; Button: TGDKMouseButton; Shift: TShiftState; X, Y: Integer; var Accept: boolean); procedure ListViewMouseDown(Sender: TObject; Button: TGDKMouseButton; Shift: TShiftState; X, Y: Integer; var Accept: boolean); procedure ListViewMouseUp(Sender: TObject; Button: TGDKMouseButton; Shift: TShiftState; X, Y: Integer; var Accept: boolean); procedure ListViewMouseMove(Sender: TObject; Button: TGDKMouseButton; Shift: TShiftState; X, Y: Integer; var Accept: boolean); procedure InplaceEditTimerTimer(Sender: TObject); procedure ListViewEdited(Sender: TObject; Column: TGTKTreeViewColumn; Item: TGTKListItem; var NewText: string; var AllowChange: boolean; var DataColumn: integer); procedure ListViewSelectionChanged(Sender: TObject); procedure QuickFindEntryEnter(Sender: TObject; var Accept: boolean); procedure miVerifyChecksumsClick(Sender: TObject); procedure miCreateChecksumsClick(Sender: TObject); procedure miMergeFilesClick(Sender: TObject); procedure miSplitFileClick(Sender: TObject); procedure miShowDotFilesClick(Sender: TObject); procedure F3F4ButtonClick(Sender: TObject); procedure miFileTypesClick(Sender: TObject); procedure CommandLineComboKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); procedure FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); procedure InactiveItemsTimerTimer(Sender: TObject); function OldGTKConvertToSorted(Sender: TObject; const Index: integer): integer; function OldGTKConvertFromSorted(Sender: TObject; const Index: integer): integer; procedure SplitterPopupMenuClick(Sender: TObject); procedure miChangePermissionsClick(Sender: TObject); procedure miChangeOwnerClick(Sender: TObject); procedure miCreateSymlinkClick(Sender: TObject); procedure miEditSymlinkClick(Sender: TObject); procedure FilePopupMenuPopup(Sender: TObject); procedure FilePopupMenuItemClick(Sender: TObject); procedure miPreferencesClick(Sender: TObject); procedure miAddBookmarkClick(Sender: TObject); procedure miBookmarkClick(Sender: TObject); procedure BookmarkPopupDeleteClick(Sender: TObject); procedure BookmarkItemMouseUp(Sender: TObject; Button: TGDKMouseButton; Shift: TShiftState; X, Y: Integer; var Accept: boolean); procedure BookmarkButtonClick(Sender: TObject); procedure mnuBookmarksPopup(Sender: TObject); procedure miShowDirectorySizesClick(Sender: TObject); procedure miTargetSourceClick(Sender: TObject); procedure MounterButtonClick(Sender: TObject); procedure MounterButtonPopupMenuPopup(Sender: TObject); procedure MounterButtonMouseDown(Sender: TObject; Button: TGDKMouseButton; Shift: TShiftState; X, Y: Integer; var Accept: boolean); procedure miMountClick(Sender: TObject); procedure miUmountClick(Sender: TObject); procedure miEjectClick(Sender: TObject); procedure miMounterSettingsClick(Sender: TObject); procedure miShowMounterBarClick(Sender: TObject); procedure miColumnsClick(Sender: TObject); procedure ListViewColumnsChanged(Sender: TObject); procedure RebuildListViewsTimerTimer(Sender: TObject); procedure miTestPluginClick(Sender: TObject); procedure miPluginAboutClick(Sender: TObject); procedure miSavePositionClick(Sender: TObject); procedure TabNotebookSwitchPage(Sender: TObject; const NewTabNum: integer; const ShouldFocus: boolean); procedure miDuplicateTabClick(Sender: TObject); procedure miCloseTabClick(Sender: TObject); procedure miCloseAllTabsClick(Sender: TObject); procedure TabPopupMenuPopup(Sender: TObject); procedure miOpenConnectionClick(Sender: TObject); procedure miSearchClick(Sender: TObject); procedure miDisconnectClick(Sender: TObject); procedure DisconnectButtonClick(Sender: TObject); procedure LeaveArchiveButtonClick(Sender: TObject); procedure OpenTerminalButtonClick(Sender: TObject); procedure ListViewColumnClicked(Sender: TObject); procedure NotebookReordered(Sender: TObject; const Source, Dest: integer); procedure NotebookTabClosed(Sender: TObject; const TabNum: integer; var CanClose: boolean); procedure NotebookTabDoubleClick(Sender: TObject; const TabNum: integer); function NotebookFindNotebookAtPointerEvent(Sender: TObject; const AbsX, AbsY: integer): TEphyNotebook; function NotebookMoveTabToAnotherNotebook(Sender: TObject; Destination: TEphyNotebook; const SourceTabNo, DestTabNo: integer): boolean; procedure NotebookTabFocusOnlyEvent(Sender: TObject; const TabNum: integer); procedure miFilePropertiesClick(Sender: TObject); procedure PasswordButtonClick(Sender: TObject); procedure miPathBoxCopyPathClick(Sender: TObject); procedure miCopyNamesClick(Sender: TObject); procedure RightMouseSelectPopupTimerTimer(Sender: TObject); procedure miQuickConnectClick(Sender: TObject); private LeftLastFocused, Editing, QuickFind, RedrawLeftInactive, RedrawRightInactive, StartUp, LeftTabPopup: boolean; LastWidth, RunningEscSensitive: integer; InplaceEditTimer, InactiveItemsTimer, RebuildListViewsTimer, RightMouseSelectPopupTimer: TGTKTimer; InplaceEditItem: TGTKListItem; SavedCmdLine: string; LastMounterButton: TGTKButton; MounterTableList, MounterTableListLeft, MounterTableListRight: TList; LeftNotebookBoxList, RightNotebookBoxList: TList; LeftPathsHighlight, RightPathsHighlight: TStringList; LeftTabEngines, RightTabEngines: TList; LastUsedFilter: string; PanelRightMouseSelMode, PanelRightMouseInProgress: boolean; procedure ConstructPanels; procedure ConstructMenu; procedure ConstructColumns(ListView: TGTKListView); procedure AfterStart; procedure ActivateItem(const ItemIndex: longint); procedure UpdatePanelInfo; procedure UpdatePanelInfoDown(LeftPanel: boolean); procedure UpdateCaption; function FormatPathString(Engine: TPanelEngine): string; procedure ChangingDir(LeftPanel: boolean; NewPath: string; HiliString1: string = ''; HiliString2: string = ''; const PreserveSelection: boolean = False; const AutoFallback: boolean = False; Plugin: TVFSPlugin = nil); procedure DoSelect(SelectType: integer); procedure ListViewCellDataFunc(Sender: TObject; tree_view: PGtkTreeView; tree_column : PGtkTreeViewColumn; cell : PGtkCellRenderer; tree_model : PGtkTreeModel; iter : PGtkTreeIter); procedure DoGetDirSize(AllItems: boolean); procedure DoDelete(LeftPanel: boolean; ListView: TGTKListView; Engine: TPanelEngine; DataList: TList); procedure DoCopyMove(LeftPanel, CopyMode, ShiftPressed: boolean; ListView: TGTKListView; Engine: TPanelEngine; DataList: TList); procedure DoRefresh(LeftPanel, StaySame, AutoFallback: boolean); procedure DoQuickRename(LeftPanel: boolean; ListView: TGTKListView; const CalledFromKey: boolean); procedure ActivateQuickFind(LeftPanel: boolean); procedure DeactivateQuickFind(LeftPanel: boolean); function QuickFindSendKey(LeftPanel: boolean; Key: word): boolean; procedure ProcessMarkKey(KeyType, Key: integer); procedure SwitchOtherPanel(LeftPanel, RequestNewAltO: boolean); procedure EditViewFile(LeftPanel: boolean; AListView: TGTKListView; View, NewFile: boolean); procedure RunFile(Path: string; Engine: TPanelEngine; CustomAction: integer); function ActivateCommandLine(Key: word; const ActualPosition: boolean = False): boolean; procedure ApplySettings(RebuildListViews, RebuildIcons, Startup: boolean); procedure RefreshBookmarksMenu; procedure PopupFileMenuPos; procedure HandleFormFocusIn; procedure SwitchPanelCtrlLeftRight(LeftPanel, LeftArrowPressed: boolean); procedure FillMounterBar; procedure RebuildListViews(DoRefresh: boolean); procedure FillPluginMenu; procedure NewTab(LeftPanel, SendSelectedDirToBg: boolean; CustomPath: string = ''); procedure SwitchTab(TabNo: integer; LeftPanel, SetFocus: boolean); procedure CloseTab(TabNo: integer; LeftPanel, CloseVFSEngine: boolean); procedure AddTabs(LeftPanel: boolean; TabList: TStringList; TabSortIDs, TabSortTypes: TList; SetTabActive: integer); function HandleVFSArchive(LeftPanel: boolean; const FullPath, HighlightItem, TargetPath: string): boolean; function CloseVFS(LeftPanel, SuppressRefresh: boolean): string; procedure ShowBookmarkQuick(LeftPanel: boolean); procedure SetTabLabel(Notebook: TEphyNotebook; PageIndex: integer; ALabel, Tooltip: string); procedure NewTabInternal(LeftPanel: boolean; _Engine: TPanelEngine; _Path: string; NewTabPosition: integer; SwitchToNewTab: boolean); procedure CopyFilenamesToClipboard(FullPaths, LeftPanel: boolean); function HandleRunFromArchive(var APath: string; Engine: TPanelEngine; Command, FileTypeDesc: string; BypassDialog: boolean): boolean; function ExtractFromArchive(var NewPath: string; Engine: TPanelEngine; const FilePath: string; ExtractAll: boolean): boolean; function HandleKey(Key: Word; Shift: TShiftState; LeftPanel: boolean): boolean; function IsEditing(AListView: TGTKListView): boolean; function PanelFindEditableWidget(AListView: TGTKListView): PGtkWidget; function CheckForUnsavedConnection(Engine: TVFSEngine; AllowCancel: boolean): boolean; // Returns False to Cancel procedure SaveCursorPositionTabbed(LeftPanel: boolean); public LeftPanelEngine, RightPanelEngine : TPanelEngine; ColumnSortIDs: array[1..ConstNumPanelColumns] of integer; LastClick: TDateTime; procedure EditViewFileInternal(ParentWindow: TGTKControl; Filename: string; Engine: TPanelEngine; View, NewFile: boolean); end; var FMain: TFMain; implementation uses ULibc, UCore, USelect, UNewDir, UDirDelete, UProgress, UCopyMove, UCoreUtils, ULocale, UChecksum, UChecksumDruid, USplitFile, UFileTypeSettings, UFileAssoc, UChmod, UChown, USymlink, UPreferences, UViewer, UToolTips, UMounterPrefs, UColumns, UTestPlugin, UConnectionManager, USearch, UProperties, URemoteWait, URunFromVFS, uVFSprototypes, UQuickConnect, UConnectionProperties; (********************************************************************************************************************************) (********************************************************************************************************************************) (********************************************************************************************************************************) (********************************************************************************************************************************) function form_event_handler(widget: PGtkWidget; event: PGdkEvent; user_data: gpointer): gboolean; cdecl; forward; procedure TFMain.FormCreate(Sender: TObject); begin ReportGTKVersion; SetupAppIcon; StartUp := True; RunningEscSensitive := 0; Editing := False; QuickFind := False; LeftTabPopup := True; LastClick := 0; PanelRightMouseSelMode := True; PanelRightMouseInProgress := False; LastUsedFilter := '*.*'; RedrawLeftInactive := False; RedrawRightInactive := False; MounterTableList := TList.Create; MounterTableListLeft := TList.Create; MounterTableListRight := TList.Create; LeftNotebookBoxList := TList.Create; RightNotebookBoxList := TList.Create; LeftPathsHighlight := TStringList.Create; RightPathsHighlight := TStringList.Create; LeftTabEngines := TList.Create; RightTabEngines := TList.Create; Caption := ConstAppTitle; WindowPosition := wpCenter; MainVBox := TGTKVBox.Create(Self); AddControl(MainVBox); MainMenuHandleBox := TGTKHandleBox.Create(Self); MainVBox.AddControlEx(MainMenuHandleBox, False, True, 0); MainMenu := TGTKMenuBar.Create(Self); MainMenuHandleBox.AddControl(MainMenu); ConstructMenu; InplaceEditTimer := TGTKTimer.Create(Self); InplaceEditTimer.Enabled := False; InplaceEditTimer.OnTimer := InplaceEditTimerTimer; InactiveItemsTimer := TGTKTimer.Create(Self); InactiveItemsTimer.Enabled := False; InactiveItemsTimer.Interval := ConfInactiveTimerDelay; if not Application.GTKVersion_2_6_0_Up then InactiveItemsTimer.OnTimer := InactiveItemsTimerTimer; RebuildListViewsTimer := TGTKTimer.Create(Self); RebuildListViewsTimer.Enabled := False; RebuildListViewsTimer.OnTimer := RebuildListViewsTimerTimer; RightMouseSelectPopupTimer := TGTKTimer.Create(Self); RightMouseSelectPopupTimer.Enabled := False; RightMouseSelectPopupTimer.OnTimer := RightMouseSelectPopupTimerTimer; MounterBarHandleBox := TGTKHandleBox.Create(Self); MounterBarHandleBox.SetSizeRequest(10, -1); MainVBox.AddControlEx(MounterBarHandleBox, False, True, 0); MounterBarTable := TGTKTable.Create(Self); MounterBarHandleBox.AddControl(MounterBarTable); LeftPanelBox := TGTKVBox.Create(Self); RightPanelBox := TGTKVBox.Create(Self); PanelSeparator := TGTKHPaned.Create(Self); MainVBox.AddControlEx(PanelSeparator, True, True, 0); PanelSeparator.Child1 := LeftPanelBox; PanelSeparator.Child2 := RightPanelBox; ConstructPanels; CommandLineHBox := TGTKHBox.Create(Self); CommandLineHBox.Homogeneous := False; CommandLineCombo := TGTKCombo.Create(Self); CommandLineCombo.DisableActivate; CommandLineCombo.MatchValue := False; CommandLineCombo.CaseSensitive := True; // CommandLineCombo.Entry.OnKeyDown := CommandLineComboKeyDown; CommandLineLabel := TGTKLabel.Create(Self); CommandLineLabel.Alignment := taRightJustify; CommandLineLabel.SetAlignment(1, 0.5); CommandLineLabel.SetSizeRequest(300, -1); OpenTerminalButton := TGTKButton.Create(Self); OpenTerminalButton.Caption := LANGOpenTerminalButton_Caption; OpenTerminalButton.BorderStyle := bsNone; OpenTerminalButton.CanFocus := False; OpenTerminalButton.Tooltip := LANGOpenTerminalButton_Tooltip; OpenTerminalButton.OnClick := OpenTerminalButtonClick; CommandLineHBox.AddControlEx(CommandLineLabel, False, False, 0); CommandLineHBox.AddControlEx(CommandLineCombo, True, True, 5); CommandLineHBox.AddControlEx(TGTKVSeparator.Create(Self), False, False, 2); CommandLineHBox.AddControlEx(OpenTerminalButton, False, False, 2); MainVBox.AddControlEx(TGTKHSeparator.Create(Self), False, False, 2); MainVBox.AddControlEx(CommandLineHBox, False, False, 0); ButtonsBox := TGTKTable.Create(Self); F2Button := TGTKButton.Create(Self); F3Button := TGTKButton.Create(Self); F4Button := TGTKButton.Create(Self); F5Button := TGTKButton.Create(Self); F6Button := TGTKButton.Create(Self); F7Button := TGTKButton.Create(Self); F8Button := TGTKButton.Create(Self); ButtonsBox.AddControlEx(0, 0, 1, 1, F2Button, [taoExpand, taoFill], [taoShrink, taoExpand, taoFill], 0, 0); ButtonsBox.AddControlEx(1, 0, 1, 1, TGTKVSeparator.Create(Self), [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 2, 4); ButtonsBox.AddControlEx(2, 0, 1, 1, F3Button, [taoExpand, taoFill], [taoShrink, taoExpand, taoFill], 0, 0); ButtonsBox.AddControlEx(3, 0, 1, 1, TGTKVSeparator.Create(Self), [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 2, 4); ButtonsBox.AddControlEx(4, 0, 1, 1, F4Button, [taoExpand, taoFill], [taoShrink, taoExpand, taoFill], 0, 0); ButtonsBox.AddControlEx(5, 0, 1, 1, TGTKVSeparator.Create(Self), [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 2, 4); ButtonsBox.AddControlEx(6, 0, 1, 1, F5Button, [taoExpand, taoFill], [taoShrink, taoExpand, taoFill], 0, 0); ButtonsBox.AddControlEx(7, 0, 1, 1, TGTKVSeparator.Create(Self), [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 2, 4); ButtonsBox.AddControlEx(8, 0, 1, 1, F6Button, [taoExpand, taoFill], [taoShrink, taoExpand, taoFill], 0, 0); ButtonsBox.AddControlEx(9, 0, 1, 1, TGTKVSeparator.Create(Self), [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 2, 4); ButtonsBox.AddControlEx(10, 0, 1, 1, F7Button, [taoExpand, taoFill], [taoShrink, taoExpand, taoFill], 0, 0); ButtonsBox.AddControlEx(11, 0, 1, 1, TGTKVSeparator.Create(Self), [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 2, 4); ButtonsBox.AddControlEx(12, 0, 1, 1, F8Button, [taoExpand, taoFill], [taoShrink, taoExpand, taoFill], 0, 0); ButtonBoxSeparator := TGTKHSeparator.Create(Self); ButtonBoxSpace := TGTKEventBox.Create(Self); MainVBox.AddControlEx(ButtonBoxSpace, False, False, 2); MainVBox.AddControlEx(ButtonBoxSeparator, False, False, 2); MainVBox.AddControlEx(ButtonsBox, False, False, 0); F2Button.BorderStyle := bsNone; F3Button.BorderStyle := bsNone; F4Button.BorderStyle := bsNone; F5Button.BorderStyle := bsNone; F6Button.BorderStyle := bsNone; F7Button.BorderStyle := bsNone; F8Button.BorderStyle := bsNone; F2Button.Caption := LANGF2Button_Caption; F3Button.Caption := LANGF3Button_Caption; F4Button.Caption := LANGF4Button_Caption; F5Button.Caption := LANGF5Button_Caption; F6Button.Caption := LANGF6Button_Caption; F7Button.Caption := LANGF7Button_Caption; F8Button.Caption := LANGF8Button_Caption; F2Button.OnClick := F6ButtonClick; F3Button.OnClick := F3F4ButtonClick; F4Button.OnClick := F3F4ButtonClick; F5Button.OnClick := F5ButtonClick; F6Button.OnClick := F6ButtonClick; F7Button.OnClick := F7ButtonClick; F8Button.OnClick := F8ButtonClick; F2Button.CanFocus := False; F3Button.CanFocus := False; F4Button.CanFocus := False; F5Button.CanFocus := False; F6Button.CanFocus := False; F7Button.CanFocus := False; F8Button.CanFocus := False; PanelSeparator.OnMouseUp := PanelSeparatorMouseUp; // Events OnResize := FormResize; OnDestroy := FormDestroy; OnKeyDown := FormKeyDown; OnClose := FormClose; g_signal_connect_after(FWidget, 'event-after', G_CALLBACK(@form_event_handler), nil); PanelSeparator.OnResize := PanelSeparatorResize; LeftListView.OnKeyDown := ListViewKeyDown; RightListView.OnKeyDown := ListViewKeyDown; LeftListView.OnEnter := ListViewEnter; RightListView.OnEnter := ListViewEnter; LeftPathLabelEventBox.OnMouseDown := PathLabelMouseDown; RightPathLabelEventBox.OnMouseDown := PathLabelMouseDown; LeftUpButton.OnClick := PathButtonClick; LeftRootButton.OnClick := PathButtonClick; LeftHomeButton.OnClick := PathButtonClick; RightUpButton.OnClick := PathButtonClick; RightRootButton.OnClick := PathButtonClick; RightHomeButton.OnClick := PathButtonClick; LeftEqualButton.OnClick := miTargetSourceClick; RightEqualButton.OnClick := miTargetSourceClick; LeftDisconnectButton.OnClick := DisconnectButtonClick; RightDisconnectButton.OnClick := DisconnectButtonClick; LeftLeaveArchiveButton.OnClick := LeaveArchiveButtonClick; RightLeaveArchiveButton.OnClick := LeaveArchiveButtonClick; LeftListView.CompareFunc := CompareFunc; RightListView.CompareFunc := CompareFunc; LeftListView.CellDataFunc := ListViewCellDataFunc; RightListView.CellDataFunc := ListViewCellDataFunc; LeftListView.OnMouseDown := ListViewMouseDown; RightListView.OnMouseDown := ListViewMouseDown; LeftListView.OnMouseUp := ListViewMouseUp; RightListView.OnMouseUp := ListViewMouseUp; { LeftListView.OnDblClick := ListViewDblClick; RightListView.OnDblClick := ListViewDblClick;} LeftListView.OnSelectionChanged := ListViewSelectionChanged; RightListView.OnSelectionChanged := ListViewSelectionChanged; LeftListView.OnMouseMove := ListViewMouseMove; RightListView.OnMouseMove := ListViewMouseMove; LeftQuickFindEntry.OnEnter := QuickFindEntryEnter; RightQuickFindEntry.OnEnter := QuickFindEntryEnter; LeftPanelNotebook.OnTabSwitched := TabNotebookSwitchPage; RightPanelNotebook.OnTabSwitched := TabNotebookSwitchPage; LeftPanelNotebook.PopupMenu := TabPopupMenu; RightPanelNotebook.PopupMenu := TabPopupMenu; AfterStart; end; procedure TFMain.ConstructPanels; begin LeftMounterTable := TGTKTable.Create(Self); LeftMounterTable.SetSizeRequest(10, -1); RightMounterTable := TGTKTable.Create(Self); RightMounterTable.SetSizeRequest(10, -1); LeftMounterTable.BorderWidth := 2; RightMounterTable.BorderWidth := 2; LeftPanelBox.AddControlEx(LeftMounterTable, False, False, 0); RightPanelBox.AddControlEx(RightMounterTable, False, False, 0); LeftStatusBox := TGTKHBox.Create(Self); RightStatusBox := TGTKHBox.Create(Self); LeftStatusBox.Homogeneous := False; RightStatusBox.Homogeneous := False; LeftPathLabel := TGTKLabel.Create(Self); RightPathLabel := TGTKLabel.Create(Self); LeftPathLabel.SetSizeRequest(10, -1); RightPathLabel.SetSizeRequest(10, -1); LeftPathLabelEventBox := TGTKEventBox.Create(Self); RightPathLabelEventBox := TGTKEventBox.Create(Self); LeftPathLabelHBox := TGTKHBox.Create(Self); RightPathLabelHBox := TGTKHBox.Create(Self); LeftPathLabelHBox.Homogeneous := False; RightPathLabelHBox.Homogeneous := False; LeftBookmarkButton := TGTKButton.Create(Self); LeftBookmarkButton.Caption := 'â‡'; RightBookmarkButton := TGTKButton.Create(Self); RightBookmarkButton.Caption := 'â‡'; LeftPasswordButton := TGTKImageButton.Create(Self); LeftPasswordButton.Icon := StockLock16; RightPasswordButton := TGTKImageButton.Create(Self); RightPasswordButton.Icon := StockLock16; LeftPasswordButton.BorderStyle := bsNone; RightPasswordButton.BorderStyle := bsNone; LeftBookmarkButton.SetSizeRequest(22, 22); LeftBookmarkButton.Tooltip := LANGBookmarkButton_Tooltip + ' (Ctrl+D)'; RightBookmarkButton.SetSizeRequest(22, 22); RightBookmarkButton.Tooltip := LANGBookmarkButton_Tooltip + ' (Ctrl+D)'; LeftPasswordButton.SetSizeRequest(28, 22); LeftPasswordButton.Tooltip := LANGPasswordButton_Tooltip; RightPasswordButton.SetSizeRequest(28, 22); RightPasswordButton.Tooltip := LANGPasswordButton_Tooltip; LeftPasswordButton.Visible := False; RightPasswordButton.Visible := False; LeftBookmarkButton.CanFocus := False; RightBookmarkButton.CanFocus := False; LeftPasswordButton.CanFocus := False; RightPasswordButton.CanFocus := False; LeftBookmarkButton.OnClick := BookmarkButtonClick; RightBookmarkButton.OnClick := BookmarkButtonClick; LeftPasswordButton.OnClick := PasswordButtonClick; RightPasswordButton.OnClick := PasswordButtonClick; LeftScrolledWindow := TGTKScrolledWindow.Create(Self); RightScrolledWindow := TGTKScrolledWindow.Create(Self); LeftListView := TGTKListView.CreateTyped(Self, True, [lcPointer]); RightListView := TGTKListView.CreateTyped(Self, True, [lcPointer]); if not Application.GTKVersion_2_0_5_Up then begin LeftListView.FromSortedCoversionFunc := OldGTKConvertFromSorted; LeftListView.ToSortedCoversionFunc := OldGTKConvertToSorted; RightListView.FromSortedCoversionFunc := OldGTKConvertFromSorted; RightListView.ToSortedCoversionFunc := OldGTKConvertToSorted; end; LeftStatusLine := TGTKLabel.Create(Self); RightStatusLine := TGTKLabel.Create(Self); LeftQuickFindVBox := TGTKVBox.Create(Self); LeftQuickFindHBox := TGTKHBox.Create(Self); LeftQuickFindLabel := TGTKLabel.Create(Self); LeftQuickFindEntry := TGTKEntry.Create(Self); LeftQuickFindEntry.CanFocus := False; LeftQuickFindSeparator := TGTKHSeparator.Create(Self); LeftQuickFindHBox.AddControlEx(LeftQuickFindLabel, False, False, 0); LeftQuickFindHBox.AddControlEx(LeftQuickFindEntry, True, True, 5); LeftQuickFindHBox.Homogeneous := False; LeftQuickFindVBox.AddControlEx(LeftQuickFindHBox, False, False, 5); LeftQuickFindVBox.AddControlEx(LeftQuickFindSeparator, False, False, 0); LeftQuickFindLabel.Caption := LANGQuickFind; LeftQuickFindVBox.Hide; RightQuickFindVBox := TGTKVBox.Create(Self); RightQuickFindHBox := TGTKHBox.Create(Self); RightQuickFindLabel := TGTKLabel.Create(Self); RightQuickFindEntry := TGTKEntry.Create(Self); RightQuickFindEntry.CanFocus := False; RightQuickFindSeparator := TGTKHSeparator.Create(Self); RightQuickFindHBox.AddControlEx(RightQuickFindLabel, False, False, 0); RightQuickFindHBox.AddControlEx(RightQuickFindEntry, True, True, 5); RightQuickFindHBox.Homogeneous := False; RightQuickFindVBox.AddControlEx(RightQuickFindHBox, False, False, 5); RightQuickFindVBox.AddControlEx(RightQuickFindSeparator, False, False, 0); RightQuickFindLabel.Caption := LANGQuickFind; RightQuickFindVBox.Hide; LeftDisconnectButton := TGTKButton.Create(Self); LeftDisconnectButton.Caption := '✖'; LeftDisconnectButton.CanFocus := False; LeftDisconnectButton.SetSizeRequest(22, 22); LeftDisconnectButton.Tooltip := LANGDisconnectButton_Tooltip + ' (Shift+Ctrl+F)'; LeftDisconnectButton.Visible := False; RightDisconnectButton := TGTKButton.Create(Self); RightDisconnectButton.Caption := '✖'; RightDisconnectButton.CanFocus := False; RightDisconnectButton.SetSizeRequest(22, 22); RightDisconnectButton.Tooltip := LANGDisconnectButton_Tooltip + ' (Shift+Ctrl+F)'; RightDisconnectButton.Visible := False; LeftLeaveArchiveButton := TGTKButton.Create(Self); LeftLeaveArchiveButton.Caption := '⇚'; LeftLeaveArchiveButton.CanFocus := False; LeftLeaveArchiveButton.SetSizeRequest(22, 22); LeftLeaveArchiveButton.Tooltip := LANGLeaveArchiveButton_Tooltip; LeftLeaveArchiveButton.Visible := False; RightLeaveArchiveButton := TGTKButton.Create(Self); RightLeaveArchiveButton.Caption := '⇚'; RightLeaveArchiveButton.CanFocus := False; RightLeaveArchiveButton.SetSizeRequest(22, 22); RightLeaveArchiveButton.Tooltip := LANGLeaveArchiveButton_Tooltip; RightLeaveArchiveButton.Visible := False; LeftPathLabelHBox.AddControlEx(LeftPathLabelEventBox, True, True, 0); LeftPathLabelHBox.AddControlEx(LeftPasswordButton, False, False, 0); LeftPathLabelHBox.AddControlEx(LeftDisconnectButton, False, True, 0); LeftPathLabelHBox.AddControlEx(LeftLeaveArchiveButton, False, True, 0); LeftPathLabelHBox.AddControlEx(LeftBookmarkButton, False, False, 0); RightPathLabelHBox.AddControlEx(RightPathLabelEventBox, True, True, 0); RightPathLabelHBox.AddControlEx(RightPasswordButton, False, False, 0); RightPathLabelHBox.AddControlEx(RightDisconnectButton, False, True, 0); RightPathLabelHBox.AddControlEx(RightLeaveArchiveButton, False, True, 0); RightPathLabelHBox.AddControlEx(RightBookmarkButton, False, False, 0); LeftPathLabelEventBox.AddControl(LeftPathLabel); RightPathLabelEventBox.AddControl(RightPathLabel); LeftPanelNotebook := TEphyNotebook.Create(Self); LeftPanelNotebook.Visible := False; LeftPanelNotebook.SetSizeRequest(10, -1); LeftPanelNotebook.Scrollable := True; LeftPanelNotebook.ShowBorder := False; LeftPanelNotebook.CanFocus := False; // Notebook should be focusable to allow scrolling when many tabs -- temporarily disabled LeftPanelNotebook.ShowCloseButtons := True; LeftPanelNotebook.AllowDragDrop := True; LeftPanelNotebook.AllowDragOutside := True; LeftPanelNotebook.ShowTooltips := True; LeftPanelNotebook.OnNotebookReordered := NotebookReordered; LeftPanelNotebook.OnTabClose := NotebookTabClosed; LeftPanelNotebook.OnTabDoubleClick := NotebookTabDoubleClick; LeftPanelNotebook.OnFindNotebookAtPointer := NotebookFindNotebookAtPointerEvent; LeftPanelNotebook.OnMoveTabToAnotherNotebook := NotebookMoveTabToAnotherNotebook; LeftPanelNotebook.OnTabFocusOnlyEvent := NotebookTabFocusOnlyEvent; RightPanelNotebook := TEphyNotebook.Create(Self); RightPanelNotebook.Visible := False; RightPanelNotebook.SetSizeRequest(10, -1); RightPanelNotebook.Scrollable := True; RightPanelNotebook.ShowBorder := False; RightPanelNotebook.CanFocus := False; RightPanelNotebook.ShowCloseButtons := True; RightPanelNotebook.AllowDragDrop := True; RightPanelNotebook.AllowDragOutside := True; RightPanelNotebook.ShowTooltips := True; RightPanelNotebook.OnNotebookReordered := NotebookReordered; RightPanelNotebook.OnTabClose := NotebookTabClosed; RightPanelNotebook.OnTabDoubleClick := NotebookTabDoubleClick; RightPanelNotebook.OnFindNotebookAtPointer := NotebookFindNotebookAtPointerEvent; RightPanelNotebook.OnMoveTabToAnotherNotebook := NotebookMoveTabToAnotherNotebook; RightPanelNotebook.OnTabFocusOnlyEvent := NotebookTabFocusOnlyEvent; LeftListBox := TGTKVBox.Create(Self); LeftListBox.AddControlEx(LeftScrolledWindow, True, True, 0); RightListBox := TGTKVBox.Create(Self); RightListBox.AddControlEx(RightScrolledWindow, True, True, 0); LeftPanelBox.AddControlEx(LeftStatusBox, False, True, 0); RightPanelBox.AddControlEx(RightStatusBox, False, True, 0); LeftPanelBox.AddControlEx(LeftPathLabelHBox, False, False, 1); RightPanelBox.AddControlEx(RightPathLabelHBox, False, False, 1); LeftPanelBox.AddControlEx(LeftPanelNotebook, True, True, 0); RightPanelBox.AddControlEx(RightPanelNotebook, True, True, 0); LeftPanelBox.AddControlEx(LeftListBox, True, True, 0); RightPanelBox.AddControlEx(RightListBox, True, True, 0); LeftPanelBox.AddControlEx(LeftQuickFindVBox, False, True, 0); RightPanelBox.AddControlEx(RightQuickFindVBox, False, True, 0); LeftPanelBox.AddControlEx(LeftStatusLine, False, True, 0); RightPanelBox.AddControlEx(RightStatusLine, False, True, 0); LeftScrolledWindow.AddControl(LeftListView); RightScrolledWindow.AddControl(RightListView); LeftScrolledWindow.HorizScrollBarPolicy := sbAutomatic; RightScrolledWindow.HorizScrollBarPolicy := sbAutomatic; LeftScrolledWindow.VertScrollBarPolicy := sbAutomatic; RightScrolledWindow.VertScrollBarPolicy := sbAutomatic; LeftScrolledWindow.ShadowType := stShadowIn; RightScrolledWindow.ShadowType := stShadowIn; LeftUpButton := TGTKButton.Create(Self); LeftUpButton.Caption := '..'; LeftRootButton := TGTKButton.Create(Self); LeftRootButton.Caption := '/'; LeftHomeButton := TGTKButton.Create(Self); LeftHomeButton.Caption := '~'; LeftEqualButton := TGTKButton.Create(Self); LeftEqualButton.Caption := '='; LeftUpButton.SetSizeRequest(22, 22); LeftUpButton.Tooltip := LANGUpButton_Tooltip; LeftRootButton.SetSizeRequest(22, 22); LeftRootButton.Tooltip := LANGRootButton_Tooltip + #10'(Ctrl+/)'; LeftHomeButton.SetSizeRequest(22, 22); LeftHomeButton.Tooltip := LANGHomeButton_Tooltip + #10'(Ctrl+Home)'; LeftEqualButton.SetSizeRequest(22, 22); LeftEqualButton.Tooltip := LANGLeftEqualButton_Tooltip; LeftDiskInfoLabel := TGTKLabel.Create(Self); LeftStatusBox.AddControlEx(LeftDiskInfoLabel, True, True, 0); LeftStatusBox.AddControlEndEx(LeftUpButton, False, False, 0); LeftStatusBox.AddControlEndEx(LeftRootButton, False, False, 0); LeftStatusBox.AddControlEndEx(LeftHomeButton, False, False, 0); LeftStatusBox.AddControlEndEx(LeftEqualButton, False, False, 0); RightUpButton := TGTKButton.Create(Self); RightUpButton.Caption := '..'; RightRootButton := TGTKButton.Create(Self); RightRootButton.Caption := '/'; RightHomeButton := TGTKButton.Create(Self); RightHomeButton.Caption := '~'; RightEqualButton := TGTKButton.Create(Self); RightEqualButton.Caption := '='; RightUpButton.SetSizeRequest(22, 22); RightUpButton.Tooltip := LANGUpButton_Tooltip; RightRootButton.SetSizeRequest(22, 22); RightRootButton.Tooltip := LANGRootButton_Tooltip + #10'(Ctrl+/)'; RightHomeButton.SetSizeRequest(22, 22); RightHomeButton.Tooltip := LANGHomeButton_Tooltip + #10'(Ctrl+Home)'; RightEqualButton.SetSizeRequest(22, 22); RightEqualButton.Tooltip := LANGRightEqualButton_Tooltip; LeftUpButton.CanFocus := False; LeftRootButton.CanFocus := False; LeftHomeButton.CanFocus := False; LeftEqualButton.CanFocus := False; RightUpButton.CanFocus := False; RightRootButton.CanFocus := False; RightHomeButton.CanFocus := False; RightEqualButton.CanFocus := False; RightDiskInfoLabel := TGTKLabel.Create(Self); RightStatusBox.AddControlEx(RightDiskInfoLabel, True, True, 0); RightStatusBox.AddControlEndEx(RightUpButton, False, False, 0); RightStatusBox.AddControlEndEx(RightRootButton, False, False, 0); RightStatusBox.AddControlEndEx(RightHomeButton, False, False, 0); RightStatusBox.AddControlEndEx(RightEqualButton, False, False, 0); ConstructColumns(LeftListView); ConstructColumns(RightListView); LeftPathLabel.XAlign := 0; LeftPathLabel.XPadding := 5; LeftPathLabel.YPadding := 1; RightPathLabel.XAlign := 0; RightPathLabel.XPadding := 5; RightPathLabel.YPadding := 1; LeftDiskInfoLabel.XAlign := 0; LeftDiskInfoLabel.XPadding := 5; LeftDiskInfoLabel.YAlign := 0.5; RightDiskInfoLabel.XAlign := 0; RightDiskInfoLabel.XPadding := 5; RightDiskInfoLabel.YAlign := 0.5; LeftStatusLine.XAlign := 0; LeftStatusLine.XPadding := 5; LeftStatusLine.YAlign := 0.5; RightStatusLine.XAlign := 0; RightStatusLine.XPadding := 5; RightStatusLine.YAlign := 0.5; { LeftStatusBox.SetSizeRequest(1, 18); RightStatusBox.SetSizeRequest(1, 18); } LeftStatusLine.SetSizeRequest(1, 18); RightStatusLine.SetSizeRequest(1, 18); LeftDiskInfoLabel.SetSizeRequest(1, -1); RightDiskInfoLabel.SetSizeRequest(1, -1); LeftQuickFindVBox.SetSizeRequest(1, -1); RightQuickFindVBox.SetSizeRequest(1, -1); end; procedure TFMain.ConstructMenu; const ShowDotFilesShortcut: TGDKShortCut = ( Key: 46; Locked: False; ModAlt: False; ModShift: False; ModCtrl: True); var i: integer; Item: TGTKMenuItem; Group: TGTKMenuItemGroup; begin mnuFile := TGTKMenuItem.Create(Self); mnuFile.Caption := LANGmnuFile_Caption; MainMenu.Items.Add(mnuFile); // mnuFile.Add(TGTKMenuItem.CreateTyped(Self, itTearOff)); miChangePermissions := TGTKMenuItem.CreateTyped(Self, itImageText); miChangePermissions.Caption := LANGmiChangePermissions_Caption; miChangePermissions.StockIcon := 'gtk-convert'; miChangePermissions.OnClick := miChangePermissionsClick; mnuFile.Add(miChangePermissions); miChangeOwner := TGTKMenuItem.Create(Self); miChangeOwner.Caption := LANGmiChangeOwner_Caption; miChangeOwner.OnClick := miChangeOwnerClick; mnuFile.Add(miChangeOwner); mnuFile.Add(TGTKMenuItem.CreateTyped(Self, itSeparator)); miCreateSymlink := TGTKMenuItem.CreateTyped(Self, itImageText); miCreateSymlink.Caption := LANGmiCreateSymlink_Caption; miCreateSymlink.StockIcon := 'gtk-jump-to'; miCreateSymlink.OnClick := miCreateSymlinkClick; mnuFile.Add(miCreateSymlink); miEditSymlink := TGTKMenuItem.Create(Self); miEditSymlink.Caption := LANGmiEditSymlink_Caption; miEditSymlink.OnClick := miEditSymlinkClick; mnuFile.Add(miEditSymlink); mnuFile.Add(TGTKMenuItem.CreateTyped(Self, itSeparator)); miSplitFile := TGTKMenuItem.Create(Self); miSplitFile.Caption := LANGmiSplitFileCaption; miSplitFile.OnClick := miSplitFileClick; mnuFile.Add(miSplitFile); miMergeFiles := TGTKMenuItem.Create(Self); miMergeFiles.Caption := LANGmiMergeFilesCaption; miMergeFiles.OnClick := miMergeFilesClick; mnuFile.Add(miMergeFiles); mnuFile.Add(TGTKMenuItem.CreateTyped(Self, itSeparator)); miVerifyChecksums := TGTKMenuItem.Create(Self); miVerifyChecksums.Caption := LANGmiVerifyChecksums; miVerifyChecksums.OnClick := miVerifyChecksumsClick; mnuFile.Add(miVerifyChecksums); miCreateChecksums := TGTKMenuItem.Create(Self); miCreateChecksums.Caption := LANGmiCreateChecksumsCaption; miCreateChecksums.OnClick := miCreateChecksumsClick; mnuFile.Add(miCreateChecksums); mnuFile.Add(TGTKMenuItem.CreateTyped(Self, itSeparator)); miExit := TGTKMenuItem.CreateTyped(Self, itImageText); miExit.Caption := LANGmiExit_Caption; miExit.StockIcon := 'gtk-quit'; miExit.OnClick := miExitClick; mnuFile.Add(miExit); mnuMark := TGTKMenuItem.Create(Self); mnuMark.Caption := LANGmnuMark_Caption; MainMenu.Items.Add(mnuMark); // mnuMark.Add(TGTKMenuItem.CreateTyped(Self, itTearOff)); miSelectGroup := TGTKMenuItem.CreateTyped(Self, itImageText); miSelectGroup.Caption := LANGmiSelectGroup_Caption; miSelectGroup.ShortCuts.Add(MakeGDKShortCut(GDK_KP_PLUS, False, False, False, False)); miSelectGroup.StockIcon := 'gtk-add'; miSelectGroup.OnClick := mnuMarkClick; mnuMark.Add(miSelectGroup); miUnselectGroup := TGTKMenuItem.CreateTyped(Self, itImageText); miUnselectGroup.Caption := LANGmiUnselectGroup_Caption; miUnselectGroup.ShortCuts.Add(MakeGDKShortCut(GDK_KP_MINUS, False, False, False, False)); miUnselectGroup.StockIcon := 'gtk-remove'; miUnselectGroup.OnClick := mnuMarkClick; mnuMark.Add(miUnselectGroup); miSelectAll := TGTKMenuItem.Create(Self); miSelectAll.Caption := LANGmiSelectAll_Caption; miSelectAll.ShortCuts.Add(MakeGDKShortCut(GDK_KP_PLUS, False, False, False, True)); miSelectAll.OnClick := mnuMarkClick; mnuMark.Add(miSelectAll); miUnselectAll := TGTKMenuItem.Create(Self); miUnselectAll.Caption := LANGmiUnselectAll_Caption; miUnselectAll.ShortCuts.Add(MakeGDKShortCut(GDK_KP_MINUS, False, False, False, True)); miUnselectAll.OnClick := mnuMarkClick; mnuMark.Add(miUnselectAll); miInvertSelection := TGTKMenuItem.Create(Self); miInvertSelection.Caption := LANGmiInvertSelection_Caption; miInvertSelection.ShortCuts.Add(MakeGDKShortCut(GDK_KP_ASTERISK, False, False, False, False)); miInvertSelection.OnClick := mnuMarkClick; mnuMark.Add(miInvertSelection); mnuCommands := TGTKMenuItem.Create(Self); mnuCommands.Caption := LANGmnuCommands_Caption; MainMenu.Items.Add(mnuCommands); // mnuCommands.Add(TGTKMenuItem.CreateTyped(Self, itTearOff)); miSearch := TGTKMenuItem.CreateTyped(Self, itImageText); miSearch.StockIcon := 'gtk-find'; miSearch.Caption := LANGmiSearchCaption2; miSearch.ShortCuts.AddName('F7'); miSearch.OnClick := miSearchClick; mnuCommands.Add(miSearch); mnuCommands.Add(TGTKMenuItem.CreateTyped(Self, itSeparator)); miRefresh := TGTKMenuItem.CreateTyped(Self, itImageText); miRefresh.Caption := LANGmiRefresh_Caption; miRefresh.StockIcon := 'gtk-refresh'; miRefresh.ShortCuts.AddName('R'); miRefresh.OnClick := miRefreshClick; mnuCommands.Add(miRefresh); miShowDirectorySizes := TGTKMenuItem.CreateTyped(Self, itImageText); miShowDirectorySizes.Caption := LANGmiShowDirectorySizes_Caption; miShowDirectorySizes.OnClick := miShowDirectorySizesClick; mnuCommands.Add(miShowDirectorySizes); mnuCommands.Add(TGTKMenuItem.CreateTyped(Self, itSeparator)); miCopyNames := TGTKMenuItem.CreateTyped(Self, itImageText); miCopyNames.Caption := LANGCopyFileNamesToClipboard; miCopyNames.ShortCuts.AddName('F2'); miCopyNames.OnClick := miCopyNamesClick; mnuCommands.Add(miCopyNames); miCopyFullPaths := TGTKMenuItem.CreateTyped(Self, itImageText); miCopyFullPaths.Caption := LANGCopyFullPathNamesToClipboard; miCopyFullPaths.ShortCuts.AddName('F2'); miCopyFullPaths.StockIcon := 'gtk-copy'; miCopyFullPaths.OnClick := miCopyNamesClick; mnuCommands.Add(miCopyFullPaths); mnuCommands.Add(TGTKMenuItem.CreateTyped(Self, itSeparator)); miNewTab := TGTKMenuItem.CreateTyped(Self, itImageText); miNewTab.Caption := LANGmiNewTab_Caption; miNewTab.ShortCuts.AddName('T'); miNewTab.OnClick := miDuplicateTabClick; miNewTab.StockIcon := 'gtk-index'; mnuCommands.Add(miNewTab); mnuCommands.Add(TGTKMenuItem.CreateTyped(Self, itSeparator)); miTargetSource := TGTKMenuItem.CreateTyped(Self, itImageText); miTargetSource.Caption := LANGmiTargetSource_Caption; // miTargetSource.ShortCuts.AddName('O'); miTargetSource.OnClick := miTargetSourceClick; mnuCommands.Add(miTargetSource); mnuShow := TGTKMenuItem.Create(Self); mnuShow.Caption := LANGmnuShow_Caption; MainMenu.Items.Add(mnuShow); // mnuShow.Add(TGTKMenuItem.CreateTyped(Self, itTearOff)); miShowDotFiles := TGTKMenuItem.CreateTyped(Self, itCheck); miShowDotFiles.Caption := LANGmiShowDotFiles_Caption; miShowDotFiles.Checked := ConfShowDotFiles; miShowDotFiles.OnClick := miShowDotFilesClick; miShowDotFiles.ShortCuts.Add(ShowDotFilesShortcut); mnuShow.Add(miShowDotFiles); mnuShow.Add(TGTKMenuItem.CreateTyped(Self, itSeparator)); miNoMounterBar := TGTKMenuItem.CreateTyped(Self, itRadio, nil); miNoMounterBar.Caption := LANGmiNoMounterBarCaption; miNoMounterBar.Checked := ConfShowMounterBar = 0; Group := miNoMounterBar.Group; mnuShow.Add(miNoMounterBar); miShowOneMounterBar := TGTKMenuItem.CreateTyped(Self, itRadio, Group); miShowOneMounterBar.Caption := LANGmiShowOneMounterBarCaption; miShowOneMounterBar.Checked := ConfShowMounterBar = 1; Group := miShowOneMounterBar.Group; mnuShow.Add(miShowOneMounterBar); miShowTwoMounterBar := TGTKMenuItem.CreateTyped(Self, itRadio, Group); miShowTwoMounterBar.Caption := LANGmiShowTwoMounterBarCaption; miShowTwoMounterBar.Checked := ConfShowMounterBar = 2; mnuShow.Add(miShowTwoMounterBar); // Assign of the events has to be done after all radio items are created miNoMounterBar.OnClick := miShowMounterBarClick; miShowOneMounterBar.OnClick := miShowMounterBarClick; miShowTwoMounterBar.OnClick := miShowMounterBarClick; mnuBookmarks := TGTKMenuItem.Create(Self); mnuBookmarks.Caption := LANGmnuBookmarks_Caption; mnuBookmarks.OnPopup := mnuBookmarksPopup; mnuBookmarks.OnClick := mnuBookmarksPopup; MainMenu.Items.Add(mnuBookmarks); // mnuBookmarks.Add(TGTKMenuItem.CreateTyped(Self, itTearOff)); miAddBookmark := TGTKMenuItem.CreateTyped(Self, itImageText); miAddBookmark.Caption := LANGmiAddBookmark_Caption; miAddBookmark.StockIcon := 'gtk-add'; miAddBookmark.OnClick := miAddBookmarkClick; mnuBookmarks.Add(miAddBookmark); miEditBookmarks := TGTKMenuItem.CreateTyped(Self, itImageText); miEditBookmarks.Caption := LANGmiEditBookmarks_Caption; miEditBookmarks.Enabled := False; miEditBookmarks.Visible := False; miEditBookmarks.Tooltip := 'Currently not implemented - use the popup menu'; mnuBookmarks.Add(miEditBookmarks); miBookmarksSeparator := TGTKMenuItem.CreateTyped(Self, itSeparator); mnuBookmarks.Add(miBookmarksSeparator); BookmarkPopup := TGTKMenuItem.Create(Self); BookmarkPopupDelete := TGTKMenuItem.Create(Self); BookmarkPopupDelete.Caption := LANGBookmarkPopupDelete_Caption; BookmarkPopupDelete.OnClick := BookmarkPopupDeleteClick; BookmarkPopup.Add(BookmarkPopupDelete); mnuNetwork := TGTKMenuItem.Create(Self); mnuNetwork.Caption := LANGmnuNetworkCaption; MainMenu.Items.Add(mnuNetwork); // mnuNetwork.Add(TGTKMenuItem.CreateTyped(Self, itTearOff)); miConnections := TGTKMenuItem.CreateTyped(Self, itImageText); miConnections.Caption := LANGmiConnectionsCaption; miConnections.StockIcon := 'gtk-network'; miConnections.Enabled := False; mnuNetwork.Add(miConnections); mnuNetwork.Add(TGTKMenuItem.CreateTyped(Self, itSeparator)); miOpenConnection := TGTKMenuItem.CreateTyped(Self, itImageText); miOpenConnection.Caption := LANGmiOpenConnectionCaption; miOpenConnection.OnClick := miOpenConnectionClick; miOpenConnection.StockIcon := 'gtk-connect'; miOpenConnection.ShortCuts.AddName('F'); mnuNetwork.Add(miOpenConnection); miQuickConnect := TGTKMenuItem.CreateTyped(Self, itImageText); miQuickConnect.Caption := LANGmiQuickConnectCaption; miQuickConnect.OnClick := miQuickConnectClick; miQuickConnect.ShortCuts.AddName('N'); mnuNetwork.Add(miQuickConnect); mnuNetwork.Add(TGTKMenuItem.CreateTyped(Self, itSeparator)); miDisconnect := TGTKMenuItem.CreateTyped(Self, itImageText); miDisconnect.Caption := LANGmiDisconnect_Caption; miDisconnect.Enabled := False; miDisconnect.ShortCuts.AddName('F'); miDisconnect.StockIcon := 'gtk-disconnect'; miDisconnect.OnClick := miDisconnectClick; mnuNetwork.Add(miDisconnect); mnuPlugins := TGTKMenuItem.Create(Self); mnuPlugins.Caption := LANGmnuPluginsCaption; MainMenu.Items.Add(mnuPlugins); // mnuPlugins.Add(TGTKMenuItem.CreateTyped(Self, itTearOff)); miTestPlugin := TGTKMenuItem.CreateTyped(Self, itImageText); miTestPlugin.Caption := LANGmiTestPluginCaption; miTestPlugin.OnClick := miTestPluginClick; mnuPlugins.Add(miTestPlugin); mnuPlugins.Add(TGTKMenuItem.CreateTyped(Self, itSeparator)); mnuSettings := TGTKMenuItem.Create(Self); mnuSettings.Caption := LANGmnuSettings_Caption; MainMenu.Items.Add(mnuSettings); // mnuSettings.Add(TGTKMenuItem.CreateTyped(Self, itTearOff)); miPreferences := TGTKMenuItem.CreateTyped(Self, itImageText); miPreferences.Caption := LANGmiPreferences_Caption; miPreferences.StockIcon := 'gtk-preferences'; miPreferences.OnClick := miPreferencesClick; mnuSettings.Add(miPreferences); miFileTypes := TGTKMenuItem.CreateTyped(Self, itImageText); miFileTypes.Caption := LANGmiFileTypes_Caption; miFileTypes.OnClick := miFileTypesClick; mnuSettings.Add(miFileTypes); miMounterSettings := TGTKMenuItem.CreateTyped(Self, itImageText); miMounterSettings.Caption := LANGmiMounterSettingsCaption; miMounterSettings.OnClick := miMounterSettingsClick; mnuSettings.Add(miMounterSettings); miColumns := TGTKMenuItem.CreateTyped(Self, itImageText); miColumns.Caption := LANGmiColumnsCaption; miColumns.OnClick := miColumnsClick; mnuSettings.Add(miColumns); mnuSettings.Add(TGTKMenuItem.CreateTyped(Self, itSeparator)); miSavePosition := TGTKMenuItem.CreateTyped(Self, itImageText); miSavePosition.Caption := LANGmiSavePositionCaption; miSavePosition.OnClick := miSavePositionClick; mnuSettings.Add(miSavePosition); mnuHelp := TGTKMenuItem.Create(Self); mnuHelp.Caption := LANGmnuHelp_Caption; MainMenu.Items.Add(mnuHelp); // mnuHelp.Add(TGTKMenuItem.CreateTyped(Self, itTearOff)); miAbout := TGTKMenuItem.CreateTyped(Self, itImageText); miAbout.Caption := LANGmiAbout_Caption; miAbout.StockIcon := 'gtk-about'; miAbout.OnClick := miAboutClick; mnuHelp.Add(miAbout); // Splitter popup menu SplitterPopupMenu := TGTKMenuItem.Create(Self); // SplitterPopupMenu.Add(TGTKMenuItem.CreateTyped(Self, itTearOff)); for i := 2 to 8 do begin Item := TGTKMenuItem.Create(Self); Item.Caption := Format('%d - %d', [i * 10, (10 - i) * 10]); Item.Data := Pointer(i * 10); Item.OnClick := SplitterPopupMenuClick; SplitterPopupMenu.Add(Item); end; // Files popup menu FilePopupMenu := TGTKMenuItem.Create(Self); FilePopupMenu.OnPopup := FilePopupMenuPopup; // Mounter popup menu MounterButtonPopupMenu := TGTKMenuItem.Create(Self); MounterButtonPopupMenu.OnPopup := MounterButtonPopupMenuPopup; miMount := TGTKMenuItem.CreateTyped(Self, itImageText); miMount.Caption := LANGmiMountCaption; miMount.StockIcon := 'gtk-connect'; miMount.OnClick := miMountClick; MounterButtonPopupMenu.Add(miMount); miUmount := TGTKMenuItem.CreateTyped(Self, itImageText); miUmount.Caption := LANGmiUmountCaption; miUmount.StockIcon := 'gtk-disconnect'; miUmount.OnClick := miUmountClick; MounterButtonPopupMenu.Add(miUmount); miEject := TGTKMenuItem.CreateTyped(Self, itImageText); miEject.Caption := LANGmiEjectCaption; // miEject.StockIcon := 'gtk-cdrom'; miEject.OnClick := miEjectClick; MounterButtonPopupMenu.Add(miEject); // Tab popup menu TabPopupMenu := TGTKMenuItem.Create(Self); TabPopupMenu.OnPopup := TabPopupMenuPopup; miDuplicateTab := TGTKMenuItem.CreateTyped(Self, itImageText); miDuplicateTab.Caption := LANGmiDuplicateTabCaption; miDuplicateTab.ShortCuts.AddName('T'); miDuplicateTab.OnClick := miDuplicateTabClick; miDuplicateTab.StockIcon := 'gtk-index'; TabPopupMenu.Add(miDuplicateTab); TabPopupMenu.Add(TGTKMenuItem.CreateTyped(Self, itSeparator)); miCloseTab := TGTKMenuItem.CreateTyped(Self, itImageText); miCloseTab.Caption := LANGmiCloseTabCaption; miCloseTab.ShortCuts.AddName('W'); miCloseTab.OnClick := miCloseTabClick; miCloseTab.StockIcon := 'gtk-close'; TabPopupMenu.Add(miCloseTab); miCloseAllTabs := TGTKMenuItem.CreateTyped(Self, itImageText); miCloseAllTabs.Caption := LANGmiCloseAllTabsCaption; miCloseAllTabs.OnClick := miCloseAllTabsClick; TabPopupMenu.Add(miCloseAllTabs); // Path box popup menu PathBoxPopupMenu := TGTKMenuItem.Create(Self); miPathBoxRefresh := TGTKMenuItem.CreateTyped(Self, itImageText); miPathBoxRefresh.Caption := LANGmiRefresh_Caption; miPathBoxRefresh.StockIcon := 'gtk-refresh'; miPathBoxRefresh.ShortCuts.AddName('R'); miPathBoxRefresh.OnClick := miRefreshClick; PathBoxPopupMenu.Add(miPathBoxRefresh); PathBoxPopupMenu.Add(TGTKMenuItem.CreateTyped(Self, itSeparator)); miPathBoxCopyPath := TGTKMenuItem.CreateTyped(Self, itImageText); miPathBoxCopyPath.Caption := LANGCopyPathToClipboard; miPathBoxCopyPath.StockIcon := 'gtk-copy'; miPathBoxCopyPath.OnClick := miPathBoxCopyPathClick; PathBoxPopupMenu.Add(miPathBoxCopyPath); end; procedure TFMain.ConstructColumns(ListView: TGTKListView); var i, FirstColumn, LastColumn: integer; Column: TGTKTreeViewColumn; FontDesc: PPangoFontDescription; begin ListView.SelectionMode := smBrowse; GetFirstLastPanelColumn(FirstColumn, LastColumn); for i := 1 to ConstNumPanelColumns do if ConfColumnVisible[i] then begin // First column should have filetype icon if (i = FirstColumn) and ConfUseFileTypeIcons then begin Column := ListView.Columns.AddTyped(ctImageText); Column.SetImageProperty('ypad', 0); Column.SetImageProperty('yalign', 0.5); Column.SetImageProperty('xpad', 0); Column.SetImageProperty('xalign', 0.5); if (ConfRowHeight > 0) and ConfUseFileTypeIcons then begin Column.SetImageProperty('width', ConfRowHeight); Column.SetImageProperty('height', ConfRowHeight); end; end else Column := ListView.Columns.Add; Column.Caption := ConfColumnTitlesShort[ConfColumnIDs[i]]; if (i < LastColumn){ or Application.GTKVersion_2_4_0_Up} then begin { Column.MinWidth := 10; Column.MaxWidth := 500; } { Column.SizingMode := smFixed; Column.FixedWidth := ConfColumnSizes[i]; } g_object_set(G_OBJECT(Column.FColumn), 'sizing', 2, 'fixed-width', ConfColumnSizes[i], nil); end else g_object_set(G_OBJECT(Column.FColumn), 'sizing', 0, nil); // Column.SizingMode := smFixed; // smAutoSize; gtk_tree_view_column_set_spacing(Column.FColumn, 1); // Bug with column spacing? Column.Resizable := True; Column.Reorderable := True; // if not ConfUseSystemFont then ListView.Columns[i - 1].SetProperty('font', ConfPanelFont); Column.SetProperty('ypad', 0); Column.SetProperty('yalign', 0.5); Column.Tag := i; g_object_set_data(G_OBJECT(Column.FColumn), 'Column_ID', Pointer(i)); if ConfRowHeight > 0 then Column.SetProperty('height', ConfRowHeight); Column.SortID := ListView.Columns.Count - 1; ColumnSortIDs[Column.SortID + 1] := ConfColumnIDs[i]; if ConfRowHeight < 0 then gtk_cell_renderer_text_set_fixed_height_from_font(PGtkCellRendererText(Column.FRenderer), 1); { gtk_cell_renderer_text_set_fixed_height_from_font(PGtkCellRendererText(Column.FRenderer), 1); gtk_cell_renderer_set_fixed_size(PGtkCellRenderer(Column.FRenderer), ConfColumnSizes[i], ConfRowHeight); } if ConfColumnIDs[i] < 3 then begin // Filename column Column.OnEdited := ListViewEdited; if Application.GTKVersion_2_6_0_Up then Column.SetProperty('ellipsize', 3); end; if ConfColumnIDs[i] in [4, 8, 9] then begin Column.SetProperty('xalign', 1); Column.Alignment := 1; end; if Application.GTKVersion_2_4_0_Up then Column.SetProperty('single-paragraph-mode', 1); Column.OnClicked := ListViewColumnClicked; end; // Set the list font if not ConfUseSystemFont then begin FontDesc := pango_font_description_from_string(PChar(ConfPanelFont)); gtk_widget_modify_font(ListView.FWidget, FontDesc); end else gtk_widget_modify_font(ListView.FWidget, nil); // Set the fixed row height - temporarily disabled due to bug in custom drawing // if Application.GTKVersion_2_4_0_Up then g_object_set(ListView.FWidget, 'fixed_height_mode', integer(True), nil); end; procedure TFMain.FormDestroy(Sender: TObject); begin LeftNotebookBoxList.Free; RightNotebookBoxList.Free; end; procedure TFMain.FormClose(Sender: TObject; var Action: TCloseAction); function InternalCloseEngine(Engine, FallbackEngine: TPanelEngine): TPanelEngine; begin Result := FallbackEngine; if not Assigned(Engine.ParentEngine) or (not (Engine is TVFSEngine)) then Exit; Result := Engine.ParentEngine; CheckForUnsavedConnection(Engine as TVFSEngine, False); if not TVFSEngine(Engine).VFSClose then DebugMsg(['Error closing the engine...']); Engine.Free; end; var i: integer; b, DontShowAgain: boolean; res: TMessageButton; s: string; begin // Find all opened connections and warn user b := False; if LeftPanelNotebook.Visible and Assigned(LeftTabEngines) and (LeftTabEngines.Count > 0) then for i := 0 to LeftTabEngines.Count - 1 do if TPanelEngine(LeftTabEngines[i]) is TVFSEngine then begin b := True; Break; end; if (not b) or (RightPanelNotebook.Visible and Assigned(RightTabEngines) and (RightTabEngines.Count > 0)) then for i := 0 to RightTabEngines.Count - 1 do if TPanelEngine(RightTabEngines[i]) is TVFSEngine then begin b := True; Break; end; b := b or (LeftPanelEngine is TVFSEngine) or (RightPanelEngine is TVFSEngine); (* -- Disabled, makes users confused. We have that 'usaved connection' message now anyway if b and ConfOpenConnectionsWarning then begin res := MessageBoxShowOnce(PGtkWindow(FWidget), LANGOpenConnectionsWarning, LANGDontShowAgain, DontShowAgain, [mbYes, mbNo], mbWarning, mbYes, mbNo); if DontShowAgain then begin ConfOpenConnectionsWarning := False; WriteMainGUISettings; end; if res = mbNo then begin Action := caNone; Exit; end; end; *) ApplicationShuttingDown := True; // Avoid emitting config files refresh event // Close all active connections if b then begin if (not LeftPanelNotebook.Visible) and (LeftPanelEngine is TVFSEngine) then begin while LeftPanelEngine is TVFSEngine do s := CloseVFS(True, True); if LeftPanelEngine is TLocalTreeEngine then LeftPanelEngine.ChangeDir(s); end else for i := 0 to LeftTabEngines.Count - 1 do if (TPanelEngine(LeftTabEngines[i]) <> nil) and (TPanelEngine(LeftTabEngines[i]) is TVFSEngine) then try if LeftPanelNotebook.PageIndex = i then begin while LeftPanelEngine is TVFSEngine do s := CloseVFS(True, True); LeftPanelTabs[i] := s; end else while Assigned(LeftTabEngines[i]) and (TPanelEngine(LeftTabEngines[i]) is TVFSEngine) do begin s := TPanelEngine(LeftTabEngines[i]).SavePath; LeftTabEngines[i] := InternalCloseEngine(LeftTabEngines[i], LeftLocalEngine); if s <> '' then LeftPanelTabs[i] := s else LeftPanelTabs[i] := TPanelEngine(LeftTabEngines[i]).Path; end; except end; if (not RightPanelNotebook.Visible) and (RightPanelEngine is TVFSEngine) then begin while RightPanelEngine is TVFSEngine do s := CloseVFS(False, True); if RightPanelEngine is TLocalTreeEngine then RightPanelEngine.ChangeDir(s); end else for i := 0 to RightTabEngines.Count - 1 do if (TPanelEngine(RightTabEngines[i]) <> nil) and (TPanelEngine(RightTabEngines[i]) is TVFSEngine) then try if RightPanelNotebook.PageIndex = i then begin while RightPanelEngine is TVFSEngine do s := CloseVFS(False, True); RightPanelTabs[i] := s; end else while Assigned(RightTabEngines[i]) and (TPanelEngine(RightTabEngines[i]) is TVFSEngine) do begin s := TPanelEngine(RightTabEngines[i]).SavePath; RightTabEngines[i] := InternalCloseEngine(RightTabEngines[i], RightLocalEngine); if s <> '' then RightPanelTabs[i] := s else RightPanelTabs[i] := TPanelEngine(RightTabEngines[i]).Path; end; except end; end; // Unset the columns changed signal because it's called on window close LeftListView.OnColumnsChanged := nil; RightListView.OnColumnsChanged := nil; ConfMainWindowState := Integer(WindowState); if ConfMainWindowState <> 0 then begin ConfMainWindowPosLeft := TGTKControl(Self).Left; ConfMainWindowPosTop := TGTKControl(Self).Top; ConfMainWindowWidth := TGTKControl(Self).Width; ConfMainWindowHeight := TGTKControl(Self).Height; end else begin ConfMainWindowPosLeft := Left; ConfMainWindowPosTop := Top; ConfMainWindowWidth := Width; ConfMainWindowHeight := Height; end; for i := 0 to LeftListView.Columns.Count - 1 do ConfColumnSizes[LeftListView.Columns[i].Tag] := LeftListView.Columns[i].Width; ConfMainWindowLeftSortColumn := LeftListView.SortColumnID; ConfMainWindowLeftSortType := Integer(LeftListView.SortOrder); ConfMainWindowRightSortColumn := RightListView.SortColumnID; ConfMainWindowRightSortType := Integer(RightListView.SortOrder); ConfLeftTabBarTabIndex := LeftPanelNotebook.PageIndex; ConfRightTabBarTabIndex := RightPanelNotebook.PageIndex; end; (********************************************************************************************************************************) (********************************************************************************************************************************) (********************************************************************************************************************************) (********************************************************************************************************************************) procedure TFMain.AfterStart; var i: integer; TmpList: TStringList; TmpList2, TmpList3: TList; begin LeftPanelEngine := LeftLocalEngine; RightPanelEngine := RightLocalEngine; // Apply the settings ApplySettings(False, False, True); MounterBarHandleBox.Visible := ConfShowMounterBar = 1; LeftMounterTable.Visible := ConfShowMounterBar = 2; RightMounterTable.Visible := ConfShowMounterBar = 2; FillMounterBar; LeftListView.SetFocus; if CommandLineHistory.Count > 0 then for i := 0 to CommandLineHistory.Count - 1 do CommandLineCombo.Items.Append(CommandLineHistory[i]); CommandLineCombo.Entry.Text := ''; RefreshBookmarksMenu; ButtonsBox.Visible := ConfShowFuncButtons; ButtonBoxSeparator.Visible := ConfShowFuncButtons; ButtonBoxSpace.Visible := not ConfShowFuncButtons; FillPluginMenu; FileListTipsInstall(PGtkTreeView(LeftListView.FWidget)); FileListTipsInstall(PGtkTreeView(RightListView.FWidget)); FileListTipsEnable; // Load and restore panel tabs if ConfSavePanelTabs then try TmpList := TStringList.Create; TmpList2 := TList.Create; TmpList3 := TList.Create; ReadTabs(True, TmpList, TmpList2, TmpList3); if (TmpList.Count > 0) and (TmpList2.Count > 0) and (TmpList3.Count > 0) then AddTabs(True, TmpList, TmpList2, TmpList3, ConfLeftTabBarTabIndex); TmpList.Clear; TmpList2.Clear; TmpList3.Clear; ReadTabs(False, TmpList, TmpList2, TmpList3); if (TmpList.Count > 0) and (TmpList2.Count > 0) and (TmpList3.Count > 0) then AddTabs(False, TmpList, TmpList2, TmpList3, ConfRightTabBarTabIndex); TmpList.Free; TmpList2.Free; TmpList3.Free; except on E: Exception do DebugMsg(['*** Exception raised in TFMain.AfterStart, loading tabs: (', E.ClassName, '): ', E.Message]); end; // Refresh the lists if not (LeftPanelNotebook.Visible and (LeftTabEngines.Count > 0)) then begin ChangingDir(True, ConfLeftPath, '', '', False, True); // AutoFallback LeftListView.SetSortInfo(ConfMainWindowLeftSortColumn, TGTKTreeViewSortOrder(ConfMainWindowLeftSortType)); end; if not (RightPanelNotebook.Visible and (RightTabEngines.Count > 0)) then begin ChangingDir(False, ConfRightPath, '', '', False, True); RightListView.SetSortInfo(ConfMainWindowRightSortColumn, TGTKTreeViewSortOrder(ConfMainWindowRightSortType)); end; // Set window position and size SetDefaultSize(ConfMainWindowWidth, ConfMainWindowHeight); if (ConfMainWindowPosLeft > -1) and (ConfMainWindowPosTop > -1) then WindowMove(ConfMainWindowPosLeft, ConfMainWindowPosTop); if ConfWMCompatMode then Show; case integer(ConfMainWindowState) of Ord(wsMaximized) : Maximize; Ord(wsMinimized) : Minimize; end; if not ConfWMCompatMode then Show; // Other things StartUp := False; // Set the flag to process Splitter repositioning PanelSeparator.Position := Round(Width * (ConfPanelSep / 100)); Application.ProcessMessages; // Need to process all messages before unlocking InternalLockInit(False); LeftListView.OnColumnsChanged := ListViewColumnsChanged; RightListView.OnColumnsChanged := ListViewColumnsChanged; LeftListView.SetFocus; end; (********************************************************************************************************************************) (********************************************************************************************************************************) (********************************************************************************************************************************) (********************************************************************************************************************************) procedure TFMain.PanelSeparatorResize(Sender: TObject); begin if not StartUp then ConfPanelSep := Round((PanelSeparator.Position / Width) * 100); end; procedure TFMain.PanelSeparatorMouseUp(Sender: TObject; Button: TGDKMouseButton; Shift: TShiftState; X, Y: Integer; var Accept: boolean); var XLeft, XRight: gint; begin if Button = mbRight then begin Accept := False; gtk_widget_get_pointer(LeftPanelBox.FWidget, @XLeft, nil); gtk_widget_get_pointer(RightPanelBox.FWidget, @XRight, nil); if (XLeft >= LeftPanelBox.Width) and (XRight < 0) then SplitterPopupMenu.PopUp; end; end; procedure TFMain.miExitClick(Sender: TObject); begin Close; end; procedure TFMain.miAboutClick(Sender: TObject); begin InternalLock; ShowAbout; Application.ProcessMessages; InternalLockInit(False); end; procedure TFMain.ListViewKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); var AListView: TGTKListView; ANotebook: TEphyNotebook; LeftPanel, KeyHandled: boolean; x: integer; begin if not Assigned(Sender) or not (Sender is TGTKListView) then DebugMsg(['**** ListViewKeyDown: Sender is not TGTKListView or not valid']); AListView := Sender as TGTKListView; if LeftListView.Focused then LeftPanel := True else if RightListView.Focused then LeftPanel := False else LeftPanel := LeftLastFocused; if LeftPanel then ANotebook := LeftPanelNotebook else ANotebook := RightPanelNotebook; FileListTipsHide; KeyHandled := False; case Key of GDK_TAB, 65056 : if (ssCtrl in Shift) and ANotebook.Visible then begin Accept := False; KeyHandled := True; x := (ANotebook.PageIndex + 1 - 2*Ord(ssShift in Shift)) mod ANotebook.ChildrenCount; if x < 0 then x := ANotebook.ChildrenCount - 1; ANotebook.PageIndex := x; end else begin Accept := False; KeyHandled := True; DeactivateQuickFind(LeftPanel); // Application.ProcessMessages; if InternalLockUnlocked then // prevent changing focus when busy if LeftPanel then RightListView.SetFocus else LeftListView.SetFocus; end; GDK_RETURN, GDK_KP_ENTER : begin KeyHandled := True; if {(Key = GDK_RETURN) and} (Shift = [ssAlt, ssShift]) then DoGetDirSize(True) else if ([ssAlt] = Shift) or ([ssCtrl] = Shift) then begin CommandLineComboKeyDown(Sender, Key, Shift, Accept); Accept := False; CommandLineCombo.Entry.SetFocus; CommandLineCombo.Entry.SelectRegion(Length(CommandLineCombo.Entry.Text), Length(CommandLineCombo.Entry.Text)); end else if Length(Trim(CommandLineCombo.Entry.Text)) > 0 then CommandLineComboKeyDown(Sender, Key, Shift, Accept) else if Assigned(AListView.Selected) then ActivateItem(AListView.Selected.Index); end; GDK_BACKSPACE : begin KeyHandled := True; if QuickFind then QuickFindSendKey(LeftPanel, Key) else begin if LeftPanel then PathButtonClick(LeftUpButton) else PathButtonClick(RightUpButton); end; end; GDK_Right : begin if [ssCtrl] = Shift then SwitchPanelCtrlLeftRight(LeftPanel, False) else if ConfLynxLikeMotion then begin if Assigned(AListView.Selected) then ActivateItem(AListView.Selected.Index); end; Accept := False; KeyHandled := True; end; GDK_Left : begin if [ssCtrl] = Shift then SwitchPanelCtrlLeftRight(LeftPanel, True) else if ConfLynxLikeMotion then if LeftPanel then PathButtonClick(LeftUpButton) else PathButtonClick(RightUpButton); Accept := False; KeyHandled := True; end; GDK_INSERT : begin KeyHandled := True; DoSelect(5); end; GDK_SPACE : if not QuickFind then begin Accept := False; KeyHandled := True; if Length(CommandLineCombo.Entry.Text) > 0 then ActivateCommandLine(Key) else begin if not PDataItem(AListView.Selected.Data)^.Selected then DoGetDirSize(False); DoSelect(8); end; end; GDK_F1 : begin KeyHandled := True; if Shift = [ssAlt] then begin ShowBookmarkQuick(True); Accept := False; end; end; GDK_F2 : begin KeyHandled := True; if Shift = [ssAlt] then begin ShowBookmarkQuick(False); Accept := False; end else begin DeactivateQuickFind(LeftPanel); Accept:= False; F6ButtonClick(nil); end; end; GDK_F3 : begin DeactivateQuickFind(LeftPanel); Accept:= False; KeyHandled := True; F3F4ButtonClick(F3Button); end; GDK_F4 : begin DeactivateQuickFind(LeftPanel); Accept:= False; KeyHandled := True; if ssShift in Shift then EditViewFile(LeftPanel, AListView, False, True) else F3F4ButtonClick(F4Button); end; GDK_F5 : begin DeactivateQuickFind(LeftPanel); Accept:= False; KeyHandled := True; if ssShift in Shift then F5ButtonClick(nil) else F5ButtonClick(Sender); end; GDK_F6 : begin DeactivateQuickFind(LeftPanel); Accept:= False; KeyHandled := True; if ssShift in Shift then begin Editing := IsEditing(AListView); DoQuickRename(LeftPanel, AListView, True); end else F6ButtonClick(Sender); end; GDK_F7 : begin DeactivateQuickFind(LeftPanel); Accept:= False; KeyHandled := True; if ssAlt in Shift then miSearchClick(Sender) else F7ButtonClick(Sender); end; GDK_F8, GDK_Delete_Key : begin DeactivateQuickFind(LeftPanel); Accept:= False; KeyHandled := True; F8ButtonClick(Sender); end; GDK_ESCAPE : begin if not QuickFind then CommandLineCombo.Entry.Text := ''; DeactivateQuickFind(LeftPanel); KeyHandled := True; if RunningEscSensitive > 0 then FMainEscPressed := True; end; GDK_WIN_POPUP : begin Accept := False; KeyHandled := True; PopupFileMenuPos; end; GDK_HOME: begin if Shift = [ssCtrl] then begin if LeftPanel then PathButtonClick(LeftHomeButton) else PathButtonClick(RightHomeButton); Accept := False; end else if Assigned(AListView.Selected) and (AListView.ConvertToSorted(AListView.Selected.Index) = 0) then Accept := False; KeyHandled := True; end; GDK_END: begin if Assigned(AListView.Selected) and (AListView.ConvertToSorted(AListView.Selected.Index) = AListView.Items.Count - 1) then Accept := False; KeyHandled := True; end; GDK_SLASH, GDK_KP_SLASH: begin if Shift = [ssCtrl] then begin if LeftPanel then PathButtonClick(LeftRootButton) else PathButtonClick(RightRootButton); Accept := False; end else if (Shift = []) then ActivateQuickFind(LeftPanel); KeyHandled := True; end; { GDK_0..GDK_9: if ConfBookmarkQuickJump and (Shift = [ssAlt]) then QuickJumpToBookmark(LeftPanel, Key - GDK_1) else begin Accept := False; if QuickFind then QuickFindSendKey(LeftPanel, Key) else ActivateCommandLine(Key); end; } GDK_Down : begin KeyHandled := False; if [ssCtrl] = Shift then begin Accept := False; CommandLineCombo.Entry.SetFocus; CommandLineCombo.Entry.SelectAll; KeyHandled := True; end else begin if QuickFind and (Shift = []) then begin KeyHandled := QuickFindSendKey(LeftPanel, Key); Accept := not KeyHandled; end; if not KeyHandled then begin KeyHandled := True; if Assigned(AListView.Selected) and (AListView.ConvertToSorted(AListView.Selected.Index) = AListView.Items.Count - 1) then Accept := False; end; end; end; GDK_Up : begin KeyHandled := False; if QuickFind and (Shift = []) then begin KeyHandled := QuickFindSendKey(LeftPanel, Key); Accept := not KeyHandled; end; if not KeyHandled then begin KeyHandled := True; if Assigned(AListView.Selected) and (AListView.ConvertToSorted(AListView.Selected.Index) = 0) then Accept := False; end; end; GDK_Page_Up, GDK_Page_Down: begin KeyHandled := True; if (Shift = [ssCtrl]) and ANotebook.Visible then begin Accept := False; x := (ANotebook.PageIndex + 1 - 2*Ord(Key = GDK_Page_Up)) mod ANotebook.ChildrenCount; if x < 0 then x := ANotebook.ChildrenCount - 1; ANotebook.PageIndex := x; end else begin if Assigned(AListView.Selected) and (((Key = GDK_Page_Up) and (AListView.ConvertToSorted(AListView.Selected.Index) = 0)) or ((Key = GDK_Page_Down) and (AListView.ConvertToSorted(AListView.Selected.Index) = AListView.Items.Count - 1))) then Accept := False; end; end; GDK_A, GDK_Capital_A: if ((Shift = [ssAlt]) and (ConfQuickSearchActivationKey <> 2)) or (Shift = [ssCtrl]) then begin KeyHandled := True; CommandLineComboKeyDown(Sender, Key, Shift, Accept); end; GDK_D, GDK_Capital_D: if Shift = [ssCtrl] then begin Accept := False; KeyHandled := True; ShowBookmarkQuick(LeftPanel); end; GDK_O, GDK_Capital_O : if (Shift = [ssAlt]) and (ConfQuickSearchActivationKey <> 2) then begin Accept := False; KeyHandled := True; SwitchOtherPanel(LeftPanel, False); end; GDK_P, GDK_Capital_P, GDK_N, GDK_Capital_N: if (((Shift = [ssAlt]) and (ConfQuickSearchActivationKey <> 2)) or (Shift = [ssCtrl])) { and (CommandLineHistory.Count > 0) } then begin KeyHandled := True; CommandLineComboKeyDown(Sender, Key, Shift, Accept); end; GDK_S, GDK_Capital_S : if ((Shift = [ssAlt]) and (ConfQuickSearchActivationKey <> 2)) or (Shift = [ssCtrl]) then begin KeyHandled := True; ActivateQuickFind(LeftPanel); end; end; if not KeyHandled then Accept := not HandleKey(Key, Shift, LeftPanel); end; function TFMain.HandleKey(Key: Word; Shift: TShiftState; LeftPanel: boolean): boolean; var s: string; b: boolean; begin Result := False; if Key = 0 then Exit; // Filter out all non-character keys s := UTF8Encode(WideChar(KeyValToUnicode(Key))); if (Length(s) = 0) or (s = #0) then begin // DebugMsg(['HandleKey: not a character key. Ignoring.']); Exit; end; // Triggers: // 0 = Ctrl+S/Alt+S and "/" only // 1 = Ctrl+Alt+letters // 2 = Alt+letters // 3 = letters directly if QuickFind then Result := QuickFindSendKey(LeftPanel, Key) else begin b := False; case ConfQuickSearchActivationKey of 1: b := Shift = [ssCtrl, ssAlt]; 2: b := Shift = [ssAlt]; 3: b := Shift = []; end; if b then begin ActivateQuickFind(LeftPanel); Result := QuickFindSendKey(LeftPanel, Key); end else Result := ActivateCommandLine(Key); end; end; (******************************************************************************************************************************************) procedure TFMain.ListViewEnter(Sender: TObject; var Accept: boolean); var s: string; begin LeftLastFocused := Sender = LeftListView; if LeftLastFocused then begin LeftPathLabelEventBox.ControlState := csSelected; RightPathLabelEventBox.ControlState := csActive; s := LeftPathLabel.Caption; end else begin LeftPathLabelEventBox.ControlState := csActive; RightPathLabelEventBox.ControlState := csSelected; s := RightPathLabel.Caption; end; CommandLineLabel.Caption := Format('%s@%s:%s>', [GetUserName, GetHostName, s]); UpdateCaption; miDisconnect.Enabled := (LeftLastFocused and (LeftPanelEngine is TVFSEngine) and (not TVFSEngine(LeftPanelEngine).ArchiveMode)) or ((not LeftLastFocused) and (RightPanelEngine is TVFSEngine) and (not TVFSEngine(RightPanelEngine).ArchiveMode)); end; procedure TFMain.FormResize(Sender: TObject); begin if Width <> LastWidth then begin // DebugMsg(['FormResize: ', Width, 'x', Height]); PanelSeparator.Position := Round(Width * (ConfPanelSep / 100)); CommandLineLabel.SetSizeRequest(Round(Width / 2.5), -1); LastWidth := Width; end; end; procedure TFMain.PathLabelMouseDown(Sender: TObject; Button: TGDKMouseButton; Shift: TShiftState; X, Y: Integer; var Accept: boolean); begin if Button in [mbLeft, mbRight] then begin if Sender = LeftPathLabelEventBox then LeftListView.SetFocus else if Sender = RightPathLabelEventBox then RightListView.SetFocus; end; if Button = mbRight then begin Accept := False; PathBoxPopupMenu.PopUp; end; end; procedure TFMain.ActivateItem(const ItemIndex: longint); var Data: PDataItem; LeftPanel: boolean; DataList: TList; Engine: TPanelEngine; AListView: TGTKListView; Ext: string; begin if LeftListView.Focused then LeftPanel := True else if RightListView.Focused then LeftPanel := False else LeftPanel := LeftLastFocused; if LeftPanel then begin DataList := LeftPanelData; Engine := LeftPanelEngine; AListView := LeftListView; end else begin DataList := RightPanelData; Engine := RightPanelEngine; AListView := RightListView; end; DeactivateQuickFind(LeftPanel); if Application.GTKVersion_2_0_5_Up then Data := DataList[ItemIndex] else Data := AListView.Items[ItemIndex].AsPointer(0); DebugMsg(['Selected:', Data^.FDisplayName]); if not Assigned(Data) then Exit; if Data^.UpDir then ChangingDir(LeftPanel, '..') else if Data^.IsDir then ChangingDir(LeftPanel, Data^.FName) else begin Ext := WideUpperCase(Trim(Copy(String(Data^.FDisplayName), LastDelimiter('.', String(Data^.FDisplayName)) + 1, Length(String(Data^.FDisplayName)) - LastDelimiter('.', String(Data^.FDisplayName))))); // Test for known internal functions if ((Ext = 'SFV') or (Ext = 'MD5')) and (Engine is TLocalTreeEngine) then miVerifyChecksumsClick(Self) else if ((Ext = 'CRC') or (Ext = '001')) and (Engine is TLocalTreeEngine) then miMergeFilesClick(Self) else if not HandleVFSArchive(LeftPanel, IncludeTrailingPathDelimiter(Engine.Path) + String(Data^.FName), String(Data^.FName), '/') then if (not ConfUseURI) or (not (Engine is TVFSEngine)) or ((Engine is TVFSEngine) and TVFSEngine(Engine).ArchiveMode) then RunFile(IncludeTrailingPathDelimiter(Engine.Path) + String(Data^.FName), Engine, -1) else RunFile(IncludeTrailingPathDelimiter((Engine as TVFSEngine).GetPathURI) + String(Data^.FName), Engine, -1); end; end; procedure TFMain.ChangingDir(LeftPanel: boolean; NewPath: string; HiliString1: string = ''; HiliString2: string = ''; const PreserveSelection: boolean = False; const AutoFallback: boolean = False; Plugin: TVFSPlugin = nil); var ListView: TGTKListView; Engine: TPanelEngine; s, ss: string; i, Sel: integer; b: boolean; tt: TDateTime; DataList, DirList: TList; SelectedFiles: TStringList; ANotebook: TEphyNotebook; ATabList: TStringList; TabEngines: TList; OpenDirThread: TOpenDirThread; function LookupItem(const AName: string; const CaseSensitive: boolean): boolean; var i: integer; begin Result := False; for i := 0 to DataList.Count - 1 do if (CaseSensitive and (WideCompareStr(string(PDataItem(DataList[i])^.FName), AName) = 0)) or ((not CaseSensitive) and (WideCompareText(string(PDataItem(DataList[i])^.FName), AName) = 0)) then begin Sel := i; Result := True; Break; end; end; procedure DoThread; var DialogParent: PGtkWidget; begin try OpenDirThread.AEngine := Engine; OpenDirThread.APath := NewPath; OpenDirThread.ASelItem := ''; OpenDirThread.AAutoFallBack := AutoFallback; OpenDirThread.ADirList := DirList; if Plugin <> nil then begin DebugMsg(['Plugin <> nil']); OpenDirThread.APlugin := Plugin; OpenDirThread.AFullPath := HiliString1; OpenDirThread.AHighlightItem := HiliString2; end; DebugMsg(['(II) TFMain.ChangingDir: begin thread']); tt := Now; b := False; FRemoteWait := TFRemoteWait.Create(Application); FRemoteWait.ParentForm := FMain; // WARNING: For an unknown reason, there's a race condition in Kylix (FPC is fine). // The thread must be started *after* the FRemoteWait is created. OpenDirThread.Resume; repeat Sleep(ConstInternalProgressTimer); // DebugMsg([' (II) TFMain.ChangingDir: sleep.']); Application.ProcessMessages; if not b and (MilliSecondsBetween(tt, Now) >= ConstRemoteWaitDialogDelay) then begin FRemoteWait.ShowModal; b := True; end; if FRemoteWait.Cancelled then OpenDirThread.CancelIt := True; if OpenDirThread.VFSAskQuestion_Display then begin OpenDirThread.VFSAskQuestion_Display := False; DebugMsg(['Main thread: displaying question dialog']); if FRemoteWait.Visible then DialogParent := FRemoteWait.FWidget else DialogParent := FWidget; HandleVFSAskQuestionCallback(DialogParent, OpenDirThread.VFSAskQuestion_Message, OpenDirThread.VFSAskQuestion_Choices, OpenDirThread.VFSAskQuestion_Choice); OpenDirThread.VFSCallbackEvent.SetEvent; end; if OpenDirThread.VFSAskPassword_Display then begin OpenDirThread.VFSAskPassword_Display := False; DebugMsg(['Main thread: displaying password prompt']); if FRemoteWait.Visible then DialogParent := FRemoteWait.FWidget else DialogParent := FWidget; OpenDirThread.VFSAskPassword_Result := HandleVFSAskPasswordCallback(DialogParent, OpenDirThread.VFSAskPassword_Message, OpenDirThread.VFSAskPassword_default_user, OpenDirThread.VFSAskPassword_default_domain, OpenDirThread.VFSAskPassword_default_password, OpenDirThread.VFSAskPassword_flags, OpenDirThread.VFSAskPassword_username, OpenDirThread.VFSAskPassword_password, OpenDirThread.VFSAskPassword_anonymous, OpenDirThread.VFSAskPassword_domain, OpenDirThread.VFSAskPassword_password_save); OpenDirThread.VFSCallbackEvent.SetEvent; end; until OpenDirThread.Finished; FRemoteWait.Free; DebugMsg(['(II) TFMain.ChangingDir: end thread, running time = ', OpenDirThread.RunningTime, 'ms']); except on E: Exception do DebugMsg(['*** Exception raised in TFMain.ChangingDir:DoThread (', E.ClassName, '): ', E.Message]); end; end; begin DebugMsg(['*** Begin changing dir to ', NewPath]); if LeftPanel then begin ListView := LeftListView; Engine := LeftPanelEngine; DataList := LeftPanelData; ANotebook := LeftPanelNotebook; ATabList := LeftPanelTabs; TabEngines := LeftTabEngines; end else begin ListView := RightListView; Engine := RightPanelEngine; DataList := RightPanelData; ANotebook := RightPanelNotebook; ATabList := RightPanelTabs; TabEngines := RightTabEngines; end; try if (NewPath = '..') and (Engine.ParentEngine <> nil) and (Engine.Path = '/') then begin CloseVFS(LeftPanel, False); Exit; end; InternalLock; FileListTipsDisable; SelectedFiles := nil; if PreserveSelection then begin SelectedFiles := TStringList.Create; if DataList.Count > 0 then for i := 0 to DataList.Count - 1 do if PDataItem(DataList[i])^.Selected and (not PDataItem(DataList[i])^.UpDir) then SelectedFiles.Add(PDataItem(DataList[i])^.FName); end; Editing := False; DeactivateQuickFind(LeftPanel); DeactivateQuickFind(not LeftPanel); DirList := TList.Create; // Threading... OpenDirThread := TOpenDirThread.Create; DebugMsg(['TFMain.ChangingDir: Creating thread...']); DoThread; if Plugin <> nil then begin HiliString1 := ''; HiliString2 := ''; end; if OpenDirThread.VFSOpenResult <> 0 then begin // Silence the error if password dialog has been cancelled if not OpenDirThread.VFSCallbackCancelled then Application.MessageBox(LANGCouldntOpenURIArchive, [mbOK], mbError, mbOK, mbOK); DebugMsg(['TFMain.ChangingDir: Freeing thread...']); OpenDirThread.Free; end else if OpenDirThread.ChDirResult <> 0 then begin if not OpenDirThread.VFSCallbackCancelled then begin // Drop the error message if one of the callback dialogs were cancelled if OpenDirThread.ChDirResult = 1 then Application.MessageBox(Format(LANGErrorGettingListingForSPanelNoPath, [LANGPanelStrings[LeftPanel], 'Exception']), [mbOK], mbError, mbNone, mbOK) else Application.MessageBox(Format(LANGErrorGettingListingForSPanel, [LANGPanelStrings[LeftPanel], GetErrorString(OpenDirThread.ChDirResult), NewPath]), [mbOK], mbError, mbNone, mbOK); end; DebugMsg(['TFMain.ChangingDir: Freeing thread...']); OpenDirThread.Free; end else begin if OpenDirThread.ListingResult <> 0 then begin Application.MessageBox(Format(LANGErrorGettingListingForSPanel, [LANGPanelStrings[LeftPanel], GetErrorString(OpenDirThread.ListingResult), Engine.Path]), [mbOK], mbError, mbNone, mbOK); Exit; end; s := OpenDirThread.ASelItem; Engine := OpenDirThread.AEngine; // set current Engine from the thread (might have been modified due to VFS) if LeftPanel then LeftPanelEngine := Engine else RightPanelEngine := Engine; DebugMsg(['TFMain.ChangingDir: Freeing thread...']); OpenDirThread.Free; FillPanel(DirList, ListView, Engine, LeftPanel); // This is time consuming DirList.Free; if DataList.Count > 0 then begin if PreserveSelection and (SelectedFiles.Count > 0) and (DataList.Count > 0) then for i := 0 to DataList.Count - 1 do if (not PDataItem(DataList[i])^.UpDir) and (SelectedFiles.IndexOf(PDataItem(DataList[i])^.FName) >= 0) then PDataItem(DataList[i])^.Selected := True; Sel := 0; b := (NewPath = '..') and (Length(Trim(s)) > 0) and LookupItem(StrToUTF8(s), True); if not b then b := (HiliString1 <> '') and LookupItem(HiliString1, True); if (not b) and (HiliString1 <> '') then b := LookupItem(HiliString1, False); if (not b) and (HiliString2 <> '') then b := LookupItem(HiliString2, True); if (not b) and (HiliString2 <> '') then b := LookupItem(HiliString2, False); // DebugMsg(['TFMain.ChangingDir: Engine.Path = "', Engine.Path, '", NewPath = "', NewPath, '", HiliString1 = "', HiliString1, '", HiliString2 = "', HiliString2, '"']); if (not b) and ((Engine.Path = '/') or (NewPath = '/')) and (HiliString1 = '') and (HiliString2 = '') then Sel := ListView.ConvertFromSorted(0); ListView.Items[Sel].Selected := True; // Application.ProcessMessages; ListView.Items[Sel].SetCursor(0, False, not Application.GTKVersion_2_2_0_Up, 0.5, 0); // Application.ProcessMessages; end; UpdatePanelInfo; UpdatePanelInfoDown(LeftPanel); UpdatePanelInfoDown(not LeftPanel); if ANotebook.Visible then begin ATabList[ANotebook.PageIndex] := Engine.Path; TabEngines[ANotebook.PageIndex] := Engine; s := ExtractFileName(ExcludeTrailingPathDelimiter(Engine.Path)); if s = '' then s := '/'; SetTabLabel(ANotebook, ANotebook.PageIndex, StrToUTF8(s), StrToUTF8(Engine.Path)); end; end; // of Chdir, Listing, ... Engine.ExplicitChDir('/'); Application.ProcessMessages; InternalUnLock; FileListTipsEnable; except on E: Exception do DebugMsg(['*** Exception raised in TFMain.ChangingDir (', E.ClassName, '): ', E.Message]); end; end; procedure TFMain.DoRefresh(LeftPanel, StaySame, AutoFallback: boolean); var ListView: TGTKListView; Engine: TPanelEngine; DataList: TList; s1, s2: string; begin if LeftPanel then begin ListView := LeftListView; Engine := LeftPanelEngine; DataList := LeftPanelData; end else begin ListView := RightListView; Engine := RightPanelEngine; DataList := RightPanelData; end; s1 := ''; s2 := ''; FindNextSelected(ListView, DataList, s1, s2); ChangingDir(LeftPanel, Engine.Path, s1, s2, StaySame, AutoFallback); end; function TFMain.FormatPathString(Engine: TPanelEngine): string; begin if not (Engine is TVFSEngine) then Result := Engine.Path else if (Engine as TVFSEngine).ArchiveMode then Result := Format(ConstFullPathFormatStr, [(Engine as TVFSEngine).ArchivePath, Engine.Path]) else Result := (Engine as TVFSEngine).GetPathURI; end; procedure TFMain.UpdateCaption; var LeftPanel: boolean; Engine: TPanelEngine; begin if LeftListView.Focused then LeftPanel := True else if RightListView.Focused then LeftPanel := False else LeftPanel := LeftLastFocused; if LeftPanel then Engine := LeftPanelEngine else Engine := RightPanelEngine; Caption := Format('Tux Commander [%s]', [StrToUTF8(FormatPathString(Engine))]); miVerifyChecksums.Enabled := Engine is TLocalTreeEngine; miCreateChecksums.Enabled := Engine is TLocalTreeEngine; miSplitFile.Enabled := Engine is TLocalTreeEngine; miMergeFiles.Enabled := Engine is TLocalTreeEngine; end; procedure TFMain.UpdatePanelInfo; var FSFree, FSSize: Int64; FSName, s: string; Time1, Time2: TDateTime; begin UpdateCaption; Time1 := Now; LeftPathLabel.Caption := StrToUTF8(FormatPathString(LeftPanelEngine)); RightPathLabel.Caption := StrToUTF8(FormatPathString(RightPanelEngine)); LeftPathLabel.UseMarkup := True; RightPathLabel.UseMarkup := True; if LeftLastFocused then s := LeftPathLabel.Caption else s := RightPathLabel.Caption; CommandLineLabel.Caption := Format('%s@%s:%s>', [GetUserName, GetHostName, s]); LeftPanelEngine.GetFileSystemInfo(LeftPanelEngine.Path, FSSize, FSFree, FSName); if FSName <> '' then LeftDiskInfoLabel.Caption := Format(LANGDiskStatVolNameFmt, [FSName, FormatSize(FSFree, 1024), FormatSize(FSSize, 1024)]) else LeftDiskInfoLabel.Caption := Format(LANGDiskStatFmt, [FormatSize(FSFree, 1024), FormatSize(FSSize, 1024)]); RightPanelEngine.GetFileSystemInfo(RightPanelEngine.Path, FSSize, FSFree, FSName); if FSName <> '' then RightDiskInfoLabel.Caption := Format(LANGDiskStatVolNameFmt, [FSName, FormatSize(FSFree, 1024), FormatSize(FSSize, 1024)]) else RightDiskInfoLabel.Caption := Format(LANGDiskStatFmt, [FormatSize(FSFree, 1024), FormatSize(FSSize, 1024)]); LeftDiskInfoLabel.UseMarkup := True; RightDiskInfoLabel.UseMarkup := True; // Update visibility of VFS buttons LeftDisconnectButton.Visible := (LeftPanelEngine is TVFSEngine) and (not TVFSEngine(LeftPanelEngine).ArchiveMode); LeftLeaveArchiveButton.Visible := (LeftPanelEngine is TVFSEngine) and TVFSEngine(LeftPanelEngine).ArchiveMode; RightDisconnectButton.Visible := (RightPanelEngine is TVFSEngine) and (not TVFSEngine(RightPanelEngine).ArchiveMode); RightLeaveArchiveButton.Visible := (RightPanelEngine is TVFSEngine) and TVFSEngine(RightPanelEngine).ArchiveMode; LeftPasswordButton.Visible := (LeftPanelEngine is TVFSEngine) and TVFSEngine(LeftPanelEngine).GetPasswordRequired; RightPasswordButton.Visible := (RightPanelEngine is TVFSEngine) and TVFSEngine(RightPanelEngine).GetPasswordRequired; miDisconnect.Enabled := (LeftLastFocused and (LeftPanelEngine is TVFSEngine) and (not TVFSEngine(LeftPanelEngine).ArchiveMode)) or ((not LeftLastFocused) and (RightPanelEngine is TVFSEngine) and (not TVFSEngine(RightPanelEngine).ArchiveMode)); Time2 := Now; DebugMsg(['UpdatePanelInfo: ', SecondOf(Time2 - Time1), ':', MillisecondOf(Time2 - Time1)]); end; procedure TFMain.UpdatePanelInfoDown(LeftPanel: boolean); var Size, TotalSize: Int64; NumSel, TotalFiles: longint; i: integer; Data: PDataItem; s: string; DataList: TList; begin if LeftPanel then DataList := LeftPanelData else DataList := RightPanelData; Size := 0; TotalSize := 0; NumSel := 0; TotalFiles := 0; if DataList.Count > 0 then for i := 0 to DataList.Count - 1 do begin Data := DataList[i]; if (not Data^.UpDir) and ((not Data^.IsDir) or (Data^.IsDir and (Data^.Size > 0))) then begin Inc(TotalSize, Data^.Size); if not Data^.IsDir then Inc(TotalFiles); if Data^.Selected then begin if not Data^.IsDir then Inc(NumSel); Inc(Size, Data^.Size); end; end; end; s := Format(LANGStatusLineFmt, [FormatSize(Size, 1024), FormatSize(TotalSize, 1024), NumSel, TotalFiles]); if LeftPanel then LeftStatusLine.Caption := s else RightStatusLine.Caption := s; end; procedure TFMain.PathButtonClick(Sender: TObject); var NewPath: string; LeftPanel: boolean; begin LeftPanel := (Sender = LeftUpButton) or (Sender = LeftHomeButton) or (Sender = LeftRootButton); if (Sender = LeftUpButton) or (Sender = RightUpButton) then NewPath := '..' else if (Sender = LeftRootButton) or (Sender = RightRootButton) then NewPath := '/' else if (Sender = LeftHomeButton) or (Sender = RightHomeButton) then NewPath := GetHomePath else Exit; // Close VFS connections if (Sender = LeftHomeButton) and (not (LeftPanelEngine is TLocalTreeEngine)) then while (LeftPanelEngine is TVFSEngine) do CloseVFS(LeftPanel, True); if (Sender = RightHomeButton) and (not (RightPanelEngine is TLocalTreeEngine)) then while (RightPanelEngine is TVFSEngine) do CloseVFS(LeftPanel, True); if ((Sender = LeftUpButton) and (LeftPanelEngine is TVFSEngine) and (not (LeftPanelEngine as TVFSEngine).ArchiveMode) and (LeftPanelEngine.Path = '/')) or ((Sender = RightUpButton) and (RightPanelEngine is TVFSEngine) and (not (RightPanelEngine as TVFSEngine).ArchiveMode) and (RightPanelEngine.Path = '/')) then NewPath := '/'; ChangingDir(LeftPanel, NewPath); if LeftPanel then LeftListView.SetFocus else RightListView.SetFocus; end; procedure TFMain.miRefreshClick(Sender: TObject); begin DoRefresh(LeftListView.Focused, True, True); end; function TFMain.CompareFunc(Sender: TObject; var model: PGtkTreeModel; var a, b: PGtkTreeIter): integer; var Data1, Data2: PDataItem; Path: PGtkTreePath; DataList: TList; begin Result := 0; if not Application.GTKVersion_2_0_5_Up then begin gtk_tree_model_get(model, a, 0, @Data1, -1); gtk_tree_model_get(model, b, 0, @Data2, -1); end else begin if Sender = LeftListView then DataList := LeftPanelData else DataList := RightPanelData; Path := gtk_tree_model_get_path(model, a); if not Assigned(Path) then Exit; Data1 := DataList[gtk_tree_path_get_indices(Path)^]; gtk_tree_path_free(Path); Path := gtk_tree_model_get_path(model, b); if not Assigned(Path) then Exit; Data2 := DataList[gtk_tree_path_get_indices(Path)^]; gtk_tree_path_free(Path); end; Result := LVCompareItems(Data1, Data2, (Sender as TGTKView).SortOrder = soAscending, FMain.ColumnSortIDs[(Sender as TGTKView).SortColumnID + 1]); end; (********************************************************************************************************************************) procedure TFMain.DoSelect(SelectType: integer); var Filter, s: string; LeftPanel, ExpandSel, b, Found: boolean; ListView: TGTKListView; Engine: TPanelEngine; i, j: integer; Item: TGTKListItem; Data: PDataItem; DataList: TList; Wilds: array of string; begin try InternalLock; try if LeftListView.Focused then LeftPanel := True else if RightListView.Focused then LeftPanel := False else Exit; if LeftPanel then begin ListView := LeftListView; Engine := LeftPanelEngine; DataList := LeftPanelData; end else begin ListView := RightListView; Engine := RightPanelEngine; DataList := RightPanelData; end; DeactivateQuickFind(LeftPanel); ExpandSel := False; if SelectType in [1, 2] then try FSelect := TFSelect.Create(Self); case SelectType of 1 : FSelect.Caption := LANGExpandSelection; 2 : FSelect.Caption := LANGShrinkSelection; end; { FSelect.TitleLabel.Caption := Format('%s', [FSelect.Caption]); FSelect.TitleLabel.UseMarkup := True; } ExpandSel := SelectType = 1; FSelect.ComboBox.Entry.Text := LastUsedFilter; FSelect.ComboBox.Entry.SelectAll; if FSelect.Run = mbOK then begin Filter := FSelect.ComboBox.Entry.Text; LastUsedFilter := Filter; if FSelect.ComboBox.Entry.Text <> '*.*' then SaveItemToHistory(FSelect.ComboBox.Entry.Text, SelectHistory); end else Exit; finally FSelect.Free; end; case SelectType of 1, 2 : if ListView.Items.Count > 1 then begin SetLength(Wilds, 0); while LastDelimiter(ConfSelItemsDelim, Filter) > 0 do begin i := LastDelimiter(ConfSelItemsDelim, Filter); if i < Length(Filter) then begin s := Copy(Filter, i + 1, Length(Filter) - i); Delete(Filter, i, Length(Filter) - i + 1); SetLength(Wilds, Length(Wilds) + 1); Wilds[Length(Wilds) - 1] := s; end; end; if Length(Filter) > 0 then begin SetLength(Wilds, Length(Wilds) + 1); Wilds[Length(Wilds) - 1] := Filter; end; Found := False; for i := 0 to DataList.Count - 1 do begin Data := DataList[i]; if Assigned(Data) and (not Data^.UpDir) and (ConfSelectAllDirs or (not Data^.IsDir)) {and (Data^.Selected <> ExpandSel)} then begin b := False; for j := 0 to Length(Wilds) - 1 do b := b or IsWild(String(Data^.FDisplayName), Wilds[j], True); if b then begin Data^.Selected := ExpandSel; Found := True; end; end; end; SetLength(Wilds, 0); if not Found then Application.MessageBox(LANGNoMatchesFound, [mbOK], mbWarning, mbNone, mbOK); end; 3, 4 : if DataList.Count > 0 then for i := 0 to DataList.Count - 1 do if (not PDataItem(DataList[i])^.UpDir) and (ConfSelectAllDirs or (not PDataItem(DataList[i])^.IsDir)) then PDataItem(DataList[i])^.Selected := not PDataItem(DataList[i])^.Selected; 5, 8 : begin Item := ListView.Selected; if Assigned(Item) and Assigned(Item.Data) then begin Data := PDataItem(Item.Data); if (Engine.Path = '/') or (Item.Index > 0) then Data^.Selected := not Data^.Selected; if (ListView.ConvertToSorted(Item.Index) < ListView.Items.Count - 1) and (((SelectType = 5) and ConfInsMoveDown) or ((SelectType = 8) and ConfSpaceMovesDown)) then begin ListView.Selected := ListView.Items[ListView.ConvertFromSorted(ListView.ConvertToSorted(Item.Index) + 1)]; ListView.Selected.SetCursor(0, False, False, 0, 0); end else Item.RedrawRow; // Move to the next item will invalidate it automatically end; end; 6, 7: if DataList.Count > 0 then for i := 0 to DataList.Count - 1 do if (not PDataItem(DataList[i])^.UpDir) and (ConfSelectAllDirs or (not PDataItem(DataList[i])^.IsDir)) then PDataItem(DataList[i])^.Selected := SelectType = 6; end; if SelectType in [1..4, 6..7] then ListView.Invalidate; // Make changes appear UpdatePanelInfoDown(LeftPanel); Application.ProcessMessages; except end; finally Application.ProcessMessages; InternalUnLock; end; end; function TFMain.IsEditing(AListView: TGTKListView): boolean; var i: integer; begin Result := False; for i := 0 to AListView.Columns.Count - 1 do if Assigned(AListView.Columns[i].FColumn^.editable_widget) then Result := True; end; function TFMain.PanelFindEditableWidget(AListView: TGTKListView): PGtkWidget; var i: integer; begin Result := nil; for i := 0 to AListView.Columns.Count - 1 do if Assigned(AListView.Columns[i].FColumn^.editable_widget) then begin Result := AListView.Columns[i].FColumn^.editable_widget; Break; end; end; procedure TFMain.ProcessMarkKey(KeyType, Key: integer); var LeftPanel: boolean; ListView: TGTKListView; Pos: integer; editable: PGtkEditable; begin if LeftListView.Focused then LeftPanel := True else if RightListView.Focused then LeftPanel := False else LeftPanel := LeftLastFocused; if LeftPanel then ListView := LeftListView else ListView := RightListView; editable := PanelFindEditableWidget(ListView); if Editing and Assigned(editable) then begin Pos := gtk_editable_get_position(editable); gtk_editable_insert_text(editable, PChar(UTF8Encode(WideChar(KeyValToUnicode(Key)))), 1, @Pos); gtk_editable_set_position(editable, Pos); end; if CommandLineCombo.Entry.Focused then ActivateCommandLine(Key, True) else if QuickFind then QuickFindSendKey(LeftPanel, Key) else DoSelect(KeyType); end; procedure TFMain.mnuMarkClick(Sender: TObject); begin if Sender = miSelectGroup then ProcessMarkKey(1, GDK_KP_PLUS) else if Sender = miUnselectGroup then ProcessMarkKey(2, GDK_KP_MINUS) else if Sender = miSelectAll then DoSelect(6) else if Sender = miUnselectAll then DoSelect(7) else if Sender = miInvertSelection then ProcessMarkKey(4, GDK_KP_ASTERISK); end; (********************************************************************************************************************************) procedure TFMain.ListViewCellDataFunc(Sender: TObject; tree_view: PGtkTreeView; tree_column : PGtkTreeViewColumn; cell : PGtkCellRenderer; tree_model : PGtkTreeModel; iter : PGtkTreeIter); var s: PChar; Sel, ImageCol: boolean; Data: PDataItem; i, ColumnID, ColumnIdx: integer; DataList: TList; TreePath: PGtkTreePath; AFGColor, ABGColor: PGdkColor; { Rect, VisibleRect: TGdkRectangle; } begin if Application.GTKVersion_2_0_5_Up then ColumnIdx := gtk_tree_view_column_get_sort_column_id(tree_column) else begin ColumnIdx := 0; for i := 0 to (Sender as TGTKListView).Columns.Count - 1 do if (cell = (Sender as TGTKListView).Columns[i].FRenderer) or (cell = (Sender as TGTKListView).Columns[i].FPixbufRenderer) then begin ColumnIdx := i; Break; end; end; ColumnID := ColumnSortIDs[ColumnIdx + 1] - 1; ImageCol := False; if ColumnIdx = 0 then ImageCol := GTK_IS_CELL_RENDERER_PIXBUF(cell); Data := nil; if not Application.GTKVersion_2_0_5_Up then gtk_tree_model_get(tree_model, iter, 0, @Data, -1) else begin if Sender = LeftListView then DataList := LeftPanelData else DataList := RightPanelData; TreePath := gtk_tree_model_get_path(tree_model, iter); if not Assigned(TreePath) then Exit; (Sender as TGTKListView).ConvertPathToChild(TreePath); Data := DataList[gtk_tree_path_get_indices(TreePath)^]; gtk_tree_path_free(TreePath); end; (* gtk_tree_view_get_cell_area(tree_view, TreePath, nil, @Rect); gtk_tree_view_get_visible_rect(tree_view, @VisibleRect); if (Rect.height = 0) or (Rect.height <> ConfRowHeight) or (Rect.y = 0) or (Rect.y > VisibleRect.y + VisibleRect.height) then Exit; *) // DebugMsg(['Rendering text ', Data^.ColumnData[ColumnID]]); if not Assigned(Data) then Exit; Sel := gtk_tree_selection_iter_is_selected((Sender as TGTKView).FSelection, iter); with Data^ do begin // ################ Prepare colors if Selected then AFGColor := SelectedItemGDKColor else begin if Sel then begin if (Sender as TGTKView).Focused then AFGColor := ActiveItemGDKColor else AFGColor := InactiveItemGDKColor; end else AFGColor := ItemColor; end; if not Sel then ABGColor := NormalItemGDKBackground else if (Sender as TGTKView).Focused then ABGColor := ActiveItemGDKBackground else ABGColor := InactiveItemGDKBackground; // ################ Setting the properties if not ImageCol then begin if Editing and (InplaceEditItem.Data = Data) and (ColumnID < 3) and ((ColumnID = 0) or (ColumnID = 1) or Assigned(tree_column^.editable_widget)) then begin if (ColumnID = 0) or (ColumnID = 1) then s := FDisplayName else s := nil; g_object_set(cell, 'text', s, 'foreground-gdk', AFGColor, nil); if Application.GTKVersion_2_2_0_Up or (not ConfUseFileTypeIcons) then g_object_set(cell, 'background-gdk', ABGColor, nil); end else begin // not editing if ConfDirsInBold then begin if IsDir or UpDir then g_object_set(cell, 'markup', PChar(Format('%s', [QuoteMarkupStr(ColumnData[ColumnID])])), 'foreground-gdk', AFGColor, nil) else g_object_set(cell, 'markup', PChar(QuoteMarkupStr(ColumnData[ColumnID])), 'foreground-gdk', AFGColor, nil); end else g_object_set(cell, 'text', ColumnData[ColumnID], 'foreground-gdk', AFGColor, nil); if Application.GTKVersion_2_2_0_Up or (not ConfUseFileTypeIcons) then g_object_set(cell, 'background-gdk', ABGColor, nil); // Older versions have bug in color filling end; end else // this is the image column if ConfUseFileTypeIcons then begin // Assign icons if Application.GTKVersion_2_2_0_Up then g_object_set(cell, 'cell-background-gdk', ABGColor, nil); // Older versions don't have this property if Sel and (not (Sender as TGTKView).Focused) and Application.GTKVersion_2_2_0_Up then begin if InactiveItemsTimer.Enabled then InactiveItemsTimer.Enabled := False; if Sender = LeftListView then RedrawLeftInactive := True else RedrawRightInactive := True; InactiveItemsTimer.Enabled := not Application.GTKVersion_2_6_0_Up; end; if Icon <> nil then g_object_set(cell, 'pixbuf', Icon, nil); end; end; end; procedure TFMain.F7ButtonClick(Sender: TObject); var LeftPanel: boolean; ListView: TGTKListView; Engine: TPanelEngine; NewDir: string; begin try InternalLock; try if Sender = F7Button then LeftPanel := LeftLastFocused else if LeftListView.Focused then LeftPanel := True else if RightListView.Focused then LeftPanel := False else Exit; if LeftPanel then ListView := LeftListView else ListView := RightListView; if LeftPanel then Engine := LeftPanelEngine else Engine := RightPanelEngine; try FNewDir := TFNewDir.Create(Self); if FNewDir.Run = mbOK then NewDir := UTF8ToStr(FNewDir.Entry.Text) else Exit; finally FNewDir.Free; end; if NewDir = '' then Exit; if not MakeDirectory(ListView, Engine, LeftPanel, NewDir) then Exit; if Pos('/', NewDir) > 0 then Delete(NewDir, Pos('/', NewDir), Length(NewDir) - Pos('/', NewDir) + 1); ChangingDir(LeftPanel, Engine.Path, NewDir); DoRefresh(not LeftPanel, True, True); except end; finally Application.ProcessMessages; InternalLockInit(False); end; end; procedure TFMain.DoGetDirSize(AllItems: boolean); var LeftPanel: boolean; ListView: TGTKListView; Engine: TPanelEngine; DataList: TList; begin if LeftListView.Focused then LeftPanel := True else if RightListView.Focused then LeftPanel := False else Exit; if LeftPanel then begin ListView := LeftListView; Engine := LeftPanelEngine; DataList := LeftPanelData; end else begin ListView := RightListView; Engine := RightPanelEngine; DataList := RightPanelData; end; RunningEscSensitive := 1; GetDirSize(ListView, Engine, DataList, AllItems); if ConfSortDirectoriesLikeFiles and (ColumnSortIDs[ListView.SortColumnID + 1] = 4) then begin if ListView.SortOrder = soAscending then begin ListView.SetSortInfo(ListView.SortColumnID, soDescending); ListView.SetSortInfo(ListView.SortColumnID, soAscending); end else begin ListView.SetSortInfo(ListView.SortColumnID, soAscending); ListView.SetSortInfo(ListView.SortColumnID, soDescending); end; ListView.Selected.SetCursor(0, False, False, 0, 0); end; FMainEscPressed := False; RunningEscSensitive := 0; end; procedure TFMain.DoDelete(LeftPanel: boolean; ListView: TGTKListView; Engine: TPanelEngine; DataList: TList); var i, j : integer; SelCount: longint; s, s2, smsg, NextItem1, NextItem2: string; Data: PDataItem; AWorkingThread: TWorkerThread; AFProgress: TFProgress; begin try InternalLock; SelCount := 0; if DataList.Count > 0 then for i := 0 to DataList.Count - 1 do with PDataItem(DataList[i])^ do if Selected and (not UpDir) then Inc(SelCount); if (SelCount = 0) and ((not Assigned(ListView.Selected)) or PDataItem(ListView.Selected.Data)^.UpDir) then begin // WriteLn(integer(mbApply), ', ', integer(Application.MessageBox(LANGNoFilesSelected, [mbOK], mbInfo, mbNone, mbApply))); Application.MessageBox(LANGNoFilesSelected, [mbOK], mbInfo, mbNone, mbOK); Exit; end; Data := nil; if Assigned(ListView.Selected) then Data := ListView.Selected.Data; if SelCount > 0 then begin j := 0; s2 := ''; for i := 0 to DataList.Count - 1 do with PDataItem(DataList[i])^ do if Selected and (not UpDir) then begin s2 := s2 + #10 + FDisplayName; Inc(j); if j = 5 then Break; end; if SelCount > j then s2 := s2 + #10 + '...'; s := Format(LANGSelectedFilesDirectories, [SelCount]); smsg := Format(LANGDoYouReallyWantToDeleteTheSS, [s, s2]); end else begin if Assigned(Data) then if Data^.IsDir then s := Format(LANGDirectoryS, [string(Data^.FDisplayName)]) else s := Format(LANGFileS, [string(Data^.FDisplayName)]); smsg := Format(LANGDoYouReallyWantToDeleteTheS, [s]); end; if Application.MessageBox(QuotePercentStr(smsg), [mbYes, mbNo], mbQuestion, mbNone, mbNo) <> mbYes then Exit; FindNextSelected(ListView, DataList, NextItem1, NextItem2); AWorkingThread := TWorkerThread.Create; DebugMsg(['TFMain.DoDelete: Creating thread...']); AFProgress := TFProgress.Create(Self); try AFProgress.SetNumBars(False); // AFProgress.ProgressBar.Max := 100; AFProgress.ProgressBar.Value := 0; AWorkingThread.ProgressForm := AFProgress; if Assigned(ListView.Selected) then AWorkingThread.SelectedItem := ListView.Selected.Data; AWorkingThread.Engine := Engine; AWorkingThread.LeftPanel := LeftPanel; AWorkingThread.DataList := DataList; AWorkingThread.WorkerProcedure := DeleteFilesWorker; AWorkingThread.Resume; // AFProgress.Run; AFProgress.ParentForm := FMain; AFProgress.ShowModal; ProcessProgressThread(AWorkingThread, AFProgress); AFProgress.Close; { FProgress.ShowModal; Application.ProcessMessages; repeat Sleep(100); Application.ProcessMessages; // FProgress.Run; until False; } { FProgress.ShowModal; DeleteFiles(FProgress, ListView, Engine, LeftPanel, DataList); } finally AFProgress.Free; AWorkingThread.Free; DebugMsg(['TFMain.DoDelete: Freeing thread...']); end; ChangingDir(LeftPanel, Engine.Path, NextItem1, NextItem2); DoRefresh(not LeftPanel, True, True); finally Application.ProcessMessages; InternalUnLock; end; end; procedure TFMain.F8ButtonClick(Sender: TObject); var LeftPanel: boolean; ListView: TGTKListView; Engine: TPanelEngine; DataList: TList; begin try if (Sender = F8Button) or (Sender is TGTKMenuItem) then LeftPanel := LeftLastFocused else if LeftListView.Focused then LeftPanel := True else if RightListView.Focused then LeftPanel := False else Exit; if LeftPanel then begin ListView := LeftListView; Engine := LeftPanelEngine; DataList := LeftPanelData; end else begin ListView := RightListView; Engine := RightPanelEngine; DataList := RightPanelData; end; DoDelete(LeftPanel, ListView, Engine, DataList); except end; end; procedure TFMain.F5ButtonClick(Sender: TObject); var LeftPanel: boolean; ListView: TGTKListView; Engine: TPanelEngine; DataList: TList; begin try if Sender = F5Button then LeftPanel := LeftLastFocused else if LeftListView.Focused then LeftPanel := True else if RightListView.Focused then LeftPanel := False else Exit; if LeftPanel then begin ListView := LeftListView; Engine := LeftPanelEngine; DataList := LeftPanelData; end else begin ListView := RightListView; Engine := RightPanelEngine; DataList := RightPanelData; end; DoCopyMove(LeftPanel, True, Sender = nil, ListView, Engine, DataList); except end; end; procedure TFMain.F6ButtonClick(Sender: TObject); var LeftPanel: boolean; ListView: TGTKListView; Engine: TPanelEngine; DataList: TList; begin try if (Sender = F6Button) or (Sender = F2Button) or (Sender is TGTKMenuItem) then LeftPanel := LeftLastFocused else if LeftListView.Focused then LeftPanel := True else if RightListView.Focused then LeftPanel := False else Exit; if LeftPanel then begin ListView := LeftListView; Engine := LeftPanelEngine; DataList := LeftPanelData; end else begin ListView := RightListView; Engine := RightPanelEngine; DataList := RightPanelData; end; DoCopyMove(LeftPanel, False, (Sender = nil) or (Sender = F2Button) or (Sender is TGTKMenuItem), ListView, Engine, DataList); except end; end; procedure TFMain.DoCopyMove(LeftPanel, CopyMode, ShiftPressed: boolean; ListView: TGTKListView; Engine: TPanelEngine; DataList: TList); var i: integer; SelCount: longint; NewPath, NewPathx, SelSingle, NextItem1, NextItem2: string; AWorkingThread: TWorkerThread; AFProgress: TFProgress; CurrentEngine, OppositeEngine: TPanelEngine; p: PChar; BypassSelAll: boolean; begin try InternalLock; SelCount := 0; if DataList.Count > 0 then for i := 0 to DataList.Count - 1 do with PDataItem(DataList[i])^ do if Selected and (not UpDir) then Inc(SelCount); if (SelCount = 0) and ((not Assigned(ListView.Selected)) or PDataItem(ListView.Selected.Data)^.UpDir) then begin Application.MessageBox(LANGNoFilesSelected, [mbOK], mbInfo, mbNone, mbOK); Exit; end; BypassSelAll := False; SelSingle := ''; if SelCount = 0 then begin SelCount := 1; SelSingle := PDataItem(ListView.Selected.Data)^.FDisplayName; end; if LeftPanel then begin CurrentEngine := LeftPanelEngine; OppositeEngine := RightPanelEngine; end else begin CurrentEngine := RightPanelEngine; OppositeEngine := LeftPanelEngine; end; try FCopyMove := TFCopyMove.Create(Self); if CopyMode then begin FCopyMove.Caption := LANGCopyFiles; FCopyMove.Label1.Caption := Format(LANGCopyDFileDirectoriesTo, [SelCount]); end else begin FCopyMove.Caption := LANGMoveRenameFiles; FCopyMove.Label1.Caption := Format(LANGMoveRenameDFileDirectoriesTo, [SelCount]); end; if ShiftPressed then begin if SelSingle <> '' then begin FCopyMove.Entry.Text := SelSingle; if ConfQuickRenameSkipExt then begin p := gtk_entry_get_text(PGtkEntry(FCopyMove.Entry.FWidget)); if (p <> nil) and (g_utf8_strlen(p, -1) > 0) then begin // DebugMsg(['TFMain.DoCopyMove: p = "', p, '", g_utf8_strlen(p) = ', g_utf8_strlen(p, -1)]); if AnsiPos('.', p) > 0 then begin FCopyMove.Entry.SelectRegion(0, g_utf8_strlen(p, -1) - g_utf8_strlen(PChar(ExtractFileExt(p)), -1)); BypassSelAll := True; end; end; end; end else FCopyMove.Entry.Text := '*.*'; end else FCopyMove.Entry.Text := OppositeEngine.Path; { if OppositeEngine is TLocalTreeEngine then FCopyMove.Entry.Text := OppositeEngine.Path else FCopyMove.Entry.Text := Format(ConstFullPathFormatStr, [OppositeEngine.GetPrefix, OppositeEngine.Path]); } if not BypassSelAll then FCopyMove.Entry.SelectAll; if FCopyMove.Run <> mbOK then Exit; NewPathx := FCopyMove.Entry.Text; NewPath := UTF8ToStr(FCopyMove.Entry.Text); finally FCopyMove.Free; end; DebugMsg(['TFMain.DoCopyMove: NewPath = "', NewPath, '"']); NextItem1 := ''; NextItem2 := ''; FindNextSelected(ListView, DataList, NextItem1, NextItem2); DebugMsg(['TFMain.DoCopyMove: FindNextSelected, NextItem1 = "', NextItem1, '", NextItem2 = "', NextItem2, '"']); if ShiftPressed then NextItem1 := NewPathx; AWorkingThread := TWorkerThread.Create; DebugMsg(['TFMain.DoCopyMove: Creating thread...']); AFProgress := TFProgress.Create(Self); try if CopyMode then AFProgress.Label1.Caption := LANGCopySC else AFProgress.Label1.Caption := LANGMoveRenameSC; AFProgress.SetNumBars(True); AFProgress.ProgressBar.Value := 0; AWorkingThread.ProgressForm := AFProgress; if Assigned(ListView.Selected) then AWorkingThread.SelectedItem := ListView.Selected.Data; // Determine target engine according to absolute/relative path if (NewPath[1] = '/') or (NewPath[1] = '~') then AWorkingThread.DestEngine := OppositeEngine else AWorkingThread.DestEngine := Engine; AWorkingThread.SrcEngine := Engine; // Determine on which engine the entered path is { if Pos(ConstPathDelim, NewPath) = 0 then begin if OppositeEngine is TLocalTreeEngine then AWorkingThread.DestEngine := OppositeEngine else if CurrentEngine is TLocalTreeEngine then AWorkingThread.DestEngine := CurrentEngine else begin Application.MessageBox(LANGCannotDetermineDestinationEngine, [mbOK], mbError, mbOK, mbOK); Exit; end; end else begin s := Copy(NewPath, 1, Pos(ConstPathDelim, NewPath) - 1); if s = OppositeEngine.GetPrefix then AWorkingThread.DestEngine := OppositeEngine else if s = CurrentEngine.GetPrefix then AWorkingThread.DestEngine := CurrentEngine else begin Application.MessageBox(LANGCannotDetermineDestinationEngine, [mbOK], mbError, mbOK, mbOK); Exit; end; end; } if AWorkingThread = nil then begin // Something went terribly wrong Application.MessageBox(LANGCannotDetermineDestinationEngine, [mbOK], mbError, mbOK, mbOK); Exit; end; // Strip the engine prefix // if Pos(ConstPathDelim, NewPath) > 0 then Delete(NewPath, 1, Pos(ConstPathDelim, NewPath)); AWorkingThread.LeftPanel := LeftPanel; AWorkingThread.DataList := DataList; AWorkingThread.WorkerProcedure := CopyFilesWorker; // AWorkingThread.WorkerProcedure := DummyThreadWorker; AWorkingThread.ParamBool3 := CopyMode; AWorkingThread.ParamBool4 := False; AWorkingThread.ParamString1 := NewPath; AWorkingThread.ParamDataItem1 := nil; AFProgress.ParentForm := FMain; AFProgress.ShowModal; Application.ProcessMessages; DebugMsg(['*** Copy: AWorkingThread.Resume']); // DebugMsg(['*** Copy: xg_thread_supported = ', xg_thread_supported()]); AWorkingThread.Resume; // AWorkingThread.WorkerProcedure(AWorkingThread); DebugMsg(['*** Copy: AWorkingThread.Resumed.']); ProcessProgressThread(AWorkingThread, AFProgress); // DebugMsg(['***************************x1']); AFProgress.Close; // Beep; finally // DebugMsg(['** ddddddddddddddd ???']); AFProgress.Free; DebugMsg(['TFMain.DoCopyMove: Freeing thread...']); AWorkingThread.Free; end; ChangingDir(LeftPanel, Engine.Path, NextItem1, NextItem2); DoRefresh(not LeftPanel, True, False); finally DebugMsg(['** TFMain.DoCopyMove finished']); Application.ProcessMessages; InternalUnLock; end; end; procedure TFMain.ListViewDblClick(Sender: TObject; Button: TGDKMouseButton; Shift: TShiftState; X, Y: Integer; var Accept: boolean); begin DebugMsg(['DblClick']); Accept := True; // This causes selecting the item if clicked is different than selected if (Sender as TGTKListView).GetItemAtPos(X, Y) <> (Sender as TGTKListView).Selected then Exit; Accept := False; DebugMsg(['DblClick OK']); if not (Sender as TGTKListView).Focused then (Sender as TGTKListView).SetFocus; if Assigned((Sender as TGTKListView).Selected) and Assigned((Sender as TGTKListView).Selected.Data) then ActivateItem((Sender as TGTKListView).Selected.Index); end; procedure TFMain.ListViewMouseDown(Sender: TObject; Button: TGDKMouseButton; Shift: TShiftState; X, Y: Integer; var Accept: boolean); var Item: TGTKListItem; Click: TDateTime; Data: PDataItem; AEngine: TPanelEngine; begin try InternalLock; PanelRightMouseInProgress := False; // DebugMsg(['ListViewMouseDown, X = ', X, ', Y = ', Y]); if Button = mbLeft then begin Click := Now; if LastClick + ConfDblClickDelay/MSecsPerDay > Click then begin Accept := False; InplaceEditTimer.Enabled := False; LastClick := 0; ListViewDblClick(Sender, Button, Shift, X, Y, Accept); Exit; end; LastClick := Click; DebugMsg(['Click, Focus = ', (Sender as TGTKControl).Focused]); if not (Sender as TGTKListView).Focused then Exit; // (Sender as TGTKListView).SetFocus; Item := (Sender as TGTKListView).GetItemAtPos(X, Y); if (Item = (Sender as TGTKListView).Selected) and Assigned(Item) and Assigned((Sender as TGTKListView).Selected) and Assigned(Item.Data) and (not PDataItem(Item.Data)^.UpDir) and (Sender as TGTKListView).Focused and (not ConfDisableMouseRename) then begin DebugMsg(['Quick-Rename']); InplaceEditTimer.Interval := ConfQuickRenameDelay; InplaceEditTimer.Enabled := True; InplaceEditItem := Item; end; Accept := True; end else if Button = mbRight then begin if not (Sender as TGTKListView).Focused then (Sender as TGTKListView).SetFocus; Item := (Sender as TGTKListView).GetItemAtPos(X, Y); if Assigned(Item) then begin Item.Selected := True; Item.SetCursor(0, False, not Application.GTKVersion_2_2_0_Up, 0.5, 0); end; // Show file popup menu or start selection mode, depending on ConfRightClickSelect if ConfRightClickSelect then begin if (Item <> nil) and (Item.Data <> nil) then begin Data := PDataItem(Item.Data); if not Data^.UpDir then begin PanelRightMouseSelMode := not Data^.Selected; Data^.Selected := PanelRightMouseSelMode; Item.RedrawRow; UpdatePanelInfoDown(Sender = LeftListView); PanelRightMouseInProgress := True; RightMouseSelectPopupTimer.Interval := ConfQuickRenameDelay; RightMouseSelectPopupTimer.Enabled := True; end; end; end else if (Item <> nil) then FilePopupMenu.PopUp; Accept := False; end else if Button = mbMiddle then begin if not (Sender as TGTKListView).Focused then (Sender as TGTKListView).SetFocus; Item := (Sender as TGTKListView).GetItemAtPos(X, Y); if Assigned(Item) then begin Item.Selected := True; Item.SetCursor(0, False, not Application.GTKVersion_2_2_0_Up, 0.5, 0); end; // Open directory in background tab if (Item <> nil) and (Item.Data <> nil) then begin Data := PDataItem(Item.Data); if Sender = LeftListView then AEngine := LeftPanelEngine else AEngine := RightPanelEngine; if (not Data^.UpDir) and (Data^.IsDir) then NewTab(Sender = LeftListView, True, IncludeTrailingPathDelimiter(AEngine.Path) + Data^.FName); end; Accept := False; end; finally Application.ProcessMessages; InternalUnLock; end; end; procedure TFMain.ListViewMouseMove(Sender: TObject; Button: TGDKMouseButton; Shift: TShiftState; X, Y: Integer; var Accept: boolean); var Item: TGTKListItem; Data: PDataItem; begin Accept := True; if not ((Sender is TGTKListView) and ConfRightClickSelect) then Exit; if (Button = mbRight) and PanelRightMouseInProgress then begin Item := (Sender as TGTKListView).GetItemAtPos(X, Y); if (Item <> nil) and (Item.Data <> nil) and (not Item.Selected) then begin Data := PDataItem(Item.Data); if not Data^.UpDir then begin RightMouseSelectPopupTimer.Enabled := False; Data^.Selected := PanelRightMouseSelMode; Item.Selected := True; Item.SetCursor(0, False, not Application.GTKVersion_2_2_0_Up, 0.5, 0); UpdatePanelInfoDown(Sender = LeftListView); end; end; end else PanelRightMouseInProgress := False; end; procedure TFMain.RightMouseSelectPopupTimerTimer(Sender: TObject); var AListView: TGTKListView; Data: PDataItem; begin RightMouseSelectPopupTimer.Enabled := False; if LeftListView.Focused then AListView := LeftListView else if RightListView.Focused then AListView := RightListView else Exit; if (AListView.Selected <> nil) then begin Data := AListView.Selected.Data; // Explicitly select the item before showing the popup menu if (Data <> nil) and (not Data^.UpDir) then begin Data^.Selected := True; AListView.Selected.RedrawRow; UpdatePanelInfoDown(LeftListView.Focused); FilePopupMenu.PopUp; end; end; end; procedure TFMain.InplaceEditTimerTimer(Sender: TObject); var LeftPanel: boolean; ListView: TGTKListView; begin InplaceEditTimer.Enabled := False; try LeftPanel := LeftLastFocused; if LeftPanel then begin ListView := LeftListView; end else begin ListView := RightListView; end; if ListView.Selected <> InplaceEditItem then Exit; DoQuickRename(LeftPanel, ListView, False); except end; end; procedure TFMain.DoQuickRename(LeftPanel: boolean; ListView: TGTKListView; const CalledFromKey: boolean); var i: integer; s: PChar; begin if (not Assigned(ListView.Selected)) or (not Assigned(ListView.Selected.Data)) or PDataItem(ListView.Selected.Data)^.UpDir or Editing then Exit; Editing := True; if CalledFromKey then InplaceEditItem := ListView.Selected; for i := 1 to ConstNumPanelColumns do if ColumnSortIDs[i] in [1, 2] then begin ListView.Columns[i - 1].SetProperty('editable', 1); ListView.StartEditing(i - 1); if ConfQuickRenameSkipExt and (ListView.Columns[i - 1].FColumn^.editable_widget <> nil) then begin s := gtk_entry_get_text(PGtkEntry(ListView.Columns[i - 1].FColumn^.editable_widget)); if (s <> nil) and (g_utf8_strlen(s, -1) > 0) then begin // DebugMsg(['TFMain.DoQuickRename: s = "', s, '", g_utf8_strlen(s) = ', g_utf8_strlen(s, -1)]); if AnsiPos('.', s) > 0 then gtk_editable_select_region(PGtkEditable(ListView.Columns[i - 1].FColumn^.editable_widget), 0, g_utf8_strlen(s, -1) - g_utf8_strlen(PChar(ExtractFileExt(s)), -1)); end; end; Break; end; end; procedure TFMain.ListViewEdited(Sender: TObject; Column: TGTKTreeViewColumn; Item: TGTKListItem; var NewText: string; var AllowChange: boolean; var DataColumn: integer); var AListView: TGTKListView; DataList: TList; Engine: TPanelEngine; AWorkingThread: TWorkerThread; AFProgress: TFProgress; i: integer; s1, s2: string; begin try InternalLock; AListView := (((Sender as TGTKTreeViewColumn).Parent as TGTKTreeViewColumns).Parent as TGTKListView); for i := 1 to ConstNumPanelColumns do if ColumnSortIDs[i] in [1, 2] then begin AListView.Columns[i - 1].SetProperty('editable', 0); Break; end; if AListView = LeftListView then begin Engine := LeftPanelEngine; DataList := LeftPanelData; end else begin Engine := RightPanelEngine; DataList := RightPanelData; end; Editing := False; DebugMsg(['TFMain.ListViewEdited: FDisplayName = "', String(PDataItem(InplaceEditItem.Data)^.FDisplayName), '", NewText = "', NewText, '"']); if (AListView.Selected = InplaceEditItem) and (AListView.Selected.Data = InplaceEditItem.Data) and (String(PDataItem(InplaceEditItem.Data)^.FDisplayName) <> NewText) then begin AWorkingThread := TWorkerThread.Create; DebugMsg(['TFMain.ListViewEdited: Creating thread...']); AFProgress := TFProgress.Create(Self); try AFProgress.SetNumBars(True); AFProgress.ProgressBar.Value := 0; AFProgress.Label1.Caption := LANGMoveRenameSC; AWorkingThread.ProgressForm := AFProgress; if Assigned(AListView.Selected) then AWorkingThread.SelectedItem := AListView.Selected.Data; AWorkingThread.SrcEngine := Engine; AWorkingThread.DestEngine := Engine; AWorkingThread.LeftPanel := AListView = LeftListView; AWorkingThread.DataList := DataList; AWorkingThread.WorkerProcedure := CopyFilesWorker; AWorkingThread.ParamBool3 := False; AWorkingThread.ParamBool4 := True; AWorkingThread.ParamString1 := UTF8ToStr(NewText); AWorkingThread.ParamDataItem1 := InplaceEditItem.Data; AWorkingThread.Resume; // AWorkingThread.WorkerProcedure(AWorkingThread); AFProgress.ParentForm := FMain; AFProgress.ShowModal; ProcessProgressThread(AWorkingThread, AFProgress); AFProgress.Close; finally AFProgress.Free; DebugMsg(['TFMain.ListViewEdited: Freeing thread...']); AWorkingThread.Free; end; s1 := ''; s2 := ''; FindNextSelected(AListView, DataList, s1, s2); DebugMsg(['TFMain.ListViewEdited: FindNextSelected, s1 = "', s1, '", s2 = "', s2, '"']); ChangingDir(AListView = LeftListView, Engine.Path, {String(PDataItem(InplaceEditItem.Data)^.AName),} NewText, s2); DoRefresh(AListView <> LeftListView, True, True); end; AListView.SetFocus; finally Application.ProcessMessages; InternalUnLock; end; end; procedure TFMain.ListViewSelectionChanged(Sender: TObject); var i: integer; // AListView: TGTKListView; begin if Editing and ((Sender as TGTKListView).Selected <> InplaceEditItem) then begin Editing := False; for i := 1 to ConstNumPanelColumns do if ColumnSortIDs[i] in [1, 2] then begin (Sender as TGTKListView).Columns[i - 1].SetProperty('editable', 0); Break; end; end; if QuickFind then DeactivateQuickFind(Sender = LeftListView); SaveCursorPositionTabbed(Sender = LeftListView); { if Application.GTKVersion_2_6_0_Up then begin AListView := Sender as TGTKListView; if Assigned(AListView) and Assigned(AListView.Selected) and Assigned(AListView.Selected.Data) and Assigned(PDataItem(AListView.Selected.Data)^.ItemColor) then gtk_widget_modify_text(AListView.FWidget, GTK_STATE_SELECTED, PDataItem(AListView.Selected.Data)^.ItemColor); end; } end; procedure TFMain.SaveCursorPositionTabbed(LeftPanel: boolean); begin if LeftPanel then begin if LeftPanelNotebook.Visible and (LeftPathsHighlight.Count > LeftPanelNotebook.PageIndex) and (LeftPanelNotebook.PageIndex >= 0) and Assigned(LeftListView.Selected) and Assigned(LeftListView.Selected.Data) then LeftPathsHighlight[LeftPanelNotebook.PageIndex] := PDataItem(LeftListView.Selected.Data)^.FName; end else if RightPanelNotebook.Visible and (RightPathsHighlight.Count > RightPanelNotebook.PageIndex) and (RightPanelNotebook.PageIndex >= 0) and Assigned(RightListView.Selected) and Assigned(RightListView.Selected.Data) then RightPathsHighlight[RightPanelNotebook.PageIndex] := PDataItem(RightListView.Selected.Data)^.FName; end; procedure TFMain.ActivateQuickFind(LeftPanel: boolean); var Entry: TGTKEntry; begin QuickFind := True; if LeftPanel then begin Entry := LeftQuickFindEntry; LeftQuickFindVBox.Show; end else begin Entry := RightQuickFindEntry; RightQuickFindVBox.Show; end; Entry.Text := ''; end; procedure TFMain.QuickFindEntryEnter(Sender: TObject; var Accept: boolean); begin Accept := False; (Sender as TGTKControl).SetFocus; end; procedure TFMain.DeactivateQuickFind(LeftPanel: boolean); begin QuickFind := False; if LeftPanel then LeftQuickFindVBox.Hide else RightQuickFindVBox.Hide; end; function TFMain.QuickFindSendKey(LeftPanel: boolean; Key: word): boolean; var Entry: TGTKEntry; s, NewText: string; i: integer; AListView: TGTKListView; DataList: TList; Data: PDataItem; OldSelectionChangedEvent: TNotifyEvent; g: PChar; NewIndex, StartIndex: Longint; begin Result := False; if not QuickFind then Exit; if LeftPanel then begin Entry := LeftQuickFindEntry; AListView := LeftListView; DataList := LeftPanelData; end else begin Entry := RightQuickFindEntry; AListView := RightListView; DataList := RightPanelData; end; // DebugMsg(['TFMain.QuickFindSendKey: Key = ', Key, ', GDK_Down = ', GDK_Down, ', GDK_Up = ', GDK_Up]); if Key = GDK_BACKSPACE then begin if g_utf8_strlen(PChar(Entry.Text), -1) > 0 then begin // DebugMsg(['TFMain.QuickFindSendKey: before delete: "', Entry.Text, '", ansi = "', UTF8ToStr(Entry.Text), '"']); g := malloc(Length(Entry.Text)); memset(g, 0, Length(Entry.Text)); g_utf8_strncpy(g, PChar(Entry.Text), g_utf8_strlen(PChar(Entry.Text), -1) - 1); // DebugMsg(['TFMain.QuickFindSendKey: after delete: "', g, '", ansi = "', UTF8ToStr(g), '"']); Entry.Text := g; libc_free(g); end; NewText := Entry.Text; end else if (Key = GDK_Down) or (Key = GDK_Up) then begin if Length(Entry.Text) = 0 then begin DeactivateQuickFind(LeftPanel); Result := False; Exit; end else NewText := Entry.Text; end else begin s := UTF8Encode(WideChar(KeyValToUnicode(Key))); if (Length(s) = 0) or (s = #0) then Exit; NewText := Entry.Text + s; end; if (DataList.Count > 0) and (Length(NewText) > 0) then begin NewIndex := -1; StartIndex := (AListView.ConvertToSorted(AListView.Selected.Index) + Ord(Key = GDK_Down) - Ord(Key = GDK_Up)) mod DataList.Count; if StartIndex < 0 then StartIndex := 0; if StartIndex > DataList.Count - 1 then StartIndex := DataList.Count - 1; // DebugMsg(['TFMain.QuickFindSendKey: StartIndex = ', StartIndex]); if Key <> GDK_Up then begin // Search down for i := StartIndex to DataList.Count - 1 do begin Data := DataList[AListView.ConvertFromSorted(i)]; if Assigned(Data) and (not Data^.UpDir) and (Pos(WideUpperCase(NewText), WideUpperCase(Data^.FDisplayName)) = 1) then begin NewIndex := i; Break; end; end; if NewIndex < 0 then for i := 0 to StartIndex do begin Data := DataList[AListView.ConvertFromSorted(i)]; if Assigned(Data) and (not Data^.UpDir) and (Pos(WideUpperCase(NewText), WideUpperCase(Data^.FDisplayName)) = 1) then begin NewIndex := i; Break; end; end; end else begin // Search up for i := StartIndex downto 0 do begin Data := DataList[AListView.ConvertFromSorted(i)]; if Assigned(Data) and (not Data^.UpDir) and (Pos(WideUpperCase(NewText), WideUpperCase(Data^.FDisplayName)) = 1) then begin NewIndex := i; Break; end; end; if NewIndex < 0 then for i := DataList.Count - 1 downto StartIndex do begin Data := DataList[AListView.ConvertFromSorted(i)]; if Assigned(Data) and (not Data^.UpDir) and (Pos(WideUpperCase(NewText), WideUpperCase(Data^.FDisplayName)) = 1) then begin NewIndex := i; Break; end; end; end; if NewIndex >= 0 then begin OldSelectionChangedEvent := AListView.OnSelectionChanged; AListView.OnSelectionChanged := nil; AListView.Selected := AListView.Items[AListView.ConvertFromSorted(NewIndex)]; AListView.Items[AListView.ConvertFromSorted(NewIndex)].SetCursor(0, False, False, 0, 0); SaveCursorPositionTabbed(LeftPanel); AListView.OnSelectionChanged := OldSelectionChangedEvent; Entry.Text := NewText; end else Beep; Result := True; end; end; (********************************************************************************************************************************) (********************************************************************************************************************************) procedure TFMain.miVerifyChecksumsClick(Sender: TObject); var i, SelCount: integer; b, LeftPanel: boolean; AListView: TGTKListView; Engine: TPanelEngine; DataList: TList; begin try InternalLock; if LeftListView.Focused then LeftPanel := True else if RightListView.Focused then LeftPanel := False else LeftPanel := LeftLastFocused; if LeftPanel then begin AListView := LeftListView; Engine := LeftPanelEngine; DataList := LeftPanelData; end else begin AListView := RightListView; Engine := RightPanelEngine; DataList := RightPanelData; end; SelCount := 0; if DataList.Count > 0 then for i := 0 to DataList.Count - 1 do with PDataItem(DataList[i])^ do if Selected and (not UpDir) and (not IsDir) then Inc(SelCount); if (SelCount = 0) and ((not Assigned(AListView.Selected)) or PDataItem(AListView.Selected.Data)^.UpDir or PDataItem(AListView.Selected.Data)^.IsDir) then begin Application.MessageBox(LANGYouMustSelectAValidFile, [mbOK], mbError, mbNone, mbOK); Exit; end; try FChecksum := TFChecksum.Create(Self); FChecksum.Engine := Engine; FChecksum.DataList := DataList; FChecksum.AListView := AListView; if SelCount = 0 then b := FChecksum.ProcessFile(IncludeTrailingPathDelimiter(Engine.Path) + string(PDataItem(AListView.Selected.Data)^.FName)) else begin b := False; for i := 0 to DataList.Count - 1 do with PDataItem(DataList[i])^ do if (not UpDir) and (not IsDir) and Selected then {$B+} b := b or FChecksum.ProcessFile(IncludeTrailingPathDelimiter(Engine.Path) + string(FName)); {$B-} end; if b { and (FChecksum.List.Count > 0) } then FChecksum.Run; finally FChecksum.Free; end; finally Application.ProcessMessages; InternalLockInit(False); end; end; (********************************************************************************************************************************) procedure TFMain.miCreateChecksumsClick(Sender: TObject); var i, SelCount: integer; LeftPanel: boolean; AListView: TGTKListView; Engine: TPanelEngine; DataList: TList; begin try InternalLock; if LeftListView.Focused then LeftPanel := True else if RightListView.Focused then LeftPanel := False else LeftPanel := LeftLastFocused; if LeftPanel then begin AListView := LeftListView; Engine := LeftPanelEngine; DataList := LeftPanelData; end else begin AListView := RightListView; Engine := RightPanelEngine; DataList := RightPanelData; end; SelCount := 0; if DataList.Count > 0 then for i := 0 to DataList.Count - 1 do with PDataItem(DataList[i])^ do if Selected and (not UpDir) and (not IsDir) then Inc(SelCount); if (SelCount = 0) and ((not Assigned(AListView.Selected)) or PDataItem(AListView.Selected.Data)^.UpDir or PDataItem(AListView.Selected.Data)^.IsDir) then begin Application.MessageBox(LANGYouMustSelectAtLeastOneFileToCalculateChecksum, [mbOK], mbError, mbNone, mbOK); Exit; end; try FChecksumDruid := TFChecksumDruid.Create(Self); Engine.ExplicitChDir(Engine.Path); FChecksumDruid.Engine := Engine; if Engine.Path = '/' then FChecksumDruid.DirName := 'root' else FChecksumDruid.DirName := ExtractFileName(ExcludeTrailingPathDelimiter(Engine.Path)); if SelCount = 0 then FChecksumDruid.FileNames.Add(IncludeTrailingPathDelimiter(Engine.Path) + string(PDataItem(AListView.Selected.Data)^.FName)) else for i := 0 to DataList.Count - 1 do with PDataItem(DataList[i])^ do if (not UpDir) and (not IsDir) and Selected then FChecksumDruid.FileNames.Add(IncludeTrailingPathDelimiter(Engine.Path) + string(FName)); FChecksumDruid.Run; finally if FChecksumDruid.SeparateFileCheckBox.Checked then DoRefresh(AListView = LeftListView, True, True) else ChangingDir(AListView = LeftListView, Engine.Path, FChecksumDruid.FileNameEntry.Text, PDataItem(AListView.Selected.Data)^.FName); DoRefresh(AListView <> LeftListView, True, True); FChecksumDruid.Free; Engine.ExplicitChDir('/'); end; finally Application.ProcessMessages; InternalLockInit(False); end; end; (********************************************************************************************************************************) (********************************************************************************************************************************) procedure TFMain.miMergeFilesClick(Sender: TObject); var LeftPanel, HasInitialCRC: boolean; AListView: TGTKListView; Engine: TPanelEngine; FilePath, s, TargetName: string; TargetCRC: LongWord; TargetSize: Int64; AWorkingThread: TWorkerThread; AFProgress: TFProgress; begin try InternalLock; if LeftListView.Focused then LeftPanel := True else if RightListView.Focused then LeftPanel := False else LeftPanel := LeftLastFocused; if LeftPanel then begin AListView := LeftListView; Engine := LeftPanelEngine; end else begin AListView := RightListView; Engine := RightPanelEngine; end; if (not Assigned(AListView.Selected)) or (not Assigned(AListView.Selected.Data)) or PDataItem(AListView.Selected.Data)^.IsDir or PDataItem(AListView.Selected.Data)^.UpDir then begin Application.MessageBox(LANGYouMustSelectAValidFile, [mbOK], mbError, mbNone, mbOK); Exit; end; FilePath := ''; try FNewDir := TFNewDir.Create(Self); FNewDir.Caption := LANGMergeCaption; FNewDir.Label1.SetSizeRequest(500, -1); FNewDir.Label1.Caption := Format(LANGMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory, [PDataItem(AListView.Selected.Data)^.FDisplayName]); if LeftPanel then FNewDir.Entry.Text := StrToUTF8(RightPanelEngine.Path) else FNewDir.Entry.Text := StrToUTF8(LeftPanelEngine.Path); FNewDir.Entry.SelectAll; if FNewDir.Run = mbOK then FilePath := UTF8ToStr(FNewDir.Entry.Text) else Exit; finally FNewDir.Free; end; if FilePath = '' then Exit; AWorkingThread := TWorkerThread.Create; DebugMsg(['TFMain.miMergeFilesClick: Creating thread...']); AFProgress := TFProgress.Create(Self); try AWorkingThread.ParamString1 := FilePath; AWorkingThread.ParamString2 := IncludeTrailingPathDelimiter(Engine.Path) + PDataItem(AListView.Selected.Data)^.FName; HasInitialCRC := CRCGetInfo(AWorkingThread.ParamString2, Engine, TargetName, TargetCRC, TargetSize); AWorkingThread.ParamString3 := TargetName; AWorkingThread.ParamBool1 := HasInitialCRC; AWorkingThread.ParamLongWord1 := TargetCRC; AWorkingThread.ParamInt64 := TargetSize; AFProgress.SetNumBars(HasInitialCRC); AFProgress.ProgressBar.Value := 0; AFProgress.Label1.Caption := LANGMergeSC; AWorkingThread.ProgressForm := AFProgress; AWorkingThread.Engine := Engine; AWorkingThread.LeftPanel := LeftPanel; AWorkingThread.WorkerProcedure := MergeFilesWorker; AWorkingThread.Resume; AFProgress.ParentForm := FMain; AFProgress.ShowModal; ProcessProgressThread(AWorkingThread, AFProgress); AFProgress.Close; s := AWorkingThread.ParamString3; finally AFProgress.Free; DebugMsg(['TFMain.miMergeFilesClick: Freeing thread...']); AWorkingThread.Free; end; ChangingDir(LeftPanel, Engine.Path, s, PDataItem(AListView.Selected.Data)^.FName); DoRefresh(not LeftPanel, True, True); finally Application.ProcessMessages; InternalLockInit(False); end; end; (********************************************************************************************************************************) procedure TFMain.miSplitFileClick(Sender: TObject); var LeftPanel: boolean; AListView: TGTKListView; Engine: TPanelEngine; FilePath: string; DeleteTarget: boolean; MaxSize: Int64; i: integer; AWorkingThread: TWorkerThread; AFProgress: TFProgress; begin try InternalLock; if LeftListView.Focused then LeftPanel := True else if RightListView.Focused then LeftPanel := False else LeftPanel := LeftLastFocused; if LeftPanel then begin AListView := LeftListView; Engine := LeftPanelEngine; end else begin AListView := RightListView; Engine := RightPanelEngine; end; if (not Assigned(AListView.Selected)) or (not Assigned(AListView.Selected.Data)) or PDataItem(AListView.Selected.Data)^.IsDir or PDataItem(AListView.Selected.Data)^.UpDir then begin Application.MessageBox(LANGYouMustSelectAValidFile, [mbOK], mbError, mbNone, mbOK); Exit; end; FilePath := ''; try FSplitFile := TFSplitFile.Create(Self); FSplitFile.Label1.Caption := Format(LANGSplitTheFileSToDirectory, [PDataItem(AListView.Selected.Data)^.FDisplayName]); FSplitFile.Label1.UseUnderline := True; if LeftPanel then FSplitFile.Entry.Text := StrToUTF8(RightPanelEngine.Path) else FSplitFile.Entry.Text := StrToUTF8(LeftPanelEngine.Path); FSplitFile.Entry.SelectAll; if FSplitFile.Run = mbOK then FilePath := UTF8ToStr(FSplitFile.Entry.Text) else Exit; DeleteTarget := FSplitFile.DeleteTargetCheckBox.Checked; MaxSize := 0; for i := 1 to Length(SplitConsts) do if Trim(WideUpperCase(SplitConsts[i].Title)) = Trim(WideUpperCase(FSplitFile.SizeCombo.Entry.Text)) then begin MaxSize := SplitConsts[i].PartSize; Break; end; if MaxSize = 0 then MaxSize := GetStrSize(FSplitFile.SizeCombo.Entry.Text); finally FSplitFile.Free; end; if FilePath = '' then Exit; AWorkingThread := TWorkerThread.Create; DebugMsg(['TFMain.miSplitFileClick: Creating thread...']); AFProgress := TFProgress.Create(Self); try AWorkingThread.ParamString1 := IncludeTrailingPathDelimiter(Engine.Path) + PDataItem(AListView.Selected.Data)^.FName; AWorkingThread.ParamString2 := FilePath; AWorkingThread.ParamBool1 := DeleteTarget; AWorkingThread.ParamInt64 := MaxSize; AFProgress.SetNumBars(MaxSize > 0); AFProgress.ProgressBar.Value := 0; AFProgress.Label1.Caption := LANGSplitSC; AWorkingThread.ProgressForm := AFProgress; AWorkingThread.Engine := Engine; AWorkingThread.LeftPanel := LeftPanel; AWorkingThread.WorkerProcedure := SplitFilesWorker; AWorkingThread.Resume; AFProgress.ParentForm := FMain; AFProgress.ShowModal; ProcessProgressThread(AWorkingThread, AFProgress); AFProgress.Close; finally AFProgress.Free; DebugMsg(['TFMain.miSplitFileClick: Freeing thread...']); AWorkingThread.Free; end; DoRefresh(LeftPanel, True, True); DoRefresh(not LeftPanel, True, True); finally Application.ProcessMessages; InternalLockInit(False); end; end; (********************************************************************************************************************************) (********************************************************************************************************************************) procedure TFMain.SwitchOtherPanel(LeftPanel, RequestNewAltO: boolean); var AListView: TGTKListView; SrcEngine, OrigSrcEngine, TargetEngine: TPanelEngine; s: string; DontShowAgain: boolean; begin if LeftPanel then begin AListView := LeftListView; SrcEngine := LeftPanelEngine; TargetEngine := RightPanelEngine; end else begin AListView := RightListView; SrcEngine := RightPanelEngine; TargetEngine := LeftPanelEngine; end; OrigSrcEngine := SrcEngine; if not (SrcEngine is TLocalTreeEngine) then begin if ConfSwitchOtherPanelBehaviour < 0 then begin MessageBoxShowOnce(PGtkWindow(FWidget), LANGSwitchOtherPanelWarning, LANGDontShowAgain, DontShowAgain, [mbOK], mbWarning, mbOK, mbOK); if DontShowAgain then begin ConfSwitchOtherPanelBehaviour := 1; WriteMainGUISettings; end; end; // Exit; end; // don't change dir in VFS engines while not (SrcEngine is TLocalTreeEngine) do SrcEngine := SrcEngine.ParentEngine; while not (TargetEngine is TLocalTreeEngine) do TargetEngine := TargetEngine.ParentEngine; if (not ConfNewStyleAltO) and (not RequestNewAltO) then begin s := ExcludeTrailingPathDelimiter(SrcEngine.Path); if OrigSrcEngine = SrcEngine then begin if (not Assigned(AListView.Selected)) or (not Assigned(AListView.Selected.Data)) or PDataItem(AListView.Selected.Data)^.UpDir or (not PDataItem(AListView.Selected.Data)^.IsDir) then begin if Length(s) > 1 then s := IncludeTrailingPathDelimiter(Copy(s, 1, LastDelimiter(PathDelim, s))); end else s := IncludeTrailingPathDelimiter(IncludeTrailingPathDelimiter(s) + PDataItem(AListView.Selected.Data)^.FName); end; if IncludeTrailingPathDelimiter(TargetEngine.Path) <> s then begin if LeftPanel then RightPanelEngine := TargetEngine else LeftPanelEngine := TargetEngine; ChangingDir(not LeftPanel, s); end; // Move one item down if (OrigSrcEngine = SrcEngine) and Assigned(AListView.Selected) and (AListView.ConvertToSorted(AListView.Selected.Index) < AListView.Items.Count - 1) then begin AListView.Selected := AListView.Items[AListView.ConvertFromSorted(AListView.ConvertToSorted(AListView.Selected.Index) + 1)]; AListView.Selected.SetCursor(0, False, False, 0, 0); end; end else begin if IncludeTrailingPathDelimiter(TargetEngine.Path) <> IncludeTrailingPathDelimiter(SrcEngine.Path) then begin if LeftPanel then RightPanelEngine := TargetEngine else LeftPanelEngine := TargetEngine; ChangingDir(not LeftPanel, SrcEngine.Path); end; end; end; procedure TFMain.miShowDotFilesClick(Sender: TObject); begin ConfShowDotFiles := miShowDotFiles.Checked; DoRefresh(True, True, True); DoRefresh(False, True, True); end; procedure TFMain.F3F4ButtonClick(Sender: TObject); var LeftPanel: boolean; AListView: TGTKListView; begin try InternalLock; if LeftListView.Focused then LeftPanel := True else if RightListView.Focused then LeftPanel := False else LeftPanel := LeftLastFocused; if LeftPanel then begin AListView := LeftListView; end else begin AListView := RightListView; end; if (not Assigned(AListView.Selected)) or (not Assigned(AListView.Selected.Data)) or PDataItem(AListView.Selected.Data)^.IsDir or PDataItem(AListView.Selected.Data)^.UpDir then begin Application.MessageBox(LANGYouMustSelectAValidFile, [mbOK], mbError, mbNone, mbOK); Exit; end; EditViewFile(LeftPanel, AListView, (Sender = F3Button) or ((Sender is TGTKMenuItem) and (Integer((Sender as TGTKMenuItem).Data) = 200)), False); finally Application.ProcessMessages; InternalLockInit(False); end; end; procedure TFMain.EditViewFile(LeftPanel: boolean; AListView: TGTKListView; View, NewFile: boolean); var ANewDir: TFNewDir; Engine: TPanelEngine; AFile: string; begin try InternalLock; if LeftPanel then Engine := LeftPanelEngine else Engine := RightPanelEngine; if NewFile then begin ANewDir := TFNewDir.Create(Self); try ANewDir.Caption := LANGEdit; ANewDir.Label1.Caption := LANGEnterFilenameToEdit; ANewDir.Label1.UseUnderline := True; ANewDir.Label1.FocusControl := ANewDir.Entry; if Assigned(AListView.Selected) and Assigned(AListView.Selected.Data) and (not PDataItem(AListView.Selected.Data)^.IsDir) and (not PDataItem(AListView.Selected.Data)^.UpDir) then ANewDir.Entry.Text := PDataItem(AListView.Selected.Data)^.FDisplayName else ANewDir.Entry.Text := ''; if Length(ANewDir.Entry.Text) > 0 then ANewDir.Entry.SelectAll; if ANewDir.Run <> mbOK then Exit; AFile := IncludeTrailingPathDelimiter(Engine.Path) + UTF8ToStr(ANewDir.Entry.Text); finally ANewDir.Free; end; end else AFile := IncludeTrailingPathDelimiter(Engine.Path) + PDataItem(AListView.Selected.Data)^.FName; EditViewFileInternal(Self, AFile, Engine, View, NewFile); finally Application.ProcessMessages; InternalUnLock; end; end; procedure TFMain.EditViewFileInternal(ParentWindow: TGTKControl; Filename: string; Engine: TPanelEngine; View, NewFile: boolean); var s: string; Stat: PDataItemSL; Error, x: integer; // AViewer: TViewerThread; AViewer: TFViewer; begin Stat := Engine.GetFileInfoSL(Filename); if Assigned(Stat) and (Stat^.Size > ConfEditViewFileSizeLimit) and (Application.MessageBox(LANGTheFileYouAreTryingToOpenIsQuiteBig, [mbYes, mbNo], mbWarning, mbNone, mbNo) = mbNo) then begin FreeDataItem(Stat); Exit; end; FreeDataItem(Stat); if View then s := ConfViewer else s := ConfEditor; if (Engine is TVFSEngine) and (not NewFile) then if not HandleRunFromArchive(Filename, Engine, s, '', True) then Exit; if ConfUseInternalViewer and View then begin (* AViewer := TViewerThread.Create(Self); if not AViewer.LoadFile(AFile) then begin Application.MessageBox(Format('Cannot load file ''%s''. Please check the permissions.', [ANSIToUTF8(AFile)]), [mbOK], mbError); AViewer.Free; end else AViewer.Resume; *) AViewer := TFViewer.Create(ParentWindow); if not AViewer.LoadFile(Filename) then begin Application.MessageBox(Format(LANGCannotLoadFile, [Filename]), [mbOK], mbError, mbNone, mbOK); AViewer.Free; end else begin // gtk_window_set_transient_for(PGtkWindow(AViewer.FWidget), PGtkWindow(ParentWindow.FWidget)); AViewer.Show; end; end else begin if View then x := ConfViewerTerminalBehaviour else x := ConfEditorTerminalBehaviour; if not ExecuteProgram(Format('%s %s', [s, QuoteStr(Filename)]), ExtractFilePath(Filename), x = 0, x = 1, Error) then Application.MessageBox(Format(LANGCannotExecuteSPleaseCheckTheConfiguration, [s]), [mbOK], mbError, mbNone, mbOK); end; end; (********************************************************************************************************************************) (********************************************************************************************************************************) procedure TFMain.miFileTypesClick(Sender: TObject); var x: pointer; begin try InternalLock; FFileTypeSettings := TFFileTypeSettings.Create(Self); ReadAssoc; FFileTypeSettings.AssignAssocList(AssocList); FFileTypeSettings.FillList; if FFileTypeSettings.Run = mbOK then begin RemoveIconRefs(FFileTypeSettings.IntAssocList, True); RemoveIconRefs(AssocList, False); FFileTypeSettings.CleanItems; x := AssocList; AssocList := FFileTypeSettings.IntAssocList; FFileTypeSettings.IntAssocList := x; RecreateIcons(AssocList); DoRefresh(True, True, True); DoRefresh(False, True, True); WriteAssoc; end; finally FFileTypeSettings.Free; Application.ProcessMessages; InternalLockInit(False); end; end; procedure TFMain.RunFile(Path: string; Engine: TPanelEngine; CustomAction: integer); var Command, FileTypeDesc: string; i, ac: integer; b, AutodetectGUI, RunInTerminal: boolean; Stat: PDataItemSL; s: string; Assoc: TFileAssoc; begin try InternalLock; Command := ''; FileTypeDesc := ''; AutodetectGUI := True; RunInTerminal := False; Assoc := FindAssoc(ExtractFileName(Path)); if Assoc <> nil then begin FileTypeDesc := Assoc.FileTypeName; if (CustomAction > Assoc.ActionList.Count - 1) or (CustomAction = -1) then ac := Assoc.DefaultAction else ac := CustomAction; if ac > Assoc.ActionList.Count - 1 then ac := 0; if Assoc.ActionList.Count > ac then begin Command := UTF8ToStr(Trim(TAssocAction(Assoc.ActionList[ac]).ActionCommand)); AutodetectGUI := TAssocAction(Assoc.ActionList[ac]).AutodetectGUI; RunInTerminal := TAssocAction(Assoc.ActionList[ac]).RunInTerminal; end; end; // Association not found, try to execute file itself if Command = '' then begin DebugMsg(['File association not found']); if CustomAction > -1 then begin DebugMsg(['Some strange error occured...']); Exit; end; Stat := Engine.GetFileInfoSL(Path); if Assigned(Stat) and Stat^.IsExecutable then begin b := True; if Engine is TVFSEngine then b := HandleRunFromArchive(Path, Engine, Command, FileTypeDesc, False); // not a local engine, extract to local first if b then begin libc_chdir(PChar(ExtractFilePath(Path))); b := ExecuteProgram(QuoteStr(Path), ExtractFilePath(Path), AutodetectGUI, RunInTerminal, i); libc_chdir(PChar('/')); end else b := True; // Mask cancelled extraction from VFS FreeDataItem(Stat); end else begin if Engine is TVFSEngine then begin HandleRunFromArchive(Path, Engine, Command, FileTypeDesc, False); // b := True; end else if Application.MessageBox(Format(LANGThereIsNoApplicationAssociatedWithS, [StrToUTF8(ExtractFileName(Path))]), [mbYes, mbNo], mbQuestion, mbNone, mbNo) = mbYes then miFileTypesClick(Self); Exit; end; end else begin DebugMsg(['File association found: ', Command]); s := Command; b := True; if Engine is TVFSEngine then b := HandleRunFromArchive(Path, Engine, Command, FileTypeDesc, False); // not a local engine, extract to local first if Pos('%s', s) > 0 then s := Format(s, ['''' + QuoteStr(Path) + '''']) else s := Format('%s %s', [s, QuoteStr(Path)]); // DebugMsg(['execute: ', s, ' , ', Command, ' , ', QuoteStr(Path)]); if b then begin libc_chdir(PChar(ExtractFilePath(Path))); b := ExecuteProgram(s, ExtractFilePath(Path), AutodetectGUI, RunInTerminal, i); libc_chdir(PChar('/')); end else b := True; // Mask cancelled extraction from VFS end; if not b then Application.MessageBox(Format(LANGCannotExecuteSPleaseCheckTheConfiguration, [s]), [mbOK], mbError, mbNone, mbOK); finally Application.ProcessMessages; InternalUnLock; end; end; procedure TFMain.CommandLineComboKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); var Error, OldPos, i: integer; AListView: TGTKListView; Engine: TPanelEngine; s, s2, Orig: string; begin try InternalLock; case Key of GDK_RETURN, GDK_KP_ENTER: begin Accept := False; if LeftLastFocused then Engine := LeftPanelEngine else Engine := RightPanelEngine; // Insert filename if (ssAlt in Shift) or (ssCtrl in Shift) then begin if LeftLastFocused then AListView := LeftListView else AListView := RightListView; if Assigned(AListView.Selected) and Assigned(AListView.Selected.Data) and (not PDataItem(AListView.Selected.Data)^.UpDir) then begin s2 := QuoteStr(String(PDataItem(AListView.Selected.Data)^.FDisplayName)) + ' '; if Length(CommandLineCombo.Entry.Text) = 0 then begin CommandLineCombo.Entry.Text := Format('./%s', [s2]); CommandLineCombo.Entry.CursorPosition := Length(s2); end else begin OldPos := CommandLineCombo.Entry.CursorPosition; s := CommandLineCombo.Entry.Text; Insert(s2, s, OldPos + 1); CommandLineCombo.Entry.Text := s; CommandLineCombo.Entry.CursorPosition := OldPos + Length(s2); end; end; Exit; end; Orig := Trim(CommandLineCombo.Entry.Text); if Length(Orig) > 0 then begin if WideUpperCase(Orig) = 'CD' then begin if LeftLastFocused then PathButtonClick(LeftHomeButton) else PathButtonClick(RightHomeButton); end else if (Length(Orig) > 3) and (WideUpperCase(Copy(Orig, 1, 3)) = 'CD ') then begin ChangingDir(LeftLastFocused, ProcessPattern(Engine, UTF8ToStr(Copy(Orig, 4, Length(Orig) - 3)), Engine.Path, '', True)); end else begin while not (Engine is TLocalTreeEngine) do Engine := Engine.ParentEngine; libc_chdir(PChar(Engine.Path)); if not ExecuteProgram(UTF8ToStr(Orig), Engine.Path, ConfCmdLineTerminalBehaviour = 0 , ConfCmdLineTerminalBehaviour = 1, Error) then Application.MessageBox(LANGErrorExecutingCommand, [mbOK], mbError, mbNone, mbOK); libc_chdir('/'); end; end; CommandLineCombo.Entry.Text := ''; if LeftLastFocused then LeftListView.SetFocus else RightListView.SetFocus; if Length(Orig) > 0 then begin SaveItemToHistory(Orig, CommandLineHistory); if CommandLineCombo.Items.Count > 0 then for i := CommandLineCombo.Items.Count - 1 downto 0 do CommandLineCombo.Items.Delete(i); if CommandLineHistory.Count > 0 then for i := 0 to CommandLineHistory.Count - 1 do CommandLineCombo.Items.Append(CommandLineHistory[i]); CommandLineCombo.Entry.Text := ''; end; end; GDK_Down, GDK_Up: begin Accept := False; if LeftLastFocused then AListView := LeftListView else AListView := RightListView; if (not (([ssCtrl] = Shift) and (Key = GDK_Up))) and ( ((Key = GDK_Down) and (AListView.ConvertToSorted(AListView.Selected.Index) < AListView.Items.Count - 1)) or ((Key = GDK_Up) and (AListView.ConvertToSorted(AListView.Selected.Index) > 0))) then begin AListView.Selected := AListView.Items[AListView.ConvertFromSorted(AListView.ConvertToSorted(AListView.Selected.Index) + (Ord(Key = GDK_Down) * 2) - 1)]; AListView.Selected.SetCursor(0, False, False, 0, 0); end; AListView.SetFocus; end; GDK_ESCAPE: begin Accept := False; CommandLineCombo.Entry.Text := ''; if LeftLastFocused then LeftListView.SetFocus else RightListView.SetFocus; end; GDK_TAB: begin Accept := False; if LeftLastFocused then RightListView.SetFocus else LeftListView.SetFocus; end; GDK_P, GDK_Capital_P: if ((Shift = [ssAlt]) or (Shift = [ssCtrl])) and (CommandLineHistory.Count > 0) then begin Accept := False; Orig := Trim(CommandLineCombo.Entry.Text); i := CommandLineHistory.IndexOf(Orig); if i < 0 then begin SavedCmdLine := Orig; i := 0; end else if CommandLineHistory.Count > i + 1 then Inc(i); CommandLineCombo.Entry.Text := CommandLineHistory[i]; CommandLineCombo.Entry.SetFocus; CommandLineCombo.Entry.SelectRegion(Length(CommandLineCombo.Entry.Text), Length(CommandLineCombo.Entry.Text)); end else if not CommandLineCombo.Entry.Focused then ActivateCommandLine(Key); GDK_N, GDK_Capital_N: if ((Shift = [ssAlt]) or (Shift = [ssCtrl])) and (CommandLineHistory.Count > 0) then begin Accept := False; Orig := Trim(CommandLineCombo.Entry.Text); i := CommandLineHistory.IndexOf(Orig); if i < 0 then Exit else if i = 0 then begin s := SavedCmdLine; SavedCmdLine := ''; end else if CommandLineHistory.Count > i then s := CommandLineHistory[i - 1]; CommandLineCombo.Entry.Text := s; CommandLineCombo.Entry.SetFocus; CommandLineCombo.Entry.SelectRegion(Length(CommandLineCombo.Entry.Text), Length(CommandLineCombo.Entry.Text)); end else if not CommandLineCombo.Entry.Focused then ActivateCommandLine(Key); GDK_A, GDK_Capital_A: if (Shift = [ssAlt]) or (Shift = [ssCtrl]) then begin Accept := False; if LeftLastFocused then Engine := LeftPanelEngine else Engine := RightPanelEngine; s2 := QuoteStr(IncludeTrailingPathDelimiter(Engine.Path)); OldPos := CommandLineCombo.Entry.CursorPosition; s := CommandLineCombo.Entry.Text; Insert(s2, s, OldPos + 1); CommandLineCombo.Entry.SetFocus; CommandLineCombo.Entry.Text := s; CommandLineCombo.Entry.CursorPosition := OldPos + Length(s2); end else if not CommandLineCombo.Entry.Focused then ActivateCommandLine(Key); end; finally Application.ProcessMessages; InternalUnLock; end; end; function TFMain.ActivateCommandLine(Key: word; const ActualPosition: boolean = False): boolean; var s, s2: string; OldPos: integer; begin Result := False; s := UTF8Encode(WideChar(KeyValToUnicode(Key))); if (Length(s) = 0) or (s = #0) then Exit; if ActualPosition and CommandLineCombo.Entry.Focused then begin OldPos := CommandLineCombo.Entry.CursorPosition; s2 := CommandLineCombo.Entry.Text; Insert(s, s2, Length(LeftStr(s2, OldPos)) + 1); CommandLineCombo.Entry.Text := s2; CommandLineCombo.Entry.CursorPosition := OldPos + 1; end else begin CommandLineCombo.Entry.Text := CommandLineCombo.Entry.Text + s; CommandLineCombo.Entry.SetFocus; CommandLineCombo.Entry.SelectRegion(Length(CommandLineCombo.Entry.Text), Length(CommandLineCombo.Entry.Text)); end; Result := True; end; procedure TFMain.FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); var AListView: TGTKListView; begin if (ConfQuickSearchActivationKey = 2) and (Shift = [ssAlt]) and (LeftListView.Focused or RightListView.Focused) then begin Accept := not HandleKey(Key, Shift, LeftListView.Focused); if not Accept then Exit; end; if CommandLineCombo.Entry.Focused then CommandLineComboKeyDown(Sender, Key, Shift, Accept); if Editing and (Key = GDK_ESCAPE) then begin Editing := False; if LeftLastFocused then AListView := LeftListView else AListView := RightListView; AListView.Columns[0].SetProperty('editable', 0); end; end; procedure TFMain.InactiveItemsTimerTimer(Sender: TObject); procedure Redraw(AListView: TGTKListView; tree_view: PGtkTreeView); var TreePath: PGtkTreePath; Iter: TGtkTreeIter; Rect: TGdkRectangle; PixBuf, Icon: PGdkPixbuf; cell_width, cell_height: integer; begin if (csDestroying in ComponentState) or (AListView = nil) or (AListView.FSelection = nil) then Exit; if not gtk_tree_selection_get_selected(AListView.FSelection, nil, @Iter) then Exit; TreePath := gtk_tree_model_get_path(gtk_tree_view_get_model(tree_view), @Iter); if not Assigned(TreePath) then Exit; gtk_tree_view_get_background_area(tree_view, TreePath, AListView.Columns[0].FColumn, @Rect); gtk_tree_path_free(TreePath); gtk_cell_renderer_get_size(AListView.Columns[0].FPixbufRenderer, PGtkWidget(tree_view), nil, nil, nil, @cell_width, @cell_height); Icon := PDataItem(AListView.Selected.Data)^.Icon; Rect.width := Rect.x + cell_width + AListView.Columns[0].FRenderer^.xpad * 2 + 1; PixBuf := gdk_pixbuf_new(GDK_COLORSPACE_RGB, True, 8, Rect.width, Rect.height); gdk_pixbuf_fill(PixBuf, InactiveItemBGColorNum); gdk_pixbuf_render_to_drawable_alpha(PixBuf, PGdkDrawable(gtk_tree_view_get_bin_window(tree_view)), 0, 0, Rect.x, Rect.y, Rect.width, Rect.height, GDK_PIXBUF_ALPHA_FULL, 0, GDK_RGB_DITHER_NORMAL, 0, 0); gdk_pixbuf_unref(PixBuf); gdk_pixbuf_render_to_drawable_alpha(Icon, PGdkDrawable(gtk_tree_view_get_bin_window(tree_view)), 0, 0, Rect.x + AListView.Columns[0].FRenderer^.xpad, Rect.y + Rect.height div 2 - (16 div 2), 16, 16, GDK_PIXBUF_ALPHA_FULL, 0, GDK_RGB_DITHER_NORMAL, 0, 0); end; begin if Assigned(Sender) and Assigned(InactiveItemsTimer) and Assigned(LeftListView) and Assigned(RightListView) and (not (csDestroying in ComponentState)) then try InactiveItemsTimer.Enabled := False; if RedrawLeftInactive and (not LeftListView.Focused) // and (not ConfInactiveItemDefaultColors) then Redraw(LeftListView, PGtkTreeView(LeftListView.FWidget)); if RedrawRightInactive and (not RightListView.Focused) // and (not ConfInactiveItemDefaultColors) then Redraw(RightListView, PGtkTreeView(RightListView.FWidget)); RedrawLeftInactive := False; RedrawRightInactive := False; except end; end; (********************************************************************************************************************************) function TFMain.OldGTKConvertToSorted(Sender: TObject; const Index: integer): integer; var DataList, List: TList; i: integer; AListView: TGTKListView; begin Result := -1; if Sender = LeftListView then begin DataList := LeftPanelData; AListView := LeftListView; end else begin DataList := RightPanelData; AListView := RightListView; end; List := nil; // Silent compiler warnings if Assigned(DataList) and (DataList.Count > 0) then try List := TList.Create; for i := 0 to DataList.Count - 1 do List.Add(DataList[i]); if (List.Count > 1) and (AListView.SortOrder <> soNone) then SortDataList(List, AListView.SortOrder = soAscending, AListView.SortColumnID); Result := List.IndexOf(DataList[Index]); finally List.Free; end; end; function TFMain.OldGTKConvertFromSorted(Sender: TObject; const Index: integer): integer; var DataList, List: TList; i: integer; AListView: TGTKListView; begin Result := -1; if Sender = LeftListView then begin DataList := LeftPanelData; AListView := LeftListView; end else begin DataList := RightPanelData; AListView := RightListView; end; List := nil; // Silent compiler warnings if Assigned(DataList) and (DataList.Count > 0) then try List := TList.Create; for i := 0 to DataList.Count - 1 do List.Add(DataList[i]); if (List.Count > 1) and (AListView.SortOrder <> soNone) then SortDataList(List, AListView.SortOrder = soAscending, AListView.SortColumnID); Result := DataList.IndexOf(List[Index]); finally List.Free; end; end; (********************************************************************************************************************************) procedure TFMain.SplitterPopupMenuClick(Sender: TObject); begin if not (Sender is TGTKMenuItem) then Exit; ConfPanelSep := Integer((Sender as TGTKMenuItem).Data); PanelSeparator.Position := Round(Width * (ConfPanelSep / 100)); end; (********************************************************************************************************************************) procedure TFMain.miChangePermissionsClick(Sender: TObject); var LeftPanel: boolean; AListView: TGTKListView; Engine: TPanelEngine; DataList: TList; i: longint; SelCount: longint; AFile, NextItem1, NextItem2: string; Stat: PDataItemSL; UsrManager: TUserManager; AWorkingThread: TWorkerThread; AFProgress: TFProgress; begin try InternalLock; if LeftListView.Focused then LeftPanel := True else if RightListView.Focused then LeftPanel := False else LeftPanel := LeftLastFocused; if LeftPanel then begin AListView := LeftListView; Engine := LeftPanelEngine; DataList := LeftPanelData; end else begin AListView := RightListView; Engine := RightPanelEngine; DataList := RightPanelData; end; SelCount := 0; if DataList.Count > 0 then for i := 0 to DataList.Count - 1 do with PDataItem(DataList[i])^ do if Selected and (not UpDir) then Inc(SelCount); if (SelCount = 0) and ((not Assigned(AListView.Selected)) or PDataItem(AListView.Selected.Data)^.UpDir) then begin Application.MessageBox(LANGNoFilesSelected, [mbOK], mbInfo, mbNone, mbOK); Exit; end; AFile := ''; if SelCount = 0 then AFile := PDataItem(AListView.Selected.Data)^.FName else for i := 0 to DataList.Count - 1 do with PDataItem(DataList[i])^ do if Selected and (not UpDir) then begin AFile := FName; Break; end; if AFile <> '' then try FChmod := TFChmod.Create(Self); Stat := Engine.GetFileInfoSL(IncludeTrailingPathDelimiter(Engine.Path) + AFile); if not Assigned(Stat) then Exit; UsrManager := TUserManager.Create; try FChmod.AssignMode(Stat^.Mode, AFile, UsrManager.GetUserName(Stat^.UID), UsrManager.GetGroupName(Stat^.GID)); finally UsrManager.Free; end; if FChmod.Run = mbOK then begin FindNextSelected(AListView, DataList, NextItem1, NextItem2); AWorkingThread := TWorkerThread.Create; AFProgress := TFProgress.Create(Self); try AFProgress.SetNumBars(False); AFProgress.ProgressBar.Value := 0; AFProgress.Label1.Caption := LANGChmodProgress; AWorkingThread.ProgressForm := AFProgress; if Assigned(AListView.Selected) then AWorkingThread.SelectedItem := AListView.Selected.Data; AWorkingThread.ParamBool1 := FChmod.RecursiveCheckButton.Checked; AWorkingThread.ParamInt1 := FChmod.RecursiveOptionMenu.ItemIndex; AWorkingThread.ParamCardinal1 := FChmod.LastMode; AWorkingThread.Engine := Engine; AWorkingThread.LeftPanel := LeftPanel; AWorkingThread.DataList := DataList; AWorkingThread.WorkerProcedure := ChmodFilesWorker; AWorkingThread.Resume; AFProgress.ParentForm := FMain; if (SelCount > 1) or FChmod.RecursiveCheckButton.Checked then AFProgress.ShowModal; ProcessProgressThread(AWorkingThread, AFProgress); AFProgress.Close; finally AFProgress.Free; AWorkingThread.Free; end; ChangingDir(LeftPanel, Engine.Path, NextItem1, NextItem2); DoRefresh(not LeftPanel, True, True); end; finally FreeDataItem(Stat); FChmod.Free; end; finally Application.ProcessMessages; InternalLockInit(False); end; end; procedure TFMain.miChangeOwnerClick(Sender: TObject); var LeftPanel: boolean; AListView: TGTKListView; Engine: TPanelEngine; DataList: TList; i: integer; SelCount: longint; AFile, NextItem1, NextItem2: string; Stat: PDataItemSL; AWorkingThread: TWorkerThread; AFProgress: TFProgress; begin try InternalLock; if LeftListView.Focused then LeftPanel := True else if RightListView.Focused then LeftPanel := False else LeftPanel := LeftLastFocused; if LeftPanel then begin AListView := LeftListView; Engine := LeftPanelEngine; DataList := LeftPanelData; end else begin AListView := RightListView; Engine := RightPanelEngine; DataList := RightPanelData; end; SelCount := 0; if DataList.Count > 0 then for i := 0 to DataList.Count - 1 do with PDataItem(DataList[i])^ do if Selected and (not UpDir) then Inc(SelCount); if (SelCount = 0) and ((not Assigned(AListView.Selected)) or PDataItem(AListView.Selected.Data)^.UpDir) then begin Application.MessageBox(LANGNoFilesSelected, [mbOK], mbInfo, mbNone, mbOK); Exit; end; AFile := ''; if SelCount = 0 then AFile := PDataItem(AListView.Selected.Data)^.FName else for i := 0 to DataList.Count - 1 do with PDataItem(DataList[i])^ do if Selected and (not UpDir) then begin AFile := FName; Break; end; if AFile <> '' then try FChown := TFChown.Create(Self); Stat := Engine.GetFileInfoSL(IncludeTrailingPathDelimiter(Engine.Path) + AFile); if not Assigned(Stat) then Exit; FChown.AssignMode(Stat^.Mode, AFile, Stat^.UID, Stat^.GID); if FChown.Run = mbOK then begin FindNextSelected(AListView, DataList, NextItem1, NextItem2); AWorkingThread := TWorkerThread.Create; AFProgress := TFProgress.Create(Self); try AFProgress.SetNumBars(False); AFProgress.ProgressBar.Value := 0; AFProgress.Label1.Caption := LANGChownProgress; AWorkingThread.ProgressForm := AFProgress; if Assigned(AListView.Selected) then AWorkingThread.SelectedItem := AListView.Selected.Data; AWorkingThread.ParamBool1 := FChown.RecursiveCheckButton.Checked; AWorkingThread.ParamCardinal1 := FChown.LastUID; AWorkingThread.ParamCardinal2 := FChown.LastGID; AWorkingThread.Engine := Engine; AWorkingThread.LeftPanel := LeftPanel; AWorkingThread.DataList := DataList; AWorkingThread.WorkerProcedure := ChownFilesWorker; AWorkingThread.Resume; AFProgress.ParentForm := FMain; if (SelCount > 1) or FChown.RecursiveCheckButton.Checked then AFProgress.ShowModal; ProcessProgressThread(AWorkingThread, AFProgress); AFProgress.Close; finally AFProgress.Free; AWorkingThread.Free; end; ChangingDir(LeftPanel, Engine.Path, NextItem1, NextItem2); DoRefresh(not LeftPanel, True, True); end; finally FreeDataItem(Stat); FChown.Free; end; finally Application.ProcessMessages; InternalLockInit(False); end; end; (********************************************************************************************************************************) procedure TFMain.miCreateSymlinkClick(Sender: TObject); var LeftPanel: boolean; AListView: TGTKListView; Engine, EngineOpposite: TPanelEngine; s1, s2: string; begin try InternalLock; if LeftListView.Focused then LeftPanel := True else if RightListView.Focused then LeftPanel := False else LeftPanel := LeftLastFocused; if LeftPanel then begin AListView := LeftListView; Engine := LeftPanelEngine; EngineOpposite := RightPanelEngine; end else begin AListView := RightListView; Engine := RightPanelEngine; EngineOpposite := LeftPanelEngine; end; if (not Assigned(AListView.Selected)) or (not Assigned(AListView.Selected.Data)) or PDataItem(AListView.Selected.Data)^.UpDir then s1 := ExcludeTrailingPathDelimiter(Engine.Path) else s1 := IncludeTrailingPathDelimiter(Engine.Path) + PDataItem(AListView.Selected.Data)^.FName; if Engine.Path <> EngineOpposite.Path then s2 := IncludeTrailingPathDelimiter(EngineOpposite.Path) + PDataItem(AListView.Selected.Data)^.FName else s2 := IncludeTrailingPathDelimiter(EngineOpposite.Path) + Format(LANGLinkToS, [PDataItem(AListView.Selected.Data)^.FName]); if CreateSymlink(s1, s2, Engine) then begin DoRefresh(LeftPanel, True, True); DoRefresh(not LeftPanel, True, True); end; finally Application.ProcessMessages; InternalLockInit(False); end; end; procedure TFMain.miEditSymlinkClick(Sender: TObject); var LeftPanel: boolean; AListView: TGTKListView; Engine: TPanelEngine; begin try InternalLock; if LeftListView.Focused then LeftPanel := True else if RightListView.Focused then LeftPanel := False else LeftPanel := LeftLastFocused; if LeftPanel then begin AListView := LeftListView; Engine := LeftPanelEngine; end else begin AListView := RightListView; Engine := RightPanelEngine; end; if (not Assigned(AListView.Selected)) or (not Assigned(AListView.Selected.Data)) or (not PDataItem(AListView.Selected.Data)^.IsLnk) or PDataItem(AListView.Selected.Data)^.UpDir then begin Application.MessageBox(LANGYouMustSelectAValidSymbolicLink, [mbOK], mbError, mbNone, mbOK); Exit; end; if EditSymlink(IncludeTrailingPathDelimiter(Engine.Path) + PDataItem(AListView.Selected.Data)^.FName, Engine) then begin DoRefresh(LeftPanel, True, True); DoRefresh(not LeftPanel, True, True); end; finally Application.ProcessMessages; InternalLockInit(False); end; end; (********************************************************************************************************************************) procedure TFMain.FilePopupMenuPopup(Sender: TObject); procedure ClearPopupMenu(Popup: TGTKMenuItem); begin while Popup.Count > 0 do begin if Popup.Items[0].Count > 0 then ClearPopupMenu(Popup.Items[0]); Popup.Items[0].Free; Popup.Delete(0); end; end; var Item: TGTKMenuItem; DataItem: PDataItemSL; Engine: TPanelEngine; AListView: TGTKListView; FileName, ShortFName: string; UpDir, Found: boolean; i, j: integer; Assoc: TFileAssoc; begin ClearPopupMenu(FilePopupMenu); if LeftLastFocused then begin Engine := LeftPanelEngine; AListView := LeftListView; end else begin Engine := RightPanelEngine; AListView := RightListView; end; FileName := IncludeTrailingPathDelimiter(Engine.Path); if Assigned(AListView.Selected) and Assigned(AListView.Selected.Data) and (not PDataItem(AListView.Selected.Data)^.UpDir) then FileName := FileName + PDataItem(AListView.Selected.Data)^.FName; ShortFName := ExtractFileName(ExcludeTrailingPathDelimiter(FileName)); DataItem := Engine.GetFileInfoSL(FileName); if not Assigned(DataItem) then begin DebugMsg(['Error: File data not assigned. Bug ???! FileName = ', FileName]); Exit; end; UpDir := PDataItem(AListView.Selected.Data)^.UpDir; if not DataItem^.IsDir then begin Item := TGTKMenuItem.CreateTyped(Self, itImageText); Item.Caption := Format(LANGPopupRunS, [QuoteMarkupStr(StrToUTF8(ShortFName), True)]); Item.StockIcon := 'gtk-execute'; Item.Data := Pointer(1); Item.OnClick := FilePopupMenuItemClick; Item.Enabled := Engine.FileCanRun(FileName); FilePopupMenu.Add(Item); end else begin // Open directory Item := TGTKMenuItem.CreateTyped(Self, itImageText); if UpDir then Item.Caption := LANGPopupGoUp else Item.Caption := Format(LANGPopupOpenS, [QuoteMarkupStr(StrToUTF8(ShortFName), True)]); Item.StockIcon := 'gtk-open'; Item.Data := Pointer(1); Item.OnClick := FilePopupMenuItemClick; FilePopupMenu.Add(Item); // Open directory in background tab if not UpDir then begin Item := TGTKMenuItem.CreateTyped(Self, itImageText); Item.Caption := LANGOpenDirectoryInBackgroundTab; Item.Data := Pointer(3); Item.OnClick := FilePopupMenuItemClick; FilePopupMenu.Add(Item); end; end; // Find actions for meta-item if AssocList.Count > 0 then for i := 0 to AssocList.Count - 1 do if ((DataItem^.IsDir and (TFileAssoc(AssocList[i]).FileTypeName = ConstFTAMetaDirectory)) or ((not DataItem^.IsDir) and (TFileAssoc(AssocList[i]).FileTypeName = ConstFTAMetaFile))) and (TFileAssoc(AssocList[i]).ActionList.Count > 0) then with TFileAssoc(AssocList[i]) do begin FilePopupMenu.Add(TGTKMenuItem.CreateTyped(Self, itSeparator)); for j := 0 to ActionList.Count - 1 do begin Item := TGTKMenuItem.CreateTyped(Self, itImageText); Item.Caption := Format(LANGPopupOpenWithS, [TAssocAction(ActionList[j]).ActionName]); Item.Data := ActionList[j]; Item.OnClick := FilePopupMenuItemClick; FilePopupMenu.Add(Item); end; Break; end; FilePopupMenu.Add(TGTKMenuItem.CreateTyped(Self, itSeparator)); // Find and add actions for this file type Found := False; Assoc := FindAssoc(ShortFName); if (Assoc <> nil) and (Assoc.ActionList.Count > 0) then begin Found := True; for j := 0 to Assoc.ActionList.Count - 1 do begin Item := TGTKMenuItem.CreateTyped(Self, itImageText); Item.Caption := Format(LANGPopupOpenWithS, [TAssocAction(Assoc.ActionList[j]).ActionName]); if ((j = 0) and (Assoc.DefaultAction > Assoc.ActionList.Count - 1)) or (j = Assoc.DefaultAction) then Item.Caption := Item.Caption + LANGPopupDefault; Item.Data := Assoc.ActionList[j]; Item.OnClick := FilePopupMenuItemClick; FilePopupMenu.Add(Item); end; end; if (not Found) and (not DataItem^.IsDir) then begin Item := TGTKMenuItem.CreateTyped(Self, itImageText); Item.Caption := LANGPopupOpenWith; Item.Data := Pointer(2); Item.OnClick := FilePopupMenuItemClick; FilePopupMenu.Add(Item); end; // Other items if not DataItem^.IsDir then begin FilePopupMenu.Add(TGTKMenuItem.CreateTyped(Self, itSeparator)); Item := TGTKMenuItem.CreateTyped(Self, itImageText); Item.Caption := LANGPopupViewFile; Item.StockIcon := 'gtk-find'; Item.Data := Pointer(200); // This number HAVE to be here due to F3F4ButtonClick method using Item.OnClick := F3F4ButtonClick; FilePopupMenu.Add(Item); Item := TGTKMenuItem.CreateTyped(Self, itImageText); Item.Caption := LANGPopupEditFile; Item.Data := Pointer(201); // Here too Item.OnClick := F3F4ButtonClick; FilePopupMenu.Add(Item); end; if not DataItem^.IsDir then FilePopupMenu.Add(TGTKMenuItem.CreateTyped(Self, itSeparator)); Item := TGTKMenuItem.CreateTyped(Self, itImageText); Item.Caption := LANGPopupMakeSymlink; Item.StockIcon := 'gtk-jump-to'; Item.OnClick := miCreateSymlinkClick; FilePopupMenu.Add(Item); if DataItem^.IsLnk then begin Item := TGTKMenuItem.CreateTyped(Self, itImageText); Item.Caption := LANGmiEditSymlink_Caption; Item.OnClick := miEditSymlinkClick; FilePopupMenu.Add(Item); end; FilePopupMenu.Add(TGTKMenuItem.CreateTyped(Self, itSeparator)); Item := TGTKMenuItem.CreateTyped(Self, itImageText); Item.Caption := LANGmiChangePermissions_Caption; Item.StockIcon := 'gtk-convert'; Item.OnClick := miChangePermissionsClick; Item.Enabled := not UpDir; FilePopupMenu.Add(Item); Item := TGTKMenuItem.CreateTyped(Self, itImageText); Item.Caption := LANGmiChangeOwner_Caption; Item.OnClick := miChangeOwnerClick; Item.Enabled := not UpDir; FilePopupMenu.Add(Item); FilePopupMenu.Add(TGTKMenuItem.CreateTyped(Self, itSeparator)); Item := TGTKMenuItem.CreateTyped(Self, itImageText); Item.Caption := LANGPopupRename; Item.OnClick := F6ButtonClick; Item.Enabled := not UpDir; FilePopupMenu.Add(Item); Item := TGTKMenuItem.CreateTyped(Self, itImageText); Item.Caption := LANGPopupDelete; Item.StockIcon := 'gtk-delete'; Item.OnClick := F8ButtonClick; Item.Enabled := not UpDir; FilePopupMenu.Add(Item); // FilePopupMenu.Add(TGTKMenuItem.CreateTyped(Self, itSeparator)); Item := TGTKMenuItem.CreateTyped(Self, itImageText); Item.Caption := LANGFilePopupMenu_Properties; Item.StockIcon := 'gtk-properties'; Item.OnClick := miFilePropertiesClick; Item.Enabled := False; Item.Visible := False; // Item.Enabled := not UpDir; FilePopupMenu.Add(Item); FreeDataItem(DataItem); end; procedure TFMain.FilePopupMenuItemClick(Sender: TObject); var Engine: TPanelEngine; DataItem: PDataItemSL; AListView: TGTKListView; FileName, ShortFName, s: string; Error: integer; b: boolean; begin try InternalLock; if (not Assigned(Sender)) or (not (Sender is TGTKMenuItem)) then begin DebugMsg(['Error: Popup menuitem is invalid']); end; if LeftLastFocused then begin Engine := LeftPanelEngine; AListView := LeftListView; end else begin Engine := RightPanelEngine; AListView := RightListView; end; if ConfUseURI and (Engine is TVFSEngine) and (not (Engine as TVFSEngine).ArchiveMode) then FileName := IncludeTrailingPathDelimiter((Engine as TVFSEngine).GetPathURI) else FileName := IncludeTrailingPathDelimiter(Engine.Path); if Assigned(AListView.Selected) and Assigned(AListView.Selected.Data) and (not PDataItem(AListView.Selected.Data)^.UpDir) then FileName := FileName + PDataItem(AListView.Selected.Data)^.FName; ShortFName := ExtractFileName(ExcludeTrailingPathDelimiter(FileName)); DataItem := Engine.GetFileInfoSL(FileName); if not Assigned(DataItem) then begin DebugMsg(['Error: File data not assigned. Bug ???! FileName = ', FileName]); Exit; end; case Integer((Sender as TGTKMenuItem).Data) of 1: if DataItem^.IsDir then ActivateItem(AListView.Selected.Index) else begin b := True; if Engine is TVFSEngine then b := HandleRunFromArchive(FileName, Engine, '', '', False); // not a local engine, extract to local first if b then begin libc_chdir(PChar(ExtractFilePath(FileName))); b := ExecuteProgram(QuoteStr(FileName), ExtractFilePath(FileName), True, False, Error); libc_chdir(PChar('/')); end else b := True; // Mask cancelled extraction from VFS if not b then Application.MessageBox(LANGErrorExecutingCommand, [mbOK], mbError, mbNone, mbOK); end; 2: if Application.MessageBox(Format(LANGThereIsNoApplicationAssociatedWithS, [ShortFName]), [mbYes, mbNo], mbQuestion, mbNone, mbNo) = mbYes then miFileTypesClick(Self); 3: NewTab(LeftLastFocused, True, FileName); else begin b := True; s := UTF8ToStr(Trim(TAssocAction((Sender as TGTKMenuItem).Data).ActionCommand)); if Engine is TVFSEngine then b := HandleRunFromArchive(FileName, Engine, s, '', False); // not a local engine, extract to local first if Pos('%s', s) > 0 then s := Format(s, ['''' + QuoteStr(FileName) + '''']) else s := Format('%s %s', [s, QuoteStr(FileName)]); if b then begin libc_chdir(PChar(ExtractFilePath(FileName))); b := ExecuteProgram(s, ExtractFilePath(FileName), TAssocAction((Sender as TGTKMenuItem).Data).AutodetectGUI, TAssocAction((Sender as TGTKMenuItem).Data).RunInTerminal, Error); libc_chdir(PChar('/')); end else b := True; // Mask cancelled extraction from VFS if not b then Application.MessageBox(Format(LANGCannotExecuteSPleaseCheckTheConfiguration, [FileName]), [mbOK], mbError, mbNone, mbOK); end; end; FreeDataItem(DataItem); finally Application.ProcessMessages; InternalUnLock; end; end; (********************************************************************************************************************************) procedure TFMain.ListViewMouseUp(Sender: TObject; Button: TGDKMouseButton; Shift: TShiftState; X, Y: Integer; var Accept: boolean); var AListView: TGTKListView; i, FirstColumn, LastColumn: integer; LeftLV, b: boolean; begin PanelRightMouseInProgress := False; RightMouseSelectPopupTimer.Enabled := False; if Button = mbLeft then begin AListView := Sender as TGTKListView; LeftLV := AListView = LeftListView; GetFirstLastPanelColumn(FirstColumn, LastColumn); b := True; for i := 0 to AListView.Columns.Count - 1 do if (AListView.Columns[i].Tag <> LastColumn) or (FirstColumn = LastColumn) then b := b and (ConfColumnSizes[AListView.Columns[i].Tag] = AListView.Columns[i].Width); if not b then begin DebugMsg(['*** ListView Mouse Up -> resizing columns']); for i := 0 to AListView.Columns.Count - 1 do ConfColumnSizes[AListView.Columns[i].Tag] := AListView.Columns[i].Width; if LeftLV then AListView := RightListView else AListView := LeftListView; // Change target widths for i := 0 to AListView.Columns.Count - 1 do if ConfColumnSizes[AListView.Columns[i].Tag] <> AListView.Columns[i].Width then AListView.Columns[i].FixedWidth := ConfColumnSizes[AListView.Columns[i].Tag]; end; end; if Button = mbRight then Accept := False; end; procedure TFMain.ListViewColumnClicked(Sender: TObject); var ANotebook: TEphyNotebook; AListView: TGTKListView; LeftLV: boolean; begin AListView := ((Sender as TGTKTreeViewColumn).Parent as TGTKTreeViewColumns).Parent as TGTKListView; LeftLV := AListView = LeftListView; // Check for sort change if LeftLV then ANotebook := LeftPanelNotebook else ANotebook := RightPanelNotebook; try if ANotebook.Visible then begin DebugMsg(['*** ListView Mouse Up -> saving sort info to tab ', ANotebook.PageIndex, ', SortColumnID = ', AListView.SortColumnID]); if LeftLV then begin LeftTabSortIDs[ANotebook.PageIndex] := Pointer(AListView.SortColumnID); LeftTabSortTypes[ANotebook.PageIndex] := Pointer(Integer(AListView.SortOrder)); end else begin RightTabSortIDs[ANotebook.PageIndex] := Pointer(AListView.SortColumnID); RightTabSortTypes[ANotebook.PageIndex] := Pointer(Integer(AListView.SortOrder)); end; end; except on E: Exception do DebugMsg(['*** Exception raised in TFMain.ListViewColumnClicked(', E.ClassName, '): ', E.Message]); end; end; (********************************************************************************************************************************) procedure TFMain.miPreferencesClick(Sender: TObject); begin try InternalLock; FPreferences := TFPreferences.Create(Self); FPreferences.AssignDefaultValues; if FPreferences.Run = mbOK then begin FPreferences.SaveSettings; WriteMainGUISettings; ApplySettings(FPreferences.RebuildListViews, FPreferences.RebuildIcons, False); end; finally FPreferences.Free; Application.ProcessMessages; InternalLockInit(False); end; end; procedure TFMain.ApplySettings(RebuildListViews, RebuildIcons, Startup: boolean); var i: integer; begin InactiveItemsTimer.Enabled := False; ButtonsBox.Visible := ConfShowFuncButtons; ButtonBoxSeparator.Visible := ConfShowFuncButtons; ButtonBoxSpace.Visible := not ConfShowFuncButtons; // Rebuild Icons if RebuildIcons then begin if ConfRowHeight > 0 then ConfRowHeightReal := ConfRowHeight else ConfRowHeightReal := ConfDefaultRowHeight; FolderIcon.Free; FileIcon.Free; UpDirIcon.Free; SymLinkEmblem.Free; FolderIconLnk.Free; FileIconLnk.Free; LoadIcons; RecreateIcons(AssocList, False); end; // Rebuild ListViews if RebuildListViews then FMain.RebuildListViews(False); InactiveItemsTimer.Enabled := False; // Colors Section SetupColors; gtk_widget_modify_base(LeftListView.FWidget, GTK_STATE_NORMAL, NormalItemGDKBackground); gtk_widget_modify_base(RightListView.FWidget, GTK_STATE_NORMAL, NormalItemGDKBackground); gtk_widget_modify_base(LeftListView.FWidget, GTK_STATE_SELECTED, ActiveItemGDKBackground); gtk_widget_modify_base(RightListView.FWidget, GTK_STATE_SELECTED, ActiveItemGDKBackground); // if Application.GTKVersion_2_6_0_Up then begin gtk_widget_modify_base(LeftListView.FWidget, GTK_STATE_ACTIVE, InactiveItemGDKBackground); gtk_widget_modify_base(RightListView.FWidget, GTK_STATE_ACTIVE, InactiveItemGDKBackground); gtk_widget_modify_text(LeftListView.FWidget, GTK_STATE_NORMAL, NormalItemGDKColor); gtk_widget_modify_text(RightListView.FWidget, GTK_STATE_NORMAL, NormalItemGDKColor); gtk_widget_modify_text(LeftListView.FWidget, GTK_STATE_SELECTED, ActiveItemGDKColor); gtk_widget_modify_text(RightListView.FWidget, GTK_STATE_SELECTED, ActiveItemGDKColor); gtk_widget_modify_text(LeftListView.FWidget, GTK_STATE_ACTIVE, InactiveItemGDKColor); gtk_widget_modify_text(RightListView.FWidget, GTK_STATE_ACTIVE, InactiveItemGDKColor); // end; // Resize commandline history if ConfNumHistoryItems < CommandLineHistory.Count then begin try for i := CommandLineHistory.Count downto ConfNumHistoryItems + 1 do CommandLineHistory.Delete(i - 1); if CommandLineCombo.Items.Count > 0 then for i := CommandLineCombo.Items.Count - 1 downto 0 do CommandLineCombo.Items.Delete(i); if CommandLineHistory.Count > 0 then for i := 0 to CommandLineHistory.Count - 1 do CommandLineCombo.Items.Append(CommandLineHistory[i]); except end; CommandLineCombo.Entry.Text := ''; end; // Refresh the lists if not Startup then begin DoRefresh(True, True, True); DoRefresh(False, True, True); if RebuildListViews then begin LeftListView.SetSortInfo(ConfMainWindowLeftSortColumn, TGTKTreeViewSortOrder(ConfMainWindowLeftSortType)); RightListView.SetSortInfo(ConfMainWindowRightSortColumn, TGTKTreeViewSortOrder(ConfMainWindowRightSortType)); end; end; end; (********************************************************************************************************************************) procedure TFMain.RefreshBookmarksMenu; const ShortcutKeys = '1234567890'; var i: integer; Item: TGTKMenuItem; begin if mnuBookmarks.Count > 3 then for i := mnuBookmarks.Count - 1 downto 3 do begin mnuBookmarks.Items[i].Free; mnuBookmarks.Delete(i); end; miAddBookmark.Visible := True; miEditBookmarks.Visible := False; miBookmarksSeparator.Visible := False; if Bookmarks.Count > 0 then begin miBookmarksSeparator.Visible := True; for i := 0 to Bookmarks.Count - 1 do begin if Length(Trim(Bookmarks[i])) = 0 then Continue; Item := TGTKMenuItem.CreateTyped(Self, itLabel); Item.Caption := Format('_%s %s', [Chr(Ord('a') + i), StrToUTF8(QuoteMarkupStr(Bookmarks[i]))]); Item.Data := Pointer(i); Item.OnClick := miBookmarkClick; Item.OnMouseUp := BookmarkItemMouseUp; if i < Length(ShortcutKeys) - 1 then Item.ShortCuts.AddName(Format('%s', [ShortcutKeys[i + 1]])); mnuBookmarks.Add(Item); end; end; end; procedure TFMain.miAddBookmarkClick(Sender: TObject); var LeftPanel: boolean; s: string; begin try InternalLock; if LeftListView.Focused then LeftPanel := True else if RightListView.Focused then LeftPanel := False else LeftPanel := LeftLastFocused; if LeftPanel then s := LeftPanelEngine.Path else s := RightPanelEngine.Path; s := ExcludeTrailingPathDelimiter(s); if Bookmarks.IndexOf(s) > -1 then begin Application.MessageBox(LANGTheCurrentDirectoryAlreadyExistsInTheBookmarksList, [mbOK], mbWarning); Exit; end; Bookmarks.Add(s); WriteBookmarks; RefreshBookmarksMenu; finally Application.ProcessMessages; InternalLockInit(False); end; end; procedure TFMain.miBookmarkClick(Sender: TObject); var LeftPanel: boolean; begin if LeftListView.Focused then LeftPanel := True else if RightListView.Focused then LeftPanel := False else LeftPanel := LeftLastFocused; // Close VFS connections if LeftPanel then while (LeftPanelEngine is TVFSEngine) do CloseVFS(LeftPanel, True) else while (RightPanelEngine is TVFSEngine) do CloseVFS(LeftPanel, True); ChangingDir(LeftPanel, Bookmarks[Integer((Sender as TGTKMenuItem).Data)]); end; procedure TFMain.BookmarkPopupDeleteClick(Sender: TObject); begin try Bookmarks.Delete(Integer((Sender as TGTKMenuItem).Data)); WriteBookmarks; RefreshBookmarksMenu; except on E: Exception do DebugMsg(['*** Error deleting item: ', E.Message]); end; end; procedure TFMain.BookmarkItemMouseUp(Sender: TObject; Button: TGDKMouseButton; Shift: TShiftState; X, Y: Integer; var Accept: boolean); begin if Button = mbRight then begin Accept := False; BookmarkPopup.PopUp; BookmarkPopupDelete.Data := (Sender as TGTKMenuItem).Data; end; end; (********************************************************************************************************************************) function form_event_handler(widget: PGtkWidget; event: PGdkEvent; user_data: gpointer): gboolean; cdecl; begin Result := False; if event^._type = GDK_FOCUS_CHANGE then if event^.focus_change._in = 1 then FMain.HandleFormFocusIn else FileListTipsHide; end; procedure TFMain.HandleFormFocusIn; var ChangedMainGUI, ChangedAssoc, ChangedBookmarks, ChangedMounter, ChangedConnMgr, APerformRefresh: boolean; begin try if (csDestroying in ComponentState) or (not Assigned(FMain)) then Exit; if ApplicationShuttingDown then begin DebugMsg([' *** TFMain.HandleFormFocusIn called when ApplicationShuttingDown, possible bug caught ***']); Exit; end; if InternalLockUnlocked then begin APerformRefresh := ConfFocusRefresh; if CheckConfFilesMod(ChangedMainGUI, ChangedAssoc, ChangedBookmarks, ChangedMounter, ChangedConnMgr) then begin if ChangedBookmarks then begin DebugMsg(['Bookmark file changed ---> performing refresh']); ReadBookmarks; RefreshBookmarksMenu; end; (* if ChangedConnMgr then begin DebugMsg(['Connection manager file changed ---> performing refresh']); ReadConnections; end; *) try InternalLock; if (ChangedMainGUI or ChangedAssoc or ChangedMounter) and (Application.MessageBox(LANGSomeOtherInstanceChanged, [mbYes, mbNo], mbWarning) = mbNo) then Exit; if ChangedMounter then begin DebugMsg(['Mounter file changed ---> performing refresh']); ReadMounter; FillMounterBar; end; if ChangedMainGUI then begin DebugMsg(['GUI file changed ---> performing refresh']); ReadMainGUISettings; ApplySettings(True, True, False); APerformRefresh := True; end; if ChangedAssoc then begin DebugMsg(['Assoc file changed ---> performing refresh']); ReadAssoc; LoadIcons; RemoveIconRefs(AssocList, False); RecreateIcons(AssocList); APerformRefresh := True; end; finally Application.ProcessMessages; InternalLockInit(False); end; end; if APerformRefresh then begin DebugMsg(['ANN: Form Focus ---> refresh']); DoRefresh(True, True, True); DoRefresh(False, True, True); if ConfFocusRefresh and ParamDebug then Beep; end; end; except on E: Exception do DebugMsg(['*** Exception raised in TFMain.HandleFormFocusIn (', E.ClassName, '): ', E.Message]); end; end; (********************************************************************************************************************************) function Max(Int1, Int2: integer): integer; begin if Int1 > Int2 then Result := Int1 else Result := Int2; end; procedure menu_position_cb(menu: PGtkMenu; x, y: Pgint; push_in: pgboolean; user_data: gpointer); cdecl; var menu_requisition: TGtkRequisition; max_x, max_y: integer; begin (* Calculate our preferred position. *) gdk_window_get_origin(PGtkWidget(user_data).Window, x, y); x^ := x^ + PGtkWidget(user_data).allocation.x + PGtkWidget(user_data).allocation.width; y^ := y^ + PGtkWidget(user_data).allocation.y + PGtkWidget(user_data).allocation.height; (* Now make sure we are on the screen. *) gtk_widget_size_request(PGtkWidget(menu), @menu_requisition); max_x := Max(0, gdk_screen_width () - menu_requisition.width); max_y := Max(0, gdk_screen_height () - menu_requisition.height); x^ := x^ - menu_requisition.width; x^ := CLAMP(x^, 0, max_x); y^ := CLAMP(y^, 0, max_y); end; procedure TFMain.BookmarkButtonClick(Sender: TObject); begin miAddBookmark.Visible := True; miEditBookmarks.Visible := False; miBookmarksSeparator.Visible := mnuBookmarks.Count > 3; gtk_menu_popup(PGtkMenu(mnuBookmarks.FMenu), nil, nil, menu_position_cb, (Sender as TGTKControl).FWidget, 1, GDK_CURRENT_TIME); if (Sender = LeftBookmarkButton) {and (not LeftLastFocused)} then LeftListView.SetFocus else if (Sender = RightBookmarkButton) {and LeftLastFocused} then RightListView.SetFocus; end; (********************************************************************************************************************************) procedure file_popup_position_cb(menu: PGtkMenu; x, y: Pgint; push_in: pgboolean; user_data: gpointer); cdecl; var menu_requisition: TGtkRequisition; max_x, max_y: integer; TreePath: PGtkTreePath; Iter: TGtkTreeIter; Rect: TGdkRectangle; TreeView: PGtkTreeView; begin TreeView := PGtkTreeView(TGTKListView(user_data).FWidget); if not gtk_tree_selection_get_selected(gtk_tree_view_get_selection(TreeView), nil, @Iter) then Exit; TreePath := gtk_tree_model_get_path(gtk_tree_view_get_model(TreeView), @iter); if not Assigned(TreePath) then Exit; gtk_tree_view_get_background_area(TreeView, TreePath, nil, @Rect); gdk_window_get_origin(gtk_tree_view_get_bin_window(TreeView), x, y); y^ := y^ + Rect.y + Rect.height; gtk_widget_size_request(PGtkWidget(menu), @menu_requisition); if y^ > gdk_screen_height - menu_requisition.height then begin gdk_window_get_origin(gtk_tree_view_get_bin_window(TreeView), x, y); y^ := y^ + Rect.y - menu_requisition.height; end; max_x := Max(0, gdk_screen_width () - menu_requisition.width); max_y := Max(0, gdk_screen_height () - menu_requisition.height); x^ := CLAMP(x^, 0, max_x); y^ := CLAMP(y^, 0, max_y); end; procedure TFMain.PopupFileMenuPos; var AListView: TGTKListView; LeftPanel: boolean; begin if LeftListView.Focused then LeftPanel := True else if RightListView.Focused then LeftPanel := False else LeftPanel := LeftLastFocused; if LeftPanel then AListView := LeftListView else AListView := RightListView; FilePopupMenuPopup(AListView); if not Application.GTKVersion_2_0_5_Up then FilePopupMenu.PopUp else gtk_menu_popup(PGtkMenu(FilePopupMenu.FMenu), nil, nil, file_popup_position_cb, AListView, 0, gtk_get_current_event_time()); end; (********************************************************************************************************************************) procedure TFMain.miShowDirectorySizesClick(Sender: TObject); begin DoGetDirSize(True); end; procedure TFMain.miTargetSourceClick(Sender: TObject); begin if Sender = LeftEqualButton then SwitchOtherPanel(True, True) else if Sender = RightEqualButton then SwitchOtherPanel(False, True) else SwitchOtherPanel(LeftLastFocused, True); end; procedure TFMain.SwitchPanelCtrlLeftRight(LeftPanel, LeftArrowPressed: boolean); var AListView: TGTKListView; SrcEngine, OrigSrcEngine, TargetEngine: TPanelEngine; s: string; DontShowAgain: boolean; begin if LeftPanel then begin AListView := LeftListView; SrcEngine := LeftPanelEngine; TargetEngine := RightPanelEngine; end else begin AListView := RightListView; SrcEngine := RightPanelEngine; TargetEngine := LeftPanelEngine; end; OrigSrcEngine := SrcEngine; if ((not (SrcEngine is TLocalTreeEngine)) and (LeftPanel <> LeftArrowPressed)) or ((not (TargetEngine is TLocalTreeEngine)) and (LeftPanel = LeftArrowPressed)) then begin if ConfSwitchOtherPanelBehaviour < 0 then begin MessageBoxShowOnce(PGtkWindow(FWidget), LANGSwitchOtherPanelWarning, LANGDontShowAgain, DontShowAgain, [mbOK], mbWarning, mbOK, mbOK); if DontShowAgain then begin ConfSwitchOtherPanelBehaviour := 1; WriteMainGUISettings; end; end; end; // don't change dir in VFS engines while not (SrcEngine is TLocalTreeEngine) do SrcEngine := SrcEngine.ParentEngine; while not (TargetEngine is TLocalTreeEngine) do TargetEngine := TargetEngine.ParentEngine; if LeftPanel <> LeftArrowPressed then begin s := ExcludeTrailingPathDelimiter(SrcEngine.Path); if (OrigSrcEngine = SrcEngine) and Assigned(AListView.Selected) and Assigned(AListView.Selected.Data) and (not PDataItem(AListView.Selected.Data)^.UpDir) and PDataItem(AListView.Selected.Data)^.IsDir then s := IncludeTrailingPathDelimiter(IncludeTrailingPathDelimiter(s) + PDataItem(AListView.Selected.Data)^.FName); if IncludeTrailingPathDelimiter(TargetEngine.Path) <> s then begin if LeftPanel then RightPanelEngine := TargetEngine else LeftPanelEngine := TargetEngine; ChangingDir(not LeftPanel, s); end; end else begin // Close opened VFS engines if LeftPanel then begin while (LeftPanelEngine is TVFSEngine) do CloseVFS(LeftPanel, True); end else while (RightPanelEngine is TVFSEngine) do CloseVFS(LeftPanel, True); ChangingDir(LeftPanel, TargetEngine.Path); end; end; (********************************************************************************************************************************) (********************************************************************************************************************************) procedure TFMain.FillMounterBar; procedure ClearButtons(List: TList; Table: TGTKTable); var i: integer; begin if List.Count > 0 then for i := List.Count - 1 downto 0 do Table.RemoveControl(TGTKControl(List[i])); List.Clear; end; procedure FillTableButtons(List: TList; Table: TGTKTable); var i: integer; Button: TGTKButton; Pixmap: TGDKPixbuf; b: boolean; Sep: TGTKVSeparator; begin if MounterList.Count > 0 then for i := 0 to MounterList.Count - 1 do with TMounterItem(MounterList[i]) do begin if ConfMounterPushDown then begin Button := TGTKImageToggleButton.Create(Self); if Length(DisplayText) > 0 then (Button as TGTKImageToggleButton).Caption := DisplayText else (Button as TGTKImageToggleButton).Caption := Copy(MountPath, LastDelimiter(PathDelim, ExcludeTrailingPathDelimiter(MountPath)) + 1, Length(ExcludeTrailingPathDelimiter(MountPath)) - LastDelimiter(PathDelim, ExcludeTrailingPathDelimiter(MountPath))); end else begin Button := TGTKImageButton.Create(Self); if Length(DisplayText) > 0 then (Button as TGTKImageButton).Caption := DisplayText else (Button as TGTKImageButton).Caption := Copy(MountPath, LastDelimiter(PathDelim, ExcludeTrailingPathDelimiter(MountPath)) + 1, Length(ExcludeTrailingPathDelimiter(MountPath)) - LastDelimiter(PathDelim, ExcludeTrailingPathDelimiter(MountPath))); end; Button.CanFocus := False; // DebugMsg(['Int64(MounterList[i]) = ', Int64(MounterList[i])]); // DebugMsg(['Integer(MounterList[i]) = ', Integer(MounterList[i])]); {$IFDEF CPU64} Button.Tag := QWORD(MounterList[i]); {$ELSE} Button.Tag := Longint(MounterList[i]); {$ENDIF} Button.Tooltip := Format(LANGMountPointDevice, [StrToUTF8(MountPath), StrToUTF8(Device)]); Button.BorderStyle := bsNone; Button.PopupMenu := MounterButtonPopupMenu; Button.OnMouseDown := MounterButtonMouseDown; // Check the icon b := FileExists(IconPath); Pixmap := nil; if b then begin Pixmap := TGDKPixbuf.Create(Self); Pixmap.LoadFromFile(IconPath); b := Pixmap.FPixbuf <> nil; if b then Pixmap.ScaleSimple(16, 16); end; if not b then case DeviceType of 0 : Pixmap := MounterHDD; 1 : Pixmap := MounterRemovable; 2 : Pixmap := MounterCD; 3 : Pixmap := MounterFloppy; 4 : Pixmap := MounterNetwork; end; if ConfMounterPushDown then begin (Button as TGTKImageToggleButton).Icon := Pixmap; (Button as TGTKImageToggleButton).Checked := Mounted; end else (Button as TGTKImageButton).Icon := Pixmap; Button.OnClick := MounterButtonClick; // It has to be here because setting the Checked property causes the signal emitting Table.AddControlEx(2*i + 1, 0, 1, 1, Button, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 0, 1); List.Add(Button); if i < MounterList.Count - 1 then begin Sep := TGTKVSeparator.Create(Self); Table.AddControlEx(2*(i + 1), 0, 1, 1, Sep, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 2, 6); List.Add(Sep); end; end; end; var Lab: TGTKLabel; begin if ConfMounterUseFSTab then FillDefaultFstabMounterItems; // Clean all items ClearButtons(MounterTableList, MounterBarTable); ClearButtons(MounterTableListLeft, LeftMounterTable); ClearButtons(MounterTableListRight, RightMounterTable); // Fill the new items Lab := TGTKLabel.Create(Self); Lab.Caption := Format('%s', [LANGMountSC]); Lab.UseMarkup := True; MounterTableList.Add(Lab); MounterBarTable.AddControlEx(0, 0, 1, 1, Lab, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 5, 1); case ConfShowMounterBar of 1: FillTableButtons(MounterTableList, MounterBarTable); 2: begin FillTableButtons(MounterTableListLeft, LeftMounterTable); FillTableButtons(MounterTableListRight, RightMounterTable); end; end; end; procedure TFMain.MounterButtonClick(Sender: TObject); var Item: TMounterItem; LeftPanel, b: boolean; Engine: TPanelEngine; begin if not (Sender is TGTKButton) then Exit; try Item := Pointer((Sender as TGTKButton).Tag); if (not Assigned(Item)) or (Item.MountPath = '') then DebugMsg(['*** Error in mounter button: incorrect data']) else begin if MounterTableListLeft.IndexOf(Sender) > -1 then LeftPanel := True else if MounterTableListRight.IndexOf(Sender) > -1 then LeftPanel := False else LeftPanel := LeftLastFocused; if LeftPanel then Engine := LeftPanelEngine else Engine := RightPanelEngine; try b := Item.Mounted; except b := False; end; if ConfMounterPushDown then begin if not b then b := Item.Mount else if Pos(Item.MountPath, Engine.Path) = 1 then b := Item.Eject; (Sender as TGTKToggleButton).OnClick := nil; (Sender as TGTKToggleButton).Checked := Item.Mounted; (Sender as TGTKToggleButton).OnClick := MounterButtonClick; end else if not b then b := Item.Mount; if b then begin if Engine is TVFSEngine then CloseVFS(LeftPanel, True); ChangingDir(LeftPanel, Item.MountPath); DoRefresh(LeftPanel, True, True); end; if LeftPanel then LeftListView.SetFocus else RightListView.SetFocus; end; except on E: Exception do DebugMsg(['*** Exception raised in FMain.MounterButtonClick: (', E.ClassName, '): ', E.Message]); end; end; procedure TFMain.MounterButtonPopupMenuPopup(Sender: TObject); begin // DebugMsg(['aaaa']); try // DebugMsg(['aaaa']); if (not Assigned(LastMounterButton)) or (LastMounterButton.Tag = 0) then begin // DebugMsg(['aaaa']); MounterButtonPopupMenu.PopDown; // DebugMsg(['aaaa']); Exit; end; // DebugMsg(['aaaaX']); // DebugMsg(['sizeof(LastMounterButton.Tag) = ', sizeof(LastMounterButton.Tag)]); // DebugMsg(['LastMounterButton.Tag = ', Int64(LastMounterButton.Tag)]); // DebugMsg(['TMounterItem(Pointer(QWord(LastMounterButton.Tag))).Device = ', TMounterItem(Pointer(QWord(LastMounterButton.Tag))).Device]); // DebugMsg(['TMounterItem(LastMounterButton.Tag).ClassName = ', TMounterItem(LastMounterButton.Tag).ClassName]); miMount.Enabled := not TMounterItem(LastMounterButton.Tag).Mounted; // DebugMsg(['aaaaX']); miUmount.Enabled := not miMount.Enabled; // DebugMsg(['aaaaX']); miEject.Enabled := not miMount.Enabled; except on E: Exception do begin DebugMsg(['*** Exception raised in FMain.MounterButtonClick: (', E.ClassName, '): ', E.Message]); MounterButtonPopupMenu.PopDown; end; end; end; procedure TFMain.MounterButtonMouseDown(Sender: TObject; Button: TGDKMouseButton; Shift: TShiftState; X, Y: Integer; var Accept: boolean); begin LastMounterButton := nil; if (not (Sender is TGTKButton)) or ((Sender as TGTKButton).Tag = 0) then Exit; LastMounterButton := Sender as TGTKButton; end; procedure TFMain.miMountClick(Sender: TObject); begin if Assigned(LastMounterButton) then TMounterItem(LastMounterButton.Tag).Mount; DoRefresh(LeftLastFocused, True, True); DoRefresh(not LeftLastFocused, True, True); if ConfMounterPushDown then begin (LastMounterButton as TGTKToggleButton).OnClick := nil; (LastMounterButton as TGTKToggleButton).Checked := TMounterItem(LastMounterButton.Tag).Mounted; (LastMounterButton as TGTKToggleButton).OnClick := MounterButtonClick; end; end; procedure TFMain.miUmountClick(Sender: TObject); begin if Assigned(LastMounterButton) then TMounterItem(LastMounterButton.Tag).Umount; DoRefresh(LeftLastFocused, True, True); DoRefresh(not LeftLastFocused, True, True); if ConfMounterPushDown then begin (LastMounterButton as TGTKToggleButton).OnClick := nil; (LastMounterButton as TGTKToggleButton).Checked := TMounterItem(LastMounterButton.Tag).Mounted; (LastMounterButton as TGTKToggleButton).OnClick := MounterButtonClick; end; end; procedure TFMain.miEjectClick(Sender: TObject); begin if Assigned(LastMounterButton) then TMounterItem(LastMounterButton.Tag).Eject; DoRefresh(LeftLastFocused, True, True); DoRefresh(not LeftLastFocused, True, True); if ConfMounterPushDown then begin (LastMounterButton as TGTKToggleButton).OnClick := nil; (LastMounterButton as TGTKToggleButton).Checked := TMounterItem(LastMounterButton.Tag).Mounted; (LastMounterButton as TGTKToggleButton).OnClick := MounterButtonClick; end; end; (********************************************************************************************************************************) (********************************************************************************************************************************) procedure TFMain.miMounterSettingsClick(Sender: TObject); var x: TList; begin try InternalLock; FMounterPrefs := TFMounterPrefs.Create(Self); ReadMounter; FMounterPrefs.AssignAssocList(MounterList); FMounterPrefs.FillList; if FMounterPrefs.Run = mbOK then begin FMounterPrefs.CleanItems; x := MounterList; MounterList := FMounterPrefs.InternalMounterList; FMounterPrefs.InternalMounterList := x; ConfMounterUseFSTab := FMounterPrefs.UseFSTabDefaultsCheckBox.Checked; ConfMounterPushDown := FMounterPrefs.ToggleModeCheckBox.Checked; WriteMounter; end; FillMounterBar; finally FMounterPrefs.Free; Application.ProcessMessages; InternalLockInit(False); end; end; procedure TFMain.miShowMounterBarClick(Sender: TObject); begin if miShowOneMounterBar.Checked then ConfShowMounterBar := 1 else if miShowTwoMounterBar.Checked then ConfShowMounterBar := 2 else ConfShowMounterBar := 0; MounterBarHandleBox.Visible := ConfShowMounterBar = 1; LeftMounterTable.Visible := ConfShowMounterBar = 2; RightMounterTable.Visible := ConfShowMounterBar = 2; FillMounterBar; end; procedure TFMain.miColumnsClick(Sender: TObject); begin try InternalLock; FColumns := TFColumns.Create(Self); // FColumns.Show; if FColumns.Run = mbOK then begin FColumns.ApplyColumnList; RebuildListViews(True); end; finally FColumns.Free; Application.ProcessMessages; InternalLockInit(False); end; end; procedure TFMain.ListViewColumnsChanged(Sender: TObject); var SourceListView: TGTKListView; i, j, k, ColIdx, ColumnID: integer; Column: PGtkTreeViewColumn; TempIDs, TempArrayI: array[1..ConstNumPanelColumns] of integer; TempArrayB: array[1..ConstNumPanelColumns] of boolean; begin DebugMsg(['*** Columns reordered ---> performing listview rebuild']); LeftListView.OnMouseUp := nil; RightListView.OnMouseUp := nil; LeftListView.OnColumnsChanged := nil; RightListView.OnColumnsChanged := nil; SourceListView := Sender as TGTKListView; // Copy the old items for i := 1 to ConstNumPanelColumns do begin TempIDs[i] := ConfColumnIDs[i]; TempArrayI[i] := ConfColumnSizes[i]; TempArrayB[i] := ConfColumnVisible[i]; end; ColIdx := 1; // Search for moved columns for i := 0 to SourceListView.Columns.Count - 1 do begin Column := gtk_tree_view_get_column(PGtkTreeView(SourceListView.FWidget), i); ColumnID := ColumnSortIDs[gtk_tree_view_column_get_sort_column_id(column) + 1]; for j := ColIdx to ConstNumPanelColumns do if TempArrayB[j] then begin for k := 1 to ConstNumPanelColumns do if ColumnID = TempIDs[k] then begin DebugMsg(['moving from ', k, ' to ', j]); ConfColumnIDs[j] := TempIDs[k]; ConfColumnSizes[j] := TempArrayI[k]; ConfColumnVisible[j] := TempArrayB[k]; Break; end; ColIdx := j + 1; Break; end; end; Application.ProcessMessages; { RebuildListViewsTimer.Interval := 100; RebuildListViewsTimer.Enabled := True; } RebuildListViewsTimerTimer(Self); gtk_tree_view_set_headers_visible(PGtkTreeView(SourceListView.FWidget), False); gtk_tree_view_set_headers_visible(PGtkTreeView(SourceListView.FWidget), True); end; procedure TFMain.RebuildListViews(DoRefresh: boolean); begin LeftListView.OnColumnsChanged := nil; RightListView.OnColumnsChanged := nil; ConfMainWindowLeftSortColumn := LeftListView.SortColumnID; ConfMainWindowLeftSortType := Integer(LeftListView.SortOrder); ConfMainWindowRightSortColumn := RightListView.SortColumnID; ConfMainWindowRightSortType := Integer(RightListView.SortOrder); LeftListView.Items.Clear; RightListView.Items.Clear; LeftListView.Columns.Clear; RightListView.Columns.Clear; ConstructColumns(LeftListView); ConstructColumns(RightListView); InactiveItemsTimer.Enabled := False; if DoRefresh then begin FMain.DoRefresh(True, True, True); FMain.DoRefresh(False, True, True); LeftListView.SetSortInfo(ConfMainWindowLeftSortColumn, TGTKTreeViewSortOrder(ConfMainWindowLeftSortType)); RightListView.SetSortInfo(ConfMainWindowRightSortColumn, TGTKTreeViewSortOrder(ConfMainWindowRightSortType)); end; LeftListView.OnColumnsChanged := ListViewColumnsChanged; RightListView.OnColumnsChanged := ListViewColumnsChanged; end; procedure TFMain.RebuildListViewsTimerTimer(Sender: TObject); begin RebuildListViewsTimer.Enabled := False; RebuildListViews(True); LeftListView.OnMouseUp := ListViewMouseUp; RightListView.OnMouseUp := ListViewMouseUp; end; (********************************************************************************************************************************) (********************************************************************************************************************************) procedure TFMain.FillPluginMenu; var i: integer; MenuItem1, MenuItem2: TGTKMenuItem; begin if PluginList.Count = 0 then begin MenuItem1 := TGTKMenuItem.CreateTyped(Self, itLabel); MenuItem1.Caption := LANGNoPluginsFound; MenuItem1.Enabled := False; mnuPlugins.Add(MenuItem1); end else for i := 0 to PluginList.Count - 1 do begin MenuItem1 := TGTKMenuItem.CreateTyped(Self, itImageText); MenuItem1.Caption := TVFSPlugin(PluginList[i]).ModuleName; MenuItem2 := TGTKMenuItem.CreateTyped(Self, itImageText); MenuItem2.Caption := LANGPluginAbout; MenuItem2.Tag := i; MenuItem2.OnClick := miPluginAboutClick; mnuPlugins.Add(MenuItem1); MenuItem1.Add(MenuItem2); end; end; procedure TFMain.miTestPluginClick(Sender: TObject); var Engine: TVFSEngine; b: boolean; begin try InternalLock; FTestPlugin := TFTestPlugin.Create(Self); if (FTestPlugin.Run = mbOK) and (PluginList.Count > 0) then begin Engine := TVFSEngine.Create(PluginList[FTestPlugin.PluginOptionMenu.ItemIndex]); if not Engine.VFSOpenURI(FTestPlugin.CommandEntry.Text, nil, nil, nil, nil) then begin Application.MessageBox(LANGCouldntOpenURI, [mbOK], mbError, mbOK, mbOK); Exit; end; b := True; { if not FTestPlugin.AnonymousCheckButton.Checked then b := HandleLogin(FTestPlugin, Engine, FTestPlugin.UserEntry.Text, FTestPlugin.PasswordEntry.Text); } if b then begin if LeftLastFocused then LeftPanelEngine := Engine else RightPanelEngine := Engine; DoRefresh(LeftLastFocused, False, False); end; end; finally FTestPlugin.Free; Application.ProcessMessages; InternalLockInit(False); end; end; procedure TFMain.miPluginAboutClick(Sender: TObject); const Authors : array[0..1] of PChar = ('', nil); var AboutBox: PGtkWidget; VFSItem: TVFSPlugin; begin VFSItem := PluginList[(Sender as TGTKMenuItem).Tag]; InternalLock; if (libGnomeUI2Handle = nil) or (@gnome_about_new = nil) then Application.MessageBox(Format(LANGPluginAboutInside, [VFSItem.ModuleName, VFSItem.ModuleAbout, VFSItem.ModuleCopyright])) else begin AboutBox := gnome_about_new(PChar(VFSItem.ModuleName), nil, PChar(VFSItem.ModuleCopyright), PChar(VFSItem.ModuleAbout), @Authors, nil, nil, AppIcon64.FPixbuf); gtk_window_set_transient_for(GTK_WINDOW(AboutBox), GTK_WINDOW(FMain.FWidget)); gtk_dialog_run(GTK_DIALOG(AboutBox)); end; Application.ProcessMessages; InternalLockInit(False); end; procedure TFMain.miSavePositionClick(Sender: TObject); begin WriteMainSettings; end; (********************************************************************************************************************************) (********************************************************************************************************************************) procedure TFMain.NewTabInternal(LeftPanel: boolean; _Engine: TPanelEngine; _Path: string; NewTabPosition: integer; SwitchToNewTab: boolean); var AListView: TGTKListView; AEngine: TPanelEngine; ANotebook: TEphyNotebook; ATabList: TStringList; AVBoxList: TList; APath, APathSave: string; VBox: TGTKVBox; DockedToNotebook: boolean; PathsHighlight: TStringList; TabEngines: TList; TabSortIDs: TList; TabSortTypes: TList; i, InsertPos: integer; ForceReparent: boolean; begin if LeftPanel then begin AListView := LeftListView; AEngine := LeftPanelEngine; ANotebook := LeftPanelNotebook; ATabList := LeftPanelTabs; AVBoxList := LeftNotebookBoxList; PathsHighlight := LeftPathsHighlight; TabEngines := LeftTabEngines; TabSortIDs := LeftTabSortIDs; TabSortTypes := LeftTabSortTypes; end else begin AListView := RightListView; AEngine := RightPanelEngine; ANotebook := RightPanelNotebook; ATabList := RightPanelTabs; AVBoxList := RightNotebookBoxList; PathsHighlight := RightPathsHighlight; TabEngines := RightTabEngines; TabSortIDs := RightTabSortIDs; TabSortTypes := RightTabSortTypes; end; DockedToNotebook := ANotebook.Visible; VBox := nil; for i := 0 to 0 + Ord(not DockedToNotebook) do begin InsertPos := 0; if (i = 1) or DockedToNotebook then begin APath := _Path; AEngine := _Engine; InsertPos := NewTabPosition; if (i = 1) and (InsertPos > 1) then InsertPos := 1; end else APath := AEngine.Path; ATabList.Insert(InsertPos, APath); APath := ExtractFileName(ExcludeTrailingPathDelimiter(APath)); if APath = '' then APath := '/'; if i = 0 then APathSave := APath; VBox := TGTKVBox.Create(Self); AVBoxList.Insert(InsertPos, VBox); PathsHighlight.Insert(InsertPos, PDataItem(AListView.Selected.Data)^.FName); TabSortIDs.Insert(InsertPos, Pointer(AListView.SortColumnID)); TabSortTypes.Insert(InsertPos, Pointer(Integer(AListView.SortOrder))); TabEngines.Insert(InsertPos, AEngine); end; if not DockedToNotebook then begin ANotebook.InsertPage(0, AVBoxList[0], StrToUTF8(APathSave)); SetTabLabel(ANotebook, 0, StrToUTF8(APathSave), StrToUTF8(ATabList[0])); end; InsertPos := NewTabPosition; if InsertPos > ATabList.Count then InsertPos := ATabList.Count; ForceReparent := not ANotebook.Visible; if not ANotebook.Visible then ANotebook.Visible := True; i := ANotebook.InsertPage(InsertPos, VBox, StrToUTF8(APath)); SetTabLabel(ANotebook, i, StrToUTF8(APath), StrToUTF8(ATabList[InsertPos])); if SwitchToNewTab then ANotebook.PageIndex := i else if ForceReparent then SwitchTab(0, LeftPanel, True); // We use first page as there were no tabs before end; procedure TFMain.NewTab(LeftPanel, SendSelectedDirToBg: boolean; CustomPath: string = ''); var AEngine: TPanelEngine; ATabList: TStringList; ANotebook: TEphyNotebook; APath: string; DontShowAgain: boolean; NewTabPosition: integer; begin if LeftPanel then begin AEngine := LeftPanelEngine; ATabList := LeftPanelTabs; ANotebook := LeftPanelNotebook; end else begin AEngine := RightPanelEngine; ATabList := RightPanelTabs; ANotebook := RightPanelNotebook; end; if Length(Trim(CustomPath)) > 0 then APath := CustomPath else APath := AEngine.Path; if AEngine is TVFSEngine then begin while AEngine is TVFSEngine do begin APath := AEngine.SavePath; AEngine := AEngine.ParentEngine; end; // Show warning that we couldn't duplicate the VFS location if ConfDuplicateTabWarning then begin MessageBoxShowOnce(PGtkWindow(FWidget), LANGDuplicateTabWarning, LANGDontShowAgain, DontShowAgain, [mbOK], mbInfo, mbOK, mbOK); if DontShowAgain then begin ConfDuplicateTabWarning := False; WriteMainGUISettings; end; end; end; NewTabPosition := ATabList.Count + Ord(ATabList.Count = 0); // Append to end by default if SendSelectedDirToBg and ANotebook.Visible then NewTabPosition := ANotebook.PageIndex + 1; NewTabInternal(LeftPanel, AEngine, APath, NewTabPosition, not SendSelectedDirToBg); end; procedure TFMain.SwitchTab(TabNo: integer; LeftPanel, SetFocus: boolean); var ANotebook: TEphyNotebook; AListView: TGTKListView; AVBoxList: TList; ListBox: TGTKVBox; AScrolledWindow: TGTKScrolledWindow; i: integer; begin if LeftPanel then begin ANotebook := LeftPanelNotebook; AVBoxList := LeftNotebookBoxList; ListBox := LeftListBox; AScrolledWindow := LeftScrolledWindow; AListView := LeftListView; end else begin ANotebook := RightPanelNotebook; AVBoxList := RightNotebookBoxList; ListBox := RightListBox; AScrolledWindow := RightScrolledWindow; AListView := RightListView; end; if (AVBoxList.Count < TabNo) or (TabNo < -1) then Exit; // Remove any objects g_object_ref(AScrolledWindow.FWidget); if ListBox.ChildrenCount > 0 then ListBox.RemoveControl(AScrolledWindow); if AVBoxList.Count > 0 then for i := 0 to AVBoxList.Count - 1 do if TGTKVBox(AVBoxList[i]).ChildrenCount > 0 then TGTKVBox(AVBoxList[i]).RemoveControl(AScrolledWindow); if TabNo >= 0 then begin // Reparent to the tab TGTKVBox(AVBoxList[TabNo]).AddControlEx(AScrolledWindow, True, True, 0); ListBox.Visible := False; ANotebook.Visible := True; end else begin // Reparent back to the panel ListBox.AddControlEx(AScrolledWindow, True, True, 0); ListBox.Visible := True; ANotebook.Visible := False; end; g_object_unref(AScrolledWindow.FWidget); if SetFocus then AListView.SetFocus; end; procedure TFMain.TabNotebookSwitchPage(Sender: TObject; const NewTabNum: integer; const ShouldFocus: boolean); var LeftPanel: boolean; ATabList: TStringList; PathsHighlight: TStringList; TabEngines: TList; AListView: TGTKListView; TabSortIDs: TList; TabSortTypes: TList; begin DebugMsg(['Switch page']); LeftPanel := (Sender as TEphyNotebook) = LeftPanelNotebook; if LeftPanel then begin ATabList := LeftPanelTabs; PathsHighlight := LeftPathsHighlight; TabEngines := LeftTabEngines; TabSortIDs := LeftTabSortIDs; TabSortTypes := LeftTabSortTypes; AListView := LeftListView; end else begin ATabList := RightPanelTabs; PathsHighlight := RightPathsHighlight; TabEngines := RightTabEngines; TabSortIDs := RightTabSortIDs; TabSortTypes := RightTabSortTypes; AListView := RightListView; end; SwitchTab(NewTabNum, LeftPanel, ShouldFocus); if LeftPanel then LeftPanelEngine := TabEngines[NewTabNum] else RightPanelEngine := TabEngines[NewTabNum]; ChangingDir(LeftPanel, ATabList[NewTabNum], PathsHighlight[NewTabNum], '', False, True); AListView.SetSortInfo(Integer(TabSortIDs[NewTabNum]), TGTKTreeViewSortOrder(Integer(TabSortTypes[NewTabNum]))); end; procedure TFMain.miDuplicateTabClick(Sender: TObject); begin if not CommandLineCombo.Entry.Focused then if LeftListView.Focused then NewTab(True, False) else if RightListView.Focused then NewTab(False, False) else if (Sender is TGTKMenuItem) and LeftTabPopup then NewTab(True, False) else if (Sender is TGTKMenuItem) and (not LeftTabPopup) then NewTab(False, False) else DebugMsg(['Couldn''t duplicate tab: No listview focused.']); end; procedure TFMain.miCloseTabClick(Sender: TObject); begin if not CommandLineCombo.Entry.Focused then if LeftListView.Focused then CloseTab(LeftPanelNotebook.PageIndex, True, True) else if RightListView.Focused then CloseTab(RightPanelNotebook.PageIndex, False, True) else if (Sender is TGTKMenuItem) and LeftTabPopup then CloseTab(LeftPanelNotebook.PageIndex, True, True) else if (Sender is TGTKMenuItem) and (not LeftTabPopup) then CloseTab(RightPanelNotebook.PageIndex, False, True) else DebugMsg(['Couldn''t close tab: No listview focused.']); end; procedure TFMain.miCloseAllTabsClick(Sender: TObject); begin if Application.MessageBox(LANGAreYouSureCloseAllTabs, [mbYes, mbNo], mbQuestion, mbYes, mbNo) = mbYes then if (Sender is TGTKMenuItem) and LeftTabPopup then CloseTab(-1, True, True) else if (Sender is TGTKMenuItem) and (not LeftTabPopup) then CloseTab(-1, False, True) else DebugMsg(['Couldn''t close all tabs: No listview focused.']); end; procedure TFMain.CloseTab(TabNo: integer; LeftPanel, CloseVFSEngine: boolean); var ATabList: TStringList; PathsHighlight: TStringList; ANotebook: TEphyNotebook; AVBoxList: TList; i, NewPageIndex: integer; TabEngines: TList; Engine, xEngine: TPanelEngine; TabSortIDs: TList; TabSortTypes: TList; AListView: TGTKListView; begin if LeftPanel then begin ATabList := LeftPanelTabs; PathsHighlight := LeftPathsHighlight; ANotebook := LeftPanelNotebook; AVBoxList := LeftNotebookBoxList; TabEngines := LeftTabEngines; TabSortIDs := LeftTabSortIDs; TabSortTypes := LeftTabSortTypes; AListView := LeftListView; end else begin ATabList := RightPanelTabs; PathsHighlight := RightPathsHighlight; ANotebook := RightPanelNotebook; AVBoxList := RightNotebookBoxList; TabEngines := RightTabEngines; TabSortIDs := RightTabSortIDs; TabSortTypes := RightTabSortTypes; AListView := RightListView; end; DebugMsg(['Close tab, TabNo = ', TabNo, ', PageIndex = ', ANotebook.PageIndex]); if (ANotebook.ChildrenCount < TabNo) or (TabNo < -1) or (not ANotebook.Visible) then begin DebugMsg(['Couldn''t close tab: wrong TabNo']); Exit; end; if TabNo > 0 then begin Engine := TabEngines[TabNo]; if (Engine is TVFSEngine) and CloseVFSEngine and (not CheckForUnsavedConnection(Engine as TVFSEngine, True)) then Exit; end; if (ANotebook.ChildrenCount > 2) and (TabNo >= 0) then begin // Close one tab, leave tab bar visible Engine := TabEngines[TabNo]; // !!!!!!!! NewPageIndex := ANotebook.PageIndex - Ord((TabNo = ANotebook.PageIndex) and (TabNo = ANotebook.ChildrenCount - 1)) + Ord((TabNo = ANotebook.PageIndex) and (ANotebook.ChildrenCount > TabNo + 1)); // if (ANotebook.PageIndex = 0) and (NewPageIndex = 0) then NewPageIndex := 1; ANotebook.PageIndex := NewPageIndex; // Before remove, ensure some other page is active ANotebook.RemovePage(TabNo); ATabList.Delete(TabNo); PathsHighlight.Delete(TabNo); TabEngines.Delete(TabNo); // g_object_unref(TGTKVBox(AVBoxList[TabNo]).FWidget); AVBoxList.Delete(TabNo); TabSortIDs.Delete(TabNo); TabSortTypes.Delete(TabNo); // Try to close the VFS engine if CloseVFSEngine then while Engine is TVFSEngine do try xEngine := Engine; Engine := xEngine.ParentEngine; if not TVFSEngine(xEngine).VFSClose then DebugMsg(['Error closing the engine...']); xEngine.Free; except end; end else begin // Close last/all tabs, hide the tab bar // Change dir to the opposite if (TabNo >= 0) and (TabNo = ANotebook.PageIndex) then begin // we should not change directory while closing all tabs... i := Ord(not Boolean(ANotebook.PageIndex)); if LeftPanel then LeftPanelEngine := TabEngines[i] else RightPanelEngine := TabEngines[i]; ChangingDir(LeftPanel, ATabList[i], PathsHighlight[i]); AListView.SetSortInfo(Integer(TabSortIDs[i]), TGTKTreeViewSortOrder(Integer(TabSortTypes[i]))); end; // Remove the tabs SwitchTab(-1, LeftPanel, False); for i := ANotebook.ChildrenCount - 1 downto 0 do ANotebook.RemovePage(i); ATabList.Clear; PathsHighlight.Clear; for i := 0 to TabEngines.Count - 1 do if (TPanelEngine(TabEngines[i]) is TVFSEngine) and CloseVFSEngine and ((LeftPanel and (LeftPanelEngine <> TabEngines[i])) or ((not LeftPanel) and (RightPanelEngine <> TabEngines[i]))) then begin Engine := TabEngines[i]; while Engine is TVFSEngine do try if (i <> TabNo) and (not CheckForUnsavedConnection(Engine as TVFSEngine, False)) then Exit; xEngine := Engine; Engine := xEngine.ParentEngine; if not TVFSEngine(xEngine).VFSClose then DebugMsg(['Error closing the engine...']); xEngine.Free; except end; end; TabEngines.Clear; { for i := 0 to AVBoxList.Count - 1 do g_object_unref(TGTKVBox(AVBoxList[i]).FWidget); } AVBoxList.Clear; TabSortIDs.Clear; TabSortTypes.Clear; AListView.SetFocus; end; end; procedure TFMain.TabPopupMenuPopup(Sender: TObject); begin LeftTabPopup := Sender = LeftPanelNotebook; end; procedure TFMain.AddTabs(LeftPanel: boolean; TabList: TStringList; TabSortIDs, TabSortTypes: TList; SetTabActive: integer); var ANotebook: TEphyNotebook; ATabList: TStringList; AVBoxList: TList; APath: string; VBox: TGTKVBox; PathsHighlight: TStringList; TabEngines: TList; i: integer; ATabSortIDs: TList; ATabSortTypes: TList; OldEvent: TEphyNotebookTabSwitchedEvent; begin if LeftPanel then begin ANotebook := LeftPanelNotebook; ATabList := LeftPanelTabs; AVBoxList := LeftNotebookBoxList; PathsHighlight := LeftPathsHighlight; TabEngines := LeftTabEngines; ATabSortIDs := LeftTabSortIDs; ATabSortTypes := LeftTabSortTypes; end else begin ANotebook := RightPanelNotebook; ATabList := RightPanelTabs; AVBoxList := RightNotebookBoxList; PathsHighlight := RightPathsHighlight; TabEngines := RightTabEngines; ATabSortIDs := RightTabSortIDs; ATabSortTypes := RightTabSortTypes; end; if (not Assigned(TabList)) or (TabList.Count < 1) or (not Assigned(TabSortIDs)) or (TabSortIDs.Count < 1) or (not Assigned(TabSortTypes)) or (TabSortTypes.Count < 1) then Exit; for i := 0 to TabList.Count - 1 do begin ATabList.Add(TabList[i]); APath := ExtractFileName(ExcludeTrailingPathDelimiter(TabList[i])); if APath = '' then APath := '/'; VBox := TGTKVBox.Create(Self); AVBoxList.Add(VBox); PathsHighlight.Add(''); ATabSortIDs.Add(TabSortIDs[i]); ATabSortTypes.Add(TabSortTypes[i]); if LeftPanel then TabEngines.Add(LeftPanelEngine) else TabEngines.Add(RightPanelEngine); ANotebook.AppendPage(VBox, StrToUTF8(APath)); SetTabLabel(ANotebook, ANotebook.ChildrenCount - 1, StrToUTF8(APath), StrToUTF8(TabList[i])); end; if not ANotebook.Visible then ANotebook.Visible := True; OldEvent := ANotebook.OnTabSwitched; ANotebook.OnTabSwitched := nil; ANotebook.PageIndex := SetTabActive; ANotebook.OnTabSwitched := OldEvent; TabNotebookSwitchPage(ANotebook, SetTabActive, True); end; procedure TFMain.SetTabLabel(Notebook: TEphyNotebook; PageIndex: integer; ALabel, Tooltip: string); var g: PChar; begin if (ConfTabMaxLength > 0) and (g_utf8_strlen(PChar(ALabel), -1) > ConfTabMaxLength) then begin g := malloc(Length(ALabel) + 4); memset(g, 0, Length(ALabel) + 4); g_utf8_strncpy(g, PChar(ALabel), ConfTabMaxLength); ALabel := g + '...'; libc_free(g); end; Notebook.SetTabCaption(PageIndex, ALabel); Notebook.SetTabTooltip(PageIndex, Tooltip); end; procedure TFMain.NotebookReordered(Sender: TObject; const Source, Dest: integer); var ANotebook: TEphyNotebook; ATabList: TStringList; AVBoxList: TList; PathsHighlight: TStringList; TabEngines: TList; ATabSortIDs: TList; ATabSortTypes: TList; begin ANotebook := Sender as TEphyNotebook; if ANotebook = LeftPanelNotebook then begin ATabList := LeftPanelTabs; AVBoxList := LeftNotebookBoxList; PathsHighlight := LeftPathsHighlight; TabEngines := LeftTabEngines; ATabSortIDs := LeftTabSortIDs; ATabSortTypes := LeftTabSortTypes; end else begin ATabList := RightPanelTabs; AVBoxList := RightNotebookBoxList; PathsHighlight := RightPathsHighlight; TabEngines := RightTabEngines; ATabSortIDs := RightTabSortIDs; ATabSortTypes := RightTabSortTypes; end; ATabList.Move(Source, Dest); AVBoxList.Move(Source, Dest); PathsHighlight.Move(Source, Dest); TabEngines.Move(Source, Dest); ATabSortIDs.Move(Source, Dest); ATabSortTypes.Move(Source, Dest); end; procedure TFMain.NotebookTabClosed(Sender: TObject; const TabNum: integer; var CanClose: boolean); begin CloseTab(TabNum, Sender = LeftPanelNotebook, True); CanClose := False; end; procedure TFMain.NotebookTabDoubleClick(Sender: TObject; const TabNum: integer); begin CloseTab(TabNum, Sender = LeftPanelNotebook, True); end; function TFMain.NotebookFindNotebookAtPointerEvent(Sender: TObject; const AbsX, AbsY: integer): TEphyNotebook; var wx, wy: Integer; begin // DebugMsg([' *** NotebookFindNotebookAtPointerEvent(AbsX = ', AbsX, ', AbsY = ', AbsY, ')']); Result := nil; if LeftPanelNotebook.Visible then begin gtk_widget_get_pointer(LeftPanelNotebook.FWidget, @wx, @wy); if (wx > 0) and (wy > 0) and (wx < LeftPanelNotebook.FWidget^.allocation.width) and (wy < LeftPanelNotebook.FWidget^.allocation.height) then Result := LeftPanelNotebook; end else begin gtk_widget_get_pointer(LeftScrolledWindow.FWidget, @wx, @wy); if (wx > 0) and (wy > 0) and (wx < LeftScrolledWindow.FWidget^.allocation.width) and (wy < LeftScrolledWindow.FWidget^.allocation.height) then Result := LeftPanelNotebook; end; if Result = nil then begin if RightPanelNotebook.Visible then begin gtk_widget_get_pointer(RightPanelNotebook.FWidget, @wx, @wy); if (wx > 0) and (wy > 0) and (wx < RightPanelNotebook.FWidget^.allocation.width) and (wy < RightPanelNotebook.FWidget^.allocation.height) then Result := RightPanelNotebook; end else begin gtk_widget_get_pointer(RightScrolledWindow.FWidget, @wx, @wy); if (wx > 0) and (wy > 0) and (wx < RightScrolledWindow.FWidget^.allocation.width) and (wy < RightScrolledWindow.FWidget^.allocation.height) then Result := RightPanelNotebook; end; end; { if Result = LeftPanelNotebook then DebugMsg([' *** NotebookFindNotebookAtPointerEvent: inside LeftPanelNotebook']) else if Result = RightPanelNotebook then DebugMsg([' *** NotebookFindNotebookAtPointerEvent: inside RightPanelNotebook']); } end; function TFMain.NotebookMoveTabToAnotherNotebook(Sender: TObject; Destination: TEphyNotebook; const SourceTabNo, DestTabNo: integer): boolean; var LeftPanel: boolean; ATargetEngine, ASrcEngine: TPanelEngine; ATargetTabList, ASrcTabList: TStringList; ATargetPathsHighlight, ASrcPathsHighlight: TStringList; ATargetTabEngines, ASrcTabEngines: TList; ATargetTabSortIDs, ASrcTabSortIDs: TList; ATargetTabSortTypes, ASrcTabSortTypes: TList; APath: string; DontShowAgain: boolean; dst_no: integer; begin Result := False; DontShowAgain := False; DebugMsg([' *** NotebookMoveTabToAnotherNotebook(SourceTabNo = ', SourceTabNo, ', DestTabNo = ', DestTabNo, ')']); LeftPanel := Sender = LeftPanelNotebook; if LeftPanel then begin ATargetEngine := RightPanelEngine; ATargetTabList := RightPanelTabs; ASrcEngine := LeftPanelEngine; ASrcTabList := LeftPanelTabs; ATargetPathsHighlight := RightPathsHighlight; ATargetTabEngines := RightTabEngines; ATargetTabSortIDs := RightTabSortIDs; ATargetTabSortTypes := RightTabSortTypes; ASrcPathsHighlight := LeftPathsHighlight; ASrcTabEngines := LeftTabEngines; ASrcTabSortIDs := LeftTabSortIDs; ASrcTabSortTypes := LeftTabSortTypes; end else begin ATargetEngine := LeftPanelEngine; ATargetTabList := LeftPanelTabs; ASrcEngine := RightPanelEngine; ASrcTabList := RightPanelTabs; ATargetPathsHighlight := LeftPathsHighlight; ATargetTabEngines := LeftTabEngines; ATargetTabSortIDs := LeftTabSortIDs; ATargetTabSortTypes := LeftTabSortTypes; ASrcPathsHighlight := RightPathsHighlight; ASrcTabEngines := RightTabEngines; ASrcTabSortIDs := RightTabSortIDs; ASrcTabSortTypes := RightTabSortTypes; end; if (SourceTabNo < 0) or (SourceTabNo > ASrcTabList.Count - 1) then begin DebugMsg([' *** NotebookMoveTabToAnotherNotebook: invalid SourceTabNo']); Exit; end; APath := TPanelEngine(ASrcTabEngines[SourceTabNo]).Path; (* -- disabled, we allow to _move_ (not duplicate) non-local engine if TPanelEngine(ASrcTabEngines[SourceTabNo]) is TVFSEngine then begin while TPanelEngine(ASrcTabEngines[SourceTabNo]) is TVFSEngine do begin APath := TPanelEngine(ASrcTabEngines[SourceTabNo]).SavePath; ASrcTabEngines[SourceTabNo] := TPanelEngine(ASrcTabEngines[SourceTabNo]).ParentEngine; end; // Show warning that we couldn't duplicate the VFS location if ConfDuplicateTabWarning then begin MessageBoxShowOnce(LANGDuplicateTabWarning, LANGDontShowAgain, DontShowAgain, [mbOK], mbInfo, mbOK, mbOK); if DontShowAgain then begin ConfDuplicateTabWarning := False; WriteMainGUISettings; end; end; end; while ATargetEngine is TVFSEngine do ATargetEngine := ATargetEngine.ParentEngine; *) dst_no := DestTabNo; if dst_no < 0 then dst_no := ATargetTabList.Count + Ord(ATargetTabList.Count = 0); CloseTab(SourceTabNo, LeftPanel, False); if not (ASrcEngine is TLocalTreeEngine) then NewTabInternal(not LeftPanel, ASrcEngine, APath, dst_no, True) else NewTabInternal(not LeftPanel, ATargetEngine, APath, dst_no, True); Result := True; end; procedure TFMain.NotebookTabFocusOnlyEvent(Sender: TObject; const TabNum: integer); begin if Sender = LeftPanelNotebook then LeftListView.SetFocus else if Sender = RightPanelNotebook then RightListView.SetFocus else Exit; end; (********************************************************************************************************************************) (********************************************************************************************************************************) function TFMain.HandleVFSArchive(LeftPanel: boolean; const FullPath, HighlightItem, TargetPath: string): boolean; var Plugin: TVFSPlugin; Engine, NewEngine: TPanelEngine; NewPath: string; begin Plugin := FindVFSPlugin(ExtractFileName(FullPath)); Result := Plugin <> nil; if Result then begin if LeftPanel then Engine := LeftPanelEngine else Engine := RightPanelEngine; if Engine is TLocalTreeEngine then begin DebugMsg(['Found plugin ''', Plugin.ModuleID, ''', trying to open the file ''', FullPath, '''']); ChangingDir(LeftPanel, TargetPath, FullPath, HighlightItem, False, False, Plugin); end else begin DebugMsg(['Found plugin ''', Plugin.ModuleID, ''', archive is nested in another archive, extracting first.']); NewPath := ''; Result := ExtractFromArchive(NewPath, Engine, FullPath, False); if Result then begin DebugMsg(['Extract OK, trying to open the file ''', NewPath, '''']); ChangingDir(LeftPanel, TargetPath, NewPath, HighlightItem, False, False, Plugin); if LeftPanel then NewEngine := LeftPanelEngine else NewEngine := RightPanelEngine; if (NewEngine is TVFSEngine) and (NewEngine.ParentEngine = Engine) then (NewEngine as TVFSEngine).RemoveFileOnClose := NewPath; end; end; end; end; function TFMain.CloseVFS(LeftPanel, SuppressRefresh: boolean): string; var Engine: TPanelEngine; begin if LeftPanel then Engine := LeftPanelEngine else Engine := RightPanelEngine; if (not Assigned(Engine.ParentEngine)) or (not (Engine is TVFSEngine)) then begin if LeftPanel then begin LeftPanelEngine := LeftLocalEngine; Result := LeftPanelEngine.Path; end else begin RightPanelEngine := RightLocalEngine; Result := RightPanelEngine.Path; end; Exit; end; if not CheckForUnsavedConnection(Engine as TVFSEngine, (not SuppressRefresh) and (not ApplicationShuttingDown)) then Exit; if LeftPanel then LeftPanelEngine := Engine.ParentEngine else RightPanelEngine := Engine.ParentEngine; Result := Engine.SavePath; if not SuppressRefresh then ChangingDir(LeftPanel, Engine.SavePath, Engine.ParentEngine.LastHighlightItem, Engine.ParentEngine.LastHighlightItem, False, True); if not TVFSEngine(Engine).VFSClose then DebugMsg(['Error closing the engine...']); Engine.Free; end; function TFMain.CheckForUnsavedConnection(Engine: TVFSEngine; AllowCancel: boolean): boolean; // Returns False to Cancel var Buttons: TMessageButtons; CancelButton: TMessageButton; AFConnectionProperties: TFConnectionProperties; URI: string; ConnMgrItem: TConnMgrItem; i: integer; DontShowAgain: boolean; res: TMessageButton; begin Result := True; URI := Engine.GetPathURI; if Engine.OpenedFromQuickConnect and (Length(Trim(URI)) > 0) then begin Buttons := [mbYes, mbNo]; CancelButton := mbNo; if AllowCancel then begin Include(Buttons, mbCancel); CancelButton := mbCancel; end; if ConfWarnUnsavedConnection then begin DontShowAgain := False; res := MessageBoxShowOnce(PGtkWindow(FWidget), PChar(Format(LANGTheActiveConnectionHasNotBeenSaved, [Engine.GetPathURI])), LANGDontShowAgain, DontShowAgain, Buttons, mbWarning, mbNo, CancelButton); if DontShowAgain then begin ConfWarnUnsavedConnection := False; WriteMainGUISettings; end; case res of mbYes: begin AFConnectionProperties := TFConnectionProperties.Create(Self); try AFConnectionProperties.URIEntry.Text := URI; if (Engine.CustomPluginIDSave <> '') and (AFConnectionProperties.PluginOptionMenu.Items.Count > 0) then for i := 0 to PluginList.Count - 1 do if TVFSPlugin(PluginList[i]).ModuleID = Engine.CustomPluginIDSave then AFConnectionProperties.PluginOptionMenu.ItemIndex := i + 1; if AFConnectionProperties.Run = mbOK then begin ReadConnections; ConnMgrItem := TConnMgrItem.Create; ConnMgrItem.ConnectionName := AFConnectionProperties.NameEntry.Text; ConnMgrItem.ServiceType := AFConnectionProperties.GetService; ConnMgrItem.Server := AFConnectionProperties.ServerEntry.Text; ConnMgrItem.Username := AFConnectionProperties.UserNameEntry.Text; ConnMgrItem.Password := AFConnectionProperties.PasswordEntry.Text; ConnMgrItem.TargetDir := AFConnectionProperties.TargetDirEntry.Text; ConnMgrItem.PluginID := ''; if AFConnectionProperties.PluginOptionMenu.ItemIndex <> 0 then ConnMgrItem.PluginID := TVFSPlugin(PluginList[AFConnectionProperties.PluginOptionMenu.ItemIndex - 1]).ModuleID; ConfConnMgrActiveItem := ConnectionMgrList.Add(ConnMgrItem); WriteConnections; end; finally AFConnectionProperties.Free; end; Result := True; end; mbNo: Result := True; mbCancel: Result := False; else {Cancel?} Result := not AllowCancel; end; end else Result := True; end; end; (********************************************************************************************************************************) (********************************************************************************************************************************) procedure TFMain.ShowBookmarkQuick(LeftPanel: boolean); var SenderControl: TGTKControl; begin if LeftPanel then SenderControl := LeftBookmarkButton else SenderControl := RightBookmarkButton; miAddBookmark.Visible := False; miEditBookmarks.Visible := False; miBookmarksSeparator.Visible := False; gtk_menu_popup(PGtkMenu(mnuBookmarks.FMenu), nil, nil, menu_position_cb, SenderControl.FWidget, 1, GDK_CURRENT_TIME); if LeftPanel then LeftListView.SetFocus else RightListView.SetFocus; end; procedure TFMain.mnuBookmarksPopup(Sender: TObject); begin miAddBookmark.Visible := True; miEditBookmarks.Visible := False; miBookmarksSeparator.Visible := mnuBookmarks.Count > 3; end; (********************************************************************************************************************************) procedure TFMain.miSearchClick(Sender: TObject); var Engine: TPanelEngine; DataList: TList; AListView: TGTKListView; i: integer; begin if LeftLastFocused then Engine := LeftPanelEngine else Engine := RightPanelEngine; try FSearch := TFSearch.Create(Self); FSearch.ParentForm := FMain; FSearch.Engine := Engine; FSearch.SearchInEntry.Text := StrToUTF8(ExcludeTrailingPathDelimiter(Engine.Path)); if Length(FSearch.SearchInEntry.Text) < 1 then FSearch.SearchInEntry.Text := '/'; FSearch.CaseSensitiveMatchCheckButton.Checked := ConfSearchFilterCaseSensitive; FSearch.StayCurrentFSCheckButton.Checked := ConfSearchOtherFS; FSearch.SearchArchivesCheckButton.Checked := ConfSearchArchives; FSearch.CaseSensitiveCheckButton.Checked := ConfSearchTextCaseSensitive; case FSearch.Run of mbOK: ; mbApply: begin DebugMsg(['TFMain.miSearchClick: FSearch.GoToFileArchive = "', FSearch.GoToFileArchive, '", FSearch.GoToFile = "', FSearch.GoToFile, '"']); if Length(FSearch.GoToFileArchive) > 0 then begin HandleVFSArchive(LeftLastFocused, FSearch.GoToFileArchive, ExtractFileName(FSearch.GoToFileArchive), ExtractFilePath(FSearch.GoToFile)); if LeftLastFocused then begin Engine := LeftPanelEngine; DataList := LeftPanelData; AListView := LeftListView; end else begin Engine := RightPanelEngine; DataList := RightPanelData; AListView := RightListView; end; if Engine is TVFSEngine then begin Engine.SavePath := ExtractFilePath(FSearch.GoToFileArchive); // (Engine as TVFSEngine).ParentEngine.LastHighlightItem := ExtractFileName(FSearch.GoToFileArchive); for i := 0 to DataList.Count - 1 do if WideCompareText(string(PDataItem(DataList[i])^.FName), ExtractFileName(FSearch.GoToFile)) = 0 then begin AListView.Items[i].Selected := True; AListView.Items[i].SetCursor(0, False, not Application.GTKVersion_2_2_0_Up, 0.5, 0); Break; end; end; end else ChangingDir(LeftLastFocused, ExtractFilePath(FSearch.GoToFile), ExtractFileName(FSearch.GoToFile)); end; end; finally ConfSearchFilterCaseSensitive := FSearch.CaseSensitiveMatchCheckButton.Checked; ConfSearchOtherFS := FSearch.StayCurrentFSCheckButton.Checked; ConfSearchArchives := FSearch.SearchArchivesCheckButton.Checked; ConfSearchTextCaseSensitive := FSearch.CaseSensitiveCheckButton.Checked; FSearch.Free; Application.ProcessMessages; InternalLockInit(False); end; end; (********************************************************************************************************************************) (********************************************************************************************************************************) procedure TFMain.miOpenConnectionClick(Sender: TObject); var b: boolean; begin try InternalLock; ReadConnections; FConnectionManager := TFConnectionManager.Create(Self); if LeftLastFocused then FConnectionManager.SourcePanelEngine := LeftPanelEngine else FConnectionManager.SourcePanelEngine := RightPanelEngine; b := FConnectionManager.Run = mbOK; WriteConnections; // Save connection manager data if b and (FConnectionManager.ConnectedEngine <> nil) then begin while FConnectionManager.ConnectedEngine.ParentEngine is TVFSEngine do FConnectionManager.ConnectedEngine.ParentEngine := FConnectionManager.ConnectedEngine.ParentEngine.ParentEngine; if FConnectionManager.SourcePanelEngine is TVFSEngine then CloseVFS(LeftLastFocused, True); if LeftLastFocused then LeftPanelEngine := FConnectionManager.ConnectedEngine else RightPanelEngine := FConnectionManager.ConnectedEngine; DoRefresh(LeftLastFocused, False, False); end; finally FConnectionManager.Free; Application.ProcessMessages; InternalLockInit(False); end; end; procedure TFMain.miQuickConnectClick(Sender: TObject); var b: boolean; begin try InternalLock; ReadConnections; FQuickConnect := TFQuickConnect.Create(Self); if LeftLastFocused then FQuickConnect.SourcePanelEngine := LeftPanelEngine else FQuickConnect.SourcePanelEngine := RightPanelEngine; b := FQuickConnect.Run = mbOK; WriteConnections; // Save connection manager data if b and (FQuickConnect.ConnectedEngine <> nil) then begin while FQuickConnect.ConnectedEngine.ParentEngine is TVFSEngine do FQuickConnect.ConnectedEngine.ParentEngine := FQuickConnect.ConnectedEngine.ParentEngine.ParentEngine; if FQuickConnect.SourcePanelEngine is TVFSEngine then CloseVFS(LeftLastFocused, True); if LeftLastFocused then LeftPanelEngine := FQuickConnect.ConnectedEngine else RightPanelEngine := FQuickConnect.ConnectedEngine; DoRefresh(LeftLastFocused, False, False); end; finally FQuickConnect.Free; Application.ProcessMessages; InternalLockInit(False); end; end; procedure TFMain.miDisconnectClick(Sender: TObject); begin CloseVFS(LeftLastFocused, False); end; procedure TFMain.DisconnectButtonClick(Sender: TObject); begin CloseVFS(Sender = LeftDisconnectButton, False); if (Sender = LeftDisconnectButton) and (not LeftListView.Focused) then LeftListView.SetFocus else if (Sender = RightDisconnectButton) and (not RightListView.Focused) then RightListView.SetFocus; end; procedure TFMain.LeaveArchiveButtonClick(Sender: TObject); begin CloseVFS(Sender = LeftLeaveArchiveButton, False); if (Sender = LeftLeaveArchiveButton) and (not LeftListView.Focused) then LeftListView.SetFocus else if (Sender = RightLeaveArchiveButton) and (not RightListView.Focused) then RightListView.SetFocus; end; procedure TFMain.OpenTerminalButtonClick(Sender: TObject); var CurrentPath: string; AEngine: TPanelEngine; Error: integer; begin Error := 0; if LeftLastFocused then AEngine := LeftPanelEngine else AEngine := RightPanelEngine; while not (AEngine is TLocalTreeEngine) do AEngine := AEngine.ParentEngine; CurrentPath := AEngine.Path; libc_chdir(PChar(CurrentPath)); ExecuteProgram('bash', CurrentPath, False, True, Error); libc_chdir('/'); end; (********************************************************************************************************************************) procedure TFMain.miFilePropertiesClick(Sender: TObject); var LeftPanel: boolean; AListView: TGTKListView; Engine: TPanelEngine; DataList: TList; i: integer; SelCount: longint; AFile, NextItem1, NextItem2: string; Stat: PDataItemSL; { AWorkingThread: TWorkerThread; AFProgress: TFProgress; } begin try InternalLock; if LeftListView.Focused then LeftPanel := True else if RightListView.Focused then LeftPanel := False else LeftPanel := LeftLastFocused; if LeftPanel then begin AListView := LeftListView; Engine := LeftPanelEngine; DataList := LeftPanelData; end else begin AListView := RightListView; Engine := RightPanelEngine; DataList := RightPanelData; end; SelCount := 0; if DataList.Count > 0 then for i := 0 to DataList.Count - 1 do with PDataItem(DataList[i])^ do if Selected and (not UpDir) then Inc(SelCount); if (SelCount = 0) and ((not Assigned(AListView.Selected)) {or PDataItem(AListView.Selected.Data)^.UpDir}) then begin Application.MessageBox(LANGNoFilesSelected, [mbOK], mbInfo, mbNone, mbOK); Exit; end; AFile := ''; if SelCount = 0 then AFile := PDataItem(AListView.Selected.Data)^.FName else for i := 0 to DataList.Count - 1 do with PDataItem(DataList[i])^ do if Selected and (not UpDir) then begin AFile := FName; Break; end; if AFile <> '' then try FProperties := TFProperties.Create(Self); Stat := Engine.GetFileInfoSL(IncludeTrailingPathDelimiter(Engine.Path) + AFile); if not Assigned(Stat) then Exit; // FProperties.AssignMode(Stat^.Mode, AFile, Stat^.UID, Stat^.GID); FProperties.DisplayFileName := AFile; if FProperties.Run = mbOK then begin { FindNextSelected(AListView, DataList, NextItem1, NextItem2); AWorkingThread := TWorkerThread.Create; AFProgress := TFProgress.Create(Self); try AFProgress.SetNumBars(False); AFProgress.ProgressBar.Value := 0; AFProgress.Label1.Caption := LANGChownProgress; AWorkingThread.ProgressForm := AFProgress; if Assigned(AListView.Selected) then AWorkingThread.SelectedItem := AListView.Selected.Data; AWorkingThread.ParamBool1 := FChown.RecursiveCheckButton.Checked; AWorkingThread.ParamCardinal1 := FChown.LastUID; AWorkingThread.ParamCardinal2 := FChown.LastGID; AWorkingThread.Engine := Engine; AWorkingThread.LeftPanel := LeftPanel; AWorkingThread.DataList := DataList; AWorkingThread.WorkerProcedure := ChownFilesWorker; AWorkingThread.Resume; AFProgress.ParentForm := FMain; if (SelCount > 1) or FChown.RecursiveCheckButton.Checked then AFProgress.ShowModal; ProcessProgressThread(AWorkingThread, AFProgress); AFProgress.Close; finally AFProgress.Free; AWorkingThread.Free; end; } NextItem1 := ''; NextItem2 := ''; ChangingDir(LeftPanel, Engine.Path, NextItem1, NextItem2); DoRefresh(not LeftPanel, True, True); end; finally FreeDataItem(Stat); FProperties.Free; end; finally Application.ProcessMessages; InternalLockInit(False); end; end; (********************************************************************************************************************************) procedure TFMain.CopyFilenamesToClipboard(FullPaths, LeftPanel: boolean); var DataList: TList; Engine: TPanelEngine; AListView: TGTKListView; i, x: longint; SelCount: longint; clip: PGtkClipboard; s: string; begin if LeftPanel then begin AListView := LeftListView; Engine := LeftPanelEngine; DataList := LeftPanelData; end else begin AListView := RightListView; Engine := RightPanelEngine; DataList := RightPanelData; end; clip := gtk_clipboard_get(gdk_atom_intern('CLIPBOARD', False)); SelCount := 0; if DataList.Count > 0 then for i := 0 to DataList.Count - 1 do with PDataItem(DataList[i])^ do if Selected and (not UpDir) then Inc(SelCount); if (SelCount = 0) and ((not Assigned(AListView.Selected)) or PDataItem(AListView.Selected.Data)^.UpDir) then begin // Empty the clipboard gtk_clipboard_clear(clip); Exit; end; if SelCount = 0 then begin s := PDataItem(AListView.Selected.Data)^.FDisplayName; if FullPaths then s := IncludeTrailingPathDelimiter(Engine.GetPath) + s; end else begin s := ''; if DataList.Count > 0 then for i := 0 to DataList.Count - 1 do begin x := AListView.ConvertFromSorted(i); if (x >= 0) and (x < DataList.Count) and PDataItem(DataList[x])^.Selected then begin if FullPaths then s := s + IncludeTrailingPathDelimiter(Engine.GetPath); s := s + PDataItem(DataList[x])^.FDisplayName + #10; end; end; end; gtk_clipboard_set_text(clip, PChar(s), Length(s)); end; procedure TFMain.miPathBoxCopyPathClick(Sender: TObject); var clip: PGtkClipboard; s: string; begin if LeftLastFocused then s := LeftPanelEngine.Path else s := RightPanelEngine.Path; clip := gtk_clipboard_get(gdk_atom_intern('CLIPBOARD', False)); gtk_clipboard_set_text(clip, PChar(StrToUTF8(s)), Length(StrToUTF8(s))); end; procedure TFMain.miCopyNamesClick(Sender: TObject); begin if LeftListView.Focused then CopyFilenamesToClipboard(Sender = miCopyFullPaths, True) else if RightListView.Focused then CopyFilenamesToClipboard(Sender = miCopyFullPaths, False); end; (********************************************************************************************************************************) (********************************************************************************************************************************) function TFMain.HandleRunFromArchive(var APath: string; Engine: TPanelEngine; Command, FileTypeDesc: string; BypassDialog: boolean): boolean; var Res: TMessageButton; Stat: PDataItemSl; s: string; AListView: TGTKListView; begin Result := False; try if not BypassDialog then begin Stat := Engine.GetFileInfoSL(APath); FRunFromVFS := TFRunFromVFS.Create(Self); FRunFromVFS.FileNameLabel2.Caption := Format('%s ', [StrToUTF8(APath)]); if FileTypeDesc = '' then FileTypeDesc := LANGHandleRunFromArchive_FileTypeDesc_Unknown; FRunFromVFS.FileTypeLabel2.Caption := Format('%s ', [FileTypeDesc]); if Assigned(Stat) then begin if (ConfSizeFormat < 5) or (Stat^.Size < 1024) then s := Format(' %s', [LANGHandleRunFromArchive_Bytes]); FRunFromVFS.SizeLabel2.Caption := Format('%s%s ', [FormatSize(Stat^.Size, 0), s]); if (ConfSizeFormat < 5) or (Stat^.Size < 1024) then s := Format(' %s', [LANGHandleRunFromArchive_Bytes]); if Stat^.PackedSize >= 0 then begin FRunFromVFS.PackedSizeLabel2.Caption := Format('%s%s ', [FormatSize(Stat^.PackedSize, 0), s]); end else begin FRunFromVFS.PackedSizeLabel2.Visible := False; FRunFromVFS.PackedSizeLabel.Visible := False; end; FRunFromVFS.DateLabel2.Caption := Format('%s ', [FormatDate(Stat^.ModifyTime, True, True)]); if (Command = '') and (not Stat^.IsExecutable) then begin FRunFromVFS.OpensWithLabel2.Caption := Format('%s ', [LANGHandleRunFromArchive_NotAssociated]); FRunFromVFS.ExecuteButton.Enabled := False; FRunFromVFS.ExecuteAllButton.Enabled := False; end else begin if Command = '' then Command := LANGHandleRunFromArchive_SelfExecutable; FRunFromVFS.OpensWithLabel2.Caption := Format('%s ', [Command]); end; FreeDataItem(Stat); end else begin FRunFromVFS.SizeLabel2.Caption := Format('%s ', ['??']); FRunFromVFS.PackedSizeLabel2.Caption := Format('%s ', ['??']); FRunFromVFS.DateLabel2.Caption := Format('%s ', ['??']); FRunFromVFS.OpensWithLabel2.Caption := Format('%s ', [Command]); end; FRunFromVFS.FileNameLabel2.UseMarkup := True; FRunFromVFS.FileTypeLabel2.UseMarkup := True; FRunFromVFS.SizeLabel2.UseMarkup := True; FRunFromVFS.PackedSizeLabel2.UseMarkup := True; FRunFromVFS.DateLabel2.UseMarkup := True; FRunFromVFS.OpensWithLabel2.UseMarkup := True; Res := FRunFromVFS.Run; FRunFromVFS.Close; FRunFromVFS.Free; Application.ProcessMessages; end else Res := mbYes; if Res in [mbYes, mbNo] then begin Result := False; if Res = mbYes then DebugMsg(['(II) HandleRunFromArchive: Selected extract and execute single item']) else DebugMsg(['(II) HandleRunFromArchive: Selected extract all and execute']); if LeftLastFocused then AListView := LeftListView else AListView := RightListView; Engine.Path := ExtractFilePath(APath); // Extract the files Result := ExtractFromArchive(APath, Engine, IncludeTrailingPathDelimiter(Engine.Path) + string(PDataItem(AListView.Selected.Data)^.FName), Res = mbNo); end; finally Application.ProcessMessages; end; end; function TFMain.ExtractFromArchive(var NewPath: string; Engine: TPanelEngine; const FilePath: string; ExtractAll: boolean): boolean; var s: string; AWorkingThread: TWorkerThread; AFProgress: TFProgress; tmp: PChar; LocalEngine: TLocalTreeEngine; DataList: TList; err: integer; begin Result := False; s := IncludeTrailingPathDelimiter(ConfTempPath) + 'tuxcmd-XXXXXX'; tmp := strdup(PChar(s)); tmp := mkdtemp(tmp); if tmp = nil then begin err := errno; DebugMsg(['(EE) ExtractFromArchive: Couldn''t create temporary directory: ', strerror(err)]); Application.MessageBox(PChar(Format(LANGHandleRunFromArchive_CouldntCreateTemporaryDirectory, [s, string(strerror(err))])), [mbOK], mbError, mbOK, mbOK); Result := False; Exit; end; DebugMsg(['(II) ExtractFromArchive: Using temporary directory: ', tmp]); UsedTempPaths.Add(string(tmp)); if LeftLastFocused then DataList := LeftPanelData else DataList := RightPanelData; LocalEngine := TLocalTreeEngine.Create; AFProgress := TFProgress.Create(Self); AWorkingThread := TWorkerThread.Create; try DebugMsg(['TFMain.ExtractFromArchive: Creating thread...']); AFProgress.Label1.Caption := LANGCopySC; AFProgress.SetNumBars(True); AFProgress.ProgressBar.Value := 0; AWorkingThread.ProgressForm := AFProgress; LocalEngine.SetPath(tmp); AWorkingThread.ExtractFromVFSMode := True; AWorkingThread.DestEngine := LocalEngine; AWorkingThread.SrcEngine := Engine; AWorkingThread.ExtractFromVFSAll := ExtractAll; AWorkingThread.LeftPanel := LeftLastFocused; AWorkingThread.DataList := DataList; AWorkingThread.WorkerProcedure := CopyFilesWorker; AWorkingThread.ParamBool3 := True; AWorkingThread.ParamBool4 := False; AWorkingThread.ParamBool5 := True; AWorkingThread.ParamString1 := string(tmp); AWorkingThread.ParamString2 := FilePath; AWorkingThread.ParamDataItem1 := nil; DebugMsg(['*** Copy: AWorkingThread.Resume']); AWorkingThread.Resume; DebugMsg(['*** Copy: AWorkingThread.Resumed.']); AFProgress.ParentForm := FMain; AFProgress.ShowModal; ProcessProgressThread(AWorkingThread, AFProgress); AFProgress.Close; Result := (not AWorkingThread.FCancelled) and (not AWorkingThread.ErrorHappened); finally DebugMsg(['TFMain.ExtractFromArchive: Freeing thread...']); LocalEngine.Free; AFProgress.Free; AWorkingThread.Free; end; DebugMsg(['(II) ExtractFromArchive: Old path = ', FilePath]); if Result then begin if not ExtractAll then NewPath := IncludeTrailingPathDelimiter(string(tmp)) + ExtractFileName(FilePath) else NewPath := ExcludeTrailingPathDelimiter(string(tmp)) + FilePath; DebugMsg(['(II) ExtractFromArchive: New path = ', NewPath]); // Test for read access to the new file if (not ExtractAll) and (access(PChar(NewPath), R_OK) <> 0) then begin Result := False; DebugMsg(['(EE) ExtractFromArchive: access test to the new file failed.']); end; end; libc_free(tmp); DebugMsg(['(II) ExtractFromArchive: Copy OK, Result = ', Result]); end; (********************************************************************************************************************************) procedure TFMain.PasswordButtonClick(Sender: TObject); var Engine: TPanelEngine; Password: PChar; begin if Sender = LeftPasswordButton then Engine := LeftPanelEngine else if Sender = RightPasswordButton then Engine := RightPanelEngine else Exit; if not (Engine is TVFSEngine) then Exit; try Password := nil; if HandleVFSAskPasswordCallback(FWidget, PChar(LANGTheArchiveIsEncryptedAndRequiresPassword), nil, nil, PChar(TVFSEngine(Engine).Password), VFS_ASK_PASSWORD_NEED_PASSWORD or VFS_ASK_PASSWORD_ARCHIVE_MODE, nil, @Password, nil, nil, nil) then if Password <> nil then begin TVFSEngine(Engine).Password := string(Password); TVFSEngine(Engine).PasswordUsed := False; TVFSEngine(Engine).ResetPassword; g_free(Password); end; except on E: Exception do DebugMsg(['*** Exception raised in FMain.HandleSetPassword: (', E.ClassName, '): ', E.Message]); end; end; end. tuxcmd-0.6.70+dfsg/USymlink.pas0000644000175000017500000000634511300022643015324 0ustar salvisalvi(* Tux Commander - USymlink - Symbolic link Copyright (C) 2004 Tomas Bzatek Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit USymlink; interface uses SysUtils, Types, Classes, Variants, GTKControls, GTKForms, GTKStdCtrls, GTKExtCtrls, GTKConsts; type TFSymlink = class(TGTKDialog) Label1, Label2: TGTKLabel; FromEntry, ToEntry: TGTKEntry; Box: TGTKVBox; RelativeCheckButton: TGTKCheckButton; procedure FormCreate(Sender: TObject); override; procedure FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); procedure RelativeCheckButtonToggled(Sender: TObject); private { Private declarations } public FileName, PossibleNewName: string; end; var FSymlink: TFSymlink; implementation uses ULocale, UCoreUtils; procedure TFSymlink.FormCreate(Sender: TObject); begin SetDefaultSize(500, -1); Caption := LANGFSymlink_Caption; Buttons := [mbOK, mbCancel]; Box := TGTKVBox.Create(Self); Label1 := TGTKLabel.Create(Self); Label1.Caption := LANGFSymlink_ExistingFilename; Label1.UseUnderline := True; Label1.XAlign := 0; Label1.XPadding := 0; FromEntry := TGTKEntry.Create(Self); Label1.FocusControl := FromEntry; Label2 := TGTKLabel.Create(Self); Label2.Caption := LANGFSymlink_SymlinkFilename; Label2.UseUnderline := True; Label2.XAlign := 0; Label2.XPadding := 0; ToEntry := TGTKEntry.Create(Self); Label2.FocusControl := ToEntry; RelativeCheckButton := TGTKCheckButton.CreateWithLabel(Self, LANGFSymlink_RelativePath); RelativeCheckButton.OnToggled := RelativeCheckButtonToggled; Box.AddControlEx(Label1, False, False, 2); Box.AddControlEx(FromEntry, False, False, 0); Box.AddControlEx(RelativeCheckButton, False, False, 0); Box.AddControlEx(TGTKHSeparator.Create(Self), False, False, 5); Box.AddControlEx(Label2, False, False, 2); Box.AddControlEx(ToEntry, False, False, 0); Box.BorderWidth := 10; ClientArea.AddControlEx(Box, True, True, 0); OnKeyDown := FormKeyDown; ToEntry.SetFocus; end; procedure TFSymlink.FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); begin case Key of GDK_RETURN, GDK_KP_ENTER: ModalResult := mbOK; GDK_ESCAPE: ModalResult := mbCancel; end; end; procedure TFSymlink.RelativeCheckButtonToggled(Sender: TObject); begin if RelativeCheckButton.Checked then FromEntry.Text := StrToUTF8(BuildRelativePath(FileName, PossibleNewName)) else FromEntry.Text := StrToUTF8(FileName); end; end. tuxcmd-0.6.70+dfsg/UGnome.pas0000644000175000017500000021306111300022643014736 0ustar salvisalvi(* Tux Commander - UGnome - libgnome and libgnomeui related functions and classes Copyright (C) 2008 Tomas Bzatek Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UGnome; interface uses glib2, gdk2, gdk2pixbuf, gtk2, Classes, ULibc, GTKForms, GTKControls, GTKStdCtrls, GTKExtCtrls, GTKClasses, GTKDialogs, GTKUtils, GTKConsts, uVFSprototypes; type TGnomeColorButton = class(TGTKButton) private FUseGnomeUI: boolean; FColor: TGDKColor; FColorChanged: TNotifyEvent; function GetColor: TGDKColor; procedure SetColor(Value: TGDKColor); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure SetDefaultColor; procedure UnsetDefaultColor; property Color: GTKClasses.TGDKColor read GetColor write SetColor; published property OnColorChanged: TNotifyEvent read FColorChanged write FColorChanged; end; TGnomeIconEntry = class(TGTKVBox) private FIconChanged: TNotifyEvent; function GetFilename: string; procedure SetFilename(Value: string); procedure SetPixmapSubdir(Value: string); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; published property Filename: string read GetFilename write SetFilename; property PixpamSubdir: string write SetPixmapSubdir; property OnIconChanged: TNotifyEvent read FIconChanged write FIconChanged; end; TGnomeDateEdit = class(TGTKHBox) private function GetTime: time_t; procedure SetTime(Value: time_t); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; published property Time: time_t read GetTime write SetTime; end; TEphyNotebook = class; TEphyNotebookReorderedEvent = procedure (Sender: TObject; const Source, Dest: integer) of object; TEphyNotebookTabCloseEvent = procedure (Sender: TObject; const TabNum: integer; var CanClose: boolean) of object; TEphyNotebookTabDoubleClickEvent = procedure (Sender: TObject; const TabNum: integer) of object; TEphyNotebookFindNotebookAtPointerEvent = function (Sender: TObject; const AbsX, AbsY: integer): TEphyNotebook of object; TEphyNotebookMoveTabToAnotherNotebookEvent = function (Sender: TObject; Destination: TEphyNotebook; const SourceTabNo, DestTabNo: integer): boolean of object; TEphyNotebookTabSwitchedEvent = procedure (Sender: TObject; const NewTabNum: integer; const ShouldFocus: boolean) of object; TEphyNotebookTabFocusOnlyEvent = procedure (Sender: TObject; const NewTabNum: integer) of object; // Extended capatibilities notebook (icons, close buttons, reordering by drag&drop) TEphyNotebook = class(TGTKNotebook) private FShowCloseButtons: boolean; FShowTooltips: boolean; FAllowDragDrop: boolean; FAllowDragOutside: boolean; FTooltips: PGtkTooltips; FOnNotebookReordered: TEphyNotebookReorderedEvent; FOnTabClose: TEphyNotebookTabCloseEvent; FOnTabDoubleClick: TEphyNotebookTabDoubleClickEvent; FOnFindNotebookAtPointer: TEphyNotebookFindNotebookAtPointerEvent; FOnMoveTabToAnotherNotebook: TEphyNotebookMoveTabToAnotherNotebookEvent; FOnTabSwitchedEvent: TEphyNotebookTabSwitchedEvent; FOnTabFocusOnlyEvent: TEphyNotebookTabFocusOnlyEvent; // Notebook private motion_notify_handler_id, grab_notify_handler_id, toplevel_grab_broken_handler_id, toplevel_motion_notify_handler_id, toplevel_button_release_handler_id: gulong; x_start, y_start, drag_start_idx: gint; drag_in_progress: gboolean; cursor: PGdkCursor; FBusy: boolean; procedure SetShowCloseButtons(Value: boolean); procedure SetShowTooltips(Value: boolean); procedure SetAllowDragDrop(Value: boolean); procedure SetAllowDragOutside(Value: boolean); function find_tab_num_at_pos(abs_x, abs_y: integer): integer; function find_notebook_at_pointer(abs_x, abs_y: integer): TEphyNotebook; function is_in_notebook_window(notebook: TEphyNotebook; abs_x, abs_y: integer): boolean; function drag_start(time: guint32): gboolean; procedure drag_stop(time: guint32); procedure move_tab(dest_position: integer); procedure move_tab_to_another_notebook(dest: TEphyNotebook; event: PGdkEventMotion); function GetPageIndex: integer; procedure SetPageIndex(Value: integer); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; function AppendPage(Child: TGTKControl; Caption: string): integer; function InsertPage(Position: integer; Child: TGTKControl; Caption: string): integer; procedure RemovePage(PageNo: integer); function GetTabCaption(PageNo: integer): string; procedure SetTabCaption(PageNo: integer; Caption: string); procedure SetTabTooltip(PageNo: integer; Tooltip: string); published property PageIndex: integer read GetPageIndex write SetPageIndex; property ShowCloseButtons: boolean read FShowCloseButtons write SetShowCloseButtons default False; property ShowTooltips: boolean read FShowTooltips write SetShowTooltips default False; property AllowDragDrop: boolean read FAllowDragDrop write SetAllowDragDrop default False; property AllowDragOutside: boolean read FAllowDragOutside write SetAllowDragOutside default False; property OnNotebookReordered: TEphyNotebookReorderedEvent read FOnNotebookReordered write FOnNotebookReordered; property OnTabClose: TEphyNotebookTabCloseEvent read FOnTabClose write FOnTabClose; property OnTabDoubleClick: TEphyNotebookTabDoubleClickEvent read FOnTabDoubleClick write FOnTabDoubleClick; property OnFindNotebookAtPointer: TEphyNotebookFindNotebookAtPointerEvent read FOnFindNotebookAtPointer write FOnFindNotebookAtPointer; property OnMoveTabToAnotherNotebook: TEphyNotebookMoveTabToAnotherNotebookEvent read FOnMoveTabToAnotherNotebook write FOnMoveTabToAnotherNotebook; property OnTabSwitched: TEphyNotebookTabSwitchedEvent read FOnTabSwitchedEvent write FOnTabSwitchedEvent; property OnTabFocusOnlyEvent: TEphyNotebookTabFocusOnlyEvent read FOnTabFocusOnlyEvent write FOnTabFocusOnlyEvent; end; function MessageBoxShowOnce(ParentWindow: PGtkWindow; const Text: string; const DontShowAgainText: string; var DontShowAgainChecked: boolean; Buttons: TMessageButtons = [mbOK]; Style: TMessageStyle = mbInfo; Default: TMessageButton = mbNone; Escape: TMessageButton = mbNone): TMessageButton; procedure HandleVFSAskQuestionCallback(DialogParent: PGtkWidget; const AMessage: PChar; const Choices: PPChar; choice: PInteger); function HandleVFSAskPasswordCallback(DialogParent: PGtkWidget; const AMessage: PChar; const default_user: PChar; const default_domain: PChar; const default_password: PChar; flags: TVFSAskPasswordFlags; username: PPChar; password: PPChar; anonymous: PInteger; domain: PPChar; password_save: PVFSPasswordSave): LongBool; type PGnomeColorPicker = PGtkWidget; PGnomeIconEntry = PGtkWidget; PGnomeDateEdit = PGtkWidget; const AFTER_ALL_TABS = -1; NOT_IN_APP_WINDOWS = -2; var libGlib2Handle, libGtk2Handle, libGnome2Handle, libGnomeUI2Handle: Pointer; gnome_about_new: function (const name, version, copyright, comments: Pchar; const authors, documenters: PPchar; const translator_credits: Pchar; logo_pixbuf: PGdkPixbuf): PGtkWidget; cdecl; {$IFDEF KYLIX} gnome_program_init: function (const app_id, app_version: PChar; const module_info: Pointer; argc: longint; argv: PPChar; const first_property_name: PChar; const first_property_value: Int64; const second_property_name: PChar): Pointer; cdecl; {$ELSE} gnome_program_init: function (const app_id, app_version: PChar; const module_info: Pointer; argc: integer; argv: PPChar): Pointer; varargs; cdecl; {$ENDIF} libgnome_module_info_get: function: Pointer; cdecl; libgnomeui_module_info_get: function: Pointer; cdecl; gnome_color_picker_new: function: PGnomeColorPicker; cdecl; gnome_color_picker_get_i16: procedure (cp: PGnomeColorPicker; R, G, B, A: Pword); cdecl; gnome_color_picker_set_i16: procedure (cp: PGnomeColorPicker; R, G, B, A: word); cdecl; gnome_icon_entry_new: function (const history_id, browse_dialog_title: Pchar): PGtkWidget; cdecl; gnome_icon_entry_set_pixmap_subdir: procedure (ientry: PGnomeIconEntry; const subdir: Pgchar); cdecl; gnome_icon_entry_get_filename: function (ientry: PGnomeIconEntry): Pgchar; cdecl; gnome_icon_entry_set_filename: function (ientry: PGnomeIconEntry; const filename: Pgchar): gboolean; cdecl; gnome_date_edit_new: function (the_time: time_t; show_time, use_24_format: gboolean): PGtkWidget; cdecl; gnome_date_edit_set_time: procedure (gde: PGnomeDateEdit; the_time: time_t); cdecl; gnome_date_edit_get_time: function (gde: PGnomeDateEdit): time_t; cdecl; gtk_event_box_set_visible_window: procedure (event_box: PGtkEventBox; visible_window: gboolean); cdecl; gtk_icon_size_lookup_for_settings: function (settings: PGtkSettings; size: TGtkIconSize; width, height: Pgint): gboolean; cdecl; gtk_window_set_icon_name: procedure (window: PGtkWindow; const name: Pgchar); cdecl; g_filename_display_name: function (const filename: PChar): PChar; cdecl; {$IFDEF KYLIX} gtk_message_dialog_new_with_markup: function (parent:PGtkWindow; flags:TGtkDialogFlags; _type:TGtkMessageType; buttons:TGtkButtonsType; message_format:Pgchar; const format1: PChar; const format2: PChar):PGtkWidget; cdecl; {$ELSE} gtk_message_dialog_new_with_markup: function (parent:PGtkWindow; flags:TGtkDialogFlags; _type:TGtkMessageType; buttons:TGtkButtonsType; message_format:Pgchar):PGtkWidget; varargs; cdecl; {$ENDIF} g_mkdir_with_parents: function (const pathname: PChar; mode: integer): integer; cdecl; procedure LoadGnomeLibs; implementation uses SysUtils, DateUtils, UConfig, UCoreUtils, ULocale, UFileAssoc; (********************************************************************************************************************************) (********************************************************************************************************************************) (********************************************************************************************************************************) (********************************************************************************************************************************) procedure TGnomeColorButton_OnClick(button: PGtkButton; user_data: Pgpointer); cdecl; var Dialog: TGTKColorSelectionDialog; i: integer; begin if Assigned(user_data) then with TGnomeColorButton(user_data) do begin Dialog := TGTKColorSelectionDialog.CreateWithTitle(Parent, LANGSelectFileTypeColor); try Dialog.ShowPalette := True; Dialog.Color := Color; if Byte(Dialog.Run) = 251 then begin for i := 0 to 4 do SetBackgroundColor(i, GDKColorToPGdkColor(Dialog.Color)); FColor := Dialog.Color; if Assigned(FColorChanged) then FColorChanged(TGnomeColorButton(user_data)); end; finally Dialog.Free; end; end; end; procedure TGnomeColorButton_color_set(colorpicker: PGnomeColorPicker; arg1, arg2, arg3, arg4: Word; user_data: Pointer); cdecl; begin if Assigned(user_data) and Assigned(TGnomeColorButton(user_data).FColorChanged) then with TGnomeColorButton(user_data) do begin FColorChanged(TGnomeColorButton(user_data)); FColor := Color; end; end; constructor TGnomeColorButton.Create(AOwner: TComponent); begin inherited Create(AOwner); FUseGnomeUI := Assigned(gnome_color_picker_new) and Assigned(gnome_color_picker_get_i16) and Assigned(gnome_color_picker_set_i16); if FUseGnomeUI then begin FWidget := gnome_color_picker_new; g_signal_connect(PGtkObject(FWidget), 'color-set', G_CALLBACK(@TGnomeColorButton_color_set), Self); end else begin FWidget := gtk_button_new_with_label(''); // This should be here due to height-related troubles g_signal_connect(PGtkObject(FWidget), 'clicked', G_CALLBACK(@TGnomeColorButton_OnClick), Self); BorderStyle := bsHalf; end; Show; FColorChanged := nil; end; destructor TGnomeColorButton.Destroy; begin inherited Destroy; end; function TGnomeColorButton.GetColor: TGDKColor; var R, G, B, A: word; begin if FUseGnomeUI then begin if Enabled then begin gnome_color_picker_get_i16(FWidget, @R, @G, @B, @A); Result := PGdkColorToGDKColor(AllocateColor(nil, R, G, B)); end else Result := FColor; end else Result := FColor; end; procedure TGnomeColorButton.SetColor(Value: TGDKColor); var i: integer; begin FColor := Value; if FUseGnomeUI then gnome_color_picker_set_i16(FWidget, Value.red, Value.green, Value.blue, 0) else for i := 0 to 4 do SetBackgroundColor(i, GDKColorToPGdkColor(Value)); end; procedure TGnomeColorButton.SetDefaultColor; var i: integer; begin if not Enabled then Exit; gtk_widget_set_sensitive(PGtkWidget(FWidget), False); if FUseGnomeUI then begin FColor := GetColor; gnome_color_picker_set_i16(FWidget, 0, 0, 0, 0) // SetColor(PGdkColorToGDKColor(AllocateColor(FWidget, 0, 0, 0){GetDefaultBackgroundColor(1)})); end else for i := 0 to 4 do SetBackgroundColor(i, GetDefaultBackgroundColor(i)); end; procedure TGnomeColorButton.UnsetDefaultColor; var i: integer; begin if Enabled then Exit; gtk_widget_set_sensitive(PGtkWidget(FWidget), True); if FUseGnomeUI then SetColor(FColor) else for i := 0 to 4 do SetBackgroundColor(i, GDKColorToPGdkColor(FColor)); end; (********************************************************************************************************************************) (********************************************************************************************************************************) procedure TGnomeIconEntry_changed(iconentry: PGnomeIconEntry; user_data: gpointer); cdecl; begin if Assigned(user_data) and Assigned(TGnomeIconEntry(user_data).FIconChanged) then TGnomeIconEntry(user_data).FIconChanged(TGnomeIconEntry(user_data)); end; constructor TGnomeIconEntry.Create(AOwner: TComponent); begin inherited Create(AOwner); FIconChanged := nil; FWidget := gnome_icon_entry_new('History', 'Browse'); g_signal_connect(PGtkObject(FWidget), 'changed', G_CALLBACK(@TGnomeIconEntry_changed), Self); Show; end; destructor TGnomeIconEntry.Destroy; begin inherited Destroy; end; function TGnomeIconEntry.GetFilename: string; begin Result := gnome_icon_entry_get_filename(FWidget); end; procedure TGnomeIconEntry.SetFilename(Value: string); begin gnome_icon_entry_set_filename(FWidget, PChar(Value)); end; procedure TGnomeIconEntry.SetPixmapSubdir(Value: string); begin gnome_icon_entry_set_pixmap_subdir(FWidget, PChar(Value)); end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGnomeDateEdit.Create(AOwner: TComponent); begin inherited Create(AOwner); FWidget := gnome_date_edit_new(0, False, True); Show; end; destructor TGnomeDateEdit.Destroy; begin inherited Destroy; end; function TGnomeDateEdit.GetTime: time_t; begin Result := gnome_date_edit_get_time(FWidget); end; procedure TGnomeDateEdit.SetTime(Value: time_t); begin gnome_date_edit_set_time(FWidget, Value); end; (********************************************************************************************************************************) (********************************************************************************************************************************) function button_press_cb(notebook: PGtkWidget; event: PGdkEventButton; data: gpointer): gboolean; cdecl; forward; function button_release_cb(notebook: PGtkWidget; event: PGdkEventButton; data: gpointer): gboolean; cdecl; forward; function scroll_event_callback(widget: PGtkWidget; event: PGdkEventScroll; user_data: gpointer): gboolean; cdecl; forward; function label_ebox_button_pressed(widget: PGtkWidget; event: PGdkEventButton; data: pointer): gboolean; cdecl; forward; constructor TEphyNotebook.Create(AOwner: TComponent); begin inherited Create(AOwner); FTooltips := gtk_tooltips_new; gtk_tooltips_disable(FTooltips); cursor := nil; FShowCloseButtons := False; FShowTooltips := False; FAllowDragDrop := False; FAllowDragOutside := False; FOnNotebookReordered := nil; FOnTabClose := nil; FOnTabDoubleClick := nil; FOnFindNotebookAtPointer := nil; FOnMoveTabToAnotherNotebook := nil; FOnTabFocusOnlyEvent := nil; FBusy := False; // Set up drag-and-drop g_signal_connect(FWidget, 'button-press-event', G_CALLBACK(@button_press_cb), Self); g_signal_connect(FWidget, 'button-release-event', G_CALLBACK(@button_release_cb), Self); g_signal_connect(FWidget, 'scroll-event', G_CALLBACK(@scroll_event_callback), Self); gtk_widget_add_events(FWidget, GDK_BUTTON1_MOTION_MASK); Show; end; destructor TEphyNotebook.Destroy; begin inherited Destroy; end; procedure TEphyNotebook.SetShowCloseButtons(Value: boolean); begin FShowCloseButtons := Value; // Apply settings here end; procedure TEphyNotebook.SetShowTooltips(Value: boolean); begin FShowTooltips := Value; if Value then gtk_tooltips_enable(FTooltips) else gtk_tooltips_disable(FTooltips); end; procedure TEphyNotebook.SetAllowDragDrop(Value: boolean); begin FAllowDragDrop := Value; if (not Value) and drag_in_progress then drag_stop(GDK_CURRENT_TIME (* FIXME? *)); end; procedure TEphyNotebook.SetAllowDragOutside(Value: boolean); begin FAllowDragOutside := Value; if (not Value) and drag_in_progress then drag_stop(GDK_CURRENT_TIME (* FIXME? *)); end; // Following code is inspired by ephy-notebook.c from Epiphany 2.14.1 procedure tab_label_style_set_cb(hbox: PGtkWidget; previous_style: PGtkStyle; user_data: gpointer); cdecl; var button: PGtkWidget; { metrics: PPangoFontMetrics; context: PPangoContext; char_width, }h, w: integer; begin { context := gtk_widget_get_pango_context(hbox); metrics := pango_context_get_metrics(context, hbox^.style^.font_desc, pango_context_get_language(context)); char_width := pango_font_metrics_get_approximate_digit_width(metrics); pango_font_metrics_unref(metrics); } if @gtk_icon_size_lookup_for_settings <> nil then gtk_icon_size_lookup_for_settings(gtk_widget_get_settings(hbox), GTK_ICON_SIZE_MENU, @w, @h) else begin w := 16; h := 16; end; // gtk_widget_set_size_request(hbox, TAB_WIDTH_N_CHARS * PANGO_PIXELS(char_width) + 2 * w, -1); button := g_object_get_data(G_OBJECT(hbox), 'close-button'); gtk_widget_set_size_request(button, w + 2, h + 2); end; procedure close_button_clicked_cb(widget: PGtkWidget; data: pointer); cdecl; var tab: PGtkWidget; ntb: TEphyNotebook; position: integer; CanClose: boolean; begin tab := g_object_get_data(G_OBJECT(widget), 'child'); ntb := TEphyNotebook(data); position := gtk_notebook_page_num(GTK_NOTEBOOK(ntb.FWidget), GTK_WIDGET(tab)); // DebugMsg(['@******* close_button_clicked_cb: Position = ', position, ', data = 0x', IntToHex(Integer(data), 8), ', widget = 0x', IntToHex(Integer(widget), 8)]); CanClose := True; if @ntb.FOnTabClose <> nil then ntb.FOnTabClose(ntb, position, CanClose); if CanClose then gtk_notebook_remove_page(GTK_NOTEBOOK(ntb.FWidget), position); end; function TEphyNotebook.AppendPage(Child: TGTKControl; Caption: string): integer; begin Result := InsertPage(ChildrenCount, Child, Caption); end; function TEphyNotebook.InsertPage(Position: integer; Child: TGTKControl; Caption: string): integer; var hbox, label_hbox, label_ebox, _label, close_button, image, icon: PGtkWidget; rcstyle: PGtkRcStyle; begin // set hbox spacing and label padding (see below) so that there's an equal amount of space around the label hbox := gtk_hbox_new(FALSE, 0); label_ebox := gtk_event_box_new(); if @gtk_event_box_set_visible_window <> nil then gtk_event_box_set_visible_window(GTK_EVENT_BOX (label_ebox), FALSE); gtk_box_pack_start(GTK_BOX (hbox), label_ebox, TRUE, TRUE, 0); g_signal_connect(G_OBJECT(label_ebox), 'button-press-event', G_CALLBACK(@label_ebox_button_pressed), Self); g_object_set_data(G_OBJECT(label_ebox), 'child', Child.FWidget); label_hbox := gtk_hbox_new (FALSE, 0); gtk_container_add(GTK_CONTAINER (label_ebox), label_hbox); // setup close button close_button := gtk_button_new (); gtk_button_set_relief (GTK_BUTTON (close_button), GTK_RELIEF_NONE); // don't allow focus on the close button g_object_set(G_OBJECT(close_button), 'can-focus', gboolean(FALSE), nil); gtk_button_set_relief (GTK_BUTTON (close_button), GTK_RELIEF_NONE); rcstyle := gtk_rc_style_new (); rcstyle^.xthickness := Ord(rcstyle^.ythickness = 0); gtk_widget_modify_style (close_button, rcstyle); gtk_rc_style_unref (rcstyle); image := gtk_image_new_from_stock (GTK_STOCK_CLOSE, GTK_ICON_SIZE_MENU); gtk_container_add (GTK_CONTAINER (close_button), image); gtk_box_pack_start (GTK_BOX (hbox), close_button, FALSE, FALSE, 0); gtk_tooltips_set_tip(FTooltips, close_button, 'Close tab', nil); g_object_set_data(G_OBJECT(close_button), 'tab', hbox); g_object_set_data(G_OBJECT(close_button), 'child', Child.FWidget); g_signal_connect(G_OBJECT(close_button), 'clicked', G_CALLBACK(@close_button_clicked_cb), Self); // setup site icon, empty by default icon := gtk_image_new (); gtk_box_pack_start (GTK_BOX (label_hbox), icon, FALSE, FALSE, 0); // setup label _label := gtk_label_new(PChar(Caption)); // gtk_label_set_ellipsize (GTK_LABEL (label), PANGO_ELLIPSIZE_END); // gtk_label_set_single_line_mode (GTK_LABEL (label), TRUE); gtk_misc_set_alignment (GTK_MISC(_label), 0.0, 0.5); gtk_misc_set_padding (GTK_MISC(_label), 2, 0); gtk_box_pack_start (GTK_BOX(label_hbox), _label, TRUE, TRUE, 0); // Set minimal size g_signal_connect(hbox, 'style-set', G_CALLBACK(@tab_label_style_set_cb), nil); gtk_widget_show (hbox); gtk_widget_show (label_ebox); gtk_widget_show (label_hbox); gtk_widget_show (_label); gtk_widget_show (image); if FShowCloseButtons then gtk_widget_show (close_button); g_object_set_data (G_OBJECT (hbox), 'label', _label); g_object_set_data (G_OBJECT (hbox), 'label-ebox', label_ebox); g_object_set_data (G_OBJECT (hbox), 'icon', icon); g_object_set_data (G_OBJECT (hbox), 'close-button', close_button); g_object_set_data (G_OBJECT (hbox), 'tooltips', FTooltips); Result := gtk_notebook_insert_page(PGtkNotebook(FWidget), Child.FWidget, hbox, Position); end; procedure TEphyNotebook.RemovePage(PageNo: integer); begin gtk_notebook_remove_page(PGtkNotebook(FWidget), PageNo); end; function TEphyNotebook.GetTabCaption(PageNo: integer): string; var wid, lab: PGtkWidget; begin wid := gtk_notebook_get_tab_label(PGtkNotebook(FWidget), gtk_notebook_get_nth_page(PGtkNotebook(FWidget), PageNo)); lab := g_object_get_data (G_OBJECT(wid), 'label'); Result := PgcharToString(gtk_label_get_text(GTK_LABEL(lab))); end; procedure TEphyNotebook.SetTabCaption(PageNo: integer; Caption: string); var wid, lab: PGtkWidget; begin wid := gtk_notebook_get_tab_label(PGtkNotebook(FWidget), gtk_notebook_get_nth_page(PGtkNotebook(FWidget), PageNo)); lab := g_object_get_data (G_OBJECT(wid), 'label'); gtk_label_set_text(GTK_LABEL(lab), StringToPgchar(Caption)); end; procedure TEphyNotebook.SetTabTooltip(PageNo: integer; Tooltip: string); var wid, lab: PGtkWidget; begin wid := gtk_notebook_get_tab_label(PGtkNotebook(FWidget), gtk_notebook_get_nth_page(PGtkNotebook(FWidget), PageNo)); lab := g_object_get_data (G_OBJECT(wid), 'label-ebox'); gtk_tooltips_set_tip(FTooltips, lab, StringToPgchar(Tooltip), nil); end; function TEphyNotebook.GetPageIndex: integer; begin Result := gtk_notebook_get_current_page(PGtkNotebook(FWidget)); end; procedure TEphyNotebook.SetPageIndex(Value: integer); begin DebugMsg(['SetPageIndex(Value = ', Value, ')']); if (GetPageIndex <> Value) and (Value >= 0) then begin gtk_notebook_set_page(PGtkNotebook(FWidget), Value); if Assigned(FOnTabSwitchedEvent) then FOnTabSwitchedEvent(Self, Value, True); end; end; function TEphyNotebook.find_tab_num_at_pos(abs_x, abs_y: integer): integer; var tab_pos: TGtkPositionType; page_num: integer; page, tab: PGtkWidget; max_x, max_y, x_root, y_root: integer; begin page_num := 0; tab_pos := gtk_notebook_get_tab_pos(PGtkNotebook(FWidget)); if PGtkNotebook(FWidget)^.first_tab = nil then begin DebugMsg(['@***************** first_tab = nil']); Result := AFTER_ALL_TABS; // DebugMsg(['@******* find_tab_num_at_pos(abs_x = ', abs_x, ', abs_y = ', abs_y, ', Result = ', Result, ')']); Exit; end; // For some reason unfullscreen + quick click can cause a wrong click event to be reported to the tab if not is_in_notebook_window(Self, abs_x, abs_y) then begin Result := NOT_IN_APP_WINDOWS; // DebugMsg(['@******* find_tab_num_at_pos(abs_x = ', abs_x, ', abs_y = ', abs_y, ', Result = ', Result, ')']); Exit; end; while gtk_notebook_get_nth_page(PGtkNotebook(FWidget), page_num) <> nil do begin page := gtk_notebook_get_nth_page(PGtkNotebook(FWidget), page_num); tab := gtk_notebook_get_tab_label(PGtkNotebook(FWidget), page); if tab = nil then begin Result := AFTER_ALL_TABS; // DebugMsg(['@******* find_tab_num_at_pos(abs_x = ', abs_x, ', abs_y = ', abs_y, ', Result = ', Result, ')']); Exit; end; if (not GTK_WIDGET_MAPPED(GTK_WIDGET(tab))) then begin Inc(page_num); Continue; end; gdk_window_get_origin(GDK_WINDOW(tab^.window), @x_root, @y_root); max_x := x_root + tab^.allocation.x + tab^.allocation.width; max_y := y_root + tab^.allocation.y + tab^.allocation.height; if (((tab_pos = GTK_POS_TOP) or (tab_pos = GTK_POS_BOTTOM)) and (abs_x <= max_x)) or ((tab_pos = GTK_POS_LEFT) or (tab_pos = GTK_POS_RIGHT)) and (abs_y <= max_y) then begin Result := page_num; // DebugMsg(['@******* find_tab_num_at_pos(abs_x = ', abs_x, ', abs_y = ', abs_y, ', Result = ', Result, ')']); Exit; end; Inc(page_num); end; Result := AFTER_ALL_TABS; // DebugMsg(['@******* find_tab_num_at_pos(abs_x = ', abs_x, ', abs_y = ', abs_y, ', Result = ', Result, ')']); end; function TEphyNotebook.find_notebook_at_pointer(abs_x, abs_y: integer): TEphyNotebook; (* var win_at_pointer{, toplevel_win}: PGdkWindow; x, y: integer; // toplevel: pointer; *) begin Result := nil; if Assigned(FOnFindNotebookAtPointer) then Result := FOnFindNotebookAtPointer(Self, abs_x, abs_y); // toplevel := NULL; { // FIXME multi-head win_at_pointer := gdk_window_at_pointer(@x, @y); if win_at_pointer = nil then begin // We are outside all windows containing a notebook Result := nil; Exit; end; } (* toplevel_win := gdk_window_get_toplevel(win_at_pointer); // get the GtkWidget which owns the toplevel GdkWindow gdk_window_get_user_data(toplevel_win, @toplevel); // toplevel should be an EphyWindow {@@@} if (toplevel <> nil) and GTK_IS_WINDOW toplevel) then begin Result := EPHY_NOTEBOOK(ephy_window_get_notebook(EPHY_WINDOW (toplevel))); Exit; end; *) { Result := nil;} end; function TEphyNotebook.is_in_notebook_window(notebook: TEphyNotebook; abs_x, abs_y: integer): boolean; begin Result := find_notebook_at_pointer(abs_x, abs_y) <> nil; // Result := notebook = find_notebook_at_pointer(abs_x, abs_y); // Result := True; end; (* void terminal_notebook_move_tab (TerminalNotebook *src, TerminalNotebook *dest, TerminalScreen *screen, int dest_position) { if (dest == NULL || src == dest) { gtk_notebook_reorder_child (GTK_NOTEBOOK (src), GTK_WIDGET (screen), dest_position); if (src->priv->drag_in_progress == FALSE) { g_signal_emit (G_OBJECT (src), signals[TABS_REORDERED], 0); } } else { GtkWidget *toplevel; /* make sure the screen isn't destroyed while we move it */ g_object_ref (screen); terminal_notebook_remove_tab (src, screen); /* Set new window for screen so TerminalScreen widget realize function * works. */ toplevel = gtk_widget_get_toplevel (GTK_WIDGET (dest)); g_assert (GTK_WIDGET_TOPLEVEL (toplevel)); g_assert (TERMINAL_IS_WINDOW (toplevel)); terminal_screen_set_window (screen, TERMINAL_WINDOW(toplevel)); terminal_notebook_add_tab (dest, screen, dest_position, TRUE); g_object_unref (screen); } } *) procedure TEphyNotebook.drag_stop(time: guint32); var toplevel{, child}: PGtkWidget; drag_stop_idx: integer; begin DebugMsg(['@######## drag_stop']); toplevel := gtk_widget_get_toplevel(FWidget); if not GTK_WIDGET_TOPLEVEL(toplevel) then begin DebugMsg(['@######## drag_stop: GTK_WIDGET_TOPLEVEL(toplevel) = False']); Exit; end; { child := gtk_bin_get_child(GTK_BIN(toplevel)); if child = nil then begin DebugMsg(['@######## drag_stop: child = nil']); Exit; end; } // disconnect the signals before ungrabbing! if toplevel_grab_broken_handler_id <> 0 then begin g_signal_handler_disconnect(toplevel, toplevel_grab_broken_handler_id); toplevel_grab_broken_handler_id := 0; end; if grab_notify_handler_id <> 0 then begin g_signal_handler_disconnect(FWidget, grab_notify_handler_id); grab_notify_handler_id := 0; end; if toplevel_motion_notify_handler_id <> 0 then begin g_signal_handler_disconnect(toplevel, toplevel_motion_notify_handler_id); toplevel_motion_notify_handler_id := 0; end; if toplevel_button_release_handler_id <> 0 then begin g_signal_handler_disconnect(toplevel, toplevel_button_release_handler_id); toplevel_button_release_handler_id := 0; end; if motion_notify_handler_id <> 0 then begin g_signal_handler_disconnect(FWidget, motion_notify_handler_id); motion_notify_handler_id := 0; end; // ungrab the pointer if it's grabbed // FIXME multihead if gdk_pointer_is_grabbed() then gdk_pointer_ungrab(time); gtk_grab_remove(toplevel); if drag_in_progress then begin if FBusy then Exit; drag_stop_idx := gtk_notebook_get_current_page(GTK_NOTEBOOK(FWidget)); DebugMsg(['@######## drag_stop: final move: ', drag_start_idx, ' --> ', drag_stop_idx]); // The two indexes are equal when moving tab to another notebook if (@FOnNotebookReordered <> nil) and (drag_start_idx <> drag_stop_idx) then begin FBusy := True; FOnNotebookReordered(Self, drag_start_idx, drag_stop_idx); Application.ProcessMessages; FBusy := False; end; end; drag_in_progress := False; x_start := -1; y_start := -1; end; function grab_broken_event_cb(widget: PGtkWidget; event: PGdkEvent; data: gpointer): gboolean; cdecl; begin if data <> nil then TEphyNotebook(data).drag_stop(GDK_CURRENT_TIME (* FIXME? *)); Result := False; end; procedure grab_notify_cb(widget: PGtkWidget; was_grabbed: gboolean; data: gpointer); cdecl; begin if data <> nil then TEphyNotebook(data).drag_stop(GDK_CURRENT_TIME (* FIXME? *)); end; function toplevel_motion_notify_cb(widget: PGtkWidget; event: PGdkEventMotion; data: gpointer): gboolean; cdecl; var ntb, dest: TEphyNotebook; page_num: integer; begin // DebugMsg(['@######## toplevel_motion_notify_cb(..., data = 0x', IntToHex(Integer(data), 8), ')']); Result := False; ntb := TEphyNotebook(data); if ntb.FBusy then Exit; page_num := ntb.find_tab_num_at_pos(Trunc(event^.x_root), Trunc(event^.y_root)); // if page_num >= -1 then ntb.move_tab(page_num); dest := ntb.find_notebook_at_pointer(Trunc(event^.x_root), Trunc(event^.y_root)); // DebugMsg(['@######## toplevel_motion_notify_cb: page_num = ', page_num, ', dest = 0x', IntToHex(Integer(dest), 8), ')']); if (page_num <> NOT_IN_APP_WINDOWS) and (dest <> nil) then begin if (dest <> ntb) and ntb.FAllowDragOutside then ntb.move_tab_to_another_notebook(dest, event) else if page_num >= 0 then ntb.move_tab(page_num) // Same notebook else {DebugMsg(['@######## toplevel_motion_notify_cb: Assertion failed: page_num >= 0'])}; end; (* TerminalNotebook *dest = NULL; int page_num, result; result = find_notebook_and_tab_at_pos ((gint)event->x_root, (gint)event->y_root, &dest, &page_num); if (result != NOT_IN_APP_WINDOWS) { if (dest != notebook) { move_tab_to_another_notebook (notebook, dest, event, page_num); } else { g_assert (page_num >= -1); move_tab (notebook, page_num); } } *) end; function toplevel_button_release_cb(widget: PGtkWidget; event: PGdkEventButton; data: gpointer): gboolean; cdecl; var ntb: TEphyNotebook; // cur_page_num: integer; // cur_page: PGtkWidget; begin DebugMsg(['@######## toplevel_button_release_cb(..., data = 0x', IntToHex(Integer(data), 8), ')']); ntb := TEphyNotebook(data); if ntb.drag_in_progress then begin // cur_page_num := gtk_notebook_get_current_page(GTK_NOTEBOOK(ntb.FWidget)); // cur_page := gtk_notebook_get_nth_page(GTK_NOTEBOOK(ntb.FWidget), cur_page_num); (* if (!is_in_notebook_window (notebook, event->x_root, event->y_root) && gtk_notebook_get_n_pages (GTK_NOTEBOOK (notebook)) > 1) { /* Tab was detached */ g_signal_emit (G_OBJECT (notebook), signals[TAB_DETACHED], 0, cur_page); } *) end; // This must be called even if a drag isn't happening ntb.drag_stop(event^.time); Result := False; end; function TEphyNotebook.drag_start(time: guint32): gboolean; var toplevel, child: PGtkWidget; begin DebugMsg(['@######## drag_start']); Result := False; // FIXME multihead if drag_in_progress or gdk_pointer_is_grabbed() then Exit; if not FAllowDragDrop then Exit; if FBusy then Exit; drag_in_progress := True; // get a new cursor, if necessary // FIXME multi-head if cursor = nil then cursor := gdk_cursor_new(GDK_FLEUR); toplevel := gtk_widget_get_toplevel(FWidget); if not GTK_WIDGET_TOPLEVEL(toplevel) then begin DebugMsg(['@######## drag_start: GTK_WIDGET_TOPLEVEL(toplevel) = False']); Result := False; Exit; end; child := gtk_bin_get_child(GTK_BIN(toplevel)); if child = nil then begin DebugMsg(['@######## drag_start: child = nil']); Result := False; Exit; end; // grab the pointer gtk_grab_add(toplevel); // FIXME multi-head if gdk_pointer_grab(toplevel^.window, False, GDK_BUTTON1_MOTION_MASK or GDK_BUTTON_RELEASE_MASK, nil, cursor, time) <> GDK_GRAB_SUCCESS then begin DebugMsg(['@######## drag_start: gdk_pointer_grab <> GDK_GRAB_SUCCESS']); drag_stop(time); Result := False; Exit; end; if (toplevel_grab_broken_handler_id = 0) and (toplevel_motion_notify_handler_id = 0) and (toplevel_button_release_handler_id = 0) and (grab_notify_handler_id = 0) then begin toplevel_grab_broken_handler_id := g_signal_connect(toplevel, 'grab-broken-event', G_CALLBACK(@grab_broken_event_cb), Self); toplevel_motion_notify_handler_id := g_signal_connect(toplevel, 'motion-notify-event', G_CALLBACK(@toplevel_motion_notify_cb), Self); toplevel_button_release_handler_id := g_signal_connect(toplevel, 'button-release-event', G_CALLBACK(@toplevel_button_release_cb), Self); grab_notify_handler_id := g_signal_connect(FWidget, 'grab-notify', G_CALLBACK(@grab_notify_cb), Self); drag_start_idx := gtk_notebook_get_current_page(GTK_NOTEBOOK(FWidget)); Result := True; end else begin DebugMsg(['@######## drag_start: some handlers are non-null']); Result := False; end; end; // this function is only called during dnd, we don't need to emit TABS_REORDERED here, instead we do it on drag_stop procedure TEphyNotebook.move_tab(dest_position: integer); var cur_page_num: integer; cur_tab: PGtkWidget; begin cur_page_num := gtk_notebook_get_current_page(GTK_NOTEBOOK(FWidget)); // DebugMsg(['@######## move_tab(dest_position = ', dest_position, ', cur_page_num = ', cur_page_num]); if (dest_position <> cur_page_num) and (dest_position >= 0) then begin cur_tab := gtk_notebook_get_nth_page(GTK_NOTEBOOK(FWidget), cur_page_num); gtk_notebook_reorder_child(GTK_NOTEBOOK(FWidget), cur_tab, dest_position); { terminal_notebook_move_tab (TERMINAL_NOTEBOOK (notebook), NULL, TERMINAL_SCREEN (cur_tab), dest_position); } end; end; function motion_notify_cb(notebook: PGtkWidget; event: PGdkEventMotion; data: gpointer): gboolean; cdecl; var ntb: TEphyNotebook; begin // DebugMsg(['@######## motion_notify_cb(..., data = 0x', IntToHex(Integer(data), 8), ')']); ntb := TEphyNotebook(data); Result := False; if (not ntb.drag_in_progress) and (ntb.x_start >= 0) and (ntb.y_start >= 0) and gtk_drag_check_threshold(GTK_WIDGET(notebook), ntb.x_start, ntb.y_start, Trunc(event^.x_root), Trunc(event^.y_root)) then Result := ntb.drag_start(event^.time); end; procedure TEphyNotebook.move_tab_to_another_notebook(dest: TEphyNotebook; event: PGdkEventMotion); var cur_page, dest_page_num: integer; begin // This is getting tricky, the screen was dragged in a notebook in another window of the same app, we move the screen // to that new notebook, and let this notebook handle the drag DebugMsg(['@######## move_tab_to_another_notebook(dest = 0x', IntToHex(Integer(pointer(dest)), 8), ')']); if not (dest is TEphyNotebook) then begin DebugMsg(['@######## move_tab_to_another_notebook: dest(', dest.ClassName, ') is not TEphyNotebook']); Exit; end; if Self = dest then begin DebugMsg(['@######## move_tab_to_another_notebook: dest = Self']); Exit; end; if not Assigned(@FOnMoveTabToAnotherNotebook) then begin DebugMsg(['@######## move_tab_to_another_notebook: FOnMoveTabToAnotherNotebook not handled, giving up.']); Exit; end; cur_page := gtk_notebook_get_current_page(GTK_NOTEBOOK(FWidget)); // stop drag in origin window // ungrab the pointer if it's grabbed drag_stop(event^.time); { if gdk_pointer_is_grabbed() then gdk_pointer_ungrab(event^.time); gtk_grab_remove(FWidget); } (* g_assert (TERMINAL_IS_NOTEBOOK (dest)); g_assert (dest != src); cur_page = gtk_notebook_get_current_page (GTK_NOTEBOOK (src)); screen = gtk_notebook_get_nth_page (GTK_NOTEBOOK (src), cur_page); /* stop drag in origin window */ /* ungrab the pointer if it's grabbed */ drag_stop (src, event->time); if (gdk_pointer_is_grabbed ()) { gdk_pointer_ungrab (event->time); } gtk_grab_remove (GTK_WIDGET (src)); terminal_notebook_move_tab (src, dest, TERMINAL_SCREEN (screen), dest_position); /* start drag handling in dest notebook */ dest->priv->motion_notify_handler_id = g_signal_connect (G_OBJECT (dest), "motion-notify-event", G_CALLBACK (motion_notify_cb), NULL); *) dest_page_num := dest.find_tab_num_at_pos(Trunc(event^.x_root), Trunc(event^.y_root)); if FOnMoveTabToAnotherNotebook(Self, dest, cur_page, dest_page_num) then begin // move newly created tab in dest notebook to position of mouse cursor // toplevel_motion_notify_cb(dest.FWidget, event, dest); Application.ProcessMessages; // start drag handling in dest notebook dest.x_start := Trunc(event^.x_root); dest.y_start := Trunc(event^.y_root); dest.motion_notify_handler_id := g_signal_connect(G_OBJECT(dest.FWidget), 'motion-notify-event', G_CALLBACK(@motion_notify_cb), dest); dest.drag_start(event^.time); { dest.motion_notify_handler_id := g_signal_connect(G_OBJECT(dest.FWidget), 'motion-notify-event', G_CALLBACK(@motion_notify_cb), nil); dest.drag_start(event^.time); } end; end; function button_release_cb(notebook: PGtkWidget; event: PGdkEventButton; data: gpointer): gboolean; cdecl; var ntb: TEphyNotebook; begin ntb := TEphyNotebook(data); DebugMsg(['@######## button_release_cb(..., data = 0x', IntToHex(Integer(data), 8), ')']); // This must be called even if a drag isn't happening ntb.drag_stop(event^.time); Result := False; end; function label_ebox_button_pressed(widget: PGtkWidget; event: PGdkEventButton; data: pointer): gboolean; cdecl; var tab: PGtkWidget; ntb: TEphyNotebook; position: integer; begin Result := False; ntb := TEphyNotebook(data); tab := g_object_get_data(G_OBJECT(widget), 'child'); position := gtk_notebook_page_num(GTK_NOTEBOOK(ntb.FWidget), GTK_WIDGET(tab)); // DebugMsg(['@******* label_ebox_button_pressed, button = ', event^.button, ', Position = ', position, ', data = 0x', IntToHex(Integer(data), 8), ', widget = 0x', IntToHex(Integer(widget), 8)]); if (((event^.button = 2) and (event^._type = GDK_BUTTON_PRESS)) or // Middle-click ((event^.button = 1) and (event^._type = GDK_2BUTTON_PRESS))) and // Double-click Assigned(ntb.FOnTabDoubleClick) then begin ntb.FOnTabDoubleClick(ntb, position); Result := True; ntb.x_start := -1; ntb.y_start := -1; end; end; function button_press_cb(notebook: PGtkWidget; event: PGdkEventButton; data: gpointer): gboolean; cdecl; var tab_clicked: integer; ntb: TEphyNotebook; begin Result := False; ntb := TEphyNotebook(data); if ntb.FBusy then Exit; DebugMsg(['@######## button_press_cb(..., data = 0x', IntToHex(Integer(data), 8), ')']); tab_clicked := ntb.find_tab_num_at_pos(Trunc(event^.x_root), Trunc(event^.y_root)); DebugMsg(['@################# tab_clicked = ', tab_clicked]); if ntb.drag_in_progress then begin DebugMsg(['drag_in_progress, exiting.']); Result := True; Exit; end; if ((event^.button = 1) or (event^.button = 3)) and (event^._type = GDK_BUTTON_PRESS) and (tab_clicked >= 0) then begin if event^.button = 1 then begin ntb.x_start := Trunc(event^.x_root); ntb.y_start := Trunc(event^.y_root); DebugMsg(['@################# x_start = ', ntb.x_start, ', y_start = ', ntb.y_start]); ntb.motion_notify_handler_id := g_signal_connect(G_OBJECT(notebook), 'motion-notify-event', G_CALLBACK(@motion_notify_cb), data); end; if tab_clicked >= 0 then begin if tab_clicked <> gtk_notebook_get_current_page(PGtkNotebook(ntb.FWidget)) then begin ntb.FBusy := True; gtk_notebook_set_current_page(GTK_NOTEBOOK(notebook), tab_clicked); if Assigned(ntb.FOnTabSwitchedEvent) then ntb.FOnTabSwitchedEvent(ntb, tab_clicked, True); Application.ProcessMessages; ntb.FBusy := False; end else begin if Assigned(ntb.FOnTabFocusOnlyEvent) then ntb.FOnTabFocusOnlyEvent(ntb, tab_clicked); end; end; // don't consume the event if right mouse button pressed - allow display the popup menu Result := event^.button <> 3; end else Result := True; // consume the event if not clicked any tab { else if (GDK_BUTTON_PRESS = event^._type) and (event^.button = 3) then begin if tab_clicked = -1 then begin // consume event, so that we don't pop up the context menu when the mouse if not over a screen label Result := True; end else // switch to the page the mouse is over, but don't consume the event if (tab_clicked >= 0) then gtk_notebook_set_current_page(GTK_NOTEBOOK(notebook), tab_clicked); end; } end; function scroll_event_callback(widget: PGtkWidget; event: PGdkEventScroll; user_data: gpointer): gboolean; cdecl; var ntb: TEphyNotebook; page: integer; child: PGtkWidget; px, py: gint; begin Result := True; ntb := TEphyNotebook(user_data); if ntb.FBusy then Exit; child := gtk_notebook_get_nth_page(GTK_NOTEBOOK(ntb.FWidget), gtk_notebook_get_current_page(PGtkNotebook(ntb.FWidget))); if (child <> nil) then begin // DebugMsg(['scroll_event_callback: x = ', event^.x, ', y = ', event^.y]); px := 0; py := 0; gtk_widget_get_pointer(child, @px, @py); // DebugMsg(['scroll_event_callback: px = ', px, ', py = ', py]); if (px >= 0) and (py >= 0) then Exit; end; page := gtk_notebook_get_current_page(PGtkNotebook(ntb.FWidget)) - Ord(event^.direction = GDK_SCROLL_UP) + Ord(event^.direction = GDK_SCROLL_DOWN); if (page < 0) or (page > ntb.ChildrenCount - 1) then Exit; ntb.FBusy := True; gtk_notebook_set_current_page(PGtkNotebook(ntb.FWidget), page); //* FIXME: should this be ShouldFocus = False? if Assigned(ntb.FOnTabSwitchedEvent) then ntb.FOnTabSwitchedEvent(ntb, page, True); Application.ProcessMessages; ntb.FBusy := False; end; (********************************************************************************************************************************) (********************************************************************************************************************************) function Gnome_MessageBox_key_press_event(widget: PGtkWidget; event: PGdkEventKey; user_data : gpointer): gboolean; cdecl; begin Result := False; if event^.keyval = GDK_ESCAPE then begin gtk_dialog_response(PGtkDialog(widget), integer(user_data)); // Beep; Result := True; end; end; function MessageBoxShowOnce(ParentWindow: PGtkWindow; const Text: string; const DontShowAgainText: string; var DontShowAgainChecked: boolean; Buttons: TMessageButtons = [mbOK]; Style: TMessageStyle = mbInfo; Default: TMessageButton = mbNone; Escape: TMessageButton = mbNone): TMessageButton; const TMessageStyleID : array[0..3] of TGtkMessageType = (GTK_MESSAGE_ERROR, GTK_MESSAGE_INFO, GTK_MESSAGE_QUESTION, GTK_MESSAGE_WARNING); var Dialog: PGtkWidget; CheckBox: PGtkCheckButton; i: integer; w: PGtkWidget; begin if Application.Terminated then begin Result := Escape; Exit; end; Dialog := gtk_message_dialog_new(ParentWindow, GTK_DIALOG_MODAL or GTK_DIALOG_DESTROY_WITH_PARENT, TMessageStyleID[Integer(Style)], GTK_BUTTONS_NONE, StringToPgchar(Text)); CheckBox := PGtkCheckButton(gtk_check_button_new_with_mnemonic(StringToPgchar(DontShowAgainText))); gtk_widget_show(PGtkWidget(CheckBox)); gtk_box_pack_end(GTK_BOX(GTK_DIALOG(Dialog).vbox), PGtkWidget(CheckBox), False, False, 12); for i := 1 to NumMessageButtons do if TMessageButton(i - 1) in Buttons then begin w := gtk_dialog_add_button(PGtkDialog(Dialog), MessageButtonID[i], i); if TMessageButton(i - 1) = Default then gtk_widget_grab_focus(w); end; if Escape <> mbNone then g_signal_connect(PGtkObject(Dialog), 'key-press-event', G_CALLBACK(@Gnome_MessageBox_key_press_event), Pointer(Ord(Escape) + 1{MessageButtonID[Ord(Escape)]})); if Default <> mbNone then gtk_dialog_set_default_response(PGtkDialog(Dialog), Ord(Default)); Result := TMessageButton(gtk_dialog_run(PGtkDialog(Dialog)) - 1); DontShowAgainChecked := gtk_toggle_button_get_active(PGtkToggleButton(CheckBox)); gtk_widget_destroy(Dialog); end; (********************************************************************************************************************************) (********************************************************************************************************************************) // The following code has been stolen from gtkmountoperation.c // Copyright (C) Christian Kellner procedure HandleVFSAskQuestionCallback(DialogParent: PGtkWidget; const AMessage: PChar; const Choices: PPChar; choice: PInteger); var dialog: PGtkWidget; secondary: PChar; primary: PChar; count, len, res: integer; begin len := 0; secondary := nil; if (AMessage = nil) or (choices = nil) or Application.Terminated then Exit; primary := strstr (AMessage, #10); if primary <> nil then begin secondary := primary + 1; primary := g_strndup (AMessage, primary - AMessage); end; if (primary <> nil) and (secondary <> nil) and (@gtk_message_dialog_new_with_markup <> nil) then dialog := gtk_message_dialog_new_with_markup (PGtkWindow(DialogParent), 0, GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, '%s'#10'%s', primary, secondary) else dialog := gtk_message_dialog_new (PGtkWindow(DialogParent), 0, GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, '%s', AMessage); if primary <> nil then g_free (primary); // gtk_window_set_title (PGtkWindow(dialog), 'VFS Question'); gtk_window_set_title (PGtkWindow(dialog), ''); // First count the items in the list then add the buttons in reverse order while (TOpenPCharArray(choices)[len] <> nil) do Inc(len); for count := len - 1 downto 0 do gtk_dialog_add_button (PGtkDialog(dialog), TOpenPCharArray(choices)[count], count); res := gtk_dialog_run (PGtkDialog(Dialog)); if choice <> nil then choice^ := res; gtk_widget_destroy (PGtkWidget(Dialog)); end; (********************************************************************************************************************************) type PVFSAskPasswordCallbackPriv = ^TVFSAskPasswordCallbackPriv; TVFSAskPasswordCallbackPriv = record dialog: PGtkDialog; entry_container: PGtkWidget; choice_anon, choice_user: PGtkWidget; username_entry, domain_entry, password_entry: PGtkEntry; end; function entry_has_input(entry_widget: PGtkEntry): boolean; var text: PChar; begin if entry_widget = nil then Result := True else begin text := gtk_entry_get_text (entry_widget); Result := (text <> nil) and (strlen(text) > 0); end; end; function pw_dialog_input_is_valid(priv: PVFSAskPasswordCallbackPriv): boolean; begin Result := entry_has_input(priv^.username_entry) and entry_has_input(priv^.domain_entry) and entry_has_input(priv^.password_entry); end; procedure pw_dialog_verify_input(editable: PGtkEditable; priv: PVFSAskPasswordCallbackPriv); cdecl; begin gtk_dialog_set_response_sensitive (GTK_DIALOG (priv^.dialog), GTK_RESPONSE_OK, pw_dialog_input_is_valid(priv)); end; procedure pw_dialog_anonymous_toggled(widget: PGtkWidget; priv: PVFSAskPasswordCallbackPriv); cdecl; var is_valid, anonymous: boolean; begin anonymous := widget = priv^.choice_anon; if anonymous then is_valid := True else is_valid := pw_dialog_input_is_valid(priv); gtk_widget_set_sensitive (priv^.entry_container, not anonymous); gtk_dialog_set_response_sensitive(GTK_DIALOG (priv^.dialog), GTK_RESPONSE_OK, is_valid); end; procedure pw_dialog_cycle_focus(widget: PGtkWidget; priv: PVFSAskPasswordCallbackPriv); cdecl; var next_widget: PGtkWidget; begin next_widget := nil; if widget = PGtkWidget(priv^.username_entry) then begin if priv^.domain_entry <> nil then next_widget := PGtkWidget(priv^.domain_entry) else if priv^.password_entry <> nil then next_widget := PGtkWidget(priv^.password_entry); end else if (widget = PGtkWidget(priv^.domain_entry)) and (priv^.password_entry <> nil) then next_widget := PGtkWidget(priv^.password_entry); if next_widget <> nil then gtk_widget_grab_focus(next_widget) else if pw_dialog_input_is_valid(priv) then gtk_window_activate_default(GTK_WINDOW(priv^.dialog)); end; procedure unmask_checkbox_toggled(togglebutton: PGtkToggleButton; priv: PVFSAskPasswordCallbackPriv); cdecl; var active: gboolean; begin active := gtk_toggle_button_get_active(togglebutton); if priv^.password_entry <> nil then gtk_entry_set_visibility(priv^.password_entry, active); end; // The following code has been stolen from gtkmountoperation.c // Copyright (C) Christian Kellner function HandleVFSAskPasswordCallback(DialogParent: PGtkWidget; const AMessage: PChar; const default_user: PChar; const default_domain: PChar; const default_password: PChar; flags: TVFSAskPasswordFlags; username: PPChar; password: PPChar; anonymous: PInteger; domain: PPChar; password_save: PVFSPasswordSave): LongBool; function table_add_entry(table: PGtkWidget; row: integer; const label_text: PChar; const value: PChar; user_data: PVFSAskPasswordCallbackPriv): PGtkEntry; var entry: PGtkEntry; alabel: PGtkWidget; begin alabel := gtk_label_new_with_mnemonic (label_text); gtk_misc_set_alignment (GTK_MISC (alabel), 0.0, 0.5); entry := PGtkEntry(gtk_entry_new ()); if value <> nil then gtk_entry_set_text (PGtkEntry(entry), value); gtk_table_attach (GTK_TABLE (table), alabel, 0, 1, row, row + 1, GTK_FILL, GTK_EXPAND or GTK_FILL, 0, 0); gtk_table_attach_defaults (GTK_TABLE (table), PGtkWidget(entry), 1, 2, row, row + 1); gtk_label_set_mnemonic_widget (PGtkLabel(alabel), PGtkWidget(entry)); g_signal_connect (entry, 'changed', G_CALLBACK (@pw_dialog_verify_input), user_data); g_signal_connect (entry, 'activate', G_CALLBACK (@pw_dialog_cycle_focus), user_data); Result := entry; end; var widget: PGtkWidget; window: PGtkWindow; hbox, main_vbox, vbox, icon: PGtkWidget; table: PGtkWidget; message_label: PGtkWidget; can_anonymous: boolean; Rows: integer; anon_box: PGtkWidget; radio_forget, radio_session, radio_remember: PGtkWidget; group: PGSList; remember_box: PGtkWidget; priv: TVFSAskPasswordCallbackPriv; s: PChar; unmask_checkbox: PGtkWidget; begin FillChar(priv, sizeof(priv), 0); radio_forget := nil; radio_session := nil; radio_remember := nil; widget := gtk_dialog_new (); priv.dialog := PGtkDialog(widget); window := PGtkWindow(widget); // gtk_window_set_title (window, 'VFS Question'); gtk_window_set_title (window, ''); // Set the dialog up with HIG properties gtk_dialog_set_has_separator (priv.dialog, False); gtk_container_set_border_width (GTK_CONTAINER (priv.dialog), 5); gtk_box_set_spacing (GTK_BOX (priv.dialog^.vbox), 2); // 2 * 5 + 2 = 12 gtk_container_set_border_width (GTK_CONTAINER (priv.dialog^.action_area), 5); gtk_box_set_spacing (GTK_BOX (priv.dialog^.action_area), 6); gtk_window_set_resizable (window, False); // gtk_window_set_icon_name (window, 'gtk-dialog-authentication'); if (flags and VFS_ASK_PASSWORD_ARCHIVE_MODE) = VFS_ASK_PASSWORD_ARCHIVE_MODE then s := GTK_STOCK_OK else s := PChar(LANGConnMgr_ConnectButton); gtk_dialog_add_buttons (priv.dialog, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, s, GTK_RESPONSE_OK, nil); gtk_dialog_set_default_response (priv.dialog, GTK_RESPONSE_OK); // Build contents hbox := gtk_hbox_new (FALSE, 12); gtk_container_set_border_width (GTK_CONTAINER (hbox), 5); gtk_box_pack_start (GTK_BOX (priv.dialog^.vbox), hbox, TRUE, TRUE, 0); if gtk_style_lookup_icon_set(gtk_widget_get_style(PGtkWidget(priv.dialog)), 'gtk-dialog-authentication') <> nil then icon := gtk_image_new_from_stock('gtk-dialog-authentication', GTK_ICON_SIZE_DIALOG) else icon := gtk_image_new_from_pixbuf(StockLock48.FPixbuf); gtk_misc_set_alignment (GTK_MISC (icon), 0.5, 0.0); gtk_box_pack_start (GTK_BOX (hbox), icon, FALSE, FALSE, 0); main_vbox := gtk_vbox_new (FALSE, 18); gtk_box_pack_start (GTK_BOX (hbox), main_vbox, TRUE, TRUE, 0); message_label := gtk_label_new (AMessage); gtk_misc_set_alignment (GTK_MISC (message_label), 0.0, 0.5); gtk_label_set_line_wrap (GTK_LABEL (message_label), TRUE); gtk_box_pack_start (GTK_BOX (main_vbox), GTK_WIDGET (message_label), FALSE, FALSE, 0); vbox := gtk_vbox_new (FALSE, 6); gtk_box_pack_start (GTK_BOX (main_vbox), vbox, FALSE, FALSE, 0); can_anonymous := (flags and VFS_ASK_PASSWORD_ANONYMOUS_SUPPORTED) = VFS_ASK_PASSWORD_ANONYMOUS_SUPPORTED; if can_anonymous then begin anon_box := gtk_vbox_new (FALSE, 6); gtk_box_pack_start (GTK_BOX (vbox), anon_box, FALSE, FALSE, 0); priv.choice_anon := gtk_radio_button_new_with_mnemonic (nil, PChar(LANGGtkMountOperation_ConnectAnonymously)); gtk_box_pack_start (GTK_BOX (anon_box), priv.choice_anon, FALSE, FALSE, 0); g_signal_connect (priv.choice_anon, 'toggled', G_CALLBACK (@pw_dialog_anonymous_toggled), @priv); group := gtk_radio_button_get_group (GTK_RADIO_BUTTON (priv.choice_anon)); priv.choice_user := gtk_radio_button_new_with_mnemonic (group, PChar(LANGGtkMountOperation_ConnectAsUser)); gtk_box_pack_start (GTK_BOX (anon_box), priv.choice_user, FALSE, FALSE, 0); g_signal_connect (priv.choice_user, 'toggled', G_CALLBACK (@pw_dialog_anonymous_toggled), @priv); end; rows := 0; if (flags and VFS_ASK_PASSWORD_NEED_PASSWORD) = VFS_ASK_PASSWORD_NEED_PASSWORD then Inc(rows); if (flags and VFS_ASK_PASSWORD_NEED_USERNAME) = VFS_ASK_PASSWORD_NEED_USERNAME then Inc(rows); if (flags and VFS_ASK_PASSWORD_NEED_DOMAIN) = VFS_ASK_PASSWORD_NEED_DOMAIN then Inc(rows); // The table that holds the entries priv.entry_container := gtk_alignment_new (0.0, 0.0, 1.0, 1.0); if can_anonymous and Application.GTKVersion_2_4_0_Up then g_object_set (priv.entry_container, 'left-padding', 12, nil); gtk_box_pack_start (GTK_BOX (vbox), priv.entry_container, FALSE, FALSE, 0); table := gtk_table_new (rows, 2, FALSE); gtk_table_set_col_spacings (GTK_TABLE (table), 12); gtk_table_set_row_spacings (GTK_TABLE (table), 6); gtk_container_add (GTK_CONTAINER (priv.entry_container), table); Rows := 0; if (flags and VFS_ASK_PASSWORD_NEED_USERNAME) = VFS_ASK_PASSWORD_NEED_USERNAME then begin priv.username_entry := table_add_entry (table, rows, PChar(LANGGtkMountOperation_Username), default_user, @priv); Inc(Rows); end; if (flags and VFS_ASK_PASSWORD_NEED_DOMAIN) = VFS_ASK_PASSWORD_NEED_DOMAIN then begin priv.domain_entry := table_add_entry (table, rows, PChar(LANGGtkMountOperation_Domain), default_domain, @priv); Inc(Rows); end; if (flags and VFS_ASK_PASSWORD_NEED_PASSWORD) = VFS_ASK_PASSWORD_NEED_PASSWORD then begin priv.password_entry := table_add_entry (table, rows, PChar(LANGGtkMountOperation_Password), nil, @priv); if (default_password <> nil) and (strlen(default_password) > 0) then gtk_entry_set_text(priv.password_entry, default_password); // Inc(Rows); gtk_entry_set_visibility (GTK_ENTRY (priv.password_entry), FALSE); end; if (flags and VFS_ASK_PASSWORD_ARCHIVE_MODE) = VFS_ASK_PASSWORD_ARCHIVE_MODE then begin unmask_checkbox := gtk_check_button_new_with_mnemonic (PChar(LANGFSetPassword_ShowPasswordCheckButton)); g_object_set(G_OBJECT(unmask_checkbox), 'can-focus', 0, nil); gtk_box_pack_start (GTK_BOX (vbox), unmask_checkbox, FALSE, FALSE, 0); g_signal_connect (unmask_checkbox, 'toggled', G_CALLBACK (@unmask_checkbox_toggled), @priv); end; if ((flags and VFS_ASK_PASSWORD_SAVING_SUPPORTED) = VFS_ASK_PASSWORD_SAVING_SUPPORTED) or ((flags and VFS_ASK_PASSWORD_SAVE_INTERNAL) = VFS_ASK_PASSWORD_SAVE_INTERNAL) then begin remember_box := gtk_vbox_new (FALSE, 6); gtk_box_pack_start (GTK_BOX (vbox), remember_box, FALSE, FALSE, 0); if (flags and VFS_ASK_PASSWORD_SAVING_SUPPORTED) = 0 then s := PChar(LANGGtkMountOperation_DoNotSavePassword) else s := PChar(LANGGtkMountOperation_ForgetPasswordImmediately); radio_forget := gtk_radio_button_new_with_mnemonic (nil, s); gtk_box_pack_start (GTK_BOX (remember_box), radio_forget, FALSE, FALSE, 0); group := gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio_forget)); // gnome-keyring only if (flags and VFS_ASK_PASSWORD_SAVING_SUPPORTED) = VFS_ASK_PASSWORD_SAVING_SUPPORTED then begin radio_session := gtk_radio_button_new_with_mnemonic (group, PChar(LANGGtkMountOperation_RememberPasswordUntilYouLogout)); gtk_box_pack_start (GTK_BOX (remember_box), radio_session, FALSE, FALSE, 0); group := gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio_session)); end; if (flags and VFS_ASK_PASSWORD_SAVING_SUPPORTED) = 0 then s := PChar(LANGGtkMountOperation_SavePasswordInConnectionManager) else s := PChar(LANGGtkMountOperation_RememberForever); radio_remember := gtk_radio_button_new_with_mnemonic (group, s); gtk_box_pack_start (GTK_BOX (remember_box), radio_remember, FALSE, FALSE, 0); // Select to save password when internal saving is supported if (flags and VFS_ASK_PASSWORD_SAVE_INTERNAL) = VFS_ASK_PASSWORD_SAVE_INTERNAL then gtk_toggle_button_set_active(PGtkToggleButton(radio_remember), True); end; // The anonymous option will be active by default, ensure the toggled signal is emitted for it. if can_anonymous then gtk_toggle_button_toggled (GTK_TOGGLE_BUTTON (priv.choice_anon)) else if not pw_dialog_input_is_valid(@priv) then gtk_dialog_set_response_sensitive(priv.dialog, GTK_RESPONSE_OK, False); gtk_widget_show_all (GTK_WIDGET (priv.dialog)); gtk_window_set_transient_for (window, PGtkWindow(DialogParent)); Result := gtk_dialog_run(PGtkDialog(priv.dialog)) = GTK_RESPONSE_OK; if Result then begin if (priv.username_entry <> nil) and (username <> nil) then username^ := g_strdup(gtk_entry_get_text(priv.username_entry)); if (priv.domain_entry <> nil) and (domain <> nil) then domain^ := g_strdup(gtk_entry_get_text(priv.domain_entry)); if (priv.password_entry <> nil) and (password <> nil) then password^ := g_strdup(gtk_entry_get_text(priv.password_entry)); if (priv.choice_anon <> nil) and (anonymous <> nil) then anonymous^ := Ord(gtk_toggle_button_get_active(PGtkToggleButton(priv.choice_anon))); if (password_save <> nil) and (radio_forget <> nil) and (radio_remember <> nil) then begin if gtk_toggle_button_get_active(PGtkToggleButton(radio_forget)) then password_save^ := VFS_PASSWORD_SAVE_NEVER else if (radio_session <> nil) and gtk_toggle_button_get_active(PGtkToggleButton(radio_session)) then password_save^ := VFS_PASSWORD_SAVE_FOR_SESSION else if gtk_toggle_button_get_active(PGtkToggleButton(radio_remember)) then password_save^ := VFS_PASSWORD_SAVE_PERMANENTLY; end; end; gtk_widget_destroy (PGtkWidget(priv.dialog)); end; (********************************************************************************************************************************) (********************************************************************************************************************************) (********************************************************************************************************************************) (********************************************************************************************************************************) (********************************************************************************************************************************) (********************************************************************************************************************************) (********************************************************************************************************************************) (********************************************************************************************************************************) procedure SetupGnomeLibs; var g: Pointer; begin try if Assigned(gnome_program_init) and Assigned(libgnomeui_module_info_get) and Assigned(libgnome_module_info_get) then begin DebugMsg(['Initializing Gnome...']); g := gnome_program_init('TuxCommander', PChar(ConstAboutVersion), libgnomeui_module_info_get, GTKForms.argc, GTKForms.argv, 'show-crash-dialog', 0, nil); DebugMsg([' *GnomeProgram = 0x', IntToHex(QWORD(g), 8)]); end; except end; end; procedure LoadGnomeLibs; begin // Set default values @gnome_about_new := nil; @gnome_color_picker_new := nil; @gnome_color_picker_get_i16 := nil; @gnome_color_picker_set_i16 := nil; @libgnomeui_module_info_get := nil; @gnome_program_init := nil; @libgnome_module_info_get := nil; @gnome_icon_entry_new := nil; @gnome_icon_entry_set_pixmap_subdir := nil; @gnome_icon_entry_get_filename := nil; @gnome_icon_entry_set_filename := nil; @gtk_event_box_set_visible_window := nil; // Dynamic loading libGlib2Handle := dlopen('libglib-2.0.so.0', RTLD_LAZY); if libGlib2Handle = nil then libGlib2Handle := dlopen('libglib-2.0.so', RTLD_LAZY); if libGlib2Handle <> nil then begin @g_filename_display_name := dlsym(libGlib2Handle, 'g_filename_display_name'); @g_mkdir_with_parents := dlsym(libGlib2Handle, 'g_mkdir_with_parents'); DebugMsg(['libglib-2.0.so loaded, @g_filename_display_name = 0x', IntToHex(QWORD(@g_filename_display_name), 8)]); end; libGtk2Handle := dlopen('libgtk-x11-2.0.so.0', RTLD_LAZY); if libGtk2Handle = nil then libGtk2Handle := dlopen('libgtk-x11-2.0.so', RTLD_LAZY); if libGtk2Handle <> nil then begin @gtk_event_box_set_visible_window := dlsym(libGtk2Handle, 'gtk_event_box_set_visible_window'); @gtk_icon_size_lookup_for_settings := dlsym(libGtk2Handle, 'gtk_icon_size_lookup_for_settings'); @gtk_window_set_icon_name := dlsym(libGtk2Handle, 'gtk_window_set_icon_name'); @gtk_message_dialog_new_with_markup := dlsym(libGtk2Handle, 'gtk_message_dialog_new_with_markup'); DebugMsg(['libgtk-x11-2.0.so loaded, @gtk_event_box_set_visible_window = 0x', IntToHex(QWORD(@gtk_event_box_set_visible_window), 8), ', @gtk_icon_size_lookup_for_settings = 0x', IntToHex(QWORD(@gtk_icon_size_lookup_for_settings), 8)]); end; libGnome2Handle := dlopen('libgnome-2.so.0', RTLD_LAZY); if libGnome2Handle = nil then libGnome2Handle := dlopen('libgnome-2.so', RTLD_LAZY); if libGnome2Handle <> nil then begin @gnome_program_init := dlsym(libGnome2Handle, 'gnome_program_init'); @libgnome_module_info_get := dlsym(libGnome2Handle, 'libgnome_module_info_get'); DebugMsg(['libgnome-2.so loaded, @gnome_program_init = 0x', IntToHex(QWORD(@gnome_program_init), 8), ', @libgnome_module_info_get = 0x', IntToHex(QWORD(@libgnome_module_info_get), 8)]); end; libGnomeUI2Handle := dlopen('libgnomeui-2.so.0', RTLD_LAZY); if libGnomeUI2Handle = nil then libGnomeUI2Handle := dlopen('libgnomeui-2.so', RTLD_LAZY); if libGnomeUI2Handle <> nil then begin @gnome_about_new := dlsym(libGnomeUI2Handle, 'gnome_about_new'); @gnome_color_picker_new := dlsym(libGnomeUI2Handle, 'gnome_color_picker_new'); @gnome_color_picker_get_i16 := dlsym(libGnomeUI2Handle, 'gnome_color_picker_get_i16'); @gnome_color_picker_set_i16 := dlsym(libGnomeUI2Handle, 'gnome_color_picker_set_i16'); @libgnomeui_module_info_get := dlsym(libGnomeUI2Handle, 'libgnomeui_module_info_get'); @gnome_icon_entry_new := dlsym(libGnomeUI2Handle, 'gnome_icon_entry_new'); @gnome_icon_entry_set_pixmap_subdir := dlsym(libGnomeUI2Handle, 'gnome_icon_entry_set_pixmap_subdir'); @gnome_icon_entry_get_filename := dlsym(libGnomeUI2Handle, 'gnome_icon_entry_get_filename'); @gnome_icon_entry_set_filename := dlsym(libGnomeUI2Handle, 'gnome_icon_entry_set_filename'); @gnome_date_edit_new := dlsym(libGnomeUI2Handle, 'gnome_date_edit_new'); @gnome_date_edit_set_time := dlsym(libGnomeUI2Handle, 'gnome_date_edit_set_time'); @gnome_date_edit_get_time := dlsym(libGnomeUI2Handle, 'gnome_date_edit_get_time'); DebugMsg(['libgnomeui-2.so loaded, @gnome_about_new = 0x', IntToHex(QWORD(@gnome_about_new), 8), ', @gnome_color_picker_new = 0x', IntToHex(QWORD(@gnome_color_picker_new), 8), ', @gnome_icon_entry_new = 0x', IntToHex(QWORD(@gnome_icon_entry_new), 8), ', @gnome_date_edit_new = 0x', IntToHex(QWORD(@gnome_date_edit_new), 8), ', @libgnomeui_module_info_get = 0x', IntToHex(QWORD(@libgnomeui_module_info_get), 8)]); end; SetupGnomeLibs; end; initialization finalization // if libGnomeUI2Handle <> 0 then FreeLibrary(libGnomeUI2Handle); // if libGnome2Handle <> 0 then FreeLibrary(libGnome2Handle); end. tuxcmd-0.6.70+dfsg/vfs/0000755000175000017500000000000011300022724013632 5ustar salvisalvituxcmd-0.6.70+dfsg/vfs/UVFSCore.pas0000644000175000017500000013422411300022643015741 0ustar salvisalvi(* Tux Commander - UVFSCore - VFS Core utilities and management Copyright (C) 2007 Tomas Bzatek Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UVFSCore; interface uses GTKForms, ULibc, Classes, uVFSprototypes, UEngines, UCoreUtils; type TVFSPlugin = class private FVFSNew: TVFSNew; FVFSFree: TVFSFree; FVFSVersion: TVFSVersion; FVFSGetInfo: TVFSGetInfo; FVFSOpenArchive: TVFSOpenArchive; FVFSOpenURI: TVFSOpenURI; FVFSClose: TVFSClose; FVFSListFirst: TVFSListFirst; FVFSListNext: TVFSListNext; FVFSListClose: TVFSListClose; FVFSChangeDir: TVFSChangeDir; FVFSGetPath: TVFSGetPath; FVFSGetPathURI: TVFSGetPathURI; FVFSGetFileSystemSize: TVFSGetFileSystemSize; FVFSGetFileSystemFree: TVFSGetFileSystemFree; FVFSFileExists: TVFSFileExists; FVFSFileInfo: TVFSFileInfo; FVFSMkDir: TVFSMkDir; FVFSRemove: TVFSRemove; FVFSRename: TVFSRename; FVFSMakeSymLink: TVFSMakeSymLink; FVFSChmod: TVFSChmod; FVFSChown: TVFSChown; FVFSChangeTimes: TVFSChangeTimes; FVFSGetDirSize: TVFSGetDirSize; FVFSBreakGetDirSize: TVFSBreakGetDirSize; FVFSOpenFile: TVFSOpenFile; FVFSReadFile: TVFSReadFile; FVFSWriteFile: TVFSWriteFile; FVFSCloseFile: TVFSCloseFile; FVFSFileSeek: TVFSFileSeek; FVFSSetBlockSize: TVFSSetBlockSize; FVFSCopyToLocal: TVFSCopyToLocal; FVFSCopyFromLocal: TVFSCopyFromLocal; FVFSIsOnSameFS: TVFSIsOnSameFS; FVFSTwoSameFiles: TVFSTwoSameFiles; FVFSGetArchiveExts: TVFSGetArchiveExts; FVFSGetNetworkServices: TVFSGetNetworkServices; FVFSGetPasswordRequired: TVFSGetPasswordRequired; FVFSSetCallbacks: TVFSSetCallbacks; FVFSResetPassword: TVFSResetPassword; function GetHandlesArchives: boolean; function GetHandlesNetwork: boolean; public ModuleHandle: Pointer; FullModulePath: string; // module path Extensions, Services: TOpenStringArray; // the list of the extensions plugin can handle constructor Create(PluginHandle: Pointer); destructor Destroy; override; function VFSVersion: integer; function ModuleID: string; function ModuleName: string; function ModuleAbout: string; function ModuleCopyright: string; published property HandlesArchives: boolean read GetHandlesArchives; property HandlesNetwork: boolean read GetHandlesNetwork; end; TVFSEngine = class(TPanelEngine) private FGlobs: Pointer; FSourcePlugin: TVFSPlugin; FBlockSize: Cardinal; BreakProcessingKind: integer; FArchiveMode: boolean; FArchivePath: string; function GetPluginID: string; public Password: string; PasswordUsed: boolean; RemoveFileOnClose: string; OpenedFromQuickConnect: boolean; CustomPluginIDSave: string; constructor Create(SourcePlugin: TVFSPlugin); function VFSOpenURI(URI: string; AskQuestionCallback: PVFSAskQuestionCallback; AskPasswordCallback: PVFSAskPasswordCallback; ProgressCallback: PVFSProgressCallback; CallbackData: Pointer): boolean; function VFSOpenEx(OpenFile: string; AskQuestionCallback: PVFSAskQuestionCallback; AskPasswordCallback: PVFSAskPasswordCallback; ProgressCallback: PVFSProgressCallback; CallbackData: Pointer): TVFSResult; function VFSClose: boolean; destructor Destroy; override; function GetListing(var List: TList; const AddDotFiles: boolean): integer; override; function GetListing(var List: TList; const AddDotFiles: boolean; APath: string): integer; override; function ChangeDir(const NewPath: string): integer; override; function ChangeDirEx(const NewPath: string; AskQuestionCallback: PVFSAskQuestionCallback; AskPasswordCallback: PVFSAskPasswordCallback; ProgressCallback: PVFSProgressCallback; CallbackData: Pointer): integer; function ExplicitChDir(const NewPath: string): integer; override; function GetFileSystemSize: Int64; override; function GetFileSystemSize(const APath: string): Int64; override; function GetFileSystemFree: Int64; override; function GetFileSystemFree(const APath: string): Int64; override; function MakeDir(const NewDir: string): integer; override; function GetDirSize(APath: string): Int64; override; function Remove(APath: string): integer; override; procedure FillDirFiles(APath: string; List: TList; ALevel: word); override; function GetFileInfoSL(APath: string): PDataItemSL; override; function FileExists(const FileName: string; const Use_lstat: boolean = False): Boolean; override; function DirectoryExists(const FileName: string; const Use_lstat: boolean = False): Boolean; override; function MakeSymLink(const NewFileName, PointTo: string): integer; override; function Chmod(const FileName: string; const Mode: integer): integer; override; function Chown(const FileName: string; const UID, GID: integer): integer; override; procedure BreakProcessing(ProcessingKind: integer); override; function RenameFile(SourceFile, DestFile: string): integer; override; function ChangeTimes(APath: string; mtime, atime: Int64): integer; override; procedure GetFileSystemInfo(const APath: string; var FSSize, FSFree: Int64; var FSName: string); override; function OpenFile(const APath: string; Mode: integer; var Error: integer): TEngineFileDes; override; function ReadFile(const FileDescriptor: TEngineFileDes; Buffer: Pointer; ABlockSize: integer; var Error: integer): integer; override; function WriteFile(const FileDescriptor: TEngineFileDes; Buffer: Pointer; BytesCount: integer; var Error: integer): integer; override; function CloseFile(const FileDescriptor: TEngineFileDes): integer; override; function FileSeek(const FileDescriptor: TEngineFileDes; const AbsoluteOffset: Int64; var Error: integer): Int64; override; function IsOnROMedium(const FileName: string): boolean; override; function FileCanRun(const FileName: string): boolean; override; function GetPath: string; override; procedure SetPath(Value: string); override; function GetPathURI: string; function GetBlockSize: Cardinal; override; procedure SetBlockSize(Value: Cardinal); override; function CopyFileIn(Sender: Pointer; SourceFile, DestFile: string; ProgressFunc: TEngineProgressFunc; ErrorFunc: TEngineErrorFunc; Append: boolean): boolean; override; function CopyFileOut(Sender: Pointer; SourceFile, DestFile: string; ProgressFunc: TEngineProgressFunc; ErrorFunc: TEngineErrorFunc; Append: boolean): boolean; override; function CopyFileInEx(Sender: Pointer; SourceFile, DestFile: string; ErrorFunc: TEngineErrorFunc; Append: boolean; AskQuestionCallback: PVFSAskQuestionCallback; AskPasswordCallback: PVFSAskPasswordCallback; ProgressCallback: PVFSProgressCallback; CallbackData: Pointer): boolean; function CopyFileOutEx(Sender: Pointer; SourceFile, DestFile: string; ErrorFunc: TEngineErrorFunc; Append: boolean; AskQuestionCallback: PVFSAskQuestionCallback; AskPasswordCallback: PVFSAskPasswordCallback; ProgressCallback: PVFSProgressCallback; CallbackData: Pointer): boolean; function IsOnSameFS(const Path1, Path2: string): boolean; override; function TwoSameFiles(const Path1, Path2: string): boolean; override; function GetPasswordRequired: boolean; procedure ResetPassword; published property Path: string read GetPath write SetPath; property BlockSize: Cardinal read GetBlockSize write SetBlockSize; property PluginID: string read GetPluginID; property ArchiveMode: boolean read FArchiveMode; property ArchivePath: string read FArchivePath; end; procedure DoInitPlugins; var PluginList: TList; implementation uses SysUtils, UConfig, ULocale; const ConstGlobalModulePath1 = '/usr/lib/tuxcmd'; ConstGlobalModulePath2 = '/usr/local/lib/tuxcmd'; ConstLocalModulePath1 = '~/.tuxcmd/plugins'; ConstLocalModulePath2 = './plugins'; ConstLocalModulePath3 = '../lib/tuxcmd'; ConstGlobalModulePath3 = '/usr/lib64/tuxcmd'; ConstGlobalModulePath4 = '/usr/local/lib64/tuxcmd'; ConstLocalModulePath4 = '../lib64/tuxcmd'; ConstVFSVersionRequired = cVFSVersion; var BinaryPath: string; procedure VFSLogFunc(const s: PChar); cdecl; begin DebugMsg([' ### VFS ###: ', s]); end; (********************************************************************************************************************************) constructor TVFSPlugin.Create(PluginHandle: Pointer); var s: PChar; begin inherited Create; ModuleHandle := PluginHandle; // Find the symbols @FVFSNew := dlsym(ModuleHandle, 'VFSNew'); @FVFSFree := dlsym(ModuleHandle, 'VFSFree'); @FVFSVersion := dlsym(ModuleHandle, 'VFSVersion'); @FVFSGetInfo := dlsym(ModuleHandle, 'VFSGetInfo'); @FVFSOpenArchive := dlsym(ModuleHandle, 'VFSOpenArchive'); @FVFSOpenURI := dlsym(ModuleHandle, 'VFSOpenURI'); @FVFSClose := dlsym(ModuleHandle, 'VFSClose'); @FVFSListFirst := dlsym(ModuleHandle, 'VFSListFirst'); @FVFSListNext := dlsym(ModuleHandle, 'VFSListNext'); @FVFSListClose := dlsym(ModuleHandle, 'VFSListClose'); @FVFSGetPath := dlsym(ModuleHandle, 'VFSGetPath'); @FVFSGetPathURI := dlsym(ModuleHandle, 'VFSGetPathURI'); @FVFSChangeDir := dlsym(ModuleHandle, 'VFSChangeDir'); @FVFSGetFileSystemSize := dlsym(ModuleHandle, 'VFSGetFileSystemSize'); @FVFSGetFileSystemFree := dlsym(ModuleHandle, 'VFSGetFileSystemFree'); @FVFSFileExists := dlsym(ModuleHandle, 'VFSFileExists'); @FVFSFileInfo := dlsym(ModuleHandle, 'VFSFileInfo'); @FVFSMkDir := dlsym(ModuleHandle, 'VFSMkDir'); @FVFSRemove := dlsym(ModuleHandle, 'VFSRemove'); @FVFSRename := dlsym(ModuleHandle, 'VFSRename'); @FVFSMakeSymLink := dlsym(ModuleHandle, 'VFSMakeSymLink'); @FVFSChmod := dlsym(ModuleHandle, 'VFSChmod'); @FVFSChown := dlsym(ModuleHandle, 'VFSChown'); @FVFSChangeTimes := dlsym(ModuleHandle, 'VFSChangeTimes'); @FVFSGetDirSize := dlsym(ModuleHandle, 'VFSGetDirSize'); @FVFSBreakGetDirSize := dlsym(ModuleHandle, 'VFSBreakGetDirSize'); @FVFSCopyToLocal := dlsym(ModuleHandle, 'VFSCopyToLocal'); @FVFSCopyFromLocal := dlsym(ModuleHandle, 'VFSCopyFromLocal'); @FVFSOpenFile := dlsym(ModuleHandle, 'VFSOpenFile'); @FVFSReadFile := dlsym(ModuleHandle, 'VFSReadFile'); @FVFSWriteFile := dlsym(ModuleHandle, 'VFSWriteFile'); @FVFSCloseFile := dlsym(ModuleHandle, 'VFSCloseFile'); @FVFSFileSeek := dlsym(ModuleHandle, 'VFSFileSeek'); @FVFSSetBlockSize := dlsym(ModuleHandle, 'VFSSetBlockSize'); @FVFSIsOnSameFS := dlsym(ModuleHandle, 'VFSIsOnSameFS'); @FVFSTwoSameFiles := dlsym(ModuleHandle, 'VFSTwoSameFiles'); @FVFSGetArchiveExts := dlsym(ModuleHandle, 'VFSGetArchiveExts'); @FVFSGetNetworkServices := dlsym(ModuleHandle, 'VFSGetNetworkServices'); @FVFSGetPasswordRequired := dlsym(ModuleHandle, 'VFSGetPasswordRequired'); @FVFSSetCallbacks := dlsym(ModuleHandle, 'VFSSetCallbacks'); @FVFSResetPassword := dlsym(ModuleHandle, 'VFSResetPassword'); // Initialize the extensions list SetLength(Extensions, 0); SetLength(Services, 0); if (@FVFSGetArchiveExts <> nil) and (@FVFSOpenArchive <> nil) then begin s := FVFSGetArchiveExts; if s <> nil then begin ParseString(String(s), ';', Extensions); real_libc_free(s); end; end; if (@FVFSGetNetworkServices <> nil) and (@FVFSOpenURI <> nil) then begin s := FVFSGetNetworkServices; if s <> nil then begin ParseString(String(s), ';', Services); real_libc_free(s); end; end; end; destructor TVFSPlugin.Destroy; begin SetLength(Extensions, 0); SetLength(Services, 0); if ModuleHandle <> nil then dlclose(ModuleHandle); inherited Destroy; end; (********************************************************************************************************************************) function TVFSPlugin.VFSVersion: integer; begin if @FVFSVersion <> nil then Result := FVFSVersion else Result := -1; end; procedure _free_PVFSInfo(Info: PVFSInfo); begin if Info <> nil then begin if Info^.Name <> nil then real_libc_free(Info^.Name); if Info^.ID <> nil then real_libc_free(Info^.ID); if Info^.About <> nil then real_libc_free(Info^.About); if Info^.Copyright <> nil then real_libc_free(Info^.Copyright); end; end; function TVFSPlugin.ModuleID: string; var Info: PVFSInfo; begin if @FVFSGetInfo <> nil then begin Info := FVFSGetInfo; Result := String(Info.ID); _free_PVFSInfo(Info); end else Result := ''; end; function TVFSPlugin.ModuleName: string; var Info: PVFSInfo; begin if @FVFSGetInfo <> nil then begin Info := FVFSGetInfo; Result := String(Info.Name); _free_PVFSInfo(Info); end else Result := ''; end; function TVFSPlugin.ModuleAbout: string; var Info: PVFSInfo; begin if @FVFSGetInfo <> nil then begin Info := FVFSGetInfo; Result := String(Info.About); _free_PVFSInfo(Info); end else Result := ''; end; function TVFSPlugin.ModuleCopyright: string; var Info: PVFSInfo; begin if @FVFSGetInfo <> nil then begin Info := FVFSGetInfo; Result := String(Info.Copyright); _free_PVFSInfo(Info); end else Result := ''; end; function TVFSPlugin.GetHandlesArchives: boolean; begin Result := (Length(Extensions) > 0) and (@FVFSOpenArchive <> nil); end; function TVFSPlugin.GetHandlesNetwork: boolean; begin Result := (Length(Services) > 0) and (@FVFSOpenURI <> nil); end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TVFSEngine.Create(SourcePlugin: TVFSPlugin); begin inherited Create; FSourcePlugin := SourcePlugin; FBlockSize := 65536; FArchiveMode := False; FArchivePath := ''; BreakProcessingKind := 0; FGlobs := nil; Password := ''; PasswordUsed := False; RemoveFileOnClose := ''; OpenedFromQuickConnect := False; CustomPluginIDSave := ''; if @FSourcePlugin.FVFSNew <> nil then FGlobs := FSourcePlugin.FVFSNew(@VFSLogFunc); end; destructor TVFSEngine.Destroy; begin try if @FSourcePlugin.FVFSFree <> nil then FSourcePlugin.FVFSFree(FGlobs); if Length(Trim(RemoveFileOnClose)) > 0 then if unlink(PChar(RemoveFileOnClose)) <> 0 then DebugMsg(['(EE) TVFSEngine.Destroy: error while removing ''', RemoveFileOnClose, ''': ', strerror(errno)]); except on E: Exception do DebugMsg(['*** TVFSEngine.Destroy() -Exception: ', E.Message]); end; end; function TVFSEngine.VFSOpenURI(URI: string; AskQuestionCallback: PVFSAskQuestionCallback; AskPasswordCallback: PVFSAskPasswordCallback; ProgressCallback: PVFSProgressCallback; CallbackData: Pointer): boolean; begin Result := False; if (FGlobs <> nil) and (@FSourcePlugin.FVFSOpenURI <> nil) then begin if @FSourcePlugin.FVFSSetCallbacks <> nil then FSourcePlugin.FVFSSetCallbacks(FGlobs, AskQuestionCallback, AskPasswordCallback, ProgressCallback, CallbackData); Result := FSourcePlugin.FVFSOpenURI(FGlobs, PChar(URI)) = cVFS_OK; FArchiveMode := False; FArchivePath := ''; if @FSourcePlugin.FVFSSetCallbacks <> nil then FSourcePlugin.FVFSSetCallbacks(FGlobs, nil, nil, nil, nil); end; end; function TVFSEngine.VFSOpenEx(OpenFile: string; AskQuestionCallback: PVFSAskQuestionCallback; AskPasswordCallback: PVFSAskPasswordCallback; ProgressCallback: PVFSProgressCallback; CallbackData: Pointer): TVFSResult; begin Result := cVFS_OK; if (FGlobs <> nil) and (@FSourcePlugin.FVFSOpenArchive <> nil) then begin if @FSourcePlugin.FVFSSetCallbacks <> nil then FSourcePlugin.FVFSSetCallbacks(FGlobs, AskQuestionCallback, AskPasswordCallback, ProgressCallback, CallbackData); Result := FSourcePlugin.FVFSOpenArchive(FGlobs, PChar(OpenFile)); FArchiveMode := True; if Result = cVFS_OK then FArchivePath := OpenFile else FArchivePath := ''; if @FSourcePlugin.FVFSSetCallbacks <> nil then FSourcePlugin.FVFSSetCallbacks(FGlobs, nil, nil, nil, nil); end; end; function TVFSEngine.VFSClose: boolean; begin Result := False; if (FGlobs <> nil) and (@FSourcePlugin.FVFSClose <> nil) then Result := FSourcePlugin.FVFSClose(FGlobs) = cVFS_OK; end; function TVFSEngine.GetListing(var List: TList; const AddDotFiles: boolean; APath: string): integer; var P: PVFSItem; Item: PDataItem; i, Res: integer; begin DebugMsg(['^^VFS (II): GetListing begin']); Result := 0; try if @FSourcePlugin.FVFSListFirst = nil then Exit; P := real_libc_malloc(SizeOf(TVFSItem)); memset(P, 0, SizeOf(TVFSItem)); // DebugMsg(['Item = ', Int64(P)]); // DebugMsg(['FVFSListFirst']); Res := FSourcePlugin.FVFSListFirst(FGlobs, PChar(APath), P); if Res <> cVFS_OK then begin FSourcePlugin.FVFSListClose(FGlobs); if Res = cVFS_Not_More_Files then Result := 0 else Result := Res; real_libc_free(P); Exit; end; repeat // DebugMsg(['begin--']); if AddDotFiles or (not ((Length(P^.FName) > 1) and (P^.FName[0] = '.') and (P^.FName[1] <> '.'))) then begin // DebugMsg(['Checkpoint 1']); Item := malloc(SizeOf(TDataItem)); memset(Item, 0, SizeOf(TDataItem)); // DebugMsg(['Checkpoint 2']); for i := 0 to Length(Item^.ColumnData) - 1 do Item^.ColumnData[i] := nil; // DebugMsg(['Checkpoint 3']); with Item^ do try FName := strdup(P^.FName); FDisplayName := strdup(P^.FDisplayName); if P^.sLinkTo <> nil then begin LnkPointTo := strdup(P^.sLinkTo); DebugMsg(['LnkPointTo = ', P^.sLinkTo]); end else LnkPointTo := nil; Mode := P^.iMode; // DebugMsg(['Checkpoint 4']); IsDotFile := (Length(FName) > 1) and (FName[0] = '.') and (FName[1] <> '.'); IsDir := TVFSItemType(P^.ItemType) = vDirectory; IsLnk := TVFSItemType(P^.ItemType) = vSymlink; IsBlk := TVFSItemType(P^.ItemType) = vBlockdev; IsChr := TVFSItemType(P^.ItemType) = vChardev; IsFIFO := TVFSItemType(P^.ItemType) = vFifo; IsSock := TVFSItemType(P^.ItemType) = vSock; // DebugMsg(['Checkpoint 5']); ModifyTime := P^.m_time; // DebugMsg(['Returned datetime: ', Longword(P^.m_time)]); // DebugMsg(['Checkpoint 6']); UID := P^.iUID; // DebugMsg(['Checkpoint 7']); GID := P^.iGID; // DebugMsg(['Checkpoint 8']); UpDir := False; // DebugMsg(['Checkpoint 9']); Selected := False; // DebugMsg(['Checkpoint 10']); Size := P^.iSize; // DebugMsg(['Checkpoint 11']); List.Add(Item); // DebugMsg(['Checkpoint 12']); except on E: Exception do DebugMsg(['^^VFS (EE): GetListing: Item-Exception: ', E.Message]); end; end; // of if AddDotFiles if P^.FName <> nil then real_libc_free(P^.FName); if P^.FDisplayName <> nil then real_libc_free(P^.FDisplayName); if P^.sLinkTo <> nil then real_libc_free(P^.sLinkTo); real_libc_free(P); // Not needed - just zero-erase the memory // DebugMsg(['Checkpoint 13']); P := real_libc_malloc(SizeOf(TVFSItem)); memset(P, 0, SizeOf(TVFSItem)); // DebugMsg(['Item = ', Int64(P)]); // DebugMsg(['Checkpoint 14']); // DebugMsg(['FVFSListNext --begin']); Res := FSourcePlugin.FVFSListNext(FGlobs, PChar(APath), P); // DebugMsg(['FVFSListNext --end']); // Sleep(500); until (Res <> cVFS_OK) or (BreakProcessingKind = 2); if BreakProcessingKind <> 0 then DebugMsg(['^^VFS (WW): GetListing: stopped by BreakProcessing']); real_libc_free(P); FSourcePlugin.FVFSListClose(FGlobs); if Res <> cVFS_Not_More_Files then Result := Res; except on E: Exception do DebugMsg(['^^VFS (EE): GetListing: Exception: ', E.Message]); end; BreakProcessingKind := 0; DebugMsg(['^^VFS (II): GetListing end.']); end; function TVFSEngine.GetListing(var List: TList; const AddDotFiles: boolean): integer; begin Result := GetListing(List, AddDotFiles, GetPath); end; function TVFSEngine.ExplicitChDir(const NewPath: string): integer; begin Result := libc_chdir(PChar(NewPath)); if Result <> 0 then Result := errno; end; function TVFSEngine.GetFileSystemSize: Int64; begin Result := GetFileSystemSize(GetPath); end; function TVFSEngine.GetFileSystemSize(const APath: string): Int64; begin if (FGlobs <> nil) and (@FSourcePlugin.FVFSGetFileSystemSize <> nil) then Result := FSourcePlugin.FVFSGetFileSystemSize(FGlobs, PChar(APath)) else Result := 0; end; function TVFSEngine.GetFileSystemFree: Int64; begin Result := GetFileSystemFree(GetPath); end; function TVFSEngine.GetFileSystemFree(const APath: string): Int64; begin if (FGlobs <> nil) and (@FSourcePlugin.FVFSGetFileSystemFree <> nil) then Result := FSourcePlugin.FVFSGetFileSystemFree(FGlobs, PChar(APath)) else Result := 0; end; procedure TVFSEngine.GetFileSystemInfo(const APath: string; var FSSize, FSFree: Int64; var FSName: string); begin FSSize := GetFileSystemSize(APath); FSFree := GetFileSystemFree(APath); FSName := 'plugin'; end; function TVFSEngine.IsOnROMedium(const FileName: string): boolean; begin Result := True; end; function TVFSEngine.FileCanRun(const FileName: string): boolean; var Item: PDataItemSL; begin Item := GetFileInfoSL(FileName); Result := Assigned(Item) and Item^.IsExecutable; FreeDataItem(Item); end; function TVFSEngine.GetPath: string; var s: PChar; begin Result := '/'; if (FGlobs <> nil) and (@FSourcePlugin.FVFSGetPath <> nil) then begin s := FSourcePlugin.FVFSGetPath(FGlobs); if s <> nil then begin Result := String(s); real_libc_free(s); end; end; end; function TVFSEngine.GetPathURI: string; var s: PChar; begin Result := ''; if (FGlobs <> nil) and (@FSourcePlugin.FVFSGetPathURI <> nil) then begin s := FSourcePlugin.FVFSGetPathURI(FGlobs); if s <> nil then begin Result := String(s); real_libc_free(s); end; end; end; function TVFSEngine.ChangeDir(const NewPath: string): integer; begin DebugMsg(['^^VFS (II): ChangeDir begin']); Result := 0; try Result := FSourcePlugin.FVFSChangeDir(FGlobs, PChar(NewPath)); // Sleep(3000); except on E: Exception do DebugMsg(['^^VFS (EE): ChangeDir: Exception: ', E.Message]); end; DebugMsg(['^^VFS (II): ChangeDir end.']); end; function TVFSEngine.ChangeDirEx(const NewPath: string; AskQuestionCallback: PVFSAskQuestionCallback; AskPasswordCallback: PVFSAskPasswordCallback; ProgressCallback: PVFSProgressCallback; CallbackData: Pointer): integer; begin if (FGlobs <> nil) and (@FSourcePlugin.FVFSChangeDir <> nil) then begin if @FSourcePlugin.FVFSSetCallbacks <> nil then FSourcePlugin.FVFSSetCallbacks(FGlobs, AskQuestionCallback, AskPasswordCallback, ProgressCallback, CallbackData); Result := ChangeDir(NewPath); if @FSourcePlugin.FVFSSetCallbacks <> nil then FSourcePlugin.FVFSSetCallbacks(FGlobs, nil, nil, nil, nil); end; end; procedure TVFSEngine.SetPath(Value: string); begin ChangeDir(Value); end; function TVFSEngine.FileExists(const FileName: string; const Use_lstat: boolean = False): Boolean; begin if (FGlobs <> nil) and (@FSourcePlugin.FVFSFileExists <> nil) then Result := FSourcePlugin.FVFSFileExists(FGlobs, PChar(FileName), Use_lstat) else Result := False; end; function TVFSEngine.DirectoryExists(const FileName: string; const Use_lstat: boolean = False): Boolean; var P: PVFSItem; Res: integer; begin if @FSourcePlugin.FVFSFileExists <> nil then begin Result := FSourcePlugin.FVFSFileExists(FGlobs, PChar(FileName), Use_lstat); if Result and (@FSourcePlugin.FVFSFileInfo <> nil) then begin P := real_libc_malloc(SizeOf(TVFSItem)); memset(P, 0, SizeOf(TVFSItem)); Res := FSourcePlugin.FVFSFileInfo(FGlobs, PChar(FileName), P); if (Res <> cVFS_OK) or (P = nil) or (TVFSItemType(P^.ItemType) <> vDirectory) then Result := False; real_libc_free(P); end; end else Result := False; end; function TVFSEngine.GetFileInfoSL(APath: string): PDataItemSL; var P: PVFSItem; Item: PDataItemSL; Res: integer; begin Result := nil; if @FSourcePlugin.FVFSFileInfo = nil then Exit; P := real_libc_malloc(SizeOf(TVFSItem)); memset(P, 0, SizeOf(TVFSItem)); Res := FSourcePlugin.FVFSFileInfo(FGlobs, PChar(APath), P); if Res <> cVFS_OK then begin DebugMsg(['*** VFSFileInfo(', APath, ') failed. Code = ', Res]); Exit; end; try Item := malloc(SizeOf(TDataItemSL)); memset(Item, 0, SizeOf(TDataItemSL)); with Item^ do begin { FName := strdup(P^.FName); FDisplayName := StrToUTF8(P^.FName); } FName := strdup(PChar(APath)); //* TODO FDisplayName := StrToUTF8(PChar(APath)); if P^.sLinkTo <> nil then LnkPointTo := strdup(P^.sLinkTo) else LnkPointTo := nil; ADestination := nil; Stage1 := True; Level := 0; IsDir := TVFSItemType(P^.ItemType) = vDirectory; IsLnk := TVFSItemType(P^.ItemType) = vSymlink; ForceMove := False; {***} IsOnRO := True; IsExecutable := P^.iMode and S_IXUSR = S_IXUSR; Mode := P^.iMode; ModifyTime := P^.m_time; mtime := P^.m_time; atime := P^.a_time; UID := P^.iUID; GID := P^.iGID; Size := P^.iSize; PackedSize := P^.iPackedSize; if P^.FName <> nil then real_libc_free(P^.FName); if P^.FDisplayName <> nil then real_libc_free(P^.FDisplayName); if P^.sLinkTo <> nil then real_libc_free(P^.sLinkTo); real_libc_free(P); end; Result := Item; except on E: Exception do DebugMsg(['*** TVFSEngine.GetFileInfoSL(APath=', APath, ') -Exception: ', E.Message]); end; end; function TVFSEngine.MakeDir(const NewDir: string): integer; begin if @FSourcePlugin.FVFSMkDir <> nil then Result := FSourcePlugin.FVFSMkDir(FGlobs, PChar(NewDir)) else Result := cVFS_Failed; end; function TVFSEngine.Remove(APath: string): integer; begin if @FSourcePlugin.FVFSRemove <> nil then Result := FSourcePlugin.FVFSRemove(FGlobs, PChar(APath)) else Result := cVFS_Failed; end; function TVFSEngine.RenameFile(SourceFile, DestFile: string): integer; begin if @FSourcePlugin.FVFSRename <> nil then Result := FSourcePlugin.FVFSRename(FGlobs, PChar(SourceFile), PChar(DestFile)) else Result := cVFS_Failed; end; procedure TVFSEngine.FillDirFiles(APath: string; List: TList; ALevel: word); var Item: PDataItemSL; i, Res: integer; FilesList: TList; LocalList: TStringList; P: PVFSItem; procedure AddEntry(FPath: string; AddCurrDirStage, AStage1: boolean); begin Item := malloc(SizeOf(TDataItemSL)); memset(Item, 0, SizeOf(TDataItemSL)); with Item^ do begin // AName := malloc(Length(FPath) + 1); // memset(AName, 0, Length(FPath) + 1); FName := strdup(PChar(FPath)); //* TODO FDisplayName := StrToUTF8(PChar(FPath)); if P^.sLinkTo <> nil then LnkPointTo := strdup(P^.sLinkTo) else LnkPointTo := nil; ADestination := nil; Stage1 := AStage1; IsDir := TVFSItemType(P^.ItemType) = vDirectory; IsLnk := TVFSItemType(P^.ItemType) = vSymlink; if IsLnk and AddCurrDirStage then DebugMsg(['*** Assertion failed AddEntry: Item^.IsLnk = True']); ForceMove := False; {***} IsOnRO := True; IsExecutable := AddCurrDirStage or (P^.iMode and S_IXUSR = S_IXUSR); Mode := P^.iMode; ModifyTime := P^.m_time; mtime := P^.m_time; atime := P^.a_time; UID := P^.iUID; GID := P^.iGID; Size := P^.iSize; PackedSize := P^.iPackedSize; Level := ALevel + Ord(not AddCurrDirStage); end; if AddCurrDirStage then List.Add(Item) else FilesList.Add(Item); end; begin if not Assigned(List) then Exit; FilesList := TList.Create; LocalList := TStringList.Create; try try P := real_libc_malloc(SizeOf(TVFSItem)); memset(P, 0, SizeOf(TVFSItem)); Res := FSourcePlugin.FVFSFileInfo(FGlobs, PChar(APath), P); if Res <> cVFS_OK then DebugMsg(['*** FillDirFiles - VFSFileInfo(', APath, ') failed. Code = ', Res]); AddEntry(APath, True, True); if P^.FName <> nil then real_libc_free(P^.FName); if P^.FDisplayName <> nil then real_libc_free(P^.FDisplayName); if P^.sLinkTo <> nil then real_libc_free(P^.sLinkTo); real_libc_free(P); APath := IncludeTrailingPathDelimiter(APath); if @FSourcePlugin.FVFSChangeDir <> nil then Res := FSourcePlugin.FVFSChangeDir(FGlobs, PChar(APath)) else Exit; if Res <> 0 then Exit; if @FSourcePlugin.FVFSListFirst = nil then Exit; P := real_libc_malloc(SizeOf(TVFSItem)); memset(P, 0, SizeOf(TVFSItem)); Res := FSourcePlugin.FVFSListFirst(FGlobs, PChar(APath), P); if Res <> cVFS_OK then begin FSourcePlugin.FVFSListClose(FGlobs); if P^.FName <> nil then real_libc_free(P^.FName); if P^.FDisplayName <> nil then real_libc_free(P^.FDisplayName); if P^.sLinkTo <> nil then real_libc_free(P^.sLinkTo); real_libc_free(P); Exit; end; repeat if TVFSItemType(P^.ItemType) = vDirectory then LocalList.Add(APath + String(P^.FName)) else AddEntry(APath + String(P^.FName), False, True); if P^.FName <> nil then real_libc_free(P^.FName); if P^.FDisplayName <> nil then real_libc_free(P^.FDisplayName); if P^.sLinkTo <> nil then real_libc_free(P^.sLinkTo); real_libc_free(P); P := real_libc_malloc(SizeOf(TVFSItem)); memset(P, 0, SizeOf(TVFSItem)); Res := FSourcePlugin.FVFSListNext(FGlobs, PChar(GetPath), P); until (Res <> cVFS_OK); if P^.FName <> nil then real_libc_free(P^.FName); if P^.FDisplayName <> nil then real_libc_free(P^.FDisplayName); if P^.sLinkTo <> nil then real_libc_free(P^.sLinkTo); real_libc_free(P); FSourcePlugin.FVFSListClose(FGlobs); if LocalList.Count > 0 then for i := 0 to LocalList.Count - 1 do FillDirFiles(LocalList[i], List, ALevel + 1); if FilesList.Count > 0 then for i := 0 to FilesList.Count - 1 do List.Add(FilesList[i]); except on E: Exception do DebugMsg(['*** TVFSEngine.FillDirFiles(APath=', APath, ', Level=', ALevel, ') -Exception: ', E.Message]); end; finally P := real_libc_malloc(SizeOf(TVFSItem)); memset(P, 0, SizeOf(TVFSItem)); Res := FSourcePlugin.FVFSFileInfo(FGlobs, PChar(APath), P); if Res <> cVFS_OK then DebugMsg(['*** FillDirFiles - VFSFileInfo(', APath, ') failed. Code = ', Res]); AddEntry(APath, True, False); if P^.FName <> nil then real_libc_free(P^.FName); if P^.FDisplayName <> nil then real_libc_free(P^.FDisplayName); if P^.sLinkTo <> nil then real_libc_free(P^.sLinkTo); real_libc_free(P); LocalList.Free; FilesList.Free; end; end; function TVFSEngine.MakeSymLink(const NewFileName, PointTo: string): integer; begin if @FSourcePlugin.FVFSMakeSymLink <> nil then Result := FSourcePlugin.FVFSMakeSymLink(FGlobs, PChar(NewFileName), PChar(PointTo)) else Result := cVFS_Failed; end; function TVFSEngine.Chmod(const FileName: string; const Mode: integer): integer; begin if @FSourcePlugin.FVFSChmod <> nil then Result := FSourcePlugin.FVFSChmod(FGlobs, PChar(FileName), Mode) else Result := cVFS_Failed; end; function TVFSEngine.Chown(const FileName: string; const UID, GID: integer): integer; begin if @FSourcePlugin.FVFSChown <> nil then Result := FSourcePlugin.FVFSChown(FGlobs, PChar(FileName), UID, GID) else Result := cVFS_Failed; end; function TVFSEngine.ChangeTimes(APath: string; mtime, atime: Int64): integer; begin if @FSourcePlugin.FVFSChangeTimes <> nil then Result := FSourcePlugin.FVFSChangeTimes(FGlobs, PChar(APath), mtime, atime) else Result := cVFS_Failed; end; function TVFSEngine.GetDirSize(APath: string): Int64; begin if @FSourcePlugin.FVFSGetDirSize <> nil then Result := FSourcePlugin.FVFSGetDirSize(FGlobs, PChar(APath)) else Result := 0; end; procedure TVFSEngine.BreakProcessing(ProcessingKind: integer); begin case ProcessingKind of 1: if @FSourcePlugin.FVFSBreakGetDirSize <> nil then FSourcePlugin.FVFSBreakGetDirSize(FGlobs); end; end; function TVFSEngine.GetBlockSize: Cardinal; begin Result := FBlockSize; end; procedure TVFSEngine.SetBlockSize(Value: Cardinal); begin if (FGlobs <> nil) and (@FSourcePlugin.FVFSSetBlockSize <> nil) then FSourcePlugin.FVFSSetBlockSize(FGlobs, Value); end; (********************************************************************************************************************************) function TVFSEngine.IsOnSameFS(const Path1, Path2: string): boolean; begin if @FSourcePlugin.FVFSIsOnSameFS <> nil then Result := FSourcePlugin.FVFSIsOnSameFS(FGlobs, PChar(Path1), PChar(Path2)) else Result := True; end; function TVFSEngine.OpenFile(const APath: string; Mode: integer; var Error: integer): TEngineFileDes; var i: integer; begin if @FSourcePlugin.FVFSOpenFile <> nil then begin Result := FSourcePlugin.FVFSOpenFile(FGlobs, PChar(APath), Mode, @i); Error := i; end else Result := nil; end; function TVFSEngine.ReadFile(const FileDescriptor: TEngineFileDes; Buffer: Pointer; ABlockSize: integer; var Error: integer): integer; var i: integer; begin if @FSourcePlugin.FVFSReadFile <> nil then begin Result := FSourcePlugin.FVFSReadFile(FGlobs, FileDescriptor, Buffer, ABlockSize, @i); Error := i; end else Result := -1; end; function TVFSEngine.WriteFile(const FileDescriptor: TEngineFileDes; Buffer: Pointer; BytesCount: integer; var Error: integer): integer; var i: integer; begin if @FSourcePlugin.FVFSWriteFile <> nil then begin Result := FSourcePlugin.FVFSWriteFile(FGlobs, FileDescriptor, Buffer, BytesCount, @i); Error := i; end else Result := -1; end; function TVFSEngine.CloseFile(const FileDescriptor: TEngineFileDes): integer; begin if @FSourcePlugin.FVFSCloseFile <> nil then Result := FSourcePlugin.FVFSCloseFile(FGlobs, FileDescriptor) else Result := 0; end; function TVFSEngine.FileSeek(const FileDescriptor: TEngineFileDes; const AbsoluteOffset: Int64; var Error: integer): Int64; var i: integer; begin if @FSourcePlugin.FVFSFileSeek <> nil then begin Result := FSourcePlugin.FVFSFileSeek(FGlobs, FileDescriptor, AbsoluteOffset, @i); Error := i; end else Result := -1; end; function TVFSEngine.TwoSameFiles(const Path1, Path2: string): boolean; begin if @FSourcePlugin.FVFSTwoSameFiles <> nil then Result := FSourcePlugin.FVFSTwoSameFiles(FGlobs, PChar(Path1), PChar(Path2)) else Result := False; end; (********************************************************************************************************************************) function TVFSEngine.CopyFileIn(Sender: Pointer; SourceFile, DestFile: string; ProgressFunc: TEngineProgressFunc; ErrorFunc: TEngineErrorFunc; Append: boolean): boolean; begin Result := CopyFileInEx(Sender, SourceFile, DestFile, ErrorFunc, Append, nil, nil, nil, nil); end; function TVFSEngine.CopyFileOut(Sender: Pointer; SourceFile, DestFile: string; ProgressFunc: TEngineProgressFunc; ErrorFunc: TEngineErrorFunc; Append: boolean): boolean; begin Result := CopyFileInEx(Sender, SourceFile, DestFile, ErrorFunc, Append, nil, nil, nil, nil); end; function TVFSEngine.CopyFileOutEx(Sender: Pointer; SourceFile, DestFile: string; ErrorFunc: TEngineErrorFunc; Append: boolean; AskQuestionCallback: PVFSAskQuestionCallback; AskPasswordCallback: PVFSAskPasswordCallback; ProgressCallback: PVFSProgressCallback; CallbackData: Pointer): boolean; var Res: TVFSResult; begin Result := False; try if @FSourcePlugin.FVFSCopyToLocal <> nil then begin // DebugMsg(['0 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$']); // DebugMsg([' Pointer(FGlobs) = 0x', IntToHex(Int64(FGlobs), 16), ', Pointer(@NewVFSCopyCallBackFunc) = 0x', IntToHex(Int64(@NewVFSCopyCallBackFunc), 16), ', Pointer(Self) = 0x', IntToHex(Int64(Self), 16)]); try if @FSourcePlugin.FVFSSetCallbacks <> nil then FSourcePlugin.FVFSSetCallbacks(FGlobs, AskQuestionCallback, AskPasswordCallback, ProgressCallback, CallbackData); Res := FSourcePlugin.FVFSCopyToLocal(FGlobs, PChar(SourceFile), PChar(DestFile), Append); if @FSourcePlugin.FVFSSetCallbacks <> nil then FSourcePlugin.FVFSSetCallbacks(FGlobs, nil, nil, nil, nil); except on E: Exception do begin DebugMsg(['*** Exception raised in TVFSEngine.CopyFileOut(Sender=', QWord(Sender), ', SourceFile=', SourceFile, ', DestFile=', DestFile, '): (', E.ClassName, '): ', E.Message]); Res := cVFS_WriteErr; end; end; // DebugMsg(['1 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$']); Result := Res = cVFS_OK; if (Res <> cVFS_OK) and Assigned(ErrorFunc) then case Res of cVFS_ReadErr: Result := ErrorFunc(Sender, 6, 0, SourceFile); cVFS_WriteErr: Result := ErrorFunc(Sender, 7, 0, DestFile); cVFS_mallocFailed: ErrorFunc(Sender, 1, 0, SourceFile); cVFS_Cancelled: ErrorFunc(Sender, 0, 0, SourceFile); end; end else Result := False; except on E: Exception do DebugMsg(['*** Exception raised in TVFSEngine.CopyFileOut(Sender=', QWord(Sender), ', SourceFile=', SourceFile, ', DestFile=', DestFile, '): (', E.ClassName, '): ', E.Message]); end; end; function TVFSEngine.CopyFileInEx(Sender: Pointer; SourceFile, DestFile: string; ErrorFunc: TEngineErrorFunc; Append: boolean; AskQuestionCallback: PVFSAskQuestionCallback; AskPasswordCallback: PVFSAskPasswordCallback; ProgressCallback: PVFSProgressCallback; CallbackData: Pointer): boolean; var Res: TVFSResult; begin Result := False; try if @FSourcePlugin.FVFSCopyFromLocal <> nil then begin try if @FSourcePlugin.FVFSSetCallbacks <> nil then FSourcePlugin.FVFSSetCallbacks(FGlobs, AskQuestionCallback, AskPasswordCallback, ProgressCallback, CallbackData); Res := FSourcePlugin.FVFSCopyFromLocal(FGlobs, PChar(SourceFile), PChar(DestFile), Append); if @FSourcePlugin.FVFSSetCallbacks <> nil then FSourcePlugin.FVFSSetCallbacks(FGlobs, nil, nil, nil, nil); except on E: Exception do begin DebugMsg(['*** Exception raised in TVFSEngine.CopyFileIn(Sender=', QWord(Sender), ', SourceFile=', SourceFile, ', DestFile=', DestFile, '): (', E.ClassName, '): ', E.Message]); Res := cVFS_WriteErr; end; end; Result := Res = cVFS_OK; if (Res <> cVFS_OK) and Assigned(ErrorFunc) then case Res of cVFS_ReadErr: Result := ErrorFunc(Sender, 6, 0, SourceFile); cVFS_WriteErr: Result := ErrorFunc(Sender, 7, 0, DestFile); cVFS_mallocFailed: ErrorFunc(Sender, 1, 0, SourceFile); cVFS_Cancelled: ErrorFunc(Sender, 0, 0, SourceFile); end; end else Result := False; except on E: Exception do DebugMsg(['*** Exception raised in TVFSEngine.CopyFileIn(Sender=', QWord(Sender), ', SourceFile=', SourceFile, ', DestFile=', DestFile, '): (', E.ClassName, '): ', E.Message]); end; end; (********************************************************************************************************************************) (********************************************************************************************************************************) function TVFSEngine.GetPasswordRequired: boolean; begin if @FSourcePlugin.FVFSGetPasswordRequired <> nil then Result := FSourcePlugin.FVFSGetPasswordRequired(FGlobs) else Result := False; end; procedure TVFSEngine.ResetPassword; begin if @FSourcePlugin.FVFSResetPassword <> nil then FSourcePlugin.FVFSResetPassword(FGlobs); end; (********************************************************************************************************************************) (********************************************************************************************************************************) function TVFSEngine.GetPluginID: string; begin if FSourcePlugin <> nil then Result := FSourcePlugin.ModuleID else Result := ''; end; (********************************************************************************************************************************) (********************************************************************************************************************************) function GetBinaryPath: string; var i: integer; Buf: array[0..1024] of char; begin Result := ParamStr(0); // Fallback try DebugMsg(['Trying to determine binary path...']); DebugMsg(['Fallback path = ', Result]); Buf[0] := #0; FillChar(Buf, 1025, 0); i := readlink(PChar(Format('/proc/%d/exe', [getpid])), @Buf, 1024); if i < 1 then begin DebugMsg(['Something went wrong during readlink: ', string(strerror(errno))]); Exit; end; Buf[i] := #0; Result := string(PChar(@Buf)); DebugMsg(['Path to executable = ', Result]); except on E: Exception do DebugMsg(['*** Exception raised in GetBinaryPath: (', E.ClassName, '): ', E.Message]); end; end; procedure QueryModules(APath: string); var Handle: PDIR; DirEnt: PDirent64; s: string; PluginItem: TVFSPlugin; ModuleHandler: Pointer; VFSVersionFunc: TVFSVersion; i: integer; Buf: PChar; b: boolean; begin if Length(APath) < 1 then Exit; try try APath := ReplaceStr(APath, '~', GetHomePath); DebugMsg(['------------------ Querying modules in ', APath, ' ---']); // First change to the program starting directory if APath[1] <> '/' then begin s := ExtractFilePath(BinaryPath); DebugMsg(['----> Changing dir to ', s]); i := libc_chdir(PChar(s)); if i <> 0 then DebugMsg(['Something went wrong during chdir: ', string(strerror(errno))]); s := get_current_dir_name; DebugMsg([' [II] Changed dir to ', s]); end; // Change to the required directory s := APath; DebugMsg(['----> Changing dir to ', s]); i := libc_chdir(PChar(s)); if i <> 0 then begin DebugMsg(['Something went wrong during chdir: ', string(strerror(errno))]); Exit; end; s := get_current_dir_name; DebugMsg([' [II] Changed dir to ', s, ', trying to list the files...']); // Going to read the directory and search for the files... Handle := opendir(PChar(s)); if not Assigned(Handle) then begin DebugMsg(['Something went wrong during opendir: ', string(strerror(errno))]); Exit; end; repeat DirEnt := readdir64(Handle); if Assigned(DirEnt) then begin Buf := PChar(@DirEnt^.d_name[0]); if Assigned(Buf) and (strcmp(Buf, '.') <> 0) and (strcmp(Buf, '..') <> 0) then begin DebugMsg(['$$$ Found ', Buf, ', trying to load...']); // Try to find the plugin in the plugin list to prevent multiple plugin loading b := False; if PluginList.Count > 0 then for i := 0 to PluginList.Count - 1 do if CompareStr(TVFSPlugin(PluginList[i]).FullModulePath, IncludeTrailingPathDelimiter(s) + Buf) = 0 then begin b := True; Break; end; if b then DebugMsg(['Module ', s, ' is already loaded --> skipping...']) else begin ModuleHandler := dlopen(PChar(IncludeTrailingPathDelimiter(s) + Buf), RTLD_NOW); if ModuleHandler = nil then DebugMsg([' XXX Error loading module: ', dlerror]) else try @VFSVersionFunc := dlsym(ModuleHandler, 'VFSVersion'); if (@VFSVersionFunc <> nil) and (VFSVersionFunc = ConstVFSVersionRequired) then begin PluginItem := TVFSPlugin.Create(ModuleHandler); PluginItem.FullModulePath := IncludeTrailingPathDelimiter(s) + Buf; PluginList.Add(PluginItem); end else DebugMsg([' $XXX: Error getting version info or version mismatch']); except end; end; end; end; until DirEnt = nil; closedir(Handle); except on E: Exception do DebugMsg(['*** Exception raised in QueryModules(APath = ', APath, '): (', E.ClassName, '): ', E.Message]); end; finally DebugMsg(['------------------ Done querying modules ---------------']); end; end; procedure UnloadModules; var i: integer; begin if Assigned(PluginList) and (PluginList.Count > 0) then for i := PluginList.Count - 1 downto 0 do try dlclose(TVFSPlugin(PluginList[i]).ModuleHandle); TVFSPlugin(PluginList[i]).Free; PluginList.Delete(i); except on E: Exception do DebugMsg(['*** Exception raised in UnloadModules(i = ', i, '): (', E.ClassName, '): ', E.Message]); end; end; procedure DoInitPlugins; begin PluginList := TList.Create; if not ParamDisablePlugins then begin BinaryPath := GetBinaryPath; QueryModules(ConstGlobalModulePath1); QueryModules(ConstGlobalModulePath2); QueryModules(ConstLocalModulePath1); QueryModules(ConstLocalModulePath2); QueryModules(ConstLocalModulePath3); {$IFDEF CPU64} QueryModules(ConstGlobalModulePath3); QueryModules(ConstGlobalModulePath4); QueryModules(ConstLocalModulePath4); {$ENDIF} end; end; initialization finalization UnloadModules; PluginList.Free; end. tuxcmd-0.6.70+dfsg/vfs/uVFSprototypes.pas0000644000175000017500000004015511300022643017340 0ustar salvisalvi(* Virtual File System support - prototypes functions and types draft version 25 used in Seksi commander and Tux Commander Copyright (C) 2003 Radek Cervinka Copyright (C) 2005-2009 Tomas Bzatek 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit uVFSprototypes; interface {$IFDEF FPC} {$PACKRECORDS C} {$ENDIF} const cVFSVersion = 5; // current version of the VFS API // Capabilities capVFS_nil = 0; capVFS_List = 1; capVFS_CopyOut = 2; capVFS_CopyIn = 4; capVFS_NeedsTemp = 8; // if not set, the seek operation is available capVFS_Multiple = 16; // support multiple files - ? capVFS_Execute = 32; capVFS_Writable = 64; capVFS_NeedsLogin = 128; // Anonymous is login operation too // Error codes (TVFSResult) cVFS_OK = 0; cVFS_Failed = 1; // also No such file cVFS_Cancelled = 2; cVFS_Not_Supported = 3; cVFS_Not_More_Files = 4; // returned while directory listing cVFS_ReadErr = 5; cVFS_WriteErr = 6; // also ReadOnlyFileSystem cVFS_LoginFailed = 7; cVFS_PermissionDenied = 8; cVFS_NoSpaceLeft = 9; cVFS_mallocFailed = 10; cVFS_BadPassword = 11; cVFS_MissingVolume = 12; cVFS_CorruptedArchive = 13; // Open modes (for VFSOpenFile function) cVFS_OpenRead = 0; cVFS_OpenWrite = 1; cVFS_OpenAppend = 2; VFS_ASK_PASSWORD_NEED_PASSWORD = 1 shl 0; VFS_ASK_PASSWORD_NEED_USERNAME = 1 shl 1; VFS_ASK_PASSWORD_NEED_DOMAIN = 1 shl 2; VFS_ASK_PASSWORD_SAVING_SUPPORTED = 1 shl 3; // Plugin reports if gnome-keyring is available VFS_ASK_PASSWORD_ANONYMOUS_SUPPORTED = 1 shl 4; VFS_ASK_PASSWORD_SAVE_INTERNAL = 1 shl 14; // Save password into internal Connection Manager VFS_ASK_PASSWORD_ARCHIVE_MODE = 1 shl 15; // Callback from archive, change the UI a little bit type TVFSResult = longint; TVFSGlobs = Pointer; // Plugin private data for each connection/instance // File descriptor for Open, Read, Write, Close, Seek operations TVFSFileDes = Pointer; TVFSAskPasswordFlags = Longint; PVFSPasswordSave = ^TVFSPasswordSave; // Let plugin save the password, usually to gnome-keyring TVFSPasswordSave = (VFS_PASSWORD_SAVE_NEVER, VFS_PASSWORD_SAVE_FOR_SESSION, VFS_PASSWORD_SAVE_PERMANENTLY); TVFSItemType = (vRegular=0, vSymlink=1, vChardev=2, vBlockdev=3, vDirectory=4, vFifo=5, vSock=6, vOther=7); {$IFDEF KYLIX} DWORD = Cardinal; // ShortBool = boolean; {$ENDIF} {$IFNDEF CPU64} ShortBool = boolean; {$ENDIF} //* TODO: FName/FDisplayName: napsat presne pravidla pro absolutni/relativni cesty a opravit v modulech i v UVFSCore PVFSItem = ^TVFSItem; TVFSItem = record {$IFNDEF CPU64} // 32-bit platform FName: PChar; // FDisplayName - plugins must ensure correct UTF-8 string FDisplayName: PChar; iSize: Int64; // iPackedSize - set to -1 if plugin doesn't support this feature iPackedSize: Int64; m_time: DWORD; a_time: DWORD; c_time: DWORD; iMode: Integer; sLinkTo: PChar; iUID: Integer; iGID: Integer; ItemType: Integer; {$ELSE} // 64-bit platform FName: PChar; FDisplayName: PChar; iSize: Int64; iPackedSize: Int64; m_time: QWORD; a_time: QWORD; c_time: QWORD; iMode: Longint; __padding1: array[1..4] of byte; sLinkTo: PChar; iUID: Longint; iGID: Longint; ItemType: Longint; __padding: array[1..4] of byte; {$ENDIF} end; // This structure contains basic informations about the plugin PVFSInfo = ^TVFSInfo; TVFSInfo = record ID: PChar; // unique identifier, not shown in GUI Name: PChar; // plugin name, GUI string (UTF-8) About: PChar; // GUI string (UTF-8) Copyright: PChar; // GUI string (UTF-8) end; type // Return index of the choice selected or negative number when dialog has been cancelled // cancel_choice: index which represents the cancellation choice. Set to -1 (e.g.) to disable this feature PVFSAskQuestionCallback = ^TVFSAskQuestionCallback; TVFSAskQuestionCallback = procedure (const AMessage: PChar; const Choices: PPChar; choice: PInteger; cancel_choice: Integer; user_data: Pointer); cdecl; PVFSAskPasswordCallback = ^TVFSAskPasswordCallback; // Remember to allocate passed strings separately (use strdup() when setting reply) // Modules are eligible for keeping passwords during one session; calling callback again means the last password was wrong and user should enter new one // Returns True (1) if succeeded or False (0) if cancelled TVFSAskPasswordCallback = function (const AMessage: PChar; const default_user: PChar; const default_domain: PChar; const default_password: PChar; flags: TVFSAskPasswordFlags; username: PPChar; password: PPChar; anonymous: PInteger; domain: PPChar; password_save: PVFSPasswordSave; user_data: Pointer): LongBool; cdecl; // Return False to break the operation PVFSProgressCallback = ^TVFSProgressCallback; TVFSProgressCallback = function (position: Int64; max: Int64; user_data: Pointer): LongBool; cdecl; type // Log function for plugin debugging output - host application will print or save these messages PVFSLogFunc = ^TVFSLogFunc; TVFSLogFunc = procedure(const S: PChar); cdecl; TVFSNew = function (LogFunc: PVFSLogFunc): TVFSGlobs; cdecl; // Allocates memory for the globs structure and performs intialization of the plugin TVFSFree = procedure (g: TVFSGlobs); cdecl; // Performs cleanup and destroy all objects TVFSVersion = function: integer; cdecl; // Returns VFS API Version; must match version hardcoded in the host program, otherwise the module is not loaded // Please use the cVFSVersion constant as a return value TVFSGetInfo = function: PVFSInfo; cdecl; // Returns module info struct, tuxcmd will take care of memory deallocation TVFSGetArchiveExts = function: PChar; cdecl; // Returns the list of filename extensions which the module can handle separated by ';' (without a leading dots) // Returning NULL or not defining the symbol at all means plugin can't handle archives // tuxcmd will take care of memory deallocation TVFSGetNetworkServices = function: PChar; cdecl; // Returns the list of supported remote protocols separated by ';' (without the '://') // Returning NULL or not defining the symbol at all means plugin can't access network services // tuxcmd will take care of memory deallocation TVFSSetProtocolLogFunc = procedure (g:TVFSGlobs; ProtocolLogFunc: TVFSLogFunc); cdecl; // TODO: Sets the protocol log function (unlike module debug log func this is intended only for server messages (FTP mainly)) TVFSSetBlockSize = procedure (g:TVFSGlobs; Value: Cardinal); cdecl; // Sets the block size for I/O operations (not all modules supports this) TVFSOpenArchive = function (g:TVFSGlobs; const sName: PChar): TVFSResult; cdecl; // Opens specified archive. This will also switch plugin (an instance) into archiving mode TVFSOpenURI = function (g:TVFSGlobs; const sURI: PChar): TVFSResult; cdecl; // Opens specified network location. This will also switch plugin (an instance) into networking mode // In case of URI, do not supply password encoded in the string; plugin will automatically spawn the TVFSAskPasswordCallback callback when needed TVFSClose = function (g:TVFSGlobs): TVFSResult; cdecl; // Closes the file or connection to the server TVFSMkDir = function (g:TVFSGlobs; const sDirName: PChar): TVFSResult; cdecl; TVFSRename = function (g:TVFSGlobs; const sSrcName, sDstName: PChar): TVFSResult; cdecl; // Only rename/move in this function, the two files/directories have to be on the same filesystem - otherway it needs to be copied and deleted manually TVFSRemove = function (g:TVFSGlobs; const APath: PChar): TVFSResult; cdecl; // Removes the file/directory (empty only!) TVFSFileExists = function (g:TVFSGlobs; const FileName: PChar; const Use_lstat: LongBool): LongBool; cdecl; // This function checks for existing location; the Use_lstat parameter specifies to not follow the symlinks (default false = follow symlinks) TVFSMakeSymLink = function (g:TVFSGlobs; const NewFileName, PointTo: PChar): TVFSResult; cdecl; TVFSChmod = function (g:TVFSGlobs; const FileName: PChar; const Mode: integer): TVFSResult; cdecl; // The parameter for this function is in classic unix format (glibc) - a bit mask TVFSChown = function (g:TVFSGlobs; const FileName: PChar; const UID, GID: integer): TVFSResult; cdecl; TVFSChangeTimes = function (g:TVFSGlobs; APath: PChar; mtime, atime: Longint): TVFSResult; cdecl; // Changes times for the file/directory - mtime and atime are __time_t parameters (glibc) TVFSChangeDir = function (g:TVFSGlobs; const NewPath: PChar): TVFSResult; cdecl; // Try to change the directory when correct permissions TVFSGetPath = function (g:TVFSGlobs): PChar; cdecl; // Returns the current working path (not all plugins can support this; just return '/' in this case) // tuxcmd will take care of memory deallocation TVFSGetPathURI = function (g:TVFSGlobs): PChar; cdecl; // Returns the current working path in the URI form // tuxcmd will take care of memory deallocation TVFSGetFileSystemSize = function (g:TVFSGlobs; const APath: PChar): Int64; cdecl; // Gets the size of filesystem; the path is optional, specified to recognize various mounted filesystems in the tree TVFSGetFileSystemFree = function (g:TVFSGlobs; const APath: PChar): Int64; cdecl; TVFSGetFSLabel = function (g:TVFSGlobs; const APath: PChar): PChar; cdecl; // Gets the filesystem label, tuxcmd will take care of memory deallocation TVFSIsOnSameFS = function (g:TVFSGlobs; const Path1, Path2: PChar): boolean; cdecl; TVFSTwoSameFiles = function (g:TVFSGlobs; const Path1, Path2: PChar): boolean; cdecl; // Checks if the two files are simmilar (used to test the case-insensitive filesystem - or hardlinks) TVFSGetDirSize = function (g:TVFSGlobs; APath: PChar): Int64; cdecl; // Calculates recursively the size of the tree specified under the path APath TVFSBreakGetDirSize = procedure (g:TVFSGlobs); cdecl; // Call this function to break the calculation performed by VFSGetDirSize TVFSRun = function (g:TVFSGlobs; const sName: PChar): TVFSResult; cdecl; // TODO: Runs the command read from inside the archive (typically installing the rpm package) TVFSCopyToLocal = function (g:TVFSGlobs; const sSrcName, sDstName: PChar; Append: LongBool): TVFSResult; cdecl; // Performs the copy process from inside of module to the file in the local system // (thus sSrcName is a path from inside of module and sDstName is path in the local filesystem where the file should be copied) // The data pointer is then used to call the callback function in // Note: if you need to transfer a file between two VFS modules, you need to do it manually - either first copy to local FS or use the Open, Read, Write functions of the module (NOTE: both VFS modules have to support these functions) TVFSCopyFromLocal = function (g:TVFSGlobs; const sSrcName, sDstName: PChar; Append: LongBool): TVFSResult; cdecl; // Performs the copy process from the local filesystem into the module // Prototype function for packing new files into archive TVFSPack = function (g:TVFSGlobs; const sSrcName, sDstName: PChar; CompressionLevel: integer; const Password: PChar): TVFSResult; cdecl; // This is the set of basic functions which can manipulate with the data // There is a TVFSFileDes object which identifies the processed file (filedescriptor) // All these functions needs a pointer to an int variable to store the error code // NOTE: not all modules could support this set of functions due to its design (unable to set a solid block size) TVFSOpenFile = function (g:TVFSGlobs; const APath: PChar; Mode: integer; Error: Pinteger): TVFSFileDes; cdecl; // Opens a file or creates new (the values for the Mode parameter are described above) and returns the assigned filedescriptor TVFSReadFile = function (g:TVFSGlobs; const FileDescriptor: TVFSFileDes; Buffer: Pointer; ABlockSize: integer; Error: Pinteger): integer; cdecl; // Returns number of bytes read; the buffer needs to be allocated by a blocksize (set it by VFSSetBlockSize function) TVFSWriteFile = function (g:TVFSGlobs; const FileDescriptor: TVFSFileDes; Buffer: Pointer; BytesCount: integer; Error: Pinteger): integer; cdecl; // Returns number of bytes written TVFSCloseFile = function (g:TVFSGlobs; const FileDescriptor: TVFSFileDes): TVFSResult; cdecl; TVFSFileSeek = function (g:TVFSGlobs; const FileDescriptor: TVFSFileDes; const AbsoluteOffset: Int64; Error: Pinteger): Int64; cdecl; // Sets the position in the file from the start and returns real current position // These are the functions used to list the contents of the directory // First call the VFSListFirst function and then repeat call of VFSListNext until it returns NULL. // Then call VFSListClose to make cleanup TVFSListFirst = function (g:TVFSGlobs; const sDir: PChar; VFSItem: PVFSItem): TVFSResult; cdecl; TVFSListNext = function (g:TVFSGlobs; const sDir: PChar; VFSItem: PVFSItem): TVFSResult; cdecl; TVFSListClose = function (g:TVFSGlobs): TVFSResult; cdecl; //* TODO: napsat presne pravidla pro absolutni/relativni cesty a opravit v modulech i v UVFSCore TVFSFileInfo = function (g:TVFSGlobs; AFileName: PChar; VFSItem: PVFSItem): TVFSResult; cdecl; // Gets a single info item without need to list a whole directory TVFSGetPasswordRequired = function (g:TVFSGlobs): LongBool; cdecl; // Reset stored session password in the plugin TVFSResetPassword = procedure (g: TVFSGlobs); cdecl; /// pridat neco jako set_loglevel ?? //// pridat typ pluginu - jestli archive nebo protocol - prip. jeste pridat ktery protokoly je to schopno handlovat TVFSSetCallbacks = procedure (g: TVFSGlobs; ask_question_callback: PVFSAskQuestionCallback; ask_password_callback: PVFSAskPasswordCallback; progress_func: PVFSProgressCallback; user_data: Pointer); cdecl; // TODO: some function to check the CRC of the archive - it should need also some progress feedback - the processed file and percentage progress // Prekopat error logging - asi neco na zpusob GError, stringy se budou vracet i z pluginu implementation end. tuxcmd-0.6.70+dfsg/COPYING0000644000175000017500000004310311300022643014070 0ustar salvisalvi GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, 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 or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's 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 give any other recipients of the Program a copy of this License along with the Program. 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 Program or any portion of it, thus forming a work based on the Program, 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) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, 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 Program, 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 Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) 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; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, 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 executable. However, as a special exception, the source code 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. If distribution of executable or 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 counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program 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. 5. 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 Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program 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 to this License. 7. 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 Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program 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 Program. 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. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program 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. 9. The Free Software Foundation may publish revised and/or new versions of the 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 Program 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 Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, 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 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "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 PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. 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 PROGRAM 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 PROGRAM (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 PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), 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 Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. 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. Copyright (C) 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. tuxcmd-0.6.70+dfsg/UTestPlugin.pas0000644000175000017500000001631711300022643015774 0ustar salvisalvi(* Tux Commander - UTestPlugin - Plugin testing Copyright (C) 2004 Tomas Bzatek Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UTestPlugin; interface uses glib2, gdk2, gtk2, pango, SysUtils, Types, Classes, Variants, GTKControls, GTKForms, GTKStdCtrls, GTKExtCtrls, GTKConsts, GTKView, GTKUtils, GTKDialogs, GTKPixbuf, GTKClasses, GTKMenus, UCoreClasses; type TFTestPlugin = class(TGTKDialog) TitleFrame: TGTKFrame; TitleLabel: TGTKLabel; TitleEventBox: TGTKEventBox; TitleIcon: TGTKImage; TitleHBox: TGTKHBox; Table: TGTKTable; Label1, Label2, Label3, Label4: TGTKLabel; PluginOptionMenu: TGTKOptionMenu; CommandEntry, UserEntry, PasswordEntry: TGTKEntry; ExperimentalWarningLabel: TGTKLabel; ExperimentalWarningIcon: TGTKImage; AnonymousCheckButton: TGTKCheckButton; HBox4: TGTKHBox; procedure FormCreate(Sender: TObject); override; procedure FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); procedure AnonymousCheckButtonToggled(Sender: TObject); end; var FTestPlugin: TFTestPlugin; implementation uses UVFSCore, ULocale; procedure TFTestPlugin.FormCreate(Sender: TObject); var i: integer; MenuItem: TGTKMenuItem; begin SetDefaultSize(400, 200); Caption := LANGTestPlugin_Caption; Buttons := [mbOK, mbCancel]; DefaultButton := mbOK; ShowSeparator := False; TitleEventBox := TGTKEventBox.Create(Self); TitleLabel := TGTKLabel.Create(Self); TitleLabel.Caption := Format('%s', [LANGTestPlugin_Title]); TitleLabel.UseMarkup := True; TitleLabel.XAlign := 0; TitleLabel.XPadding := 0; TitleLabel.YPadding := 3; TitleEventBox.ControlState := csPrelight; TitleFrame := TGTKFrame.CreateWithoutLabel(Self); TitleFrame.ShadowType := stShadowOut; TitleIcon := TGTKImage.Create(Self); TitleIcon.SetFromStock('gtk-justify-center', isLargeToolbar); TitleHBox := TGTKHBox.Create(Self); TitleHBox.Homogeneous := False; TitleHBox.AddControlEx(TGTKEventBox.Create(Self), False, False, 5); TitleHBox.AddControlEx(TitleIcon, False, False, 0); TitleHBox.AddControlEx(TitleLabel, True, True, 10); TitleEventBox.AddControl(TitleHBox); TitleFrame.AddControl(TitleEventBox); ClientArea.AddControlEx(TitleFrame, False, True, 0); HBox4 := TGTKHBox.Create(Self); HBox4.Homogeneous := False; ExperimentalWarningLabel := TGTKLabel.Create(Self); ExperimentalWarningLabel.Caption := LANGTestPlugin_ExperimentalWarningLabelCaption; ExperimentalWarningLabel.UseMarkup := True; ExperimentalWarningLabel.LineWrap := True; ExperimentalWarningLabel.SetSizeRequest(300, -1); ExperimentalWarningIcon := TGTKImage.Create(Self); ExperimentalWarningIcon.SetFromStock('gtk-dialog-warning', isDialog); HBox4.AddControlEx(TGTKEventBox.Create(Self), False, False, 5); HBox4.AddControlEx(ExperimentalWarningIcon, False, False, 7); HBox4.AddControlEx(ExperimentalWarningLabel, True, True, 7); HBox4.AddControlEx(TGTKEventBox.Create(Self), False, False, 8); Table := TGTKTable.Create(Self); Table.BorderWidth := 20; ClientArea.AddControlEx(Table, True, True, 0); Table.AddControlEx(0, 0, 2, 1, HBox4, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 5, 2); Table.AddControlEx(0, 1, 2, 1, TGTKEventBox.Create(Self), [taoShrink, taoFill], [taoShrink], 5, 10); Label1 := TGTKLabel.Create(Self); Label1.XAlign := 0; Label1.Caption := LANGTestPlugin_Plugin; Label2 := TGTKLabel.Create(Self); Label2.XAlign := 0; Label2.Caption := LANGTestPlugin_Command; PluginOptionMenu := TGTKOptionMenu.Create(Self); Label1.FocusControl := PluginOptionMenu; Label1.UseUnderline := True; CommandEntry := TGTKEntry.Create(Self); Label2.FocusControl := CommandEntry; Label2.UseUnderline := True; Table.AddControlEx(0, 2, 1, 1, Label1, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 5, 2); Table.AddControlEx(0, 3, 1, 1, Label2, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 5, 2); Table.AddControlEx(1, 2, 1, 1, PluginOptionMenu, [taoExpand, taoFill], [taoShrink], 5, 2); Table.AddControlEx(1, 3, 1, 1, CommandEntry, [taoExpand, taoFill], [taoShrink], 5, 2); Label3 := TGTKLabel.Create(Self); Label3.XAlign := 0; Label3.Caption := LANGTestPlugin_Username; UserEntry := TGTKEntry.Create(Self); Label3.FocusControl := UserEntry; Label3.UseUnderline := True; Label4 := TGTKLabel.Create(Self); Label4.XAlign := 0; Label4.Caption := LANGTestPlugin_Password; PasswordEntry := TGTKEntry.Create(Self); Label4.FocusControl := PasswordEntry; Label4.UseUnderline := True; AnonymousCheckButton := TGTKCheckButton.CreateWithLabel(Self, LANGTestPlugin_AnonymousCheckButton); AnonymousCheckButton.OnToggled := AnonymousCheckButtonToggled; AnonymousCheckButton.Checked := True; Table.AddControlEx(0, 4, 2, 1, TGTKEventBox.Create(Self), [taoShrink, taoFill], [taoExpand, taoFill], 5, 4); Table.AddControlEx(0, 5, 1, 1, Label3, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 5, 2); Table.AddControlEx(1, 5, 1, 1, UserEntry, [taoExpand, taoFill], [taoShrink], 5, 2); Table.AddControlEx(0, 6, 1, 1, Label4, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 5, 2); Table.AddControlEx(1, 6, 1, 1, PasswordEntry, [taoExpand, taoFill], [taoShrink], 5, 2); Table.AddControlEx(0, 7, 2, 1, AnonymousCheckButton, [taoExpand, taoFill], [taoShrink], 20, 2); if PluginList.Count = 0 then begin MenuItem := TGTKMenuItem.CreateTyped(Self, itLabel); MenuItem.Caption := LANGTestPlugin_NoPluginsFound; MenuItem.Enabled := False; PluginOptionMenu.Items.Add(MenuItem); end else for i := 0 to PluginList.Count - 1 do begin MenuItem := TGTKMenuItem.CreateTyped(Self, itImageText); MenuItem.SetCaptionPlain(Format('%s [%s]', [TVFSPlugin(PluginList[i]).ModuleName, ExtractFileName(TVFSPlugin(PluginList[i]).FullModulePath)])); PluginOptionMenu.Items.Add(MenuItem); end; OnKeyDown := FormKeyDown; end; procedure TFTestPlugin.FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); begin case Key of GDK_RETURN, GDK_KP_ENTER: ModalResult := mbOK; GDK_ESCAPE: ModalResult := mbCancel; end; end; procedure TFTestPlugin.AnonymousCheckButtonToggled(Sender: TObject); begin Label3.Enabled := not AnonymousCheckButton.Checked; Label4.Enabled := not AnonymousCheckButton.Checked; UserEntry.Enabled := not AnonymousCheckButton.Checked; PasswordEntry.Enabled := not AnonymousCheckButton.Checked; end; end. tuxcmd-0.6.70+dfsg/INSTALL0000644000175000017500000000532111300022643014066 0ustar salvisalviINSTALL INSTRUCTIONS -------------------- Here are the basic instructions, what you need to do if you want to compile Txu Commander. Quick instructions: Type make help to see list of available targets. There are two compilers supported: FreePascal and Kylix. FreePascal prerequisities ------------------------- Install the FreePascal package from your distribution or grab the binary snapshot from the official web site (http://freepascal.org/). Make sure the /etc/fpc.cfg file contains valid configuration (consult the manual first) or you may encounter file not found errors. Kylix prerequisities -------------------- First of all you will need to install Borland Kylix. This project is designed for use with version 3 Open Edition, but it should compile also with other variations (Professional, Enterprise). Then you will need the sources of 'gtk2 for pascal' project, they can be downloaded from the project site on SourceForge (http://gtk2forpascal.sourceforge.net/) or directly from our site (http://tuxcmd.sourceforge.net/). Extract the downloaded sources (tuxcmd-x.x.x.tar.bz2). Then you need to edit the Makefile file. You have to specify real path to Kylix 3 installation (it means top-level directory here, where the bin, help, lib and source directories are located) - this is the KYLIXPREFIX variable. For GTK2FORPASCAL_LIBDIR, specify the path to extracted gtk2 for pascal package sources. These are enough informations required to compile the sources. The correct make command is 'make kylix' At last, you will need basic development utilities, such as GNU make and install and gcc & g++ with system development libraries. Since some of the VFS modules are written in C/C++ and require development headers installed in the system, you may experience difficulties with their installation. There's no configure script at this moment, only the gvfs module requires specific system package (glib2 >= 2.16.0). So you have configured the sources and you are ready to compilation. Just type make or gmake in the directory where is the Makefile file located. It will compile the application and all VFS modules. There should not be any problems; if some occurs, please check if you have specified correct paths or if you have Kylix installed correctly. Also check if you have all required development headers installed in your system. To make the application without the modules, type 'make tuxcmd' and to make the modules separately run 'make modules'. To install the application, type 'make install'. You need to have write permissions to the target directories, so you probably must be root to do this. You can also run 'make clean' to clean the sources and 'make uninstall' to safely remove the installed application and all modules. tuxcmd-0.6.70+dfsg/UPreferences.pas0000644000175000017500000015111511300022643016133 0ustar salvisalvi(* Tux Commander - UPreferences - The Preferences dialog Copyright (C) 2006 Tomas Bzatek Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UPreferences; interface uses glib2, gtk2, pango, SysUtils, Types, Classes, Variants, GTKControls, GTKForms, GTKStdCtrls, GTKExtCtrls, GTKConsts, GTKView, GTKUtils, GTKDialogs, GTKPixbuf, GTKClasses, GTKMenus, ULibc, UCoreClasses, UGnome; type TFPreferences = class(TGTKDialog) TitleFrame, ListFontFrame: TGTKFrame; TitleLabel: TGTKLabel; TitleEventBox: TGTKEventBox; TitleIcon: TGTKImage; TitleHBox: TGTKHBox; Notebook: TGTKNotebook; GeneralPage, ColorsPage, FontsPage, PanelsPage, ApplicationsPage, ExperimentalPage: TGTKVBox; RowHeightLabel, NumHistoryItemsLabel, ViewerLabel, EditorLabel, TerminalLabel, GeneralLabel2, ExternalAppsLabel, FontsLabel2, ListFontLabel, ListFontPreview, ColorsLabel2, ForegroundLabel, BackgroundLabel, PanelsLabel2, ApplicationsLabel2, ExperimentalLabel2, PanelsLabel3, PanelsLabel4: TGTKLabel; NormalItemFGColorLabel, ActiveItemFGColorLabel, InactiveItemFGColorLabel, SelectedItemFGColorLabel, LinkItemFGColorLabel, DotFileItemFGColorLabel: TGTKLabel; ExperimentalWarningLabel: TGTKLabel; ExperimentalWarningIcon: TGTKImage; ClearROAttr, DisableMouseRename, ShowFiletypeIcons, DefaultFontCheckBox, DefaultRowHeightCheckBox, LynxLikeMotionCheckBox, DirsInBoldCheckBox, NewStyleAltOCheckBox, WMCompatModeCheckBox, DisableFileTipsCheckBox, DisableDirectoryBracketsCheckBox, InsertMovesDownCheckBox, SpaceMovesDownCheckBox, SelectAllDirectoriesCheckBox, ShowFuncButtonsCheckBox, OctalPermissionsCheckBox, FocusRefreshCheckBox, CompatUseLibcSystemCheckBox: TGTKCheckButton; NormalItemFGColorDefault, ActiveItemFGColorDefault, InactiveItemFGColorDefault, LinkItemFGColorDefault, DotFileItemFGColorDefault: TGTKCheckButton; HBox1, HBox2, HBox3, HBox4: TGTKHBox; VBox1: TGTKVBox; ViewerCombo, EditorCombo, TerminalCombo: TGTKCombo; ViewerBrowseButton, EditorBrowseButton, TerminalBrowseButton, ChangeFontButton: TGTKButton; NormalItemFGColorButton, ActiveItemFGColorButton, InactiveItemFGColorButton, SelectedItemFGColorButton, LinkItemFGColorButton, DotFileItemFGColorButton, NormalItemBGColorButton, ActiveItemBGColorButton, InactiveItemBGColorButton: TGnomeColorButton; Table1, Table2, Table3, Table4, Table5, Table6: TGTKTable; RowHeightSpinEdit, NumHistoryItemsSpinEdit: TGTKSpinEdit; SizeFormatLabel: TGTKLabel; SizeFormatOptionMenu: TGTKOptionMenu; miSizeFormat1, miSizeFormat2, miSizeFormat3, miSizeFormat4, miSizeFormat5, miSizeFormat6: TGTKMenuItem; UseInternalViewerCheckBox: TGTKCheckButton; ViewerLabel2, EditorLabel2, TerminalLabel2, CmdLineBehaviourLabel: TGTKLabel; ViewerOptionMenu, EditorOptionMenu, TerminalOptionMenu: TGTKOptionMenu; miViewerTerminalDetect, miViewerAlwaysTerminal, miViewerNoTerminal, miEditorTerminalDetect, miEditorAlwaysTerminal, miEditorNoTerminal, miTerminalDetect, miAlwaysTerminal, miNoTerminal: TGTKMenuItem; ShowTextUIDsCheckBox: TGTKCheckButton; DateFormatLabel: TGTKLabel; DateFormatOptionMenu: TGTKOptionMenu; CustomDateFormatEntry: TGTKEntry; TimeFormatLabel: TGTKLabel; TimeFormatOptionMenu: TGTKOptionMenu; CustomTimeFormatEntry: TGTKEntry; DateTimeFormatLabel: TGTKLabel; DateTimeFormatOptionMenu: TGTKOptionMenu; QuickSearchLabel: TGTKLabel; QuickSearchOptionMenu: TGTKOptionMenu; SortDirectoriesLikeFilesCheckBox: TGTKCheckButton; TempPathLabel, VFSTempPathLabel: TGTKLabel; VFSTempPathEntry: TGTKEntry; QuickRenameSkipExtCheckBox: TGTKCheckButton; RightClickSelectCheckBox: TGTKCheckButton; procedure FormCreate(Sender: TObject); override; procedure FormDestroy(Sender: TObject); procedure FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); procedure ViewerBrowseButtonClick(Sender: TObject); procedure DefaultFontCheckBoxToggled(Sender: TObject); procedure ChangeFontButtonClick(Sender: TObject); procedure ColorButtonDefaultsToggled(Sender: TObject); procedure DefaultRowHeightCheckBoxToggled(Sender: TObject); procedure UseInternalViewerCheckBoxToggled(Sender: TObject); procedure DateTimeFormatOptionMenuChanged(Sender: TObject); private DefaultGTKFont, LocalListFont: string; FormatTime: time_t; public RebuildListViews, RebuildIcons: boolean; procedure AssignDefaultValues; procedure SaveSettings; end; var FPreferences: TFPreferences; implementation uses ULocale, UFileAssoc, UCoreUtils, UConfig; procedure TFPreferences.FormCreate(Sender: TObject); var i: integer; Item: TGTKMenuItem; begin SetDefaultSize(450, 600); Caption := LANGPreferences_Caption; Buttons := [mbOK, mbCancel]; ShowSeparator := False; TitleEventBox := TGTKEventBox.Create(Self); TitleLabel := TGTKLabel.Create(Self); TitleLabel.Caption := LANGPreferences_TitleLabel_Caption; TitleLabel.UseMarkup := True; TitleLabel.XAlign := 0; TitleLabel.XPadding := 0; TitleLabel.YPadding := 3; TitleEventBox.ControlState := csPrelight; TitleFrame := TGTKFrame.CreateWithoutLabel(Self); TitleFrame.ShadowType := stShadowOut; TitleIcon := TGTKImage.Create(Self); TitleIcon.SetFromStock('gtk-preferences', isLargeToolbar); TitleHBox := TGTKHBox.Create(Self); TitleHBox.Homogeneous := False; TitleHBox.AddControlEx(TGTKVBox.Create(Self), False, False, 5); TitleHBox.AddControlEx(TitleIcon, False, False, 0); TitleHBox.AddControlEx(TitleLabel, True, True, 10); TitleEventBox.AddControl(TitleHBox); TitleFrame.AddControl(TitleEventBox); ClientArea.AddControlEx(TitleFrame, False, True, 0); Notebook := TGTKNotebook.Create(Self); Notebook.BorderWidth := 10; ClientArea.AddControlEx(Notebook, True, True, 0); GeneralPage := TGTKVBox.Create(Notebook); Notebook.AppendPage(GeneralPage, LANGPreferences_GeneralPage); PanelsPage := TGTKVBox.Create(Notebook); Notebook.AppendPage(PanelsPage, LANGPreferencesPanelsPage); ApplicationsPage := TGTKVBox.Create(Notebook); Notebook.AppendPage(ApplicationsPage, LANGPreferencesApplicationsPage); FontsPage := TGTKVBox.Create(Notebook); Notebook.AppendPage(FontsPage, LANGPreferences_FontsPage); ColorsPage := TGTKVBox.Create(Notebook); Notebook.AppendPage(ColorsPage, LANGPreferences_ColorsPage); ExperimentalPage := TGTKVBox.Create(Notebook); Notebook.AppendPage(ExperimentalPage, LANGPreferencesExperimentalPage); // ********* PAGE General GeneralPage.AddControlEx(TGTKVBox.Create(Self), False, False, 5); GeneralLabel2 := TGTKLabel.Create(Self); GeneralLabel2.XAlign := 0; GeneralLabel2.XPadding := 10; GeneralLabel2.Caption := Format('%s', [LANGPreferences_GeneralPage]); GeneralLabel2.UseMarkup := True; GeneralPage.AddControlEx(GeneralLabel2, False, False, 5); Table2 := TGTKTable.Create(Self); Table2.SetRowColCount(8, 5); GeneralPage.AddControlEx(Table2, False, False, 0); ClearROAttr := TGTKCheckButton.CreateWithLabel(Self, LANGPreferences_ClearReadonlyAttribute); Table2.AddControlEx(1, 0, 3, 1, ClearROAttr, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 0, 2); SelectAllDirectoriesCheckBox := TGTKCheckButton.CreateWithLabel(Self, LANGPreferencesSelectAllDirectoriesCheckBox_Caption); Table2.AddControlEx(1, 1, 3, 1, SelectAllDirectoriesCheckBox, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 0, 2); NewStyleAltOCheckBox := TGTKCheckButton.CreateWithLabel(Self, LANGPreferencesNewStyleAltOCheckBox_Caption); NewStyleAltOCheckBox.Tooltip := LANGPreferencesNewStyleAltOCheckBox_Tooltip; Table2.AddControlEx(1, 2, 3, 1, NewStyleAltOCheckBox, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 0, 2); ShowFuncButtonsCheckBox := TGTKCheckButton.CreateWithLabel(Self, LANGPreferencesShowFuncButtonsCheckBox_Caption); Table2.AddControlEx(1, 3, 3, 1, ShowFuncButtonsCheckBox, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 0, 2); NumHistoryItemsLabel := TGTKLabel.Create(Self); NumHistoryItemsLabel.Caption := LANGPreferences_NumHistoryItems; NumHistoryItemsLabel.XAlign := 0; NumHistoryItemsSpinEdit := TGTKSpinEdit.Create(Self); NumHistoryItemsSpinEdit.Digits := 0; NumHistoryItemsLabel.FocusControl := NumHistoryItemsSpinEdit; NumHistoryItemsLabel.UseUnderline := True; Table2.AddControlEx(0, 4, 1, 1, TGTKVBox.Create(Self), [taoShrink], [taoShrink, taoExpand, taoFill], 15, 2); Table2.AddControlEx(1, 4, 1, 1, NumHistoryItemsLabel, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 0, 2); Table2.AddControlEx(2, 4, 1, 1, NumHistoryItemsSpinEdit, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 10, 2); RowHeightLabel := TGTKLabel.Create(Self); RowHeightLabel.Caption := LANGPreferences_RowHeight; RowHeightLabel.XAlign := 0; RowHeightSpinEdit := TGTKSpinEdit.Create(Self); RowHeightSpinEdit.Digits := 0; RowHeightLabel.FocusControl := RowHeightSpinEdit; RowHeightLabel.UseUnderline := True; DefaultRowHeightCheckBox := TGTKCheckButton.CreateWithLabel(Self, LANGPreferences_Default); DefaultRowHeightCheckBox.OnToggled := DefaultRowHeightCheckBoxToggled; Table2.AddControlEx(1, 5, 1, 1, RowHeightLabel, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 0, 2); Table2.AddControlEx(2, 5, 1, 1, RowHeightSpinEdit, [taoFill, taoExpand], [taoShrink, taoExpand, taoFill], 10, 2); Table2.AddControlEx(3, 5, 1, 1, DefaultRowHeightCheckBox, [taoFill, taoExpand], [taoShrink, taoExpand, taoFill], 10, 2); Table2.AddControlEx(4, 5, 1, 1, TGTKVBox.Create(Self), [taoShrink], [taoShrink, taoExpand, taoFill], 8, 2); SizeFormatLabel := TGTKLabel.Create(Self); SizeFormatLabel.Caption := LANGPreferencesSizeFormatLabel_Caption; SizeFormatLabel.XAlign := 0; SizeFormatLabel.UseUnderline := True; SizeFormatOptionMenu := TGTKOptionMenu.Create(Self); SizeFormatLabel.FocusControl := SizeFormatOptionMenu; miSizeFormat1 := TGTKMenuItem.CreateTyped(Self, itLabel); miSizeFormat1.Caption := Format('%s (%s)', [LANGPreferencesmiSizeFormat1, FormatSize(123456, 0, 0)]); miSizeFormat2 := TGTKMenuItem.CreateTyped(Self, itLabel); miSizeFormat2.Caption := FormatSize(123456, 0, 1); miSizeFormat3 := TGTKMenuItem.CreateTyped(Self, itLabel); miSizeFormat3.Caption := FormatSize(123456, 0, 2); miSizeFormat4 := TGTKMenuItem.CreateTyped(Self, itLabel); miSizeFormat4.Caption := FormatSize(123456, 0, 3); miSizeFormat5 := TGTKMenuItem.CreateTyped(Self, itLabel); miSizeFormat5.Caption := FormatSize(123456, 0, 4); miSizeFormat6 := TGTKMenuItem.CreateTyped(Self, itLabel); miSizeFormat6.Caption := LANGPreferencesmiSizeFormat6; SizeFormatOptionMenu.Items.Add(miSizeFormat1); SizeFormatOptionMenu.Items.Add(miSizeFormat2); SizeFormatOptionMenu.Items.Add(miSizeFormat3); SizeFormatOptionMenu.Items.Add(miSizeFormat4); SizeFormatOptionMenu.Items.Add(miSizeFormat5); SizeFormatOptionMenu.Items.Add(miSizeFormat6); Table2.AddControl(0, 7, 1, 1, TGTKVBox.Create(Self), 0, 4); Table2.AddControlEx(1, 8, 1, 1, SizeFormatLabel, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 0, 2); Table2.AddControlEx(2, 8, 2, 1, SizeFormatOptionMenu, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 10, 2); TerminalOptionMenu := TGTKOptionMenu.Create(Self); miTerminalDetect := TGTKMenuItem.CreateTyped(Self, itLabel); miTerminalDetect.Caption := LANGPreferencesAutodetectXApp; miAlwaysTerminal := TGTKMenuItem.CreateTyped(Self, itLabel); miAlwaysTerminal.Caption := LANGPreferencesAlwaysRunInTerminal; miNoTerminal := TGTKMenuItem.CreateTyped(Self, itLabel); miNoTerminal.Caption := LANGPreferencesNeverRunInTerminal; TerminalOptionMenu.Items.Add(miTerminalDetect); TerminalOptionMenu.Items.Add(miAlwaysTerminal); TerminalOptionMenu.Items.Add(miNoTerminal); CmdLineBehaviourLabel := TGTKLabel.Create(Self); CmdLineBehaviourLabel.Caption := LANGPreferencesCmdLineBehaviourLabel_Caption; CmdLineBehaviourLabel.XAlign := 0; CmdLineBehaviourLabel.FocusControl := TerminalOptionMenu; CmdLineBehaviourLabel.UseUnderline := True; Table2.AddControlEx(1, 6, 1, 1, CmdLineBehaviourLabel, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 0, 2); Table2.AddControlEx(2, 6, 2, 1, TerminalOptionMenu, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 10, 2); FormatTime := libc_time(nil); DateFormatLabel := TGTKLabel.Create(Self); DateFormatLabel.Caption := LANGPreferences_DateFormatLabel_Caption; DateFormatLabel.XAlign := 0; DateFormatLabel.UseUnderline := True; DateFormatOptionMenu := TGTKOptionMenu.Create(Self); DateFormatLabel.FocusControl := DateFormatOptionMenu; Item := TGTKMenuItem.CreateTyped(Self, itLabel); Item.Caption := Format('%s (%s)', [LANGPreferences_System, FormatDate(FormatTime, False, True, -1, 0, -1)]); DateFormatOptionMenu.Items.Add(Item); for i := 1 to 14 do begin Item := TGTKMenuItem.CreateTyped(Self, itLabel); Item.Caption := FormatDate(FormatTime, False, True, -1, i, -1); DateFormatOptionMenu.Items.Add(Item); end; Item := TGTKMenuItem.CreateTyped(Self, itLabel); Item.Caption := LANGPreferences_Custom; DateFormatOptionMenu.Items.Add(Item); DateFormatOptionMenu.OnChanged := DateTimeFormatOptionMenuChanged; Table2.AddControlEx(1, 9, 1, 1, DateFormatLabel, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 0, 2); Table2.AddControlEx(2, 9, 2, 1, DateFormatOptionMenu, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 10, 2); CustomDateFormatEntry := TGTKEntry.Create(Self); CustomDateFormatEntry.Enabled := False; CustomDateFormatEntry.Tooltip := LANGPreferences_CustomDateFormatEntry_Tooltip; CustomDateFormatEntry.OnChanged := DateTimeFormatOptionMenuChanged; Table2.AddControlEx(2, 10, 2, 1, CustomDateFormatEntry, [taoShrink], [taoShrink], 10, 2); TimeFormatLabel := TGTKLabel.Create(Self); TimeFormatLabel.Caption := LANGPreferences_TimeFormatLabel_Caption; TimeFormatLabel.XAlign := 0; TimeFormatLabel.UseUnderline := True; TimeFormatOptionMenu := TGTKOptionMenu.Create(Self); TimeFormatLabel.FocusControl := TimeFormatOptionMenu; Item := TGTKMenuItem.CreateTyped(Self, itLabel); Item.Caption := Format('%s (%s)', [LANGPreferences_System, FormatDate(FormatTime, True, False, 0, -1, -1)]); TimeFormatOptionMenu.Items.Add(Item); for i := 1 to 11 do begin Item := TGTKMenuItem.CreateTyped(Self, itLabel); Item.Caption := FormatDate(FormatTime, True, False, i, -1, -1); TimeFormatOptionMenu.Items.Add(Item); end; Item := TGTKMenuItem.CreateTyped(Self, itLabel); Item.Caption := LANGPreferences_Custom; TimeFormatOptionMenu.Items.Add(Item); TimeFormatOptionMenu.OnChanged := DateTimeFormatOptionMenuChanged; Table2.AddControlEx(1, 11, 1, 1, TimeFormatLabel, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 0, 2); Table2.AddControlEx(2, 11, 2, 1, TimeFormatOptionMenu, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 10, 2); CustomTimeFormatEntry := TGTKEntry.Create(Self); CustomTimeFormatEntry.Enabled := False; CustomTimeFormatEntry.Tooltip := LANGPreferences_CustomTimeFormatEntry_Tooltip; CustomTimeFormatEntry.OnChanged := DateTimeFormatOptionMenuChanged; Table2.AddControlEx(2, 12, 2, 1, CustomTimeFormatEntry, [taoShrink], [taoShrink], 10, 2); DateTimeFormatLabel := TGTKLabel.Create(Self); DateTimeFormatLabel.Caption := LANGPreferences_DateTimeFormatLabel_Caption; DateTimeFormatLabel.XAlign := 0; DateTimeFormatLabel.UseUnderline := True; DateTimeFormatOptionMenu := TGTKOptionMenu.Create(Self); DateTimeFormatLabel.FocusControl := DateTimeFormatOptionMenu; Item := TGTKMenuItem.CreateTyped(Self, itLabel); Item.Caption := FormatDate(FormatTime, True, True, -1, -1, 0); DateTimeFormatOptionMenu.Items.Add(Item); Item := TGTKMenuItem.CreateTyped(Self, itLabel); Item.Caption := FormatDate(FormatTime, True, True, -1, -1, 1); DateTimeFormatOptionMenu.Items.Add(Item); Table2.AddControlEx(1, 13, 1, 1, DateTimeFormatLabel, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 0, 2); Table2.AddControlEx(2, 13, 2, 1, DateTimeFormatOptionMenu, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 10, 2); // ********* PAGE Panels PanelsPage.AddControlEx(TGTKVBox.Create(Self), False, False, 5); PanelsLabel2 := TGTKLabel.Create(Self); PanelsLabel2.XAlign := 0; PanelsLabel2.XPadding := 10; PanelsLabel2.Caption := Format('%s', [LANGPreferencesFeatures]); PanelsLabel2.UseMarkup := True; PanelsPage.AddControlEx(PanelsLabel2, False, False, 5); Table5 := TGTKTable.Create(Self); Table5.SetRowColCount(19, 2); PanelsPage.AddControlEx(Table5, False, False, 0); DisableMouseRename := TGTKCheckButton.CreateWithLabel(Self, LANGPreferences_DisableMouseRenaming); DisableMouseRename.Tooltip := LANGPreferencesDisableMouseRename_Tooltip; Table5.AddControl(0, 0, 2, 1, DisableMouseRename, 30, 2); QuickRenameSkipExtCheckBox := TGTKCheckButton.CreateWithLabel(Self, LANGPreferences_QuickRenameSkipExtCheckBox); QuickRenameSkipExtCheckBox.Tooltip := LANGPreferences_QuickRenameSkipExtCheckBox_Tooltip; Table5.AddControl(0, 1, 2, 1, QuickRenameSkipExtCheckBox, 30, 2); RightClickSelectCheckBox := TGTKCheckButton.CreateWithLabel(Self, LANGPreferences_RightClickSelectCheckBox); RightClickSelectCheckBox.Tooltip := LANGPreferences_RightClickSelectCheckBox_Tooltip; Table5.AddControl(0, 2, 2, 1, RightClickSelectCheckBox, 30, 2); DisableFileTipsCheckBox := TGTKCheckButton.CreateWithLabel(Self, LANGPreferencesDisableFileTipsCheckBox_Caption); DisableFileTipsCheckBox.Tooltip := LANGPreferencesDisableFileTipsCheckBox_Tooltip; Table5.AddControl(0, 3, 2, 1, DisableFileTipsCheckBox, 30, 2); SortDirectoriesLikeFilesCheckBox := TGTKCheckButton.CreateWithLabel(Self, LANGPreferences_SortDirectoriesLikeFilesCheckBox); SortDirectoriesLikeFilesCheckBox.Tooltip := LANGPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip; Table5.AddControl(0, 4, 2, 1, SortDirectoriesLikeFilesCheckBox, 30, 2); Table5.AddControl(0, 5, 2, 1, TGTKVBox.Create(Self), 0, 7); PanelsLabel3 := TGTKLabel.Create(Self); PanelsLabel3.XAlign := 0; PanelsLabel3.XPadding := 0; PanelsLabel3.Caption := Format('%s', [LANGPreferencesShow]); PanelsLabel3.UseMarkup := True; Table5.AddControl(0, 6, 2, 1, PanelsLabel3, 10, 2); ShowFiletypeIcons := TGTKCheckButton.CreateWithLabel(Self, LANGPreferences_ShowFiletypeIconsInList); Table5.AddControl(0, 7, 2, 1, ShowFiletypeIcons, 30, 2); DirsInBoldCheckBox := TGTKCheckButton.CreateWithLabel(Self, LANGPreferencesDirsInBoldCheckBox_Caption); Table5.AddControl(0, 8, 2, 1, DirsInBoldCheckBox, 30, 2); DisableDirectoryBracketsCheckBox := TGTKCheckButton.CreateWithLabel(Self, LANGPreferencesDisableDirectoryBracketsCheckBox_Caption); Table5.AddControl(0, 9, 2, 1, DisableDirectoryBracketsCheckBox, 30, 2); OctalPermissionsCheckBox := TGTKCheckButton.CreateWithLabel(Self, LANGPreferencesOctalPermissionsCheckBox_Caption); OctalPermissionsCheckBox.Tooltip := LANGPreferencesOctalPermissionsCheckBox_Tooltip; Table5.AddControl(0, 10, 2, 1, OctalPermissionsCheckBox, 30, 2); ShowTextUIDsCheckBox := TGTKCheckButton.CreateWithLabel(Self, LANGShowTextUIDsCheckBox_Caption); ShowTextUIDsCheckBox.Tooltip := LANGShowTextUIDsCheckBox_Tooltip; Table5.AddControl(0, 11, 2, 1, ShowTextUIDsCheckBox, 30, 2); Table5.AddControl(0, 12, 2, 1, TGTKVBox.Create(Self), 0, 7); PanelsLabel4 := TGTKLabel.Create(Self); PanelsLabel4.XAlign := 0; PanelsLabel4.XPadding := 0; PanelsLabel4.Caption := Format('%s', [LANGPreferencesMovement]); PanelsLabel4.UseMarkup := True; Table5.AddControl(0, 13, 2, 1, PanelsLabel4, 10, 2); LynxLikeMotionCheckBox := TGTKCheckButton.CreateWithLabel(Self, LANGPreferencesLynxLikeMotionCheckBox_Caption); Table5.AddControl(0, 14, 2, 1, LynxLikeMotionCheckBox, 30, 2); InsertMovesDownCheckBox := TGTKCheckButton.CreateWithLabel(Self, LANGPreferencesInsertMovesDownCheckBox_Caption); Table5.AddControl(0, 15, 2, 1, InsertMovesDownCheckBox, 30, 2); SpaceMovesDownCheckBox := TGTKCheckButton.CreateWithLabel(Self, LANGPreferencesSpaceMovesDownCheckBox_Caption); Table5.AddControl(0, 16, 2, 1, SpaceMovesDownCheckBox, 30, 2); QuickSearchLabel := TGTKLabel.Create(Self); QuickSearchLabel.Caption := LANGPreferences_QuickSearchLabel_Caption; QuickSearchLabel.XAlign := 0; QuickSearchLabel.UseUnderline := True; QuickSearchOptionMenu := TGTKOptionMenu.Create(Self); QuickSearchOptionMenu.Tooltip := LANGPreferences_QuickSearchOptionMenu_Tooltip; QuickSearchLabel.FocusControl := QuickSearchOptionMenu; Item := TGTKMenuItem.CreateTyped(Self, itLabel); Item.Caption := LANGPreferences_QuickSearch_Option1; QuickSearchOptionMenu.Items.Add(Item); Item := TGTKMenuItem.CreateTyped(Self, itLabel); Item.Caption := LANGPreferences_QuickSearch_Option2; QuickSearchOptionMenu.Items.Add(Item); Item := TGTKMenuItem.CreateTyped(Self, itLabel); Item.Caption := LANGPreferences_QuickSearch_Option3; QuickSearchOptionMenu.Items.Add(Item); Item := TGTKMenuItem.CreateTyped(Self, itLabel); Item.Caption := LANGPreferences_QuickSearch_Option4; QuickSearchOptionMenu.Items.Add(Item); Table5.AddControl(0, 17, 2, 1, TGTKVBox.Create(Self), 0, 2); Table5.AddControlEx(0, 18, 1, 1, QuickSearchLabel, [taoShrink], [taoShrink], 35, 2); Table5.AddControlEx(1, 18, 1, 1, QuickSearchOptionMenu, [taoExpand, taoFill], [taoShrink, taoExpand, taoFill], 20, 2); // ********* PAGE Applications ApplicationsPage.AddControlEx(TGTKVBox.Create(Self), False, False, 5); Table1 := TGTKTable.Create(Self); Table1.SetRowColCount(5, 5); ApplicationsPage.AddControlEx(Table1, False, True, 5); ViewerLabel := TGTKLabel.Create(Self); ViewerLabel.XAlign := 0; ViewerLabel.XPadding := 10; ViewerLabel.Caption := Format('%s', [LANGPreferencesViewer]); ViewerLabel.UseMarkup := True; Table1.AddControlEx(0, 0, 5, 1, ViewerLabel, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 0, 0); Table1.AddControlEx(0, 1, 5, 1, TGTKVBox.Create(Self), [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 0, 2); ViewerCombo := TGTKCombo.Create(Self); for i := 1 to Length(ConfViewersApps) do ViewerCombo.Items.Append(ConfViewersApps[i]); ViewerBrowseButton := TGTKButton.Create(Self); ViewerBrowseButton.Caption := Format(' %s ', [LANGBrowseButton_Caption]); ViewerBrowseButton.OnClick := ViewerBrowseButtonClick; ViewerLabel2 := TGTKLabel.Create(Self); ViewerLabel2.Caption := LANGPreferencesCommandSC; ViewerLabel2.XAlign := 0; ViewerLabel2.FocusControl := ViewerCombo.Entry; ViewerLabel2.UseUnderline := True; UseInternalViewerCheckBox := TGTKCheckButton.CreateWithLabel(Self, LANGPreferencesUseInternalViewer); UseInternalViewerCheckBox.OnToggled := UseInternalViewerCheckBoxToggled; ViewerOptionMenu := TGTKOptionMenu.Create(Self); miViewerTerminalDetect := TGTKMenuItem.CreateTyped(Self, itLabel); miViewerTerminalDetect.Caption := LANGPreferencesAutodetectXApp; miViewerAlwaysTerminal := TGTKMenuItem.CreateTyped(Self, itLabel); miViewerAlwaysTerminal.Caption := LANGPreferencesAlwaysRunInTerminal; miViewerNoTerminal := TGTKMenuItem.CreateTyped(Self, itLabel); miViewerNoTerminal.Caption := LANGPreferencesNeverRunInTerminal; ViewerOptionMenu.Items.Add(miViewerTerminalDetect); ViewerOptionMenu.Items.Add(miViewerAlwaysTerminal); ViewerOptionMenu.Items.Add(miViewerNoTerminal); Table1.AddControlEx(0, 2, 1, 1, TGTKVBox.Create(Self), [taoShrink], [taoShrink, taoExpand, taoFill], 12, 2); Table1.AddControlEx(1, 2, 1, 1, ViewerLabel2, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 0, 2); Table1.AddControlEx(2, 2, 3, 1, ViewerCombo, [taoExpand, taoFill], [taoShrink, taoExpand, taoFill], 10, 2); Table1.AddControlEx(4, 3, 1, 1, ViewerBrowseButton, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 10, 2); Table1.AddControlEx(3, 3, 1, 1, ViewerOptionMenu, [taoExpand, taoFill], [taoShrink, taoExpand, taoFill], 10, 2); Table1.AddControlEx(0, 4, 5, 1, UseInternalViewerCheckBox, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 30, 2); EditorLabel := TGTKLabel.Create(Self); EditorLabel.XAlign := 0; EditorLabel.XPadding := 10; EditorLabel.Caption := Format('%s', [LANGPreferencesEditor]); EditorLabel.UseMarkup := True; Table1.AddControlEx(0, 5, 5, 1, TGTKVBox.Create(Self), [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 0, 13); Table1.AddControlEx(0, 6, 5, 1, EditorLabel, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 0, 0); Table1.AddControlEx(0, 7, 5, 1, TGTKVBox.Create(Self), [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 0, 2); EditorCombo := TGTKCombo.Create(Self); for i := 1 to Length(ConfEditorApps) do EditorCombo.Items.Append(ConfEditorApps[i]); EditorBrowseButton := TGTKButton.Create(Self); EditorBrowseButton.Caption := Format(' %s ', [LANGBrowseButton_Caption]); EditorBrowseButton.OnClick := ViewerBrowseButtonClick; EditorLabel2 := TGTKLabel.Create(Self); EditorLabel2.Caption := LANGPreferencesCommandSC; EditorLabel2.XAlign := 0; EditorLabel2.FocusControl := EditorCombo.Entry; EditorLabel2.UseUnderline := True; EditorOptionMenu := TGTKOptionMenu.Create(Self); miEditorTerminalDetect := TGTKMenuItem.CreateTyped(Self, itLabel); miEditorTerminalDetect.Caption := LANGPreferencesAutodetectXApp; miEditorAlwaysTerminal := TGTKMenuItem.CreateTyped(Self, itLabel); miEditorAlwaysTerminal.Caption := LANGPreferencesAlwaysRunInTerminal; miEditorNoTerminal := TGTKMenuItem.CreateTyped(Self, itLabel); miEditorNoTerminal.Caption := LANGPreferencesNeverRunInTerminal; EditorOptionMenu.Items.Add(miEditorTerminalDetect); EditorOptionMenu.Items.Add(miEditorAlwaysTerminal); EditorOptionMenu.Items.Add(miEditorNoTerminal); Table1.AddControlEx(0, 8, 1, 1, TGTKVBox.Create(Self), [taoShrink], [taoShrink, taoExpand, taoFill], 12, 2); Table1.AddControlEx(1, 8, 1, 1, EditorLabel2, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 0, 2); Table1.AddControlEx(2, 8, 3, 1, EditorCombo, [taoExpand, taoFill], [taoShrink, taoExpand, taoFill], 10, 2); Table1.AddControlEx(4, 9, 1, 1, EditorBrowseButton, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 10, 2); Table1.AddControlEx(3, 9, 1, 1, EditorOptionMenu, [taoExpand, taoFill], [taoShrink, taoExpand, taoFill], 10, 2); TerminalLabel := TGTKLabel.Create(Self); TerminalLabel.XAlign := 0; TerminalLabel.XPadding := 10; TerminalLabel.Caption := Format('%s', [LANGPreferencesTerminal]); TerminalLabel.UseMarkup := True; Table1.AddControlEx(0, 10, 5, 1, TGTKVBox.Create(Self), [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 0, 13); Table1.AddControlEx(0, 11, 5, 1, TerminalLabel, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 0, 0); Table1.AddControlEx(0, 12, 5, 1, TGTKVBox.Create(Self), [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 0, 2); TerminalCombo := TGTKCombo.Create(Self); for i := 1 to Length(ConfTerminalApps) do TerminalCombo.Items.Append(ConfTerminalApps[i]); TerminalBrowseButton := TGTKButton.Create(Self); TerminalBrowseButton.Caption := Format(' %s ', [LANGBrowseButton_Caption]); TerminalBrowseButton.OnClick := ViewerBrowseButtonClick; TerminalLabel2 := TGTKLabel.Create(Self); TerminalLabel2.Caption := LANGPreferencesCommandSC; TerminalLabel2.XAlign := 0; TerminalLabel2.FocusControl := TerminalCombo.Entry; TerminalLabel2.UseUnderline := True; Table1.AddControlEx(0, 13, 1, 1, TGTKVBox.Create(Self), [taoShrink], [taoShrink, taoExpand, taoFill], 12, 2); Table1.AddControlEx(1, 13, 1, 1, TerminalLabel2, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 0, 2); Table1.AddControlEx(2, 13, 3, 1, TerminalCombo, [taoExpand, taoFill], [taoShrink, taoExpand, taoFill], 10, 2); Table1.AddControlEx(4, 14, 1, 1, TerminalBrowseButton, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 10, 2); TempPathLabel := TGTKLabel.Create(Self); TempPathLabel.XAlign := 0; TempPathLabel.XPadding := 10; TempPathLabel.Caption := Format('%s', [LANGPreferences_TempPathLabel_Caption]); TempPathLabel.UseMarkup := True; Table1.AddControlEx(0, 15, 5, 1, TGTKVBox.Create(Self), [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 0, 13); Table1.AddControlEx(0, 16, 5, 1, TempPathLabel, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 0, 0); Table1.AddControlEx(0, 17, 5, 1, TGTKVBox.Create(Self), [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 0, 2); VFSTempPathLabel := TGTKLabel.Create(Self); VFSTempPathLabel.Caption := LANGPreferences_VFSTempPathLabel_Caption; VFSTempPathLabel.XAlign := 0; VFSTempPathLabel.UseUnderline := True; VFSTempPathEntry := TGTKEntry.Create(Self); VFSTempPathEntry.Tooltip := LANGPreferences_VFSTempPathEntry_Tooltip; VFSTempPathLabel.FocusControl := VFSTempPathEntry; Table1.AddControlEx(0, 18, 1, 1, TGTKVBox.Create(Self), [taoShrink], [taoShrink, taoExpand, taoFill], 12, 2); Table1.AddControlEx(1, 18, 1, 1, VFSTempPathLabel, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 0, 2); Table1.AddControlEx(2, 18, 4, 1, VFSTempPathEntry, [taoExpand, taoFill], [taoShrink, taoExpand, taoFill], 10, 2); // ********* PAGE Fonts FontsPage.AddControlEx(TGTKVBox.Create(Self), False, False, 5); FontsLabel2 := TGTKLabel.Create(Self); FontsLabel2.XAlign := 0; FontsLabel2.XPadding := 10; FontsLabel2.Caption := Format('%s', [LANGPreferences_FontsPage]); FontsLabel2.UseMarkup := True; FontsPage.AddControlEx(FontsLabel2, False, False, 5); Table3 := TGTKTable.Create(Self); Table3.SetRowColCount(2, 4); FontsPage.AddControlEx(Table3, False, False, 0); ListFontLabel := TGTKLabel.Create(Self); ListFontLabel.Caption := LANGPreferences_ListFont; ListFontLabel.XAlign := 0; ListFontFrame := TGTKFrame.CreateWithoutLabel(Self); ListFontFrame.ShadowType := stEtchedIn; ListFontPreview := TGTKLabel.Create(Self); ListFontPreview.Caption := 'Luxi Sans, 10'; ListFontFrame.AddControl(ListFontPreview); ChangeFontButton := TGTKButton.Create(Self); ChangeFontButton.Caption := LANGPreferences_Change; ChangeFontButton.OnClick := ChangeFontButtonClick; DefaultFontCheckBox := TGTKCheckButton.CreateWithLabel(Self, LANGPreferences_UseDefaultFont); DefaultFontCheckBox.OnToggled := DefaultFontCheckBoxToggled; Table3.AddControlEx(0, 0, 1, 1, TGTKVBox.Create(Self), [taoShrink], [taoShrink, taoExpand, taoFill], 12, 2); Table3.AddControlEx(1, 0, 1, 1, ListFontLabel, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 5, 2); Table3.AddControlEx(2, 0, 1, 1, ListFontFrame, [taoExpand, taoFill], [taoShrink, taoExpand, taoFill], 2, 2); Table3.AddControlEx(3, 0, 1, 1, ChangeFontButton, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 10, 2); Table3.AddControlEx(1, 1, 3, 1, DefaultFontCheckBox, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 10, 4); // ********* PAGE Colors ColorsPage.AddControlEx(TGTKVBox.Create(Self), False, False, 5); ColorsLabel2 := TGTKLabel.Create(Self); ColorsLabel2.XAlign := 0; ColorsLabel2.XPadding := 10; ColorsLabel2.Caption := Format('%s', [LANGPreferences_ColorsPage]); ColorsLabel2.UseMarkup := True; ColorsPage.AddControlEx(ColorsLabel2, False, False, 5); Table4 := TGTKTable.Create(Self); Table4.SetRowColCount(7, 8); ColorsPage.AddControlEx(Table4, False, False, 0); ForegroundLabel := TGTKLabel.Create(Self); ForegroundLabel.Caption := LANGPreferences_Foreground; BackgroundLabel := TGTKLabel.Create(Self); BackgroundLabel.Caption := LANGPreferences_Background; Table4.AddControl(1, 0, 3, 1, ForegroundLabel, 5, 2); Table4.AddControl(4, 0, 3, 1, BackgroundLabel, 5, 2); NormalItemFGColorLabel := TGTKLabel.Create(Self); NormalItemFGColorLabel.XAlign := 0; NormalItemFGColorLabel.Caption := LANGPreferences_NormalItem; NormalItemFGColorButton := TGnomeColorButton.Create(Self); NormalItemFGColorButton.SetSizeRequest(30, -1); NormalItemBGColorButton := TGnomeColorButton.Create(Self); NormalItemBGColorButton.SetSizeRequest(30, -1); NormalItemFGColorDefault := TGTKCheckButton.CreateWithLabel(Self, LANGPreferences_Default); NormalItemFGColorDefault.Tooltip := LANGPreferences_SetToDefaultToUseGTKThemeColors; NormalItemFGColorDefault.OnToggled := ColorButtonDefaultsToggled; Table4.AddControl(0, 1, 1, 1, NormalItemFGColorLabel, 30, 2); Table4.AddControl(2, 1, 1, 1, NormalItemFGColorButton, 5, 2); Table4.AddControl(5, 1, 1, 1, NormalItemBGColorButton, 5, 2); Table4.AddControl(7, 1, 1, 1, NormalItemFGColorDefault, 10, 2); ActiveItemFGColorLabel := TGTKLabel.Create(Self); ActiveItemFGColorLabel.Caption := LANGPreferences_Cursor; ActiveItemFGColorLabel.XAlign := 0; ActiveItemFGColorButton := TGnomeColorButton.Create(Self); ActiveItemBGColorButton := TGnomeColorButton.Create(Self); ActiveItemFGColorDefault := TGTKCheckButton.CreateWithLabel(Self, LANGPreferences_Default); ActiveItemFGColorDefault.Tooltip := LANGPreferences_SetToDefaultToUseGTKThemeColors; ActiveItemFGColorDefault.OnToggled := ColorButtonDefaultsToggled; Table4.AddControl(0, 2, 1, 1, ActiveItemFGColorLabel, 30, 2); Table4.AddControl(2, 2, 1, 1, ActiveItemFGColorButton, 5, 2); Table4.AddControl(5, 2, 1, 1, ActiveItemBGColorButton, 5, 2); Table4.AddControl(7, 2, 1, 1, ActiveItemFGColorDefault, 10, 2); InactiveItemFGColorLabel := TGTKLabel.Create(Self); InactiveItemFGColorLabel.Caption := LANGPreferences_InactiveItem; InactiveItemFGColorLabel.XAlign := 0; InactiveItemFGColorButton := TGnomeColorButton.Create(Self); InactiveItemBGColorButton := TGnomeColorButton.Create(Self); InactiveItemFGColorDefault := TGTKCheckButton.CreateWithLabel(Self, LANGPreferences_Default); InactiveItemFGColorDefault.Tooltip := LANGPreferences_SetToDefaultToUseGTKThemeColors; InactiveItemFGColorDefault.OnToggled := ColorButtonDefaultsToggled; Table4.AddControl(0, 3, 1, 1, InactiveItemFGColorLabel, 30, 2); Table4.AddControl(2, 3, 1, 1, InactiveItemFGColorButton, 5, 2); Table4.AddControl(5, 3, 1, 1, InactiveItemBGColorButton, 5, 2); Table4.AddControl(7, 3, 1, 1, InactiveItemFGColorDefault, 10, 2); SelectedItemFGColorLabel := TGTKLabel.Create(Self); SelectedItemFGColorLabel.Caption := LANGPreferences_SelectedItem; SelectedItemFGColorLabel.XAlign := 0; SelectedItemFGColorButton := TGnomeColorButton.Create(Self); Table4.AddControl(0, 4, 1, 1, SelectedItemFGColorLabel, 30, 2); Table4.AddControl(2, 4, 1, 1, SelectedItemFGColorButton, 5, 2); LinkItemFGColorLabel := TGTKLabel.Create(Self); LinkItemFGColorLabel.Caption := LANGPreferences_LinkItem; LinkItemFGColorLabel.XAlign := 0; LinkItemFGColorButton := TGnomeColorButton.Create(Self); LinkItemFGColorDefault := TGTKCheckButton.CreateWithLabel(Self, LANGPreferences_Default); LinkItemFGColorDefault.Tooltip := LANGPreferences_LinkItemHint; LinkItemFGColorDefault.OnToggled := ColorButtonDefaultsToggled; Table4.AddControl(0, 5, 1, 1, LinkItemFGColorLabel, 30, 2); Table4.AddControl(2, 5, 1, 1, LinkItemFGColorButton, 5, 2); Table4.AddControl(7, 5, 1, 1, LinkItemFGColorDefault, 10, 2); DotFileItemFGColorLabel := TGTKLabel.Create(Self); DotFileItemFGColorLabel.Caption := LANGPreferences_DotFileItem; DotFileItemFGColorLabel.XAlign := 0; DotFileItemFGColorButton := TGnomeColorButton.Create(Self); DotFileItemFGColorDefault := TGTKCheckButton.CreateWithLabel(Self, LANGPreferences_Default); DotFileItemFGColorDefault.Tooltip := LANGPreferences_DotFileItemHint; DotFileItemFGColorDefault.OnToggled := ColorButtonDefaultsToggled; Table4.AddControl(0, 6, 1, 1, DotFileItemFGColorLabel, 30, 2); Table4.AddControl(2, 6, 1, 1, DotFileItemFGColorButton, 5, 2); Table4.AddControl(7, 6, 1, 1, DotFileItemFGColorDefault, 10, 2); Table4.AddControl(1, 6, 1, 1, TGTKVBox.Create(Self), 2, 2); Table4.AddControl(3, 6, 1, 1, TGTKVBox.Create(Self), 2, 2); Table4.AddControl(4, 6, 1, 1, TGTKVBox.Create(Self), 2, 2); Table4.AddControl(6, 6, 1, 1, TGTKVBox.Create(Self), 2, 2); // ********* PAGE Experimental ExperimentalPage.AddControlEx(TGTKVBox.Create(Self), False, False, 5); ExperimentalLabel2 := TGTKLabel.Create(Self); ExperimentalLabel2.XAlign := 0; ExperimentalLabel2.XPadding := 10; ExperimentalLabel2.Caption := Format('%s', [LANGPreferencesExperimentalFeatures]); ExperimentalLabel2.UseMarkup := True; ExperimentalPage.AddControlEx(ExperimentalLabel2, False, False, 5); HBox4 := TGTKHBox.Create(Self); HBox4.Homogeneous := False; ExperimentalWarningLabel := TGTKLabel.Create(Self); ExperimentalWarningLabel.Caption := LANGPreferencesExperimentalWarningLabel_Caption; ExperimentalWarningLabel.UseMarkup := True; ExperimentalWarningLabel.LineWrap := True; ExperimentalWarningLabel.SetSizeRequest(300, -1); ExperimentalWarningIcon := TGTKImage.Create(Self); ExperimentalWarningIcon.SetFromStock('gtk-dialog-warning', isDialog); HBox4.AddControlEx(TGTKVBox.Create(Self), False, False, 12); HBox4.AddControlEx(ExperimentalWarningIcon, False, False, 7); HBox4.AddControlEx(ExperimentalWarningLabel, True, True, 7); HBox4.AddControlEx(TGTKVBox.Create(Self), False, False, 8); ExperimentalPage.AddControlEx(HBox4, False, False, 5); ExperimentalPage.AddControlEx(TGTKVBox.Create(Self), False, False, 10); Table6 := TGTKTable.Create(Self); Table6.SetRowColCount(3, 1); ExperimentalPage.AddControlEx(Table6, False, False, 0); FocusRefreshCheckBox := TGTKCheckButton.CreateWithLabel(Self, LANGPreferencesFocusRefreshCheckBox_Caption); FocusRefreshCheckBox.Tooltip := LANGPreferencesFocusRefreshCheckBox_Tooltip; Table6.AddControl(0, 0, 1, 1, FocusRefreshCheckBox, 30, 2); WMCompatModeCheckBox := TGTKCheckButton.CreateWithLabel(Self, LANGPreferencesWMCompatModeCheckBox_Caption); WMCompatModeCheckBox.Tooltip := LANGPreferencesWMCompatModeCheckBox_Tooltip; Table6.AddControl(0, 1, 1, 1, WMCompatModeCheckBox, 30, 2); CompatUseLibcSystemCheckBox := TGTKCheckButton.CreateWithLabel(Self, LANGPreferencesCompatUseLibcSystemCheckBox_Caption); CompatUseLibcSystemCheckBox.Tooltip := LANGPreferencesCompatUseLibcSystemCheckBox_Tooltip; Table6.AddControl(0, 2, 1, 1, CompatUseLibcSystemCheckBox, 30, 2); // ****************** OnKeyDown := FormKeyDown; OnDestroy := FormDestroy; end; procedure TFPreferences.FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); begin // if Key = GDK_ESCAPE then ModalResult := mbCancel; end; procedure TFPreferences.FormDestroy(Sender: TObject); begin end; procedure TFPreferences.DateTimeFormatOptionMenuChanged(Sender: TObject); var Item: TGTKMenuItem; OldIndex: integer; begin CustomTimeFormatEntry.Enabled := TimeFormatOptionMenu.ItemIndex = TimeFormatOptionMenu.Items.Count - 1; CustomDateFormatEntry.Enabled := DateFormatOptionMenu.ItemIndex = DateFormatOptionMenu.Items.Count - 1; OldIndex := DateTimeFormatOptionMenu.ItemIndex; DateTimeFormatOptionMenu.Items.Clear; Item := TGTKMenuItem.CreateTyped(Self, itLabel); Item.Caption := FormatDate(FormatTime, True, True, TimeFormatOptionMenu.ItemIndex, DateFormatOptionMenu.ItemIndex, 0, CustomDateFormatEntry.Text, CustomTimeFormatEntry.Text); DateTimeFormatOptionMenu.Items.Add(Item); Item := TGTKMenuItem.CreateTyped(Self, itLabel); Item.Caption := FormatDate(FormatTime, True, True, TimeFormatOptionMenu.ItemIndex, DateFormatOptionMenu.ItemIndex, 1, CustomDateFormatEntry.Text, CustomTimeFormatEntry.Text); DateTimeFormatOptionMenu.Items.Add(Item); DateTimeFormatOptionMenu.ItemIndex := OldIndex; end; (********************************************************************************************************************************) procedure TFPreferences.ViewerBrowseButtonClick(Sender: TObject); procedure BrowseForFile(ToControl: TGTKEntry); var Dialog: TGTKFileSelectionDialog; begin Dialog := TGTKFileSelectionDialog.CreateWithTitle(Self, LANGPreferences_BrowseForApplication); try Dialog.ShowFileOpButtons := False; Dialog.FileName := ToControl.Text; if Byte(Dialog.Run) = 251 then ToControl.Text := Dialog.FileName; finally Dialog.Free; end; end; begin if Sender = ViewerBrowseButton then BrowseForFile(ViewerCombo.Entry) else if Sender = EditorBrowseButton then BrowseForFile(EditorCombo.Entry) else if Sender = TerminalBrowseButton then BrowseForFile(TerminalCombo.Entry); end; procedure TFPreferences.DefaultFontCheckBoxToggled(Sender: TObject); var FontDesc: PPangoFontDescription; begin ListFontLabel.Enabled := not DefaultFontCheckBox.Checked; ChangeFontButton.Enabled := not DefaultFontCheckBox.Checked; ListFontFrame.Enabled := not DefaultFontCheckBox.Checked; if DefaultFontCheckBox.Checked then begin gtk_widget_modify_font(ListFontPreview.FWidget, nil); ListFontPreview.Caption := Format(LANGPreferences_DefaultS, [DefaultGTKFont]); end else begin FontDesc := pango_font_description_from_string(StringToPgchar(LocalListFont)); gtk_widget_modify_font(ListFontPreview.FWidget, FontDesc); ListFontPreview.Caption := LocalListFont; end; end; procedure TFPreferences.ChangeFontButtonClick(Sender: TObject); procedure ChangeFont(ToControl: TGTKLabel); var Dialog: TGTKFontSelectionDialog; FontDesc: PPangoFontDescription; begin Dialog := TGTKFontSelectionDialog.CreateWithTitle(Self, LANGPreferences_SelectFont); try Dialog.FontName := ToControl.Caption; if Byte(Dialog.Run) = 251 then begin ToControl.Caption := Dialog.FontName; FontDesc := pango_font_description_from_string(StringToPgchar(Dialog.FontName)); gtk_widget_modify_font(ToControl.FWidget, FontDesc); // g_object_unref(FontDesc); // *** - cannot unref, causes SIGSEGV LocalListFont := Dialog.FontName; end; finally Dialog.Free; end; end; begin if Sender = ChangeFontButton then ChangeFont(ListFontPreview); end; procedure TFPreferences.ColorButtonDefaultsToggled(Sender: TObject); begin if NormalItemFGColorDefault.Checked then NormalItemFGColorButton.SetDefaultColor else NormalItemFGColorButton.UnsetDefaultColor; if NormalItemFGColorDefault.Checked then NormalItemBGColorButton.SetDefaultColor else NormalItemBGColorButton.UnsetDefaultColor; if ActiveItemFGColorDefault.Checked then ActiveItemFGColorButton.SetDefaultColor else ActiveItemFGColorButton.UnsetDefaultColor; if ActiveItemFGColorDefault.Checked then ActiveItemBGColorButton.SetDefaultColor else ActiveItemBGColorButton.UnsetDefaultColor; if InactiveItemFGColorDefault.Checked then InactiveItemFGColorButton.SetDefaultColor else InactiveItemFGColorButton.UnsetDefaultColor; if InactiveItemFGColorDefault.Checked then InactiveItemBGColorButton.SetDefaultColor else InactiveItemBGColorButton.UnsetDefaultColor; if LinkItemFGColorDefault.Checked then LinkItemFGColorButton.SetDefaultColor else LinkItemFGColorButton.UnsetDefaultColor; if DotFileItemFGColorDefault.Checked then DotFileItemFGColorButton.SetDefaultColor else DotFileItemFGColorButton.UnsetDefaultColor; end; procedure TFPreferences.DefaultRowHeightCheckBoxToggled(Sender: TObject); begin RowHeightLabel.Enabled := not DefaultRowHeightCheckBox.Checked; RowHeightSpinEdit.Enabled := not DefaultRowHeightCheckBox.Checked; end; procedure TFPreferences.UseInternalViewerCheckBoxToggled(Sender: TObject); begin ViewerCombo.Enabled := not UseInternalViewerCheckBox.Checked; ViewerLabel2.Enabled := not UseInternalViewerCheckBox.Checked; ViewerBrowseButton.Enabled := not UseInternalViewerCheckBox.Checked; ViewerOptionMenu.Enabled := not UseInternalViewerCheckBox.Checked; end; (********************************************************************************************************************************) procedure TFPreferences.AssignDefaultValues; var AColor: TGDKColor; begin DefaultGTKFont := pango_font_description_to_string(pango_context_get_font_description(gtk_widget_get_pango_context(FWidget))); LocalListFont := ConfPanelFont; RowHeightSpinEdit.Min := 6; RowHeightSpinEdit.Max := 128; RowHeightSpinEdit.AsInteger := ConfRowHeightReal; DefaultRowHeightCheckBox.Checked := ConfRowHeight < 0; NumHistoryItemsSpinEdit.Min := 1; NumHistoryItemsSpinEdit.Max := 512; NumHistoryItemsSpinEdit.AsInteger := ConfNumHistoryItems; ClearROAttr.Checked := ConfClearReadOnlyAttr; DisableMouseRename.Checked := ConfDisableMouseRename; ShowFiletypeIcons.Checked := ConfUseFileTypeIcons; ViewerCombo.Entry.Text := StrToUTF8(ConfViewer); EditorCombo.Entry.Text := StrToUTF8(ConfEditor); TerminalCombo.Entry.Text := StrToUTF8(ConfTerminalCommand); DefaultFontCheckBox.Checked := ConfUseSystemFont; if not StringToGDKColor(ConfNormalItemFGColor, AColor) then StringToGDKColor(ConfDefaultNormalItemFGColor, AColor); NormalItemFGColorButton.Color := AColor; if not StringToGDKColor(ConfNormalItemBGColor, AColor) then StringToGDKColor(ConfDefaultNormalItemBGColor, AColor); NormalItemBGColorButton.Color := AColor; if not StringToGDKColor(ConfActiveItemFGColor, AColor) then StringToGDKColor(ConfDefaultActiveItemFGColor, AColor); ActiveItemFGColorButton.Color := AColor; if not StringToGDKColor(ConfActiveItemBGColor, AColor) then StringToGDKColor(ConfDefaultActiveItemBGColor, AColor); ActiveItemBGColorButton.Color := AColor; if not StringToGDKColor(ConfInactiveItemFGColor, AColor) then StringToGDKColor(ConfDefaultInactiveItemFGColor, AColor); InactiveItemFGColorButton.Color := AColor; if not StringToGDKColor(ConfInactiveItemBGColor, AColor) then StringToGDKColor(ConfDefaultInactiveItemBGColor, AColor); InactiveItemBGColorButton.Color := AColor; if not StringToGDKColor(ConfSelectedItemFGColor, AColor) then StringToGDKColor(ConfDefaultSelectedItemFGColor, AColor); SelectedItemFGColorButton.Color := AColor; if not StringToGDKColor(ConfLinkItemFGColor, AColor) then StringToGDKColor(ConfDefaultLinkItemFGColor, AColor); LinkItemFGColorButton.Color := AColor; if not StringToGDKColor(ConfDotFileItemFGColor, AColor) then StringToGDKColor(ConfDefaultDotFileItemFGColor, AColor); DotFileItemFGColorButton.Color := AColor; NormalItemFGColorDefault.Checked := ConfNormalItemDefaultColors; ActiveItemFGColorDefault.Checked := ConfCursorDefaultColors; InactiveItemFGColorDefault.Checked := ConfInactiveItemDefaultColors; LinkItemFGColorDefault.Checked := ConfLinkItemDefaultColors; DotFileItemFGColorDefault.Checked := ConfDotFileItemDefaultColors; SelectAllDirectoriesCheckBox.Checked := ConfSelectAllDirs; NewStyleAltOCheckBox.Checked := ConfNewStyleAltO; ShowFuncButtonsCheckBox.Checked := ConfShowFuncButtons; SizeFormatOptionMenu.ItemIndex := ConfSizeFormat; TerminalOptionMenu.ItemIndex := ConfCmdLineTerminalBehaviour; DisableFileTipsCheckBox.Checked := ConfDisableFileTips; DirsInBoldCheckBox.Checked := ConfDirsInBold; DisableDirectoryBracketsCheckBox.Checked := ConfDisableDirectoryBrackets; OctalPermissionsCheckBox.Checked := ConfOctalPerm; ShowTextUIDsCheckBox.Checked := ConfShowTextUIDs; LynxLikeMotionCheckBox.Checked := ConfLynxLikeMotion; InsertMovesDownCheckBox.Checked := ConfInsMoveDown; SpaceMovesDownCheckBox.Checked := ConfSpaceMovesDown; UseInternalViewerCheckBox.Checked := ConfUseInternalViewer; ViewerOptionMenu.ItemIndex := ConfViewerTerminalBehaviour; EditorOptionMenu.ItemIndex := ConfEditorTerminalBehaviour; FocusRefreshCheckBox.Checked := ConfFocusRefresh; WMCompatModeCheckBox.Checked := ConfWMCompatMode; CompatUseLibcSystemCheckBox.Checked := ConfUseLibcSystem; CustomTimeFormatEntry.Text := ConfCustomTimeFormat; CustomDateFormatEntry.Text := ConfCustomDateFormat; DateFormatOptionMenu.ItemIndex := ConfDateFormat; TimeFormatOptionMenu.ItemIndex := ConfTimeFormat; DateTimeFormatOptionMenu.ItemIndex := ConfDateTimeFormat; QuickSearchOptionMenu.ItemIndex := ConfQuickSearchActivationKey; SortDirectoriesLikeFilesCheckBox.Checked := ConfSortDirectoriesLikeFiles; VFSTempPathEntry.Text := StrToUTF8(ConfTempPath); QuickRenameSkipExtCheckBox.Checked := ConfQuickRenameSkipExt; RightClickSelectCheckBox.Checked := ConfRightClickSelect; DefaultFontCheckBoxToggled(Self); ColorButtonDefaultsToggled(Self); UseInternalViewerCheckBoxToggled(Self); DateTimeFormatOptionMenuChanged(Self); end; procedure TFPreferences.SaveSettings; var x: integer; begin if not DefaultRowHeightCheckBox.Checked then x := RowHeightSpinEdit.AsInteger else x := -1; RebuildListViews := (ConfRowHeight <> x) or (ConfUseFileTypeIcons <> ShowFiletypeIcons.Checked) or (ConfUseSystemFont <> DefaultFontCheckBox.Checked) or ((not DefaultFontCheckBox.Checked) and (ConfPanelFont <> ListFontPreview.Caption)); RebuildIcons := ConfRowHeight <> x; ConfRowHeight := x; ConfNumHistoryItems := NumHistoryItemsSpinEdit.AsInteger; ConfClearReadOnlyAttr := ClearROAttr.Checked; ConfDisableMouseRename := DisableMouseRename.Checked; ConfUseFileTypeIcons := ShowFiletypeIcons.Checked; ConfViewer := UTF8ToStr(ViewerCombo.Entry.Text); ConfEditor := UTF8ToStr(EditorCombo.Entry.Text); ConfTerminalCommand := UTF8ToStr(TerminalCombo.Entry.Text); ConfUseSystemFont := DefaultFontCheckBox.Checked; if not ConfUseSystemFont then ConfPanelFont := ListFontPreview.Caption; ConfNormalItemFGColor := GDKColorToString(NormalItemFGColorButton.Color); ConfNormalItemBGColor := GDKColorToString(NormalItemBGColorButton.Color); ConfActiveItemFGColor := GDKColorToString(ActiveItemFGColorButton.Color); ConfActiveItemBGColor := GDKColorToString(ActiveItemBGColorButton.Color); ConfInactiveItemFGColor := GDKColorToString(InactiveItemFGColorButton.Color); ConfInactiveItemBGColor := GDKColorToString(InactiveItemBGColorButton.Color); ConfSelectedItemFGColor := GDKColorToString(SelectedItemFGColorButton.Color); ConfLinkItemFGColor := GDKColorToString(LinkItemFGColorButton.Color); ConfDotFileItemFGColor := GDKColorToString(DotFileItemFGColorButton.Color); ConfNormalItemDefaultColors := NormalItemFGColorDefault.Checked; ConfCursorDefaultColors := ActiveItemFGColorDefault.Checked; ConfInactiveItemDefaultColors := InactiveItemFGColorDefault.Checked; ConfLinkItemDefaultColors := LinkItemFGColorDefault.Checked; ConfDotFileItemDefaultColors := DotFileItemFGColorDefault.Checked; ConfSelectAllDirs := SelectAllDirectoriesCheckBox.Checked; ConfNewStyleAltO := NewStyleAltOCheckBox.Checked; ConfSizeFormat := SizeFormatOptionMenu.ItemIndex; ConfCmdLineTerminalBehaviour := TerminalOptionMenu.ItemIndex; ConfDirsInBold := DirsInBoldCheckBox.Checked; ConfDisableDirectoryBrackets := DisableDirectoryBracketsCheckBox.Checked; ConfOctalPerm := OctalPermissionsCheckBox.Checked; ConfShowTextUIDs := ShowTextUIDsCheckBox.Checked; ConfLynxLikeMotion := LynxLikeMotionCheckBox.Checked; ConfInsMoveDown := InsertMovesDownCheckBox.Checked; ConfSpaceMovesDown := SpaceMovesDownCheckBox.Checked; ConfUseInternalViewer := UseInternalViewerCheckBox.Checked; ConfViewerTerminalBehaviour := ViewerOptionMenu.ItemIndex; ConfEditorTerminalBehaviour := EditorOptionMenu.ItemIndex; ConfFocusRefresh := FocusRefreshCheckBox.Checked; ConfWMCompatMode := WMCompatModeCheckBox.Checked; ConfUseLibcSystem := CompatUseLibcSystemCheckBox.Checked; ConfDisableFileTips := DisableFileTipsCheckBox.Checked; ConfShowFuncButtons := ShowFuncButtonsCheckBox.Checked; ConfCustomTimeFormat := CustomTimeFormatEntry.Text; ConfCustomDateFormat := CustomDateFormatEntry.Text; ConfDateFormat := DateFormatOptionMenu.ItemIndex; ConfTimeFormat := TimeFormatOptionMenu.ItemIndex; ConfDateTimeFormat := DateTimeFormatOptionMenu.ItemIndex; ConfQuickSearchActivationKey := QuickSearchOptionMenu.ItemIndex; ConfSortDirectoriesLikeFiles := SortDirectoriesLikeFilesCheckBox.Checked; ConfTempPath := UTF8ToStr(VFSTempPathEntry.Text); ConfQuickRenameSkipExt := QuickRenameSkipExtCheckBox.Checked; ConfRightClickSelect := RightClickSelectCheckBox.Checked; end; (********************************************************************************************************************************) end. tuxcmd-0.6.70+dfsg/UNewDir.pas0000644000175000017500000000441111300022643015056 0ustar salvisalvi(* Tux Commander - UNewDir - New Directory form and related functions Copyright (C) 2004 Tomas Bzatek Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UNewDir; interface uses SysUtils, Types, Classes, Variants, GTKControls, GTKForms, GTKStdCtrls, GTKExtCtrls, GTKConsts; type TFNewDir = class(TGTKDialog) Label1: TGTKLabel; Entry: TGTKEntry; Box: TGTKVBox; procedure FormCreate(Sender: TObject); override; procedure FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); private { Private declarations } public { Public declarations } end; var FNewDir: TFNewDir; implementation uses ULocale; procedure TFNewDir.FormCreate(Sender: TObject); begin SetDefaultSize(350, -1); Caption := LANGCreateANewDirectory; Buttons := [mbOK, mbCancel]; Box := TGTKVBox.Create(Self); Label1 := TGTKLabel.Create(Self); Label1.Caption := LANGEnterDirectoryName; Label1.UseUnderline := True; Label1.XAlign := 0; Label1.XPadding := 0; Label1.LineWrap := True; Entry := TGTKEntry.Create(Self); Label1.FocusControl := Entry; Box.AddControlEx(Label1, False, False, 2); Box.AddControlEx(Entry, False, False, 0); Box.BorderWidth := 6; ClientArea.AddControlEx(Box, True, True, 0); OnKeyDown := FormKeyDown; Entry.SetFocus; end; procedure TFNewDir.FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); begin case Key of GDK_RETURN, GDK_KP_ENTER: ModalResult := mbOK; GDK_ESCAPE: ModalResult := mbCancel; end; end; end. tuxcmd-0.6.70+dfsg/UChecksumDruid.pas0000644000175000017500000006017011300022643016424 0ustar salvisalvi(* Tux Commander - UChecksumDruid - Checksum calculation druid Copyright (C) 2004 Tomas Bzatek Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UChecksumDruid; interface uses glib2, gdk2, gtk2, SysUtils, Types, Classes, Variants, GTKControls, GTKForms, GTKStdCtrls, GTKExtCtrls, GTKConsts, GTKView, GTKText, GTKUtils, UEngines; type TFChecksumDruid = class(TGTKDialog) CancelButton, BackButton, ForwardButton: TGTKButton; ButtonBox: TGTKHButtonBox; TitleLabel, Page1Label, Page4Label, FilenameLabel, Page6Label, Page7Label, ProcessingLabel, Page6Spacer, ErrorLabel: TGTKLabel; TitleLabelBox, PageAreaColor, LeftSpacer, Page2Color, Page3Color, Page4Color, Page5Color, Page6Color, LeftSpacer7: TGTKEventBox; Page1, FileNameHBox, SeparateFileCheckHBox, Page7, ProgressHBox, ErrorTextViewHBox: TGTKHBox; Page2, Page3, Page4, Page5, Page6: TGTKEventBox; DruidArea, PageArea, Page2ClientArea, Page3ClientArea, Page5ClientArea, Page6ClientArea: TGTKVBox; FileNameEntry: TGTKEntry; SeparateFileCheckBox: TGTKCheckButton; SFVRadioButton, MD5RadioButton: TGTKRadioButton; Progress: TGTKProgressBar; ErrorLabelScrolledWindow: TGTKScrolledWindow; procedure FormCreate(Sender: TObject); override; procedure FormDestroy(Sender: TObject); procedure FormResponse(Sender: TObject; const ResponseID: integer); procedure CancelButtonClick(Sender: TObject); procedure BackButtonClick(Sender: TObject); procedure ForwardButtonClick(Sender: TObject); procedure FileNameEntryChanged(Sender: TObject); procedure SeparateFileCheckBoxToggled(Sender: TObject); procedure FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); private ColorFG, ColorBG, ColorGray: PGdkColor; CurrentPage: integer; Processing, Stop, StopBreak: boolean; Buffer: Pointer; FileDes: TEngineFileDes; BufferPos: integer; procedure CreatePages; procedure SetCurrentPage(const Num: integer; const GoingForward: boolean); procedure Process; function ProcessFile(const FName: string; const IsItSFV: boolean; var HashString: string): boolean; procedure CheckStop; procedure WriteLine(const FName, CheckedFName, HashString: string; const IsItSFV, CreateFile, CloseFile: boolean); procedure WriteSFVComment(const FName: string); public Engine: TPanelEngine; FileNames: TStringList; DirName: string; end; const NumPages = 7; var FChecksumDruid: TFChecksumDruid; implementation uses ULocale, UCoreUtils, ULibc, UCore, DateUtils, UConfig, StrUtils, md5, crc; procedure TFChecksumDruid.FormCreate(Sender: TObject); begin CurrentPage := 0; Processing := False; Stop := False; StopBreak := False; Buffer := nil; BufferPos := 0; SetDefaultSize(400, 210); Caption := LANGCreateChecksumsCaption; OnDestroy := FormDestroy; OnResponse := FormResponse; FileNames := TStringList.Create; ShowSeparator := False; Buttons := []; ActionArea.SetSizeRequest(0, 0); DruidArea := TGTKVBox.Create(Self); DruidArea.BorderWidth := 2; ClientArea.AddControlEx(DruidArea, True, True, 0); CancelButton := TGTKButton.CreateFromStock(Self, 'gtk-cancel'); CancelButton.OnClick := CancelButtonClick; BackButton := TGTKButton.CreateFromStock(Self, 'gtk-go-back'); BackButton.OnClick := BackButtonClick; ForwardButton := TGTKButton.CreateFromStock(Self, 'gtk-go-forward'); ForwardButton.OnClick := ForwardButtonClick; ButtonBox := TGTKHButtonBox.Create(Self); ButtonBox.Layout := blEnd; ButtonBox.Spacing := 10; ButtonBox.BorderWidth := 5; ButtonBox.AddControlEx(CancelButton, False, False, 0); ButtonBox.AddControlEx(BackButton, False, False, 0); ButtonBox.AddControlEx(ForwardButton, False, False, 0); ClientArea.AddControlEndEx(ButtonBox, False, False, 0); ColorFG := GetDefaultForegroundColor(3); ColorBG := GetDefaultBackgroundColor(3); ColorGray := GetDefaultBackgroundColor(2); TitleLabel := TGTKLabel.Create(Self); TitleLabelBox := TGTKEventBox.Create(Self); TitleLabelBox.AddControl(TitleLabel); TitleLabelBox.BorderWidth := 0; TitleLabel.SetAlignment(0, 0.5); TitleLabel.SetPadding(5, 5); TitleLabel.SetForegroundColor(ColorFG); TitleLabelBox.SetBackgroundColor(ColorBG); DruidArea.AddControlEx(TitleLabelBox, False, False, 0); PageAreaColor := TGTKEventBox.Create(Self); PageAreaColor.SetBackgroundColor(ColorGray); PageArea := TGTKVBox.Create(Self); PageAreaColor.AddControl(PageArea); DruidArea.AddControlEx(PageAreaColor, True, True, 0); CreatePages; SetCurrentPage(1, True); OnKeyDown := FormKeyDown; end; procedure TFChecksumDruid.FormDestroy(Sender: TObject); begin FileNames.Free; end; procedure TFChecksumDruid.FormResponse(Sender: TObject; const ResponseID: integer); begin Stop := True; end; procedure TFChecksumDruid.FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); begin // if Key = GDK_ESCAPE then ModalResult := mbCancel; if (Key = GDK_RETURN) or (Key = GDK_KP_ENTER) then ForwardButtonClick(Sender); end; procedure TFChecksumDruid.CreatePages; begin Page1 := TGTKHBox.Create(Self); Page1.Homogeneous := False; LeftSpacer := TGTKEventBox.Create(Self); LeftSpacer.SetBackgroundColor(ColorBG); LeftSpacer.SetSizeRequest(100, -1); Page1Label := TGTKLabel.Create(Self); Page1Label.LineWrap := True; Page1Label.SetAlignment(0.5, 0.5); Page1Label.Caption := LANGCCHKSUMPage1Text; Page1.AddControlEx(LeftSpacer, False, False, 0); Page1.AddControlEx(Page1Label, True, True, 0); Page2 := TGTKEventBox.Create(Self); Page2.SetBackgroundColor(0, 0, 0); Page2Color := TGTKEventBox.Create(Self); Page2Color.BorderWidth := 1; Page2Color.SetBackgroundColor(ColorGray); Page2.AddControl(Page2Color); Page2ClientArea := TGTKVBox.Create(Self); Page2Color.AddControl(Page2ClientArea); SFVRadioButton := TGTKRadioButton.Create(Self); SFVRadioButton.Caption := LANGCCHKSUMSFVFile; MD5RadioButton := TGTKRadioButton.Create(Self); MD5RadioButton.Caption := LANGCCHKSUMMD5sumFile; MD5RadioButton.SetRadioGroup(SFVRadioButton); SFVRadioButton.Checked := True; Page2ClientArea.AddControlEx(SFVRadioButton, False, False, 3); Page2ClientArea.AddControlEx(MD5RadioButton, False, False, 3); Page2ClientArea.BorderWidth := 30; Page3 := TGTKEventBox.Create(Self); Page3.SetBackgroundColor(0, 0, 0); Page3Color := TGTKEventBox.Create(Self); Page3Color.BorderWidth := 1; Page3Color.SetBackgroundColor(ColorGray); Page3.AddControl(Page3Color); Page3ClientArea := TGTKVBox.Create(Self); Page3Color.AddControl(Page3ClientArea); FilenameLabel := TGTKLabel.Create(Self); FilenameLabel.Caption := LANGCCHKSUMFileName; FilenameLabel.UseUnderline := True; FileNameEntry := TGTKEntry.Create(Self); FileNameEntry.Text := 'checksums.sfv'; FileNameEntry.SetSizeRequest(215, -1); FileNameEntry.OnChanged := FileNameEntryChanged; FilenameLabel.FocusControl := FileNameEntry; SeparateFileCheckBox := TGTKCheckButton.CreateWithLabel(Self, LANGCCHKSUMCreateSeparateChecksumFiles); SeparateFileCheckBox.OnToggled := SeparateFileCheckBoxToggled; Page3ClientArea.BorderWidth := 30; FileNameHBox := TGTKHBox.Create(Self); FileNameHBox.Homogeneous := False; FileNameHBox.AddControlEx(FilenameLabel, False, False, 5); FileNameHBox.AddControlEx(FileNameEntry, False, False, 5); Page3ClientArea.AddControlEx(FileNameHBox, False, False, 0); SeparateFileCheckHBox := TGTKHBox.Create(Self); SeparateFileCheckHBox.Homogeneous := False; SeparateFileCheckHBox.AddControlEx(SeparateFileCheckBox, False, False, 20); SeparateFileCheckHBox.AddControlEx(TGTKLabel.Create(Self), True, True, 0); Page3ClientArea.AddControlEx(SeparateFileCheckHBox, False, False, 5); Page4 := TGTKEventBox.Create(Self); Page4.SetBackgroundColor(0, 0, 0); Page4Color := TGTKEventBox.Create(Self); Page4Color.BorderWidth := 1; Page4Color.SetBackgroundColor(ColorGray); Page4.AddControl(Page4Color); Page4Label := TGTKLabel.Create(Self); Page4Label.LineWrap := True; Page4Label.SetAlignment(0.5, 0.5); Page4Label.Caption := LANGCCHKSUMPage4Text; Page4Color.AddControl(Page4Label); Page5 := TGTKEventBox.Create(Self); Page5.SetBackgroundColor(0, 0, 0); Page5Color := TGTKEventBox.Create(Self); Page5Color.BorderWidth := 1; Page5Color.SetBackgroundColor(ColorGray); Page5.AddControl(Page5Color); Page5ClientArea := TGTKVBox.Create(Self); Page5Color.AddControl(Page5ClientArea); ProcessingLabel := TGTKLabel.Create(Self); ProcessingLabel.Caption := Format(LANGCCHKSUMNowProcessingFileS, ['---']); ProcessingLabel.XPadding := 20; ProcessingLabel.XAlign := 0; ProcessingLabel.YPadding := 10; ProcessingLabel.SetSizeRequest(10, -1); Page5ClientArea.AddControlEx(ProcessingLabel, False, False, 10); ProgressHBox := TGTKHBox.Create(Self); Progress := TGTKProgressBar.Create(Self); ProgressHBox.AddControlEx(Progress, True, True, 20); Page5ClientArea.AddControlEx(ProgressHBox, True, True, 10); Page5ClientArea.AddControlEx(TGTKLabel.Create(Self), True, True, 0); Page6 := TGTKEventBox.Create(Self); Page6.SetBackgroundColor(0, 0, 0); Page6Color := TGTKEventBox.Create(Self); Page6Color.BorderWidth := 1; Page6Color.SetBackgroundColor(ColorGray); Page6.AddControl(Page6Color); Page6Label := TGTKLabel.Create(Self); Page6Label.LineWrap := True; Page6Label.SetAlignment(0.5, 0.4); Page6Label.Caption := LANGCCHKSUMPage6Text; Page6Label.UseMarkup := True; Page6Label.XAlign := 0.05; Page6Label.YAlign := 0; Page6Spacer := TGTKLabel.Create(Self); Page6Spacer.SetSizeRequest(-1, 6); Page6ClientArea := TGTKVBox.Create(Self); Page6ClientArea.AddControlEx(Page6Spacer, False, False, 0); Page6ClientArea.AddControlEx(Page6Label, False, False, 0); Page6Color.AddControl(Page6ClientArea); ErrorLabel := TGTKLabel.Create(Self); ErrorLabel.Selectable := True; ErrorLabel.SetAlignment(0, 0); ErrorLabel.SetPadding(2, 2); ErrorLabel.Alignment := taLeftJustify; ErrorLabelScrolledWindow := TGTKScrolledWindow.Create(Self); ErrorLabelScrolledWindow.HorizScrollBarPolicy := sbAutomatic; ErrorLabelScrolledWindow.VertScrollBarPolicy := sbAutomatic; ErrorLabelScrolledWindow.AddWithViewPort(ErrorLabel); ErrorTextViewHBox := TGTKHBox.Create(Self); ErrorTextViewHBox.AddControlEx(ErrorLabelScrolledWindow, True, True, 25); Page6ClientArea.AddControlEx(ErrorTextViewHBox, True, True, 10); Page7 := TGTKHBox.Create(Self); Page7.Homogeneous := False; LeftSpacer7 := TGTKEventBox.Create(Self); LeftSpacer7.SetBackgroundColor(ColorBG); LeftSpacer7.SetSizeRequest(100, -1); Page7Label := TGTKLabel.Create(Self); Page7Label.LineWrap := True; Page1Label.SetAlignment(0.5, 0.5); Page7Label.Caption := LANGCCHKSUMPage7Text; Page7.AddControlEx(LeftSpacer7, False, False, 0); Page7.AddControlEx(Page7Label, True, True, 0); PageArea.AddControlEx(Page1, True, True, 0); PageArea.AddControlEx(Page2, True, True, 0); PageArea.AddControlEx(Page3, True, True, 0); PageArea.AddControlEx(Page4, True, True, 0); PageArea.AddControlEx(Page5, True, True, 0); PageArea.AddControlEx(Page6, True, True, 0); PageArea.AddControlEx(Page7, True, True, 0); end; (********************************************************************************************************************************) procedure TFChecksumDruid.SetCurrentPage(const Num: integer; const GoingForward: boolean); const Ext: array[boolean] of string = ('.md5', '.sfv'); var s: string; i: TEngineFileDes; Error: integer; begin // A simple test before we can continue if (CurrentPage = 3) and (not SeparateFileCheckBox.Checked) and GoingForward then begin s := UTF8ToStr(FileNameEntry.Text); i := Engine.OpenFile(s, omWrite, Error); if Error <> 0 then begin Application.MessageBox(PGtkWindow(FWidget), Format(LANGCCHKSUMAnErrorOccuredWhileOpeningFileSS, [StrToUTF8(ExtractFileName(s)), GetErrorString(Error)]), [mbOK], mbError, mbNone, mbOK); Exit; end; Engine.CloseFile(i); Engine.Remove(s); end; DebugMsg(['TFChecksumDruid.SetCurrentPage: CurrentPage = ', CurrentPage, ', new = ', Num]); // Changing page CurrentPage := Num; if CurrentPage < 1 then CurrentPage := 1; if CurrentPage > NumPages then CurrentPage := NumPages; case CurrentPage of 1: TitleLabel.SetMarkup(LANGCCHKSUMPage1Title); 2: TitleLabel.SetMarkup(LANGCCHKSUMPage2Title); 3: TitleLabel.SetMarkup(LANGCCHKSUMPage3Title); 4: TitleLabel.SetMarkup(LANGCCHKSUMPage4Title); 5: TitleLabel.SetMarkup(LANGCCHKSUMPage5Title); 6: TitleLabel.SetMarkup(LANGCCHKSUMPage6Title); 7: TitleLabel.SetMarkup(LANGCCHKSUMPage7Title); end; Page1.Visible := CurrentPage = 1; Page2.Visible := CurrentPage = 2; Page3.Visible := CurrentPage = 3; Page4.Visible := CurrentPage = 4; Page5.Visible := CurrentPage = 5; Page6.Visible := CurrentPage = 6; Page7.Visible := CurrentPage = 7; BackButton.Enabled := CurrentPage > 1; ForwardButton.Enabled := CurrentPage < NumPages; if CurrentPage < NumPages then begin if not ForwardButton.UseStock then ForwardButton.Caption := 'gtk-go-forward'; ForwardButton.UseStock := True; end else begin ForwardButton.UseStock := False; ForwardButton.Caption := LANGCCHKSUMFinishCaption; end; // after page changed case CurrentPage of 1: ForwardButton.SetFocus; 2: if SFVRadioButton.Checked then SFVRadioButton.SetFocus else MD5RadioButton.SetFocus; 3: begin SeparateFileCheckBox.Visible := MD5RadioButton.Checked and (FileNames.Count > 1); FileNameEntry.Enabled := (not SeparateFileCheckBox.Checked) or (not SeparateFileCheckBox.Visible); if FileNames.Count = 1 then FileNameEntry.Text := StrToUTF8(ExtractFileName(FileNames[0]) + Ext[SFVRadioButton.Checked]) else FileNameEntry.Text := StrToUTF8(DirName + Ext[SFVRadioButton.Checked]); FileNameEntry.SetFocus; FileNameEntryChanged(Self); end; 4: ForwardButton.SetFocus; 5: Process; 6: begin BackButton.SetFocus; ForwardButton.Enabled := False; s := ErrorLabel.Caption; if (Length(s) > 1) and (s[Length(s)] = #10) then Delete(s, Length(s), 1); ErrorLabel.Caption := s; end; 7: begin BackButton.Enabled := False; CancelButton.Enabled := False; ForwardButton.Enabled := True; ForwardButton.SetFocus; end; end; end; procedure TFChecksumDruid.CancelButtonClick(Sender: TObject); begin ModalResult := mbCancel; end; procedure TFChecksumDruid.BackButtonClick(Sender: TObject); begin SetCurrentPage(CurrentPage - 1 - Ord(CurrentPage = 6), False); end; procedure TFChecksumDruid.ForwardButtonClick(Sender: TObject); begin if CurrentPage = 7 then ModalResult := mbOK else SetCurrentPage(CurrentPage + 1, True); end; procedure TFChecksumDruid.FileNameEntryChanged(Sender: TObject); begin ForwardButton.Enabled := Length(Trim(FileNameEntry.Text)) > 0; end; procedure TFChecksumDruid.SeparateFileCheckBoxToggled(Sender: TObject); begin FileNameEntry.Enabled := not SeparateFileCheckBox.Checked; end; (********************************************************************************************************************************) procedure TFChecksumDruid.CheckStop; begin if Stop and (not StopBreak) then if Application.MessageBox(PGtkWindow(FWidget), LANGCCHKSUMAreYouSureYouWantToAbortTheProcessing, [mbYes, mbNo], mbQuestion, mbNone, mbNo) = mbYes then StopBreak := True else begin Stop := False; StopBreak := False; end; end; procedure TFChecksumDruid.Process; const Ext: array[boolean] of string = ('.md5', '.sfv'); var i: integer; MaxSize, LastValue: Int64; Stat: PDataItemSL; s, s2: string; begin if FileNames.Count = 0 then begin SetCurrentPage(7, True); Exit; end; FileNames.Sorted := True; CancelButton.SetFocus; ForwardButton.Enabled := False; BackButton.Enabled := False; Processing := True; Stop := False; StopBreak := False; ErrorLabel.Caption := ''; Application.ProcessMessages; // Compute maximal size of selected files MaxSize := 0; for i := 0 to FileNames.Count - 1 do begin Stat := Engine.GetFileInfoSL(FileNames[i]); if Assigned(Stat) then begin Inc(MaxSize, Stat.Size); FreeDataItem(Stat); end; end; Progress.Max := MaxSize; Progress.Value := 0; Progress.Text := '0 %'; if SFVRadioButton.Checked then WriteSFVComment(ProcessPattern(Engine, UTF8ToStr(FileNameEntry.Text), IncludeTrailingPathDelimiter(ExtractFilePath(FileNames[0])), '', False)); // Process each file for i := 0 to FileNames.Count - 1 do begin ProcessingLabel.Caption := Format(LANGCCHKSUMNowProcessingFileS, [StrToUTF8(ExtractFileName(FileNames[i]))]); LastValue := Progress.Value; Stat := Engine.GetFileInfoSL(FileNames[i]); Application.ProcessMessages; try if ProcessFile(FileNames[i], SFVRadioButton.Checked, s) then begin if not SeparateFileCheckBox.Checked then s2 := ProcessPattern(Engine, StrToUTF8(FileNameEntry.Text), IncludeTrailingPathDelimiter(ExtractFilePath(FileNames[0])), '', False) else s2 := IncludeTrailingPathDelimiter(ExtractFilePath(FileNames[i])) + ExtractFileName(FileNames[i]) + Ext[SFVRadioButton.Checked]; WriteLine(s2, FileNames[i], s, SFVRadioButton.Checked, ((i = 0) and MD5RadioButton.Checked) or SeparateFileCheckBox.Checked, (i = FileNames.Count - 1) or SeparateFileCheckBox.Checked); end; except end; if Assigned(Stat) then begin Progress.Value := LastValue + Stat.Size; FreeDataItem(Stat); end; Progress.Text := Format('%d %%', [Trunc(Progress.Fraction * 100)]); Application.ProcessMessages; CheckStop; if StopBreak then Break; end; Application.ProcessMessages; Processing := False; Stop := False; StopBreak := False; Application.ProcessMessages; SetCurrentPage(7 - Ord(ErrorLabel.Caption <> ''), ErrorLabel.Caption = ''); end; function TFChecksumDruid.ProcessFile(const FName: string; const IsItSFV: boolean; var HashString: string): boolean; const ChksumBlockSize = 65536*4; var FD: TEngineFileDes; Error, Count: integer; Buffer: Pointer; CRC: LongWord; MDContext: TMDContext; MDDigest: TMDDigest; begin HashString := ''; Result := False; try Buffer := malloc(ChksumBlockSize); memset(Buffer, 0, ChksumBlockSize); except ErrorLabel.Caption := ErrorLabel.Caption + LANGAnErrorOccuredWhileInitializingMemoryBlock + #10; Exit; end; CRC := 0; if not IsItSFV then MDInit(MDContext, MD_VERSION_5); FD := Engine.OpenFile(FName, omRead, Error); if Error <> 0 then begin ErrorLabel.Caption := ErrorLabel.Caption + Format(LANGCCHKSUMAnErrorOccuredWhileOpeningFileSS, [StrToUTF8(ExtractFileName(FName)), GetErrorString(Error)]); Exit; end; repeat Count := Engine.ReadFile(FD, Buffer, ChksumBlockSize, Error); if Error <> 0 then begin ErrorLabel.Caption := ErrorLabel.Caption + Format(LANGCCHKSUMAnErrorOccuredWhileReadingFileSS, [StrToUTF8(ExtractFileName(FName)), GetErrorString(Error)]); Engine.CloseFile(FD); Exit; end; if IsItSFV then CRC := CRC32(CRC, Buffer, Count) else MDUpdate(MDContext, Buffer^, Count); Progress.Value := Progress.Value + Count; Progress.Text := Format('%d %%', [Trunc(Progress.Fraction * 100)]); Application.ProcessMessages; CheckStop; until (Count < ChksumBlockSize) or Stop; Engine.CloseFile(FD); libc_free(Buffer); if IsItSFV then HashString := IntToHex(CRC, 8) else begin MDFinal(MDContext, MDDigest); HashString := MDPrint(MDDigest); end; Result := True; end; const ChksumBlockSize = 32768; // Maximum of PByteArray procedure TFChecksumDruid.WriteLine(const FName, CheckedFName, HashString: string; const IsItSFV, CreateFile, CloseFile: boolean); var i, Error, Count: integer; s: string; begin if CreateFile then begin FileDes := Engine.OpenFile(FName, omWrite, Error); if Error <> 0 then begin ErrorLabel.Caption := ErrorLabel.Caption + Format(LANGCCHKSUMAnErrorOccuredWhileOpeningFileSS, [StrToUTF8(ExtractFileName(FName)), GetErrorString(Error)]); Exit; end; try Buffer := malloc(ChksumBlockSize); memset(Buffer, 0, ChksumBlockSize); except ErrorLabel.Caption := ErrorLabel.Caption + LANGAnErrorOccuredWhileInitializingMemoryBlock + #10; Exit; end; BufferPos := -1; end; if Buffer = nil then Exit; if IsItSFV then s := Format('%s %s'#13#10, [ExtractFileName(CheckedFName), Trim(WideUpperCase(HashString))]) else s := Format('%s %s'#10, [Trim(AnsiLowerCase(HashString)), ExtractFileName(CheckedFName)]); for i := 1 to Length(s) do begin if BufferPos + 1 >= ChksumBlockSize then begin Count := Engine.WriteFile(FileDes, Buffer, ChksumBlockSize, Error); BufferPos := -1; if (Error <> 0) or (Count <> ChksumBlockSize) then begin ErrorLabel.Caption := ErrorLabel.Caption + Format(LANGCCHKSUMAnErrorOccuredWhileWritingFileSS, [StrToUTF8(ExtractFileName(FName)), GetErrorString(Error)]); Exit; end; end; Inc(BufferPos); PByteArray(Buffer)^[BufferPos] := Byte(s[i]); end; if CloseFile then begin Inc(BufferPos); // Counting with zero-starting element Count := Engine.WriteFile(FileDes, Buffer, BufferPos, Error); if (Error <> 0) or (Count <> BufferPos) then begin ErrorLabel.Caption := ErrorLabel.Caption + Format(LANGCCHKSUMAnErrorOccuredWhileWritingFileSS, [StrToUTF8(ExtractFileName(FName)), GetErrorString(Error)]); Exit; end; BufferPos := -1; Engine.CloseFile(FileDes); libc_free(Buffer); end; end; procedure TFChecksumDruid.WriteSFVComment(const FName: string); var i, Error, Count: integer; Stat: PDataItemSL; s: string; begin FileDes := Engine.OpenFile(FName, omWrite, Error); if Error <> 0 then begin ErrorLabel.Caption := ErrorLabel.Caption + Format(LANGCCHKSUMAnErrorOccuredWhileOpeningFileSS, [StrToUTF8(ExtractFileName(FName)), GetErrorString(Error)]); Exit; end; try Buffer := malloc(ChksumBlockSize); memset(Buffer, 0, ChksumBlockSize); except ErrorLabel.Caption := ErrorLabel.Caption + LANGAnErrorOccuredWhileInitializingMemoryBlock + #10; Exit; end; BufferPos := -1; if Buffer = nil then Exit; s := Format('; Generated by WIN-SFV32 v1 [added for sfv32 compatibility]'#13#10'; Using Tux Commander v%s [%s] on %s'#13#10 + '; http://tuxcmd.sourceforge.net/'#13#10'; '#13#10'; /----'#13#10, [ConstAboutVersion, ConstAboutBuildDate, SysUtils.FormatDateTime('mm.dd.yyyy "at" hh:nn:ss', Now)]); for i := 0 to FileNames.Count - 1 do begin Stat := Engine.GetFileInfoSL(FileNames[i]); if Assigned(Stat) then begin s := s + Format('; %s %s %s'#13#10, [PadRightStr(IntToStr(Stat^.Size), 11), FormatDate(Stat^.ModifyTime, True, True, 999, 999, 1, '%Y-%m-%d', '%k:%M.%S'), ExtractFileName(FileNames[i])]); FreeDataItem(Stat); end; end; s := s + '; \----'#13#10'; '#13#10; for i := 1 to Length(s) do begin if BufferPos + 1 >= ChksumBlockSize then begin Count := Engine.WriteFile(FileDes, Buffer, ChksumBlockSize, Error); BufferPos := -1; if (Error <> 0) or (Count <> ChksumBlockSize) then begin ErrorLabel.Caption := ErrorLabel.Caption + Format(LANGCCHKSUMAnErrorOccuredWhileWritingFileSS, [StrToUTF8(ExtractFileName(FName)), GetErrorString(Error)]); Exit; end; end; Inc(BufferPos); PByteArray(Buffer)^[BufferPos] := Byte(s[i]); end; end; end. tuxcmd-0.6.70+dfsg/UCoreClasses.pas0000644000175000017500000002635411300022643016106 0ustar salvisalvi(* Tux Commander - UCoreClasses - Some useful core classes Copyright (C) 2007 Tomas Bzatek Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UCoreClasses; interface uses gdk2pixbuf, gtk2, gdk2, glib2, SysUtils, Classes, ULibc, IniFiles, GTKClasses, GTKStdCtrls, GTKDialogs, GTKPixbuf, UGnome, UEngines; type TSystemUser = class public UserName, FullName, HomeDir, LoginShell: string; UID, GID: Cardinal; end; TSystemGroup = class public GroupName: string; GID: Cardinal; Users: TStrings; end; TUserManager = class private public UserList, GroupList: TList; constructor Create; destructor Destroy; override; function GetUserName(UID: Cardinal; const ShowNA: boolean = True): string; function GetGroupName(GID: Cardinal; const ShowNA: boolean = True): string; end; TMyIniFile = class(TIniFile) private FReadOnly: boolean; public constructor Create(const FileName: string; const ReadOnly: boolean); procedure UpdateFile; override; end; TGTKImageButton = class(TGTKButton) private FHBox: PGtkWidget; FLabel: PGtkWidget; FImage: PGtkWidget; FEventBoxLeft, FEventBoxRight: PGtkWidget; function GetCaption: string; procedure SetCaption(Value: string); procedure SetIcon(Value: TGDKPixbuf); procedure SetSpacing(Value: integer); public procedure SetFromStock(Stock_ID: string; IconSize: TGTKIconSize); published constructor Create(AOwner: TComponent); override; constructor CreateWithoutLabel(AOwner: TComponent); property Caption: string read GetCaption write SetCaption; property Icon: TGDKPixbuf write SetIcon; property Spacing: integer write SetSpacing; end; TGTKImageToggleButton = class(TGTKToggleButton) private FHBox: PGtkWidget; FLabel: PGtkWidget; FImage: PGtkWidget; function GetCaption: string; procedure SetCaption(Value: string); procedure SetIcon(Value: TGDKPixbuf); public procedure SetFromStock(Stock_ID: string; IconSize: TGTKIconSize); published constructor Create(AOwner: TComponent); override; constructor CreateWithoutLabel(AOwner: TComponent); property Caption: string read GetCaption write SetCaption; property Icon: TGDKPixbuf write SetIcon; end; implementation uses GTKForms, GTKUtils, ULocale, UConfig, UCore, UCoreUtils; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TUserManager.Create; var pwd: PPasswd; User: TSystemUser; grp: PGroup; Group: TSystemGroup; i: integer; begin inherited Create; UserList := TList.Create; GroupList := TList.Create; // Load and process /etc/passwd try setpwent; pwd := getpwent; while pwd <> nil do begin User := TSystemUser.Create; User.UserName := String(StrToUTF8(pwd^.pw_name)); User.FullName := String(StrToUTF8(pwd^.pw_gecos)); User.HomeDir := String(StrToUTF8(pwd^.pw_dir)); User.LoginShell := String(StrToUTF8(pwd^.pw_shell)); User.UID := pwd^.pw_uid; User.GID := pwd^.pw_gid; UserList.Add(User); pwd := getpwent; end; endpwent; except end; // Load and process /etc/group try setgrent; grp := getgrent; while grp <> nil do begin Group := TSystemGroup.Create; Group.GroupName := String(StrToUTF8(grp^.gr_name)); Group.GID := grp^.gr_gid; Group.Users := TStringList.Create; {$R-} if grp^.gr_mem^ <> nil then begin i := 0; repeat Group.Users.Add(String(StrToUTF8(PCharArray(grp^.gr_mem^)[i]))); Inc(i); until PCharArray(grp^.gr_mem^)[i] = nil; end; {$R+} GroupList.Add(Group); grp := getgrent; end; endgrent; except end; end; destructor TUserManager.Destroy; var i: integer; begin if UserList.Count > 0 then for i := UserList.Count - 1 downto 0 do begin TSystemUser(UserList[i]).Free; UserList.Delete(i); end; UserList.Clear; UserList.Free; if GroupList.Count > 0 then for i := GroupList.Count - 1 downto 0 do begin TSystemGroup(GroupList[i]).Users.Clear; TSystemGroup(GroupList[i]).Users.Free; TSystemGroup(GroupList[i]).Free; GroupList.Delete(i); end; GroupList.Clear; GroupList.Free; inherited Destroy; end; function TUserManager.GetUserName(UID: Cardinal; const ShowNA: boolean = True): string; var i: integer; begin if ShowNA then Result := 'N/A' else Result := IntToStr(UID); if UserList.Count > 0 then for i := 0 to UserList.Count - 1 do if TSystemUser(UserList[i]).UID = UID then begin Result := TSystemUser(UserList[i]).UserName; Break; end; end; function TUserManager.GetGroupName(GID: Cardinal; const ShowNA: boolean = True): string; var i: integer; begin if ShowNA then Result := 'N/A' else Result := IntToStr(GID); if GroupList.Count > 0 then for i := 0 to GroupList.Count - 1 do if TSystemGroup(GroupList[i]).GID = GID then begin Result := TSystemGroup(GroupList[i]).GroupName; Break; end; end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TMyIniFile.Create(const FileName: string; const ReadOnly: boolean); begin FReadOnly := ReadOnly; inherited Create(FileName); end; procedure TMyIniFile.UpdateFile; begin if not FReadOnly then inherited UpdateFile; end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKImageButton.Create(AOwner: TComponent); begin inherited Create(AOwner); FWidget := gtk_button_new; FLabel := gtk_label_new(''); FImage := gtk_image_new; FHBox := gtk_hbox_new(False, 2); FEventBoxLeft := gtk_vbox_new(false, 0); FEventBoxRight := gtk_vbox_new(false, 0); gtk_box_pack_start(PGtkBox(FHBox), FEventBoxLeft, False, False, 0); gtk_box_pack_start(PGtkBox(FHBox), FImage, False, False, 0); gtk_box_pack_start(PGtkBox(FHBox), FLabel, True, True, 0); gtk_box_pack_start(PGtkBox(FHBox), FEventBoxRight, False, False, 0); gtk_container_add(PGtkContainer(FWidget), FHBox); g_signal_connect(PGtkObject(FWidget), 'clicked', G_CALLBACK(@TGTKButton_OnClick), Self); gtk_widget_show(FLabel); gtk_widget_show(FImage); gtk_widget_show(FHBox); gtk_widget_show(FEventBoxLeft); gtk_widget_show(FEventBoxRight); Show; end; constructor TGTKImageButton.CreateWithoutLabel(AOwner: TComponent); begin inherited Create(AOwner); FWidget := gtk_button_new; FLabel := gtk_label_new(''); FImage := gtk_image_new; FHBox := gtk_hbox_new(False, 2); FEventBoxLeft := gtk_vbox_new(false, 0); FEventBoxRight := gtk_vbox_new(false, 0); gtk_box_pack_start(PGtkBox(FHBox), FEventBoxLeft, False, False, 0); gtk_box_pack_start(PGtkBox(FHBox), FImage, False, False, 0); gtk_box_pack_start(PGtkBox(FHBox), FEventBoxRight, False, False, 0); gtk_container_add(PGtkContainer(FWidget), FHBox); g_signal_connect(PGtkObject(FWidget), 'clicked', G_CALLBACK(@TGTKButton_OnClick), Self); gtk_widget_show(FLabel); gtk_widget_show(FImage); gtk_widget_show(FHBox); gtk_widget_show(FEventBoxLeft); gtk_widget_show(FEventBoxRight); Show; end; function TGTKImageButton.GetCaption: string; begin Result := gtk_label_get_text(PGtkLabel(FLabel)); end; procedure TGTKImageButton.SetCaption(Value: string); begin gtk_label_set_text_with_mnemonic(PGtkLabel(FLabel), PChar(Value)); end; procedure TGTKImageButton.SetIcon(Value: TGDKPixbuf); begin if Assigned(Value) and Assigned(Value.FPixbuf) then gtk_image_set_from_pixbuf(PGtkImage(FImage), Value.FPixbuf); end; procedure TGTKImageButton.SetFromStock(Stock_ID: string; IconSize: TGTKIconSize); begin gtk_image_set_from_stock(PGtkImage(FImage), PChar(Stock_ID), Ord(IconSize)); end; procedure TGTKImageButton.SetSpacing(Value: integer); begin gtk_widget_set_size_request(FEventBoxLeft, Value, -1); gtk_widget_set_size_request(FEventBoxRight, Value, -1); end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TGTKImageToggleButton.Create(AOwner: TComponent); begin inherited Create(AOwner); FWidget := gtk_toggle_button_new; FLabel := gtk_label_new(''); FImage := gtk_image_new; FHBox := gtk_hbox_new(False, 2); gtk_box_pack_start(PGtkBox(FHBox), FImage, False, False, 0); gtk_box_pack_start(PGtkBox(FHBox), FLabel, True, True, 0); gtk_container_add(PGtkContainer(FWidget), FHBox); g_signal_connect(PGtkObject(FWidget), 'clicked', G_CALLBACK(@TGTKButton_OnClick), Self); gtk_widget_show(FLabel); gtk_widget_show(FImage); gtk_widget_show(FHBox); Show; end; constructor TGTKImageToggleButton.CreateWithoutLabel(AOwner: TComponent); begin inherited Create(AOwner); FWidget := gtk_button_new; FLabel := gtk_label_new(''); FImage := gtk_image_new; gtk_container_add(PGtkContainer(FWidget), FImage); g_signal_connect(PGtkObject(FWidget), 'clicked', G_CALLBACK(@TGTKButton_OnClick), Self); gtk_widget_show(FLabel); gtk_widget_show(FImage); Show; end; function TGTKImageToggleButton.GetCaption: string; begin Result := gtk_label_get_text(PGtkLabel(FLabel)); end; procedure TGTKImageToggleButton.SetCaption(Value: string); begin gtk_label_set_text(PGtkLabel(FLabel), PChar(Value)); end; procedure TGTKImageToggleButton.SetIcon(Value: TGDKPixbuf); begin if Assigned(Value) and Assigned(Value.FPixbuf) then gtk_image_set_from_pixbuf(PGtkImage(FImage), Value.FPixbuf); end; procedure TGTKImageToggleButton.SetFromStock(Stock_ID: string; IconSize: TGTKIconSize); begin gtk_image_set_from_stock(PGtkImage(FImage), PChar(Stock_ID), Ord(IconSize)); end; (********************************************************************************************************************************) end. tuxcmd-0.6.70+dfsg/UColumns.pas0000644000175000017500000002041711300022643015312 0ustar salvisalvi(* Tux Commander - UColumns - Panel Columns Settings dialog Copyright (C) 2007 Tomas Bzatek Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UColumns; interface uses glib2, gdk2, gtk2, pango, SysUtils, Types, Classes, Variants, GTKControls, GTKForms, GTKStdCtrls, GTKExtCtrls, GTKConsts, GTKView, GTKUtils, GTKDialogs, GTKPixbuf, GTKClasses, UCoreClasses; type TFColumns = class(TGTKDialog) TitleFrame: TGTKFrame; TitleLabel: TGTKLabel; TitleEventBox: TGTKEventBox; TitleIcon: TGTKImage; TitleHBox: TGTKHBox; ListView: TGTKListView; ListViewScrolledWindow: TGTKScrolledWindow; ListViewTable: TGTKTable; MoveUpButton, MoveDownButton: TGTKImageButton; procedure FormCreate(Sender: TObject); override; procedure ListViewSelectionChanged(Sender: TObject); procedure MoveUpDownButtonButtonClick(Sender: TObject); procedure ListViewColumnToggled(Sender: TObject; Column: TGTKTreeViewColumn; Item: TGTKListItem); private procedure AddColumnItems; public procedure ApplyColumnList; end; var FColumns: TFColumns; implementation uses ULocale, UCoreUtils, UConfig, UCore; procedure TFColumns.FormCreate(Sender: TObject); var Column: TGTKTreeViewColumn; row_targets: TGtkTargetEntry; begin row_targets.target := PChar('GTK_TREE_MODEL_ROW'); row_targets.flags := GTK_TARGET_SAME_WIDGET; row_targets.info := 1; SetDefaultSize(250, 350); Caption := LANGColumns_Caption; Buttons := [mbOK, mbCancel]; ShowSeparator := False; TitleEventBox := TGTKEventBox.Create(Self); TitleLabel := TGTKLabel.Create(Self); TitleLabel.Caption := Format('%s', [LANGColumns_Title]); TitleLabel.UseMarkup := True; TitleLabel.XAlign := 0; TitleLabel.XPadding := 0; TitleLabel.YPadding := 3; TitleEventBox.ControlState := csPrelight; TitleFrame := TGTKFrame.CreateWithoutLabel(Self); TitleFrame.ShadowType := stShadowOut; TitleIcon := TGTKImage.Create(Self); TitleIcon.SetFromStock('gtk-justify-center', isLargeToolbar); TitleHBox := TGTKHBox.Create(Self); TitleHBox.Homogeneous := False; TitleHBox.AddControlEx(TGTKEventBox.Create(Self), False, False, 5); TitleHBox.AddControlEx(TitleIcon, False, False, 0); TitleHBox.AddControlEx(TitleLabel, True, True, 10); TitleEventBox.AddControl(TitleHBox); TitleFrame.AddControl(TitleEventBox); ClientArea.AddControlEx(TitleFrame, False, True, 0); ListViewTable := TGTKTable.Create(Self); ListViewTable.BorderWidth := 7; ClientArea.AddControlEx(ListViewTable, True, True, 0); ListView := TGTKListView.CreateTyped(Self, False, [lcBoolean, lcText, lcNumber]); { ListView.Reorderable := True; g_object_set(ListView.FWidget, 'reorderable', integer(True), nil); } gtk_tree_view_enable_model_drag_source(GTK_TREE_VIEW(ListView.FWidget), GDK_BUTTON1_MASK, @row_targets, 1, GDK_ACTION_MOVE); gtk_tree_view_enable_model_drag_dest(GTK_TREE_VIEW(ListView.FWidget), @row_targets, 1, GDK_ACTION_MOVE); ListView.RulesHint := True; ListView.ShowHeaders := False; Column := ListView.Columns.AddTyped(ctToggle); Column.AddAttribute('active', 0); Column.Resizable := False; Column.FixedWidth := 20; Column.SizingMode := smFixed; Column.OnToggled := ListViewColumnToggled; Column := ListView.Columns.Add; Column.AddAttribute('text', 1); Column.Resizable := False; Column.SizingMode := smAutoSize; ListViewScrolledWindow := TGTKScrolledWindow.Create(Self); ListViewScrolledWindow.AddControl(ListView); ListViewScrolledWindow.HorizScrollBarPolicy := sbAutomatic; ListViewScrolledWindow.VertScrollBarPolicy := sbAutomatic; ListViewScrolledWindow.ShadowType := stShadowIn; MoveUpButton := TGTKImageButton.CreateWithoutLabel(Self); MoveUpButton.SetFromStock('gtk-go-up', isSmallToolbar); MoveUpButton.Tooltip := LANGColumns_MoveUpButtonTooltip; MoveUpButton.CanFocus := False; MoveDownButton := TGTKImageButton.CreateWithoutLabel(Self); MoveDownButton.SetFromStock('gtk-go-down', isSmallToolbar); MoveDownButton.Tooltip := LANGColumns_MoveDownButtonTooltip; MoveDownButton.CanFocus := False; ListViewTable.AddControlEx(0, 1, 3, 4, ListViewScrolledWindow, [taoExpand, taoFill], [taoExpand, taoFill], 0, 5); ListViewTable.AddControlEx(3, 2, 1, 1, MoveUpButton, [taoShrink, taoFill], [taoShrink], 5, 5); ListViewTable.AddControlEx(3, 3, 1, 1, MoveDownButton, [taoShrink, taoFill], [taoShrink], 5, 5); ListViewTable.AddControlEx(3, 1, 1, 1, TGTKLabel.Create(Self), [taoShrink, taoFill], [taoExpand, taoFill], 0, 2); ListViewTable.AddControlEx(3, 4, 1, 1, TGTKLabel.Create(Self), [taoShrink, taoFill], [taoExpand, taoFill], 0, 2); AddColumnItems; ListView.OnSelectionChanged := ListViewSelectionChanged; MoveUpButton.OnClick := MoveUpDownButtonButtonClick; MoveDownButton.OnClick := MoveUpDownButtonButtonClick; ListView.SetFocus; end; procedure TFColumns.ListViewSelectionChanged(Sender: TObject); begin try MoveUpButton.Enabled := Assigned(ListView.Selected) and (ListView.Selected.Index > 0); MoveDownButton.Enabled := Assigned(ListView.Selected) and (ListView.Selected.Index < ListView.Items.Count - 1); except end; end; procedure TFColumns.MoveUpDownButtonButtonClick(Sender: TObject); var i, Old, New: integer; s: string; b: boolean; begin if Assigned(ListView.Selected) then begin Old := ListView.Selected.Index; if (Sender = MoveUpButton) and (Old > 0) then New := Old - 1 else if (Sender = MoveDownButton) and (Old < ListView.Items.Count - 1) then New := Old + 1 else Exit; b := boolean(ListView.Items[New].AsInteger(0)); ListView.Items[New].SetValue(0, integer(ListView.Items[Old].AsBoolean(0))); // Stupid but works ListView.Items[Old].SetValue(0, integer(b)); s := ListView.Items[New].AsString(1); ListView.Items[New].SetValue(1, ListView.Items[Old].AsString(1)); ListView.Items[Old].SetValue(1, s); i := ListView.Items[New].AsInteger(2); ListView.Items[New].SetValue(2, ListView.Items[Old].AsInteger(2)); ListView.Items[Old].SetValue(2, i); ListView.Items[New].Selected := True; ListView.Items[New].SetCursor(1, False, not Application.GTKVersion_2_2_0_Up, 0.5, 0); end; end; procedure TFColumns.AddColumnItems; var Item: TGTKListItem; i: integer; begin for i := 1 to 10 do begin Item := ListView.Items.Add; Item.SetValue(0, Integer(ConfColumnVisible[i])); Item.SetValue(1, ConfColumnTitlesLong[ConfColumnIDs[i]]); Item.SetValue(2, ConfColumnIDs[i]); end; end; procedure TFColumns.ListViewColumnToggled(Sender: TObject; Column: TGTKTreeViewColumn; Item: TGTKListItem); begin // DebugMsg(['(II) TFColumns.ListViewColumnToggled: Item.AsBoolean(0) = ', Item.AsBoolean(0), ', Item.AsInteger(0) = ', Item.AsInteger(0)]); if Assigned(Item) then Item.SetValue(0, Integer(not Boolean(Item.AsInteger(0)))); end; procedure TFColumns.ApplyColumnList; var i, j: integer; TempIDs, TempArrayI: array[1..ConstNumPanelColumns] of integer; TempArrayB: array[1..ConstNumPanelColumns] of boolean; begin // Copy the old items for i := 1 to ConstNumPanelColumns do begin TempIDs[i] := ConfColumnIDs[i]; TempArrayI[i] := ConfColumnSizes[i]; TempArrayB[i] := ConfColumnVisible[i]; end; // Search for moved columns for i := 0 to ListView.Items.Count - 1 do for j := 1 to ConstNumPanelColumns do if ListView.Items[i].AsInteger(2) = TempIDs[j] then begin ConfColumnIDs[i + 1] := ListView.Items[i].AsInteger(2); ConfColumnSizes[i + 1] := TempArrayI[j]; ConfColumnVisible[i + 1] := boolean(ListView.Items[i].AsInteger(0)); Break; end; end; end. tuxcmd-0.6.70+dfsg/UCopyMove.pas0000644000175000017500000000433511300022643015434 0ustar salvisalvi(* Tux Commander - UCopyMove - Copy and Rename/Move dialog and related funcions Copyright (C) 2004 Tomas Bzatek Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UCopyMove; interface uses SysUtils, Types, Classes, Variants, GTKControls, GTKForms, GTKStdCtrls, GTKExtCtrls, GTKConsts; type TFCopyMove = class(TGTKDialog) Label1: TGTKLabel; Entry: TGTKEntry; Box: TGTKVBox; procedure FormCreate(Sender: TObject); override; procedure FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); private { Private declarations } public { Public declarations } end; var FCopyMove: TFCopyMove; implementation uses ULocale; procedure TFCopyMove.FormCreate(Sender: TObject); begin SetDefaultSize(380, -1); Caption := LANGCopyFilesSC; Buttons := [mbOK, mbCancel]; Box := TGTKVBox.Create(Self); Label1 := TGTKLabel.Create(Self); Label1.Caption := 'Copy 1 file(s) to:'; Label1.XAlign := 0; Label1.XPadding := 0; Label1.SetSizeRequest(-1, 20); Entry := TGTKEntry.Create(Self); Box.AddControlEx(Label1, False, False, 0); Box.AddControlEx(Entry, False, False, 0); Box.BorderWidth := 8; ClientArea.AddControlEx(Box, True, True, 0); OnKeyDown := FormKeyDown; Entry.SetFocus; end; procedure TFCopyMove.FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); begin case Key of GDK_RETURN, GDK_KP_ENTER: ModalResult := mbOK; GDK_ESCAPE: ModalResult := mbCancel; end; end; end. tuxcmd-0.6.70+dfsg/Makefile0000644000175000017500000001340411300022643014476 0ustar salvisalvi# Makefile -- Tux Commander build system # # Copyright (C) 2008 Tomas Bzatek # Check for updates on tuxcmd.sourceforge.net # # 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 or # 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # Specify paths DEFAULT_DESTDIR=/usr # following paths are optional; needed only for Kylix compilation KYLIXPREFIX=/usr/local/kylix3 GTK2FORPASCAL_LIBDIR=./gtk2 ### End of user writeable section DESTDIR=$(DEFAULT_DESTDIR) INSTALL=install CLEAN_OBJS=*.o *.a *.d *.s *.ppu *.dcu *.rst *~ *.~* core tuxcmd fpcver.inc LIB_SUFFIX=`if test \`uname -m\` = x86_64 -o \`uname -m\` = ppc64; then echo 64; fi` # -Ct must be disabled here, causes unneeded crashes # -CR and -Cr must be disabled here, causes range check errors with gnome-power-manager # -Cg generates internal compiler errors on i386 # -XX prevents linking errors of unresolved and unused symbols # "-k-z noexecstack" (with quotes as a single parameter) avoids marking stack as executable, allowing to work correctly with SELinux in Enforcing mode CFLAGS= -vweh -Un -Ci -Co -XX "-k-z noexecstack" EXTRA_CFLAGS= -O3 tuxcmd:: echo "const" > fpcver.inc echo " ConstFPCVersionString = '`fpc -iW`';" >> fpcver.inc echo " ConstFPCDateString = '`fpc -iD`';" >> fpcver.inc echo " ConstFPCCompilerOSString = '`fpc -iSO`';" >> fpcver.inc echo " ConstFPCCompilerHostProcessorString = '`fpc -iSP`';" >> fpcver.inc echo " ConstFPCTargetOSString = '`fpc -iTO`';" >> fpcver.inc echo " ConstFPCTargetProcessorString = '`fpc -iTP`';" >> fpcver.inc fpc -Mdelphi $(CFLAGS) $(EXTRA_CFLAGS) \ -Fu./libgtk_kylix -Fu./translations -Fu./vfs \ tuxcmd.dpr debug: EXTRA_CFLAGS = -g -gl -gv -O- debug: tuxcmd final_debug: EXTRA_CFLAGS = -g -gl -gv -O3 final_debug: tuxcmd kylix:: $(KYLIXPREFIX)/bin/dcc -DKYLIX -V -H -W -$$X+ -$$I+ -$$D+ -$$I+ -$$L+ -$$M+ -$$Q+ -$$R+ -$$W+ -$$Y+ \ -U$(GTK2FORPASCAL_LIBDIR)/glib -U$(GTK2FORPASCAL_LIBDIR)/pango \ -U$(GTK2FORPASCAL_LIBDIR)/atk -U$(GTK2FORPASCAL_LIBDIR)/gtk+/gtk \ -U$(GTK2FORPASCAL_LIBDIR)/gtk+/gdk -U$(GTK2FORPASCAL_LIBDIR)/gtk+/gdk-pixbuf \ -U$(KYLIXPREFIX)/lib \ -U./libgtk_kylix -U./translations -U./vfs -U./compat ./tuxcmd.dpr modules:: (cd "vfs" && $(MAKE) `echo $@ | sed s/-recursive//` ) || exit 1; modules_install: (cd "vfs" && $(MAKE) install "$(DESTDIR)") || exit 1; clean cleandir: rm -f $(CLEAN_OBJS) ( cd vfs && rm -f $(CLEAN_OBJS) ) ( cd libgtk_kylix && rm -f $(CLEAN_OBJS) ) ( cd translations && rm -f $(CLEAN_OBJS) ) ( cd compat && rm -f $(CLEAN_OBJS) ) gtk_update_icon_cache = gtk-update-icon-cache -f -t $(DESTDIR)/share/icons/hicolor tuxcmd_install: $(INSTALL) -d $(DESTDIR)/bin $(INSTALL) -m 755 tuxcmd $(DESTDIR)/bin $(INSTALL) -d $(DESTDIR)/lib$(LIB_SUFFIX)/tuxcmd $(INSTALL) -d $(DESTDIR)/share/doc/tuxcmd $(INSTALL) -m 644 COPYING $(DESTDIR)/share/doc/tuxcmd $(INSTALL) -m 644 README $(DESTDIR)/share/doc/tuxcmd desktop-file-install -m 644 --dir $(DESTDIR)/share/applications data/tuxcmd.desktop $(INSTALL) -d $(DESTDIR)/share/icons/hicolor/16x16/apps $(INSTALL) -m 644 data/icons/16x16/tuxcmd.png $(DESTDIR)/share/icons/hicolor/16x16/apps $(INSTALL) -d $(DESTDIR)/share/icons/hicolor/24x24/apps $(INSTALL) -m 644 data/icons/24x24/tuxcmd.png $(DESTDIR)/share/icons/hicolor/24x24/apps $(INSTALL) -d $(DESTDIR)/share/icons/hicolor/32x32/apps $(INSTALL) -m 644 data/icons/32x32/tuxcmd.png $(DESTDIR)/share/icons/hicolor/32x32/apps $(INSTALL) -d $(DESTDIR)/share/icons/hicolor/48x48/apps $(INSTALL) -m 644 data/icons/48x48/tuxcmd.png $(DESTDIR)/share/icons/hicolor/48x48/apps $(INSTALL) -d $(DESTDIR)/share/icons/hicolor/64x64/apps $(INSTALL) -m 644 data/icons/64x64/tuxcmd.png $(DESTDIR)/share/icons/hicolor/64x64/apps $(INSTALL) -d $(DESTDIR)/share/icons/hicolor/128x128/apps $(INSTALL) -m 644 data/icons/128x128/tuxcmd.png $(DESTDIR)/share/icons/hicolor/128x128/apps $(INSTALL) -d $(DESTDIR)/share/icons/hicolor/scalable/apps $(INSTALL) -m 644 data/icons/scalable/tuxcmd.svg $(DESTDIR)/share/icons/hicolor/scalable/apps @-if test "$(DESTDIR)" = "$(DEFAULT_DESTDIR)"; then \ echo "Updating Gtk icon cache."; \ $(gtk_update_icon_cache); \ else \ echo "*** Icon cache not updated. After install, run this:"; \ echo "*** $(gtk_update_icon_cache)"; \ fi uninstall: if [ -f $(DESTDIR)/bin/tuxcmd ]; then rm -f $(DESTDIR)/bin/tuxcmd; fi; if [ -d $(DESTDIR)/share/doc/tuxcmd ]; then rm -Rf $(DESTDIR)/share/doc/tuxcmd; fi; if [ -d $(DESTDIR)/lib$(LIB_SUFFIX)/tuxcmd ]; then rm -Rf $(DESTDIR)/lib$(LIB_SUFFIX)/tuxcmd; fi; help:: @echo "Tux Commander build system" @echo @echo "Following targets are available:" @echo @echo " tuxcmd Build tuxcmd with FreePascal [default]" @echo " kylix Build tuxcmd with Kylix (needs paths setup in Makefile)" @echo " install Install tuxcmd to the system (DESTDIR overrides default path)" @echo " uninstall Remove tuxcmd from the system (DESTDIR overrides default path)" @echo " clean Cleanup the build structure" @echo " modules Build modules (in vfs/)" @echo " modules_install Install modules to the system" @echo @exit 0 install: tuxcmd_install all: tuxcmd tuxcmd-0.6.70+dfsg/compat/0000755000175000017500000000000011300557773014340 5ustar salvisalvituxcmd-0.6.70+dfsg/UProperties.pas0000644000175000017500000001104011300022643016016 0ustar salvisalvi(* Tux Commander - UProeprties - File properties dialog Copyright (C) 2006 Tomas Bzatek Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UProperties; interface uses glib2, gtk2, pango, SysUtils, Types, Classes, Variants, GTKControls, GTKForms, GTKStdCtrls, GTKExtCtrls, GTKConsts, GTKView, GTKUtils, GTKDialogs, GTKPixbuf, GTKClasses, GTKMenus, UCoreClasses, UGnome; type TFProperties = class(TGTKDialog) TitleFrame, ListFontFrame: TGTKFrame; TitleLabel: TGTKLabel; TitleEventBox: TGTKEventBox; TitleIcon: TGTKImage; TitleHBox: TGTKHBox; Notebook: TGTKNotebook; BasicPage, PermissionsPage, OpenWithPage: TGTKVBox; Table2: TGTKTable; NameLabel: TGTKLabel; NameEdit: TGTKEntry; procedure FormCreate(Sender: TObject); override; procedure FormDestroy(Sender: TObject); procedure FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); public DisplayFileName: string; end; var FProperties: TFProperties; implementation uses ULocale, UFileAssoc, UCoreUtils, UConfig; procedure TFProperties.FormCreate(Sender: TObject); var i: integer; begin SetDefaultSize(450, 500); Caption := Format('%s Properties', [DisplayFileName]); Buttons := [mbOK, mbCancel]; ShowSeparator := False; TitleEventBox := TGTKEventBox.Create(Self); TitleLabel := TGTKLabel.Create(Self); TitleLabel.Caption := Format('%s', [Format('%s Properties', [DisplayFileName])]); TitleLabel.UseMarkup := True; TitleLabel.XAlign := 0; TitleLabel.XPadding := 0; TitleLabel.YPadding := 3; TitleEventBox.ControlState := csPrelight; TitleFrame := TGTKFrame.CreateWithoutLabel(Self); TitleFrame.ShadowType := stShadowOut; TitleIcon := TGTKImage.Create(Self); TitleIcon.SetFromStock('gtk-properties', isLargeToolbar); TitleHBox := TGTKHBox.Create(Self); TitleHBox.Homogeneous := False; TitleHBox.AddControlEx(TGTKVBox.Create(Self), False, False, 5); TitleHBox.AddControlEx(TitleIcon, False, False, 0); TitleHBox.AddControlEx(TitleLabel, True, True, 10); TitleEventBox.AddControl(TitleHBox); TitleFrame.AddControl(TitleEventBox); ClientArea.AddControlEx(TitleFrame, False, True, 0); Notebook := TGTKNotebook.Create(Self); Notebook.BorderWidth := 10; ClientArea.AddControlEx(Notebook, True, True, 0); BasicPage := TGTKVBox.Create(Notebook); Notebook.AppendPage(BasicPage, 'Basic'); PermissionsPage := TGTKVBox.Create(Notebook); Notebook.AppendPage(PermissionsPage, 'Permissions'); OpenWithPage := TGTKVBox.Create(Notebook); Notebook.AppendPage(OpenWithPage, 'Open With'); // ********* PAGE Basic BasicPage.AddControlEx(TGTKVBox.Create(Self), False, False, 5); Table2 := TGTKTable.Create(Self); Table2.SetRowColCount(8, 5); BasicPage.AddControlEx(Table2, False, False, 0); NameLabel := TGTKLabel.Create(Self); NameLabel.Caption := Format('%s', ['_Name:']); NameLabel.XAlign := 0; NameLabel.UseMarkup := True; NameEdit := TGTKEntry.Create(Self); NameLabel.FocusControl := NameEdit; NameLabel.UseUnderline := True; Table2.AddControlEx(0, 0, 1, 1, NameLabel, [taoShrink, taoFill], [taoShrink], 2, 5); Table2.AddControlEx(1, 0, 1, 1, NameEdit, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 2, 5); // ********* PAGE Permissions // ********* PAGE Applications // ****************** OnKeyDown := FormKeyDown; OnDestroy := FormDestroy; end; procedure TFProperties.FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); begin if Key = GDK_ESCAPE then ModalResult := mbCancel; end; procedure TFProperties.FormDestroy(Sender: TObject); begin end; (********************************************************************************************************************************) end. tuxcmd-0.6.70+dfsg/UProgress.pas0000644000175000017500000001106111300022643015471 0ustar salvisalvi(* Tux Commander - UProgress - Progress dialog controlling various operations and related funcions Copyright (C) 2004 Tomas Bzatek Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UProgress; interface uses SysUtils, Types, Classes, Variants, GTKControls, GTKForms, GTKStdCtrls, GTKExtCtrls, GTKConsts, GTKView, UEngines; type TFProgress = class(TGTKDialog) Label1, Label2, Label3: TGTKLabel; {VBox,} Space, Space2, BarBox, LabelBox: TGTKVBox; HBox, Bar1HBox, Bar2HBox: TGTKHBox; ProgressBar, ProgressBar2: TGTKProgressBar; CancelButton: TGTKButton; procedure FormCreate(Sender: TObject); override; procedure FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure CancelButtonClick(Sender: TObject); public Cancelled: boolean; FTwoBars: boolean; procedure SetNumBars(TwoBars: boolean); end; var FProgress: TFProgress; implementation uses ULocale; procedure TFProgress.FormCreate(Sender: TObject); begin WindowPosition := wpCenter; Cancelled := False; Buttons := []; ShowSeparator := False; ActionArea.SetSizeRequest(0, 4); Caption := LANGProgress; CancelButton := TGTKButton.Create(Self); CancelButton.Caption := LANGCancel; CancelButton.SetSizeRequest(90, -1); Label1 := TGTKLabel.Create(Self); Label1.Caption := LANGDelete; Label2 := TGTKLabel.Create(Self); Label3 := TGTKLabel.Create(Self); Label2.Caption := LANGPreparingList; ProgressBar := TGTKProgressBar.Create(Self); ProgressBar.SetSizeRequest(420, 23); ProgressBar2 := TGTKProgressBar.Create(Self); ProgressBar2.SetSizeRequest(420, 23); Bar1HBox := TGTKHBox.Create(Self); Bar1HBox.AddControlEx(ProgressBar, False, False, 0); Bar2HBox := TGTKHBox.Create(Self); Bar2HBox.AddControlEx(ProgressBar2, False, False, 0); BarBox := TGTKVBox.Create(Self); HBox := TGTKHBox.Create(Self); HBox.AddControlEx(CancelButton, False, False, 0); Space := TGTKVBox.Create(Self); Space.SetSizeRequest(-1, 7); Space2 := TGTKVBox.Create(Self); Space2.SetSizeRequest(-1, 5); LabelBox := TGTKVBox.Create(Self); // VBox := TGTKVBox.Create(Self); ClientArea.AddControlEx(LabelBox, True, True, 5); ClientArea.AddControlEx(BarBox, False, False, 10); ClientArea.AddControlEx(HBox, False, False, 0); // ClientArea.AddControlEx(Space, False, False, 0); // ClientArea.AddControlEx(VBox, True, True, 0); // AddControl(VBox); OnKeyDown := FormKeyDown; OnCloseQuery := FormCloseQuery; CancelButton.OnClick := CancelButtonClick; CancelButton.Default := True; end; procedure TFProgress.FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); begin if Key = GDK_ESCAPE then begin Accept := False; CancelButtonClick(Sender); end; end; procedure TFProgress.CancelButtonClick(Sender: TObject); begin Cancelled := True; end; procedure TFProgress.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin CancelButtonClick(Sender); CanClose := False; end; procedure TFProgress.SetNumBars(TwoBars: boolean); begin FTwoBars := TwoBars; if not TwoBars then begin LabelBox.AddControlEx(Label1, True, True, 5); LabelBox.AddControlEx(Label2, True, True, 0); BarBox.AddControlEx(Bar1HBox, False, False, 0); SetDefaultSize(480, -1); SetSizeRequest(480, -1); end else begin LabelBox.AddControlEx(Label1, True, True, 0); LabelBox.AddControlEx(Label2, True, True, 0); LabelBox.AddControlEx(Label3, True, True, 0); Label2.XAlign := 0; Label2.XPadding := 20; Label3.XAlign := 0; Label3.XPadding := 20; BarBox.AddControlEx(Bar1HBox, False, False, 0); BarBox.AddControlEx(Space2, False, False, 0); BarBox.AddControlEx(Bar2HBox, False, False, 0); SetDefaultSize(480, -1); SetSizeRequest(480, -1); end; end; end. tuxcmd-0.6.70+dfsg/UEngines.pas0000644000175000017500000013013611300022643015262 0ustar salvisalvi(* Tux Commander - UEngines - Basic engines (abstract, local) Copyright (C) 2007 Tomas Bzatek Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UEngines; interface uses glib2, gdk2, Classes, ULibc; const ERRException = -1; ERRNoAccess = -2; ERRCreateLink = -3; ERRCopyMove = -4; ERRRemove = -5; ERRMkDIr = -6; omRead = 0; omWrite = 1; omAppend = 2; ConfDefaultDirCreationMask = 755; type PDataItem = ^TDataItem; TDataItem = record FName: PChar; // ANSI FDisplayName: PChar; // always-valid UTF-8 LnkPointTo: PChar; // ANSI ColumnData: array[0..9] of PChar; Size: Int64; UpDir: boolean; Mode, UID, GID: Cardinal; IsDir, IsLnk, IsBlk, IsChr, IsFIFO, IsSock, Selected, IsDotFile: boolean; ModifyTime: time_t; Icon: Pointer; ItemColor: PGdkColor; end; PDataItemSL = ^TDataItemSL; TDataItemSL = record Stage1: boolean; FName: PChar; // ANSI FDisplayName: PChar; // always-valid UTF-8 LnkPointTo: PChar; // ANSI ADestination: PChar; Size, PackedSize: Int64; Mode, UID, GID: Cardinal; IsDir, IsLnk, ForceMove, IsOnRO, IsExecutable: boolean; ModifyTime: time_t; Level: word; atime, mtime: Int64; end; TEngineProgressFunc = function (Sender: Pointer; BytesDone: Int64): boolean; cdecl; // Return False to break the copy process TEngineErrorFunc = function (Sender: Pointer; ErrorType, ErrorNum: integer; FileName: string): boolean; cdecl; // Return TEngineFileDes = pointer; TPanelEngine = class private BreakProcessingType: integer; public ParentEngine: TPanelEngine; LastHighlightItem, SavePath: string; constructor Create; destructor Destroy; override; function GetListing(var List: TList; const AddDotFiles: boolean): integer; overload; virtual; abstract; // Returns errorcode function GetListing(var List: TList; const AddDotFiles: boolean; APath: string): integer; overload; virtual; abstract; // Returns errorcode function ChangeDir(const NewPath: string): integer; virtual; abstract; // Returns errorcode function ExplicitChDir(const NewPath: string): integer; virtual; abstract; // Returns errorcode function GetFileSystemSize: Int64; overload; virtual; abstract; function GetFileSystemSize(const APath: string): Int64; overload; virtual; abstract; function GetFileSystemFree: Int64; overload; virtual; abstract; function GetFileSystemFree(const APath: string): Int64; overload; virtual; abstract; function MakeDir(const NewDir: string): integer; virtual; abstract; // Returns errorcode function GetDirSize(APath: string): Int64; virtual; abstract; // Returns size or 0 if fails function Remove(APath: string): integer; virtual; abstract; // Returns errorcode procedure FillDirFiles(APath: string; List: TList; ALevel: word); virtual; abstract; function GetFileInfoSL(APath: string): PDataItemSL; virtual; abstract; function FileExists(const FileName: string; const Use_lstat: boolean = False): Boolean; virtual; abstract; function DirectoryExists(const FileName: string; const Use_lstat: boolean = False): Boolean; virtual; abstract; function MakeSymLink(const NewFileName, PointTo: string): integer; virtual; abstract; // Returns errorcode function Chmod(const FileName: string; const Mode: integer): integer; virtual; abstract; // Returns errorcode function Chown(const FileName: string; const UID, GID: integer): integer; virtual; abstract; // Returns errorcode procedure BreakProcessing(ProcessingKind: integer); virtual; abstract; // 1 = GetDirSize, 2 = GetListing function RenameFile(SourceFile, DestFile: string): integer; virtual; abstract; // Returns errorcode function ChangeTimes(APath: string; mtime, atime: Int64): integer; virtual; abstract; // Returns errorcode procedure GetFileSystemInfo(const APath: string; var FSSize, FSFree: Int64; var FSName: string); virtual; abstract; function OpenFile(const APath: string; Mode: integer; var Error: integer): TEngineFileDes; virtual; abstract; // Returns filedescriptor function ReadFile(const FileDescriptor: TEngineFileDes; Buffer: Pointer; ABlockSize: integer; var Error: integer): integer; virtual; abstract; // Returns number of bytes read function WriteFile(const FileDescriptor: TEngineFileDes; Buffer: Pointer; BytesCount: integer; var Error: integer): integer; virtual; abstract; // Returns number of bytes written function CloseFile(const FileDescriptor: TEngineFileDes): integer; virtual; abstract; // Returns errorcode function FileSeek(const FileDescriptor: TEngineFileDes; const AbsoluteOffset: Int64; var Error: integer): Int64; virtual; abstract; // Returns errorcode function IsOnROMedium(const FileName: string): boolean; virtual; abstract; function FileCanRun(const FileName: string): boolean; virtual; abstract; function GetPath: string; virtual; abstract; procedure SetPath(Value: string); virtual; abstract; // Copy-related routines function GetBlockSize: guint32; virtual; abstract; procedure SetBlockSize(Value: guint32); virtual; abstract; function CopyFileIn(Sender: Pointer; SourceFile, DestFile: string; ProgressFunc: TEngineProgressFunc; ErrorFunc: TEngineErrorFunc; Append: boolean): boolean; virtual; abstract; // returns True if file is successfully copied function CopyFileOut(Sender: Pointer; SourceFile, DestFile: string; ProgressFunc: TEngineProgressFunc; ErrorFunc: TEngineErrorFunc; Append: boolean): boolean; virtual; abstract; // returns True if file is successfully copied function IsOnSameFS(const Path1, Path2: string): boolean; virtual; abstract; function TwoSameFiles(const Path1, Path2: string): boolean; virtual; abstract; published property Path: string read GetPath write SetPath; property BlockSize: guint32 read GetBlockSize write SetBlockSize; end; TLocalTreeEngine = class(TPanelEngine) private FPath: string; FBlockSize: guint32; public constructor Create; destructor Destroy; override; function GetListing(var List: TList; const AddDotFiles: boolean): integer; override; function GetListing(var List: TList; const AddDotFiles: boolean; APath: string): integer; override; function ChangeDir(const NewPath: string): integer; override; function ExplicitChDir(const NewPath: string): integer; override; function GetFileSystemSize: Int64; override; function GetFileSystemSize(const APath: string): Int64; override; function GetFileSystemFree: Int64; override; function GetFileSystemFree(const APath: string): Int64; override; function MakeDir(const NewDir: string): integer; override; function GetDirSize(APath: string): Int64; override; function Remove(APath: string): integer; override; procedure FillDirFiles(APath: string; List: TList; ALevel: word); override; function GetFileInfoSL(APath: string): PDataItemSL; override; function FileExists(const FileName: string; const Use_lstat: boolean = False): Boolean; override; function DirectoryExists(const FileName: string; const Use_lstat: boolean = False): Boolean; override; function MakeSymLink(const NewFileName, PointTo: string): integer; override; function Chmod(const FileName: string; const Mode: integer): integer; override; function Chown(const FileName: string; const UID, GID: integer): integer; override; procedure BreakProcessing(ProcessingKind: integer); override; function RenameFile(SourceFile, DestFile: string): integer; override; function ChangeTimes(APath: string; mtime, atime: Int64): integer; override; procedure GetFileSystemInfo(const APath: string; var FSSize, FSFree: Int64; var FSName: string); override; function OpenFile(const APath: string; Mode: integer; var Error: integer): TEngineFileDes; override; function ReadFile(const FileDescriptor: TEngineFileDes; Buffer: Pointer; ABlockSize: integer; var Error: integer): integer; override; function WriteFile(const FileDescriptor: TEngineFileDes; Buffer: Pointer; BytesCount: integer; var Error: integer): integer; override; function CloseFile(const FileDescriptor: TEngineFileDes): integer; override; function FileSeek(const FileDescriptor: TEngineFileDes; const AbsoluteOffset: Int64; var Error: integer): Int64; override; function IsOnROMedium(const FileName: string): boolean; override; function FileCanRun(const FileName: string): boolean; override; function GetPath: string; override; procedure SetPath(Value: string); override; function GetBlockSize: guint32; override; procedure SetBlockSize(Value: guint32); override; function CopyFileIn(Sender: Pointer; SourceFile, DestFile: string; ProgressFunc: TEngineProgressFunc; ErrorFunc: TEngineErrorFunc; Append: boolean): boolean; override; function CopyFileOut(Sender: Pointer; SourceFile, DestFile: string; ProgressFunc: TEngineProgressFunc; ErrorFunc: TEngineErrorFunc; Append: boolean): boolean; override; function CopyFile(Sender: Pointer; SourceFile, DestFile: string; ProgressFunc: TEngineProgressFunc; ErrorFunc: TEngineErrorFunc; Append: boolean): boolean; function IsOnSameFS(const Path1, Path2: string): boolean; override; function TwoSameFiles(const Path1, Path2: string): boolean; override; published property Path; property BlockSize; end; procedure FreeDataItem(DataItem: PDataItemSL); overload; procedure FreeDataItem(DataItem: PDataItem); overload; implementation uses SysUtils, UCoreUtils, UGnome; (********************************************************************************************************************************) constructor TPanelEngine.Create; begin inherited Create; BreakProcessingType := 0; ParentEngine := nil; // By default it is a top-level engine (local) LastHighlightItem := ''; end; destructor TPanelEngine.Destroy; begin inherited Destroy; end; (********************************************************************************************************************************) constructor TLocalTreeEngine.Create; begin inherited Create; FPath := '/'; FBlockSize := 65536; end; destructor TLocalTreeEngine.Destroy; begin inherited Destroy; end; function TLocalTreeEngine.GetPath: string; begin Result := FPath; end; procedure TLocalTreeEngine.SetPath(Value: string); begin if Value <> FPath then begin FPath := Value; end; end; function TLocalTreeEngine.GetBlockSize: guint32; begin Result := FBlockSize; end; procedure TLocalTreeEngine.SetBlockSize(Value: guint32); begin if Value <> FBlockSize then begin FBlockSize := Value; end; end; function TLocalTreeEngine.GetListing(var List: TList; const AddDotFiles: boolean; APath: string): integer; var Item : PDataItem; Handle : PDIR; DirEnt : PDirent64; Buf : PChar; // StatBuf : TStatBuf64; StatBuf : Pstat64; i: integer; LnkBuf : array[0..1000] of char; begin Result := 0; try APath := IncludeTrailingPathDelimiter(APath); if libc_chdir(PChar(APath)) <> 0 then begin Result := errno; DebugMsg(['*** TLocalTreeEngine.GetListing(APath=', APath, '): chdir error: ', strerror(Result)]); Exit; end; Handle := opendir(PChar(APath)); if not Assigned(Handle) then begin DebugMsg(['*** TLocalTreeEngine.GetListing(APath=', APath, '): opendir() handle == NULL: ', strerror(errno)]); Result := ERRNoAccess; Exit; end; repeat // DebugMsg(['x1']); DirEnt := readdir64(Handle); // DebugMsg(['x2']); if Assigned(DirEnt) and Assigned(PChar(@DirEnt^.d_name[0])) then begin // DebugMsg(['x3']); Buf := Pchar(@DirEnt^.d_name[0]); // DebugMsg(['x4']); if (Buf <> '.') and (Buf <> '..') and (DirEnt^.d_name[0] <> #0) and (AddDotFiles or (Length(Buf) = 1) or ((Length(Buf) > 1) and (not ((Buf[0] = '.') and (Buf[1] <> '.'))))) then begin // DebugMsg(['x5']); Item := malloc(SizeOf(TDataItem)); // DebugMsg(['x6']); memset(Item, 0, SizeOf(TDataItem)); // DebugMsg(['x7']); with Item^ do begin // DebugMsg(['x8']); FName := nil; FDisplayName := nil; LnkPointTo := nil; for i := 0 to Length(ColumnData) - 1 do ColumnData[i] := nil; FName := strdup(Buf); FDisplayName := StrToUTF8(Buf); // FDisplayName := strdup(Buf); // DebugMsg(['x']); StatBuf := malloc(sizeof(Tstat64)); memset(StatBuf, 0, sizeof(Tstat64)); // DebugMsg(['(II) TLocalTreeEngine.GetListing(APath=', APath, '): lstat(Buf = ', Buf, ')']); if lstat64(Buf, StatBuf) <> 0 then begin DebugMsg(['*** TLocalTreeEngine.GetListing(APath=', APath, '): Error reading file via lstat64: ', strerror(errno)]); Continue; end; Mode := StatBuf^.st_mode; IsDotFile := (Length(Buf) > 1) and (Buf[0] = '.') and (Buf[1] <> '.'); IsDir := __S_ISTYPE(StatBuf^.st_mode, __S_IFDIR); IsLnk := __S_ISTYPE(StatBuf^.st_mode, __S_IFLNK); IsBlk := __S_ISTYPE(StatBuf^.st_mode, __S_IFBLK); IsChr := __S_ISTYPE(StatBuf^.st_mode, __S_IFCHR); IsFIFO := __S_ISTYPE(StatBuf^.st_mode, __S_IFIFO); IsSock := __S_ISTYPE(StatBuf^.st_mode, __S_IFSOCK); ModifyTime := StatBuf^.st_mtime; if StatBuf^.st_uid = 4294967295 then UID := getuid else UID := StatBuf^.st_uid; if StatBuf^.st_gid = 4294967295 then GID := getgid else GID := StatBuf^.st_gid; UpDir := False; Selected := False; // DebugMsg(['(II) TLocalTreeEngine.GetListing(APath=', APath, '): freeing StatBuf...']); libc_free(StatBuf); // DebugMsg([' done.']); if IsLnk then begin // DebugMsg(['aaaax']); i := readlink(PChar(APath + String(Buf)), LnkBuf, SizeOf(LnkBuf)); if i > 0 then begin LnkBuf[i] := #0; LnkPointTo := malloc(i + 1); memset(LnkPointTo, 0, i + 1); LnkPointTo := strncpy(LnkPointTo, @LnkBuf[0], i); end; StatBuf := malloc(sizeof(Tstat64)); memset(StatBuf, 0, sizeof(Tstat64)); if stat64(Buf, StatBuf) = 0 then begin IsDir := __S_ISTYPE(StatBuf^.st_mode, __S_IFDIR); Mode := StatBuf^.st_mode; end; // DebugMsg(['(II) TLocalTreeEngine.GetListing(APath=', APath, '): freeing StatBuf...']); libc_free(StatBuf); // DebugMsg([' done.']); end; // DebugMsg(['xdffffffff']); if not IsDir then Size := StatBuf^.st_size else Size := -1; // DebugMsg(['xxsdfsf']); List.Add(Item); // DebugMsg(['x1123']); end; end; end; until DirEnt = nil; closedir(Handle); except on E: Exception do begin Result := ERRException; DebugMsg(['*** TLocalTreeEngine.GetListing(APath=', APath, ') -Exception: ', E.Message]); Exit; end; end; end; function TLocalTreeEngine.GetListing(var List: TList; const AddDotFiles: boolean): integer; begin Result := GetListing(List, AddDotFiles, FPath); end; function TLocalTreeEngine.ChangeDir(const NewPath: string): integer; var APath: string; Handle : PDIR; begin try APath := IncludeTrailingPathDelimiter(NewPath); if libc_chdir(PChar(APath)) <> 0 then begin Result := errno; Exit; end; Handle := opendir(PChar(APath)); if not Assigned(Handle) then begin Result := ERRNoAccess; Exit; end; { if not Assigned(readdir(Handle)) then begin Result := ERRNoAccess; Exit; end; } if closedir(Handle) <> 0 then begin Result := ERRNoAccess; Exit; end; Result := 0; except on E: Exception do begin Result := ERRException; DebugMsg(['*** TLocalTreeEngine.ChangeDir(APath=', APath, ') -Exception: ', E.Message]); Exit; end; end; end; (********************************************************************************************************************************) function TLocalTreeEngine.ExplicitChDir(const NewPath: string): integer; begin Result := libc_chdir(PChar(NewPath)); if Result <> 0 then Result := errno; end; (********************************************************************************************************************************) function TLocalTreeEngine.GetFileSystemSize(const APath: string): Int64; var Stat: Pstatfs64; begin Result := 0; try Stat := malloc(sizeof(Tstatfs64)); memset(Stat, 0, sizeof(Tstatfs64)); if statfs64(PChar(APath), Stat) <> 0 then Exit; Result := Stat^.f_bsize * Stat^.f_blocks; libc_free(Stat); except on E: Exception do DebugMsg(['*** TLocalTreeEngine.GetFileSystemSize(APath=', APath, ') -Exception: ', E.Message]); end; end; function TLocalTreeEngine.GetFileSystemSize: Int64; begin Result := GetFileSystemSize(FPath); end; (********************************************************************************************************************************) function TLocalTreeEngine.GetFileSystemFree(const APath: string): Int64; var Stat: Pstatfs64; begin Result := 0; try Stat := malloc(sizeof(Tstatfs64)); memset(Stat, 0, sizeof(Tstatfs64)); if statfs64(PChar(APath), Stat) <> 0 then Exit; Result := Stat^.f_bsize * Stat^.f_bavail; libc_free(Stat); except on E: Exception do DebugMsg(['*** TLocalTreeEngine.GetFileSystemFree(APath=', APath, ') -Exception: ', E.Message]); end; end; function TLocalTreeEngine.GetFileSystemFree: Int64; begin Result := GetFileSystemFree(FPath); end; (********************************************************************************************************************************) function TLocalTreeEngine.MakeDir(const NewDir: string): integer; begin // DebugMsg(['(II) TLocalTreeEngine.MakeDir: begin']); Result := __mkdir(PChar(NewDir), OctalToAttr(ConfDefaultDirCreationMask)); // DebugMsg(['(II) TLocalTreeEngine.MakeDir: Result = ', Result]); // if Result <> 0 then Result := errno; if Result <> 0 then try if Self.DirectoryExists(NewDir) or (g_mkdir_with_parents(PChar(NewDir), OctalToAttr(ConfDefaultDirCreationMask)) <> 0) {ForceDirectories(NewDir))} then Result := errno else Result := 0; except Result := -1; DebugMsg(['(II) TLocalTreeEngine.MakeDir: Exception']); end; // DebugMsg(['(II) TLocalTreeEngine.MakeDir: end']); end; (********************************************************************************************************************************) function TLocalTreeEngine.GetDirSize(APath: string): Int64; function InternalGetDirSize(APath: string): Int64; var Handle : PDIR; DirEnt : PDirent64; StatBuf : Pstat64; begin Result := 0; try if BreakProcessingType = 1 then Exit; APath := IncludeTrailingPathDelimiter(APath); if libc_chdir(PChar(APath)) <> 0 then begin Result := 0; Exit; end; Handle := OpenDir(PChar(APath)); if not Assigned(Handle) then begin Result := 0; Exit; end; repeat DirEnt := readdir64(Handle); if Assigned(DirEnt) and Assigned(PChar(@DirEnt^.d_name[0])) and (PChar(@DirEnt^.d_name[0]) <> '.') and (PChar(@DirEnt^.d_name[0]) <> '..') and (DirEnt^.d_name[0] <> #0) then begin StatBuf := malloc(sizeof(Tstat64)); memset(StatBuf, 0, sizeof(Tstat64)); if lstat64(PChar(@DirEnt^.d_name[0]), StatBuf) <> 0 then Continue; if __S_ISTYPE(StatBuf^.st_mode, __S_IFDIR) then begin Inc(Result, InternalGetDirSize(APath + String(PChar(@DirEnt^.d_name[0])))); libc_chdir(PChar(APath)); end else Inc(Result, StatBuf^.st_size); libc_free(StatBuf); end; until DirEnt = nil; closedir(Handle); except on E: Exception do begin Result := 0; DebugMsg(['*** TLocalTreeEngine.GetDirSize(APath=', APath, ') -Exception: ', E.Message]); end; end; end; begin try BreakProcessingType := 0; Result := InternalGetDirSize(APath); finally BreakProcessingType := 0; end; end; (********************************************************************************************************************************) function TLocalTreeEngine.Remove(APath: string): integer; begin APath := ExcludeTrailingPathDelimiter(APath); Result := libc_remove(PChar(APath)); if Result <> 0 then Result := errno; end; (********************************************************************************************************************************) procedure TLocalTreeEngine.FillDirFiles(APath: string; List: TList; ALevel: word); var Handle : PDIR; DirEnt : PDirent64; StatBuf_global : Pstat64; Item: PDataItemSL; i: integer; LnkBuf : array[0..1000] of char; FilesList: TList; procedure AddEntry(FPath: string; AddCurrDirStage, AStage1: boolean); var StatBuf_local : Pstat64; begin // DebugMsg(['TLocalTreeEngine.FillDirFiles: addding "', FPath, '"']); FPath := ExcludeTrailingPathDelimiter(FPath); StatBuf_local := malloc(sizeof(Tstat64)); memset(StatBuf_local, 0, sizeof(Tstat64)); if lstat64(PChar(FPath), StatBuf_local) <> 0 then begin DebugMsg(['*** TLocalTreeEngine.FillDirFiles: Error reading file stat AddEntry("', FPath, '"): ', strerror(errno)]); Exit; end; Item := malloc(SizeOf(TDataItemSL)); memset(Item, 0, SizeOf(TDataItemSL)); with Item^ do begin FName := nil; FDisplayName := nil; LnkPointTo := nil; ADestination := nil; Stage1 := AStage1; FName := strdup(PChar(FPath)); FDisplayName := StrToUTF8(PChar(FPath)); Size := StatBuf_local^.st_size; PackedSize := -1; Mode := StatBuf_local^.st_mode; IsDir := __S_ISTYPE(StatBuf_local^.st_mode, __S_IFDIR); IsLnk := __S_ISTYPE(StatBuf_local^.st_mode, __S_IFLNK); IsExecutable := AddCurrDirStage or (StatBuf_local^.st_mode and S_IXUSR = S_IXUSR); IsOnRO := IsOnROMedium(FPath); ForceMove := False; if StatBuf_local^.st_uid = 4294967295 then UID := getuid else UID := StatBuf_local^.st_uid; if StatBuf_local^.st_gid = 4294967295 then GID := getgid else GID := StatBuf_local^.st_gid; atime := StatBuf_local^.st_atime; mtime := StatBuf_local^.st_mtime; if IsLnk and AddCurrDirStage then DebugMsg(['*** Assertion failed AddEntry: Item^.IsLnk = True']); if IsLnk and (not AddCurrDirStage) then begin i := readlink(PChar(APath + String(PChar(@DirEnt^.d_name[0]))), LnkBuf, SizeOf(LnkBuf)); if i > 0 then begin LnkBuf[i] := #0; LnkPointTo := malloc(i + 1); memset(LnkPointTo, 0, i + 1); LnkPointTo := strncpy(LnkPointTo, @LnkBuf[0], i); // StrLCopy(LnkPointTo, @LnkBuf[0], i); end; end; ModifyTime := StatBuf_local^.st_mtime; // DebugMsg([FormatDateTime('c', ModifyTime)]); Level := ALevel + Ord(not AddCurrDirStage); libc_free(StatBuf_local); end; if AddCurrDirStage then List.Add(Item) else FilesList.Add(Item); end; begin if not Assigned(List) then Exit; try AddEntry(APath, True, True); FilesList := TList.Create; APath := IncludeTrailingPathDelimiter(APath); if libc_chdir(PChar(APath)) <> 0 then begin DebugMsg(['*** TLocalTreeEngine.FillDirFiles: chdir to "', APath, '" failed: ', strerror(errno)]); Exit; end; Handle := OpenDir(PChar(APath)); if Assigned(Handle) then repeat DirEnt := readdir64(Handle); if Assigned(DirEnt) and Assigned(PChar(@DirEnt^.d_name[0])) and (PChar(@DirEnt^.d_name[0]) <> '.') and (PChar(@DirEnt^.d_name[0]) <> '..') then begin StatBuf_global := malloc(sizeof(Tstat64)); memset(StatBuf_global, 0, sizeof(Tstat64)); if lstat64(PChar(@DirEnt^.d_name[0]), StatBuf_global) <> 0 then begin DebugMsg(['*** TLocalTreeEngine.FillDirFiles: Error lstat-ing ("', PChar(@DirEnt^.d_name[0]), '"): ', strerror(errno)]); Continue; end; if __S_ISTYPE(StatBuf_global^.st_mode, __S_IFDIR) then begin FillDirFiles(APath + String(PChar(@DirEnt^.d_name[0])), List, ALevel + 1); libc_chdir(PChar(APath)); end else AddEntry(APath + String(PChar(@DirEnt^.d_name[0])), False, True); libc_free(StatBuf_global); end; until DirEnt = nil; CloseDir(Handle); if FilesList.Count > 0 then for i := 0 to FilesList.Count - 1 do List.Add(FilesList[i]); FilesList.Free; AddEntry(APath, True, False); except on E: Exception do DebugMsg(['*** TLocalTreeEngine.FillDirFiles(APath=', APath, ', Level=', ALevel, ') -Exception: ', E.Message]); end; end; (********************************************************************************************************************************) function TLocalTreeEngine.GetFileInfoSL(APath: string): PDataItemSL; var StatBuf : Pstat64; i : integer; LnkBuf : array[0..1000] of char; begin Result := nil; try StatBuf := malloc(sizeof(Tstat64)); memset(StatBuf, 0, sizeof(Tstat64)); if lstat64(PChar(APath), StatBuf) <> 0 then begin DebugMsg(['*** Error reading file stat GetFileInfoSL(lstat): ', strerror(errno)]); Exit; end; // DebugMsg(['x1']); Result := malloc(SizeOf(TDataItemSL)); memset(Result, 0, SizeOf(TDataItemSL)); // DebugMsg(['x1']); with Result^ do begin FName := nil; FDisplayName := nil; LnkPointTo := nil; ADestination := nil; Stage1 := True; // DebugMsg(['x1']); FName := strdup(PChar(APath)); FDisplayName := StrToUTF8(PChar(APath)); Size := StatBuf^.st_size; PackedSize := -1; Mode := StatBuf^.st_mode; IsDir := __S_ISTYPE(StatBuf^.st_mode, __S_IFDIR); IsLnk := __S_ISTYPE(StatBuf^.st_mode, __S_IFLNK); // DebugMsg(['x1']); IsExecutable := StatBuf^.st_mode and S_IXUSR = S_IXUSR; // DebugMsg(['x2']); IsOnRO := IsOnROMedium(APath); // DebugMsg(['x2']); ForceMove := False; // DebugMsg(['x2']); ModifyTime := StatBuf^.st_mtime; // DebugMsg(['x2']); if StatBuf^.st_uid = 4294967295 then UID := getuid else UID := StatBuf^.st_uid; if StatBuf^.st_gid = 4294967295 then GID := getgid else GID := StatBuf^.st_gid; atime := StatBuf^.st_atime; mtime := StatBuf^.st_mtime; // DebugMsg(['x1']); libc_free(StatBuf); // DebugMsg(['x1']); Level := 1; // DebugMsg(['x1']); if IsLnk then begin i := readlink(PChar(APath), LnkBuf, SizeOf(LnkBuf)); if i > 0 then begin LnkBuf[i] := #0; LnkPointTo := malloc(i + 1); memset(LnkPointTo, 0, i + 1); // StrLCopy(LnkPointTo, @LnkBuf[0], i); LnkPointTo := strncpy(LnkPointTo, @LnkBuf[0], i); end; StatBuf := malloc(sizeof(Tstat64)); memset(StatBuf, 0, sizeof(Tstat64)); if stat64(PChar(APath), StatBuf) = 0 then begin IsDir := __S_ISTYPE(StatBuf^.st_mode, __S_IFDIR); Mode := StatBuf^.st_mode; end; libc_free(StatBuf); end; end; // DebugMsg(['x1']); except on E: Exception do DebugMsg(['*** TLocalTreeEngine.GetFileInfoSL(APath=', APath, ') -Exception: ', E.Message]); end; end; (********************************************************************************************************************************) function TLocalTreeEngine.CopyFileIn(Sender: Pointer; SourceFile, DestFile: string; ProgressFunc: TEngineProgressFunc; ErrorFunc: TEngineErrorFunc; Append: boolean): boolean; begin Result := CopyFile(Sender, SourceFile, DestFile, ProgressFunc, ErrorFunc, Append); end; function TLocalTreeEngine.CopyFileOut(Sender: Pointer; SourceFile, DestFile: string; ProgressFunc: TEngineProgressFunc; ErrorFunc: TEngineErrorFunc; Append: boolean): boolean; begin Result := CopyFile(Sender, SourceFile, DestFile, ProgressFunc, ErrorFunc, Append); end; function TLocalTreeEngine.CopyFile(Sender: Pointer; SourceFile, DestFile: string; ProgressFunc: TEngineProgressFunc; ErrorFunc: TEngineErrorFunc; Append: boolean): boolean; var fsrc, fdest: PFILE; BytesDone, BytesRead: Int64; // offset: __off_t; // Used due to sendfile bug while copying from NTFS and some 2.6.x kernels function OldCopyRoutine: boolean; var Buffer: Pointer; BytesWritten: Int64; Res: boolean; begin Result := False; Res := True; try // DebugMsg(['*** Using old copy function due to bug in sendfile']); // WriteLn('x1'); Buffer := malloc(FBlockSize); // WriteLn('x2'); if Buffer = nil then begin ErrorFunc(Sender, 1, errno, SourceFile); // Memory allocation failed // libc_free(Buffer); Exit; end; memset(Buffer, 0, FBlockSize); // WriteLn('x3'); while feof(fsrc) = 0 do begin // WriteLn('x4'); BytesRead := fread(Buffer, 1, FBlockSize, fsrc); if (BytesRead < FBlockSize) and (feof(fsrc) = 0) then begin Res := ErrorFunc(Sender, 6, errno, SourceFile); // Cannot read from source file Break; end; // WriteLn('x5'); BytesWritten := fwrite(Buffer, 1, BytesRead, fdest); if BytesWritten < BytesRead then begin Res := ErrorFunc(Sender, 7, ferror(fdest), DestFile); // Cannot write to source file Break; end; Inc(BytesDone, BytesRead); // WriteLn('x6'); try if Assigned(ProgressFunc) and (not ProgressFunc(Sender, BytesDone)) then begin Res := False; Break; end; except on E: Exception do DebugMsg(['*** ProgressFunc ! Exception raised in TLocalTreeEngine.CopyFile.OldCopyRoutine(Sender=', DWord(Sender), ', SourceFile=', SourceFile, ', DestFile=', DestFile, '): (', E.ClassName, '): ', E.Message]); end; // WriteLn('x7'); end; // WriteLn('x8'); libc_free(Buffer); // WriteLn('x9'); Result := Res; except on E: Exception do DebugMsg(['*** Exception raised in TLocalTreeEngine.CopyFile.OldCopyRoutine(Sender=', DWord(Sender), ', SourceFile=', SourceFile, ', DestFile=', DestFile, '): (', E.ClassName, '): ', E.Message]); end; end; (* function NewCopyRoutine: boolean; var Res: boolean; StatBuf: Pstat64; begin try Res := True; repeat DebugMsg(['Copy(sendfile): offset = ', offset, ', BytesDone = ', BytesDone, ', ftell(fsrc) = ', ftell(fsrc)]); BytesRead := sendfile(fileno(fdest), fileno(fsrc), offset, FBlockSize); if BytesRead = -1 then begin if errno = EINVAL then begin Result := OldCopyRoutine; Exit; end else Res := ErrorFunc(Sender, 6, errno, SourceFile); // Cannot read from source file Break; end; Inc(BytesDone, BytesRead); if Assigned(ProgressFunc) and (not ProgressFunc(Sender, BytesDone)) then begin Res := False; Break; end; until BytesRead < FBlockSize; StatBuf := malloc(sizeof(Tstat64)); memset(StatBuf, 0, sizeof(Tstat64)); if lstat64(PChar(SourceFile), StatBuf) <> 0 then begin DebugMsg(['*** TLocalTreeEngine.CopyFile.NewCopyRoutine(Sender=', DWord(Sender), ', SourceFile=', SourceFile, ', DestFile=', DestFile, '): Error reading file via lstat64: ', strerror(errno)]); Res := ErrorFunc(Sender, 6, errno, SourceFile); end else if (BytesDone < StatBuf^.st_size) and Res then Res := ErrorFunc(Sender, 6, errno, SourceFile); libc_free(StatBuf); Result := Res; except on E: Exception do DebugMsg(['*** Exception raised in TLocalTreeEngine.CopyFile.NewCopyRoutine(Sender=', DWord(Sender), ', SourceFile=', SourceFile, ', DestFile=', DestFile, '): (', E.ClassName, '): ', E.Message]); end; end; *) begin Result := False; try fsrc := fopen64(PChar(SourceFile), 'r'); if fsrc = nil then begin ErrorFunc(Sender, 2, errno, SourceFile); // Cannot open source file Exit; end; if Append then fdest := fopen64(PChar(DestFile), 'a') else fdest := fopen64(PChar(DestFile), 'w'); if fdest = nil then begin fclose(fsrc); ErrorFunc(Sender, 3, errno, DestFile); // Cannot open target file Exit; end; BytesDone := 0; // offset := 0; Result := OldCopyRoutine; if fclose(fdest) <> 0 then begin fclose(fsrc); ErrorFunc(Sender, 4, errno, DestFile); // Cannot close target file Exit; end; if fclose(fsrc) <> 0 then begin ErrorFunc(Sender, 5, errno, SourceFile); // Cannot close source file Exit; end; except on E: Exception do DebugMsg(['*** Exception raised in TLocalTreeEngine.CopyFile(Sender=', DWord(Sender), ', SourceFile=', SourceFile, ', DestFile=', DestFile, '): (', E.ClassName, '): ', E.Message]); end; // DebugMsg(['(II) TLocalTreeEngine.CopyFile: finished']); end; (********************************************************************************************************************************) function TLocalTreeEngine.FileExists(const FileName: string; const Use_lstat: boolean = False): Boolean; var st: Pstat64; begin st := malloc(sizeof(Tstat64)); memset(st, 0, sizeof(Tstat64)); if Use_lstat then Result := lstat64(PChar(FileName), st) = 0 else Result := stat64(PChar(FileName), st) = 0; libc_free(st); end; (********************************************************************************************************************************) function TLocalTreeEngine.DirectoryExists(const FileName: string; const Use_lstat: boolean = False): Boolean; var st: Pstat64; begin st := malloc(sizeof(Tstat64)); memset(st, 0, sizeof(Tstat64)); if Use_lstat then Result := lstat64(PChar(FileName), st) = 0 else if stat64(PChar(FileName), st) = 0 then Result := S_ISDIR(st^.st_mode) else Result := False; libc_free(st); end; (********************************************************************************************************************************) function TLocalTreeEngine.MakeSymLink(const NewFileName, PointTo: string): integer; begin // DebugMsg(['TLocalTreeEngine.MakeSymLink(NewFileName = "', NewFileName, '", PointTo = "', PointTo, '"']); Result := symlink(PChar(PointTo), PChar(NewFileName)); if Result <> 0 then Result := errno; end; (********************************************************************************************************************************) function TLocalTreeEngine.Chmod(const FileName: string; const Mode: integer): integer; begin Result := libc_chmod(PChar(FileName), Mode); if Result <> 0 then Result := errno; end; (********************************************************************************************************************************) function TLocalTreeEngine.Chown(const FileName: string; const UID, GID: integer): integer; begin Result := libc_chown(PChar(FileName), UID, GID); if Result <> 0 then Result := errno; end; (********************************************************************************************************************************) procedure TLocalTreeEngine.BreakProcessing(ProcessingKind: integer); begin BreakProcessingType := ProcessingKind; end; (********************************************************************************************************************************) function TLocalTreeEngine.IsOnSameFS(const Path1, Path2: string): boolean; var FStat1, FStat2: Pstat64; begin // DebugMsg(['** TLocalTreeEngine.IsOnSameFS("', Path1, '", "', Path2, '")']); Result := False; // Default fallback result (forces copy + delete) FStat1 := malloc(sizeof(Tstat64)); FStat2 := malloc(sizeof(Tstat64)); memset(FStat1, 0, sizeof(Tstat64)); memset(FStat2, 0, sizeof(Tstat64)); if lstat64(PChar(Path1), FStat1) <> 0 then begin DebugMsg(['** TLocalTreeEngine.IsOnSameFS: stat(', Path1, ') error: ', strerror(errno)]); Exit; end; if lstat64(PChar(Path2), FStat2) <> 0 then begin DebugMsg(['** TLocalTreeEngine.IsOnSameFS: stat(', Path2, ') error: ', strerror(errno)]); Exit; end; Result := FStat1^.st_dev = FStat2^.st_dev; libc_free(FStat1); libc_free(FStat2); // DebugMsg(['** TLocalTreeEngine.IsOnSameFS("', Path1, '", "', Path2, '") Result = ', Result]); end; (********************************************************************************************************************************) function TLocalTreeEngine.RenameFile(SourceFile, DestFile: string): integer; begin Result := libc_rename(PChar(SourceFile), PChar(DestFile)); if Result <> 0 then Result := errno; end; (********************************************************************************************************************************) function TLocalTreeEngine.ChangeTimes(APath: string; mtime, atime: Int64): integer; var timebuf: Putimbuf; begin Result := errno; try timebuf := malloc(sizeof(Tutimbuf)); memset(timebuf, 0, sizeof(Tutimbuf)); timebuf^.actime := atime; timebuf^.modtime := mtime; Result := utime(PChar(APath), timebuf); if Result <> 0 then Result := errno; libc_free(timebuf); except on E: Exception do DebugMsg(['*** Exception raised in TLocalTreeEngine.ChangeTimes(APath=', APath, '): (', E.ClassName, '): ', E.Message]); end; end; (********************************************************************************************************************************) procedure TLocalTreeEngine.GetFileSystemInfo(const APath: string; var FSSize, FSFree: Int64; var FSName: string); var Stat: Pstatfs64; fd: PFILE; mntent: Pmntent; mntdev: PChar; FoundLength: integer; Buffer: array[0..31] of char; begin FSSize := 0; FSFree := 0; FSName := ''; try Stat := malloc(sizeof(Tstatfs64)); memset(Stat, 0, sizeof(Tstatfs64)); if statfs64(PChar(APath), Stat) <> 0 then Exit; FSSize := Stat^.f_bsize * Stat^.f_blocks; FSFree := Stat^.f_bsize * Stat^.f_bavail; fd := setmntent(_PATH_MOUNTED, 'r'); if fd = nil then Exit; // Get mount name FoundLength := 0; mntdev := nil; mntent := getmntent(fd); while mntent <> nil do begin if (Pos(mntent^.mnt_dir, APath) = 1) and (Length(String(mntent^.mnt_dir)) > FoundLength) then begin FoundLength := Length(String(mntent^.mnt_dir)); FSName := String(mntent^.mnt_dir); mntdev := mntent^.mnt_fsname; end; mntent := getmntent(fd); end; endmntent(fd); // if it is CD-ROM, read ISO9660 label if Stat^.f_type = $9660 then begin { ISOFS_SUPER_MAGIC } if Assigned(mntdev) and (mntdev <> '') then begin fd := fopen(mntdev, 'r'); if fd = nil then Exit; if fseek(fd, 32808, SEEK_SET) <> 0 then Exit; if fread(@Buffer[0], 1, 32, fd) <> 0 then FSName := Trim(String(Buffer)); fclose(fd); end; end; libc_free(Stat); except on E: Exception do DebugMsg(['*** Exception raised in TLocalTreeEngine.GetFileSystemInfo(APath=', APath, '): (', E.ClassName, '): ', E.Message]); end; end; (********************************************************************************************************************************) function TLocalTreeEngine.OpenFile(const APath: string; Mode: integer; var Error: integer): TEngineFileDes; var m: PChar; begin Error := 0; case Mode of omRead: m := 'r'; omWrite: m := 'w'; omAppend: m := 'a'; else m := 'r'; end; Result := fopen64(PChar(APath), m); if Result = nil then Error := errno; end; (********************************************************************************************************************************) function TLocalTreeEngine.ReadFile(const FileDescriptor: TEngineFileDes; Buffer: Pointer; ABlockSize: integer; var Error: integer): integer; begin Error := 0; Result := fread(Buffer, 1, ABlockSize, FileDescriptor); if (Result = 0) and (feof(FileDescriptor) = 0) then Error := errno; end; (********************************************************************************************************************************) function TLocalTreeEngine.WriteFile(const FileDescriptor: TEngineFileDes; Buffer: Pointer; BytesCount: integer; var Error: integer): integer; begin Error := 0; { Result := __write(fileno(FileDescriptor), Buffer^, BytesCount); if Result < BytesCount then Error := errno; } Result := fwrite(Buffer, 1, BytesCount, FileDescriptor); if Result < BytesCount then Error := ferror(FileDescriptor); end; (********************************************************************************************************************************) function TLocalTreeEngine.CloseFile(const FileDescriptor: TEngineFileDes): integer; begin Result := fclose(FileDescriptor); if Result <> 0 then Result := errno; end; (********************************************************************************************************************************) function TLocalTreeEngine.FileSeek(const FileDescriptor: TEngineFileDes; const AbsoluteOffset: Int64; var Error: integer): Int64; begin Error := 0; Result := fseeko64(FileDescriptor, AbsoluteOffset, SEEK_SET); if Result = -1 then Error := errno; end; (********************************************************************************************************************************) function TLocalTreeEngine.IsOnROMedium(const FileName: string): boolean; var Stat: Pstatfs64; begin Result := False; try Stat := malloc(sizeof(Tstatfs64)); memset(Stat, 0, sizeof(Tstatfs64)); if statfs64(PChar(FileName), Stat) <> 0 then Exit; Result := (Stat^.f_type = $9660); { ISOFS_SUPER_MAGIC } libc_free(Stat); except on E: Exception do DebugMsg(['*** TLocalTreeEngine.IsOnROMedium(FileName=', FileName, ') -Exception: ', E.Message]); end; end; (********************************************************************************************************************************) function TLocalTreeEngine.FileCanRun(const FileName: string): boolean; begin Result := access(PChar(FileName), R_OK or X_OK) = 0; end; (********************************************************************************************************************************) function TLocalTreeEngine.TwoSameFiles(const Path1, Path2: string): boolean; var st1, st2: Pstat64; begin Result := False; st1 := malloc(sizeof(Tstat64)); st2 := malloc(sizeof(Tstat64)); memset(st1, 0, sizeof(Tstat64)); memset(st2, 0, sizeof(Tstat64)); if lstat64(PChar(Path1), st1) <> 0 then Exit; if lstat64(PChar(Path2), st2) <> 0 then Exit; // DebugMsg(['*** TLocalTreeEngine.TwoSameFiles: ', st1^.st_ino, ' ', st2^.st_ino]); Result := st1^.st_ino = st2^.st_ino; libc_free(st1); libc_free(st2); end; (********************************************************************************************************************************) (********************************************************************************************************************************) procedure FreeDataItem(DataItem: PDataItemSL); begin try if Assigned(DataItem) then begin with DataItem^ do begin if FName <> nil then libc_free(FName); if FDisplayName <> nil then libc_free(FDisplayName); // if Assigned(ADestination) then Dispose(ADestination); if LnkPointTo <> nil then libc_free(LnkPointTo); end; libc_free(DataItem); end; except end; end; procedure FreeDataItem(DataItem: PDataItem); var i : integer; begin try if Assigned(DataItem) then begin with DataItem^ do begin if FName <> nil then libc_free(FName); if FDisplayName <> nil then libc_free(FDisplayName); if LnkPointTo <> nil then libc_free(LnkPointTo); for i := 0 to Length(ColumnData) - 1 do if ColumnData[i] <> nil then libc_free(ColumnData[i]); end; libc_free(DataItem); end; except end; end; end. tuxcmd-0.6.70+dfsg/URunFromVFS.pas0000644000175000017500000002471011300022643015641 0ustar salvisalvi(* Tux Commander - URunFromVFS - The file properties dialog for VFS filesystems Copyright (C) 2007 Tomas Bzatek Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit URunFromVFS; interface uses glib2, gtk2, pango, SysUtils, Types, Classes, GTKControls, GTKForms, GTKStdCtrls, GTKExtCtrls, GTKConsts, GTKView, GTKUtils, GTKDialogs, GTKPixbuf, GTKClasses, UCoreClasses; type TFRunFromVFS = class(TGTKDialog) TitleFrame, ListFontFrame: TGTKFrame; TitleLabel: TGTKLabel; TitleEventBox: TGTKEventBox; TitleIcon: TGTKImage; TitleHBox: TGTKHBox; ButtonBox: TGTKHButtonBox; CloseButton: TGTKButton; Table: TGTKTable; ExecuteButton, ExecuteAllButton: TGTKImageButton; FileNameLabel, FileNameLabel2, FileTypeLabel, FileTypeLabel2, SizeLabel, SizeLabel2, PackedSizeLabel, PackedSizeLabel2, DateLabel, DateLabel2: TGTKLabel; OpensWithLabel, OpensWithLabel2, InfoLabel: TGTKLabel; InfoIcon: TGTKImage; HBox1, HBox2: TGTKHBox; procedure FormCreate(Sender: TObject); override; procedure FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); procedure ExecuteButtonClick(Sender: TObject); procedure ExecuteAllButtonClick(Sender: TObject); procedure CloseButtonClick(Sender: TObject); end; var FRunFromVFS: TFRunFromVFS; implementation uses ULocale, UConfig; procedure TFRunFromVFS.FormCreate(Sender: TObject); begin // SetDefaultSize(55, 40); Caption := LANGFRunFromVFS_Caption; Buttons := []; ShowSeparator := False; TitleEventBox := TGTKEventBox.Create(Self); TitleLabel := TGTKLabel.Create(Self); TitleLabel.Caption := Format('%s', [LANGFRunFromVFS_TitleLabel]); TitleLabel.UseMarkup := True; TitleLabel.XAlign := 0; TitleLabel.XPadding := 0; TitleLabel.YPadding := 3; TitleEventBox.ControlState := csPrelight; TitleFrame := TGTKFrame.CreateWithoutLabel(Self); TitleFrame.ShadowType := stShadowOut; TitleIcon := TGTKImage.Create(Self); TitleIcon.SetFromStock('gtk-properties', isLargeToolbar); TitleHBox := TGTKHBox.Create(Self); TitleHBox.Homogeneous := False; TitleHBox.AddControlEx(TGTKVBox.Create(Self), False, False, 5); TitleHBox.AddControlEx(TitleIcon, False, False, 0); TitleHBox.AddControlEx(TitleLabel, True, True, 10); TitleEventBox.AddControl(TitleHBox); TitleFrame.AddControl(TitleEventBox); ClientArea.AddControlEx(TitleFrame, False, True, 0); CloseButton := TGTKButton.CreateFromStock(Self, GTK_STOCK_CLOSE); // CloseButton.Default := True; // Default := CloseButton; CloseButton.OnClick := CloseButtonClick; ButtonBox := TGTKHButtonBox.Create(Self); ButtonBox.Layout := blEnd; ButtonBox.Spacing := 0; ButtonBox.BorderWidth := 0; FileNameLabel := TGTKLabel.Create(Self); FileNameLabel.XAlign := 1; FileNameLabel.YAlign := 0; FileNameLabel.Caption := Format('%s', [LANGFRunFromVFS_FileNameLabel]); FileNameLabel.UseMarkup := True; FileNameLabel2 := TGTKLabel.Create(Self); FileNameLabel2.Caption := Format('%s ', ['/tmp/t/bbbbb.txt']); FileNameLabel2.XAlign := 0; FileNameLabel2.UseMarkup := True; FileNameLabel2.Selectable := True; FileNameLabel2.CanFocus := False; FileNameLabel2.LineWrap := True; FileTypeLabel := TGTKLabel.Create(Self); FileTypeLabel.XAlign := 1; FileTypeLabel.Caption := Format('%s', [LANGFRunFromVFS_FileTypeLabel]); FileTypeLabel.UseMarkup := True; FileTypeLabel2 := TGTKLabel.Create(Self); FileTypeLabel2.Caption := Format('%s ', ['HTML page']); FileTypeLabel2.XAlign := 0; FileTypeLabel2.UseMarkup := True; SizeLabel := TGTKLabel.Create(Self); SizeLabel.XAlign := 1; SizeLabel.Caption := Format('%s', [LANGFRunFromVFS_SizeLabel]); SizeLabel.UseMarkup := True; SizeLabel2 := TGTKLabel.Create(Self); SizeLabel2.Caption := Format('%s ', ['192 168 bytes']); SizeLabel2.XAlign := 0; SizeLabel2.UseMarkup := True; PackedSizeLabel := TGTKLabel.Create(Self); PackedSizeLabel.XAlign := 1; PackedSizeLabel.Caption := Format('%s', [LANGFRunFromVFS_PackedSizeLabel]); PackedSizeLabel.UseMarkup := True; PackedSizeLabel2 := TGTKLabel.Create(Self); PackedSizeLabel2.Caption := Format('%s ', ['168 192 bytes']); PackedSizeLabel2.XAlign := 0; PackedSizeLabel2.UseMarkup := True; DateLabel := TGTKLabel.Create(Self); DateLabel.XAlign := 1; DateLabel.Caption := Format('%s', [LANGFRunFromVFS_DateLabel]); DateLabel.UseMarkup := True; DateLabel2 := TGTKLabel.Create(Self); DateLabel2.Caption := Format('%s ', ['2007-01-01']); DateLabel2.XAlign := 0; DateLabel2.UseMarkup := True; HBox1 := TGTKHBox.Create(Self); HBox1.Homogeneous := False; InfoLabel := TGTKLabel.Create(Self); InfoLabel.Caption := LANGFRunFromVFS_InfoLabel; InfoLabel.UseMarkup := True; InfoLabel.LineWrap := True; InfoLabel.SetSizeRequest(400, -1); InfoIcon := TGTKImage.Create(Self); InfoIcon.SetFromStock('gtk-dialog-info', isDialog); HBox1.AddControlEx(TGTKVBox.Create(Self), False, False, 12); HBox1.AddControlEx(InfoIcon, False, False, 7); HBox1.AddControlEx(InfoLabel, True, True, 0); HBox1.AddControlEx(TGTKVBox.Create(Self), False, False, 8); OpensWithLabel := TGTKLabel.Create(Self); OpensWithLabel.XAlign := 1; OpensWithLabel.YAlign := 0; OpensWithLabel.Caption := Format('%s', [LANGFRunFromVFS_OpensWithLabel]); OpensWithLabel.UseMarkup := True; OpensWithLabel2 := TGTKLabel.Create(Self); OpensWithLabel2.Caption := Format('%s ', ['galeon']); OpensWithLabel2.XAlign := 0; OpensWithLabel2.Selectable := True; OpensWithLabel2.CanFocus := False; OpensWithLabel2.UseMarkup := True; ExecuteButton := TGTKImageButton.Create(Self); ExecuteButton.SetFromStock('gtk-execute', isButton); ExecuteButton.Caption := LANGFRunFromVFS_ExecuteButton; ExecuteButton.OnClick := ExecuteButtonClick; ExecuteButton.Spacing := 7; ExecuteAllButton := TGTKImageButton.Create(Self); ExecuteAllButton.Caption := LANGFRunFromVFS_ExecuteAllButton; ExecuteAllButton.OnClick := ExecuteAllButtonClick; ExecuteAllButton.Spacing := 7; Table := TGTKTable.Create(Self); Table.SetRowColCount(13, 4); ClientArea.AddControlEx(Table, True, True, 12); Table.AddControlEx(0, 0, 1, 1, TGTKVBox.Create(Self), [taoShrink], [taoShrink], 10, 6); Table.AddControlEx(0, 1, 1, 1, TGTKVBox.Create(Self), [taoShrink], [taoShrink, taoFill], 12, 2); Table.AddControlEx(1, 1, 1, 1, FileNameLabel, [taoShrink, taoFill], [taoShrink, taoFill], 10, 2); Table.AddControlEx(3, 1, 2, 1, FileNameLabel2, [taoExpand, taoFill], [taoShrink, taoFill], 10, 2); Table.AddControlEx(1, 2, 1, 1, FileTypeLabel, [taoShrink, taoFill], [taoShrink, taoFill], 10, 2); Table.AddControlEx(3, 2, 2, 1, FileTypeLabel2, [taoExpand, taoFill], [taoShrink, taoFill], 10, 2); Table.AddControlEx(1, 3, 1, 1, SizeLabel, [taoShrink, taoFill], [taoShrink, taoFill], 10, 2); Table.AddControlEx(3, 3, 2, 1, SizeLabel2, [taoExpand, taoFill], [taoShrink, taoFill], 10, 2); Table.AddControlEx(1, 4, 1, 1, PackedSizeLabel, [taoShrink, taoFill], [taoShrink, taoFill], 10, 2); Table.AddControlEx(3, 4, 2, 1, PackedSizeLabel2, [taoExpand, taoFill], [taoShrink, taoFill], 10, 2); Table.AddControlEx(1, 5, 1, 1, DateLabel, [taoShrink, taoFill], [taoShrink, taoFill], 10, 2); Table.AddControlEx(3, 5, 2, 1, DateLabel2, [taoExpand, taoFill], [taoShrink, taoFill], 10, 2); Table.AddControlEx(0, 6, 5, 1, TGTKHBox.Create(Self), [taoShrink], [taoShrink], 50, 17); Table.AddControlEx(0, 7, 5, 1, HBox1, [taoExpand, taoFill], [taoShrink], 0, 2); Table.AddControlEx(1, 8, 1, 1, OpensWithLabel, [taoShrink, taoFill], [taoShrink, taoFill], 10, 10); Table.AddControlEx(3, 8, 2, 1, OpensWithLabel2, [taoExpand, taoFill], [taoShrink, taoFill], 10, 10); // Table.AddControlEx(3, 9, 1, 1, ExecuteButton, [taoFill], [taoShrink], 10, 2); // Table.AddControlEx(3, 10, 1, 1, ExecuteAllButton, [taoFill], [taoShrink], 10, 2); Table.AddControlEx(4, 11, 1, 1, TGTKHBox.Create(Self), [taoExpand, taoFill], [taoShrink], 30, 2); Table.AddControlEx(0, 12, 4, 1, TGTKVBox.Create(Self), [taoExpand, taoFill], [taoShrink], 30, 10); HBox2 := TGTKHBox.Create(Self); HBox2.BorderWidth := 3; HBox2.Homogeneous := False; HBox2.AddControlEx(ExecuteButton, False, False, 2); HBox2.AddControlEx(ExecuteAllButton, False, False, 2); HBox2.AddControlEx(TGTKEventBox.Create(Self), False, False, 4); ButtonBox.AddControlEnd(CloseButton); HBox2.AddControlEx(ButtonBox, False, False, 2); ActionArea.AddControlEx(HBox2, False, False, 0); CloseButton.SetFocus; OnKeyDown := FormKeyDown; end; procedure TFRunFromVFS.FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); begin if Key = GDK_ESCAPE then begin ModalResult := mbClose; Accept := False; end else if Key = GDK_RIGHT then begin if ExecuteButton.Focused then ExecuteAllButton.SetFocus else if ExecuteAllButton.Focused then CloseButton.SetFocus else ExecuteButton.SetFocus; Accept := False; end else if Key = GDK_LEFT then begin if ExecuteButton.Focused then CloseButton.SetFocus else if ExecuteAllButton.Focused then ExecuteButton.SetFocus else ExecuteAllButton.SetFocus; Accept := False; end; end; procedure TFRunFromVFS.ExecuteButtonClick(Sender: TObject); begin ModalResult := mbYes; end; procedure TFRunFromVFS.ExecuteAllButtonClick(Sender: TObject); begin ModalResult := mbNo; end; procedure TFRunFromVFS.CloseButtonClick(Sender: TObject); begin ModalResult := mbClose; end; end. tuxcmd-0.6.70+dfsg/ULocale.pas0000644000175000017500000005416711300022643015102 0ustar salvisalvi(* Tux Commander - ULocale - Localization core Copyright (C) 2007 Tomas Bzatek Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) {$J+} unit ULocale; interface var LANGF2Button_Caption, LANGF3Button_Caption, LANGF4Button_Caption, LANGF5Button_Caption, LANGF6Button_Caption, LANGF7Button_Caption, LANGF8Button_Caption: string; LANGmnuFile_Caption, LANGmnuMark_Caption, LANGmnuCommands_Caption, LANGmnuHelp_Caption, LANGmiExit_Caption, LANGmiSelectGroup_Caption, LANGmiUnselectGroup_Caption, LANGmiSelectAll_Caption, LANGmiUnselectAll_Caption, LANGmiInvertSelection_Caption, LANGmiRefresh_Caption, LANGmiAbout_Caption: string; LANGColumn1_Caption, LANGColumn2_Caption, LANGColumn3_Caption, LANGColumn4_Caption, LANGColumn5_Caption: string; LANGExpandSelection, LANGShrinkSelection, LANGNoMatchesFound, LANGNoFilesSelected, LANGSelectedFilesDirectories, LANGDirectoryS, LANGFileS, LANGDoYouReallyWantToDeleteTheS, LANGDoYouReallyWantToDeleteTheSS, LANGCopyFiles, LANGMoveRenameFiles, LANGCopyDFileDirectoriesTo, LANGMoveRenameDFileDirectoriesTo, LANGCopySC, LANGMoveRenameSC: string; LANGQuickFind: string; LANGAboutString, LANGAboutStringGnome, LANGDiskStatFmt, LANGDiskStatVolNameFmt, LANGStatusLineFmt: string; LANGPanelStrings : array[boolean] of string; LANGDIR, LANGErrorGettingListingForSPanel, LANGErrorGettingListingForSPanelNoPath, LANGErrorCreatingNewDirectorySInSPanel, LANGErrorCreatingNewDirectorySInSPanelNoPath, LANGTheFileDirectory, LANGCouldNotBeDeleted, LANGCouldNotBeDeletedS, LANGUserCancelled, LANGTheDirectorySIsNotEmpty, LANGCannotCopyFile, LANGCopyError, LANGMoveError, LANGOverwriteS, LANGWithFileS, LANGOvewriteSBytesS, LANGTheFile, LANGCopy, LANGMove, LANGTheDirectory, LANGTheSymbolicLink, LANGCannotMoveFile, LANGCouldNotBeCreated, LANGCouldNotBeCreatedS, LANGFromS, LANGToS, LANGCannotCopyFileToItself, LANGMemoryAllocationFailed, LANGCannotOpenSourceFile, LANGCannotOpenDestinationFile, LANGCannotCloseDestinationFile, LANGCannotCloseSourceFile, LANGCannotReadFromSourceFile, LANGCannotWriteToDestinationFile: string; LANGUnknownException, LANGNoAccess, LANGUnknownError: string; LANGCreateANewDirectory, LANGEnterDirectoryName: string; LANGOverwriteQuestion, LANGOverwriteButton_Caption, LANGOverwriteAllButton_Caption, LANGSkipButton_Caption, LANGOverwriteAllOlderButton_Caption, LANGSkipAllButton_Caption, LANGRenameButton_Caption, LANGAppendButton_Caption, LANGRename, LANGRenameFile, LANGIgnoreButton_Caption: string; LANGProgress, LANGCancel, LANGDelete: string; LANGSpecifyFileType: string; LANGRemoveDirectory, LANGDoYouWantToDeleteItWithAllItsFilesAndSubdirectories, LANGRetry, LANGDeleteButton_Caption, LANGAll: string; LANGCopyFilesSC, LANGAppendQuestion, LANGPreparingList: string; LANGYouMustSelectAValidFile, LANGmiVerifyChecksums, LANGVerifyChecksumsCaption, LANGCheckButtonCaptionCheck, LANGCheckButtonCaptionStop, LANGFileListTooltip, LANGFilenameColumnCaption, LANGTheFileSYouAreTryingToOpenIsQuiteBig, LANGAnErrorOccuredWhileInitializingMemoryBlock, LANGAnErrorOccuredWhileOpeningFileSS, LANGAnErrorOccuredWhileReadingFileSS : string; LANGChecksumNotChecked, LANGChecksumChecking, LANGChecksumInterrupted, LANGChecksumDOK: string; LANGmiCreateChecksumsCaption, LANGYouMustSelectAtLeastOneFileToCalculateChecksum, LANGCreateChecksumsCaption, LANGCCHKSUMPage1Text, LANGCCHKSUMPage4Text, LANGCCHKSUMPage6Text, LANGCCHKSUMPage7Text, LANGCCHKSUMPage1Title, LANGCCHKSUMPage2Title, LANGCCHKSUMPage3Title, LANGCCHKSUMPage4Title, LANGCCHKSUMPage5Title, LANGCCHKSUMPage6Title, LANGCCHKSUMPage7Title, LANGCCHKSUMSFVFile, LANGCCHKSUMMD5sumFile, LANGCCHKSUMFileName, LANGCCHKSUMCreateSeparateChecksumFiles, LANGCCHKSUMNowProcessingFileS, LANGCCHKSUMFinishCaption, LANGCCHKSUMAreYouSureYouWantToAbortTheProcessing, LANGCCHKSUMAnErrorOccuredWhileOpeningFileSS, LANGCCHKSUMAnErrorOccuredWhileReadingFileSS, LANGCCHKSUMAnErrorOccuredWhileWritingFileSS: string; LANGAnErrorOccuredWhileWritingFileSS, LANGTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt, LANGTheTargetFileSCannotBeRemovedS, LANGMergeCaption, LANGPleaseInsertNextDiskOrGiveDifferentLocation, LANGMergeOfSSucceeded, LANGWarningCreatedFileFailsCRCCheck, LANGMergeOfSSucceeded_NoCRCFileAvailable, LANGMergeSAndAllFilesWithAscendingNamesToTheFollowingDirectory, LANGMergeSC, LANGmiSplitFileCaption, LANGmiMergeFilesCaption: string; LANGSplitTheFileSToDirectory, LANGSplitSC, LANGSplitFile, LANGBytesPerFile, LANGAutomatic, LANGDeleteFilesOnTargetDisk, LANGSplitCaption, LANGCannotOpenFileS, LANGCannotSplitTheFileToMoreThan999Parts, LANGThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem, LANGThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem, LANGAnErrorOccuredWhileOperationS, LANGSplitOfSSucceeded, LANGSplitOfSFailed: string; LANGmnuShow_Caption, LANGmiShowDotFiles_Caption, LANGTheFileYouAreTryingToOpenIsQuiteBig, LANGCannotExecuteSPleaseCheckTheConfiguration, LANGEdit, LANGEnterFilenameToEdit: string; LANGmnuSettings_Caption, LANGmiFileTypes_Caption, LANGThereIsNoApplicationAssociatedWithS, LANGErrorExecutingCommand, LANGEditFileTypesCaption, LANGTitleLabel_Caption, LANGExtensionsColumn, LANGDescriptionColumn, LANGFileTypesList, LANGActionName, LANGCommand, LANGSetDefaultActionButton_Caption, LANGRunInTerminalCheckBox_Caption, LANGAutodetectCheckBox_Caption, LANGBrowseButton_Caption, LANGCommandLabel_Caption, LANGDescriptionLabel_Caption, LANGFNameExtLabel_Caption, LANGNotebookPageExtensions, LANGNotebookPageActions, LANGDefault, LANGCannotSaveFileTypeAssociationsBecauseOtherProcess: string; LANGDefaultColor, LANGIcon, LANGBrowseForIcon, LANGSelectFileTypeColor, LANGColor: string; LANGmiChangePermissions_Caption, LANGmiChangeOwner_Caption, LANGmiCreateSymlink_Caption, LANGmiEditSymlink_Caption, LANGChmodProgress, LANGChownProgress, LANGYouMustSelectAValidSymbolicLink, LANGPopupRunS, LANGPopupOpenS, LANGPopupGoUp, LANGPopupOpenWithS, LANGPopupDefault, LANGPopupOpenWith, LANGPopupViewFile, LANGPopupEditFile, LANGPopupMakeSymlink, LANGPopupRename, LANGPopupDelete, LANGDialogChangePermissions, LANGCouldNotBeChmoddedS, LANGDialogChangeOwner, LANGCouldNotBeChownedS, LANGDialogMakeSymlink, LANGDialogEditSymlink, LANGFEditSymlink_Caption, LANGFEditSymlink_SymbolicLinkFilename, LANGFEditSymlink_SymbolicLinkPointsTo: string; LANGFChmod_Caption, LANGFChmod_PermissionFrame, LANGFChmod_FileFrame, LANGFChmod_ApplyRecursivelyFor, LANGFChmod_miAllFiles, LANGFChmod_miDirectories, LANGFChmod_OctalLabel, LANGFChmod_SUID, LANGFChmod_SGID, LANGFChmod_Sticky, LANGFChmod_RUSR, LANGFChmod_WUSR, LANGFChmod_XUSR, LANGFChmod_RGRP, LANGFChmod_WGRP, LANGFChmod_XGRP, LANGFChmod_ROTH, LANGFChmod_WOTH, LANGFChmod_XOTH, LANGFChmod_TextLabel, LANGFChmod_FileLabel, LANGFChown_Caption, LANGFChown_OwnerFrame, LANGFChown_GroupFrame, LANGFChown_FileFrame, LANGFChown_ApplyRecursively, LANGFSymlink_Caption, LANGFSymlink_ExistingFilename, LANGFSymlink_SymlinkFilename: string; LANGmnuBookmarks_Caption, LANGmiAddBookmark_Caption, LANGmiEditBookmarks_Caption, LANGBookmarkPopupDelete_Caption, LANGmiPreferences_Caption, LANGTheCurrentDirectoryAlreadyExistsInTheBookmarksList, LANGSomeOtherInstanceChanged, LANGPreferences_Caption, LANGPreferences_TitleLabel_Caption, LANGPreferences_GeneralPage, LANGPreferences_FontsPage, LANGPreferences_ColorsPage, LANGPreferences_RowHeight, LANGPreferences_NumHistoryItems, LANGPreferences_Default, LANGPreferences_ClearReadonlyAttribute, LANGPreferences_DisableMouseRenaming, LANGPreferences_ShowFiletypeIconsInList, LANGPreferences_ExternalAppsLabel, LANGPreferences_Viewer, LANGPreferences_Editor, LANGPreferences_Terminal, LANGPreferences_ListFont, LANGPreferences_Change, LANGPreferences_UseDefaultFont, LANGPreferences_Foreground, LANGPreferences_Background, LANGPreferences_NormalItem, LANGPreferences_SetToDefaultToUseGTKThemeColors, LANGPreferences_Cursor, LANGPreferences_InactiveItem, LANGPreferences_SelectedItem, LANGPreferences_LinkItem, LANGPreferences_LinkItemHint, LANGPreferences_DotFileItem, LANGPreferences_DotFileItemHint, LANGPreferences_BrowseForApplication, LANGPreferences_DefaultS, LANGPreferences_SelectFont: string; LANGBookmarkButton_Tooltip, LANGUpButton_Tooltip, LANGRootButton_Tooltip, LANGHomeButton_Tooltip, LANGLeftEqualButton_Tooltip, LANGRightEqualButton_Tooltip, LANGmiShowDirectorySizes_Caption, LANGmiTargetSource_Caption, LANGFileTypeDirectory, LANGFileTypeFile, LANGFileTypeMetafile, LANGPreferencesPanelsPage, LANGPreferencesApplicationsPage, LANGPreferencesExperimentalPage, LANGPreferencesSelectAllDirectoriesCheckBox_Caption, LANGPreferencesNewStyleAltOCheckBox_Caption, LANGPreferencesNewStyleAltOCheckBox_Tooltip, LANGPreferencesShowFuncButtonsCheckBox_Caption, LANGPreferencesSizeFormatLabel_Caption, LANGPreferencesmiSizeFormat1, LANGPreferencesmiSizeFormat6, LANGPreferencesAutodetectXApp, LANGPreferencesAlwaysRunInTerminal, LANGPreferencesNeverRunInTerminal, LANGPreferencesCmdLineBehaviourLabel_Caption, LANGPreferencesFeatures, LANGPreferencesDisableMouseRename_Tooltip, LANGPreferencesDisableFileTipsCheckBox_Caption, LANGPreferencesDisableFileTipsCheckBox_Tooltip, LANGPreferencesShow, LANGPreferencesDirsInBoldCheckBox_Caption, LANGPreferencesDisableDirectoryBracketsCheckBox_Caption, LANGPreferencesOctalPermissionsCheckBox_Caption, LANGPreferencesOctalPermissionsCheckBox_Tooltip, LANGPreferencesMovement, LANGPreferencesLynxLikeMotionCheckBox_Caption, LANGPreferencesInsertMovesDownCheckBox_Caption, LANGPreferencesSpaceMovesDownCheckBox_Caption, LANGPreferencesViewer, LANGPreferencesCommandSC, LANGPreferencesUseInternalViewer, LANGPreferencesEditor, LANGPreferencesTerminal, LANGPreferencesExperimentalFeatures, LANGPreferencesExperimentalWarningLabel_Caption, LANGPreferencesFocusRefreshCheckBox_Caption, LANGPreferencesFocusRefreshCheckBox_Tooltip, LANGPreferencesWMCompatModeCheckBox_Caption, LANGPreferencesWMCompatModeCheckBox_Tooltip, LANGPreferencesCompatUseLibcSystemCheckBox_Caption, LANGPreferencesCompatUseLibcSystemCheckBox_Tooltip: string; LANGmiSearchCaption2, LANGmiNoMounterBarCaption, LANGmiShowOneMounterBarCaption, LANGmiShowTwoMounterBarCaption, LANGmnuNetworkCaption, LANGmiConnectionsCaption, LANGmiOpenConnectionCaption, LANGmiQuickConnectCaption, LANGmnuPluginsCaption, LANGmiTestPluginCaption, LANGmiMounterSettingsCaption, LANGmiColumnsCaption, LANGmiSavePositionCaption, LANGmiMountCaption, LANGmiUmountCaption, LANGmiEjectCaption, LANGmiDuplicateTabCaption, LANGmiCloseTabCaption, LANGmiCloseAllTabsCaption, LANGCannotDetermineDestinationEngine, LANGCannotLoadFile, LANGMountPointDevice, LANGMountSC, LANGNoPluginsFound, LANGPluginAbout, LANGCouldntOpenURI, LANGPluginAboutInside, LANGAreYouSureCloseAllTabs, LANGCouldntOpenURIArchive, LANGThereIsNoModuleAvailable, LANGIgnoreError, LANGErrorMount, LANGErrorUmount, LANGErrorEject: string; LANGMounterPrefs_Caption, LANGMounterPrefs_TitleLabelCaption, LANGMounterPrefs_ListViewFrameCaption, LANGMounterPrefs_MountName, LANGMounterPrefs_MountPoint, LANGMounterPrefs_Device, LANGMounterPrefs_MoveUpButtonTooltip, LANGMounterPrefs_MoveDownButtonTooltip, LANGMounterPrefs_UseFSTabDefaultsCheckBox, LANGMounterPrefs_UseFSTabDefaultsCheckBoxTooltip, LANGMounterPrefs_ToggleModeCheckBox, LANGMounterPrefs_ToggleModeCheckBoxTooltip, LANGMounterPrefs_PropertiesFrameCaption, LANGMounterPrefs_DisplayTextLabelCaption, LANGMounterPrefs_MountPointLabelCaption, LANGMounterPrefs_MountDeviceLabelCaption, LANGMounterPrefs_DeviceTypeLabelCaption, LANGMounterPrefs_miLocalDiskCaption, LANGMounterPrefs_miRemovableCaption, LANGMounterPrefs_miCDCaption, LANGMounterPrefs_miFloppyCaption, LANGMounterPrefs_miNetworkCaption, LANGMounterPrefs_MountCommandLabelCaption, LANGMounterPrefs_UmountCommandLabelCaption, LANGMounterPrefs_MountCommandEntryTooltip, LANGMounterPrefs_UmountCommandEntryTooltip, LANGMounterPrefs_IconLabelCaption: string; LANGConnMgr_Caption, LANGConnMgr_ConnectButton, LANGConnMgr_OpenConnection, LANGConnMgr_NameColumn, LANGConnMgr_URIColumn, LANGConnMgr_AddConnectionButtonCaption, LANGConnMgr_AddConnectionButtonTooltip, LANGConnMgr_EditButtonCaption, LANGConnMgr_EditButtonTooltip, LANGConnMgr_RemoveButtonCaption, LANGConnMgr_RemoveButtonTooltip, LANGConnMgr_DoYouWantDelete: string; LANGConnProp_FTP, LANGConnProp_SFTP, LANGConnProp_SMB, LANGConnProp_HTTP, LANGConnProp_HTTPS, LANGConnProp_Other, LANGConnProp_Caption, LANGConnProp_VFSModule, LANGConnProp_URI, LANGConnProp_URIEntryTooltip, LANGConnProp_DetailedInformations, LANGConnProp_Name, LANGConnProp_Server, LANGConnProp_Username, LANGConnProp_UserNameEntryTooltip, LANGConnProp_Password, LANGConnProp_TargetDirectory, LANGConnProp_ServiceType, LANGConnProp_MaskPassword, LANGConnProp_MenuItemCaption: string; LANGConnLogin_Caption, LANGConnLogin_Login, LANGConnLogin_ExperimentalWarningLabelCaption, LANGConnLogin_Username, LANGConnLogin_Password, LANGConnLogin_AnonymousCheckButton: string; LANGColumns_Caption, LANGColumns_Title, LANGColumns_MoveUpButtonTooltip, LANGColumns_MoveDownButtonTooltip, LANGColumns_TitlesLongName, LANGColumns_TitlesLongNameExt, LANGColumns_TitlesLongExt, LANGColumns_TitlesLongSize, LANGColumns_TitlesLongDateTime, LANGColumns_TitlesLongDate, LANGColumns_TitlesLongTime, LANGColumns_TitlesLongUser, LANGColumns_TitlesLongGroup, LANGColumns_TitlesLongAttr, LANGColumns_TitlesShortName, LANGColumns_TitlesShortNameExt, LANGColumns_TitlesShortExt, LANGColumns_TitlesShortSize, LANGColumns_TitlesShortDateTime, LANGColumns_TitlesShortDate, LANGColumns_TitlesShortTime, LANGColumns_TitlesShortUser, LANGColumns_TitlesShortGroup, LANGColumns_TitlesShortAttr: string; LANGTestPlugin_Caption, LANGTestPlugin_Title, LANGTestPlugin_ExperimentalWarningLabelCaption, LANGTestPlugin_Plugin, LANGTestPlugin_Command, LANGTestPlugin_Username, LANGTestPlugin_Password, LANGTestPlugin_AnonymousCheckButton, LANGTestPlugin_NoPluginsFound: string; LANGRemoteWait_Caption, LANGRemoteWait_OperationInProgress, LANGRemoteWait_ItemsFound: string; LANGSearch_Bytes, LANGSearch_kB, LANGSearch_MB, LANGSearch_days, LANGSearch_weeks, LANGSearch_months, LANGSearch_years, LANGSearch_Caption, LANGSearch_General, LANGSearch_Advanced, LANGSearch_SearchResults, LANGSearch_SearchFor, LANGSearch_FileMaskEntryTooltip, LANGSearch_SearchIn, LANGSearch_SearchArchivesCheckButton, LANGSearch_FindText, LANGSearch_FindTextEntryTooltip, LANGSearch_CaseSensitiveCheckButton, LANGSearch_StayCurrentFSCheckButton, LANGSearch_CaseSensitiveMatchCheckButton, LANGSearch_Size, LANGSearch_Date, LANGSearch_BiggerThan, LANGSearch_SmallerThan, LANGSearch_ModifiedBetweenRadioButton, LANGSearch_NotModifiedAfterRadioButton, LANGSearch_ModifiedLastRadioButton, LANGSearch_ModifiedNotLastRadionButton, LANGSearch_ModifiedBetweenEntry1, LANGSearch_ViewButtonCaption, LANGSearch_NewSearchButtonCaption, LANGSearch_GoToFileButtonCaption, LANGSearch_FeedToListboxButtonCaption, LANGSearch_StatusSC, LANGSearch_Ready, LANGSearch_PreparingToSearch, LANGSearch_SearchInProgress, LANGSearch_UserCancelled, LANGSearch_SearchFinished, LANGSearch_FilesFound, LANGSearch_And: string; LANGCloseOpenConnection, LANGDuplicateTabWarning, LANGDontShowAgain, LANGSwitchOtherPanelWarning, LANGOpenConnectionsWarning, LANGmiDisconnect_Caption, LANGDisconnectButton_Tooltip, LANGLeaveArchiveButton_Tooltip, LANGOpenTerminalButton_Tooltip, LANGOpenTerminalButton_Caption, LANGShowTextUIDsCheckBox_Caption, LANGShowTextUIDsCheckBox_Tooltip: string; LANGmiNewTab_Caption, LANGFilePopupMenu_Properties, LANGCommandEntry_Tooltip, LANGmiFiles_Caption: string; LANGPasswordButton_Tooltip, LANGHandleRunFromArchive_Bytes, LANGHandleRunFromArchive_FileTypeDesc_Unknown, LANGHandleRunFromArchive_NotAssociated, LANGHandleRunFromArchive_SelfExecutable, LANGHandleRunFromArchive_CouldntCreateTemporaryDirectory, LANGFRunFromVFS_Caption, LANGFRunFromVFS_TitleLabel, LANGFRunFromVFS_FileNameLabel, LANGFRunFromVFS_FileTypeLabel, LANGFRunFromVFS_SizeLabel, LANGFRunFromVFS_PackedSizeLabel, LANGFRunFromVFS_DateLabel, LANGFRunFromVFS_InfoLabel, LANGFRunFromVFS_OpensWithLabel, LANGFRunFromVFS_ExecuteButton, LANGFRunFromVFS_ExecuteAllButton, LANGFSetPassword_Caption, LANGFSetPassword_Label1_Caption, LANGFSetPassword_Label2_Caption, LANGFSetPassword_ShowPasswordCheckButton: string; LANGCopyFileNamesToClipboard, LANGCopyFullPathNamesToClipboard, LANGCopyPathToClipboard, LANGPreferences_DateFormatLabel_Caption, LANGPreferences_System, LANGPreferences_Custom, LANGPreferences_CustomDateFormatEntry_Tooltip, LANGPreferences_TimeFormatLabel_Caption, LANGPreferences_CustomTimeFormatEntry_Tooltip, LANGPreferences_DateTimeFormatLabel_Caption, LANGPreferences_QuickRenameSkipExtCheckBox, LANGPreferences_QuickRenameSkipExtCheckBox_Tooltip, LANGPreferences_SortDirectoriesLikeFilesCheckBox, LANGPreferences_SortDirectoriesLikeFilesCheckBox_Tooltip, LANGPreferences_QuickSearchLabel_Caption, LANGPreferences_QuickSearchOptionMenu_Tooltip, LANGPreferences_QuickSearch_Option1, LANGPreferences_QuickSearch_Option2, LANGPreferences_QuickSearch_Option3, LANGPreferences_QuickSearch_Option4, LANGPreferences_TempPathLabel_Caption, LANGPreferences_VFSTempPathLabel_Caption, LANGPreferences_VFSTempPathEntry_Tooltip: string; LANGPreferences_RightClickSelectCheckBox, LANGPreferences_RightClickSelectCheckBox_Tooltip, LANGGtkMountOperation_ConnectAnonymously, LANGGtkMountOperation_ConnectAsUser, LANGGtkMountOperation_Username, LANGGtkMountOperation_Domain, LANGGtkMountOperation_Password, LANGGtkMountOperation_DoNotSavePassword, LANGGtkMountOperation_ForgetPasswordImmediately, LANGGtkMountOperation_RememberPasswordUntilYouLogout, LANGGtkMountOperation_SavePasswordInConnectionManager, LANGGtkMountOperation_RememberForever, LANGFSymlink_RelativePath, LANGFConnectionManager_DuplicateButton_Caption, LANGFConnectionManager_DuplicateButton_Tooltip, LANGFConnectionManager_DoNotSavePasswordsCheckBox_Label, LANGFConnectionManager_DoNotSavePasswordsCheckBox_Tooltip, LANGFConnectionManager_DoNotSynchronizeKeyringCheckBox_Label, LANGFConnectionManager_DoNotSynchronizeKeyringCheckBox_Tooltip, LANGFConnectionManager_DuplicateMenuItem_Caption, LANGFQuickConnect_Caption, LANGFQuickConnect_TitleLabel_Caption, LANGFQuickConnect_ConnectToURILabel_Caption, LANGLinkToS, LANGOpenDirectoryInBackgroundTab, LANGTheActiveConnectionHasNotBeenSaved, LANGTheArchiveIsEncryptedAndRequiresPassword: string; procedure AddTranslation(Language: string; LangSetProc: pointer); procedure SetTranslationTexts(ForceLocale: string = ''); implementation uses SysUtils, UTranslation_EN, UTranslation_CZ, UTranslation_RU, UTranslation_DE, UTranslation_SV, UTranslation_FR, UTranslation_ES, UTranslation_PL, UTranslation_UA, UTranslation_SR, UTranslation_HU, UTranslation_IT, UTranslation_CHT, UTranslation_CHS, UTranslation_SK, UTranslation_PT; const LangTable: array of string = nil; LangProcTable: array of pointer = nil; var Lang: string; procedure AddTranslation(Language: string; LangSetProc: pointer); begin if not Assigned(LangTable) then SetLength(LangTable, 0); if not Assigned(LangProcTable) then SetLength(LangProcTable, 0); SetLength(LangTable, Length(LangTable) + 1); LangTable[Length(LangTable) - 1] := ANSIUpperCase(Language); SetLength(LangProcTable, Length(LangProcTable) + 1); LangProcTable[Length(LangProcTable) - 1] := LangSetProc; end; function LookupLanguages: integer; var i: integer; begin Result := -1; for i := 0 to Length(LangTable) - 1 do if LangTable[i] = Lang then begin Result := i; Break; end; end; procedure SetTranslationTexts(ForceLocale: string = ''); var LangIdx: integer; SetProc: procedure; begin if not (Assigned(LangTable) and (Length(LangTable) > 0)) then begin WriteLn('**** tuxcmd CRITICAL: No usable translations found. At least one is required. Probably you have compiled the application incorrectly.'); Halt(1); end; // Assign default language - English try Lang := 'EN'; LangIdx := LookupLanguages; if LangIdx >= 0 then begin SetProc := LangProcTable[LangIdx]; SetProc; end; except end; // Assign other languages if Length(ForceLocale) = 0 then begin Lang := GetEnvironmentVariable('LC_MESSAGES'); if Length(Trim(Lang)) = 0 then Lang := GetEnvironmentVariable('LC_ALL'); if Length(Trim(Lang)) = 0 then Lang := GetEnvironmentVariable('LANGUAGE'); if Length(Trim(Lang)) = 0 then Lang := GetEnvironmentVariable('LANG'); if Length(Trim(Lang)) = 0 then Lang := 'en_US'; // Default language end else Lang := ForceLocale; Lang := Trim(AnsiUpperCase(Lang)); LangIdx := LookupLanguages; if (LangIdx = -1) and (Length(Lang) > 5) then begin Lang := Copy(Lang, 1, 5); LangIdx := LookupLanguages; end; if (LangIdx = -1) and (Length(Lang) > 2) then begin Lang := Copy(Lang, 1, 2); LangIdx := LookupLanguages; end; if LangIdx = -1 then begin Lang := 'EN'; LangIdx := LookupLanguages; end; SetProc := LangProcTable[LangIdx]; try SetProc; except on E: Exception do WriteLn('*** Exception ', E.ClassName, ' raised in SetProc - language ', LangTable[LangIdx], ', procedure @ ', integer(@SetProc), ': ', E.Message); end; end; end. tuxcmd-0.6.70+dfsg/UToolTips.pas0000644000175000017500000003371511300022643015454 0ustar salvisalvi(* Tux Commander - UToolTips - ToolTips utils and classes (used as the tree hints) Copyright (C) 2008 Tomas Bzatek This unit is based on an idea from Gnome File Manager by Miroslav Bajtos Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UToolTips; interface uses glib2, gdk2, gtk2, pango; procedure FileListTipsInstall(ATreeView: PGtkTreeView); procedure FileListTipsEnable; procedure FileListTipsDisable; procedure FileListTipsHide; implementation uses SysUtils, DateUtils, Classes, GTKForms, GTKView, GTKControls, UMain, UEngines, UCore, UConfig, UCoreUtils; var tip_window: PGtkWindow; tip_label: PGtkLabel; timer_id: gint; tips_enabled: boolean; data_row: PGtkTreePath; data_column: PGtkTreeViewColumn; data_panel: PGtkTreeView; tips_timer: PGTimer; function event_handler(widget: PGtkWidget; event: PGdkEvent; user_data: gpointer): gboolean; cdecl; forward; function on_leave_notify(widget: PGtkWidget; event: PGdkEventCrossing; user_data: gpointer): gboolean; cdecl; forward; function show_tip_widget(user_data: gpointer): gboolean; cdecl; forward; procedure create_widgets; forward; function tip_event_handler(widget: PGtkWidget; event: PGdkEvent; user_data: gpointer): gboolean; cdecl; forward; function tips_button_press_event(widget: PGtkWidget; event: PGdkEventButton; user_data: gpointer):gboolean; cdecl; forward; procedure FileListTipsInstall(ATreeView: PGtkTreeView); begin g_signal_connect_after(ATreeView, 'event-after', G_CALLBACK(@event_handler), nil); g_signal_connect(ATreeView, 'leave-notify-event', G_CALLBACK(@on_leave_notify), nil); end; procedure file_list_tips_show_tip(AListView: PGtkTreeView; row: PGtkTreePath; column: PGtkTreeViewColumn); var Timeout: integer; is_active: gboolean; ms: gulong; sec: gdouble; begin if not tips_enabled then Exit; FileListTipsHide; g_object_get(G_OBJECT(FMain.FWidget), 'is-active', @is_active, nil); if not is_active then Exit; if Assigned(data_row) and (data_row <> row) then gtk_tree_path_free(data_row); data_panel := AListView; data_row := row; data_column := column; Timeout := ConstFileListTipsDelay; if tips_timer <> nil then begin sec := g_timer_elapsed(tips_timer, @ms); if (sec < 1) and (ms < ConstFileListTipsDelayNeighbour * 1000) then Timeout := 1; // DebugMsg(['Time elapsed = ', Double(sec), ':', integer(ms div 1000)]); end; timer_id := gtk_timeout_add(Timeout, show_tip_widget, nil); end; function event_handler(widget: PGtkWidget; event: PGdkEvent; user_data: gpointer): gboolean; cdecl; var view: PGtkTreeView; column: PGtkTreeViewColumn; path: PGtkTreePath; begin Result := False; view := GTK_TREE_VIEW(widget); if event^.any.window <> gtk_tree_view_get_bin_window(view) then Exit; case event^._type of GDK_KEY_PRESS, GDK_SCROLL: begin FileListTipsHide; if tips_timer <> nil then begin g_timer_destroy(tips_timer); tips_timer := nil; end; Result := True; end; GDK_FOCUS_CHANGE: begin Result := True; if event^.focus_change._in <> 1 then FileListTipsHide; end; GDK_MOTION_NOTIFY: begin Result := True; if not gtk_tree_view_get_path_at_pos(view, Trunc(event^.motion.x), Trunc(event^.motion.y), path, column, nil, nil) then begin FileListTipsHide; if tips_timer <> nil then begin g_timer_destroy(tips_timer); tips_timer := nil; end; Exit; end; if Assigned(path) and Assigned(column) then file_list_tips_show_tip(view, path, column); end; end; end; procedure draw_tip_widget(panel: PGtkTreeView; const text: Pgchar; x, y: integer); var requisition: TGtkRequisition; widget: PGtkWidget; w, scr_w, wx, wy: Integer; FontDesc: PPangoFontDescription; hadjustment: PGtkAdjustment; begin try if not Assigned(tip_window) then create_widgets; if not ConfUseSystemFont then begin FontDesc := pango_font_description_from_string(PChar(ConfPanelFont)); gtk_widget_modify_font(PGtkWidget(tip_label), FontDesc); end else gtk_widget_modify_font(PGtkWidget(tip_label), nil); gtk_label_set_markup(GTK_LABEL(tip_label), Text); widget := GTK_WIDGET(panel); hadjustment := gtk_tree_view_get_hadjustment(panel); x := x - Trunc(gtk_adjustment_get_value(hadjustment)); gdk_window_get_origin(widget^.window, @wx, @wy); x := x + wx; y := y + wy; scr_w := gdk_screen_width; gtk_label_set_line_wrap(tip_label, False); gtk_widget_size_request(GTK_WIDGET(tip_window), @requisition); if x + requisition.width > scr_w {PGtkWidget(panel)^.allocation.width} then begin gtk_label_set_line_wrap(tip_label, True); gtk_widget_size_request(GTK_WIDGET(tip_window), @requisition); end; w := requisition.width; if (x + w) > scr_w then x := scr_w - w else if x < 0 then x := 0; gtk_window_move(tip_window, x, y); except on E: Exception do DebugMsg(['*** Exception raised in function draw_tip_widget: (', E.ClassName, '): ', E.Message]); end; end; function gtk_tooltips_paint_window(widget: PGtkWidget; event: PGdkEventExpose; user_data: gpointer): gboolean; cdecl; begin gtk_paint_flat_box(widget^.style, widget^.window, GTK_STATE_NORMAL, GTK_SHADOW_OUT, nil, widget, 'tooltip', 0, 0, -1, -1); Result := False; end; procedure create_widgets; begin if Assigned(tip_window) then Exit; tip_window := GTK_WINDOW(gtk_window_new(GTK_WINDOW_POPUP)); gtk_widget_set_app_paintable(GTK_WIDGET(tip_window), True); gtk_window_set_resizable(tip_window, False); gtk_widget_set_name(GTK_WIDGET(tip_window), 'gtk-tooltips'); gtk_container_set_border_width(GTK_CONTAINER(tip_window), 4); gtk_widget_set_events(GTK_WIDGET(tip_window), GDK_POINTER_MOTION_MASK or GDK_BUTTON_PRESS_MASK or GDK_KEY_PRESS_MASK or GDK_FOCUS_CHANGE_MASK or GDK_SCROLL_MASK); g_signal_connect(tip_window, 'event', G_CALLBACK(@tip_event_handler), nil); g_signal_connect(tip_window, 'expose_event', G_CALLBACK(@gtk_tooltips_paint_window), tip_window); g_signal_connect(tip_window, 'button-press-event', G_CALLBACK(@tips_button_press_event), tip_window); tip_label := GTK_LABEL(gtk_label_new(nil)); gtk_misc_set_alignment(GTK_MISC(tip_label), 0, 0.5); gtk_widget_show(GTK_WIDGET(tip_label)); gtk_container_add(GTK_CONTAINER(tip_window), GTK_WIDGET(tip_label)); end; procedure FileListTipsHide; begin if not Assigned(tip_window) then Exit; if Assigned(data_row) then gtk_tree_path_free(data_row); data_row := nil; data_column := nil; if GTK_WIDGET_VISIBLE(tip_window) then begin gtk_widget_hide(GTK_WIDGET(tip_window)); if tips_timer = nil then tips_timer := g_timer_new; g_timer_start(tips_timer); // gdk_beep(); // DebugMsg(['FileListTipsHide, Setting last_hide_time to ', last_hide_time]); end; if timer_id <> 0 then begin gtk_timeout_remove(timer_id); timer_id := 0; end; end; function show_tip_widget(user_data: gpointer): gboolean; cdecl; var Text: PChar; Data: PDataItem; AListView: TGTKListView; function ColumnFits(ColNo, ColumnWidth: integer): boolean; var Layout: PPangoLayout; FontDesc: PPangoFontDescription; w, h: Integer; begin Text := Data^.ColumnData[FMain.ColumnSortIDs[ColNo + 1] - 1]; Layout := gtk_widget_create_pango_layout(AListView.FWidget, Text); if ConfDirsInBold and Data^.IsDir then begin Text := PChar(Format('%s', [QuoteMarkupStr(Text)])); pango_layout_set_markup(Layout, Text, Length(Text)); end; if not ConfUseSystemFont then begin FontDesc := pango_font_description_from_string(PChar(ConfPanelFont)); pango_layout_set_font_description(Layout, FontDesc); end; pango_layout_get_pixel_size(Layout, @w, @h); g_object_unref(Layout); Result := ColumnWidth > w; end; var Col, ColID: Integer; Rect: TGdkRectangle; iter: TGtkTreeIter; DataList: TList; TreePath: PGtkTreePath; IsFNameExtColumn, b: boolean; begin Result := False; try if not gtk_tree_model_get_iter(gtk_tree_view_get_model(data_panel), @iter, data_row) then Exit; if Pointer(data_panel) = Pointer(FMain.LeftListView.FWidget) then begin DataList := LeftPanelData; AListView := FMain.LeftListView; end else begin DataList := RightPanelData; AListView := FMain.RightListView; end; if not Application.GTKVersion_2_0_5_Up then gtk_tree_model_get(gtk_tree_view_get_model(data_panel), @iter, 0, @Data, -1) else begin TreePath := gtk_tree_path_new_from_string(PChar(IntToStr(gtk_tree_path_get_indices(data_row)^))); if not Assigned(TreePath) then Exit; AListView.ConvertPathToChild(TreePath); if (TreePath = nil) or (gtk_tree_path_get_indices(TreePath)^ > DataList.Count - 1) then begin FileListTipsHide; Exit; end; Data := DataList[gtk_tree_path_get_indices(TreePath)^]; gtk_tree_path_free(TreePath); end; if (Data = nil) or Data^.UpDir then begin FileListTipsHide; Exit; end; Col := gtk_tree_view_column_get_sort_column_id(data_column); ColID := FMain.ColumnSortIDs[Col + 1]; IsFNameExtColumn := ((ColID = 1) and (ColID < AListView.Columns.Count - 1) and (FMain.ColumnSortIDs[Col + 2] = 3)) or ((ColID = 3) and (ColID > 0) and (FMain.ColumnSortIDs[Col] = 1)); gtk_tree_view_get_cell_area(data_panel, data_row, data_column, @rect); if (Col = 0) and ConfUseFileTypeIcons then begin Inc(Rect.x, ConfRowHeightReal + 2); Dec(Rect.width, ConfRowHeightReal + 2); end; // Determine if the text fits into the cell area b := ColumnFits(Col, Rect.width - 10); if IsFNameExtColumn then begin gtk_tree_view_get_cell_area(data_panel, data_row, gtk_tree_view_get_column(data_panel, Col - Ord(ColID = 3) + Ord(ColID = 1)), @rect); if ((Col - Ord(ColID = 3) + Ord(ColID = 1)) = 0) and ConfUseFileTypeIcons then begin Inc(Rect.x, ConfRowHeightReal + 2); Dec(Rect.width, ConfRowHeightReal + 2); end; b := b and ColumnFits(Col - Ord(ColID = 3) + Ord(ColID = 1), Rect.width - 10); end; if b then begin FileListTipsHide; Exit; end; if IsFNameExtColumn then begin Text := PChar(Data^.FDisplayName); gtk_tree_view_get_cell_area(data_panel, data_row, gtk_tree_view_get_column(data_panel, Col - Ord(ColID = 3)), @rect); if ((Col - Ord(ColID = 3)) = 0) and ConfUseFileTypeIcons then begin Inc(Rect.x, ConfRowHeightReal + 2); Dec(Rect.width, ConfRowHeightReal + 2); end; end else Text := Data^.ColumnData[FMain.ColumnSortIDs[Col + 1] - 1]; Text := PChar(QuoteMarkupStr(Text)); if ConfDirsInBold and Data^.IsDir then Text := PChar(Format('%s', [Text])); draw_tip_widget(data_panel, Text, Rect.x, Rect.y + Rect.height + 2); // if Assigned(text) then g_free(text); if not GTK_WIDGET_VISIBLE(GTK_WIDGET(tip_window)) then gtk_widget_show(GTK_WIDGET(tip_window)); except on E: Exception do DebugMsg(['*** Exception raised in function show_tip_widget(user_data: gpointer): gboolean (', E.ClassName, '): ', E.Message]); end; end; procedure FileListTipsEnable; begin tips_enabled := True and (not ConfDisableFileTips); end; procedure FileListTipsDisable; begin tips_enabled := True; FileListTipsHide; end; procedure file_list_tips_hide_tip; begin FileListTipsHide; end; function tip_event_handler(widget: PGtkWidget; event: PGdkEvent; user_data: gpointer): gboolean; cdecl; begin Result := True; case event^._type of GDK_KEY_PRESS, {GDK_BUTTON_PRESS, }GDK_SCROLL, GDK_FOCUS_CHANGE{, GDK_MOTION_NOTIFY}: begin FileListTipsHide; if tips_timer <> nil then begin g_timer_destroy(tips_timer); tips_timer := nil; end; Exit; end; end; Result := False; end; function on_leave_notify(widget: PGtkWidget; event: PGdkEventCrossing; user_data: gpointer): gboolean; cdecl; begin if Assigned(tip_window) and (not GTK_WIDGET_VISIBLE(tip_window)) then begin FileListTipsHide; if tips_timer <> nil then begin g_timer_destroy(tips_timer); tips_timer := nil; end; end; Result := False; end; function tips_button_press_event(widget: PGtkWidget; event: PGdkEventButton; user_data: gpointer): gboolean; cdecl; var FSelection: PGtkTreeSelection; begin Result := True; if not Assigned(data_panel) then Exit; if not Assigned(data_row) then begin FileListTipsHide; if tips_timer <> nil then begin g_timer_destroy(tips_timer); tips_timer := nil; end; Exit; end; FMain.LastClick := Now; gtk_tree_view_set_cursor(data_panel, data_row, nil, False); FSelection := gtk_tree_view_get_selection(data_panel); gtk_tree_selection_select_path(FSelection, data_row); Result := False; FileListTipsHide; if tips_timer <> nil then begin g_timer_destroy(tips_timer); tips_timer := nil; end; gtk_widget_grab_focus(PGtkWidget(data_panel)); end; initialization timer_id := 0; data_row := nil; tips_timer := nil; end. tuxcmd-0.6.70+dfsg/UQuickConnect.pas0000644000175000017500000003272611300022643016266 0ustar salvisalvi(* Tux Commander - UQuickConnect - Quick connection dialog Copyright (C) 2008 Tomas Bzatek Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UQuickConnect; interface uses glib2, gdk2, gtk2, pango, SysUtils, Types, Classes, GTKControls, GTKForms, GTKStdCtrls, GTKExtCtrls, GTKConsts, GTKView, GTKUtils, GTKDialogs, GTKPixbuf, GTKClasses, GTKMenus, UCore, UCoreClasses, UVFSCore, UEngines, UConnectionManager; type TFQuickConnect = class(TGTKDialog) TitleFrame: TGTKFrame; TitleLabel: TGTKLabel; TitleEventBox: TGTKEventBox; TitleIcon: TGTKImage; TitleHBox: TGTKHBox; Table: TGTKTable; ActionButtonBox: TGTKHButtonBox; ConnectButton, StopButton, CloseButton: TGTKButton; Label1, Label2: TGTKLabel; URIComboBox: TGTKCombo; PluginOptionMenu: TGTKOptionMenu; procedure FormCreate(Sender: TObject); override; procedure FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormResponse(Sender: TObject; const ResponseID: integer); procedure CloseButtonClick(Sender: TObject); procedure ConnectButtonClick(Sender: TObject); procedure StopButtonClick(Sender: TObject); procedure ComboBoxKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); procedure ComboBoxChanged(Sender: TObject); private AFConnectionManager: TFConnectionManager; SavedData: string; procedure DoConnect; public SourcePanelEngine: TPanelEngine; ConnectedEngine: TVFSEngine; ConnectionManager: TFConnectionManager; end; var FQuickConnect: TFQuickConnect; implementation uses ULocale, UCoreUtils, UConfig, UConnectionProperties, UGnome, uVFSprototypes; procedure TFQuickConnect.FormCreate(Sender: TObject); var i: integer; MenuItem: TGTKMenuItem; begin SavedData := ''; ConnectedEngine := nil; ConnectionManager := nil; AFConnectionManager := nil; SetDefaultSize(435, 200); Caption := LANGFQuickConnect_Caption; Buttons := []; ShowSeparator := False; ConnectButton := TGTKButton.Create(Self); ConnectButton.Caption := LANGConnMgr_ConnectButton; // ConnectButton.Default := True; CloseButton := TGTKButton.CreateFromStock(Self, GTK_STOCK_CLOSE); StopButton := TGTKButton.CreateFromStock(Self, GTK_STOCK_STOP); StopButton.Visible := False; StopButton.Enabled := False; // Default := ConnectButton; ActionButtonBox := TGTKHButtonBox.Create(Self); ActionButtonBox.Layout := blEnd; ActionButtonBox.Spacing := 10; ActionButtonBox.BorderWidth := 0; ActionButtonBox.AddControlEnd(CloseButton); ActionButtonBox.AddControlEnd(ConnectButton); ActionButtonBox.AddControlEnd(StopButton); ActionArea.AddControlEx(ActionButtonBox, False, False, 0); TitleEventBox := TGTKEventBox.Create(Self); TitleLabel := TGTKLabel.Create(Self); TitleLabel.Caption := Format('%s', [LANGFQuickConnect_TitleLabel_Caption]); TitleLabel.UseMarkup := True; TitleLabel.XAlign := 0; TitleLabel.XPadding := 0; TitleLabel.YPadding := 3; TitleEventBox.ControlState := csPrelight; TitleFrame := TGTKFrame.CreateWithoutLabel(Self); TitleFrame.ShadowType := stShadowOut; TitleIcon := TGTKImage.Create(Self); TitleIcon.SetFromStock('gtk-connect', isLargeToolbar); TitleHBox := TGTKHBox.Create(Self); TitleHBox.Homogeneous := False; TitleHBox.AddControlEx(TGTKEventBox.Create(Self), False, False, 5); TitleHBox.AddControlEx(TitleIcon, False, False, 0); TitleHBox.AddControlEx(TitleLabel, True, True, 10); TitleEventBox.AddControl(TitleHBox); TitleFrame.AddControl(TitleEventBox); ClientArea.AddControlEx(TitleFrame, False, True, 0); Table := TGTKTable.Create(Self); Table.BorderWidth := 25; ClientArea.AddControlEx(Table, True, True, 0); URIComboBox := TGtkCombo.Create(Self); URIComboBox.DisableActivate; PluginOptionMenu := TGTKOptionMenu.Create(Self); Label1 := TGTKLabel.Create(Self); Label1.Caption := Format('%s', [LANGFQuickConnect_ConnectToURILabel_Caption]); Label1.FocusControl := URIComboBox.Entry; Label1.UseMarkup := True; Label1.UseUnderline := True; Label1.XAlign := 0; Label2 := TGTKLabel.Create(Self); Label2.Caption := LANGConnProp_VFSModule; Label2.FocusControl := PluginOptionMenu; Label2.UseUnderline := True; Label2.XAlign := 0; if QuickConnectHistory.Count > 0 then for i := 0 to QuickConnectHistory.Count - 1 do URIComboBox.Items.Append(QuickConnectHistory[i]); URIComboBox.Entry.Text := ''; // Fill the plugins menu MenuItem := TGTKMenuItem.CreateTyped(Self, itLabel); MenuItem.Caption := LANGConnProp_MenuItemCaption; PluginOptionMenu.Items.Add(MenuItem); for i := 0 to PluginList.Count - 1 do if TVFSPlugin(PluginList[i]).HandlesNetwork then begin MenuItem := TGTKMenuItem.CreateTyped(Self, itImageText); MenuItem.Data := PluginList[i]; MenuItem.SetCaptionPlain(Format('%s [%s]', [TVFSPlugin(PluginList[i]).ModuleName, ExtractFileName(TVFSPlugin(PluginList[i]).FullModulePath)])); PluginOptionMenu.Items.Add(MenuItem); end; // Find last used plugin if (Length(Trim(ConfQuickConnectPluginID)) > 0) and (PluginOptionMenu.Items.Count > 0) then for i := 0 to PluginOptionMenu.Items.Count - 1 do if (PluginOptionMenu.Items[i].Data <> nil) and (TVFSPlugin(PluginOptionMenu.Items[i].Data).ModuleID = ConfQuickConnectPluginID) then begin PluginOptionMenu.ItemIndex := i; Break; end; // Table.AddControlEx(1, 1, 2, 1, TGTKEventBox.Create(Self), [taoExpand, taoFill], [taoShrink], 0, 2); Table.AddControlEx(0, 0, 2, 1, Label1, [taoShrink, taoFill], [taoShrink], 0, 2); Table.AddControlEx(0, 1, 2, 1, URIComboBox, [taoExpand, taoFill], [taoShrink], 0, 5); Table.AddControlEx(0, 2, 1, 1, Label2, [taoShrink, taoFill], [taoShrink], 10, 5); Table.AddControlEx(1, 2, 1, 1, PluginOptionMenu, [taoExpand, taoFill], [taoShrink], 0, 5); CloseButton.OnClick := CloseButtonClick; ConnectButton.OnClick := ConnectButtonClick; StopButton.OnClick := StopButtonClick; OnKeyDown := FormKeyDown; OnClose := FormClose; OnResponse := FormResponse; URIComboBox.Entry.OnKeyDown := ComboBoxKeyDown; URIComboBox.Entry.OnChanged := ComboBoxChanged; ComboBoxChanged(Sender); end; procedure TFQuickConnect.FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); begin case Key of GDK_RETURN, GDK_KP_ENTER: if StopButton.Visible then StopButtonClick(Sender) else if ConnectButton.Enabled then DoConnect; GDK_ESCAPE: begin Accept := False; if StopButton.Visible then StopButtonClick(Sender) else ModalResult := mbCancel; end; end; end; procedure TFQuickConnect.ComboBoxKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); var Orig, s: string; i: integer; begin case Key of GDK_UP, GDK_DOWN: if Shift = [] then begin Accept := False; if QuickConnectHistory.Count > 0 then begin Orig := Trim(URIComboBox.Entry.Text); i := QuickConnectHistory.IndexOf(Orig); if Key = GDK_DOWN then begin if i < 0 then begin SavedData := Orig; i := 0; end else if QuickConnectHistory.Count > i + 1 then Inc(i); s := QuickConnectHistory[i]; end else begin if i < 0 then Exit else if i = 0 then begin s := SavedData; SavedData := ''; end else if QuickConnectHistory.Count > i then s := QuickConnectHistory[i - 1]; end; URIComboBox.Entry.Text := s; URIComboBox.Entry.SetFocus; URIComboBox.Entry.SelectAll; end; end; end; end; procedure TFQuickConnect.ComboBoxChanged(Sender: TObject); begin ConnectButton.Enabled := Length(Trim(URIComboBox.Entry.Text)) > 0; end; procedure TFQuickConnect.FormClose(Sender: TObject; var Action: TCloseAction); begin if Length(Trim(URIComboBox.Entry.Text)) > 0 then SaveItemToHistory(URIComboBox.Entry.Text, QuickConnectHistory); if (PluginOptionMenu.ItemIndex <> 0) and (PluginOptionMenu.Items[PluginOptionMenu.ItemIndex].Data <> nil) then ConfQuickConnectPluginID := TVFSPlugin(PluginOptionMenu.Items[PluginOptionMenu.ItemIndex].Data).ModuleID else ConfQuickConnectPluginID := ''; end; procedure TFQuickConnect.FormResponse(Sender: TObject; const ResponseID: integer); var Action: TCloseAction; begin FormClose(Sender, Action); end; (********************************************************************************************************************************) procedure TFQuickConnect.CloseButtonClick(Sender: TObject); begin ModalResult := mbCancel; end; procedure TFQuickConnect.ConnectButtonClick(Sender: TObject); begin DoConnect; end; procedure TFQuickConnect.StopButtonClick(Sender: TObject); begin if (AFConnectionManager <> nil) and (AFConnectionManager.Thread <> nil) then AFConnectionManager.Thread.FCancelRequested := True; end; procedure TFQuickConnect.DoConnect; var Engine: TVFSEngine; i, j: integer; VFSPlugin: TVFSPlugin; URI, Scheme: string; DontShowAgain: boolean; res: TMessageButton; begin if ConnectionManager <> nil then AFConnectionManager := ConnectionManager else AFConnectionManager := TFConnectionManager.Create(Self); if PluginList.Count = 0 then begin Application.MessageBox(PGtkWindow(FWidget), LANGThereIsNoModuleAvailable, [mbOK], mbError, mbOK, mbOK); Exit; end; // Find VFS module to use for this connection VFSPlugin := nil; if (PluginOptionMenu.ItemIndex <> 0) and (PluginOptionMenu.Items[PluginOptionMenu.ItemIndex].Data <> nil) then begin VFSPlugin := PluginOptionMenu.Items[PluginOptionMenu.ItemIndex].Data; ConfQuickConnectPluginID := VFSPlugin.ModuleID; end else ConfQuickConnectPluginID := ''; if VFSPlugin = nil then begin Scheme := ''; if Pos('://', URIComboBox.Entry.Text) > 0 then Scheme := Copy(URIComboBox.Entry.Text, 1, Pos('://', URIComboBox.Entry.Text) - 1); for i := 0 to PluginList.Count - 1 do begin if Length(TVFSPlugin(PluginList[i]).Services) > 0 then for j := 0 to Length(TVFSPlugin(PluginList[i]).Services) - 1 do if WideCompareText(TVFSPlugin(PluginList[i]).Services[j], Scheme) = 0 then begin VFSPlugin := PluginList[i]; Break; end; if VFSPlugin <> nil then Break; end; if VFSPlugin = nil then VFSPlugin := PluginList[0]; // Fallback in hope some other plugin can handle it end; if (SourcePanelEngine is TVFSEngine) and ConfReplaceConnectionWarning then begin DontShowAgain := False; res := MessageBoxShowOnce(PGtkWindow(FWidget), LANGCloseOpenConnection, LANGDontShowAgain, DontShowAgain, [mbYes, mbNo], mbWarning, mbYes, mbNo); if DontShowAgain then begin ConfReplaceConnectionWarning := False; WriteMainGUISettings; end; if res <> mbYes then Exit; end; Table.Enabled := False; CloseButton.Enabled := False; ConnectButton.Enabled := False; ConnectButton.Visible := False; StopButton.Enabled := True; StopButton.Visible := True; StopButton.Default := True; StopButton.SetFocus; // Construct the VFS Engine and try to open the connection Engine := TVFSEngine.Create(VFSPlugin); Engine.ParentEngine := SourcePanelEngine; Engine.SavePath := SourcePanelEngine.Path; Engine.OpenedFromQuickConnect := True; Engine.CustomPluginIDSave := ConfQuickConnectPluginID; URI := URIComboBox.Entry.Text; Engine.Password := URIRipPassword(URI, True); if not AFConnectionManager.DoConnectInternal(URI, Engine, FWidget, True) then begin if not AFConnectionManager.FSilenceError then Application.MessageBox(PGtkWindow(FWidget), LANGCouldntOpenURI, [mbOK], mbError, mbOK, mbOK); Table.Enabled := True; CloseButton.Enabled := True; ConnectButton.Enabled := True; ConnectButton.Visible := True; StopButton.Visible := False; StopButton.Enabled := False; URIComboBox.Entry.SetFocus; Engine.Free; Exit; end; Engine.Password := ''; // Security precaution StopButton.Enabled := False; ConnectedEngine := Engine; if ConnectionManager = nil then AFConnectionManager.Free; ModalResult := mbOK; end; end. tuxcmd-0.6.70+dfsg/tuxcmd.dpr0000644000175000017500000000671111300022643015054 0ustar salvisalvi(* Tux Commander - an open-source file manager with 2 panels side by side written for GTK2 Copyright (C) 2007 by Tomas Bzatek Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) program tuxcmd; uses {$IFDEF FPC} cthreads, cwstring, {$ENDIF} GTKForms, UConfig in 'UConfig.pas', UGnome in 'UGnome.pas', UMain in 'UMain.pas' {FMain}, UCore in 'UCore.pas', UEngines in 'UEngines.pas', USelect in 'USelect.pas' {FSelect}, URemoteWait in 'URemoteWait.pas' {FRemoteWait}, UDirDelete in 'UDirDelete.pas' {FDirDelete}, UProgress in 'UProgress.pas' {FProgress}, UCopyMove in 'UCopyMove.pas' {FCopyMove}, UOverwrite in 'UOverwrite.pas' {FOverwrite}, UCoreUtils in 'UCoreUtils.pas', ULocale in 'ULocale.pas', UChecksum in 'UChecksum.pas' {FChecksum}, UChecksumDruid in 'UChecksumDruid.pas' {FChecksumDruid}, USplitFile in 'USplitFile.pas' {FSplitFile}, UFileAssoc in 'UFileAssoc.pas', UFileTypeSettings in 'UFileTypeSettings.pas' {FFileTypeSettings}, UChmod in 'UChmod.pas' {FChmod}, UChown in 'UChown.pas' {FChown}, UCoreClasses in 'UCoreClasses.pas', USymlink in 'USymlink.pas' {FSymlink}, UPreferences in 'UPreferences.pas' {FPreferences}, UViewer in 'UViewer.pas' {FViewer}, UTestPlugin in 'UTestPlugin.pas', UMounterPrefs in 'UMounterPrefs.pas', UColumns in 'UColumns.pas', UVFSCore in 'vfs/UVFSCore.pas', uVFSprototypes in 'vfs/uVFSprototypes.pas', UToolTips in 'UToolTips.pas', UConnectionManager in 'UConnectionManager.pas', UConnectionProperties in 'UConnectionProperties.pas', USearch in 'USearch.pas', UGlibThreads in 'UGlibThreads.pas', URunFromVFS in 'URunFromVFS.pas', ULibc in 'ULibc.pas', UQuickConnect in 'UQuickConnect.pas', UTranslation_EN in 'translations/UTranslation_EN.pas', UTranslation_CZ in 'translations/UTranslation_CZ.pas', UTranslation_RU in 'translations/UTranslation_RU.pas', UTranslation_DE in 'translations/UTranslation_DE.pas', UTranslation_SV in 'translations/UTranslation_SV.pas', UTranslation_FR in 'translations/UTranslation_FR.pas', UTranslation_ES in 'translations/UTranslation_ES.pas', UTranslation_PL in 'translations/UTranslation_PL.pas', UTranslation_UA in 'translations/UTranslation_UA.pas', UTranslation_SR in 'translations/UTranslation_SR.pas', UTranslation_HU in 'translations/UTranslation_HU.pas', UTranslation_IT in 'translations/UTranslation_IT.pas', UTranslation_CHT in 'translations/UTranslation_CHT.pas', UTranslation_CHS in 'translations/UTranslation_CHS.pas', UTranslation_SK in 'translations/UTranslation_SK.pas', UTranslation_PT in 'translations/UTranslation_PT.pas'; {$IFNDEF FPC} {$R *.res} {$ENDIF} begin Application.Initialize; Application.CreateForm(TFMain, FMain); Application.Run; end. tuxcmd-0.6.70+dfsg/UCore.pas0000644000175000017500000037505611300022643014576 0ustar salvisalvi(* Tux Commander - UCore - Some engine-related core functions Copyright (C) 2008 Tomas Bzatek Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UCore; interface uses glib2, gtk2, SyncObjs, Classes, GTKForms, GTKView, ULibc, UEngines, UCoreUtils, UProgress, UVFSCore, uVFSprototypes; function FillPanel(List: TList; ListView: TGTKListView; Engine: TPanelEngine; LeftPanel: boolean): boolean; function MakeDirectory(ListView: TGTKListView; Engine: TPanelEngine; LeftPanel: boolean; NewDir: string): boolean; procedure FindNextSelected(ListView: TGTKListView; DataList: TList; var Item1, Item2: string); procedure UnselectAll(ListView: TGTKListView; DataList: TList); type TVFSCallbackThread = class(TThread) private FThreadID: __pthread_t; FCopyProgressFunc: TEngineProgressFunc; procedure PrepareExecute; // Call this right after thread has been started public AEngine: TPanelEngine; APlugin: TVFSPlugin; VFSCallbackEvent: TSimpleEvent; VFSAskQuestion_Message: PChar; VFSAskQuestion_Choices: PPChar; VFSAskQuestion_Choice: PInteger; VFSAskQuestion_Display: boolean; VFSAskPassword_Message: PChar; VFSAskPassword_default_user: PChar; VFSAskPassword_default_domain: PChar; VFSAskPassword_default_password: PChar; VFSAskPassword_flags: TVFSAskPasswordFlags; VFSAskPassword_username: PPChar; VFSAskPassword_password: PPChar; VFSAskPassword_anonymous: PInteger; VFSAskPassword_domain: PPChar; VFSAskPassword_password_save: PVFSPasswordSave; VFSAskPassword_Display: boolean; VFSAskPassword_Result: LongBool; VFSCallbackCancelled: boolean; VFSConnectionManagerMode: boolean; VFSQuickConnectMode: boolean; VFSDialogsParentWindow: PGtkWidget; FCancelRequested: boolean; constructor Create(CreateSuspended: boolean); destructor Destroy; override; end; TWorkerThread = class(TVFSCallbackThread) private GUIMutex: TCriticalSection; protected procedure Execute; override; procedure CommitGUIUpdate; public FCancelled: boolean; // Data to update FProgress1Pos, FProgress2Pos, FProgress1Max, FProgress2Max: Int64; FProgress1Text, FProgress2Text, FLabel1Text, FLabel2Text: string; FGUIProgress1Pos, FGUIProgress2Pos, FGUIProgress1Max, FGUIProgress2Max: Int64; FGUIProgress1Text, FGUIProgress2Text, FGUILabel1Text, FGUILabel2Text: string; FGUIChanged: boolean; FCancelMessage: string; FDoneThread, FShowCancelMessage, FDialogShowDirDelete, FDialogShowOverwrite, FDialogShowNewDir, FDialogShowMsgBox: boolean; FDialogResultDirDelete, FDialogResultOverwrite, FDialogResultNewDir: integer; FDirDeleteButtonsType: integer; FDirDeleteLabel1Text, FDirDeleteLabel2Text, FDirDeleteLabel3Text, FDirDeleteCaption: string; FDirDeleteLabel2Visible, FDirDeleteLabel3Visible: boolean; FOverwriteButtonsType: integer; FOverwriteFromLabel, FOverwriteFromInfoLabel, FOverwriteToLabel, FOverwriteToInfoLabel, FOverwriteRenameStr, FOverwriteSourceFile, FOverwriteDestFile: string; FNewDirCaption, FNewDirLabel, FNewDirEdit: string; FMsgBoxText: string; FMsgBoxButtons: TMessageButtons; FMsgBoxStyle: TMessageStyle; FMsgBoxDefault, FMsgBoxEscape, FDialogResultMsgBox: TMessageButton; FCallbackLockEvent: TSimpleEvent; // Parameters ProgressForm: TFProgress; Engine, SrcEngine, DestEngine: TPanelEngine; LeftPanel: boolean; DataList: TList; ParamBool1, ParamBool2, ParamBool3, ParamBool4, ParamBool5: boolean; ParamString1, ParamString2, ParamString3: string; ParamPointer1: Pointer; ParamInt64: Int64; ParamInt1, ParamInt2: integer; ParamLongWord1: LongWord; ParamCardinal1, ParamCardinal2: Cardinal; ParamFloat1, ParamFloat2: Extended; ParamDataItem1: PDataItem; WorkerProcedure: procedure(SenderThread: TWorkerThread); SelectedItem: PDataItem; ExtractFromVFSMode, ExtractFromVFSAll: boolean; ErrorHappened: boolean; constructor Create; destructor Destroy; override; procedure CancelIt; function Cancelled: boolean; procedure UpdateProgress1(const Progress: Int64; const ProgressText: string); procedure UpdateProgress2(const Progress: Int64; const ProgressText: string); procedure SetProgress1Params(const ProgressMax: Int64); procedure SetProgress2Params(const ProgressMax: Int64); procedure UpdateCaption1(const CaptionText: string); procedure UpdateCaption2(const CaptionText: string); function ShowDirDeleteDialog(ButtonsType: integer; const Label1Text: string; const Label2Text: string = ''; const Label3Text: string = ''; const DirDeleteCaption: string = ''): integer; function ShowOverwriteDialog(ButtonsType: integer; const FromLabel, FromInfoLabel, ToLabel, ToInfoLabel, RenameStr, SourceFile, DestFile: string): integer; function ShowNewDirDialog(Caption, LabelCaption, Edit: string): integer; function ShowMessageBox(const Text: string; Buttons: TMessageButtons; Style: TMessageStyle; Default, Escape: TMessageButton): TMessageButton; end; TGetDirSizeThread = class(TThread) private FCancelled: boolean; protected procedure Execute; override; public Finished: boolean; Engine: TPanelEngine; Path: string; Result: Int64; constructor Create; procedure CancelIt; end; TOpenDirThread = class(TVFSCallbackThread) private function ChangeDir(Engine: TPanelEngine; Path: string; var SelItem: string; const AutoFallBack: boolean): integer; protected procedure Execute; override; public APath: string; ASelItem: string; AAutoFallBack: boolean; ADirList: TList; ChDirResult, ListingResult, VFSOpenResult: integer; Finished, CancelIt: boolean; RunningTime: Int64; AFullPath, AHighlightItem: string; constructor Create; destructor Destroy; override; end; TOpenConnectionThread = class(TVFSCallbackThread) private protected procedure Execute; override; public URI: string; Finished: boolean; OpenResult: boolean; constructor Create; destructor Destroy; override; end; // Thread aware functions (also half-thread-safe) without any piece of GTK code procedure DeleteFilesWorker(SenderThread: TWorkerThread); procedure CopyFilesWorker(SenderThread: TWorkerThread); procedure MergeFilesWorker(SenderThread: TWorkerThread); procedure SplitFilesWorker(SenderThread: TWorkerThread); procedure ChmodFilesWorker(SenderThread: TWorkerThread); procedure ChownFilesWorker(SenderThread: TWorkerThread); procedure DummyThreadWorker(SenderThread: TWorkerThread); // Classic functions - don't need progress window function CreateSymlink(const FileName, PossibleNewName: string; Engine: TPanelEngine) : boolean; function EditSymlink(const FileName: string; Engine: TPanelEngine) : boolean; procedure GetDirSize(AListView: TGTKListView; Engine: TPanelEngine; DataList: TList; AllItems: boolean); type TMounterItem = class public // Strings are in locale encoding (ANSI) DisplayText, MountPath, Device, IconPath, MountCommand, UmountCommand: string; DeviceType: integer; function Mounted: boolean; function IsInFSTab: boolean; function Mount: boolean; function Umount: boolean; function Eject: boolean; end; TConnMgrItem = class public ConnectionName: string; ServiceType, Server, Username, Password, TargetDir: string; PluginID: string; // leave blank for default function GetURI(IncludePassword: boolean): string; end; procedure FillDefaultFstabMounterItems; procedure ProcessProgressThread(SenderThread: TWorkerThread; ProgressForm: TFProgress); function CRCGetInfo(FileName: string; Engine: TPanelEngine; var TargetName: string; var TargetCRC: LongWord; var Size: Int64): boolean; function ComputeBlockSize(TotalSize: Int64): longint; function PurgeDirectory(APath: string): boolean; procedure CleanTempDirs; procedure DebugWriteListSL(List: TList); procedure DebugWriteList(List: TList); {$IFDEF KYLIX} const INFINITE = Cardinal(-1); {$ENDIF} var LeftLocalEngine, RightLocalEngine: TPanelEngine; LeftPanelData, RightPanelData, AssocList, MounterList, ConnectionMgrList: TList; CommandLineHistory, Bookmarks: TStringList; LeftPanelTabs, RightPanelTabs: TStringList; LeftTabSortIDs, RightTabSortIDs: TList; LeftTabSortTypes, RightTabSortTypes: TList; FMainEscPressed: boolean; UsedTempPaths: TStringList; SelectHistory, SearchHistory, SearchTextHistory: TStringList; QuickConnectHistory: TStringList; (********************************************************************************************************************************) implementation (********************************************************************************************************************************) uses SysUtils, DateUtils, StrUtils, UConfig, UDirDelete, UOverwrite, ULocale, UNewDir, UFileAssoc, USymlink, UCoreClasses, URemoteWait, UMain, UGnome, crc; (********************************************************************************************************************************) constructor TVFSCallbackThread.Create(CreateSuspended: boolean); begin inherited Create(CreateSuspended); APlugin := nil; VFSCallbackEvent := TSimpleEvent.Create; VFSAskQuestion_Display := False; VFSAskPassword_Display := False; VFSCallbackCancelled := False; VFSConnectionManagerMode := False; VFSQuickConnectMode := False; VFSDialogsParentWindow := FMain.FWidget; FCancelRequested := False; end; destructor TVFSCallbackThread.Destroy; begin VFSCallbackEvent.Free; inherited Destroy; end; procedure TVFSCallbackThread.PrepareExecute; begin FThreadID := pthread_self; VFSCallbackCancelled := False; end; (********************************************************************************************************************************) procedure vfs_ask_question_callback(const AMessage: PChar; const Choices: PPChar; choice: PInteger; cancel_choice: Integer; user_data: Pointer); cdecl; var Thread: TVFSCallbackThread; begin Thread := user_data; if (Thread = nil) { or (not (Thread is TVFSCallbackThread))} then begin DebugMsg(['(ERROR): vfs_ask_question_callback: user_data is not TVFSCallbackThread, exiting.']); Exit; end; if Thread.FCancelRequested then begin DebugMsg(['!! (WARNING): vfs_ask_question_callback: FCancelRequested.']); if (choice <> nil) then choice^ := -1; Thread.VFSCallbackCancelled := True; Exit; end; if pthread_self = Application.ThreadID then begin DebugMsg(['!! (WARNING): vfs_ask_question_callback called from the main thread, expected spawn from a TVFSCallbackThread']); HandleVFSAskQuestionCallback(Thread.VFSDialogsParentWindow, AMessage, Choices, choice); if (choice <> nil) then Thread.VFSCallbackCancelled := (choice^ < 0) or (choice^ = cancel_choice); Exit; end; if pthread_self = Thread.FThreadID then begin DebugMsg(['******* vfs_ask_question_callback spawned, user_data = 0x', IntToHex(QWord(user_data), 16), ', ThreadID = 0x', IntToHex(pthread_self, 16)]); Thread.VFSAskQuestion_Message := AMessage; Thread.VFSAskQuestion_Choices := Choices; Thread.VFSAskQuestion_Choice := choice; Thread.VFSAskQuestion_Display := True; Thread.VFSCallbackEvent.ResetEvent; Thread.VFSCallbackEvent.WaitFor(INFINITE); DebugMsg(['******* thread: resuming...']); if (choice <> nil) then Thread.VFSCallbackCancelled := (choice^ < 0) or (choice^ = cancel_choice); Exit; end; DebugMsg(['!! (ERROR): vfs_ask_question_callback spawned neither from the main thread nor from active TVFSCallbackThread, dropping the callback to prevent data corruption.']); DebugMsg([' ThreadID = 0x', IntToHex(pthread_self, 16), ', TVFSCallbackThread ID = 0x', IntToHex(Thread.FThreadID, 16), ', Application.ThreadID = 0x', IntToHex(Application.ThreadID, 16)]); end; function vfs_ask_password_callback(const AMessage: PChar; const default_user: PChar; const default_domain: PChar; const default_password: PChar; flags: TVFSAskPasswordFlags; username, password: PPChar; anonymous: PInteger; domain: PPChar; password_save: PVFSPasswordSave; user_data: Pointer): LongBool; cdecl; var Thread: TVFSCallbackThread; def_pass: PChar; begin Result := False; Thread := user_data; if (Thread = nil) { or (not (Thread is TVFSCallbackThread))} then begin DebugMsg(['(ERROR): vfs_ask_question_callback: user_data is not TVFSCallbackThread, exiting.']); Exit; end; if Thread.FCancelRequested then begin DebugMsg(['!! (WARNING): vfs_ask_password_callback: FCancelRequested.']); Result := False; Thread.VFSCallbackCancelled := True; Exit; end; def_pass := default_password; // Disable password saving if requested if ConfConnMgrDoNotSynchronizeKeyring then begin flags := flags and (not VFS_ASK_PASSWORD_SAVING_SUPPORTED); if password_save <> nil then password_save^ := VFS_PASSWORD_SAVE_NEVER; end; if ConfConnMgrDoNotSavePasswords then flags := flags and (not VFS_ASK_PASSWORD_SAVE_INTERNAL) else if Thread.VFSConnectionManagerMode then flags := flags or VFS_ASK_PASSWORD_SAVE_INTERNAL; // Use stored password, if previously set if (((flags and VFS_ASK_PASSWORD_ARCHIVE_MODE) = VFS_ASK_PASSWORD_ARCHIVE_MODE) or Thread.VFSConnectionManagerMode or Thread.VFSQuickConnectMode) and (password <> nil) and (Thread.AEngine is TVFSEngine) and (Length((Thread.AEngine as TVFSEngine).Password) > 0) then begin if not (Thread.AEngine as TVFSEngine).PasswordUsed then begin DebugMsg([' (II) vfs_ask_password_callback: reusing manually set password']); password^ := g_strdup(PChar((Thread.AEngine as TVFSEngine).Password)); (Thread.AEngine as TVFSEngine).PasswordUsed := True; if (password_save <> nil) and Thread.VFSConnectionManagerMode then if ConfConnMgrDoNotSynchronizeKeyring then password_save^ := VFS_PASSWORD_SAVE_NEVER else password_save^ := VFS_PASSWORD_SAVE_PERMANENTLY; Thread.VFSCallbackCancelled := False; Result := True; Exit; end else if (flags and VFS_ASK_PASSWORD_ARCHIVE_MODE) = VFS_ASK_PASSWORD_ARCHIVE_MODE then def_pass := PChar((Thread.AEngine as TVFSEngine).Password); end; // Ask for password if pthread_self = Application.ThreadID then begin DebugMsg(['!! (WARNING): vfs_ask_password_callback called from the main thread, expected spawn from a TVFSCallbackThread']); Result := HandleVFSAskPasswordCallback(Thread.VFSDialogsParentWindow, AMessage, default_user, default_domain, def_pass, flags, username, password, anonymous, domain, password_save); Thread.VFSCallbackCancelled := Result = False; end else if pthread_self = Thread.FThreadID then begin DebugMsg(['******* vfs_ask_password_callback spawned, user_data = 0x', IntToHex(QWord(user_data), 16), ', ThreadID = 0x', IntToHex(pthread_self, 16), ', Application.ThreadID = 0x', IntToHex(Application.ThreadID, 16)]); Thread.VFSAskPassword_Message := AMessage; Thread.VFSAskPassword_default_user := default_user; Thread.VFSAskPassword_default_domain := default_domain; Thread.VFSAskPassword_default_password := def_pass; Thread.VFSAskPassword_flags := flags; Thread.VFSAskPassword_username := username; Thread.VFSAskPassword_password := password; Thread.VFSAskPassword_anonymous := anonymous; Thread.VFSAskPassword_domain := domain; Thread.VFSAskPassword_password_save := password_save; Thread.VFSAskPassword_Display := True; Thread.VFSAskPassword_Result := False; Thread.VFSCallbackEvent.ResetEvent; Thread.VFSCallbackEvent.WaitFor(INFINITE); DebugMsg(['******* thread: resuming...']); Result := Thread.VFSAskPassword_Result; Thread.VFSCallbackCancelled := Result = False; end else begin DebugMsg(['!! (ERROR): vfs_ask_password_callback spawned neither from the main thread nor from active TVFSCallbackThread, dropping the callback to prevent data corruption.']); DebugMsg([' ThreadID = 0x', IntToHex(pthread_self, 16), ', TVFSCallbackThread ID = 0x', IntToHex(Thread.FThreadID, 16), ', Application.ThreadID = 0x', IntToHex(Application.ThreadID, 16)]); end; // Save password back to the engine if Result and (password <> nil) and (strlen(password^) > 0) and (Thread.AEngine is TVFSEngine) and (((flags and VFS_ASK_PASSWORD_ARCHIVE_MODE) = VFS_ASK_PASSWORD_ARCHIVE_MODE) or (Thread.VFSConnectionManagerMode and (password_save <> nil) and (password_save^ = VFS_PASSWORD_SAVE_PERMANENTLY))) then begin (Thread.AEngine as TVFSEngine).Password := string(password^); (Thread.AEngine as TVFSEngine).PasswordUsed := True; end; // Strip password saving if requested if ConfConnMgrDoNotSynchronizeKeyring and (password_save <> nil) then password_save^ := VFS_PASSWORD_SAVE_NEVER; end; function vfs_progress_callback(position, max: Int64; user_data: Pointer): LongBool; cdecl; begin // DebugMsg(['VFSCopyCallBackFunc called (iPos = ', iPos, ', iMax = ', iMax, ')']); Result := True; if not Assigned(user_data) then Exit; if Assigned(TVFSCallbackThread(user_data).FCopyProgressFunc) then try Result := TVFSCallbackThread(user_data).FCopyProgressFunc(user_data, position); except on E: Exception do DebugMsg(['*** Exception raised in vfs_progress_callback(position=', position, ', max=', max, ', user_data=', user_data, '): (', E.ClassName, '): ', E.Message]); end; end; (********************************************************************************************************************************) procedure ClearListData(List: TList); var i: integer; begin try if not Assigned(List) then Exit; if List.Count > 0 then for i := 0 to List.Count - 1 do FreeDataItem(PDataItem(List[i])); List.Clear; except on E: Exception do DebugMsg(['*** Exception raised in UCore.ClearListData (', E.ClassName, '): ', E.Message]); end; end; (********************************************************************************************************************************) procedure AddUpDirItem(ListView: TGTKListView; DataList: TList); var ListItem: TGTKListItem; Data: PDataItem; j: integer; s: string; begin if ListView.Items.Count = 0 then ListItem := ListView.Items.Add else ListItem := ListView.Items[0]; Data := malloc(SizeOf(TDataItem)); memset(Data, 0, SizeOf(TDataItem)); with Data^ do begin UpDir := True; IsDotFile := False; FName := nil; FDisplayName := nil; LnkPointTo := nil; Selected := False; IsLnk := False; for j := 0 to Length(ColumnData) - 1 do ColumnData[j] := nil; for j := 1 to ConstNumPanelColumns do if ConfColumnVisible[j] then case ConfColumnIDs[j] of 1, 2: begin if ConfDisableDirectoryBrackets then s := '..' else s := '[..]'; ColumnData[ConfColumnIDs[j] - 1] := strdup(PChar(s)); end; 4: ColumnData[ConfColumnIDs[j] - 1] := strdup(PChar(LANGDIR)); end; Icon := UpDirIcon.FPixbuf; ItemColor := NormalItemGDKColor; if not Application.GTKVersion_2_0_5_Up then ListItem.SetValue(0, Data); end; ListItem.Data := Data; DataList.Add(Data); end; (********************************************************************************************************************************) function FillPanel(List: TList; ListView: TGTKListView; Engine: TPanelEngine; LeftPanel: boolean): boolean; var DataList: TList; i, j, SortColumnID, ItemCount : integer; ListItem : TGTKListItem; Ext, s, s2 : string; SortOrder: TGTKTreeViewSortOrder; Time1, Time2: TDateTime; IsRoot: boolean; UsrManager: TUserManager; begin Result := False; try UsrManager := nil; if LeftPanel then DataList := LeftPanelData else DataList := RightPanelData; IsRoot := (Engine.Path = '/') and (not ((Engine is TVFSEngine) and (Engine as TVFSEngine).ArchiveMode)); { Time1 := Now; Time2 := Now; DebugMsg(['Get Listing: ', SecondOf(Time2 - Time1), ':', MillisecondOf(Time2 - Time1)]); } Time1 := Now; SortColumnID := ListView.SortColumnID; SortOrder := ListView.SortOrder; ListView.SetSortInfo(-1, soAscending); ClearListData(DataList); if List.Count + Ord(not IsRoot) < ListView.Items.Count then for i := ListView.Items.Count - 1 downto List.Count + Ord(not IsRoot) do ListView.Items.Delete(i); ItemCount := ListView.Items.Count; Time2 := Now; DebugMsg(['Items clear: ', SecondOf(Time2 - Time1), ':', MillisecondOf(Time2 - Time1)]); Time1 := Now; if ((Engine is TVFSEngine) and (Engine as TVFSEngine).ArchiveMode) or (Engine.Path <> '/') then AddUpDirItem(ListView, DataList); if List.Count > 0 then for i := 0 to List.Count - 1 do with PDataItem(List[i])^ do begin if i + Ord(not IsRoot) > ItemCount - 1 then ListItem := ListView.Items.Add else ListItem := ListView.Items[i + Ord(not IsRoot)]; s := String(FDisplayName); Ext := ''; if not IsDir then SeparateExt(s, s, Ext); // Ext := ANSIToUTF8(Ext); // Fill the column data for j := 1 to ConstNumPanelColumns do if ConfColumnVisible[j] then case ConfColumnIDs[j] of 1: begin if IsDir and (not ConfDisableDirectoryBrackets) then s2 := Format('[%s]', [s]) else s2 := s; ColumnData[ConfColumnIDs[j] - 1] := strdup(PChar(s2)); end; 2: begin if IsDir and (not ConfDisableDirectoryBrackets) then s2 := Format('[%s]', [FDisplayName]) else s2 := FDisplayName; ColumnData[ConfColumnIDs[j] - 1] := strdup(PChar(s2)); end; 3: ColumnData[ConfColumnIDs[j] - 1] := strdup(PChar(Ext)); 4: begin if IsDir then s2 := LANGDIR else s2 := FormatSize(Size, 0); ColumnData[ConfColumnIDs[j] - 1] := strdup(PChar(s2)); end; 5: begin s2 := FormatDate(ModifyTime, True, True); ColumnData[ConfColumnIDs[j] - 1] := strdup(PChar(s2)); end; 6: begin s2 := FormatDate(ModifyTime, False, True); ColumnData[ConfColumnIDs[j] - 1] := strdup(PChar(s2)); end; 7: begin s2 := FormatDate(ModifyTime, True, False); ColumnData[ConfColumnIDs[j] - 1] := strdup(PChar(s2)); end; 8: begin if ConfShowTextUIDs then begin if not Assigned(UsrManager) then UsrManager := TUserManager.Create; s2 := UsrManager.GetUserName(UID, False); end else s2 := IntToStr(UID); ColumnData[ConfColumnIDs[j] - 1] := strdup(PChar(s2)); end; 9: begin if ConfShowTextUIDs then begin if not Assigned(UsrManager) then UsrManager := TUserManager.Create; s2 := UsrManager.GetGroupName(GID, False); end else s2 := IntToStr(GID); ColumnData[ConfColumnIDs[j] - 1] := strdup(PChar(s2)); end; 10: begin if ConfOctalPerm then s2 := Format('%.4d', [AttrToOctal(Mode mod $1000)]) else s2 := AttrToStr(Mode); ColumnData[ConfColumnIDs[j] - 1] := strdup(PChar(s2)); end; end; ItemColor := nil; AssignFileType(List[i]); DataList.Add(List[i]); ListItem.Data := DataList[DataList.Count - 1]; if not Application.GTKVersion_2_0_5_Up then ListItem.SetValue(0, List[i]); end; Time2 := Now; DebugMsg(['Fill panel: ', SecondOf(Time2 - Time1), ':', MillisecondOf(Time2 - Time1)]); // DebugWriteList(DataList); if Assigned(UsrManager) then UsrManager.Free; Time1 := Now; ListView.SetSortInfo(SortColumnID, SortOrder); Time2 := Now; DebugMsg(['Sorting: ', SecondOf(Time2 - Time1), ':', MillisecondOf(Time2 - Time1)]); DebugMsg(['------------------------------']); Result := True; except on E: Exception do begin Application.MessageBox(Format(LANGErrorGettingListingForSPanelNoPath, [LANGPanelStrings[LeftPanel], E.Message]), [mbOK], mbError, mbNone, mbOK); Exit; end; end; end; (********************************************************************************************************************************) function MakeDirectory(ListView: TGTKListView; Engine: TPanelEngine; LeftPanel: boolean; NewDir: string): boolean; var Error: integer; begin Result := False; try Error := Engine.MakeDir(IncludeTrailingPathDelimiter(Engine.Path) + NewDir); if Error <> 0 then begin Application.MessageBox(Format(LANGErrorCreatingNewDirectorySInSPanel, [StrToUTF8(NewDir), LANGPanelStrings[LeftPanel], GetErrorString(Error)]), [mbOK], mbError, mbNone, mbOK); Exit; end; Result := True; except on E: Exception do begin Application.MessageBox(Format(LANGErrorCreatingNewDirectorySInSPanelNoPath, [LANGPanelStrings[LeftPanel], E.Message]), [mbOK], mbError, mbNone, mbOK); Exit; end; end; end; (********************************************************************************************************************************) procedure DeleteFilesWorker(SenderThread: TWorkerThread); var SkipAll: boolean; function HandleDelete(AFileRec: PDataItemSL): boolean; var Res, Response: integer; begin Result := True; // DebugMsg(['Debug: IsDir: ', AFileRec^.IsDir, ', Stage1: ', AFileRec^.Stage1, ', IsLnk: ', AFileRec^.IsLnk, '; Result = ', AFileRec^.IsDir and AFileRec^.Stage1 and (not AFileRec^.IsLnk)]); if AFileRec^.IsDir and AFileRec^.Stage1 and (not AFileRec^.IsLnk) then Exit; Res := SenderThread.Engine.Remove(String(AFileRec^.FName)); // DebugMsg(['Result : ', Res]); if Res <> 0 then if SkipAll then Result := True else begin Response := SenderThread.ShowDirDeleteDialog(1, LANGTheFileDirectory, String(AFileRec^.FDisplayName), Format(LANGCouldNotBeDeletedS, [GetErrorString(Res)])); case Response of 1 : Result := True; 3 : begin SkipAll := True; Result := True; end; 2 : Result := HandleDelete(AFileRec); else Result := False; end; end; end; var i: longint; AList: TList; CurrPath: string; Fr: Single; Response: integer; DeleteAll, SkipToNext: boolean; x: PDataItemSL; begin SkipAll := False; AList := TList.Create; AList.Clear; with SenderThread do begin CurrPath := IncludeTrailingPathDelimiter(Engine.Path); if DataList.Count > 0 then for i := 0 to DataList.Count - 1 do with PDataItem(DataList[i])^ do if (not UpDir) and Selected then if IsDir and (not IsLnk) then Engine.FillDirFiles(CurrPath + String(FName), AList, 1) else begin x := Engine.GetFileInfoSL(CurrPath + String(FName)); if x <> nil then AList.Add(x); end; if (AList.Count = 0) and Assigned(SelectedItem) and (not SelectedItem^.UpDir) then with SelectedItem^ do if IsDir and (not IsLnk) then Engine.FillDirFiles(CurrPath + String(FName), AList, 1) else begin x := Engine.GetFileInfoSL(CurrPath + String(FName)); if x <> nil then AList.Add(x); end; if Engine.ChangeDir(CurrPath) <> 0 then DebugMsg(['*** WARNING: Cannot change to the origin location, strange behaviour might occur.']); Engine.ExplicitChDir('/'); SetProgress1Params(AList.Count); CommitGUIUpdate; DeleteAll := False; SkipToNext := False; // DebugWriteListSL(AList); if AList.Count = 1 then Fr := 1 else Fr := 100 / (AList.Count - 1); if AList.Count > 0 then for i := 0 to AList.Count - 1 do begin if Cancelled then begin FCancelMessage := LANGUserCancelled; FShowCancelMessage := True; Break; end; if SkipToNext and (PDataItemSL(AList[i])^.Level > 1) then Continue; if SkipToNext and (PDataItemSL(AList[i])^.Level = 1) and (not PDataItemSL(AList[i])^.Stage1) then begin SkipToNext := False; Continue; end; // Check for non-empty directory if (not DeleteAll) and (PDataItemSL(AList[i])^.Level = 1) and PDataItemSL(AList[i])^.Stage1 and PDataItemSL(AList[i])^.IsDir and (not PDataItemSL(AList[i])^.IsLnk) and (i < AList.Count - 2) and (PDataItemSL(AList[i + 1])^.Level = 2) then begin Response := ShowDirDeleteDialog(4, Format(LANGTheDirectorySIsNotEmpty, [string(PDataItemSL(AList[i])^.FDisplayName)]), LANGDoYouWantToDeleteItWithAllItsFilesAndSubdirectories); case Response of 1 : ; // Do nothing in this case - I will not bother with changing the structure; it works :-) 2 : DeleteAll := True; 3 : SkipToNext := True; else Break; end; end; // Process delete if not HandleDelete(AList[i]) then Break; UpdateProgress1(i, Format('%d%%', [Round(Fr * i)])); UpdateCaption1(PDataItemSL(AList[i])^.FDisplayName); CommitGUIUpdate; end; // Free the objects if AList.Count > 0 then for i := AList.Count - 1 downto 0 do FreeDataItem(PDataItemSL(AList[i])); AList.Clear; AList.Free; if Engine.ChangeDir(CurrPath) <> 0 then DebugMsg(['*** WARNING: Cannot change to the origin location, strange behaviour might occur.']); end; SenderThread.FDoneThread := True; end; (********************************************************************************************************************************) (********************************************************************************************************************************) (********************************************************************************************************************************) // Return False to break the process function CopyFilesWorker_ProgressFunc(Sender: Pointer; BytesDone: Int64): boolean; cdecl; begin Result := True; // DebugMsg(['*** CopyFilesWorker: ProgressFunc called (Sender=', QWord(Sender), ', BytesDone=', BytesDone, ')']); try if Assigned(Sender) and (TObject(Sender) is TWorkerThread) then with TWorkerThread(Sender) do begin if BytesDone = 0 then UpdateProgress1(0, '0%') else UpdateProgress1(BytesDone, Format('%d%%', [Round(ParamFloat2 * BytesDone)])); UpdateProgress2(ParamInt64 + BytesDone, Format('%d%%', [Round(ParamFloat1 * (ParamInt64 + BytesDone))])); Result := not Cancelled; CommitGUIUpdate; end else DebugMsg(['*** CopyFilesWorker: Sender is not TWorkerThread']); except on E: Exception do DebugMsg(['*** Exception raised in ProgressFunc(Sender=', QWord(Sender), ', BytesDone=', BytesDone, '): (', E.ClassName, '): ', E.Message]); end; end; // Return True to ignore the error (Skip, Skip All, Ignore, Cancel) function CopyFilesWorker_ErrorFunc(Sender: Pointer; ErrorType, ErrorNum: integer; FileName: string): boolean; cdecl; var s, s2, s3: string; begin with TWorkerThread(Sender) do begin if ParamBool2 then begin Result := True; Exit; end; case ErrorType of 0 : begin CancelIt; Exit; end; 1 : s := LANGMemoryAllocationFailed; 2 : s := LANGCannotOpenSourceFile; 3 : s := LANGCannotOpenDestinationFile; 4 : s := LANGCannotCloseDestinationFile; 5 : s := LANGCannotCloseSourceFile; 6 : s := LANGCannotReadFromSourceFile; 7 : s := LANGCannotWriteToDestinationFile; end; if ParamBool1 then s2 := LANGCopyError else s2 := LANGMoveError; if ErrorType <> 1 then s3 := StrToUTF8(FileName) else s3 := ''; case ShowDirDeleteDialog(3, s, s3, GetErrorString(ErrorNum), s2) of 0, 252 : begin // Cancel button, Escape Result := False; CancelIt; end; 2 : Result := True; // Ignore 3 : begin // Skip All ParamBool2 := True; { Skip All Err } Result := False; //** True? end; else {1, 124, 255 :} Result := False; // Skip end; end; end; procedure CopyFilesWorker(SenderThread: TWorkerThread); // ParamFloat1 = Fr - internal // ParamFloat2 = Fr2 - internal // ParamInt64 = SizeDone - internal // ParamBool1 = ModeCopy - internal // ParamBool2 = SkipAllErr - internal // ParamBool3 = CopyMode // ParamBool4 = QuickRename // ParamBool5 = OneFile // ParamString1 = NewPath // ParamString2 = Filepath // ParamDataItem1 = QuickRenameDataItem var DefResponse: integer; // Global variables for this function SkipAll: boolean; // Returns True if file was successfully copied, if not, the file will be deleted in LocalCopyFile function ManualCopyFile(SourceFile, DestFile: string; Append: boolean): boolean; var fsrc, fdst: TEngineFileDes; Error, BSize: integer; Buffer: Pointer; BytesDone, BytesRead, BytesWritten: Int64; Res: boolean; begin DebugMsg(['ManualCopyFile: ', SourceFile, ' ---> ', DestFile]); with SenderThread do begin Result := False; Error := 0; fsrc := SrcEngine.OpenFile(SourceFile, omRead, Error); if Error <> 0 then begin CopyFilesWorker_ErrorFunc(SenderThread, 2, Error, SourceFile); // Cannot open source file Exit; end; if Append then fdst := DestEngine.OpenFile(DestFile, omAppend, Error) else fdst := DestEngine.OpenFile(DestFile, omWrite, Error); if Error <> 0 then begin SrcEngine.CloseFile(fsrc); CopyFilesWorker_ErrorFunc(SenderThread, 3, Error, SourceFile); // Cannot open target file Exit; end; BytesDone := 0; Res := True; BSize := DestEngine.GetBlockSize; Buffer := malloc(BSize); if Buffer = nil then begin CopyFilesWorker_ErrorFunc(SenderThread, 1, errno, SourceFile); // Memory allocation failed libc_free(Buffer); Exit; end; memset(Buffer, 0, BSize); BytesWritten := 0; repeat BytesRead := SrcEngine.ReadFile(fsrc, Buffer, BSize, Error); if (BytesRead = 0) and (Error <> 0) then Res := CopyFilesWorker_ErrorFunc(SenderThread, 6, Error, SourceFile); // Cannot read from source file if BytesRead > 0 then begin BytesWritten := DestEngine.WriteFile(fdst, Buffer, BytesRead, Error); if (BytesWritten < BytesRead) then Res := CopyFilesWorker_ErrorFunc(SenderThread, 7, Error, DestFile); // Cannot write to source file end; Inc(BytesDone, BytesRead); if not CopyFilesWorker_ProgressFunc(SenderThread, BytesDone) then begin Res := False; Break; end; until (BytesRead = 0) or (BytesWritten < BytesRead); libc_free(Buffer); if DestEngine.CloseFile(fdst) <> 0 then begin CopyFilesWorker_ErrorFunc(SenderThread, 4, errno, DestFile); // Cannot close target file Exit; end; if SrcEngine.CloseFile(fsrc) <> 0 then begin CopyFilesWorker_ErrorFunc(SenderThread, 5, errno, SourceFile); // Cannot close source file Exit; end; Result := Res; end; end; // Returns True if the file was successfully copied and will be deleted on move function LocalCopyFile(SourceFile, DestFile: string; Append: boolean): boolean; var DataSrc, DataDest: PDataItemSL; begin Result := False; try with SenderThread do begin AEngine := nil; FCopyProgressFunc := CopyFilesWorker_ProgressFunc; // local -> local if (SrcEngine is TLocalTreeEngine) and (DestEngine is TLocalTreeEngine) then Result := DestEngine.CopyFileIn(SenderThread, SourceFile, DestFile, @CopyFilesWorker_ProgressFunc, @CopyFilesWorker_ErrorFunc, Append) else // from local engine to VFS engine if (SrcEngine is TLocalTreeEngine) and (DestEngine is TVFSEngine) then begin AEngine := DestEngine; Result := (DestEngine as TVFSEngine).CopyFileInEx(SenderThread, SourceFile, DestFile, @CopyFilesWorker_ErrorFunc, Append, @vfs_ask_question_callback, @vfs_ask_password_callback, @vfs_progress_callback, SenderThread); end else // from VFS engine to local (most common use) if (SrcEngine is TVFSEngine) and (DestEngine is TLocalTreeEngine) then begin AEngine := SrcEngine; Result := (SrcEngine as TVFSEngine).CopyFileOutEx(SenderThread, SourceFile, DestFile, @CopyFilesWorker_ErrorFunc, Append, @vfs_ask_question_callback, @vfs_ask_password_callback, @vfs_progress_callback, SenderThread); end // VFS to VFS (not supported yet) else begin AEngine := SrcEngine; Result := ManualCopyFile(SourceFile, DestFile, Append); end; AEngine := nil; // Copy OK? (check size, otherwise delete target file) if (not Append) and (not Result) then begin DataSrc := SrcEngine.GetFileInfoSL(SourceFile); if DataSrc = nil then Exit; DataDest := DestEngine.GetFileInfoSL(DestFile); if DataDest = nil then Exit; if DataSrc^.Size <> DataDest^.Size then DestEngine.Remove(DestFile); end; end; except on E: Exception do DebugMsg(['*** Exception raised in LocalCopyFile(SourceFile=', SourceFile, ', DestFile=', DestFile, ', Append=', Append, '): (', E.ClassName, '): ', E.Message]); end; end; function IsOnSameFS(SrcPath, DestPath: string): boolean; begin with SenderThread do begin if (SrcEngine.ClassName <> DestEngine.ClassName) then Result := False else if (SrcEngine is TVFSEngine) and (DestEngine is TVFSEngine) and (SrcEngine as TVFSEngine).ArchiveMode and (DestEngine as TVFSEngine).ArchiveMode and ((SrcEngine as TVFSEngine).ArchivePath <> '') and ((SrcEngine as TVFSEngine).ArchivePath = (DestEngine as TVFSEngine).ArchivePath) then Result := True else Result := DestEngine.IsOnSameFS(SrcPath, DestPath); end; end; function TwoSameFiles(Path1, Path2: string; TestCaseInsensitiveFS: boolean): boolean; begin with SenderThread do begin if (SrcEngine.ClassName <> DestEngine.ClassName) then Result := False else if (SrcEngine is TVFSEngine) and (DestEngine is TVFSEngine) and ((SrcEngine as TVFSEngine).ArchiveMode <> (DestEngine as TVFSEngine).ArchiveMode) then Result := False else if (SrcEngine is TVFSEngine) and (DestEngine is TVFSEngine) and (SrcEngine as TVFSEngine).ArchiveMode and (DestEngine as TVFSEngine).ArchiveMode and ((SrcEngine as TVFSEngine).ArchivePath <> '') and ((SrcEngine as TVFSEngine).ArchivePath <> (DestEngine as TVFSEngine).ArchivePath) then Result := False else if WideCompareStr(Path1, Path2) = 0 then Result := True else Result := TestCaseInsensitiveFS and DestEngine.TwoSameFiles(Path1, Path2); end; end; function DoOperation(AFileRec: PDataItemSL; const Dst: string; var ErrorKind: integer; const Append: boolean): integer; begin ErrorKind := 0; Result := 0; try with SenderThread do with AFileRec^ do begin if IsLnk then begin // Explicit copy the file if ParamBool3 or (not IsOnSameFS(String(FName), ExtractFileDir(Dst))) then begin ErrorKind := DestEngine.MakeSymLink(Dst, String(LnkPointTo)); if ErrorKind <> 0 then Result := ERRCreateLink; if not ParamBool3 then begin ErrorKind := SrcEngine.Remove(String(FName)); if ErrorKind <> 0 then Result := ERRRemove; end; end else begin // Move the file ErrorKind := DestEngine.RenameFile(String(FName), Dst); if ErrorKind <> 0 then Result := ERRCopyMove; end; end else // is not link if ParamBool3 then begin // Copy mode if LocalCopyFile(String(FName), Dst, Append) then begin if IsOnRO and ConfClearReadOnlyAttr and (Mode and S_IWUSR = 0) then Mode := Mode or S_IWUSR; DestEngine.Chmod(Dst, Mode); DestEngine.Chown(Dst, UID, GID); DestEngine.ChangeTimes(Dst, mtime, atime); end; end else // Move mode if IsOnSameFS(String(FName), ExtractFileDir(Dst)) then begin if TwoSameFiles(String(FName), Dst, True) and (not TwoSameFiles(String(FName), Dst, False)) then begin DebugMsg(['*** Activating double-rename due to renaming on case-insensitive FS']); ErrorKind := DestEngine.RenameFile(String(FName), Dst + '_tcmd'); if ErrorKind = 0 then ErrorKind := DestEngine.RenameFile(Dst + '_tcmd', Dst); end else ErrorKind := DestEngine.RenameFile(String(FName), Dst); if ErrorKind <> 0 then Result := ERRCopyMove; end else begin if LocalCopyFile(String(FName), Dst, Append) then begin if IsOnRO and ConfClearReadOnlyAttr and (Mode and S_IWUSR = 0) then Mode := Mode or S_IWUSR; DestEngine.Chmod(Dst, Mode); DestEngine.Chown(Dst, UID, GID); DestEngine.ChangeTimes(Dst, mtime, atime); if not Cancelled then begin ErrorKind := SrcEngine.Remove(String(FName)); if ErrorKind <> 0 then Result := ERRRemove; end; end; end; end; // DebugMsg(['(II) CopyFilesWorker.DoOperation: finished']); except on E: Exception do DebugMsg(['*** Exception raised in DoOperation(AFileRec=', QWord(AFileRec), ', Dst=', Dst, ', ErrorKind=', ErrorKind, ', Append=', Append, '): (', E.ClassName, '): ', E.Message]); end; end; // Return False to break the processing (Cancel) function HandleCopy(AFileRec: PDataItemSL; NewFilePath: string): boolean; var Res, Response, ErrorKind, r: integer; Item: PDataItemSL; s, s1, s3, cap: string; FromInfoLabel, ToInfoLabel, InfoLabelFormat: string; begin Result := True; try with SenderThread do begin // Second stage - change permissions if (not AFileRec^.Stage1) and (ParamBool3 or ((not ParamBool3) and (not AFileRec^.ForceMove))) then with AFileRec^ do begin if IsOnRO and ConfClearReadOnlyAttr and (Mode and S_IWUSR = 0) then Mode := Mode or S_IWUSR; DestEngine.Chmod(NewFilePath, Mode); DestEngine.Chown(NewFilePath, UID, GID); DestEngine.ChangeTimes(NewFilePath, mtime, atime); if not ParamBool3 then SrcEngine.Remove(String(FName)); // Remove directory Exit; end; // First stage - copy data if AFileRec^.IsDir then begin Res := 0; if AFileRec^.ForceMove and (not ParamBool3) then begin if TwoSameFiles(ExcludeTrailingPathDelimiter(string(AFileRec^.FName)), ExcludeTrailingPathDelimiter(string(AFileRec^.ADestination)), True) and (not TwoSameFiles(ExcludeTrailingPathDelimiter(string(AFileRec^.FName)), ExcludeTrailingPathDelimiter(string(AFileRec^.ADestination)), False)) then begin DebugMsg(['*** Activating double-rename due to renaming on case-insensitive FS']); ErrorKind := DestEngine.RenameFile(string(AFileRec^.FName), ExcludeTrailingPathDelimiter(string(AFileRec^.ADestination)) + '_tcmd'); if ErrorKind = 0 then ErrorKind := DestEngine.RenameFile(ExcludeTrailingPathDelimiter(string(AFileRec^.ADestination)) + '_tcmd', ExcludeTrailingPathDelimiter(string(AFileRec^.ADestination))); end else ErrorKind := DestEngine.RenameFile(string(AFileRec^.FName), string(AFileRec^.ADestination)); if ErrorKind <> 0 then Res := ERRCopyMove else Res := 0; end else if not DestEngine.DirectoryExists(NewFilePath, True) then begin ErrorKind := DestEngine.MakeDir(NewFilePath); if ErrorKind <> 0 then Res := ERRMkDir else Res := 0; end; end else begin // not a directory if not DestEngine.DirectoryExists(ExtractFileDir(NewFilePath), True) then DestEngine.MakeDir(ExtractFileDir(NewFilePath)); SetProgress1Params(AFileRec^.Size + Ord(AFileRec^.Size = 0)); if AFileRec^.Size <= 1 then ParamFloat2 := 1 else ParamFloat2 := 100 / (AFileRec^.Size - 1); CopyFilesWorker_ProgressFunc(SenderThread, 0); Res := 0; if DestEngine.FileExists(NewFilePath, True) and (not (not ParamBool3 and (not TwoSameFiles(NewFilePath, AFileRec^.FName, False)) and TwoSameFiles(NewFilePath, AFileRec^.FName, True))) then begin Response := DefResponse; Item := DestEngine.GetFileInfoSL(NewFilePath); if Item = nil then begin DebugMsg(['Something went terribly wrong during copy - Item := DestEngine.GetFileInfoSL(NewFilePath) == NULL!']); Result := False; Exit; end; if Response = 0 then begin case ConfSizeFormat of 5: InfoLabelFormat := '%s, %s'; else InfoLabelFormat := LANGOvewriteSBytesS; end; FromInfoLabel := Format(InfoLabelFormat, [FormatSize(Item^.Size, 0), FormatDate(Item^.ModifyTime, True, True)]); ToInfoLabel := Format(InfoLabelFormat, [FormatSize(AFileRec^.Size, 0), FormatDate(AFileRec^.ModifyTime, True, True)]); Response := ShowOverwriteDialog(1 + Ord(ParamBool3), Format(LANGOverwriteS, [StrToUTF8(NewFilePath)]), FromInfoLabel, Format(LANGWithFileS, [AFileRec^.FDisplayName]), ToInfoLabel, ExtractFileName(StrToUTF8(NewFilePath)), ExtractFileName(AFileRec^.FDisplayName), ExtractFileName(StrToUTF8(NewFilePath))); s := FOverwriteRenameStr; case Response of // 1: Overwrite // 3: Skip 2 {Overwrite All}, 5 {Overwrite All Older}, 6 {Skip All}: DefResponse := Response; 4 {Cancel}, 124 {Close Window}, 255: begin Result := False; Exit; end; 7: {Rename} begin NewFilePath := Copy(NewFilePath, 1, LastDelimiter(PathDelim, NewFilePath)) + s; Result := HandleCopy(AFileRec, NewFilePath); Exit; end; 8 {Append}: begin Res := DoOperation(AFileRec, NewFilePath, ErrorKind, True); end; end; end; // Remove destination file if exists and should be overwritten if (Response in [1, 2]) or ((Response = 5) and (Item^.ModifyTime < AFileRec^.ModifyTime)) then begin r := DestEngine.Remove(NewFilePath); while r <> 0 do begin Res := ShowDirDeleteDialog(1, LANGTheFile, StrToUTF8(String(NewFilePath)), Format(LANGCouldNotBeDeletedS, [GetErrorString(r)]), LANGCopyError); case Res of 1: begin Result := True; Exit; end; 2: r := DestEngine.Remove(NewFilePath); 0, 124, 255: begin Result := False; Exit; end; end; end; Res := DoOperation(AFileRec, NewFilePath, ErrorKind, False); end; end else Res := DoOperation(AFileRec, NewFilePath, ErrorKind, False); end; // Error handling if (Res <> 0) and (not SkipAll) then begin if ParamBool3 then cap := LANGCopy else cap := LANGMove; case Res of ERRCreateLink: begin s1 := LANGTheSymbolicLink; if ErrorKind = 0 then s3 := LANGCouldNotBeCreated else s3 := Format(LANGCouldNotBeCreatedS, [GetErrorString(ErrorKind)]); end; ERRMkDir: begin s1 := LANGTheDirectory; if ErrorKind = 0 then s3 := LANGCouldNotBeCreated else s3 := Format(LANGCouldNotBeCreatedS, [GetErrorString(ErrorKind)]); end; ERRRemove: begin if AFileRec^.IsDir then s1 := LANGTheDirectory else if AFileRec^.IsLnk then s1 := LANGTheSymbolicLink else s1 := LANGTheFile; if ErrorKind = 0 then s3 := LANGCouldNotBeDeleted else s3 := Format(LANGCouldNotBeDeletedS, [GetErrorString(ErrorKind)]); end; ERRCopyMove: begin if ParamBool3 then s1 := LANGCannotCopyFile else s1 := LANGCannotMoveFile; if ErrorKind = 0 then s3 := '' else s3 := GetErrorString(ErrorKind); end; end; Response := ShowDirDeleteDialog(1, s1, StrToUTF8(String(NewFilePath)), s3, cap); case Response of 1 : Result := True; // Skip 2 : Result := HandleCopy(AFileRec, NewFilePath); // Retry 3 : begin // Skip All SkipAll := True; Result := True; end; 0, 124, 255 : Result := False; // Cancel end; end; end; // DebugMsg(['(II) CopyFilesWorker.HandleCopy: finished']); except on E: Exception do DebugMsg(['*** Exception raised in HandleCopy(AFileRec=', QWord(AFileRec), ', NewFilePath=', NewFilePath, '): (', E.ClassName, '): ', E.Message]); end; end; procedure HandleProcessPattern(AList: TList; CurrPath, FullPath, ParamFileName: string; ParamDir, Ren: boolean); var s, s2: string; b, CaseInsensitiveRename: boolean; Info: PDataItemSL; begin with SenderThread do if not Ren then begin if ParamDir then SrcEngine.FillDirFiles(FullPath, AList, 1) else begin Info := SrcEngine.GetFileInfoSL(FullPath); if Info = nil then DebugMsg(['$$$ Copy: Something went wrong while building the filelist...']) else AList.Add(Info); end; end else begin s := ProcessPattern(DestEngine, ParamString1, CurrPath, ParamFileName, ParamDir); CaseInsensitiveRename := (WideCompareStr(ParamString1, ParamFileName) <> 0) and (WideCompareText(ParamString1, ParamFileName) = 0) and ParamDir and DestEngine.TwoSameFiles(IncludeTrailingPathDelimiter(CurrPath) + ParamString1, IncludeTrailingPathDelimiter(CurrPath) + ParamFileName); // DebugMsg(['HandleProcessPattern: s = ', s]); b := False; if ParamDir then begin b := DestEngine.DirectoryExists(ExcludeTrailingPathDelimiter(s)) and (not CaseInsensitiveRename); if (not b) and (s <> '/') then begin s2 := ExcludeTrailingPathDelimiter(s); s2 := ExcludeTrailingPathDelimiter(Copy(s2, 1, LastDelimiter('/', s2))); b := DestEngine.DirectoryExists(ExcludeTrailingPathDelimiter(s2)); end; end; if (not ParamDir) or (ParamDir and b and IsOnSameFS(ExcludeTrailingPathDelimiter(FullPath), s2)) then begin Info := SrcEngine.GetFileInfoSL(FullPath); if Info = nil then begin DebugMsg(['$$$ Copy: Something went wrong while building the filelist...']); ErrorHappened := True; end else begin Info^.ADestination := strdup(PChar(s)); Info^.ForceMove := True; AList.Add(Info); end; end else SrcEngine.FillDirFiles(FullPath, AList, 1); end; end; var i: longint; List: TList; CurrPath, SaveDestPath, SaveSrcPath, s: string; MaxSize: Int64; begin List := TList.Create; List.Clear; with SenderThread do begin ErrorHappened := False; FCancelled := False; SaveSrcPath := ''; CurrPath := IncludeTrailingPathDelimiter(SrcEngine.Path); SaveDestPath := DestEngine.Path; ParamString1 := ExcludeTrailingPathDelimiter(ParamString1); if ParamString1 = '' then ParamString1 := PathDelim; if ParamBool5 then begin // HandleVFSFromArchive if not ExtractFromVFSAll then HandleProcessPattern(List, CurrPath, ParamString2, ExtractFileName(ParamString2), False, False) else begin SaveSrcPath := IncludeTrailingPathDelimiter(SrcEngine.Path); SrcEngine.SetPath('/'); CurrPath := '/'; HandleProcessPattern(List, '/', '/', '', True, False); end; end else if ParamBool4 then begin // Quick-Rename with ParamDataItem1^ do HandleProcessPattern(List, CurrPath, CurrPath + String(FName), String(FName), IsDir and (not IsLnk), True); end else begin // Not Quick-Rename if not ExtractFromVFSMode then begin if DataList.Count > 0 then for i := 0 to DataList.Count - 1 do with PDataItem(DataList[i])^ do if (not UpDir) and Selected then HandleProcessPattern(List, CurrPath, CurrPath + String(FName), String(FName), IsDir and (not IsLnk), not ParamBool3); if (List.Count = 0) and Assigned(SelectedItem) and (not SelectedItem^.UpDir) then with SelectedItem^ do HandleProcessPattern(List, CurrPath, CurrPath + String(FName), String(FName), IsDir and (not IsLnk), not ParamBool3); end else begin // Extract from VFS mode DebugMsg(['CopyFilesWorker: Should not be reached']); if (not ExtractFromVFSAll) and Assigned(SelectedItem) then HandleProcessPattern(List, CurrPath, CurrPath + String(SelectedItem^.FName), String(SelectedItem^.FName), SelectedItem^.IsDir and (not SelectedItem^.IsLnk), not ParamBool3) else begin SaveSrcPath := IncludeTrailingPathDelimiter(SrcEngine.Path); SrcEngine.SetPath('/'); CurrPath := '/'; HandleProcessPattern(List, '/', '/', '', True, False); end; end; end; { if DestEngine.ChangeDir(CurrPath) <> 0 then DebugMsg(['*** WARNING: Cannot change to the origin location, strange behaviour may occur.']); if SrcEngine.ChangeDir(CurrPath) <> 0 then DebugMsg(['*** WARNING: Cannot change to the origin location, strange behaviour may occur.']); } // DebugWriteListSL(List); __chdir('/'); // Compute total size of files to copy MaxSize := 0; ParamInt64 := 0; if List.Count > 0 then for i := 0 to List.Count - 1 do if PDataItemSL(List[i])^.Stage1 and (PDataItemSL(List[i])^.Size > 0) and (not PDataItemSL(List[i])^.IsDir) and (not PDataItemSL(List[i])^.IsLnk) then Inc(MaxSize, PDataItemSL(List[i])^.Size); SrcEngine.BlockSize := ComputeBlockSize(MaxSize); DestEngine.BlockSize := ComputeBlockSize(MaxSize); // Prepare the Progress window SetProgress2Params(MaxSize + Ord(MaxSize = 0)); UpdateProgress1(0, '0%'); UpdateProgress2(0, '0%'); CommitGUIUpdate; DefResponse := 0; ParamBool1 := ParamBool3; SkipAll := False; ParamBool2 := False; if MaxSize < 2 then ParamFloat1 := 1 else ParamFloat1 := 100 / (MaxSize - 1); if List.Count > 0 then for i := 0 to List.Count - 1 do begin if Assigned(PDataItemSL(List[i])^.ADestination) then s := string(PDataItemSL(List[i])^.ADestination) else begin s := ProcessPattern(DestEngine, ParamString1, CurrPath, Copy(PDataItemSL(List[i])^.FName, Length(CurrPath) + 1, Length(PDataItemSL(List[i])^.FName) - Length(CurrPath)), PDataItemSL(List[i])^.IsDir and (not PDataItemSL(List[i])^.IsLnk)); // DebugMsg(['s2 = ', Copy(PDataItemSL(List[i])^.AName, Length(CurrPath) + 1, Length(PDataItemSL(List[i])^.AName) - Length(CurrPath)), ', s = ', s]); end; if not (SrcEngine is TVFSEngine) then UpdateCaption1(Format(LANGFromS, [string(PDataItemSL(List[i])^.FDisplayName)])) else if (SrcEngine as TVFSEngine).ArchiveMode then UpdateCaption1(Format(LANGFromS, [Format(ConstFullPathFormatStr, [(SrcEngine as TVFSEngine).ArchivePath, string(PDataItemSL(List[i])^.FDisplayName)])])) else UpdateCaption1(Format(LANGFromS, [GetURIPrefix((SrcEngine as TVFSEngine).GetPathURI) + StrToUTF8(string(PDataItemSL(List[i])^.FDisplayName))])); if not (DestEngine is TVFSEngine) then UpdateCaption2(Format(LANGToS, [StrToUTF8(s)])) else if (DestEngine as TVFSEngine).ArchiveMode then UpdateCaption2(Format(LANGToS, [Format(ConstFullPathFormatStr, [(DestEngine as TVFSEngine).ArchivePath, StrToUTF8(s)])])) else UpdateCaption2(Format(LANGToS, [GetURIPrefix((DestEngine as TVFSEngine).GetPathURI) + StrToUTF8(s)])); CommitGUIUpdate; if TwoSameFiles(s, string(PDataItemSL(List[i])^.FName), ParamBool3) and (not PDataItemSL(List[i])^.IsDir) then begin FCancelMessage := LANGCannotCopyFileToItself; FShowCancelMessage := True; ErrorHappened := True; Break; end; if s <> string(PDataItemSL(List[i])^.FName) then if not HandleCopy(List[i], s) then begin ErrorHappened := True; Break; end; if (not PDataItemSL(List[i])^.IsDir) and (not PDataItemSL(List[i])^.IsLnk) then Inc(ParamInt64, PDataItemSL(List[i])^.Size); if Cancelled then begin FCancelMessage := LANGUserCancelled; FShowCancelMessage := True; ErrorHappened := True; Break; end; end; // Free the objects if List.Count > 0 then for i := List.Count - 1 downto 0 do FreeDataItem(PDataItemSL(List[i])); List.Clear; List.Free; if DestEngine.ChangeDir(SaveDestPath) <> 0 then DebugMsg(['*** WARNING: Cannot change to the origin location, strange behaviour might occur.']); if SaveSrcPath <> '' then CurrPath := SaveSrcPath; if SrcEngine.ChangeDir(CurrPath) <> 0 then DebugMsg(['*** WARNING: Cannot change to the origin location, strange behaviour might occur.']); end; SenderThread.FDoneThread := True; DebugMsg(['(II) CopyFilesWorker: finished']); end; (********************************************************************************************************************************) function ComputeBlockSize(TotalSize: Int64): longint; begin if TotalSize < 512*1024 then Result := 32*1024 else if TotalSize < 1024*1024 then Result := 64*1024 else if TotalSize < 2048*1024 then Result := 96*1024 else if TotalSize < 4096*1024 then Result := 128*1024 else if TotalSize < 8192*1024 then Result := 256*1024 else { if TotalSize < 256*1024*1024 then Result := 512*1024 else if TotalSize < 768*1024*1024 then Result := 2048*1024 else } Result := 4096*1024; end; (********************************************************************************************************************************) (********************************************************************************************************************************) (********************************************************************************************************************************) procedure DebugWriteListSL(List: TList); var i: integer; Item: PDataItemSL; begin if not ParamDebug then Exit; if not Assigned(List) then begin WriteLn('List not assigned'); Exit; end; WriteLn('********************************************************'); WriteLn('** List.Count = ', List.Count, ' base @ ', integer(pointer(List))); if List.Count > 0 then for i := 0 to List.Count - 1 do if not Assigned(List[i]) then WriteLn('**** List Item idx ', i, '; base @ nil') else try WriteLn('**** List Item idx ', i, '; base @ ', integer(List[i]), '; sizeof = ', SizeOf(List[i])); Item := List[i]; WriteLn(' Stage1: ', Item^.Stage1, ', Level: ', Item^.Level, ', IsDir: ', Item^.IsDir, ', IsLnk: ', Item^.IsLnk, ', ForceMove: ', Item^.ForceMove{, ', Size: ', Item^.Size}); WriteLn(' FName: ', Item^.FName); WriteLn(' LnkPointTo: ', Item^.LnkPointTo); WriteLn(' ADestination: ', Item^.ADestination); except on E: Exception do WriteLn('(EE): Exception ', E.ClassName, ' raised: ', E.Message); end; WriteLn('** End of listing'); WriteLn('********************************************************'); end; procedure DebugWriteList(List: TList); var i: integer; Item: PDataItem; begin if not ParamDebug then Exit; if not Assigned(List) then begin WriteLn('List not assigned'); Exit; end; WriteLn('********************************************************'); WriteLn('** List.Count = ', List.Count, ' base @ ', integer(pointer(List))); if List.Count > 0 then for i := 0 to List.Count - 1 do if not Assigned(List[i]) then WriteLn('**** List Item idx ', i, '; base @ nil') else try WriteLn('**** List Item idx ', i, '; base @ ', integer(List[i]), '; sizeof = ', SizeOf(List[i])); Item := List[i]; WriteLn(' IsDir: ', Item^.IsDir, ', IsLnk: ', Item^.IsLnk, ', Size: ', Item^.Size); WriteLn(' FName: ', Item^.FName); WriteLn(' LnkPointTo: ', Item^.LnkPointTo); except on E: Exception do WriteLn('(EE): Exception ', E.ClassName, ' raised: ', E.Message); end; WriteLn('** End of listing'); WriteLn('********************************************************'); end; (********************************************************************************************************************************) procedure FindNextSelected(ListView: TGTKListView; DataList: TList; var Item1, Item2: string); var i: integer; SelCount: longint; begin SelCount := 0; Item1 := ''; Item2 := ''; if (not Assigned(ListView.Selected)) or PDataItem(ListView.Selected.Data)^.UpDir then Exit; if DataList.Count > 0 then for i := 0 to DataList.Count - 1 do with PDataItem(DataList[i])^ do if Selected and (not UpDir) then Inc(SelCount); Item1 := string(PDataItem(ListView.Selected.Data)^.FName); if (PDataItem(ListView.Selected.Data)^.Selected and (SelCount > 0)) or (SelCount = 0) then begin if ListView.ConvertToSorted(ListView.Selected.Index) < ListView.Items.Count then for i := ListView.ConvertToSorted(ListView.Selected.Index) + 1 to DataList.Count - 1 do if not PDataItem(DataList[ListView.ConvertFromSorted(i)])^.Selected then begin Item2 := string(PDataItem(DataList[ListView.ConvertFromSorted(i)])^.FName); Break; end; if (Item2 = '') and (ListView.ConvertToSorted(ListView.Selected.Index) > 0) then for i := ListView.ConvertToSorted(ListView.Selected.Index) - 1 downto 0 do if (not PDataItem(DataList[ListView.ConvertFromSorted(i)])^.Selected) and (not PDataItem(DataList[ListView.ConvertFromSorted(i)])^.UpDir) then begin Item2 := string(PDataItem(DataList[ListView.ConvertFromSorted(i)])^.FName); Break; end; end; end; (********************************************************************************************************************************) procedure UnselectAll(ListView: TGTKListView; DataList: TList); var i: integer; begin if DataList.Count > 0 then for i := 0 to DataList.Count - 1 do with PDataItem(DataList[i])^ do if Selected then begin Selected := False; ListView.Items[i].RedrawRow; end; end; (********************************************************************************************************************************) (********************************************************************************************************************************) (********************************************************************************************************************************) function CRCGetInfo(FileName: string; Engine: TPanelEngine; var TargetName: string; var TargetCRC: LongWord; var Size: Int64): boolean; procedure ProcessLine(Str: string); var UPS: string; begin try TrimCRLFESC(Str); if Length(Str) < 1 then Exit; UPS := WideUpperCase(Str); if Pos('FILENAME', UPS) = 1 then TargetName := Trim(Copy(Str, Pos('=', Str) + 1, Length(Str) - Pos('=', Str))) else if Pos('SIZE', UPS) = 1 then Size := StrToInt64Def(Trim(Copy(Str, Pos('=', Str) + 1, Length(Str) - Pos('=', Str))), 0) else if Pos('CRC32', UPS) = 1 then TargetCRC := StrToInt64Def('$' + Trim(Copy(Str, Pos('=', Str) + 1, Length(Str) - Pos('=', Str))), 0); except end; end; const CRCBlockSize = 32768; var i, Error, Count, Start: integer; FD: TEngineFileDes; Buffer: Pointer; s: string; begin Result := False; if Pos('.', FileName) > 1 then FileName := ChangeFileExt(FileName, '.crc') else FileName := FileName + '.crc'; try Buffer := malloc(CRCBlockSize); memset(Buffer, 0, CRCBlockSize); except Application.MessageBox(LANGAnErrorOccuredWhileInitializingMemoryBlock, [mbOK], mbError, mbNone, mbOK); Exit; end; FD := Engine.OpenFile(FileName, omRead, Error); if Error <> 0 then Exit; s := ''; repeat Count := Engine.ReadFile(FD, Buffer, CRCBlockSize, Error); if Error <> 0 then begin libc_free(Buffer); Engine.CloseFile(FD); Exit; end; // processing begins Start := 1; if Count > 0 then for i := 0 to Count - 1 do if (PByteArray(Buffer)^[i] in [13, 10]) or (i = Count - 1) then begin s := s + Copy(PChar(Buffer), Start, i - Start + 1 + Ord(i = Count - 1)); Start := i + 2; if PByteArray(Buffer)^[i] in [13, 10] then begin ProcessLine(s); s := ''; end; end; // processing ends until Count < CRCBlockSize; if Length(s) > 0 then ProcessLine(s); Engine.CloseFile(FD); libc_free(Buffer); Result := True; end; (********************************************************************************************************************************) procedure MergeFilesWorker(SenderThread: TWorkerThread); // ParamBool1 = HasInitialCRC // ParamString1 = NewPath // ParamString2 = FileName // ParamString3 = TargetName // ParamLongWord1 = TargetCRC // ParamInt64 = TargetSize var FD: TEngineFileDes; Error, Count, MergeBlockSize: integer; Buffer: Pointer; CurrentCRC: LongWord; PrivateCancel: boolean; SizeDone: Int64; TargetName: string; function PasteFile(FName: string): boolean; var FDR: TEngineFileDes; wCount: integer; Stat: PDataItemSL; begin Result := False; with SenderThread do begin if ParamBool1 then UpdateCaption2(Format(LANGToS, [StrToUTF8(FName)])) else UpdateCaption1(Format(LANGFromS, [StrToUTF8(FName)])); UpdateProgress1(0, '0 %'); CommitGUIUpdate; Stat := Engine.GetFileInfoSL(FName); if not Assigned(Stat) then Exit; SetProgress1Params(Stat^.Size); FDR := Engine.OpenFile(FName, omRead, Error); if Error <> 0 then Exit; repeat Count := Engine.ReadFile(FDR, Buffer, MergeBlockSize, Error); if Error <> 0 then begin Engine.CloseFile(FD); Exit; end; wCount := Engine.WriteFile(FD, Buffer, Count, Error); if (Error <> 0) or (Count <> wCount) then begin FCancelMessage := Format(LANGAnErrorOccuredWhileWritingFileSS, [ExtractFileName(TargetName), GetErrorString(Error)]); FShowCancelMessage := True; PrivateCancel := True; Result := True; // Fake this to don't show next disc dialog Exit; end; CurrentCRC := CRC32(CurrentCRC, Buffer, Count); UpdateProgress1(FProgress1Pos + Count, Format('%d %%', [Trunc((FProgress1Pos + Count) / FProgress1Max * 100)])); Inc(SizeDone, Count); if ParamBool1 then UpdateProgress2(SizeDone, Format('%d %%', [Trunc(SizeDone / FProgress2Max * 100)])); CommitGUIUpdate; until (Count < MergeBlockSize) or Cancelled; Engine.CloseFile(FDR); end; Result := True; end; var CurrFile, SourcePath, TargetFinalName: string; HasFinalCRC, b: boolean; Stat: PDataItemSL; begin with SenderThread do begin HasFinalCRC := ParamBool1; TargetFinalName := ParamString3; if (Length(ParamString2) > 4) and (WideUpperCase(RightStr(ParamString2, 4)) = '.CRC') then CurrFile := ChangeFileExt(ExtractFileName(ParamString2), '.001') else CurrFile := ExtractFileName(ParamString2); SourcePath := ExtractFilePath(ParamString2); if ParamString3 = '' then ParamString3 := ChangeFileExt(ExtractFileName(ParamString2), '.out'); TargetName := ProcessPattern(Engine, ParamString1, Engine.Path, ParamString3, False); if Engine.FileExists(TargetName, True) then if ShowMessageBox(Format(LANGTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt, [StrToUTF8(TargetName)]), [mbYes, mbNo], mbQuestion, mbNone, mbNo) = mbYes then begin Error := Engine.Remove(TargetName); if Error <> 0 then begin FCancelMessage := Format(LANGTheTargetFileSCannotBeRemovedS, [StrToUTF8(ExtractFileName(TargetName)), GetErrorString(Error)]); FShowCancelMessage := True; Exit; end; end else Exit; Stat := Engine.GetFileInfoSL(ParamString2); if Assigned(Stat) then MergeBlockSize := ComputeBlockSize(Stat^.Size) else MergeBlockSize := 65536*4; try Buffer := malloc(MergeBlockSize); memset(Buffer, 0, MergeBlockSize); except FCancelMessage := LANGAnErrorOccuredWhileInitializingMemoryBlock; FShowCancelMessage := True; Exit; end; FD := Engine.OpenFile(TargetName, omWrite, Error); if Error <> 0 then begin FCancelMessage := Format(LANGAnErrorOccuredWhileOpeningFileSS, [StrToUTF8(TargetName), GetErrorString(Error)]); FShowCancelMessage := True; libc_free(Buffer); Exit; end; CurrentCRC := 0; SizeDone := 0; PrivateCancel := False; if ParamBool1 then begin SetProgress2Params(ParamInt64); UpdateProgress2(0, '0 %'); UpdateCaption2(Format(LANGFromS, [StrToUTF8(TargetName)])); CommitGUIUpdate; end; { else begin Label2.XAlign := 0; Label2.XPadding := 20; end; } repeat b := PasteFile(IncludeTrailingPathDelimiter(SourcePath) + CurrFile); if not b then begin PrivateCancel := ShowNewDirDialog(LANGMergeCaption, LANGPleaseInsertNextDiskOrGiveDifferentLocation, StrToUTF8(SourcePath)) <> integer(mbOK); if not PrivateCancel then begin SourcePath := UTF8ToStr(FNewDirEdit); if not HasFinalCRC then HasFinalCRC := CRCGetInfo(IncludeTrailingPathDelimiter(SourcePath) + CurrFile, Engine, TargetFinalName, ParamLongWord1, ParamInt64); Continue; end; end; try CurrFile := Copy(CurrFile, 1, LastDelimiter('.', CurrFile)) + Format('%.3d', [StrToInt( Copy(CurrFile, LastDelimiter('.', CurrFile) + 1, Length(CurrFile) - LastDelimiter('.', CurrFile))) + 1]); except CurrFile := ''; end; until (SizeDone = ParamInt64) or Cancelled or PrivateCancel {or ((not b) and (not HasInitialCRC))} or (CurrFile = ''); if (not ParamBool1) and HasFinalCRC then Engine.RenameFile(TargetName, IncludeTrailingPathDelimiter(ExtractFilePath(TargetName)) + TargetFinalName); if Cancelled and (not PrivateCancel) then begin FCancelMessage := LANGUserCancelled; FShowCancelMessage := True; end; if not (Cancelled or PrivateCancel) then if HasFinalCRC then begin if CurrentCRC = ParamLongWord1 then ShowMessageBox(Format(LANGMergeOfSSucceeded, [StrToUTF8(ExtractFileName(TargetFinalName))]), [mbOK], mbInfo, mbNone, mbOK) else ShowMessageBox(LANGWarningCreatedFileFailsCRCCheck, [mbOK], mbWarning, mbNone, mbOK); end else ShowMessageBox(Format(LANGMergeOfSSucceeded_NoCRCFileAvailable, [StrToUTF8(ExtractFileName(TargetFinalName))]), [mbOK], mbInfo, mbNone, mbOK); Engine.CloseFile(FD); end; libc_free(Buffer); SenderThread.FDoneThread := True; end; (********************************************************************************************************************************) function WriteCRCFile(Engine: TPanelEngine; TargetFile, SplitFileName: string; const FileSize: Int64; const FileCRC: Longword): boolean; var FD: TEngineFileDes; Error, Count: integer; s: string; begin Result := False; if Pos('.', TargetFile) > 1 then TargetFile := ChangeFileExt(TargetFile, '.crc') else TargetFile := TargetFile + '.crc'; FD := Engine.OpenFile(TargetFile, omWrite, Error); if Error <> 0 then begin Application.MessageBox(Format(LANGAnErrorOccuredWhileOpeningFileSS, [TargetFile, GetErrorString(Error)]), [mbOK], mbError, mbNone, mbOK); Exit; end; s := Format('filename=%s'#13#10'size=%d'#13#10'crc32=%s'#13#10, [SplitFileName, FileSize, WideUpperCase(IntToHex(FileCRC, 8))]); Count := Engine.WriteFile(FD, @s[1], Length(s), Error); if (Error <> 0) or (Count <> Length(s)) then begin Application.MessageBox(Format(LANGAnErrorOccuredWhileWritingFileSS, [TargetFile, GetErrorString(Error)]), [mbOK], mbError, mbNone, mbOK); Exit; end; Engine.CloseFile(FD); Result := True; end; (********************************************************************************************************************************) procedure SplitFilesWorker(SenderThread: TWorkerThread); // ParamInt64 = SplitSize // ParamString1 = FileName // ParamString2 = NewPath // ParamBool1 = DeleteTarget const SplitBlockSize = 65536*4; var FD: TEngineFileDes; Error: integer; FileCRC: LongWord; Buffer: Pointer; PrivateCancel: boolean; FilePath: string; SizeDone, TDF, FileSize, CurrSize: Int64; function WriteSplitPart(TargetFile: string; PartSize: Int64; var Written: Int64): boolean; var FDW: TEngineFileDes; Count, wCount, bl: integer; begin Result := False; Written := 0; with SenderThread do begin FDW := Engine.OpenFile(TargetFile, omWrite, Error); DebugMsg(['-- Opening file ', ExtractFileName(TargetFile), ', PartSize = ', PartSize]); if Error <> 0 then Exit; if ParamInt64 > 0 then begin UpdateCaption2(Format(LANGToS, [StrToUTF8(TargetFile)])); SetProgress1Params(PartSize); UpdateProgress1(0, '0 %'); end else UpdateCaption1(Format(LANGToS, [StrToUTF8(TargetFile)])); CommitGUIUpdate; repeat DebugMsg(['Seek to ', Engine.FileSeek(FD, SizeDone + Written, Error), ', Written = ', Written]); if Written + SplitBlockSize > PartSize then bl := PartSize - Written else bl := SplitBlockSize; Count := Engine.ReadFile(FD, Buffer, bl, Error); if (Error <> 0) or (Count <> bl) then begin Engine.CloseFile(FDW); DebugMsg(['Read Error: ', GetErrorString(Error), ', Count = ', Count, ', bl = ', bl]); if (Count <> bl) and (Error = 0) then Error := EIO; Exit; end; wCount := Engine.WriteFile(FDW, Buffer, Count, Error); Inc(Written, wCount); FileCRC := CRC32(FileCRC, Buffer, wCount); if (Error <> 0) or (Count <> wCount) then begin Engine.CloseFile(FDW); DebugMsg(['Write Error: ', GetErrorString(Error), ', Count = ', Count, ', wCount = ', wCount]); if (wCount <> Count) and (Error = 0) then Error := ENOSPC; Exit; end; UpdateProgress1(FProgress1Pos + wCount, Format('%d %%', [Trunc((FProgress1Pos + wCount) / FProgress1Max * 100)])); if ParamInt64 > 0 then UpdateProgress2(FProgress2Pos + wCount, Format('%d %%', [Trunc((FProgress2Pos + wCount) / FProgress2Max * 100)])); CommitGUIUpdate; until (Written = PartSize) or Cancelled or PrivateCancel; Engine.CloseFile(FDW); end; DebugMsg(['-- Closing file ', ExtractFileName(TargetFile), ', PartSize = ', PartSize, ', Written = ', Written]); Result := True; end; // Returns True if it should break the process function NewDiskQuestion: boolean; begin Result := False; with SenderThread do begin TDF := Engine.GetFileSystemFree(FilePath); // Calculate part size if ParamInt64 = 0 then begin if FileSize - SizeDone > TDF then CurrSize := TDF else CurrSize := FileSize - SizeDone; end else if SizeDone + ParamInt64 > FileSize then CurrSize := FileSize - SizeDone else CurrSize := ParamInt64; if (TDF < 512) {or (CurrSize < 512)} or (TDF < CurrSize) then begin DebugMsg(['-- New disk question']); Engine.ExplicitChDir('/'); PrivateCancel := ShowNewDirDialog(LANGSplitCaption, LANGPleaseInsertNextDiskOrGiveDifferentLocation, StrToUTF8(FilePath)) <> integer(mbOK); if not PrivateCancel then FilePath := UTF8ToStr(FNewDirEdit); Result := PrivateCancel; end; end; end; var i: integer; OriginalFName, st, FileName: string; ws: Int64; Stat: PDataItemSL; b: boolean; List: TList; begin with SenderThread do begin Stat := Engine.GetFileInfoSL(ParamString1); if not Assigned(Stat) then begin FCancelMessage := Format(LANGCannotOpenFileS, [StrToUTF8(ParamString1)]); FShowCancelMessage := True; Exit; end; if (ParamInt64 > 0) and (Stat^.Size > ParamInt64 * 999) then begin FCancelMessage := LANGCannotSplitTheFileToMoreThan999Parts; FShowCancelMessage := True; Exit; end; FileSize := Stat^.Size; SizeDone := 0; FileCRC := 0; List := TList.Create; try Buffer := malloc(SplitBlockSize); memset(Buffer, 0, SplitBlockSize); except FCancelMessage := LANGAnErrorOccuredWhileInitializingMemoryBlock; FShowCancelMessage := True; Exit; end; FD := Engine.OpenFile(ParamString1, omRead, Error); if Error <> 0 then begin FCancelMessage := Format(LANGAnErrorOccuredWhileOpeningFileSS, [StrToUTF8(ParamString1), GetErrorString(Error)]); libc_free(Buffer); Exit; end; FilePath := IncludeTrailingPathDelimiter(ProcessPattern(Engine, ParamString2, Engine.Path, '', True)); FileName := ExtractFileName(ParamString1); OriginalFName := FileName; if Pos('.', FileName) > 1 then FileName := ChangeFileExt(FileName, '.001') else FileName := FileName + '.001'; PrivateCancel := False; if ParamInt64 > 0 then begin SetProgress2Params(FileSize); UpdateProgress2(0, '0 %'); end else begin SetProgress1Params(FileSize); UpdateProgress1(0, '0 %'); end; UpdateCaption1(Format(LANGFromS, [StrToUTF8(IncludeTrailingPathDelimiter(FilePath) + OriginalFName)])); CommitGUIUpdate; repeat TDF := Engine.GetFileSystemFree(FilePath); // Delete target files if necessary if ParamBool1 and ((TDF < 512) or (TDF < FileSize) or (TDF < ParamInt64)) then try if List.Count > 0 then for i := List.Count - 1 downto 0 do FreeDataItem(PDataItem(List[i])); List.Clear; Error := Engine.GetListing(List, ConfShowDotFiles, FilePath); if (Error = 0) and (List.Count > 0) then begin st := ''; if List.Count < 6 then begin for i := 0 to List.Count - 1 do st := st + ' ' + string(PDataItem(List[i])^.FDisplayName) + #10; b := ShowMessageBox(Format(LANGThereAreSomeFilesInTheTargetDirectorySDoYouWantToDeleteThem, [StrToUTF8(st)]), [mbYes, mbNo], mbQuestion, mbNone, mbNo) = mbYes; end else b := ShowMessageBox(Format(LANGThereAreDFilesInTheTargetDirectoryDoYouWantToDeleteThem, [List.Count]), [mbYes, mbNo], mbQuestion, mbNone, mbNo) = mbYes; if b then for i := 0 to List.Count - 1 do begin Error := Engine.Remove(IncludeTrailingPathDelimiter(FilePath) + string(PDataItem(List[i])^.FName)); if Error <> 0 then ShowMessageBox(Format(LANGTheTargetFileSCannotBeRemovedS, [StrToUTF8(IncludeTrailingPathDelimiter(FilePath)) + string(PDataItem(List[i])^.FDisplayName), GetErrorString(Error)]), [mbOK], mbError, mbNone, mbOK); end; end; except end; // Test for target file existence if Engine.FileExists(IncludeTrailingPathDelimiter(FilePath) + FileName) then begin b := ShowMessageBox(Format(LANGTheTargetFileSAlreadyExistsDoYouWantToOverwriteIt, [StrToUTF8(IncludeTrailingPathDelimiter(FilePath) + FileName)]), [mbYes, mbNo], mbQuestion, mbNone, mbNo) = mbYes; if b then begin Error := Engine.Remove(IncludeTrailingPathDelimiter(FilePath) + FileName); if Error <> 0 then begin FCancelMessage := Format(LANGTheTargetFileSCannotBeRemovedS, [StrToUTF8(IncludeTrailingPathDelimiter(FilePath) + FileName), GetErrorString(Error)]); FShowCancelMessage := True; PrivateCancel := True; Break; end; end else begin PrivateCancel := True; Break; end; end; // Free space check if NewDiskQuestion then Break; // Writing ws := 0; if (CurrSize >= 512) and (TDF >= CurrSize) then begin b := WriteSplitPart(IncludeTrailingPathDelimiter(FilePath) + FileName, CurrSize, ws); if (not b) and (ParamInt64 > 0) then begin FCancelMessage := Format(LANGAnErrorOccuredWhileOperationS, [GetErrorString(Error)]); FShowCancelMessage := True; PrivateCancel := True; Break; end; Inc(SizeDone, ws); if ParamInt64 > 0 then UpdateProgress2(SizeDone, Format('%d %%', [Trunc(SizeDone / FileSize * 100)])) else UpdateProgress1(SizeDone, Format('%d %%', [Trunc(SizeDone / FileSize * 100)])); CommitGUIUpdate; end; // Free space check - New disk question after operation if NewDiskQuestion then Break; // Change filename if ws > 0 then try FileName := Copy(FileName, 1, LastDelimiter('.', FileName)) + Format('%.3d', [StrToInt(Copy(FileName, LastDelimiter('.', FileName) + 1, Length(FileName) - LastDelimiter('.', FileName))) + 1]); except FileName := ''; end; until (SizeDone = FileSize) or Cancelled or PrivateCancel or (FileName = ''); if Cancelled and (not PrivateCancel) then begin FCancelMessage := LANGUserCancelled; FShowCancelMessage := True; end; if not (Cancelled or PrivateCancel) then begin repeat TDF := Engine.GetFileSystemFree(FilePath); if (TDF < 512) and (not NewDiskQuestion) then Break; until (TDF >= 512) or PrivateCancel or Cancelled; if WriteCRCFile(Engine, IncludeTrailingPathDelimiter(FilePath) + FileName, OriginalFName, SizeDone, FileCRC) then ShowMessageBox(Format(LANGSplitOfSSucceeded, [StrToUTF8(OriginalFName)]), [mbOK], mbInfo, mbNone, mbOK) else begin FCancelMessage := Format(LANGSplitOfSFailed, [StrToUTF8(OriginalFName)]); FShowCancelMessage := True; end; end; Engine.CloseFile(FD); end; List.Free; SenderThread.FDoneThread := True; end; (********************************************************************************************************************************) procedure ChmodFilesWorker(SenderThread: TWorkerThread); // ParamBool1 = Recursive // ParamInt1 = All/Dir/Files // ParamCardinal1 = Mode var SkipAll: boolean; function HandleChmod(AFileRec: PDataItemSL): boolean; var Res, Response: integer; begin Result := True; with SenderThread do begin // DebugMsg(['Chmod Debug: IsDir: ', AFileRec^.IsDir, ', Stage1: ', AFileRec^.Stage1, ', IsLnk: ', AFileRec^.IsLnk, '; Result = ', AFileRec^.IsDir and AFileRec^.Stage1 and (not AFileRec^.IsLnk)]); if AFileRec^.IsDir and ParamBool1 and AFileRec^.Stage1 and (not AFileRec^.IsLnk) then Exit; if (not AFileRec^.IsDir) and ParamBool1 and (ParamInt1 = 1) then Exit; // Directories only if AFileRec^.IsDir and ParamBool1 and (ParamInt1 = 2) then Exit; // Files only Res := Engine.Chmod(String(AFileRec^.FName), ParamCardinal1); // DebugMsg(['Result : ', Res]); if Res <> 0 then if SkipAll then Result := True else begin Response := ShowDirDeleteDialog(1, LANGTheFileDirectory, String(AFileRec^.FDisplayName), Format(LANGCouldNotBeChmoddedS, [GetErrorString(Res)]), LANGDialogChangePermissions); case Response of 1 : Result := True; 3 : begin SkipAll := True; Result := True; end; 2 : Result := HandleChmod(AFileRec); else Result := False; end; end; end; end; var i: longint; AList: TList; CurrPath: string; Fr: Single; x: PDataItemSL; begin SkipAll := False; with SenderThread do begin AList := TList.Create; AList.Clear; CurrPath := IncludeTrailingPathDelimiter(Engine.Path); if DataList.Count > 0 then for i := 0 to DataList.Count - 1 do with PDataItem(DataList[i])^ do if (not UpDir) and Selected then if IsDir and (not IsLnk) and ParamBool1 then Engine.FillDirFiles(CurrPath + String(FName), AList, 1) else begin x := Engine.GetFileInfoSL(CurrPath + String(FName)); if x <> nil then AList.Add(x); end; if (AList.Count = 0) and Assigned(SelectedItem) and (not SelectedItem^.UpDir) then with SelectedItem^ do if IsDir and (not IsLnk) and ParamBool1 then Engine.FillDirFiles(CurrPath + String(FName), AList, 1) else begin x := Engine.GetFileInfoSL(CurrPath + String(FName)); if x <> nil then AList.Add(x); end; Engine.ExplicitChDir('/'); SetProgress1Params(AList.Count); UpdateProgress1(0, '0 %'); CommitGUIUpdate; // DebugWriteListSL(AList); if AList.Count = 1 then Fr := 1 else Fr := 100 / (AList.Count - 1); if AList.Count > 0 then for i := 0 to AList.Count - 1 do begin if Cancelled then begin FCancelMessage := LANGUserCancelled; FShowCancelMessage := True; Break; end; // Process chmod if not HandleChmod(AList[i]) then Break; UpdateProgress1(i, Format('%d%%', [Round(Fr * i)])); UpdateCaption1(PDataItemSL(AList[i])^.FDisplayName); CommitGUIUpdate; end; // Free the objects if AList.Count > 0 then for i := AList.Count - 1 downto 0 do FreeDataItem(PDataItemSL(AList[i])); AList.Clear; AList.Free; end; SenderThread.FDoneThread := True; end; (********************************************************************************************************************************) procedure ChownFilesWorker(SenderThread: TWorkerThread); // ParamBool1 = Recursive // ParamCardinal1 = UID // ParamCardinal2 = GID var SkipAll: boolean; function HandleChown(AFileRec: PDataItemSL): boolean; var Res, Response: integer; begin Result := True; with SenderThread do begin // DebugMsg(['Chown Debug: IsDir: ', AFileRec^.IsDir, ', Stage1: ', AFileRec^.Stage1, ', IsLnk: ', AFileRec^.IsLnk, '; Result = ', AFileRec^.IsDir and AFileRec^.Stage1 and (not AFileRec^.IsLnk)]); if (AFileRec^.IsDir and ParamBool1 and AFileRec^.Stage1 and (not AFileRec^.IsLnk)) or ((not AFileRec^.IsDir) and ParamBool1) then Exit; Res := Engine.Chown(String(AFileRec^.FName), ParamCardinal1, ParamCardinal2); // DebugMsg(['Result : ', Res]); if Res <> 0 then if SkipAll then Result := True else begin Response := ShowDirDeleteDialog(1, LANGTheFileDirectory, String(AFileRec^.FDisplayName), Format(LANGCouldNotBeChownedS, [GetErrorString(Res)]), LANGDialogChangeOwner); case Response of 1 : Result := True; 3 : begin SkipAll := True; Result := True; end; 2 : Result := HandleChown(AFileRec); else Result := False; end; end; end; end; var i: longint; AList: TList; CurrPath: string; Fr: Single; x: PDataItemSL; begin SkipAll := False; with SenderThread do begin AList := TList.Create; AList.Clear; CurrPath := IncludeTrailingPathDelimiter(Engine.Path); if DataList.Count > 0 then for i := 0 to DataList.Count - 1 do with PDataItem(DataList[i])^ do if (not UpDir) and Selected then if IsDir and (not IsLnk) and ParamBool1 then Engine.FillDirFiles(CurrPath + String(FName), AList, 1) else begin x := Engine.GetFileInfoSL(CurrPath + String(FName)); if x <> nil then AList.Add(x); end; if (AList.Count = 0) and Assigned(SelectedItem) and (not SelectedItem^.UpDir) then with SelectedItem^ do if IsDir and (not IsLnk) and ParamBool1 then Engine.FillDirFiles(CurrPath + String(FName), AList, 1) else begin x := Engine.GetFileInfoSL(CurrPath + String(FName)); if x <> nil then AList.Add(x); end; Engine.ExplicitChDir('/'); SetProgress1Params(AList.Count); UpdateProgress1(0, '0 %'); CommitGUIUpdate; // DebugWriteListSL(AList); if AList.Count = 1 then Fr := 1 else Fr := 100 / (AList.Count - 1); if AList.Count > 0 then for i := 0 to AList.Count - 1 do begin if Cancelled then begin FCancelMessage := LANGUserCancelled; FShowCancelMessage := True; Break; end; // Process chmod if not HandleChown(AList[i]) then Break; UpdateProgress1(i, Format('%d%%', [Round(Fr * i)])); UpdateCaption1(PDataItemSL(AList[i])^.FDisplayName); CommitGUIUpdate; end; // Free the objects if AList.Count > 0 then for i := AList.Count - 1 downto 0 do FreeDataItem(PDataItemSL(AList[i])); AList.Clear; AList.Free; end; SenderThread.FDoneThread := True; end; (********************************************************************************************************************************) procedure DummyThreadWorker(SenderThread: TWorkerThread); var i: integer; begin DebugMsg(['(II) DummyThreadWorker: begin']); with SenderThread do begin SetProgress1Params(100); SetProgress2Params(100); UpdateProgress1(0, '0 %'); UpdateProgress2(100, '100 %'); CommitGUIUpdate; for i := 1 to 100 do begin Sleep(100); DebugMsg([' (II) DummyThreadWorker: done ', i, ' / 100']); UpdateProgress1(i, Format('%d%%', [i])); UpdateCaption1(Format('Test %d test', [i])); UpdateProgress2(101-i, Format('%d%%', [101-i])); UpdateCaption2(Format('Test %d test', [101-i])); CommitGUIUpdate; if Cancelled then Break; end; end; DebugMsg(['(II) DummyThreadWorker: finish']); SenderThread.FDoneThread := True; end; (********************************************************************************************************************************) function CreateSymlink(const FileName, PossibleNewName: string; Engine: TPanelEngine) : boolean; var AFSymLink: TFSymlink; function HandleCreateSymlink(const OldName, NewName: string): boolean; var Res, Response: integer; begin Res := Engine.MakeSymLink(NewName, OldName); Result := Res = 0; if not Result then begin try FDirDelete := TFDirDelete.Create(AFSymlink); FDirDelete.Caption := LANGDialogMakeSymlink; FDirDelete.AddButtons(2); FDirDelete.Label1.Caption := LANGTheSymbolicLink; FDirDelete.Label2.Caption := NewName; FDirDelete.Label3.Caption := Format(LANGCouldNotBeCreatedS, [GetErrorString(Res)]); FDirDelete.Label3.Visible := True; Response := Integer(FDirDelete.Run); finally FDirDelete.Free; end; case Response of 1 : Result := HandleCreateSymlink(OldName, NewName); else Result := False; end; end; end; begin Result := False; try AFSymlink := TFSymlink.Create(Application.MainForm); AFSymLink.FileName := FileName; AFSymLink.PossibleNewName := PossibleNewName; AFSymlink.FromEntry.Text := StrToUTF8(FileName); AFSymlink.ToEntry.Text := StrToUTF8(PossibleNewName); AFSymlink.ToEntry.SetFocus; AFSymlink.ToEntry.SelectAll; AFSymLink.RelativeCheckButton.Checked := ConfMakeSymlinkRelative; if AFSymlink.Run = mbOK then Result := HandleCreateSymlink(UTF8ToStr(AFSymlink.FromEntry.Text), ProcessPattern(Engine, UTF8ToStr(AFSymlink.ToEntry.Text), Engine.Path, '', False)); if Result then ConfMakeSymlinkRelative := AFSymLink.RelativeCheckButton.Checked; finally AFSymlink.Free; end; end; (********************************************************************************************************************************) function EditSymlink(const FileName: string; Engine: TPanelEngine) : boolean; var Data: PDataItemSL; AFSymLink: TFSymlink; function HandleEditSymlink(const ExistingName, PointTo: string): boolean; var Res, Response: integer; begin Res := Engine.Remove(ExistingName); Result := Res = 0; if not Result then begin try FDirDelete := TFDirDelete.Create(AFSymlink); FDirDelete.Caption := LANGDialogEditSymlink; FDirDelete.AddButtons(2); FDirDelete.Label1.Caption := LANGTheSymbolicLink; FDirDelete.Label2.Caption := StrToUTF8(ExistingName); FDirDelete.Label3.Caption := Format(LANGCouldNotBeDeletedS, [GetErrorString(Res)]); FDirDelete.Label3.Visible := True; Response := Integer(FDirDelete.Run); finally FDirDelete.Free; end; case Response of 1 : HandleEditSymlink(ExistingName, PointTo); end; Exit; end; Res := Engine.MakeSymLink(ExistingName, PointTo); Result := Res = 0; if not Result then begin try FDirDelete := TFDirDelete.Create(AFSymlink); FDirDelete.Caption := LANGDialogMakeSymlink; FDirDelete.AddButtons(2); FDirDelete.Label1.Caption := LANGTheSymbolicLink; FDirDelete.Label2.Caption := StrToUTF8(ExistingName); FDirDelete.Label3.Caption := Format(LANGCouldNotBeCreatedS, [GetErrorString(Res)]); FDirDelete.Label3.Visible := True; Response := Integer(FDirDelete.Run); finally FDirDelete.Free; end; case Response of 1 : Result := HandleEditSymlink(ExistingName, PointTo); else Result := False; end; end; end; begin Result := False; Data := Engine.GetFileInfoSL(FileName); if Data = nil then begin Result := False; Exit; end; try AFSymlink := TFSymlink.Create(Application); AFSymlink.Caption := LANGFEditSymlink_Caption; AFSymlink.FromEntry.Text := StrToUTF8(FileName); AFSymlink.Label1.Caption := LANGFEditSymlink_SymbolicLinkFilename; AFSymlink.Label1.UseUnderline := True; AFSymlink.Label2.Caption := LANGFEditSymlink_SymbolicLinkPointsTo; AFSymlink.Label2.UseUnderline := True; AFSymlink.FromEntry.Enabled := False; AFSymlink.ToEntry.Text := StrToUTF8(Data^.LnkPointTo); AFSymlink.ToEntry.SelectAll; AFSymLink.RelativeCheckButton.Visible := False; if AFSymlink.Run = mbOK then Result := HandleEditSymlink(UTF8ToStr(AFSymlink.FromEntry.Text), UTF8ToStr(AFSymlink.ToEntry.Text)); finally AFSymlink.Free; end; end; (********************************************************************************************************************************) (********************************************************************************************************************************) procedure ProcessProgressThread(SenderThread: TWorkerThread; ProgressForm: TFProgress); var AFDirDelete: TFDirDelete; AFOverwrite: TFOverwrite; AFNewDir: TFNewDir; b: boolean; begin DebugMsg([' ** ProcessProgressThread --begin']); b := False; try while not SenderThread.FDoneThread do begin // Write('.'); Sleep(ConstInternalProgressTimer); // DebugMsg([' ** ProcessProgressThread: updating UI (FProgress1Pos = ', SenderThread.FProgress1Pos, ', FProgress2Pos = ', SenderThread.FProgress2Pos]); // DebugMsg(['ProcessProgressThread - before mutex']); SenderThread.GUIMutex.Acquire; // WriteLn('ProcessProgressThread - ted mam lock ja! -- enter'); try if SenderThread.FGUIChanged then begin if SenderThread.FGUIProgress1Max > 1 then ProgressForm.ProgressBar.Fraction := SenderThread.FGUIProgress1Pos / SenderThread.FGUIProgress1Max else ProgressForm.ProgressBar.Fraction := 0; // ProgressForm.ProgressBar.Value := SenderThread.FGUIProgress1Pos; ProgressForm.ProgressBar.Text := SenderThread.FGUIProgress1Text; ProgressForm.Label2.Caption := SenderThread.FGUILabel1Text; if ProgressForm.FTwoBars then begin if SenderThread.FGUIProgress2Max > 1 then ProgressForm.ProgressBar2.Fraction := SenderThread.FGUIProgress2Pos / SenderThread.FGUIProgress2Max else ProgressForm.ProgressBar2.Fraction := 0; // ProgressForm.ProgressBar2.Value := SenderThread.FGUIProgress2Pos; ProgressForm.ProgressBar2.Text := SenderThread.FGUIProgress2Text; ProgressForm.Label3.Caption := SenderThread.FGUILabel2Text; end; ProgressForm.ProgressBar.Max := SenderThread.FGUIProgress1Max; ProgressForm.ProgressBar2.Max := SenderThread.FGUIProgress2Max; SenderThread.FGUIChanged := False; end; except on E: Exception do DebugMsg(['*** Exception raised in UCore.ProcessProgressThread::updating progress bars block (', E.ClassName, '): ', E.Message]); end; // Sleep(1000); // WriteLn('ProcessProgressThread - ted mam lock ja! -- leave'); SenderThread.GUIMutex.Release; // DebugMsg(['Before refresh']); Application.ProcessMessages; // DebugMsg(['After refresh']); // VFS callbacks if SenderThread.VFSAskQuestion_Display then begin SenderThread.VFSAskQuestion_Display := False; DebugMsg(['ProcessProgressThread - Main thread: displaying question dialog']); HandleVFSAskQuestionCallback(ProgressForm.FWidget, SenderThread.VFSAskQuestion_Message, SenderThread.VFSAskQuestion_Choices, SenderThread.VFSAskQuestion_Choice); SenderThread.VFSCallbackEvent.SetEvent; end; if SenderThread.VFSAskPassword_Display then begin SenderThread.VFSAskPassword_Display := False; DebugMsg(['ProcessProgressThread - Main thread: displaying password prompt']); SenderThread.VFSAskPassword_Result := HandleVFSAskPasswordCallback(ProgressForm.FWidget, SenderThread.VFSAskPassword_Message, SenderThread.VFSAskPassword_default_user, SenderThread.VFSAskPassword_default_domain, SenderThread.VFSAskPassword_default_password, SenderThread.VFSAskPassword_flags, SenderThread.VFSAskPassword_username, SenderThread.VFSAskPassword_password, SenderThread.VFSAskPassword_anonymous, SenderThread.VFSAskPassword_domain, SenderThread.VFSAskPassword_password_save); SenderThread.VFSCallbackEvent.SetEvent; end; try if SenderThread.FDialogShowDirDelete then begin AFDirDelete := nil; try AFDirDelete := TFDirDelete.Create(SenderThread.ProgressForm as TComponent); AFDirDelete.Caption := SenderThread.FDirDeleteCaption; AFDirDelete.AddButtons(SenderThread.FDirDeleteButtonsType); AFDirDelete.Label1.Caption := SenderThread.FDirDeleteLabel1Text; AFDirDelete.Label2.Caption := SenderThread.FDirDeleteLabel2Text; AFDirDelete.Label3.Caption := SenderThread.FDirDeleteLabel3Text; AFDirDelete.Label2.Visible := SenderThread.FDirDeleteLabel2Visible; AFDirDelete.Label3.Visible := SenderThread.FDirDeleteLabel3Visible; SenderThread.FDialogResultDirDelete := Integer(AFDirDelete.Run); if (SenderThread.FDirDeleteButtonsType = 3) and (SenderThread.FDialogResultDirDelete = 2) and (not SenderThread.ParamBool3) then case Application.MessageBox(LANGIgnoreError, [mbYes, mbNo{, mbCancel}], mbWarning, mbYes, mbNo) of mbNo: SenderThread.FDialogResultDirDelete := 1; mbCancel: SenderThread.FDialogResultDirDelete := 0; end; finally AFDirDelete.Free; end; SenderThread.FDialogShowDirDelete := False; b := True; end; if SenderThread.FDialogShowOverwrite then begin AFOverwrite := nil; try AFOverwrite := TFOverwrite.Create(SenderThread.ProgressForm as TComponent); AFOverwrite.AddButtons(SenderThread.FOverwriteButtonsType); AFOverwrite.FromLabel.Caption := SenderThread.FOverwriteFromLabel; AFOverwrite.FromInfoLabel.Caption := SenderThread.FOverwriteFromInfoLabel; AFOverwrite.ToLabel.Caption := SenderThread.FOverwriteToLabel; AFOverwrite.ToInfoLabel.Caption := SenderThread.FOverwriteToInfoLabel; AFOverwrite.RenameStr := SenderThread.FOverwriteRenameStr; AFOverwrite.SourceFile := SenderThread.FOverwriteSourceFile; AFOverwrite.DestFile := SenderThread.FOverwriteDestFile; SenderThread.FDialogResultOverwrite := Integer(AFOverwrite.Run); SenderThread.FOverwriteRenameStr := UTF8ToStr(AFOverwrite.RenameStr); finally AFOverwrite.Free; end; SenderThread.FDialogShowOverwrite := False; b := True; end; if SenderThread.FDialogShowNewDir then begin AFNewDir := nil; try AFNewDir := TFNewDir.Create(SenderThread.ProgressForm as TComponent); AFNewDir.Caption := SenderThread.FNewDirCaption; AFNewDir.Label1.Caption := SenderThread.FNewDirLabel; AFNewDir.Entry.Text := SenderThread.FNewDirEdit; AFNewDir.Entry.SelectAll; SenderThread.FDialogResultNewDir := Integer(AFNewDir.Run); SenderThread.FNewDirEdit := AFNewDir.Entry.Text; finally AFNewDir.Free; end; SenderThread.FDialogShowNewDir := False; b := True; end; if SenderThread.FDialogShowMsgBox then begin SenderThread.FDialogResultMsgBox := Application.MessageBox(SenderThread.FMsgBoxText, SenderThread.FMsgBoxButtons, SenderThread.FMsgBoxStyle, SenderThread.FMsgBoxDefault, SenderThread.FMsgBoxEscape); SenderThread.FDialogShowMsgBox := False; b := True; end; finally // Unlock the waiting worker thread if b then begin b := False; SenderThread.FCallbackLockEvent.SetEvent; end; end; end; if SenderThread.FShowCancelMessage then if SenderThread.FCancelMessage = LANGUserCancelled then Application.MessageBox(SenderThread.FCancelMessage, [mbOK], mbWarning, mbNone, mbOK) else Application.MessageBox(SenderThread.FCancelMessage, [mbOK], mbError, mbNone, mbOK); except on E: Exception do DebugMsg(['*** Exception raised in UCore.ProcessProgressThread (', E.ClassName, '): ', E.Message]); end; DebugMsg([' ** ProcessProgressThread --end']); end; (********************************************************************************************************************************) (********************************************************************************************************************************) procedure TWorkerThread.Execute; begin PrepareExecute; if Assigned(WorkerProcedure) then WorkerProcedure(Self); end; constructor TWorkerThread.Create; begin inherited Create(True); FreeOnTerminate := False; GUIMutex := TCriticalSection.Create; FCallbackLockEvent := TSimpleEvent.Create; FCancelled := False; ProgressForm := nil; Engine := nil; DataList := nil; ParamPointer1 := nil; WorkerProcedure := nil; SelectedItem := nil; FDoneThread := False; FShowCancelMessage := False; FDialogShowDirDelete := False; FDialogShowOverwrite := False; FDialogShowNewDir := False; FDialogShowMsgBox := False; ExtractFromVFSMode := False; ErrorHappened := False; ParamBool1 := False; ParamBool2 := False; ParamBool3 := False; ParamBool4 := False; ParamBool5 := False; FGUIChanged := False; end; destructor TWorkerThread.Destroy; begin GUIMutex.Free; FCallbackLockEvent.Free; inherited Destroy; end; procedure TWorkerThread.CancelIt; begin FCancelled := True; end; function TWorkerThread.Cancelled: boolean; begin Result := FCancelled or ProgressForm.Cancelled; end; procedure TWorkerThread.UpdateProgress1(const Progress: Int64; const ProgressText: string); begin // DebugMsg([' ** TWorkerThread.UpdateProgress1(Progress = ', Progress, ', ProgressText = ', ProgressText]); FProgress1Pos := Progress; FProgress1Text := ProgressText; end; procedure TWorkerThread.UpdateProgress2(const Progress: Int64; const ProgressText: string); begin // DebugMsg([' ** TWorkerThread.UpdateProgress2(Progress = ', Progress, ', ProgressText = ', ProgressText]); FProgress2Pos := Progress; FProgress2Text := ProgressText; end; procedure TWorkerThread.SetProgress1Params(const ProgressMax: Int64); begin FProgress1Max := ProgressMax; end; procedure TWorkerThread.SetProgress2Params(const ProgressMax: Int64); begin FProgress2Max := ProgressMax; end; procedure TWorkerThread.UpdateCaption1(const CaptionText: string); begin FLabel1Text := CaptionText; end; procedure TWorkerThread.UpdateCaption2(const CaptionText: string); begin FLabel2Text := CaptionText; end; procedure TWorkerThread.CommitGUIUpdate; begin GUIMutex.Acquire; // WriteLn('TWorkerThread.CommitGUIUpdate, ted mam lock ja! -- enter'); FGUIProgress1Pos := FProgress1Pos; FGUIProgress2Pos := FProgress2Pos; FGUIProgress1Max := FProgress1Max; FGUIProgress2Max := FProgress2Max; FGUIProgress1Text := FProgress1Text; FGUIProgress2Text := FProgress2Text; FGUILabel1Text := FLabel1Text; FGUILabel2Text := FLabel2Text; FGUIChanged := True; // Sleep(1000); // WriteLn('TWorkerThread.CommitGUIUpdate, ted mam lock ja! -- leave'); GUIMutex.Release; end; function TWorkerThread.ShowDirDeleteDialog(ButtonsType: integer; const Label1Text: string; const Label2Text: string = ''; const Label3Text: string = ''; const DirDeleteCaption: string = ''): integer; begin FDialogResultDirDelete := integer(mbCancel); FDirDeleteLabel1Text := Label1Text; FDirDeleteLabel2Text := Label2Text; FDirDeleteLabel3Text := Label3Text; FDirDeleteLabel2Visible := Label2Text <> ''; FDirDeleteLabel3Visible := Label3Text <> ''; FDirDeleteButtonsType := ButtonsType; if DirDeleteCaption = '' then FDirDeleteCaption := LANGRemoveDirectory else FDirDeleteCaption := DirDeleteCaption; FDialogShowDirDelete := True; FCallbackLockEvent.ResetEvent; FCallbackLockEvent.WaitFor(INFINITE); Result := FDialogResultDirDelete; end; function TWorkerThread.ShowOverwriteDialog(ButtonsType: integer; const FromLabel, FromInfoLabel, ToLabel, ToInfoLabel, RenameStr, SourceFile, DestFile: string): integer; begin FDialogResultOverwrite := integer(mbCancel); FOverwriteButtonsType := ButtonsType; FOverwriteFromLabel := FromLabel; FOverwriteFromInfoLabel := FromInfoLabel; FOverwriteToLabel := ToLabel; FOverwriteToInfoLabel := ToInfoLabel; FOverwriteRenameStr := RenameStr; FOverwriteSourceFile := SourceFile; FOverwriteDestFile := DestFile; FDialogShowOverwrite := True; FCallbackLockEvent.ResetEvent; FCallbackLockEvent.WaitFor(INFINITE); Result := FDialogResultOverwrite; end; function TWorkerThread.ShowNewDirDialog(Caption, LabelCaption, Edit: string): integer; begin FNewDirCaption := Caption; FNewDirLabel := LabelCaption; FNewDirEdit := Edit; FDialogShowNewDir := True; FCallbackLockEvent.ResetEvent; FCallbackLockEvent.WaitFor(INFINITE); Result := FDialogResultNewDir; end; function TWorkerThread.ShowMessageBox(const Text: string; Buttons: TMessageButtons; Style: TMessageStyle; Default, Escape: TMessageButton): TMessageButton; begin FMsgBoxText := Text; FMsgBoxButtons := Buttons; FMsgBoxStyle := Style; FMsgBoxDefault := Default; FMsgBoxEscape := Escape; FDialogShowMsgBox := True; FCallbackLockEvent.ResetEvent; FCallbackLockEvent.WaitFor(INFINITE); Result := FDialogResultMsgBox; end; (********************************************************************************************************************************) (********************************************************************************************************************************) (********************************************************************************************************************************) procedure FillDefaultFstabMounterItems; var fd: PFILE; mntent: Pmntent; MounterItem: TMounterItem; begin while MounterList.Count > 0 do begin TMounterItem(MounterList[MounterList.Count - 1]).Free; MounterList.Delete(MounterList.Count - 1); end; MounterList.Clear; fd := setmntent(_PATH_MNTTAB, 'r'); if fd = nil then Exit; // Get mount name mntent := getmntent(fd); while mntent <> nil do begin DebugMsg(['FillDefaultFstabMounterItems: found "', mntent^.mnt_dir, '" --> "', mntent^.mnt_fsname, '", fstype "', mntent^.mnt_type, '"']); if (mntent^.mnt_dir <> nil) and (mntent^.mnt_type <> nil) and (strlen(mntent^.mnt_dir) > 0) and (strlen(mntent^.mnt_type) > 0) and (mntent^.mnt_dir <> '/') and (mntent^.mnt_dir <> '/boot') and (Pos('/proc', mntent^.mnt_dir) <> 1) and (Pos('/dev', mntent^.mnt_dir) <> 1) and (Pos('/sys', mntent^.mnt_dir) <> 1) and (mntent^.mnt_dir <> 'swap') and (mntent^.mnt_type <> 'swap') and (mntent^.mnt_type <> 'rpc_pipefs') and (mntent^.mnt_type <> 'none') and (mntent^.mnt_dir <> 'none') then begin MounterItem := TMounterItem.Create; MounterItem.DisplayText := ''; MounterItem.MountPath := mntent^.mnt_dir; MounterItem.Device := mntent^.mnt_fsname; if (Pos('ISO9660', UpperCase(mntent^.mnt_type)) > 0) or (Pos('CDROM', UpperCase(mntent^.mnt_dir)) > 0) or (Pos('CDRW', UpperCase(mntent^.mnt_dir)) > 0) or (Pos('DVD', UpperCase(mntent^.mnt_dir)) > 0) then MounterItem.DeviceType := 2 else if (Pos('FLOPPY', UpperCase(mntent^.mnt_dir)) > 0) then MounterItem.DeviceType := 3 else if (Pos('ZIP', UpperCase(mntent^.mnt_type)) > 0) or (Pos('USB', UpperCase(mntent^.mnt_dir)) > 0) or (Pos('CAMERA', UpperCase(mntent^.mnt_dir)) > 0) then MounterItem.DeviceType := 1 else if (Pos('NFS', UpperCase(mntent^.mnt_type)) > 0) or (Pos('SMB', UpperCase(mntent^.mnt_type)) > 0) or (Pos('NETW', UpperCase(mntent^.mnt_dir)) > 0) then MounterItem.DeviceType := 4 else MounterItem.DeviceType := 0; MounterList.Add(MounterItem); end; mntent := getmntent(fd); end; endmntent(fd); end; function TMounterItem.Mounted: boolean; var fd: PFILE; mntent: Pmntent; begin Result := False; fd := setmntent(_PATH_MOUNTED, 'r'); if fd = nil then Exit; // Get mount name mntent := getmntent(fd); while mntent <> nil do begin // DebugMsg(['mntent^.mnt_dir = ', Int64(mntent^.mnt_dir)]); // DebugMsg(['mntent^.mnt_dir = ', mntent^.mnt_dir]); // DebugMsg(['sizeof(mntent^.mnt_dir) = ', sizeof(mntent^.mnt_dir)]); // DebugMsg(['sizeof(Tmntent) = ', sizeof(Tmntent)]); // DebugMsg(['string(mntent^.mnt_dir) = ', string(mntent^.mnt_dir)]); // DebugMsg(['MountPath = ', MountPath]); if mntent^.mnt_dir = MountPath then begin Result := True; Break; end; mntent := getmntent(fd); end; endmntent(fd); end; function TMounterItem.IsInFSTab: boolean; var fd: PFILE; mntent: Pmntent; begin Result := False; fd := setmntent(_PATH_MNTTAB, 'r'); if fd = nil then Exit; // Get mount name mntent := getmntent(fd); while mntent <> nil do begin if (mntent^.mnt_dir = MountPath) and (mntent^.mnt_fsname = Device) then begin Result := True; Break; end; mntent := getmntent(fd); end; endmntent(fd); end; function TMounterItem.Mount: boolean; var s: string; begin if Length(MountCommand) = 0 then begin if IsInFSTab then s := Format('mount "%s"', [MountPath]) else s := Format('mount "%s" "%s"', [Device, MountPath]); end else begin s := ReplaceStr(MountCommand, '%dev', Device); s := ReplaceStr(s, '%dir', MountPath); end; Result := HandleSystemCommand(s, Format(LANGErrorMount, [StrToUTF8(MountPath)])); end; function TMounterItem.Umount: boolean; var s: string; begin if Length(UmountCommand) = 0 then begin if IsInFSTab then s := Format('umount "%s"', [MountPath]) else s := Format('umount "%s" "%s"', [Device, MountPath]); end else begin s := ReplaceStr(UmountCommand, '%dev', Device); s := ReplaceStr(s, '%dir', MountPath); end; Result := HandleSystemCommand(s, Format(LANGErrorUmount, [StrToUTF8(MountPath)])); end; function TMounterItem.Eject: boolean; var s: string; begin if Length(UmountCommand) = 0 then begin if IsInFSTab then s := Format('eject "%s"', [MountPath]) else s := Format('eject "%s" "%s"', [Device, MountPath]); end else begin s := ReplaceStr(UmountCommand, '%dev', Device); s := ReplaceStr(s, '%dir', MountPath); end; Result := HandleSystemCommand(s, Format(LANGErrorEject, [StrToUTF8(MountPath)])); end; (********************************************************************************************************************************) (********************************************************************************************************************************) procedure TGetDirSizeThread.Execute; begin Result := Engine.GetDirSize(Path); Finished := True; end; constructor TGetDirSizeThread.Create; begin inherited Create(True); FreeOnTerminate := False; FCancelled := False; Finished := False; Result := -1; end; procedure TGetDirSizeThread.CancelIt; begin FCancelled := True; Engine.BreakProcessing(1); end; procedure GetDirSize(AListView: TGTKListView; Engine: TPanelEngine; DataList: TList; AllItems: boolean); var t: time_t; b: boolean; FRemoteWait: TFRemoteWait; function DoGetDirSizeItem(Index: integer): boolean; var Item: TGTKListItem; Data: PDataItem; APath, s: string; ASize: Int64; // List: TList; Thread: TGetDirSizeThread; begin Result := True; try Item := AListView.Items[Index]; if not Assigned(Item) then Exit; Data := Item.Data; if (not Assigned(Data)) or (not Data^.IsDir) then Exit; APath := IncludeTrailingPathDelimiter(Engine.Path) + string(Data^.FName); { List := TList.Create; Engine.FillDirFiles(APath, List, 1); DebugWriteListSL(List); } Thread := TGetDirSizeThread.Create; try Thread.Path := APath; Thread.Engine := Engine; Thread.Resume; // Thread.Execute; while not Thread.Finished do begin Sleep(ConstInternalProgressTimer); if not b and (__time(nil) >= t + 2) then begin FRemoteWait := TFRemoteWait.Create(Application); // FRemoteWait.Label2.Visible := False; FRemoteWait.ParentForm := FMain; FRemoteWait.ShowModal; b := True; end; Application.ProcessMessages; if FMainEscPressed or (Assigned(FRemoteWait) and FRemoteWait.Cancelled) then Thread.CancelIt; end; ASize := Thread.Result; finally Thread.Free; end; if (ASize < 0) or FMainEscPressed or (Assigned(FRemoteWait) and FRemoteWait.Cancelled) then Exit; Data^.Size := ASize; s := FormatSize(ASize, 0); libc_free(Data^.ColumnData[3]); // Data^.ColumnData[3] := malloc(Length(s) + 1); // memset(Data^.ColumnData[3], 0, Length(s) + 1); Data^.ColumnData[3] := strdup(PChar(s)); except end; end; var i, j: integer; Data: PDataItem; begin t := __time(nil); b := False; FRemoteWait := nil; if not AllItems then DoGetDirSizeItem(AListView.Selected.Index) else if DataList.Count > 0 then for i := 0 to DataList.Count - 1 do begin j := AListView.ConvertFromSorted(i); Data := DataList[j]; if Data^.IsDir and (not Data^.UpDir) then begin if not DoGetDirSizeItem(j) then Break; if FMainEscPressed then Break; AListView.Items[j].RedrawRow; end; end; if FRemoteWait <> nil then FRemoteWait.Free; ChDir('/'); end; (********************************************************************************************************************************) constructor TOpenDirThread.Create; begin inherited Create(True); FreeOnTerminate := False; Finished := False; CancelIt := False; ChDirResult := 0; ListingResult := 0; VFSOpenResult := 0; RunningTime := 0; end; destructor TOpenDirThread.Destroy; begin inherited Destroy; end; (********************************************************************************************************************************) function TOpenDirThread.ChangeDir(Engine: TPanelEngine; Path: string; var SelItem: string; const AutoFallBack: boolean): integer; procedure GoUp(var NewPath: string); var x: integer; begin if NewPath = PathDelim then Exit; NewPath := ExcludeTrailingPathDelimiter(NewPath); if Length(Trim(NewPath)) < 2 then Exit; x := PosEnd(PathDelim, NewPath); SelItem := Copy(NewPath, x + 1, Length(NewPath) - x); NewPath := Copy(NewPath, 1, x); NewPath := IncludeTrailingPathDelimiter(NewPath); end; var APath: string; Error : integer; begin try APath := Engine.Path; if Path = '..' then GoUp(APath) else begin APath := IncludeTrailingPathDelimiter(APath); Path := IncludeTrailingPathDelimiter(Path); if (Length(Path) > 0) and (Path[1] <> '/') then APath := APath + Path else APath := Path; APath := IncludeTrailingPathDelimiter(APath); end; // AutoFallback loop if Engine is TVFSEngine then Error := (Engine as TVFSEngine).ChangeDirEx(APath, @vfs_ask_question_callback, @vfs_ask_password_callback, nil, Self) else Error := Engine.ChangeDir(APath); while AutoFallback and (Error <> 0) and (APath <> '/') do begin GoUp(APath); if Engine is TVFSEngine then Error := (Engine as TVFSEngine).ChangeDirEx(APath, @vfs_ask_question_callback, @vfs_ask_password_callback, nil, Self) else Error := Engine.ChangeDir(APath); end; // Going on... if Error <> 0 then begin Result := Error; DebugMsg(['*** UCore.ChangeDir: error during Engine.ChangeDir: ', GetErrorString(Error)]); Exit; end; Engine.Path := APath; Result := 0; except on E: Exception do begin DebugMsg(['*** Exception raised in UCore.ChangeDir (', E.ClassName, '): ', E.Message]); Result := 1; end; end; end; procedure TOpenDirThread.Execute; var tt: TDateTime; xEngine: TVFSEngine; begin PrepareExecute; try tt := Now; try if APlugin <> nil then begin xEngine := TVFSEngine.Create(APlugin); xEngine.ParentEngine := AEngine; AEngine.LastHighlightItem := AHighlightItem; xEngine.SavePath := AEngine.Path; // AEngine must be set here since VFSOpenEx callbacks will reference it AEngine := xEngine; VFSOpenResult := (AEngine as TVFSEngine).VFSOpenEx(AFullPath, @vfs_ask_question_callback, @vfs_ask_password_callback, nil, Self); end else VFSOpenResult := 0; if (VFSOpenResult = 0) and (not CancelIt) then begin ChDirResult := ChangeDir(AEngine, APath, ASelItem, AAutoFallBack); if (ChDirResult = 0) and (not CancelIt) then ListingResult := AEngine.GetListing(ADirList, ConfShowDotFiles); end; except on E: Exception do DebugMsg(['*** Exception raised in TOpenDirThread.Execute (', E.ClassName, '): ', E.Message]); end; RunningTime := MilliSecondsBetween(tt, Now); finally Finished := True; end; end; (********************************************************************************************************************************) (********************************************************************************************************************************) constructor TOpenConnectionThread.Create; begin inherited Create(True); FreeOnTerminate := False; Finished := False; OpenResult := False; end; destructor TOpenConnectionThread.Destroy; begin inherited Destroy; end; procedure TOpenConnectionThread.Execute; begin PrepareExecute; try OpenResult := (AEngine as TVFSEngine).VFSOpenURI(URI, @vfs_ask_question_callback, @vfs_ask_password_callback, nil, Self); finally Finished := True; end; end; (********************************************************************************************************************************) (********************************************************************************************************************************) function PurgeDirectory(APath: string): boolean; var Handle : PDIR; DirEnt : PDirent64; StatBuf : Pstat64; Buf : PChar; begin Result := True; try APath := IncludeTrailingPathDelimiter(APath); Handle := opendir(PChar(APath)); if not Assigned(Handle) then begin Result := False; Exit; end; repeat DirEnt := readdir64(Handle); if Assigned(DirEnt) and Assigned(PChar(@DirEnt^.d_name[0])) then begin Buf := Pchar(@DirEnt^.d_name[0]); if (Buf <> '.') and (Buf <> '..') and (DirEnt^.d_name[0] <> #0) then begin StatBuf := malloc(sizeof(Tstat64)); memset(StatBuf, 0, sizeof(Tstat64)); if lstat64(PChar(APath + string(Buf)), StatBuf) = 0 then if __S_ISTYPE(StatBuf.st_mode, __S_IFDIR) then PurgeDirectory(APath + string(Buf)) else begin // DebugMsg(['Removing ', APath + string(Buf)]); Result := Result and (libc_remove(PChar(APath + string(Buf))) = 0); end; libc_free(StatBuf); end; end; until DirEnt = nil; closedir(Handle); // DebugMsg(['Removing ', ExcludeTrailingPathDelimiter(APath)]); Result := Result and (libc_remove(PChar(ExcludeTrailingPathDelimiter(APath))) = 0); except on E: Exception do DebugMsg(['*** Exception raised in UCore.PurgeDirectory(APath = ', APath, '): ', E.ClassName, ': ', E.Message]); end; end; procedure CleanTempDirs; var i: integer; begin try if Assigned(UsedTempPaths) and (UsedTempPaths.Count > 0) then for i := 0 to UsedTempPaths.Count - 1 do DebugMsg(['(II) PurgeDirectory: Cleaning directory "', UsedTempPaths[i], '", Successfull = ', PurgeDirectory(UsedTempPaths[i])]); UsedTempPaths.Clear; except on E: Exception do DebugMsg(['*** Exception raised in UCore.CleanTempDirs (', E.ClassName, '): ', E.Message]); end; end; (********************************************************************************************************************************) (********************************************************************************************************************************) function TConnMgrItem.GetURI(IncludePassword: boolean): string; begin Result := ConstructURI(IncludePassword, False, ServiceType, Server, Username, Password, TargetDir); end; (********************************************************************************************************************************) (********************************************************************************************************************************) (********************************************************************************************************************************) initialization LeftPanelData := TList.Create; RightPanelData := TList.Create; LeftLocalEngine := TLocalTreeEngine.Create; RightLocalEngine := TLocalTreeEngine.Create; FMainEscPressed := False; LeftPanelTabs := TStringList.Create; RightPanelTabs := TStringList.Create; LeftTabSortIDs := TList.Create; RightTabSortIDs := TList.Create; LeftTabSortTypes := TList.Create; RightTabSortTypes := TList.Create; AssocList := TList.Create; MounterList := TList.Create; ConnectionMgrList := TList.Create; UsedTempPaths := TStringList.Create; SelectHistory := TStringList.Create; SearchHistory := TStringList.Create; SearchTextHistory := TStringList.Create; finalization ClearListData(LeftPanelData); ClearListData(RightPanelData); LeftPanelTabs.Free; RightPanelTabs.Free; LeftTabSortIDs.Free; RightTabSortIDs.Free; LeftTabSortTypes.Free; RightTabSortTypes.Free; MounterList.Free; LeftPanelData.Free; RightPanelData.Free; AssocList.Free; ConnectionMgrList.Free; CleanTempDirs; UsedTempPaths.Free; SelectHistory.Free; SearchHistory.Free; SearchTextHistory.Free; end. tuxcmd-0.6.70+dfsg/UConnectionProperties.pas0000644000175000017500000003175711300022643020057 0ustar salvisalvi(* Tux Commander - UConnectionProperties - Connection properties dialog Copyright (C) 2004 Tomas Bzatek Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UConnectionProperties; interface uses SysUtils, Types, Classes, Variants, GTKControls, GTKForms, GTKStdCtrls, GTKExtCtrls, GTKConsts, GTKMenus; type TFConnectionProperties = class(TGTKDialog) Label1, Label2, Label3, Label4, Label5, Label6, Label7, Label8, Label9: TGTKLabel; Box: TGTKVBox; Table1, Table2: TGTKTable; PluginOptionMenu, ServiceTypeOptionMenu: TGTKOptionMenu; URIEntry, NameEntry, ServerEntry, UserNameEntry, PasswordEntry, TargetDirEntry: TGTKEntry; MaskPasswordCheckButton: TGTKCheckButton; procedure FormCreate(Sender: TObject); override; procedure FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); procedure NameEntryChanged(Sender: TObject); procedure URIEntryChanged(Sender: TObject); procedure ServiceTypeOptionMenuChanged(Sender: TObject); procedure MaskPasswordCheckButtonToggled(Sender: TObject); private CurrentURI: string; Lock: boolean; function ValidSettings: boolean; public function MakeURI(Hidden: boolean): string; function GetService: string; end; var FConnectionProperties: TFConnectionProperties; implementation uses ULocale, UVFSCore, UCoreUtils; const ServiceTypeTable_Count = 6; var ServiceTypeTable: array[1..ServiceTypeTable_Count, 0..1] of string; procedure TFConnectionProperties.FormCreate(Sender: TObject); var i: integer; MenuItem: TGTKMenuItem; begin // Set the constants ServiceTypeTable[1, 0] := LANGConnProp_FTP; ServiceTypeTable[1, 1] := 'ftp'; ServiceTypeTable[2, 0] := LANGConnProp_SFTP; ServiceTypeTable[2, 1] := 'sftp'; ServiceTypeTable[3, 0] := LANGConnProp_SMB; ServiceTypeTable[3, 1] := 'smb'; ServiceTypeTable[4, 0] := LANGConnProp_HTTP; ServiceTypeTable[4, 1] := 'http'; ServiceTypeTable[5, 0] := LANGConnProp_HTTPS; ServiceTypeTable[5, 1] := 'https'; ServiceTypeTable[6, 0] := LANGConnProp_Other; ServiceTypeTable[6, 1] := 'unknown'; // Initialization SetDefaultSize(350, -1); Caption := LANGConnProp_Caption; Buttons := [mbOK, mbCancel]; Box := TGTKVBox.Create(Self); Box.BorderWidth := 8; ClientArea.AddControlEx(Box, True, True, 0); Label1 := TGTKLabel.Create(Self); Label1.XAlign := 0; Label1.XPadding := 0; Label1.Caption := LANGConnProp_VFSModule; PluginOptionMenu := TGTKOptionMenu.Create(Self); Label1.FocusControl := PluginOptionMenu; Label1.UseMarkup := True; Label1.UseUnderline := True; Label2 := TGTKLabel.Create(Self); Label2.XAlign := 0; Label2.XPadding := 0; Label2.Caption := Format('%s', [LANGConnProp_URI]); URIEntry := TGTKEntry.Create(Self); URIEntry.Tooltip := LANGConnProp_URIEntryTooltip; Label2.FocusControl := URIEntry; Label2.UseMarkup := True; Label2.UseUnderline := True; Label3 := TGTKLabel.Create(Self); Label3.XAlign := 0; Label3.XPadding := 0; Label3.Caption := Format('%s', [LANGConnProp_DetailedInformations]); Label3.UseMarkup := True; Label4 := TGTKLabel.Create(Self); Label4.XAlign := 0; Label4.XPadding := 0; Label4.Caption := Format('%s', [LANGConnProp_Name]); NameEntry := TGTKEntry.Create(Self); Label4.FocusControl := NameEntry; Label4.UseMarkup := True; Label4.UseUnderline := True; Label5 := TGTKLabel.Create(Self); Label5.XAlign := 0; Label5.XPadding := 0; Label5.Caption := LANGConnProp_Server; ServerEntry := TGTKEntry.Create(Self); Label5.FocusControl := ServerEntry; Label5.UseMarkup := True; Label5.UseUnderline := True; Label6 := TGTKLabel.Create(Self); Label6.XAlign := 0; Label6.XPadding := 0; Label6.Caption := LANGConnProp_Username; UserNameEntry := TGTKEntry.Create(Self); UserNameEntry.Tooltip := LANGConnProp_UserNameEntryTooltip; Label6.FocusControl := UserNameEntry; Label6.UseMarkup := True; Label6.UseUnderline := True; Label7 := TGTKLabel.Create(Self); Label7.XAlign := 0; Label7.XPadding := 0; Label7.Caption := LANGConnProp_Password; PasswordEntry := TGTKEntry.Create(Self); PasswordEntry.Visibility := False; Label7.FocusControl := PasswordEntry; Label7.UseMarkup := True; Label7.UseUnderline := True; Label8 := TGTKLabel.Create(Self); Label8.XAlign := 0; Label8.XPadding := 0; Label8.Caption := LANGConnProp_TargetDirectory; TargetDirEntry := TGTKEntry.Create(Self); Label8.FocusControl := TargetDirEntry; Label8.UseMarkup := True; Label8.UseUnderline := True; Label9 := TGTKLabel.Create(Self); Label9.XAlign := 0; Label9.XPadding := 0; Label9.Caption := LANGConnProp_ServiceType; ServiceTypeOptionMenu := TGTKOptionMenu.Create(Self); Label9.FocusControl := PluginOptionMenu; Label9.UseMarkup := True; Label9.UseUnderline := True; MaskPasswordCheckButton := TGTKCheckButton.CreateWithLabel(Self, LANGConnProp_MaskPassword); MaskPasswordCheckButton.Checked := True; Table1 := TGTKTable.Create(Self); Box.AddControlEx(Table1, True, True, 5); Table1.AddControlEx(0, 0, 1, 1, Label4, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 5, 2); Table1.AddControlEx(1, 0, 1, 1, NameEntry, [taoExpand, taoFill], [taoShrink, taoExpand, taoFill], 5, 2); Table1.AddControlEx(0, 1, 1, 1, Label2, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 5, 2); Table1.AddControlEx(1, 1, 1, 1, URIEntry, [taoExpand, taoFill], [taoShrink, taoExpand, taoFill], 5, 2); Table1.AddControlEx(0, 2, 1, 1, Label1, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 5, 2); Table1.AddControlEx(1, 2, 1, 1, PluginOptionMenu, [taoExpand, taoFill], [taoShrink, taoExpand, taoFill], 5, 2); Table1.AddControlEx(0, 3, 2, 1, TGTKVBox.Create(Self), [taoExpand, taoFill], [taoShrink, taoExpand, taoFill], 5, 10); Table1.AddControlEx(0, 4, 2, 1, Label3, [taoExpand, taoFill], [taoShrink, taoExpand, taoFill], 5, 0); Table2 := TGTKTable.Create(Self); Box.AddControlEx(Table2, True, True, 5); Table2.AddControlEx(0, 0, 1, 1, TGTKHBox.Create(Self), [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 10, 2); Table2.AddControlEx(1, 0, 1, 1, Label9, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 5, 2); Table2.AddControlEx(2, 0, 1, 1, ServiceTypeOptionMenu, [taoExpand, taoFill], [taoShrink, taoExpand, taoFill], 5, 2); Table2.AddControlEx(1, 1, 1, 1, Label5, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 5, 2); Table2.AddControlEx(2, 1, 1, 1, ServerEntry, [taoExpand, taoFill], [taoShrink, taoExpand, taoFill], 5, 2); Table2.AddControlEx(1, 2, 1, 1, Label6, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 5, 2); Table2.AddControlEx(2, 2, 1, 1, UserNameEntry, [taoExpand, taoFill], [taoShrink, taoExpand, taoFill], 5, 2); Table2.AddControlEx(1, 3, 1, 1, Label7, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 5, 2); Table2.AddControlEx(2, 3, 1, 1, PasswordEntry, [taoExpand, taoFill], [taoShrink, taoExpand, taoFill], 5, 2); Table2.AddControlEx(2, 4, 1, 1, MaskPasswordCheckButton, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 5, 0); Table2.AddControlEx(1, 5, 1, 1, Label8, [taoShrink, taoFill], [taoShrink, taoExpand, taoFill], 5, 2); Table2.AddControlEx(2, 5, 1, 1, TargetDirEntry, [taoExpand, taoFill], [taoShrink, taoExpand, taoFill], 5, 2); // Fill the plugins menu MenuItem := TGTKMenuItem.CreateTyped(Self, itLabel); MenuItem.Caption := LANGConnProp_MenuItemCaption; PluginOptionMenu.Items.Add(MenuItem); for i := 0 to PluginList.Count - 1 do if TVFSPlugin(PluginList[i]).HandlesNetwork then begin MenuItem := TGTKMenuItem.CreateTyped(Self, itImageText); MenuItem.Data := PluginList[i]; MenuItem.SetCaptionPlain(Format('%s [%s]', [TVFSPlugin(PluginList[i]).ModuleName, ExtractFileName(TVFSPlugin(PluginList[i]).FullModulePath)])); PluginOptionMenu.Items.Add(MenuItem); end; // Fill the protocol menu for i := 1 to ServiceTypeTable_Count do begin MenuItem := TGTKMenuItem.CreateTyped(Self, itImageText); MenuItem.Caption := ServiceTypeTable[i, 0]; ServiceTypeOptionMenu.Items.Add(MenuItem); end; Lock := True; OnKeyDown := FormKeyDown; NameEntry.OnChanged := NameEntryChanged; URIEntry.OnChanged := URIEntryChanged; ServiceTypeOptionMenu.OnChanged := ServiceTypeOptionMenuChanged; ServerEntry.OnChanged := ServiceTypeOptionMenuChanged; UserNameEntry.OnChanged := ServiceTypeOptionMenuChanged; PasswordEntry.OnChanged := ServiceTypeOptionMenuChanged; TargetDirEntry.OnChanged := ServiceTypeOptionMenuChanged; MaskPasswordCheckButton.OnToggled := MaskPasswordCheckButtonToggled; NameEntry.SetFocus; NameEntryChanged(Self); Lock := False; end; procedure TFConnectionProperties.FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); begin case Key of GDK_RETURN, GDK_KP_ENTER: if ValidSettings then ModalResult := mbOK; GDK_ESCAPE: ModalResult := mbCancel; end; end; procedure TFConnectionProperties.MaskPasswordCheckButtonToggled(Sender: TObject); begin PasswordEntry.Visibility := not MaskPasswordCheckButton.Checked; ServiceTypeOptionMenuChanged(Self); end; (********************************************************************************************************************************) function TFConnectionProperties.ValidSettings: boolean; begin Result := (Length(Trim(NameEntry.Text)) > 0) and (Length(Trim(URIEntry.Text)) > 0); if Result then Result := (Pos('://', URIEntry.Text) > 1) and (Pos('://', URIEntry.Text) < Length(URIEntry.Text) - 2) and (Pos(ServiceTypeTable[ServiceTypeTable_Count, 1] + '://', URIEntry.Text) <= 0); end; procedure TFConnectionProperties.NameEntryChanged(Sender: TObject); begin SetResponseSensitive(integer(mbOK), ValidSettings); end; procedure TFConnectionProperties.URIEntryChanged(Sender: TObject); var i, j: integer; s, s2: string; begin NameEntryChanged(Sender); s2 := URIEntry.Text; Lock := True; // Find the service type if Pos('://', s2) > 1 then begin s := Trim(Copy(s2, 1, Pos('://', s2) - 1)); j := ServiceTypeTable_Count; for i := 1 to ServiceTypeTable_Count - 1 do if AnsiCompareText(s, ServiceTypeTable[i, 1]) = 0 then begin j := i; Break; end; ServiceTypeOptionMenu.ItemIndex := j - 1; Delete(s2, 1, Pos('://', s2) + 2); end; // Get the target directory if Pos('/', s2) > 0 then begin s := Copy(s2, Pos('/', s2), Length(s2) - Pos('/', s2) + 1); if (s = '') or (s = '/') then TargetDirEntry.Text := '' else TargetDirEntry.Text := s; Delete(s2, Pos('/', s2), Length(s2) - Pos('/', s2) + 1); end else TargetDirEntry.Text := ''; // Get the server string if Pos('@', s2) > 0 then begin s := Copy(s2, Pos('@', s2) + 1, Length(s2) - Pos('@', s2)); if s <> '' then ServerEntry.Text := s; Delete(s2, Pos('@', s2), Length(s2) - Pos('@', s2) + 1); // Get the user/pass if Pos(':', s2) > 0 then begin s := Copy(s2, Pos(':', s2) + 1, Length(s2) - Pos(':', s2)); if s = '' then PasswordEntry.Text := '' else if Pos('*', s) <= 0 then PasswordEntry.Text := UnEscapeURI(s); Delete(s2, Pos(':', s2), Length(s2) - Pos(':', s2) + 1); end else PasswordEntry.Text := ''; UserNameEntry.Text := UnEscapeURI(s2); end else ServerEntry.Text := s2; CurrentURI := MakeURI(False); Lock := False; end; function TFConnectionProperties.MakeURI(Hidden: boolean): string; begin Result := ConstructURI(True, Hidden, GetService, ServerEntry.Text, UserNameEntry.Text, PasswordEntry.Text, TargetDirEntry.Text); end; procedure TFConnectionProperties.ServiceTypeOptionMenuChanged(Sender: TObject); begin if Lock then Exit; CurrentURI := MakeURI(False); URIEntry.OnChanged := nil; URIEntry.Text := MakeURI(MaskPasswordCheckButton.Checked); URIEntry.OnChanged := URIEntryChanged; NameEntryChanged(Sender); end; function TFConnectionProperties.GetService: string; begin Result := ServiceTypeTable[ServiceTypeTable_Count, 1]; if ServiceTypeOptionMenu.ItemIndex < ServiceTypeTable_Count - 1 then Result := ServiceTypeTable[ServiceTypeOptionMenu.ItemIndex + 1, 1] else if Pos('://', URIEntry.Text) > 1 then Result := Copy(URIEntry.Text, 1, Pos('://', URIEntry.Text) - 1); end; end. tuxcmd-0.6.70+dfsg/URemoteWait.pas0000644000175000017500000000620011300022643015744 0ustar salvisalvi(* Tux Commander - URemoteWait - Dialog shown while doing some remote actions Copyright (C) 2004 Tomas Bzatek Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit URemoteWait; interface uses glib2, gdk2, gtk2, pango, SysUtils, Types, Classes, Variants, GTKControls, GTKForms, GTKStdCtrls, GTKExtCtrls, GTKConsts; type TFRemoteWait = class(TGTKDialog) Label1{, Label2}: TGTKLabel; Entry: TGTKEntry; Box: TGTKVBox; CancelButton: TGTKButton; procedure FormCreate(Sender: TObject); override; procedure FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure CancelButtonClick(Sender: TObject); private { Private declarations } public Cancelled: boolean; end; var FRemoteWait: TFRemoteWait; implementation uses ULocale; procedure TFRemoteWait.FormCreate(Sender: TObject); begin SetDefaultSize(350, -1); WindowPosition := wpCenterAlways; // WindowTypeHint := whDialog; Caption := LANGRemoteWait_Caption; Buttons := []; Box := TGTKVBox.Create(Self); Label1 := TGTKLabel.Create(Self); Label1.Caption := Format('%s', [LANGRemoteWait_OperationInProgress]); Label1.UseUnderline := True; Label1.UseMarkup := True; Label1.XAlign := 0; Label1.XPadding := 0; Label1.LineWrap := True; Box.AddControlEx(Label1, False, False, 2); { Label2 := TGTKLabel.Create(Self); Label2.Caption := LANGRemoteWait_ItemsFound; Label2.XAlign := 0; Label2.XPadding := 20; Label2.LineWrap := True; Box.AddControlEx(Label2, False, False, 7); } Box.BorderWidth := 6; ClientArea.AddControlEx(Box, True, True, 0); CancelButton := TGTKButton.CreateFromStock(Self, 'gtk-cancel'); CancelButton.Default := True; ActionArea.AddControlEndEx(CancelButton, False, False, 2); OnKeyDown := FormKeyDown; OnCloseQuery := FormCloseQuery; CancelButton.OnClick := CancelButtonClick; Cancelled := False; end; procedure TFRemoteWait.FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); begin case Key of GDK_RETURN, GDK_KP_ENTER, GDK_ESCAPE: Cancelled := True; end; end; procedure TFRemoteWait.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin CanClose := False; Cancelled := True; end; procedure TFRemoteWait.CancelButtonClick(Sender: TObject); begin Cancelled := True; end; end. tuxcmd-0.6.70+dfsg/UChmod.pas0000644000175000017500000002417211300022643014726 0ustar salvisalvi(* Tux Commander - UChmod - Change permissions dialog Copyright (C) 2007 Tomas Bzatek Check for updates on tuxcmd.sourceforge.net 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) unit UChmod; interface uses SysUtils, Types, Classes, Variants, GTKControls, GTKForms, GTKStdCtrls, GTKExtCtrls, GTKConsts, GTKMenus; type TFChmod = class(TGTKDialog) HBox, HBox2, HBox3: TGTKHBox; VBox: TGTKVBox; PermissionFrame, FileFrame: TGTKFrame; RecursiveCheckButton, cbSUID, cbSGID, cbSticky, cbUSRRead, cbUSRWrite, cbUSRExec, cbGRPRead, cbGRPWrite, cbGRPExec, cbALLRead, cbALLWrite, cbALLExec: TGTKCheckButton; RecursiveOptionMenu: TGTKOptionMenu; miAllFiles, miDirectories, miFiles: TGTKMenuItem; FileLabel, OctalLabel, TextLabel: TGTKLabel; OctalEntry: TGTKEntry; procedure FormCreate(Sender: TObject); override; procedure FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); procedure RecursiveCheckButtonToggled(Sender: TObject); procedure PermissionsCheckBoxToggle(Sender: TObject); procedure OctalEntryChanged(Sender: TObject); private Busy: boolean; public LastMode: Cardinal; procedure AssignMode(const Mode: Cardinal; const FileName, User, Group: string); end; var FChmod: TFChmod; implementation uses ULibc, ULocale, UCoreUtils; procedure TFChmod.FormCreate(Sender: TObject); begin SetDefaultSize(-1, -1); LastMode := 0; Busy := True; Caption := LANGFChmod_Caption; Buttons := [mbOK, mbCancel]; HBox := TGTKHBox.Create(Self); HBox.Homogeneous := False; HBox.BorderWidth := 6; PermissionFrame := TGTKFrame.Create(Self); PermissionFrame.Caption := LANGFChmod_PermissionFrame; FileFrame := TGTKFrame.Create(Self); FileFrame.Caption := LANGFChmod_FileFrame; HBox.AddControlEx(PermissionFrame, True, True, 5); HBox.AddControlEx(FileFrame, True, True, 5); HBox2 := TGTKHBox.Create(Self); HBox2.Homogeneous := False; HBox2.BorderWidth := 5; RecursiveCheckButton := TGTKCheckButton.CreateWithLabel(Self, LANGFChmod_ApplyRecursivelyFor); RecursiveCheckButton.OnToggled := RecursiveCheckButtonToggled; RecursiveOptionMenu := TGTKOptionMenu.Create(Self); miAllFiles := TGTKMenuItem.Create(Self); miAllFiles.Caption := LANGFChmod_miAllFiles; RecursiveOptionMenu.Items.Add(miAllFiles); miDirectories := TGTKMenuItem.Create(Self); miDirectories.Caption := LANGFChmod_miDirectories; RecursiveOptionMenu.Items.Add(miDirectories); miFiles := TGTKMenuItem.Create(Self); miFiles.Caption := LANGmiFiles_Caption; RecursiveOptionMenu.Items.Add(miFiles); HBox2.AddControlEx(TGTKLabel.Create(Self), False, False, 10); HBox2.AddControlEx(RecursiveCheckButton, False, False, 5); HBox2.AddControlEx(RecursiveOptionMenu, False, False, 5); HBox3 := TGTKHBox.Create(Self); HBox3.Homogeneous := False; HBox3.BorderWidth := 5; OctalLabel := TGTKLabel.Create(Self); OctalLabel.Caption := LANGFChmod_OctalLabel; OctalEntry := TGTKEntry.Create(Self); OctalEntry.MaxLength := 4; OctalEntry.SetSizeRequest(50, -1); OctalLabel.FocusControl := OctalEntry; OctalLabel.UseUnderline := True; TextLabel := TGTKLabel.Create(Self); TextLabel.Caption := 'Text: rw-rw-r--'; TextLabel.UseMarkup := True; HBox3.AddControlEx(TGTKLabel.Create(Self), False, False, 10); HBox3.AddControlEx(OctalLabel, False, False, 5); HBox3.AddControlEx(OctalEntry, False, False, 5); HBox3.AddControlEx(TGTKVSeparator.Create(Self), False, False, 10); HBox3.AddControlEx(TextLabel, False, False, 10); ClientArea.AddControlEx(HBox, True, True, 0); ClientArea.AddControlEx(TGTKHSeparator.Create(Self), False, False, 5); ClientArea.AddControlEx(HBox3, False, False, 0); ClientArea.AddControlEx(TGTKHSeparator.Create(Self), False, False, 5); ClientArea.AddControlEx(HBox2, False, False, 0); FileLabel := TGTKLabel.Create(Self); FileLabel.SetAlignment(0, 0); FileLabel.SetPadding(10, 5); FileLabel.Caption := 'File: .adobe'#10'Text: rw-rw-rw'#10 + 'Octal: 666'#10'Owner: root'#10 + 'Group: root'; FileLabel.UseMarkup := True; FileFrame.AddControl(FileLabel); VBox := TGTKVBox.Create(Self); VBox.BorderWidth := 5; cbSUID := TGTKCheckButton.CreateWithLabel(Self, LANGFChmod_SUID); VBox.AddControlEx(cbSUID, False, False, 0); cbSUID.OnToggled := PermissionsCheckBoxToggle; cbSGID := TGTKCheckButton.CreateWithLabel(Self, LANGFChmod_SGID); VBox.AddControlEx(cbSGID, False, False, 0); cbSGID.OnToggled := PermissionsCheckBoxToggle; cbSticky := TGTKCheckButton.CreateWithLabel(Self, LANGFChmod_Sticky); VBox.AddControlEx(cbSticky, False, False, 0); cbSticky.OnToggled := PermissionsCheckBoxToggle; VBox.AddControlEx(TGTKHSeparator.Create(Self), False, False, 2); cbUSRRead := TGTKCheckButton.CreateWithLabel(Self, LANGFChmod_RUSR); VBox.AddControlEx(cbUSRRead, False, False, 0); cbUSRRead.OnToggled := PermissionsCheckBoxToggle; cbUSRWrite := TGTKCheckButton.CreateWithLabel(Self, LANGFChmod_WUSR); VBox.AddControlEx(cbUSRWrite, False, False, 0); cbUSRWrite.OnToggled := PermissionsCheckBoxToggle; cbUSRExec := TGTKCheckButton.CreateWithLabel(Self, LANGFChmod_XUSR); VBox.AddControlEx(cbUSRExec, False, False, 0); cbUSRExec.OnToggled := PermissionsCheckBoxToggle; VBox.AddControlEx(TGTKHSeparator.Create(Self), False, False, 2); cbGRPRead := TGTKCheckButton.CreateWithLabel(Self, LANGFChmod_RGRP); VBox.AddControlEx(cbGRPRead, False, False, 0); cbGRPRead.OnToggled := PermissionsCheckBoxToggle; cbGRPWrite := TGTKCheckButton.CreateWithLabel(Self, LANGFChmod_WGRP); VBox.AddControlEx(cbGRPWrite, False, False, 0); cbGRPWrite.OnToggled := PermissionsCheckBoxToggle; cbGRPExec := TGTKCheckButton.CreateWithLabel(Self, LANGFChmod_XGRP); VBox.AddControlEx(cbGRPExec, False, False, 0); cbGRPExec.OnToggled := PermissionsCheckBoxToggle; VBox.AddControlEx(TGTKHSeparator.Create(Self), False, False, 2); cbALLRead := TGTKCheckButton.CreateWithLabel(Self, LANGFChmod_ROTH); VBox.AddControlEx(cbALLRead, False, False, 0); cbALLRead.OnToggled := PermissionsCheckBoxToggle; cbALLWrite := TGTKCheckButton.CreateWithLabel(Self, LANGFChmod_WOTH); VBox.AddControlEx(cbALLWrite, False, False, 0); cbALLWrite.OnToggled := PermissionsCheckBoxToggle; cbALLExec := TGTKCheckButton.CreateWithLabel(Self, LANGFChmod_XOTH); VBox.AddControlEx(cbALLExec, False, False, 0); cbALLExec.OnToggled := PermissionsCheckBoxToggle; PermissionFrame.AddControl(VBox); Busy := False; OnKeyDown := FormKeyDown; OctalEntry.OnChanged := OctalEntryChanged; RecursiveCheckButtonToggled(Self); end; procedure TFChmod.FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean); begin case Key of GDK_RETURN, GDK_KP_ENTER: ModalResult := mbOK; GDK_ESCAPE: ModalResult := mbCancel; end; end; procedure TFChmod.RecursiveCheckButtonToggled(Sender: TObject); begin RecursiveOptionMenu.Enabled := RecursiveCheckButton.Checked; end; procedure TFChmod.PermissionsCheckBoxToggle(Sender: TObject); var Mode: Cardinal; begin if Busy then Exit; Busy := True; Mode := 0; { $WARNINGS OFF} Mode := Mode or (Ord(cbSUID.Checked) * __S_ISUID); Mode := Mode or (Ord(cbSGID.Checked) * __S_ISGID); Mode := Mode or (Ord(cbSticky.Checked) * __S_ISVTX); Mode := Mode or (Ord(cbUSRRead.Checked) * S_IRUSR); Mode := Mode or (Ord(cbUSRWrite.Checked) * S_IWUSR); Mode := Mode or (Ord(cbUSRExec.Checked) * S_IXUSR); Mode := Mode or (Ord(cbGRPRead.Checked) * S_IRGRP); Mode := Mode or (Ord(cbGRPWrite.Checked) * S_IWGRP); Mode := Mode or (Ord(cbGRPExec.Checked) * S_IXGRP); Mode := Mode or (Ord(cbALLRead.Checked) * S_IROTH); Mode := Mode or (Ord(cbALLWrite.Checked) * S_IWOTH); Mode := Mode or (Ord(cbALLExec.Checked) * S_IXOTH); { $WARNINGS ON} LastMode := Mode; TextLabel.Caption := Format(LANGFChmod_TextLabel, [AttrToStr(Mode, False)]);; TextLabel.UseMarkup := True; OctalEntry.Text := Format('%.4d', [AttrToOctal(Mode)]); Busy := False; end; procedure TFChmod.OctalEntryChanged(Sender: TObject); var Mode: Cardinal; begin if Busy then Exit; Busy := True; Mode := OctalToAttr(StrToIntDef(OctalEntry.Text, 0)); LastMode := Mode; cbSUID.Checked := Mode and __S_ISUID = __S_ISUID; cbSGID.Checked := Mode and __S_ISGID = __S_ISGID; cbSticky.Checked := Mode and __S_ISVTX = __S_ISVTX; cbUSRRead.Checked := Mode and S_IRUSR = S_IRUSR; cbUSRWrite.Checked := Mode and S_IWUSR = S_IWUSR; cbUSRExec.Checked := Mode and S_IXUSR = S_IXUSR; cbGRPRead.Checked := Mode and S_IRGRP = S_IRGRP; cbGRPWrite.Checked := Mode and S_IWGRP = S_IWGRP; cbGRPExec.Checked := Mode and S_IXGRP = S_IXGRP; cbALLRead.Checked := Mode and S_IROTH = S_IROTH; cbALLWrite.Checked := Mode and S_IWOTH = S_IWOTH; cbALLExec.Checked := Mode and S_IXOTH = S_IXOTH; TextLabel.Caption := Format(LANGFChmod_TextLabel, [AttrToStr(Mode, False)]);; TextLabel.UseMarkup := True; Busy := False; end; procedure TFChmod.AssignMode(const Mode: Cardinal; const FileName, User, Group: string); begin LastMode := Mode mod $1000; OctalEntry.Text := Format('%.4d', [AttrToOctal(LastMode)]); FileLabel.Caption := Format(LANGFChmod_FileLabel, [StrToUTF8(FileName), AttrToStr(Mode), AttrToOctal(Mode), User, Group]); FileLabel.UseMarkup := True; if Length(FileName) > 20 then FileLabel.SetSizeRequest(200, -1); end; end. tuxcmd-0.6.70+dfsg/README0000644000175000017500000000437411300022643013724 0ustar salvisalviTux Commander development release Version: 0.6.70 Release date: 2009-Nov-15 Copyright (c) 2009 Tomas Bzatek http://tuxcmd.sourceforge.net Please check the project site for more details Introduction ------------ Tux Commander is a windowed file manager with 2 panels side by side similar to popular Total Commander or Midnight Commander file managers. The main goal of this project is to create powerful and user friendly file manager for Unix operating systems. General features: * Graphical application, uses GTK2 windowing toolkit * Two directory panels side by side (vertical) * Tabbed interface, buttons for quick access to favorite places * Configurable mounter bar for quick access to removable media and network shares * Multilingual user interface * Basic VFS (Virtual File System) support, allowing you to browse archives and network places * Extendable via plugin system, several VFS modules available in the distribution * Portable, no installation required, usable right after the extraction * Designed for GNOME and XFCE desktop environments while preserving complete independency (libraries are loaded dynamically when available) * Extension-based file type actions (associations) * Threaded file operations * Large files (> 4GB) support * Main application written in Object Pascal language (with FreePascal as default compiler), plugins are written in C/C++ language * Sources available in GIT repository Using Object Pascal language might be considered as limiting factor, however we recently switched to FreePascal compiler, solving many compatibility issues. Also, the x86_64 port was introduced and is officially supported as well as the i386 platform. PowerPC port is working, though issues may appear. Kylix compatibility will be still maintained. This project uses Pascal GTK2 bindings from the gtk2 for pascal project, which are now part of FreePascal v2.0 distribution. Install ---------- For installation and compilation instructions please follow the INSTALL file. Testing ---------- Tux Commander needs testing, I would be pleased if you will send any comments or bug reports. When sending a bug report, please run "tuxcmd --debug" and attach the log to your e-mail.