├── .gitattributes ├── .gitignore ├── .gitmodules ├── Distro ├── Modules.x64 │ ├── bass.dll │ ├── jpegturbo.dll │ ├── libcrypto-1_1-x64.dll │ ├── libssl-1_1-x64.dll │ └── sciter.dll ├── RnQ1127_m.zLng ├── Themes │ ├── Clients.zip │ ├── RnQ.Theme.rtz │ ├── SyntaxHighlight │ │ ├── rainbow-css.js │ │ ├── rainbow-html.js │ │ ├── rainbow-php.js │ │ ├── rainbow-shell.js │ │ ├── rainbow-tiscript.js │ │ ├── rainbow.tis │ │ ├── source-code.css │ │ └── source-code.tis │ ├── template.css │ ├── template.htm │ └── template.zip └── modules │ ├── bass.dll │ ├── jpegturbo.dll │ ├── libcrypto-1_1.dll │ ├── libssl-1_1.dll │ └── sciter.dll ├── RnQ ├── BuiltTime.exe ├── DB │ ├── RnQ2sql.pas │ └── RnQDB.pas ├── HistAllSearch.dfm ├── HistAllSearch.pas ├── HistWork.pas ├── ICQ │ ├── ICQ.RESTapi.pas │ ├── ICQ.Stickers.pas │ ├── ICQClients.pas │ ├── ICQConsts.pas │ ├── ICQContacts.pas │ ├── ICQflap.pas │ ├── ICQv9.pas │ ├── MenuStickers.dfm │ ├── MenuStickers.pas │ ├── Protocol_ICQ.pas │ ├── RQCodes.pas │ ├── RQ_ICQ.pas │ ├── RnQ_CLsynchrDlg.dfm │ ├── RnQ_CLsynchrDlg.pas │ ├── StickersExt │ │ ├── 1.png │ │ ├── 106.png │ │ ├── 107.png │ │ ├── 108.png │ │ ├── 109.png │ │ ├── 111.png │ │ ├── 112.png │ │ ├── 113.png │ │ ├── 118.png │ │ ├── 119.png │ │ ├── 121.png │ │ ├── 123.png │ │ ├── 124.png │ │ ├── 151.png │ │ ├── 157.png │ │ ├── 158.png │ │ ├── 180.png │ │ ├── 2.png │ │ ├── 203.png │ │ ├── 205.png │ │ ├── 209.png │ │ ├── 211.png │ │ ├── 213.png │ │ ├── 217.png │ │ ├── 79.png │ │ ├── 80.png │ │ ├── 81.png │ │ ├── 87.png │ │ ├── 95.png │ │ └── 97.png │ ├── filetransferDlg.dfm │ ├── filetransferDlg.pas │ ├── icq_fr.dfm │ ├── icq_fr.pas │ ├── newaccountDlg.dfm │ ├── newaccountDlg.pas │ ├── sendfileDlg.dfm │ ├── sendfileDlg.pas │ ├── smsDlg.dfm │ ├── smsDlg.pas │ ├── stickers.rc │ ├── viewSSI.dfm │ ├── viewSSI.pas │ ├── viewinfoDlg.dfm │ ├── viewinfoDlg.pas │ ├── wpDlg.dfm │ └── wpDlg.pas ├── MRA │ ├── MRAContacts.pas │ ├── MRAStatusForm.dfm │ ├── MRAStatusForm.pas │ ├── MRA_proto.pas │ ├── MRAsmsDlg.dfm │ ├── MRAsmsDlg.pas │ ├── MRAv1.pas │ ├── Protocol_MRA.pas │ ├── viewMRAinfoDlg.dfm │ ├── viewMRAinfoDlg.pas │ ├── wpMRADlg.dfm │ └── wpMRADlg.pas ├── MenuEmoji.dfm ├── MenuEmoji.pas ├── NewAccount.dfm ├── NewAccount.pas ├── Prefs │ ├── antispam_fr.dfm │ ├── antispam_fr.pas │ ├── autoaway_fr.dfm │ ├── autoaway_fr.pas │ ├── chat_frOld.dfm │ ├── chat_frOld.pas │ ├── connection_fr.dfm │ ├── connection_fr.pas │ ├── design_fr.dfm │ ├── design_fr.pas │ ├── events_fr.dfm │ ├── events_fr.pas │ ├── hotkeys_fr.dfm │ ├── hotkeys_fr.pas │ ├── ignore_fr.dfm │ ├── ignore_fr.pas │ ├── other_fr.dfm │ ├── other_fr.pas │ ├── plugins_fr.dfm │ ├── plugins_fr.pas │ ├── security_fr.dfm │ ├── security_fr.pas │ ├── start_fr.dfm │ ├── start_fr.pas │ ├── themedit_fr.dfm │ ├── themedit_fr.pas │ ├── themes_fr.dfm │ ├── themes_fr.pas │ ├── tips_fr.dfm │ ├── tips_fr.pas │ ├── update_fr.dfm │ └── update_fr.pas ├── Protocols_all.pas ├── Res │ ├── MAINICON_Lite.ico │ ├── RnQLite.res │ ├── RnQ_Icon.ico │ ├── RnQ_Icon1.ico │ ├── RnQ_Icon2.ico │ ├── WinXP2.rc │ ├── rnq.manifest.hidpi │ ├── rnq.manifest1 │ └── rnq.manifest1_ ├── RnQBuiltTime.inc ├── RnQConfig.inc ├── RnQConst.pas ├── RnQMacros.pas ├── RnQProtoUtils.pas ├── RnQProtocol.pas ├── RnQTips.pas ├── RnQ_Avatars.pas ├── RnQdbDlg.dfm ├── RnQdbDlg.pas ├── RnQx64.dpr ├── RnQx64.dproj ├── RnQx64.res ├── SpellCheck.pas ├── StatusForm.dfm ├── StatusForm.pas ├── TLG │ ├── Protocol_TLG.pas │ ├── RegUserFrm.dfm │ ├── RegUserFrm.pas │ ├── TLG.MenuStickers.dfm │ ├── TLG.MenuStickers.pas │ ├── TLG.Stickers.pas │ ├── TLG.pas │ ├── TLGConsts.pas │ ├── TLGContacts.pas │ ├── tlg_fr.dfm │ ├── tlg_fr.pas │ ├── viewTLGinfoDlg.dfm │ └── viewTLGinfoDlg.pas ├── ThemesLib.pas ├── ViewHEventDlg.dfm ├── ViewHEventDlg.pas ├── WIM │ ├── Protocol_WIM.pas │ ├── WIM.MenuStickers.dfm │ ├── WIM.MenuStickers.pas │ ├── WIM.Stickers.pas │ ├── WIM.pas │ ├── WIMCodes.pas │ ├── WIMConsts.pas │ ├── WIMContacts.pas │ ├── viewWIMinfoDlg.dfm │ ├── viewWIMinfoDlg.pas │ ├── wim_fr.dfm │ └── wim_fr.pas ├── aboutDlg.dfm ├── aboutDlg.pas ├── addContactDlg.dfm ├── addContactDlg.pas ├── authreqDlg.dfm ├── authreqDlg.pas ├── automsgDlg.dfm ├── automsgDlg.pas ├── changepwddlg.dfm ├── changepwddlg.pas ├── chatDlg.dfm ├── chatDlg.pas ├── clear.bat ├── events.pas ├── globalLib.pas ├── groupsLib.pas ├── histUtilsDlg.dfm ├── histUtilsDlg.pas ├── history.pas ├── historyCEF.pas ├── historySCI.dfm ├── historySCI.pas ├── historyVCL.dfm ├── historyVCL.pas ├── hook.pas ├── iniLib.pas ├── langLib.pas ├── license.txt ├── lockDlg.dfm ├── lockDlg.pas ├── mainDlg.dfm ├── mainDlg.pas ├── menusUnit.pas ├── outboxDlg.dfm ├── outboxDlg.pas ├── outboxLib.pas ├── plugin.inc ├── pluginLib.pas ├── prefDlg.dfm ├── prefDlg.pas ├── pwdDlg.dfm ├── pwdDlg.pas ├── readme.opensource.txt ├── roasterLib.pas ├── selectcontactsDlg.dfm ├── selectcontactsDlg.pas ├── uinlistlib.pas ├── usersDlg.dfm ├── usersDlg.pas ├── utilLib.pas ├── visibilityDlg.dfm ├── visibilityDlg.pas └── xmpp │ ├── Protocol_XMP.pas │ ├── XMPP_proto.pas │ ├── XMPPcontacts.pas │ ├── XMPPv1.pas │ ├── viewXMPPinfoDlg.dfm │ ├── viewXMPPinfoDlg.pas │ ├── xmpp_fr.dfm │ └── xmpp_fr.pas ├── WhatToNeed.txt ├── clear_all.bat └── for.RnQ ├── AES_HMAC_Syn.pas ├── EmojiConst.pas ├── Flash ├── FlashAX.dpk ├── FlashAX.res ├── FlashAXD5.dpk ├── FlashAXD5.res ├── ShockwaveEx.dcr ├── ShockwaveEx.pas ├── ShockwaveFlashObjects9_TLB.dcr ├── ShockwaveFlashObjects9_TLB.pas ├── ShockwaveFlashObjects_TLB.dcr ├── ShockwaveFlashObjects_TLB.pas ├── ShockwaveList.dcr └── ShockwaveList.pas ├── ForRnQConfig.inc ├── HTTPStatus.pas ├── MenuSmiles.dfm ├── MenuSmiles.pas ├── Modified └── ICS │ └── Include │ └── OverbyteIcsDefs.inc ├── NoRTTI.inc ├── NotRnQUtils.pas ├── RQMenuItem.pas ├── RQThemes.pas ├── RQUtil.pas ├── RQlog.dfm ├── RQlog.pas ├── RQmsgs.dfm ├── RQmsgs.pas ├── RTL ├── AnsiClasses.pas ├── Base64.pas ├── MsSpellCheckLib_TLB.pas ├── Murmur2.pas ├── PerlRegEx.pas ├── RDFileUtil.pas ├── RDGlobal.pas ├── RDSysUtils.pas ├── RDUtils.pas ├── RnQ.Graphics.Utils.pas ├── RnQBinUtils.pas ├── RnQGraphics32.pas ├── RnQHttpAuth.pas ├── RnQJSON.pas ├── RnQpngimage.pas ├── UnRAR.pas ├── WebPHelpersD32.pas ├── cgJpeg.pas ├── dynamic_bass.pas ├── libJPEG.pas ├── libwebpd.pas ├── litegif1.pas └── uIconStream.pas ├── RnQCrypt.pas ├── RnQDialogs.pas ├── RnQFileUtil.pas ├── RnQGlobal.pas ├── RnQLangFrm.dfm ├── RnQLangFrm.pas ├── RnQLangs.pas ├── RnQMenu.pas ├── RnQNet.Cache.pas ├── RnQNet.Uploads.Lib.pas ├── RnQNet.Uploads.Tar.pas ├── RnQNet.Uploads.pas ├── RnQNet.pas ├── RnQPics.pas ├── RnQPrefsInt.pas ├── RnQPrefsLib.pas ├── RnQPrefsTypes.pas ├── RnQStrings.pas ├── RnQSysUtils.pas ├── RnQtrayLib.pas ├── SQLite ├── 1 │ ├── ASGSQLite3Api.pas │ ├── SQLite3.pas │ ├── asqlite_def.inc │ ├── readme.txt │ ├── sqlite3.def │ ├── sqlite3DB.pas │ └── sqlite3dll.pas ├── ASGSQLite3Api.pas ├── RnQDB.pas ├── RnQDBPrefs.pas └── asqlite_def.inc ├── SciDe ├── Sciter.pas ├── SciterApi.pas ├── SciterJS.pas ├── SciterJSAPI.pas ├── SciterNative.pas ├── SciterOle.pas └── TiScriptApi.pas ├── VCL ├── RDTipDlg.dfm ├── RDTipDlg.pas ├── RnQButtons.pas ├── RnQImageGrid.pas └── RnQSpin.pas ├── ViewPicDimmedDlg.pas ├── clear.bat ├── for_rnq.cfg ├── for_rnq.dof ├── for_rnq.dpk ├── for_rnq.dproj ├── for_rnq.res ├── for_rnq_Icon.ico ├── incapsulate.pas ├── plugin1.pas ├── pluginutil.pas ├── xml ├── NativeXml.pas ├── NativeXmlWin32Compat.pas ├── RnQxml.pas └── simdesign.inc └── zip ├── RnQZip.pas ├── ZSTD.pas ├── ZSTDLib.pas └── ZlibHigh.pas /.gitattributes: -------------------------------------------------------------------------------- 1 | *.exe binary 2 | *.zip binary 3 | *.rar binary 4 | *.png binary 5 | *.jpg binary 6 | *.rtz binary 7 | *.rtr binary 8 | *.zlng binary 9 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "for.RnQ/External/VTV"] 2 | path = for.RnQ/External/VTV 3 | url = git://github.com/drapid/Virtual-TreeView 4 | -------------------------------------------------------------------------------- /Distro/Modules.x64/bass.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/Distro/Modules.x64/bass.dll -------------------------------------------------------------------------------- /Distro/Modules.x64/jpegturbo.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/Distro/Modules.x64/jpegturbo.dll -------------------------------------------------------------------------------- /Distro/Modules.x64/libcrypto-1_1-x64.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/Distro/Modules.x64/libcrypto-1_1-x64.dll -------------------------------------------------------------------------------- /Distro/Modules.x64/libssl-1_1-x64.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/Distro/Modules.x64/libssl-1_1-x64.dll -------------------------------------------------------------------------------- /Distro/Modules.x64/sciter.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/Distro/Modules.x64/sciter.dll -------------------------------------------------------------------------------- /Distro/RnQ1127_m.zLng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/Distro/RnQ1127_m.zLng -------------------------------------------------------------------------------- /Distro/Themes/Clients.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/Distro/Themes/Clients.zip -------------------------------------------------------------------------------- /Distro/Themes/RnQ.Theme.rtz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/Distro/Themes/RnQ.Theme.rtz -------------------------------------------------------------------------------- /Distro/Themes/SyntaxHighlight/rainbow-css.js: -------------------------------------------------------------------------------- 1 | /** 2 | * CSS patterns 3 | * 4 | * @author Craig Campbell 5 | * @version 1.0.9 6 | */ 7 | Rainbow.extend("css", [ 8 | { 9 | "name": "comment", 10 | //"pattern": /\/\*(?:.|\r|\n)*?\*\//g 11 | "pattern": /\/\*((?:.|\r|\n)*?)\*\/|(\/\/).*?$/g // sciter supports single line comments in CSS 12 | }, 13 | { 14 | "name": "constant.hex-color", 15 | "pattern": /#([a-f0-9]{3}|[a-f0-9]{6})(?=;|\s|,|\))/gi 16 | }, 17 | { 18 | "matches": { 19 | 1: "constant.numeric", 20 | 2: "constant.unit" 21 | }, 22 | "pattern": /(\d+)(dip|px|em|cm|mm|s|%|\*)?/g 23 | }, 24 | { 25 | "matches": { 26 | 1: "constant.func", 27 | 2: "constant.url", 28 | 3: "constant.func", 29 | }, 30 | "pattern": /(url\()([^)]+)(\))/g 31 | }, 32 | { 33 | "name": "string", 34 | "pattern": /('|")(.*?)\1/g 35 | }, 36 | { 37 | "name": "css.css-property", 38 | "matches": { 39 | 1: "support.vendor-prefix" 40 | }, 41 | "pattern": /(-o-|-moz-|-webkit-|-ms-)?[\w-]+(?=\s?:)(?!.*\{)/g 42 | }, 43 | { 44 | "name": "at-rule", 45 | "pattern": /@[\w-]+/g 46 | }, 47 | { 48 | "matches": { 49 | 1: [ 50 | { 51 | "name": "entity.name.sass", 52 | "pattern": /&/g 53 | }, 54 | { 55 | "name": "direct-descendant", 56 | "pattern": />/g 57 | }, 58 | { 59 | "name": "entity.name.class", 60 | "pattern": /\.[\w\-_]+/g 61 | }, 62 | { 63 | "name": "entity.name.id", 64 | "pattern": /\#[\w\-_]+/g 65 | }, 66 | { 67 | "name": "entity.name.pseudo", 68 | "pattern": /:[\w\-_]+/g 69 | }, 70 | { 71 | "name": "entity.name.tag", 72 | "pattern": /\w+/g 73 | } 74 | ] 75 | }, 76 | "pattern": /([\w\ ,\r\n:\.\#\&\;\-_]+)(?=.*\{)/g 77 | }, 78 | { 79 | "matches": { 80 | 2: "css.vendor-prefix", 81 | 3: "css.css-value" 82 | }, 83 | "pattern": /(:|,)\s*(-o-|-moz-|-webkit-|-ms-)?([a-zA-Z-]*)(?=\b)(?!.*\{)/g 84 | } 85 | ], true); 86 | -------------------------------------------------------------------------------- /Distro/Themes/SyntaxHighlight/rainbow-html.js: -------------------------------------------------------------------------------- 1 | /** 2 | * HTML patterns 3 | * 4 | * @author Craig Campbell 5 | * @version 1.0.9 6 | */ 7 | Rainbow.extend("html", [ 8 | /* { 9 | "name": "source.php.embedded", 10 | "matches": { 11 | 2: { 12 | "language": "php" 13 | } 14 | }, 15 | "pattern": /<\?=?(?!xml)(php)?([\s\S]*?)(\?>)/gm 16 | }, */ 17 | { 18 | "name": "source.css.embedded", 19 | "matches": { 20 | 1: "html.tag.style.start", 21 | 2: { 22 | "language": "css" 23 | }, 24 | 3: "html.tag.style.end", 25 | }, 26 | "pattern": /(<style.*>)((?:.|\r|\n)*?)(<\/style>)/gi 27 | }, 28 | { 29 | "name": "source.tis.embedded", 30 | "matches": { 31 | 1: "html.tag.script.start", 32 | 2: { 33 | "language": "tis" 34 | }, 35 | 3: "html.tag.script.end" 36 | }, 37 | "pattern": /(<script.*>)((?:.|\r|\n)*?)(<\/script>)/gi 38 | }, 39 | 40 | { 41 | "name": "html.comment", 42 | "pattern": /<\!--((?:.|\r|\n)*?)-->/gm 43 | }, 44 | { 45 | "matches": { 46 | 1: "html.tag.open", 47 | 2: "html.tag.close" 48 | }, 49 | "pattern": /(<)|(\/?\??>)/g 50 | }, 51 | { 52 | "name": "html.tag", 53 | "matches": { 54 | 1: "html.tag", 55 | 2: "html.tag.special", 56 | 3: "html.tag-name", 57 | 4: "html.tag.attributes", 58 | 5: "html.tag.special" 59 | }, 60 | "pattern": /(<\??)([a-z0-9-?\/]+)([^&]*)(>)/gi 61 | }, 62 | ], true); 63 | -------------------------------------------------------------------------------- /Distro/Themes/SyntaxHighlight/rainbow-php.js: -------------------------------------------------------------------------------- 1 | /** 2 | * PHP patterns 3 | * 4 | * @author Craig Campbell 5 | * @version 1.0.8 6 | */ 7 | Rainbow.extend("php", [ 8 | { 9 | "name": "support", 10 | "pattern": /\becho\b/g 11 | }, 12 | { 13 | "matches": { 14 | 1: "variable.dollar-sign", 15 | 2: "variable" 16 | }, 17 | "pattern": /(\$)(\w+)\b/g 18 | }, 19 | { 20 | "name": "constant.language", 21 | "pattern": /true|false|null/ig 22 | }, 23 | { 24 | "name": "constant", 25 | "pattern": /\b[A-Z0-9_]{2,}\b/g 26 | }, 27 | { 28 | "name": "keyword.dot", 29 | "pattern": /\./g 30 | }, 31 | { 32 | "name": "keyword", 33 | "pattern": /\b(die|end(for(each)?|switch|if)|case|require(_once)?|include(_once)?)(?=\(|\b)/g 34 | }, 35 | { 36 | "matches": { 37 | 1: "keyword", 38 | 2: { 39 | "name": "support.class", 40 | "pattern": /\w+/g 41 | } 42 | }, 43 | "pattern": /(instanceof)\s([^\$].*?)(\)|;)/g 44 | }, 45 | 46 | /** 47 | * these are the top 50 most used PHP functions 48 | * found from running a script and checking the frequency of each function 49 | * over a bunch of popular PHP frameworks then combining the results 50 | */ 51 | { 52 | "matches": { 53 | 1: "support.function" 54 | }, 55 | "pattern": /\b(array(_key_exists|_merge|_keys|_shift)?|isset|count|empty|unset|printf|is_(array|string|numeric|object)|sprintf|each|date|time|substr|pos|str(len|pos|tolower|_replace|totime)?|ord|trim|in_array|implode|end|preg_match|explode|fmod|define|link|list|get_class|serialize|file|sort|mail|dir|idate|log|intval|header|chr|function_exists|dirname|preg_replace|file_exists)(?=\()/g 56 | }, 57 | { 58 | "name": "variable.language.php-tag", 59 | "pattern": /(<\?(php)?|\?>)/g 60 | }, 61 | { 62 | "matches": { 63 | 1: "keyword.namespace", 64 | 2: { 65 | "name": "support.namespace", 66 | "pattern": /\w+/g 67 | } 68 | }, 69 | "pattern": /\b(namespace|use)\s(.*?);/g 70 | }, 71 | { 72 | "matches": { 73 | 1: "storage.modifier", 74 | 2: "storage.class", 75 | 3: "entity.name.class", 76 | 4: "storage.modifier.extends", 77 | 5: "entity.other.inherited-class", 78 | 6: "storage.modifier.extends", 79 | 7: "entity.other.inherited-class" 80 | }, 81 | "pattern": /\b(abstract|final)?\s?(class|interface|trait)\s(\w+)(\sextends\s)?([\w\\]*)?(\simplements\s)?([\w\\]*)?\s?\{?(\n|\})/g 82 | }, 83 | { 84 | "name": "keyword.static", 85 | "pattern": /self::|static::/g 86 | }, 87 | { 88 | "matches": { 89 | 1: "storage.function", 90 | 2: "support.magic" 91 | }, 92 | "pattern": /(function)(?=\()/g 93 | }, 94 | { 95 | "matches": { 96 | 1: "keyword.new", 97 | 2: { 98 | "name": "support.class", 99 | "pattern": /\w+/g 100 | } 101 | }, 102 | "pattern": /\b(new)\s([^\$].*?)(?=\)|\(|;)/g 103 | }, 104 | { 105 | "matches": { 106 | 1: { 107 | "name": "support.class", 108 | "pattern": /\w+/g 109 | }, 110 | 2: "keyword.static" 111 | }, 112 | "pattern": /([\w\\]*?)(::)(?=\b|\$)/g 113 | }, 114 | { 115 | "matches": { 116 | 2: { 117 | "name": "support.class", 118 | "pattern": /\w+/g 119 | } 120 | }, 121 | "pattern": /(\(|,\s?)([\w\\]*?)(?=\s\$)/g 122 | } 123 | ], true); 124 | -------------------------------------------------------------------------------- /Distro/Themes/SyntaxHighlight/rainbow-shell.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Shell patterns 3 | * 4 | * @author Matthew King 5 | * @author Craig Campbell 6 | * @version 1.0.3 7 | */ 8 | Rainbow.extend("shell", [ 9 | /** 10 | * This handles the case where subshells contain quotes. 11 | * For example: `"$(resolve_link "$name" || true)"`. 12 | * 13 | * Caveat: This really should match balanced parentheses, but cannot. 14 | * @see http://stackoverflow.com/questions/133601/can-regular-expressions-be-used-to-match-nested-patterns 15 | */ 16 | { 17 | "name": "shell", 18 | "matches": { 19 | 1: { 20 | "language": "shell" 21 | } 22 | }, 23 | "pattern": /\$\(([^\uFFFF]*?)\)/g 24 | }, 25 | { 26 | "matches": { 27 | 2: "string" 28 | }, 29 | "pattern": /(\(|\s|\[|\=)(('|")[^\uFFFF]*?(\3))/g 30 | }, 31 | { 32 | "name": "keyword.operator", 33 | "pattern": /<|>|&/g 34 | }, 35 | { 36 | "name": "comment", 37 | "pattern": /\#[^\uFFFF]*?$/g 38 | }, 39 | { 40 | "name": "storage.function", 41 | "pattern": /(.+?)(?=\(\)\s{0,}\{)/g 42 | }, 43 | /** 44 | * Environment variables 45 | */ 46 | { 47 | "name": "support.command", 48 | "pattern": /\b(echo|rm|ls|(mk|rm)dir|cd|find|cp|exit|pwd|exec|trap|source|shift|unset)/g 49 | }, 50 | { 51 | "matches": { 52 | 1: "keyword" 53 | }, 54 | "pattern": /\b(break|case|continue|do|done|elif|else|esac|eval|export|fi|for|function|if|in|local|return|set|then|unset|until|while)(?=\(|\b)/g 55 | } 56 | ], true); 57 | -------------------------------------------------------------------------------- /Distro/Themes/SyntaxHighlight/rainbow-tiscript.js: -------------------------------------------------------------------------------- 1 | /** 2 | * tiscript patterns 3 | * 4 | * @author Andrew Fedoniouk 5 | * @version 1.0.0 6 | */ 7 | Rainbow.extend("tis", [ 8 | 9 | /** 10 | * matches $. or $( 11 | */ 12 | /*{ 13 | "name": "selector", 14 | "pattern": /\$\w*\(.*\)/g 15 | },*/ 16 | 17 | { 18 | "matches": { 19 | 1: "entity.function", 20 | 2: "selector" 21 | }, 22 | "pattern": /(\$\w*)\(([^)]*)\)/g 23 | }, 24 | 25 | { 26 | name: "constant", 27 | pattern: /\b(false|null|true|undefined)\b/g 28 | }, 29 | { 30 | name: "keyword", 31 | pattern: /\b(function|var|if|else|while|return|for|break|continue|do|switch|case|default|null|super|new|try|catch|finally|throw|typeof|instanceof|in|property|const|get|set|include|like|class|namespace|this|assert|delete|otherwise|with|__FILE__|__LINE__|__TRACE__|debug)\b/g 32 | }, 33 | { 34 | name: "string", 35 | pattern: /(".*?")/g 36 | }, 37 | { 38 | name: "char", 39 | pattern: /(')(.|\\.|\\u[\dA-Fa-f]{4})\1/g 40 | }, 41 | { 42 | "matches": { 43 | 1: "constant.numeric", 44 | 2: "constant.unit" 45 | }, 46 | pattern: /(\d+)(px|em|cm|dip|s|ms%)?/g 47 | }, 48 | { 49 | name: "integer", 50 | pattern: /\b(0x[\da-f]+|\d+)L?\b/g 51 | }, 52 | { 53 | name: "comment", 54 | pattern: /\/\*((?:.|\r|\n)*?)\*\/|(\/\/).*?$/g 55 | }, 56 | { 57 | name: "support.annotation", 58 | pattern: /@\w+/g 59 | }, 60 | /** 61 | * matches constructor call 62 | */ 63 | /*{ 64 | "matches": { 65 | 1: "keyword", 66 | 2: "entity.function" 67 | }, 68 | "pattern": /(new)\s+(.*)(?=\()/g 69 | }, */ 70 | 71 | /*{ 72 | matches: { 73 | 1: "entity.function" 74 | }, 75 | pattern: /([^@\.\s]+)\(/g 76 | },*/ 77 | /*{ 78 | name: "entity.class", 79 | pattern: /\b([A-Z]\w*)\b/g 80 | }*/ 81 | ], true); 82 | -------------------------------------------------------------------------------- /Distro/Themes/SyntaxHighlight/source-code.css: -------------------------------------------------------------------------------- 1 | body { 2 | -syntax-highlight: on; 3 | } 4 | 5 | source-code { 6 | style-set: "source-code"; 7 | behavior: htmlarea; 8 | } 9 | 10 | @set syntax { 11 | :root > text { 12 | margin-left: 2.5em; 13 | hit-margin: 0 0 0 3em; 14 | white-space: pre; 15 | display: list-item; 16 | list-style-type: decimal; 17 | background: transparent; 18 | border-left: 4dip solid transparent; 19 | } 20 | 21 | :root > eof { /* eof mark */ 22 | display: block; 23 | background: transparent; 24 | padding-bottom: *; 25 | text-align: center; 26 | } 27 | 28 | .html.tag { background:none; color: #795548; } 29 | .css .url { text-decoration:underline; } 30 | .css .at-rule { color: #546e7a; } 31 | 32 | .comment { 33 | color: #7E7E7E; 34 | font-style: italic; 35 | } 36 | 37 | .constant, .constant.unit { 38 | color: #9e9d24; 39 | } 40 | 41 | .storage { 42 | color: #0277bd; 43 | } 44 | 45 | .string { 46 | color: #607d8b; 47 | } 48 | 49 | .keyword { 50 | color: #303f9f; 51 | } 52 | 53 | .selector { 54 | color: #2e7d32; 55 | } 56 | 57 | .inherited-class { 58 | font-style: italic; 59 | } 60 | 61 | .entity { 62 | color: #2e7d32; 63 | } 64 | .entity.name.id { 65 | color: #795548; 66 | } 67 | 68 | .support { 69 | color: #303f9f; 70 | } 71 | 72 | .variable.global, .variable.class, .variable.instance { 73 | color: #2e7d32; 74 | } 75 | 76 | :root > text > .css > span.start, 77 | :root > text > .css > span.end, 78 | :root > text.css.embedded { background-color: #F5FFFB; } 79 | 80 | :root > text > .tis > span.start, 81 | :root > text > .tis > span.end, 82 | :root > text.tis.embedded { background-color: #F5FBFF; } 83 | 84 | :root > text > .php > span.start, 85 | :root > text > .php > span.end, 86 | :root > text.php.embedded { background-color: #F5FBFF; } 87 | 88 | :root > text.opens { border-bottom: 1px dashed gray; } 89 | :root > text.closes { border-top: 1px dashed gray; } 90 | } 91 | 92 | @set source-code < syntax { 93 | :root { 94 | prototype: SourceCode url(source-code.tis); 95 | display: block; 96 | color: inherit; 97 | font-size: inherit; 98 | line-height: inherit; 99 | font-family: "Segoe UI", system; 100 | font-rendering-mode: snap-pixel; 101 | overflow: scroll-indicator; 102 | background: transparent; 103 | width: 100%; 104 | height: auto; 105 | } 106 | 107 | :root > text.css.embedded:current, 108 | :root > text.tis.embedded:current, 109 | :root > text.php.embedded:current, 110 | :root > text:current { background-color: rgb(255,200,126); } 111 | :root > text[breakpoint] { border-color: red; } 112 | } -------------------------------------------------------------------------------- /Distro/Themes/SyntaxHighlight/source-code.tis: -------------------------------------------------------------------------------- 1 | include "rainbow.tis"; 2 | include "rainbow-tiscript.js"; 3 | include "rainbow-html.js"; 4 | include "rainbow-css.js"; 5 | //include "rainbow-php.js"; 6 | //include "rainbow-shell.js"; 7 | 8 | class SourceCode: Behavior { 9 | 10 | function attached() { 11 | var src = this.html; 12 | this.html = ""; 13 | var lang = this.attributes["lang"]; 14 | if( src ) this.load( src, lang ); 15 | 16 | //this.on("dblclick", "text", :: (this super).onLineDblClick(this) ); 17 | 18 | } 19 | 20 | function load(text, syntax = null) { 21 | 22 | if( !syntax || syntax == "" ) syntax = "html"; 23 | switch( syntax ) { 24 | case "htm": case "html": syntax = "html"; break; 25 | case "tis": case "js": case "json": syntax = "tis"; break; 26 | } 27 | var me = this; 28 | 29 | Rainbow.color(text, syntax, function( colorized ) { 30 | colorized = "" + colorized.replace("\n","") + ""; 31 | me.html = colorized; 32 | me.$append(); 33 | 34 | var island = null; 35 | 36 | for( var tl in me ) // mark embedded "islands" 37 | switch( island ) { 38 | case #tis: if( tl.$(span.source.tis > span.end ) ) {island = null; tl.attributes.addClass("closes"); } 39 | else tl.attributes.addClass("tis","embedded"); 40 | break; 41 | case #css: if( tl.$(span.source.css > span.end ) ) {island = null; tl.attributes.addClass("closes"); } 42 | else tl.attributes.addClass("css","embedded"); 43 | break; 44 | case #php: if( tl.$(span.source.php > span.end ) ) {island = null; tl.attributes.addClass("closes"); } 45 | else tl.attributes.addClass("php","embedded"); 46 | break; 47 | default: 48 | if( tl.$(span.source.tis > span.start ) ) { island = #tis; tl.attributes.addClass("opens"); } 49 | else if( tl.$(span.source.css > span.start ) ) { island = #css; tl.attributes.addClass("opens"); } 50 | else if( tl.$(span.source.php > span.start ) ) { island = #php; tl.attributes.addClass("opens"); } 51 | break; 52 | } 53 | }); 54 | } 55 | 56 | function setCurrentLine( lineNo = null, marker = null) 57 | { 58 | var curr = this.$(:root > text:current); 59 | if( curr ) { 60 | curr.state.current = false; 61 | if(marker) curr.attributes[marker] = undefined; 62 | } 63 | if( lineNo ) { 64 | curr = this[lineNo - 1]; 65 | curr.state.current = true; 66 | if(marker) curr.attributes[marker] = true; 67 | curr.scrollToView(); 68 | } 69 | } 70 | 71 | function setBreakpointOn( lineNo = null, marker = "breakpoint") { 72 | if( !lineNo ) 73 | for( var el in this.$$(:root > text[{marker}]) ) 74 | el.attributes[marker] = undefined; 75 | else 76 | this[lineNo - 1].attributes[marker] = true; 77 | } 78 | 79 | function onLineDblClick(line) { 80 | stdout.println(line); 81 | line.attributes["breakpoint"] = line.attributes["breakpoint"] ? undefined : true; 82 | } 83 | 84 | 85 | } -------------------------------------------------------------------------------- /Distro/Themes/template.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/Distro/Themes/template.zip -------------------------------------------------------------------------------- /Distro/modules/bass.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/Distro/modules/bass.dll -------------------------------------------------------------------------------- /Distro/modules/jpegturbo.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/Distro/modules/jpegturbo.dll -------------------------------------------------------------------------------- /Distro/modules/libcrypto-1_1.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/Distro/modules/libcrypto-1_1.dll -------------------------------------------------------------------------------- /Distro/modules/libssl-1_1.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/Distro/modules/libssl-1_1.dll -------------------------------------------------------------------------------- /Distro/modules/sciter.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/Distro/modules/sciter.dll -------------------------------------------------------------------------------- /RnQ/BuiltTime.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/BuiltTime.exe -------------------------------------------------------------------------------- /RnQ/DB/RnQ2sql.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/DB/RnQ2sql.pas -------------------------------------------------------------------------------- /RnQ/DB/RnQDB.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/DB/RnQDB.pas -------------------------------------------------------------------------------- /RnQ/HistAllSearch.dfm: -------------------------------------------------------------------------------- 1 | object AllHistSrchForm: TAllHistSrchForm 2 | Left = 0 3 | Top = 0 4 | Caption = 'Search in all history files' 5 | ClientHeight = 389 6 | ClientWidth = 319 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | KeyPreview = True 14 | OnClose = FormClose 15 | OnCreate = FormCreate 16 | OnShow = FormShow 17 | DesignSize = ( 18 | 319 19 | 389) 20 | TextHeight = 13 21 | object SearchEdit: TLabeledEdit 22 | Left = 16 23 | Top = 24 24 | Width = 282 25 | Height = 21 26 | Anchors = [akLeft, akTop, akRight] 27 | EditLabel.Width = 70 28 | EditLabel.Height = 13 29 | EditLabel.Caption = 'Text to search' 30 | TabOrder = 0 31 | Text = '' 32 | ExplicitWidth = 294 33 | end 34 | object caseChk: TCheckBox 35 | Left = 16 36 | Top = 51 37 | Width = 97 38 | Height = 17 39 | Caption = 'Case sensitive' 40 | TabOrder = 1 41 | end 42 | object reChk: TCheckBox 43 | Left = 176 44 | Top = 51 45 | Width = 76 46 | Height = 17 47 | Caption = 'Reg.Exp.' 48 | TabOrder = 2 49 | end 50 | object RoasterChk: TCheckBox 51 | Left = 16 52 | Top = 74 53 | Width = 257 54 | Height = 17 55 | Caption = 'Only in contact-list' 56 | TabOrder = 3 57 | end 58 | object SchBtn: TRnQButton 59 | Left = 16 60 | Top = 97 61 | Width = 282 62 | Height = 25 63 | Anchors = [akLeft, akTop, akRight] 64 | Caption = 'Search' 65 | Default = True 66 | ImageName = '' 67 | TabOrder = 4 68 | OnClick = SchBtnClick 69 | ExplicitWidth = 294 70 | end 71 | object HistPosTree: TVirtualDrawTree 72 | Left = 16 73 | Top = 128 74 | Width = 282 75 | Height = 253 76 | Anchors = [akLeft, akTop, akRight, akBottom] 77 | Header.AutoSizeIndex = 0 78 | Header.DefaultHeight = 17 79 | Header.Height = 13 80 | Header.MainColumn = -1 81 | Header.Options = [hoColumnResize, hoDrag] 82 | TabOrder = 5 83 | OnDblClick = HistPosTreeDblClick 84 | OnDrawNode = HistPosTreeDrawNode 85 | OnFreeNode = HistPosTreeFreeNode 86 | OnGetNodeWidth = HistPosTreeGetNodeWidth 87 | OnKeyPress = HistPosTreeKeyPress 88 | Touch.InteractiveGestures = [igPan, igPressAndTap] 89 | Touch.InteractiveGestureOptions = [igoPanSingleFingerHorizontal, igoPanSingleFingerVertical, igoPanInertia, igoPanGutter, igoParentPassthrough] 90 | ExplicitWidth = 294 91 | ExplicitHeight = 262 92 | Columns = <> 93 | end 94 | end 95 | -------------------------------------------------------------------------------- /RnQ/HistWork.pas: -------------------------------------------------------------------------------- 1 | unit HistWork; 2 | 3 | interface 4 | 5 | //uses windows, classes; 6 | 7 | procedure AddHistory(OldPath,NewPath: ShortString; uin : LongInt; var s: String); 8 | //function AddHistory(OldPath,NewPath,OldPas,NewPas: ShortString; var s: String): Byte; 9 | procedure AddFile(OldPath,NewPath : ShortString; var s: String); 10 | //function AddEvent(filename: PChar; EType: Byte; Uin: LongInt; DT: TDateTime; TextMessage: PChar; flags: Byte): Byte; 11 | //procedure CnvJimmToRq(OutUIN:Integer; path: ShortString; var s: String); 12 | //procedure Cure(path: ShortString; var S: String); 13 | //procedure RunChkDates(path: ShortString); 14 | 15 | var 16 | // Splicing: function (Path1,Path2,Pas1,Pas2: ShortString; hash1,hash2:Pchar; Buf : pchar; BufLen : cardinal; var size: Word): Byte; StdCall; 17 | Splicing: procedure (path1,path2: ShortString; uinout: LongInt; Buf1: pAnsiChar; Buf1Len: cardinal); StdCall; 18 | // ReNum: function (Path1,Path2,pas1,pas2: ShortString; hash1,hash2:Pchar): Byte; StdCall; 19 | ReNum: procedure(InFile, OutFile: ShortString; Buf1: pAnsiChar; Buf1Len: cardinal); StdCall; 20 | // AddMessage: function (filename: PChar; EType: Byte; Uin: LongInt; DT: TDateTime; TextMessage: PChar; flags: Byte): Byte; StdCall; 21 | // JimmToRq : procedure (OutUIN:Integer; path: ShortString); StdCall; 22 | JimmToRq : procedure (OutUIN:Integer; path: ShortString; Buf1 : pAnsiChar; Buf1Len : cardinal; var size: word);StdCall; 23 | // CureHistory: procedure (path: ShortString; Buf1 : pchar; Buf1Len : cardinal); StdCall; 24 | // CheckDates: procedure (path: ShortString); StdCall; 25 | LibHandle: THandle; 26 | 27 | implementation 28 | 29 | procedure AddHistory(OldPath, NewPath: ShortString; uin: LongInt; var s: String); 30 | var 31 | Buf: array[word] of AnsiChar; 32 | // size: word; 33 | begin 34 | try 35 | if @Splicing <> nil then 36 | Splicing(OldPath, NewPath, uin, Buf, sizeof(Buf)); 37 | s := Buf; 38 | except 39 | s := 'Error!' 40 | end; 41 | end; 42 | 43 | procedure AddFile(OldPath, NewPath: ShortString; var s: String); 44 | var 45 | Buf: array[word] of AnsiChar; 46 | begin 47 | try 48 | if @ReNum <> nil then 49 | ReNum(OldPath,NewPath,Buf,sizeof(Buf)); 50 | s := Buf; 51 | except 52 | s := 'Error!' 53 | end; 54 | end; 55 | { 56 | function AddEvent(filename: PChar; EType: Byte; Uin: LongInt; DT: TDateTime; TextMessage: PChar; flags: Byte): Byte; 57 | begin 58 | if @AddMessage <> nil then 59 | Result := AddMessage(filename,EType,Uin,DT,TextMessage,flags); 60 | end; 61 | 62 | 63 | procedure CnvJimmToRq(OutUIN:Integer; path: ShortString; var s: String); 64 | var 65 | Buf : array[word] of char; 66 | size: word; 67 | begin 68 | if @JimmToRq <> nil then 69 | begin 70 | JimmToRq(OutUIN,path, Buf,sizeof(Buf), size); 71 | s := Buf; 72 | end 73 | else 74 | s := 'Function not found in DLL'#13#10'Update HistoryLib.DLL!'; 75 | end; 76 | 77 | procedure Cure(path: ShortString; var S: String); 78 | var 79 | Buf : array[word] of char; 80 | size: word; 81 | begin 82 | if @CureHistory <> nil then 83 | begin 84 | CureHistory(path, Buf,sizeof(Buf)); 85 | s := Buf; 86 | end 87 | else 88 | s := 'Function not found in DLL'#13#10'Update HistoryLib.DLL!'; 89 | end; 90 | } 91 | 92 | {procedure RunChkDates(path: ShortString); 93 | begin 94 | try 95 | if @CheckDates <> nil then 96 | CheckDates(Path); 97 | except 98 | end; 99 | end; 100 | } 101 | end. 102 | -------------------------------------------------------------------------------- /RnQ/ICQ/ICQClients.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/ICQ/ICQClients.pas -------------------------------------------------------------------------------- /RnQ/ICQ/ICQContacts.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/ICQ/ICQContacts.pas -------------------------------------------------------------------------------- /RnQ/ICQ/ICQflap.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/ICQ/ICQflap.pas -------------------------------------------------------------------------------- /RnQ/ICQ/MenuStickers.dfm: -------------------------------------------------------------------------------- 1 | object FStickers: TFStickers 2 | Left = 309 3 | Top = 213 4 | BiDiMode = bdLeftToRight 5 | BorderStyle = bsNone 6 | Caption = 'Stickers' 7 | ClientHeight = 311 8 | ClientWidth = 484 9 | Color = clBtnFace 10 | DoubleBuffered = True 11 | Font.Charset = RUSSIAN_CHARSET 12 | Font.Color = clWindowText 13 | Font.Height = -13 14 | Font.Name = 'Arial' 15 | Font.Style = [fsBold] 16 | FormStyle = fsStayOnTop 17 | KeyPreview = True 18 | OldCreateOrder = False 19 | ParentBiDiMode = False 20 | Position = poDefault 21 | OnCreate = FormCreate 22 | OnHide = FormHide 23 | OnKeyDown = FormKeyDown 24 | OnPaint = FormPaint 25 | OnShow = FormShow 26 | PixelsPerInch = 96 27 | TextHeight = 16 28 | object exts: TPanel 29 | AlignWithMargins = True 30 | Left = 1 31 | Top = 1 32 | Width = 482 33 | Height = 52 34 | Margins.Left = 1 35 | Margins.Top = 1 36 | Margins.Right = 1 37 | Margins.Bottom = 0 38 | Align = alTop 39 | BevelOuter = bvNone 40 | Color = 14935011 41 | Ctl3D = True 42 | DoubleBuffered = True 43 | FullRepaint = False 44 | ParentBackground = False 45 | ParentCtl3D = False 46 | ParentDoubleBuffered = False 47 | TabOrder = 0 48 | object scrollLeft: TRnQSpeedButton 49 | Left = 16 50 | Top = 16 51 | Width = 23 52 | Height = 22 53 | Cursor = crHandPoint 54 | Flat = True 55 | Font.Charset = RUSSIAN_CHARSET 56 | Font.Color = clBtnText 57 | Font.Height = -13 58 | Font.Name = 'Arial' 59 | Font.Style = [fsBold] 60 | Font.Quality = fqAntialiased 61 | ParentFont = False 62 | OnClick = scrollLeftClick 63 | end 64 | object scrollRight: TRnQSpeedButton 65 | Left = 448 66 | Top = 16 67 | Width = 23 68 | Height = 22 69 | Cursor = crHandPoint 70 | Flat = True 71 | Font.Charset = RUSSIAN_CHARSET 72 | Font.Color = clBtnText 73 | Font.Height = -13 74 | Font.Name = 'Arial' 75 | Font.Style = [fsBold] 76 | Font.Quality = fqAntialiased 77 | ParentFont = False 78 | OnClick = scrollRightClick 79 | end 80 | end 81 | object actList: TActionList 82 | Left = 384 83 | Top = 256 84 | object NextExt: TAction 85 | SecondaryShortCuts.Strings = ( 86 | 'TAB') 87 | OnExecute = NextExtExecute 88 | end 89 | object PrevExt: TAction 90 | SecondaryShortCuts.Strings = ( 91 | 'Shift+TAB') 92 | OnExecute = PrevExtExecute 93 | end 94 | end 95 | object UpdTmr: TTimer 96 | Enabled = False 97 | Interval = 100 98 | OnTimer = UpdTmrTimer 99 | Left = 432 100 | Top = 256 101 | end 102 | end 103 | -------------------------------------------------------------------------------- /RnQ/ICQ/Protocol_ICQ.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/ICQ/Protocol_ICQ.pas -------------------------------------------------------------------------------- /RnQ/ICQ/RQ_ICQ.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/ICQ/RQ_ICQ.pas -------------------------------------------------------------------------------- /RnQ/ICQ/RnQ_CLsynchrDlg.dfm: -------------------------------------------------------------------------------- 1 | object CLsyncDlg: TCLsyncDlg 2 | Left = 278 3 | Top = 134 4 | Caption = 'CL sync' 5 | ClientHeight = 266 6 | ClientWidth = 413 7 | Color = clBtnFace 8 | Constraints.MinHeight = 296 9 | Constraints.MinWidth = 200 10 | Font.Charset = DEFAULT_CHARSET 11 | Font.Color = clWindowText 12 | Font.Height = -11 13 | Font.Name = 'Tahoma' 14 | Font.Style = [] 15 | OldCreateOrder = False 16 | OnClose = FormClose 17 | OnShow = FormShow 18 | PixelsPerInch = 96 19 | TextHeight = 13 20 | object SCList: TVirtualDrawTree 21 | Left = 0 22 | Top = 0 23 | Width = 413 24 | Height = 229 25 | Align = alClient 26 | Header.AutoSizeIndex = 0 27 | Header.Font.Charset = DEFAULT_CHARSET 28 | Header.Font.Color = clWindowText 29 | Header.Font.Height = -11 30 | Header.Font.Name = 'Tahoma' 31 | Header.Font.Style = [] 32 | Header.MainColumn = 1 33 | Header.Options = [hoAutoResize, hoColumnResize, hoDrag, hoShowSortGlyphs, hoVisible] 34 | Header.SortColumn = 0 35 | Header.Style = hsThickButtons 36 | TabOrder = 0 37 | TreeOptions.MiscOptions = [toFullRepaintOnResize, toGridExtensions, toInitOnSave, toToggleOnDblClick, toWheelPanning] 38 | TreeOptions.PaintOptions = [toHideSelection, toShowButtons, toShowDropmark, toShowHorzGridLines, toShowVertGridLines, toThemeAware, toUseBlendedImages] 39 | TreeOptions.SelectionOptions = [toFullRowSelect] 40 | OnCompareNodes = SCListCompareNodes 41 | OnDrawNode = SCListDrawNode 42 | OnMouseDown = SCListMouseDown 43 | Columns = < 44 | item 45 | Position = 0 46 | Width = 189 47 | WideText = 'Contact' 48 | end 49 | item 50 | Position = 1 51 | Width = 90 52 | WideText = 'Display [Server]' 53 | end 54 | item 55 | Options = [coAllowClick, coDraggable, coEnabled, coParentBidiMode, coParentColor, coShowDropMark, coVisible] 56 | Position = 2 57 | Style = vsOwnerDraw 58 | Width = 40 59 | WideText = 'CopyTo' 60 | WideHint = 'CopyTo' 61 | end 62 | item 63 | Position = 3 64 | Width = 90 65 | WideText = 'Display [Local]' 66 | end> 67 | end 68 | object Panel1: TPanel 69 | Left = 0 70 | Top = 229 71 | Width = 413 72 | Height = 37 73 | Align = alBottom 74 | TabOrder = 1 75 | DesignSize = ( 76 | 413 77 | 37) 78 | object ApplyBtn: TRnQSpeedButton 79 | Left = 233 80 | Top = 8 81 | Width = 80 82 | Height = 22 83 | Anchors = [akTop, akRight] 84 | Caption = 'Apply' 85 | ModalResult = 1 86 | ImageName = 'apply' 87 | ExplicitLeft = 12 88 | end 89 | object CancelBtn: TRnQSpeedButton 90 | Left = 321 91 | Top = 8 92 | Width = 80 93 | Height = 22 94 | Anchors = [akTop, akRight] 95 | Caption = 'Cancel' 96 | ModalResult = 2 97 | ImageName = 'cancel' 98 | OnClick = CancelBtnClick 99 | ExplicitLeft = 100 100 | end 101 | end 102 | end 103 | -------------------------------------------------------------------------------- /RnQ/ICQ/StickersExt/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/ICQ/StickersExt/1.png -------------------------------------------------------------------------------- /RnQ/ICQ/StickersExt/106.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/ICQ/StickersExt/106.png -------------------------------------------------------------------------------- /RnQ/ICQ/StickersExt/107.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/ICQ/StickersExt/107.png -------------------------------------------------------------------------------- /RnQ/ICQ/StickersExt/108.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/ICQ/StickersExt/108.png -------------------------------------------------------------------------------- /RnQ/ICQ/StickersExt/109.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/ICQ/StickersExt/109.png -------------------------------------------------------------------------------- /RnQ/ICQ/StickersExt/111.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/ICQ/StickersExt/111.png -------------------------------------------------------------------------------- /RnQ/ICQ/StickersExt/112.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/ICQ/StickersExt/112.png -------------------------------------------------------------------------------- /RnQ/ICQ/StickersExt/113.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/ICQ/StickersExt/113.png -------------------------------------------------------------------------------- /RnQ/ICQ/StickersExt/118.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/ICQ/StickersExt/118.png -------------------------------------------------------------------------------- /RnQ/ICQ/StickersExt/119.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/ICQ/StickersExt/119.png -------------------------------------------------------------------------------- /RnQ/ICQ/StickersExt/121.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/ICQ/StickersExt/121.png -------------------------------------------------------------------------------- /RnQ/ICQ/StickersExt/123.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/ICQ/StickersExt/123.png -------------------------------------------------------------------------------- /RnQ/ICQ/StickersExt/124.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/ICQ/StickersExt/124.png -------------------------------------------------------------------------------- /RnQ/ICQ/StickersExt/151.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/ICQ/StickersExt/151.png -------------------------------------------------------------------------------- /RnQ/ICQ/StickersExt/157.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/ICQ/StickersExt/157.png -------------------------------------------------------------------------------- /RnQ/ICQ/StickersExt/158.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/ICQ/StickersExt/158.png -------------------------------------------------------------------------------- /RnQ/ICQ/StickersExt/180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/ICQ/StickersExt/180.png -------------------------------------------------------------------------------- /RnQ/ICQ/StickersExt/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/ICQ/StickersExt/2.png -------------------------------------------------------------------------------- /RnQ/ICQ/StickersExt/203.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/ICQ/StickersExt/203.png -------------------------------------------------------------------------------- /RnQ/ICQ/StickersExt/205.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/ICQ/StickersExt/205.png -------------------------------------------------------------------------------- /RnQ/ICQ/StickersExt/209.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/ICQ/StickersExt/209.png -------------------------------------------------------------------------------- /RnQ/ICQ/StickersExt/211.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/ICQ/StickersExt/211.png -------------------------------------------------------------------------------- /RnQ/ICQ/StickersExt/213.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/ICQ/StickersExt/213.png -------------------------------------------------------------------------------- /RnQ/ICQ/StickersExt/217.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/ICQ/StickersExt/217.png -------------------------------------------------------------------------------- /RnQ/ICQ/StickersExt/79.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/ICQ/StickersExt/79.png -------------------------------------------------------------------------------- /RnQ/ICQ/StickersExt/80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/ICQ/StickersExt/80.png -------------------------------------------------------------------------------- /RnQ/ICQ/StickersExt/81.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/ICQ/StickersExt/81.png -------------------------------------------------------------------------------- /RnQ/ICQ/StickersExt/87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/ICQ/StickersExt/87.png -------------------------------------------------------------------------------- /RnQ/ICQ/StickersExt/95.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/ICQ/StickersExt/95.png -------------------------------------------------------------------------------- /RnQ/ICQ/StickersExt/97.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/ICQ/StickersExt/97.png -------------------------------------------------------------------------------- /RnQ/ICQ/newaccountDlg.dfm: -------------------------------------------------------------------------------- 1 | object newaccountFrm: TnewaccountFrm 2 | Left = 103 3 | Top = 150 4 | Anchors = [akTop, akRight] 5 | BorderIcons = [biSystemMenu, biMinimize] 6 | BorderStyle = bsSingle 7 | Caption = 'New account' 8 | ClientHeight = 264 9 | ClientWidth = 273 10 | Color = clBtnFace 11 | Constraints.MinWidth = 270 12 | Font.Charset = RUSSIAN_CHARSET 13 | Font.Color = clWindowText 14 | Font.Height = -11 15 | Font.Name = 'Tahoma' 16 | Font.Style = [] 17 | OldCreateOrder = True 18 | OnClose = FormClose 19 | OnCreate = FormCreate 20 | OnPaint = FormPaint 21 | OnShow = FormShow 22 | DesignSize = ( 23 | 273 24 | 264) 25 | PixelsPerInch = 96 26 | TextHeight = 13 27 | object L2: TLabel 28 | Left = 11 29 | Top = 45 30 | Width = 88 31 | Height = 13 32 | Alignment = taRightJustify 33 | Caption = 'Enter a password:' 34 | Transparent = True 35 | end 36 | object btnGetPicture: TRnQSpeedButton 37 | Left = 8 38 | Top = 234 39 | Width = 128 40 | Height = 25 41 | Caption = 'Get Picture' 42 | ImageName = 'ok' 43 | OnClick = btnGetPictureClick 44 | end 45 | object RnQSpeedButton1: TRnQSpeedButton 46 | Left = 147 47 | Top = 9 48 | Width = 120 49 | Height = 25 50 | Anchors = [akTop, akRight] 51 | Caption = 'Change' 52 | ImageName = 'preferences' 53 | OnClick = RnQSpeedButton1Click 54 | ExplicitLeft = 130 55 | end 56 | object L3: TLabel 57 | Left = 11 58 | Top = 181 59 | Width = 66 60 | Height = 13 61 | Caption = 'Enter a word:' 62 | Transparent = True 63 | end 64 | object okBtn: TRnQSpeedButton 65 | Left = 142 66 | Top = 234 67 | Width = 127 68 | Height = 25 69 | Anchors = [akTop, akRight] 70 | Caption = '&Register UIN' 71 | Enabled = False 72 | Font.Charset = RUSSIAN_CHARSET 73 | Font.Color = clWindowText 74 | Font.Height = -11 75 | Font.Name = 'Tahoma' 76 | Font.Style = [fsBold] 77 | ParentFont = False 78 | ImageName = 'ok' 79 | OnClick = okBtnClick 80 | ExplicitLeft = 143 81 | end 82 | object L1: TLabel 83 | Left = 42 84 | Top = 15 85 | Width = 99 86 | Height = 13 87 | Alignment = taRightJustify 88 | Anchors = [akTop, akRight] 89 | Caption = 'Connection settings:' 90 | Transparent = True 91 | ExplicitLeft = 25 92 | end 93 | object pBox2: TEdit 94 | Left = 108 95 | Top = 42 96 | Width = 156 97 | Height = 21 98 | Anchors = [akLeft, akTop, akRight] 99 | TabOrder = 0 100 | OnChange = pBox2Change 101 | end 102 | object edWord: TEdit 103 | Left = 108 104 | Top = 178 105 | Width = 156 106 | Height = 21 107 | Anchors = [akLeft, akTop, akRight] 108 | CharCase = ecUpperCase 109 | Enabled = False 110 | TabOrder = 1 111 | OnChange = edWordChange 112 | end 113 | object logBox: TEdit 114 | Left = 8 115 | Top = 205 116 | Width = 257 117 | Height = 21 118 | Anchors = [akLeft, akTop, akRight] 119 | CharCase = ecUpperCase 120 | Enabled = False 121 | Font.Charset = RUSSIAN_CHARSET 122 | Font.Color = clGreen 123 | Font.Height = -11 124 | Font.Name = 'Tahoma' 125 | Font.Style = [fsBold] 126 | ParentFont = False 127 | TabOrder = 2 128 | OnChange = edWordChange 129 | end 130 | object pl: TPanel 131 | Left = 6 132 | Top = 71 133 | Width = 259 134 | Height = 102 135 | Anchors = [akLeft, akTop, akRight] 136 | BevelKind = bkFlat 137 | BevelOuter = bvNone 138 | Caption = 'No picture' 139 | TabOrder = 3 140 | object PBox: TPaintBox 141 | Left = 0 142 | Top = 0 143 | Width = 255 144 | Height = 98 145 | Align = alClient 146 | OnPaint = PBoxPaint 147 | ExplicitLeft = 36 148 | ExplicitTop = -4 149 | ExplicitWidth = 105 150 | ExplicitHeight = 105 151 | end 152 | end 153 | end 154 | -------------------------------------------------------------------------------- /RnQ/ICQ/smsDlg.dfm: -------------------------------------------------------------------------------- 1 | object smsFrm: TsmsFrm 2 | Left = 335 3 | Top = 158 4 | Caption = 'SMS' 5 | ClientHeight = 285 6 | ClientWidth = 242 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'MS Sans Serif' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | PixelsPerInch = 96 15 | TextHeight = 13 16 | object Label1: TLabel 17 | Left = 5 18 | Top = 8 19 | Width = 42 20 | Height = 13 21 | Caption = 'message' 22 | end 23 | object Label2: TLabel 24 | Left = 5 25 | Top = 119 26 | Width = 94 27 | Height = 13 28 | Caption = 'destination numbers' 29 | end 30 | object SendBtn: TRnQSpeedButton 31 | Left = 129 32 | Top = 256 33 | Width = 88 34 | Height = 25 35 | Caption = '&Send' 36 | ImageName = 'ok' 37 | OnClick = SendBtnClick 38 | end 39 | object msgBox: TMemo 40 | Left = 0 41 | Top = 24 42 | Width = 233 43 | Height = 89 44 | TabOrder = 0 45 | OnChange = msgBoxChange 46 | end 47 | object destBox: TMemo 48 | Left = 0 49 | Top = 135 50 | Width = 233 51 | Height = 89 52 | TabOrder = 1 53 | end 54 | object charsBox: TLabeledEdit 55 | Left = 57 56 | Top = 258 57 | Width = 49 58 | Height = 21 59 | EditLabel.Width = 27 60 | EditLabel.Height = 13 61 | EditLabel.Caption = 'Chars' 62 | LabelPosition = lpLeft 63 | TabOrder = 3 64 | end 65 | object delivery_receiptBox: TCheckBox 66 | Left = 8 67 | Top = 232 68 | Width = 177 69 | Height = 17 70 | Caption = 'delivery receipt' 71 | Checked = True 72 | State = cbChecked 73 | TabOrder = 2 74 | end 75 | end 76 | -------------------------------------------------------------------------------- /RnQ/ICQ/smsDlg.pas: -------------------------------------------------------------------------------- 1 | { 2 | Copyright (C) 2002-2004 Massimo Melina (www.rejetto.com) 3 | 4 | This file is part of &RQ. 5 | 6 | &RQ is free software; you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation; either version 2 of the License, or 9 | (at your option) any later version. 10 | 11 | &RQ is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with &RQ; if not, write to the Free Software 18 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 19 | } 20 | unit smsDlg; 21 | 22 | interface 23 | 24 | uses 25 | Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, 26 | StdCtrls, ExtCtrls, RnQButtons; 27 | 28 | type 29 | TsmsFrm = class(TForm) 30 | msgBox: TMemo; 31 | Label1: TLabel; 32 | destBox: TMemo; 33 | Label2: TLabel; 34 | SendBtn: TRnQSpeedButton; 35 | charsBox: TLabeledEdit; 36 | delivery_receiptBox: TCheckBox; 37 | procedure SendBtnClick(Sender: TObject); 38 | procedure msgBoxChange(Sender: TObject); 39 | public 40 | constructor doAll(owner_ :Tcomponent; msg,dest:string); 41 | end; 42 | 43 | //var 44 | // smsFrm: TsmsFrm; 45 | 46 | implementation 47 | 48 | uses 49 | globalLib, utilLib, langLib, RQGlobal, RQThemes, RQUtil; 50 | 51 | {$R *.dfm} 52 | 53 | constructor TsmsFrm.doAll(owner_ :Tcomponent; msg,dest:string); 54 | begin 55 | inherited create(owner_); 56 | position:=poDefaultPosOnly; 57 | theme.pic2ico(PIC_SMS, icon); 58 | msgBox.text:=msg; 59 | destBox.text:=dest; 60 | translateWindow(self); 61 | showForm(self); 62 | bringForeground:=handle; 63 | msgBoxChange(nil); 64 | end; 65 | 66 | procedure TsmsFrm.SendBtnClick(Sender: TObject); 67 | var 68 | i : Integer; 69 | begin 70 | // OnlFeature; 71 | for i := 1 to destBox.Lines.Count do 72 | ICQ.sendSMS(destBox.Lines[i], msgBox.Text, delivery_receiptBox.Checked); 73 | end; 74 | 75 | procedure TsmsFrm.msgBoxChange(Sender: TObject); 76 | begin 77 | charsBox.text:=intToStr(length(msgBox.Text)); 78 | end; 79 | 80 | end. 81 | -------------------------------------------------------------------------------- /RnQ/ICQ/stickers.rc: -------------------------------------------------------------------------------- 1 | STICKER1 RCDATA "StickersExt\1.png" 2 | STICKER2 RCDATA "StickersExt\2.png" 3 | STICKER79 RCDATA "StickersExt\79.png" 4 | STICKER80 RCDATA "StickersExt\80.png" 5 | STICKER81 RCDATA "StickersExt\81.png" 6 | STICKER87 RCDATA "StickersExt\87.png" 7 | STICKER95 RCDATA "StickersExt\95.png" 8 | STICKER97 RCDATA "StickersExt\97.png" 9 | STICKER106 RCDATA "StickersExt\106.png" 10 | STICKER107 RCDATA "StickersExt\107.png" 11 | STICKER108 RCDATA "StickersExt\108.png" 12 | STICKER109 RCDATA "StickersExt\109.png" 13 | STICKER111 RCDATA "StickersExt\111.png" 14 | STICKER112 RCDATA "StickersExt\112.png" 15 | STICKER113 RCDATA "StickersExt\113.png" 16 | STICKER118 RCDATA "StickersExt\118.png" 17 | STICKER119 RCDATA "StickersExt\119.png" 18 | STICKER121 RCDATA "StickersExt\121.png" 19 | STICKER123 RCDATA "StickersExt\123.png" 20 | STICKER124 RCDATA "StickersExt\124.png" 21 | STICKER151 RCDATA "StickersExt\151.png" 22 | STICKER157 RCDATA "StickersExt\157.png" 23 | STICKER158 RCDATA "StickersExt\158.png" 24 | STICKER180 RCDATA "StickersExt\180.png" 25 | STICKER203 RCDATA "StickersExt\203.png" 26 | STICKER205 RCDATA "StickersExt\205.png" 27 | STICKER209 RCDATA "StickersExt\209.png" 28 | STICKER211 RCDATA "StickersExt\211.png" 29 | STICKER213 RCDATA "StickersExt\213.png" 30 | STICKER217 RCDATA "StickersExt\217.png" 31 | -------------------------------------------------------------------------------- /RnQ/ICQ/viewinfoDlg.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/ICQ/viewinfoDlg.pas -------------------------------------------------------------------------------- /RnQ/MRA/MRAStatusForm.dfm: -------------------------------------------------------------------------------- 1 | object MRAStatusForm: TMRAStatusForm 2 | Left = 183 3 | Top = 307 4 | BorderStyle = bsToolWindow 5 | Caption = 'Choose the xStatus...' 6 | ClientHeight = 296 7 | ClientWidth = 287 8 | Color = clBtnFace 9 | Font.Charset = DEFAULT_CHARSET 10 | Font.Color = clWindowText 11 | Font.Height = -11 12 | Font.Name = 'Tahoma' 13 | Font.Style = [] 14 | FormStyle = fsStayOnTop 15 | KeyPreview = True 16 | OldCreateOrder = False 17 | Position = poDesigned 18 | OnClose = FormClose 19 | OnCreate = FormCreate 20 | OnKeyDown = FormKeyDown 21 | OnShow = FormShow 22 | PixelsPerInch = 96 23 | TextHeight = 13 24 | object Bevel1: TBevel 25 | Left = 8 26 | Top = 36 27 | Width = 273 28 | Height = 120 29 | Shape = bsFrame 30 | Style = bsRaised 31 | end 32 | object xStatusName: TEdit 33 | Left = 8 34 | Top = 8 35 | Width = 177 36 | Height = 21 37 | TabOrder = 0 38 | end 39 | object XStatusStrMemo: TMemo 40 | Left = 8 41 | Top = 160 42 | Width = 265 43 | Height = 129 44 | MaxLength = 255 45 | TabOrder = 2 46 | OnChange = XStatusStrMemoChange 47 | end 48 | object xSetButton: TRnQButton 49 | Left = 200 50 | Top = 5 51 | Width = 79 52 | Height = 25 53 | Caption = 'SET' 54 | Default = True 55 | TabOrder = 1 56 | OnClick = xSetButtonClick 57 | end 58 | object SBar: TStatusBar 59 | Left = 0 60 | Top = 277 61 | Width = 287 62 | Height = 19 63 | Panels = < 64 | item 65 | Width = 100 66 | end 67 | item 68 | Width = 50 69 | end> 70 | end 71 | end 72 | -------------------------------------------------------------------------------- /RnQ/MRA/MRA_proto.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/MRA/MRA_proto.pas -------------------------------------------------------------------------------- /RnQ/MRA/MRAsmsDlg.dfm: -------------------------------------------------------------------------------- 1 | object MRAsmsFrm: TMRAsmsFrm 2 | Left = 335 3 | Top = 158 4 | Caption = 'SMS' 5 | ClientHeight = 285 6 | ClientWidth = 222 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'MS Sans Serif' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | DesignSize = ( 15 | 222 16 | 285) 17 | PixelsPerInch = 96 18 | TextHeight = 13 19 | object Label1: TLabel 20 | Left = 5 21 | Top = 107 22 | Width = 42 23 | Height = 13 24 | Caption = 'message' 25 | end 26 | object SendBtn: TRnQSpeedButton 27 | Left = 129 28 | Top = 256 29 | Width = 83 30 | Height = 25 31 | Anchors = [akLeft, akTop, akRight] 32 | Caption = '&Send' 33 | ImageName = 'ok' 34 | OnClick = SendBtnClick 35 | ExplicitWidth = 88 36 | end 37 | object RnQSpeedButton1: TRnQSpeedButton 38 | Left = 191 39 | Top = 8 40 | Width = 23 41 | Height = 22 42 | Anchors = [akTop, akRight] 43 | ExplicitLeft = 207 44 | end 45 | object msgBox: TMemo 46 | Left = 0 47 | Top = 123 48 | Width = 217 49 | Height = 89 50 | Anchors = [akLeft, akTop, akRight] 51 | TabOrder = 0 52 | OnChange = msgBoxChange 53 | ExplicitWidth = 233 54 | end 55 | object charsBox: TLabeledEdit 56 | Left = 57 57 | Top = 258 58 | Width = 49 59 | Height = 21 60 | EditLabel.Width = 27 61 | EditLabel.Height = 13 62 | EditLabel.Caption = 'Chars' 63 | LabelPosition = lpLeft 64 | TabOrder = 2 65 | end 66 | object delivery_receiptBox: TCheckBox 67 | Left = 8 68 | Top = 232 69 | Width = 177 70 | Height = 17 71 | Caption = 'delivery receipt' 72 | Checked = True 73 | State = cbChecked 74 | TabOrder = 1 75 | end 76 | object PhoneBox: TComboBox 77 | Left = 8 78 | Top = 8 79 | Width = 177 80 | Height = 21 81 | Anchors = [akLeft, akTop, akRight] 82 | ItemHeight = 13 83 | TabOrder = 3 84 | Text = '+7' 85 | ExplicitWidth = 193 86 | end 87 | end 88 | -------------------------------------------------------------------------------- /RnQ/MRA/MRAsmsDlg.pas: -------------------------------------------------------------------------------- 1 | { 2 | This file is part of R&Q. 3 | Under same license 4 | } 5 | unit MRAsmsDlg; 6 | {$I Compilers.inc} 7 | {$I RnQConfig.inc} 8 | 9 | interface 10 | 11 | uses 12 | Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, 13 | StdCtrls, ExtCtrls, RnQButtons, RnQProtocol, MRAContacts; 14 | 15 | type 16 | TMRAsmsFrm = class(TForm) 17 | msgBox: TMemo; 18 | Label1: TLabel; 19 | SendBtn: TRnQSpeedButton; 20 | charsBox: TLabeledEdit; 21 | delivery_receiptBox: TCheckBox; 22 | PhoneBox: TComboBox; 23 | RnQSpeedButton1: TRnQSpeedButton; 24 | procedure SendBtnClick(Sender: TObject); 25 | procedure msgBoxChange(Sender: TObject); 26 | public 27 | // constructor doAll(owner_ :Tcomponent; msg,dest:string); 28 | constructor doAll(owner_ :Tcomponent; cnt : TRnQContact; msg:string = ''); 29 | private 30 | contact : TMRAContact; 31 | end; 32 | 33 | //var 34 | // smsFrm: TMRAsmsFrm; 35 | 36 | implementation 37 | 38 | uses 39 | globalLib, utilLib, langLib, RQGlobal, RQThemes, RQUtil, themesLib, 40 | MRAv1; 41 | 42 | {$R *.dfm} 43 | 44 | constructor TMRAsmsFrm.doAll(owner_ :Tcomponent; cnt : TRnQContact; msg:string = ''); 45 | begin 46 | if not Assigned(cnt) or 47 | not (cnt is TMRAContact) then 48 | Exit; 49 | inherited create(owner_); 50 | position:=poDefaultPosOnly; 51 | theme.pic2ico(RQteFormIcon, PIC_SMS, icon); 52 | msgBox.text:=msg; 53 | contact := TMRAContact(cnt); 54 | translateWindow(self); 55 | showForm(self); 56 | bringForeground:=handle; 57 | msgBoxChange(nil); 58 | end; 59 | 60 | procedure TMRAsmsFrm.SendBtnClick(Sender: TObject); 61 | var 62 | // i : Integer; 63 | ph : AnsiString; 64 | begin 65 | ph := PhoneBox.Text; 66 | if Length(ph) < 7 then 67 | Exit; 68 | TMRASession(contact.fProto).sendSMS(contact, ph, msgBox.Text); 69 | // OnlFeature; 70 | // for i := 1 to destBox.Lines.Count do 71 | // ICQ.sendSMS(destBox.Lines[i], msgBox.Text, delivery_receiptBox.Checked); 72 | end; 73 | 74 | procedure TMRAsmsFrm.msgBoxChange(Sender: TObject); 75 | begin 76 | charsBox.text:=intToStr(length(msgBox.Text)); 77 | end; 78 | 79 | end. 80 | -------------------------------------------------------------------------------- /RnQ/MRA/MRAv1.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/MRA/MRAv1.pas -------------------------------------------------------------------------------- /RnQ/MRA/Protocol_MRA.pas: -------------------------------------------------------------------------------- 1 | unit Protocol_MRA; 2 | {$I Compilers.inc} 3 | {$I RnQConfig.inc} 4 | 5 | interface 6 | uses 7 | Classes, MRAcontacts, outboxlib, events, MRAv1, MRA_proto, 8 | RnQProtocol, globalLib, viewMRAinfoDlg; 9 | 10 | 11 | procedure loggaMRAPkt(what:TwhatLog; data: AnsiString=''); 12 | // function findMRAViewInfo(c:TRnQContact):TviewMRAInfoFrm; 13 | 14 | 15 | implementation 16 | 17 | uses 18 | OverbyteIcsWSocket, 19 | utilLib, Flap, 20 | RQUtil, RnQDialogs, 21 | rnqLangs, RnQStrings, 22 | RnQFileUtil, 23 | iniLib, mainDlg, 24 | pluginutil, pluginLib, SysUtils, RQGlobal, 25 | roasterLib, themesLib, 26 | chatDlg; 27 | 28 | 29 | function GetPacketName(UL: Cardinal): String; 30 | begin 31 | case UL of 32 | $1001 : Result:= 'CLI_MRIM_CS_HELLO'; 33 | $1002 : Result:= 'SRV_MRIM_CS_HELLO_ACK'; 34 | $1004 : Result:= 'SRV_MRIM_CS_LOGIN_ACK'; 35 | $1005 : Result:= 'SRV_MRIM_CS_LOGIN_REJ'; 36 | $1006 : Result:= 'CLI_MRIM_CS_PING'; 37 | $1008 : Result:= 'CLI_MRIM_CS_MESSAGE'; 38 | $1009 : Result:= 'SRV_MRIM_CS_MESSAGE_ACK'; 39 | $1011 : Result:= 'CLI_MRIM_CS_MESSAGE_RECV'; 40 | $1012 : Result:= 'SRV_MRIM_CS_MESSAGE_STATUS'; 41 | $100F : Result:= 'SRV_MRIM_CS_USER_STATUS'; 42 | $1013 : Result:= 'SRV_MRIM_CS_LOGOUT'; 43 | $1014 : Result:= 'SRV_MRIM_CS_CONNECTION_PARAMS'; 44 | $1015 : Result:= 'SRV_MRIM_CS_USER_INFO'; 45 | $1019 : Result:= 'CLI_MRIM_CS_ADD_CONTACT'; 46 | $101A : Result:= 'SRV_MRIM_CS_ADD_CONTACT_ACK'; 47 | $101B : Result:= 'CLI_MRIM_CS_MODIFY_CONTACT'; 48 | $101C : Result:= 'SRV_MRIM_CS_MODIFY_CONTACT_ACK'; 49 | $101D : Result:= 'SRV_MRIM_CS_OFFLINE_MESSAGE_ACK'; 50 | $101E : Result:= 'CLI_MRIM_CS_DELETE_OFFLINE_MESSAGE'; 51 | // $100F : Result:= 'CLI_MRIM_CS_USER_STATUS'; 52 | $1020 : Result:= 'CLI_MRIM_CS_AUTHORIZE'; 53 | $1021 : Result:= 'SRV_MRIM_CS_AUTHORIZE_ACK'; 54 | $1022 : Result:= 'CLI_MRIM_CS_CHANGE_STATUS'; 55 | $1024 : Result:= 'CLI_MRIM_CS_GET_MPOP_SESSION'; 56 | $1025 : Result:= 'SRV_MRIM_CS_MPOP_SESSION'; 57 | $1026 : Result:= 'CLI_MRIM_CS_FILE_TRANSFER'; 58 | $1027 : Result:= 'SRV_MRIM_CS_FILE_TRANSFER_ACK'; 59 | $1029 : Result:= 'CLI_MRIM_CS_WP_REQUEST'; 60 | $1028 : Result:= 'SRV_MRIM_CS_ANKETA_INFO'; 61 | $1033 : Result:= 'SRV_MRIM_CS_MAILBOX_STATUS'; 62 | $1037 : Result:= 'SRV_MRIM_CS_CONTACT_LIST2'; 63 | $1038 : Result:= 'CLI_MRIM_CS_LOGIN2'; 64 | $1039 : Result:= 'CLI_MRIM_CS_SMS'; 65 | $1040 : Result:= 'SRV_MRIM_CS_SMS_ACK'; 66 | else 67 | Result:= 'MRIM_UNKNOWN_' + IntToHex(UL, 8); 68 | end; 69 | end; 70 | 71 | procedure loggaMRAPkt(what:TwhatLog; data:AnsiString=''); 72 | var 73 | head,s:string; 74 | isPacket : Boolean; 75 | begin 76 | s := ''; 77 | isPacket := False; 78 | if Length(Data) > 10 then 79 | isPacket := cardinal(dword_LEat(@data[1])) = CS_MAGIC; 80 | if isPacket then 81 | if what in [WL_serverGot, WL_serverSent] then 82 | // if getFlapChannel(data) = SNAC_CHANNEL then 83 | s := '(' + IntToHex((getMRASnacService(data)), 2) + ') '; 84 | 85 | s:=s + LogWhatNames[what]; 86 | if data>'' then 87 | if what in [WL_CONNECTED, WL_DISCONNECTED, WL_connecting] then 88 | begin 89 | s:=s+' '+data; 90 | data:=''; 91 | end 92 | else 93 | s:=s+' size:'+intToStr(length(data),4); 94 | 95 | if isPacket then 96 | case what of 97 | WL_serverGot, WL_serverSent: 98 | if length(data) >= 16 then 99 | s:=s+' ref:'+intToHex(getMRASnacRef(data),8)+' '+GetPacketName(getMRASnacService(data)); 100 | end; 101 | 102 | head:=logtimestamp+s; 103 | logProtoPkt(what, head, data) 104 | end; // loggaPkt 105 | 106 | function findMRAViewInfo(c:TRnQcontact):TviewMRAInfoFrm; 107 | var 108 | i:integer; 109 | begin 110 | with childWindows do 111 | begin 112 | i:=0; 113 | while i < count do 114 | begin 115 | if Tobject(items[i]) is TviewMRAInfoFrm then 116 | begin 117 | result:=TviewMRAInfoFrm(items[i]); 118 | if result.contact.equals(c) then 119 | exit; 120 | end; 121 | inc(i); 122 | end; 123 | end; 124 | result:=NIL; 125 | end; // findViewInfo 126 | 127 | 128 | end. 129 | -------------------------------------------------------------------------------- /RnQ/MRA/viewMRAinfoDlg.dfm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/MRA/viewMRAinfoDlg.dfm -------------------------------------------------------------------------------- /RnQ/MRA/viewMRAinfoDlg.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/MRA/viewMRAinfoDlg.pas -------------------------------------------------------------------------------- /RnQ/MRA/wpMRADlg.dfm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/MRA/wpMRADlg.dfm -------------------------------------------------------------------------------- /RnQ/MenuEmoji.dfm: -------------------------------------------------------------------------------- 1 | object EmojiFrm: TEmojiFrm 2 | Left = 309 3 | Top = 213 4 | BiDiMode = bdLeftToRight 5 | BorderStyle = bsNone 6 | Caption = 'Stickers' 7 | ClientHeight = 311 8 | ClientWidth = 484 9 | Color = clBtnFace 10 | DoubleBuffered = True 11 | ParentFont = True 12 | FormStyle = fsStayOnTop 13 | KeyPreview = True 14 | ParentBiDiMode = False 15 | Position = poDefault 16 | OnCreate = FormCreate 17 | OnHide = FormHide 18 | OnKeyDown = FormKeyDown 19 | OnPaint = FormPaint 20 | OnShow = FormShow 21 | TextHeight = 30 22 | object exts: TPanel 23 | AlignWithMargins = True 24 | Left = 1 25 | Top = 1 26 | Width = 482 27 | Height = 42 28 | Margins.Left = 1 29 | Margins.Top = 1 30 | Margins.Right = 1 31 | Margins.Bottom = 0 32 | Align = alTop 33 | BevelOuter = bvNone 34 | Color = 14935011 35 | Ctl3D = True 36 | DoubleBuffered = True 37 | FullRepaint = False 38 | ParentBackground = False 39 | ParentCtl3D = False 40 | ParentDoubleBuffered = False 41 | TabOrder = 0 42 | end 43 | object UpdTmr: TTimer 44 | Enabled = False 45 | Interval = 40 46 | OnTimer = UpdTmrTimer 47 | Left = 432 48 | Top = 256 49 | end 50 | object actList: TActionList 51 | Left = 384 52 | Top = 256 53 | object NextExt: TAction 54 | SecondaryShortCuts.Strings = ( 55 | 'TAB') 56 | OnExecute = NextExtExecute 57 | end 58 | object PrevExt: TAction 59 | SecondaryShortCuts.Strings = ( 60 | 'Shift+TAB') 61 | OnExecute = PrevExtExecute 62 | end 63 | end 64 | end 65 | -------------------------------------------------------------------------------- /RnQ/NewAccount.dfm: -------------------------------------------------------------------------------- 1 | object NewAccFrm: TNewAccFrm 2 | Left = 0 3 | Top = 0 4 | ActiveControl = AccEdit 5 | BorderStyle = bsSizeToolWin 6 | Caption = 'New user' 7 | ClientHeight = 116 8 | ClientWidth = 284 9 | Color = clBtnFace 10 | Constraints.MinHeight = 142 11 | Constraints.MinWidth = 292 12 | Font.Charset = DEFAULT_CHARSET 13 | Font.Color = clWindowText 14 | Font.Height = -11 15 | Font.Name = 'Tahoma' 16 | Font.Style = [] 17 | OldCreateOrder = False 18 | OnCreate = FormCreate 19 | DesignSize = ( 20 | 284 21 | 116) 22 | PixelsPerInch = 96 23 | TextHeight = 13 24 | object L1: TLabel 25 | Left = 8 26 | Top = 19 27 | Width = 74 28 | Height = 13 29 | Alignment = taRightJustify 30 | AutoSize = False 31 | Caption = 'Type' 32 | end 33 | object Label1: TLabel 34 | Left = 8 35 | Top = 46 36 | Width = 74 37 | Height = 13 38 | Alignment = taRightJustify 39 | AutoSize = False 40 | Caption = 'UID' 41 | end 42 | object AccCBox: TComboBox 43 | Left = 88 44 | Top = 16 45 | Width = 145 46 | Height = 21 47 | Style = csDropDownList 48 | TabOrder = 0 49 | OnCloseUp = AccCBoxCloseUp 50 | end 51 | object AccEdit: TEdit 52 | Left = 88 53 | Top = 43 54 | Width = 145 55 | Height = 21 56 | TabOrder = 1 57 | end 58 | object OkBtn: TRnQButton 59 | Left = 113 60 | Top = 83 61 | Width = 75 62 | Height = 25 63 | Anchors = [akRight, akBottom] 64 | Caption = 'Ok' 65 | Default = True 66 | ImageName = 'ok' 67 | ModalResult = 1 68 | TabOrder = 2 69 | OnClick = OkBtnClick 70 | end 71 | object CnclBtn: TRnQButton 72 | Left = 201 73 | Top = 83 74 | Width = 75 75 | Height = 25 76 | Anchors = [akRight, akBottom] 77 | Cancel = True 78 | Caption = 'Cancel' 79 | ImageName = 'cancel' 80 | ModalResult = 2 81 | TabOrder = 3 82 | end 83 | end 84 | -------------------------------------------------------------------------------- /RnQ/NewAccount.pas: -------------------------------------------------------------------------------- 1 | { 2 | This file is part of R&Q. 3 | Under same license 4 | } 5 | unit NewAccount; 6 | 7 | {$I RnQConfig.inc} 8 | {$I NoRTTI.inc} 9 | 10 | interface 11 | 12 | uses 13 | Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, 14 | StdCtrls, RnQButtons, 15 | RnQprotocol; 16 | 17 | type 18 | TNewAccFrm = class(TForm) 19 | AccCBox: TComboBox; 20 | L1: TLabel; 21 | AccEdit: TEdit; 22 | Label1: TLabel; 23 | OkBtn: TRnQButton; 24 | CnclBtn: TRnQButton; 25 | procedure FormCreate(Sender: TObject); 26 | procedure AccCBoxCloseUp(Sender: TObject); 27 | procedure OkBtnClick(Sender: TObject); 28 | private 29 | { Private declarations } 30 | public 31 | { Public declarations } 32 | function getProto: TRnQProtoClass; 33 | end; 34 | 35 | //var 36 | // NewAccFrm: TNewAccFrm; 37 | 38 | implementation 39 | 40 | {$R *.dfm} 41 | 42 | uses 43 | Protocols_all, 44 | RDGlobal, RQUtil, RnQLangs, RnQDialogs; 45 | 46 | procedure TNewAccFrm.AccCBoxCloseUp(Sender: TObject); 47 | begin 48 | if AccEdit.Visible then 49 | ActiveControl := AccEdit; 50 | end; 51 | 52 | procedure TNewAccFrm.FormCreate(Sender: TObject); 53 | var 54 | // s: String; 55 | b: Byte; 56 | begin 57 | {$IFNDEF ICQ_ONLY} 58 | for var p in RnQProtos do 59 | for b in cUsedProtos do 60 | if p._getProtoID = b then 61 | AccCBox.AddItem(cProtosDesc[b], NIL); 62 | {$ELSE ICQ_ONLY} 63 | AccCBox.AddItem('ICQ', NIL); 64 | AccCBox.AddItem('AIM', NIL); 65 | {$ENDIF ICQ_ONLY} 66 | AccCBox.ItemIndex := 0; 67 | if AccCBox.Items.Count <=1 then 68 | AccCBox.Enabled := false; 69 | if AccCBox.Items.Count = 0 then 70 | OkBtn.Enabled := False; 71 | end; 72 | 73 | function TNewAccFrm.getProto: TRnQProtoClass; 74 | //type 75 | // ff = array [cUsedProtos] of byte; 76 | var 77 | i: Integer; 78 | begin 79 | {$IFNDEF ICQ_ONLY} 80 | i := AccCBox.ItemIndex; 81 | if i in [Byte(Low(cUsedProtos))..Byte(High(cUsedProtos))] then 82 | // Result := getProtoClass(Byte(cUsedProtos[i])) 83 | for var p in RnQProtos do 84 | if p._getProtoID = cUsedProtos[i] then 85 | Exit(p); 86 | 87 | // if i in [Byte(Low(RnQProtos))..Byte(High(RnQProtos))] then 88 | // Result := RnQProtos[i] 89 | // else 90 | {$ELSE ICQ_ONLY} 91 | {$ENDIF ICQ_ONLY} 92 | // Result := TicqSession; 93 | {$IFDEF PROTOCOL_ICQ} 94 | Result := getProtoClass(ICQProtoID) 95 | {$ELSE ~PROTOCOL_ICQ} 96 | Result := NIL; 97 | // Result := getProtoClass(Byte(cUsedProtos[Low(cUsedProtos)])) 98 | {$ENDIF PROTOCOL_ICQ} 99 | end; 100 | 101 | procedure TNewAccFrm.OkBtnClick(Sender: TObject); 102 | var 103 | pr: TRnQProtoClass; 104 | begin 105 | pr := getProto; 106 | if Assigned(pr) and pr._isValidUid1(AccEdit.Text) then 107 | ModalResult := mrOk 108 | else 109 | begin 110 | ModalResult := mrNone; 111 | msgDlg(getTranslation('Not valid user identifier - %s', [AccEdit.Text]), False, mtError); 112 | end; 113 | end; 114 | 115 | end. 116 | -------------------------------------------------------------------------------- /RnQ/Prefs/autoaway_fr.pas: -------------------------------------------------------------------------------- 1 | { 2 | This file is part of R&Q. 3 | Under same license 4 | } 5 | unit autoaway_fr; 6 | {$I RnQConfig.inc} 7 | {$I NoRTTI.inc} 8 | 9 | interface 10 | 11 | uses 12 | Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, 13 | StdCtrls, RnQSpin, RDGlobal, 14 | RnQPrefsInt, RnQPrefsTypes, 15 | ExtCtrls, ComCtrls; 16 | 17 | type 18 | TautoawayFr = class(TPrefFrame) 19 | plBg: TPanel; 20 | Label26: TLabel; 21 | Label28: TLabel; 22 | Label1: TLabel; 23 | Label2: TLabel; 24 | setawayChk: TCheckBox; 25 | awaySpin: TRnQSpinEdit; // autoaway-away-time 26 | naSpin: TRnQSpinEdit; 27 | setnaChk: TCheckBox; // autoaway-na 28 | exitawayChk: TCheckBox; 29 | automsgBox: TMemo; 30 | setnaSSChk: TCheckBox; 31 | setNAVolChk: TCheckBox; 32 | naVolSl: TTrackBar; 33 | bossnaChk: TCheckBox; 34 | procedure UpdVis(Sender: TObject); 35 | private 36 | { Private declarations } 37 | public 38 | // procedure initProps; 39 | procedure applyPage; Override; final; 40 | procedure resetPage; Override; final; 41 | procedure updateVisPage; Override; final; 42 | { Public declarations } 43 | end; 44 | 45 | implementation 46 | 47 | {$R *.dfm} 48 | uses 49 | RnQConst, globalLib; 50 | 51 | procedure TautoawayFr.applyPage; 52 | begin 53 | autoaway.autoexit := exitawayChk.checked; 54 | autoaway.away := setawayChk.checked; 55 | autoaway.na := setnaChk.checked; 56 | autoaway.ss := setnaSSChk.checked; 57 | autoaway.boss := bossnaChk.Checked; 58 | autoaway.awayTime := round(awaySpin.Value*(10*60)); 59 | autoaway.naTime := round(naSpin.Value*(10*60)); 60 | autoaway.msg := automsgBox.text; 61 | autoaway.setVol := setNAVolChk.Checked; 62 | autoaway.vol := naVolSl.Position; 63 | end; 64 | 65 | procedure TautoawayFr.resetPage; 66 | begin 67 | automsgBox.Width:= plBg.Width - GAP_SIZE - GAP_SIZE; 68 | automsgBox.left:= GAP_SIZE;; 69 | 70 | exitawayChk.checked:= autoaway.autoexit; 71 | setawayChk.checked := autoaway.away; 72 | setnaChk.checked := autoaway.na; 73 | setnaSSChk.checked := autoaway.ss; 74 | bossnaChk.Checked := autoaway.boss; 75 | awaySpin.Value := autoaway.awayTime div (10*60); 76 | naSpin.Value := autoaway.naTime div (10*60); 77 | automsgBox.text := autoaway.msg; 78 | setNAVolChk.Checked:= autoaway.setVol; 79 | naVolSl.Position := autoaway.vol; 80 | end; 81 | 82 | procedure TautoawayFr.UpdVis(Sender: TObject); 83 | begin updateVisPage end; 84 | 85 | procedure TautoawayFr.updateVisPage; 86 | begin 87 | awaySpin.enabled := setawayChk.checked; 88 | naSpin.enabled := setnaChk.checked; 89 | end; 90 | 91 | end. 92 | -------------------------------------------------------------------------------- /RnQ/Prefs/design_fr.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/Prefs/design_fr.pas -------------------------------------------------------------------------------- /RnQ/Prefs/ignore_fr.dfm: -------------------------------------------------------------------------------- 1 | object ignoreFr: TignoreFr 2 | Left = 0 3 | Top = 0 4 | ClientHeight = 376 5 | ClientWidth = 420 6 | Color = clBtnFace 7 | Font.Charset = DEFAULT_CHARSET 8 | Font.Color = clWindowText 9 | Font.Height = -11 10 | Font.Name = 'Tahoma' 11 | Font.Style = [] 12 | OldCreateOrder = True 13 | DesignSize = ( 14 | 420 15 | 376) 16 | PixelsPerInch = 96 17 | TextHeight = 13 18 | object ignoreChk: TCheckBox 19 | Left = 6 20 | Top = 6 21 | Width = 97 22 | Height = 17 23 | Caption = 'Enabled' 24 | TabOrder = 0 25 | end 26 | object ignoreBox: TListBox 27 | Left = 6 28 | Top = 28 29 | Width = 405 30 | Height = 229 31 | Anchors = [akLeft, akTop, akRight, akBottom] 32 | Columns = 2 33 | ItemHeight = 13 34 | MultiSelect = True 35 | TabOrder = 1 36 | OnContextPopup = ignoreBoxContextPopup 37 | OnDragDrop = ignoreBoxDragDrop 38 | OnDragOver = ignoreBoxDragOver 39 | end 40 | object addBtn: TRnQButton 41 | Left = 8 42 | Top = 336 43 | Width = 117 44 | Height = 25 45 | Anchors = [akLeft, akBottom] 46 | Caption = 'Add' 47 | TabOrder = 2 48 | OnClick = addBtnClick 49 | ImageName = 'add.contact' 50 | end 51 | object removeBtn: TRnQButton 52 | Left = 152 53 | Top = 336 54 | Width = 121 55 | Height = 25 56 | Anchors = [akLeft, akBottom] 57 | Caption = 'Remove' 58 | TabOrder = 3 59 | OnClick = removeBtnClick 60 | ImageName = 'delete' 61 | end 62 | object PopupMenu: TPopupMenu 63 | Left = 280 64 | Top = 176 65 | object menuviewinfo: TMenuItem 66 | Caption = 'View info' 67 | OnClick = menuviewinfoClick 68 | end 69 | end 70 | end 71 | -------------------------------------------------------------------------------- /RnQ/Prefs/ignore_fr.pas: -------------------------------------------------------------------------------- 1 | unit ignore_fr; 2 | 3 | interface 4 | {$I Compilers.inc} 5 | {$I RnQConfig.inc} 6 | {$I NoRTTI.inc} 7 | 8 | uses 9 | Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, 10 | StdCtrls, Menus, RnQButtons, RnQDialogs, GlobalLib; 11 | 12 | type 13 | TignoreFr = class(TPrefFrame) 14 | ignoreChk: TCheckBox; 15 | ignoreBox: TListBox; 16 | PopupMenu: TPopupMenu; 17 | menuviewinfo: TMenuItem; 18 | addBtn: TRnQButton; 19 | removeBtn: TRnQButton; 20 | procedure ignoreBoxDragDrop(Sender, Source: TObject; X, Y: Integer); 21 | procedure ignoreBoxDragOver(Sender, Source: TObject; X, Y: Integer; 22 | State: TDragState; var Accept: Boolean); 23 | procedure removeBtnClick(Sender: TObject); 24 | procedure addBtnClick(Sender: TObject); 25 | procedure menuviewinfoClick(Sender: TObject); 26 | procedure ignoreBoxContextPopup(Sender: TObject; MousePos: TPoint; 27 | var Handled: Boolean); 28 | private 29 | currentContact : Tcontact; 30 | { Private declarations } 31 | public 32 | procedure applyPage; Override; 33 | procedure resetPage; Override; 34 | { Public declarations } 35 | end; 36 | 37 | implementation 38 | 39 | uses 40 | RQGlobal, RQThemes, RnQFileUtil, 41 | icqv9, 42 | utilLib, mainDlg, RQUtil, RnQLangs; 43 | 44 | {$R *.dfm} 45 | 46 | procedure TignoreFr.ignoreBoxDragDrop(Sender, Source: TObject; X,Y: Integer); 47 | begin addToIgnoreList(clickedContact) end; 48 | 49 | procedure TignoreFr.ignoreBoxDragOver(Sender, Source: TObject; X,Y: Integer; State: TDragState; var Accept: Boolean); 50 | begin accept:=source=RnQmain.roaster end; 51 | 52 | procedure TignoreFr.removeBtnClick(Sender: TObject); 53 | var 54 | i:integer; 55 | begin 56 | for i:=ignoreBox.count-1 downto 0 do 57 | if ignoreBox.selected[i] then 58 | ignoreList.remove(ignoreBox.items.objects[i]); 59 | ignoreBox.deleteSelected; 60 | saveLists; 61 | end; 62 | 63 | procedure TignoreFr.addBtnClick(Sender: TObject); 64 | begin 65 | msgDlg(getTranslation('for now you can only drag&drop your contacts from the contact-list, sorry'),mtInformation); 66 | end; 67 | 68 | procedure TignoreFr.menuviewinfoClick(Sender: TObject); 69 | begin 70 | viewInfoAbout(currentContact) 71 | end; 72 | 73 | procedure TignoreFr.ignoreBoxContextPopup(Sender: TObject; 74 | MousePos: TPoint; var Handled: Boolean); 75 | var 76 | i : Integer; 77 | begin 78 | i := ignoreBox.ItemAtPos(MousePos, True); 79 | if i >=0 then 80 | currentContact := Tcontact(ignoreBox.items.objects[i]); 81 | PopupMenu.Popup(ignoreBox.ClientToScreen(MousePos).X, ignoreBox.ClientToScreen(MousePos).Y) 82 | end; 83 | 84 | procedure TignoreFr.applyPage; 85 | var 86 | i : Integer; 87 | begin 88 | enableIgnorelist:=ignoreChk.checked; 89 | Ignorelist.clear; 90 | with ignoreBox do 91 | for i:=0 to count-1 do 92 | Ignorelist.add(items.objects[i]); 93 | if not saveFile(userPath+ignoreFileName+'.txt', ignorelist.toString, True) then 94 | msgDlg(getTranslation('Error saving ignore list'),mtError); 95 | end; 96 | 97 | procedure TignoreFr.resetPage; 98 | var 99 | i : Integer; 100 | begin 101 | addBtn.top:= clientHeight - GAP_SIZE - addBtn.Height; 102 | addBtn.left:= GAP_SIZE; 103 | 104 | removeBtn.top:= addBtn.top; 105 | removeBtn.left:= addBtn.left + addBtn.Width +GAP_SIZE; 106 | 107 | ignoreBox.width:= clientWidth - GAP_SIZE2; 108 | ignoreBox.height:= clientHeight - GAP_SIZE2 - ignoreBox.top - addBtn.Height; 109 | 110 | ignoreChk.checked:=enableIgnorelist; 111 | ignoreBox.clear; 112 | with ignoreList do 113 | for i:=0 to count-1 do 114 | ignoreBox.addItem(getAt(i).displayed,getAt(i)); 115 | end; 116 | 117 | INITIALIZATION 118 | 119 | AddPrefPage(0, TignoreFr, 'Ignore list'); 120 | end. 121 | -------------------------------------------------------------------------------- /RnQ/Prefs/plugins_fr.dfm: -------------------------------------------------------------------------------- 1 | object pluginsFr: TpluginsFr 2 | Left = 0 3 | Top = 0 4 | VertScrollBar.Tracking = True 5 | ClientHeight = 367 6 | ClientWidth = 414 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | TextHeight = 13 14 | object Label1: TLabel 15 | Left = 6 16 | Top = 6 17 | Width = 66 18 | Height = 13 19 | Caption = 'Found plugins' 20 | end 21 | object reloadBtn: TRnQButton 22 | Left = 8 23 | Top = 288 24 | Width = 121 25 | Height = 25 26 | Caption = '&Reload' 27 | ImageName = 'refresh' 28 | TabOrder = 0 29 | OnClick = reloadBtnClick 30 | end 31 | object prefBtn: TRnQButton 32 | Left = 144 33 | Top = 288 34 | Width = 113 35 | Height = 25 36 | Caption = '&Preferences' 37 | ImageName = 'preferences' 38 | TabOrder = 1 39 | OnClick = prefBtnClick 40 | end 41 | object PluginsList: TVirtualDrawTree 42 | Left = 8 43 | Top = 25 44 | Width = 385 45 | Height = 255 46 | DragType = dtVCL 47 | Header.AutoSizeIndex = 0 48 | Header.DefaultHeight = 17 49 | Header.Height = 17 50 | Header.Options = [hoColumnResize, hoDrag, hoVisible] 51 | TabOrder = 2 52 | TreeOptions.MiscOptions = [toAcceptOLEDrop, toCheckSupport, toFullRepaintOnResize, toInitOnSave, toToggleOnDblClick, toWheelPanning] 53 | TreeOptions.PaintOptions = [toShowButtons, toShowDropmark, toShowTreeLines, toThemeAware, toUseBlendedImages] 54 | TreeOptions.SelectionOptions = [toFullRowSelect] 55 | OnDrawNode = PluginsListDrawNode 56 | OnFreeNode = PluginsListFreeNode 57 | Touch.InteractiveGestures = [igPan, igPressAndTap] 58 | Touch.InteractiveGestureOptions = [igoPanSingleFingerHorizontal, igoPanSingleFingerVertical, igoPanInertia, igoPanGutter, igoParentPassthrough] 59 | Columns = < 60 | item 61 | Position = 0 62 | Text = 'Name' 63 | Width = 220 64 | end 65 | item 66 | Position = 1 67 | Text = 'Filename' 68 | Width = 150 69 | end> 70 | end 71 | end 72 | -------------------------------------------------------------------------------- /RnQ/Prefs/security_fr.dfm: -------------------------------------------------------------------------------- 1 | object securityFr: TsecurityFr 2 | Left = 0 3 | Top = 0 4 | ClientHeight = 340 5 | ClientWidth = 428 6 | Color = clBtnFace 7 | Font.Charset = DEFAULT_CHARSET 8 | Font.Color = clWindowText 9 | Font.Height = -11 10 | Font.Name = 'Tahoma' 11 | Font.Style = [] 12 | OldCreateOrder = True 13 | PixelsPerInch = 96 14 | TextHeight = 13 15 | object cryptGroup: TGroupBox 16 | Left = 8 17 | Top = 194 18 | Width = 321 19 | Height = 82 20 | TabOrder = 6 21 | object histcryptSavePwdChk: TCheckBox 22 | Left = 23 23 | Top = 62 24 | Width = 141 25 | Height = 17 26 | HelpKeyword = 'history-crypt-save-password' 27 | Caption = 'Remember password' 28 | TabOrder = 0 29 | end 30 | object histcryptChangeBtn: TRnQButton 31 | Left = 23 32 | Top = 23 33 | Width = 141 34 | Height = 25 35 | Caption = 'Change password' 36 | TabOrder = 1 37 | OnClick = histcryptChangeBtnClick 38 | end 39 | end 40 | object histcryptEnableChk: TCheckBox 41 | Left = 8 42 | Top = 194 43 | Width = 164 44 | Height = 17 45 | HelpKeyword = 'history-crypt-enabled' 46 | Caption = 'History encryption' 47 | TabOrder = 5 48 | OnClick = histcryptEnableChkClick 49 | end 50 | object dontsavepwdChk: TCheckBox 51 | Left = 8 52 | Top = 31 53 | Width = 321 54 | Height = 17 55 | Hint = 56 | 'If you don'#39't save your password, only who knows the password wil' + 57 | 'l be able to connect.\nPassword is asked only once, so be sure t' + 58 | 'hat you lock or quit R&Q when you'#39're off the screen.' 59 | HelpKeyword = 'dont-save-password' 60 | Caption = 'Dont'#39' save password' 61 | ParentShowHint = False 62 | ShowHint = True 63 | TabOrder = 1 64 | OnClick = dontsavepwdChkClick 65 | end 66 | object writeHistoryChk: TCheckBox 67 | Left = 8 68 | Top = 8 69 | Width = 312 70 | Height = 17 71 | Caption = 'Save history on disk' 72 | TabOrder = 0 73 | end 74 | object DelHistChk: TCheckBox 75 | Left = 8 76 | Top = 171 77 | Width = 312 78 | Height = 17 79 | Caption = 'Delete contacts with history' 80 | Enabled = False 81 | TabOrder = 4 82 | Visible = False 83 | end 84 | object MakeBakChk: TCheckBox 85 | Left = 8 86 | Top = 125 87 | Width = 312 88 | Height = 17 89 | Caption = 'Make backup for files before write' 90 | TabOrder = 2 91 | end 92 | object AddTempVisMsgChk: TCheckBox 93 | Left = 8 94 | Top = 148 95 | Width = 312 96 | Height = 17 97 | Caption = 'Add to temporary visible before send message' 98 | TabOrder = 3 99 | end 100 | object CplPwdChk: TCheckBox 101 | Left = 16 102 | Top = 54 103 | Width = 321 104 | Height = 17 105 | Hint = 106 | 'If you don'#39't save your password, only who knows the password wil' + 107 | 'l be able to connect.\nPassword is asked all time you trying to ' + 108 | 'connect.' 109 | HelpKeyword = 'clear-password-on-disconnect' 110 | Caption = 'Clear password after disconnect' 111 | ParentShowHint = False 112 | ShowHint = True 113 | TabOrder = 7 114 | end 115 | object AskPassOnBossChk: TCheckBox 116 | Left = 8 117 | Top = 77 118 | Width = 321 119 | Height = 17 120 | HelpKeyword = 'ask-password-after-bossmode' 121 | Caption = 'Ask password before exit from Boss-mode' 122 | TabOrder = 8 123 | end 124 | object SetAccPassBtn: TRnQButton 125 | Left = 8 126 | Top = 282 127 | Width = 209 128 | Height = 25 129 | Caption = 'Set password for account' 130 | TabOrder = 9 131 | OnClick = SetAccPassBtnClick 132 | end 133 | object HistCryptBtn: TRnQButton 134 | Left = 8 135 | Top = 313 136 | Width = 209 137 | Height = 25 138 | Caption = 'Set password for history' 139 | TabOrder = 10 140 | OnClick = HistCryptBtnClick 141 | end 142 | end 143 | -------------------------------------------------------------------------------- /RnQ/Prefs/themes_fr.dfm: -------------------------------------------------------------------------------- 1 | object themesFr: TthemesFr 2 | Left = 0 3 | Top = 0 4 | ClientHeight = 376 5 | ClientWidth = 420 6 | Color = clBtnFace 7 | Font.Charset = DEFAULT_CHARSET 8 | Font.Color = clWindowText 9 | Font.Height = -11 10 | Font.Name = 'Tahoma' 11 | Font.Style = [] 12 | OldCreateOrder = True 13 | DesignSize = ( 14 | 420 15 | 376) 16 | PixelsPerInch = 96 17 | TextHeight = 13 18 | object logoImg: TImage 19 | Left = 16 20 | Top = 171 21 | Width = 374 22 | Height = 198 23 | Anchors = [akLeft, akTop, akRight, akBottom] 24 | Transparent = True 25 | end 26 | object refreshBtn: TRnQSpeedButton 27 | Left = 275 28 | Top = 14 29 | Width = 115 30 | Height = 26 31 | Anchors = [akTop, akRight] 32 | Caption = 'Refresh' 33 | ImageName = 'refresh' 34 | OnClick = refreshBtnClick 35 | end 36 | object themeBox: TComboBox 37 | Left = 16 38 | Top = 17 39 | Width = 247 40 | Height = 21 41 | Style = csDropDownList 42 | Anchors = [akLeft, akTop, akRight] 43 | ItemHeight = 13 44 | TabOrder = 0 45 | OnSelect = themeBoxSelect 46 | end 47 | object descBox: TMemo 48 | Left = 16 49 | Top = 52 50 | Width = 376 51 | Height = 105 52 | Anchors = [akLeft, akTop, akRight] 53 | ReadOnly = True 54 | TabOrder = 1 55 | end 56 | end 57 | -------------------------------------------------------------------------------- /RnQ/Prefs/themes_fr.pas: -------------------------------------------------------------------------------- 1 | unit themes_fr; 2 | 3 | interface 4 | {$I Compilers.inc} 5 | {$I RnQConfig.inc} 6 | {$I NoRTTI.inc} 7 | 8 | uses 9 | Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, 10 | StdCtrls, ExtCtrls, utilLib, globalLib, RQThemes, RQGlobal, RnQButtons; 11 | 12 | type 13 | TthemesFr = class(TPrefFrame) 14 | themeBox: TComboBox; 15 | descBox: TMemo; 16 | logoImg: TImage; 17 | refreshBtn: TRnQSpeedButton; 18 | procedure refreshBtnClick(Sender: TObject); 19 | procedure themeBoxSelect(Sender: TObject); 20 | public 21 | // function current:Pthemeinfo; 22 | function current:ToThemeinfo; 23 | procedure select(fn:string); 24 | procedure initPage; Override; 25 | procedure applyPage; Override; 26 | procedure resetPage; Override; 27 | procedure updateVisPage; Override; 28 | end; 29 | 30 | implementation 31 | uses 32 | RQUtil; 33 | 34 | {$R *.dfm} 35 | 36 | function TthemesFr.current:ToThemeinfo; 37 | begin 38 | with themeBox do 39 | if (Items.Count = 0) or (itemIndex<0) or (itemIndex > Items.Count) then 40 | result:=NIL 41 | else 42 | result:=ToThemeinfo(Items.Objects[itemIndex]) 43 | end; 44 | 45 | procedure TthemesFr.select(fn:string); 46 | var 47 | i:integer; 48 | begin 49 | if Length(themelist2)>0 then 50 | for i:=0 to length(themelist2)-1 do 51 | if themelist2[i].fn=fn then 52 | begin 53 | themeBox.itemindex:=i; 54 | exit; 55 | end; 56 | end; 57 | 58 | procedure TthemesFr.refreshBtnClick(Sender: TObject); 59 | var 60 | i,idx:integer; 61 | old:string; 62 | begin 63 | if current=NIL then 64 | old:=theme.fn 65 | else 66 | old:=current.fn; 67 | refreshThemelist; 68 | themeBox.Clear; 69 | for i:=0 to length(themelist2)-1 do 70 | begin 71 | idx:=themeBox.Items.addObject(themelist2[i].title, themelist2[i]); 72 | if themelist2[i].fn = old then 73 | themeBox.ItemIndex:=idx; 74 | end; 75 | if themeBox.ItemIndex < 0 then 76 | themeBox.ItemIndex:=0; 77 | themeBoxSelect(NIL); 78 | end; 79 | 80 | procedure TthemesFr.themeBoxSelect(Sender: TObject); 81 | begin 82 | if current=NIL then exit; 83 | descBox.Text:=current.desc; 84 | if (current.logo = '') or (not FileExists(myPath+themesPath+current.logo)) then 85 | logoImg.Height:=0 86 | else 87 | begin 88 | loadPic(myPath+themesPath+current.logo, logoImg); 89 | logoImg.Height := logoImg.Picture.Height; 90 | end; 91 | end; 92 | 93 | procedure TthemesFr.applyPage; 94 | begin 95 | if theme.fn<>current.fn then 96 | begin 97 | theme.fn:=current.fn; 98 | reloadCurrentTheme; 99 | end; 100 | end; 101 | 102 | procedure TthemesFr.resetPage; 103 | begin 104 | select(theme.fn); 105 | end; 106 | 107 | procedure TthemesFr.updateVisPage; 108 | begin 109 | end; 110 | 111 | procedure TthemesFr.initPage; 112 | begin 113 | // theme.getPic(PIC_REFRESH, refreshBtn.glyph); 114 | refreshBtnClick(NIL); 115 | end; 116 | 117 | 118 | INITIALIZATION 119 | 120 | AddPrefPage(125, TthemesFr, 'Themes'); 121 | end. 122 | 123 | -------------------------------------------------------------------------------- /RnQ/Prefs/tips_fr.pas: -------------------------------------------------------------------------------- 1 | { 2 | This file is part of R&Q. 3 | Under same license 4 | } 5 | unit tips_fr; 6 | {$I RnQConfig.inc} 7 | {$I NoRTTI.inc} 8 | 9 | interface 10 | 11 | uses 12 | Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, 13 | StdCtrls, ComCtrls, ExtCtrls, 14 | RnQPrefsInt, RnQPrefsTypes, 15 | RnQSpin, RnQButtons; 16 | 17 | type 18 | TTipsFr = class(TPrefFrame) 19 | Label4: TLabel; 20 | Label7: TLabel; 21 | TipsMaxCntSpin: TRnQSpinEdit; 22 | TipsSpaceSpn: TRnQSpinEdit; 23 | TranspTrayGroup: TGroupBox; 24 | Label3: TLabel; 25 | Label5: TLabel; 26 | Label6: TLabel; 27 | traytranspChk: TCheckBox; 28 | transpTray: TTrackBar; //transparency-vtray 29 | PosGrp: TRadioGroup; //'show-tips-align' 30 | IndGrp: TGroupBox; 31 | HorIndSpn: TRnQSpinEdit; 32 | VerIndSpn: TRnQSpinEdit; 33 | Label1: TLabel; 34 | Label2: TLabel; 35 | RnQButton1: TRnQButton; 36 | DisLbl: TLabel; 37 | procedure RnQButton1Click(Sender: TObject); 38 | procedure TipsMaxCntSpinChange(Sender: TObject); 39 | private 40 | { Private declarations } 41 | public 42 | procedure initPage(prefs: IRnQPref); Override; final; 43 | procedure applyPage; Override; final; 44 | procedure resetPage; Override; final; 45 | { Public declarations } 46 | end; 47 | 48 | implementation 49 | uses 50 | RnQTips, RDGlobal, RnQLangs, RDTipDlg, 51 | RnQConst, events, globalLib; 52 | {$R *.dfm} 53 | 54 | procedure TTipsFr.initPage; 55 | begin 56 | Inherited; 57 | TranspTrayGroup.left := GAP_SIZE; 58 | TranspTrayGroup.width := Self.Clientwidth - GAP_SIZE2; 59 | 60 | PosGrp.left := GAP_SIZE; 61 | PosGrp.width := TranspTrayGroup.width div 2 - GAP_SIZE; 62 | IndGrp.Width := TranspTrayGroup.width - PosGrp.width - GAP_SIZE ; 63 | end; 64 | 65 | procedure TTipsFr.applyPage; 66 | begin 67 | transparency.forTray := traytranspChk.checked; 68 | transparency.tray := transpTray.position; 69 | 70 | TRDTipFrm.TipsMaxCnt := TipsMaxCntSpin.AsInteger; 71 | TRDTipFrm.TipsBtwSpace := TipsSpaceSpn.AsInteger; 72 | TRDTipFrm.TipsAlign := TtipsAlign( byte(PosGrp.ItemIndex) ); 73 | TRDTipFrm.TipVerIndent := VerIndSpn.AsInteger; 74 | TRDTipFrm.TipHorIndent := HorIndSpn.AsInteger; 75 | end; 76 | 77 | procedure TTipsFr.resetPage; 78 | begin 79 | traytranspChk.checked := transparency.forTray; 80 | transpTray.position := transparency.tray; 81 | 82 | TipsMaxCntSpin.AsInteger := TRDTipFrm.TipsMaxCnt; 83 | TipsSpaceSpn.AsInteger := TRDTipFrm.TipsBtwSpace; 84 | 85 | VerIndSpn.AsInteger := TRDTipFrm.TipVerIndent; 86 | HorIndSpn.AsInteger := TRDTipFrm.TipHorIndent; 87 | 88 | PosGrp.ItemIndex := byte( TRDTipFrm.TipsAlign ); 89 | end; 90 | 91 | 92 | procedure TTipsFr.RnQButton1Click(Sender: TObject); 93 | //const 94 | // str = AnsiString('http://hh.ru/applicant/vacancySearch.do?keyword1=Oracle&allFields=true&areaId=1'+ 95 | // '&professionalAreaId=1&specializationId=50&specializationId=113&specializationId=221&'+ 96 | // 'isFromAgency=10&isWithoutSalary=10&compensationCurrencyId=1&desireableCompensation=70000&'+ 97 | // 'searchPeriod=30&orderBy=2&itemsOnPage=20&page=5&actionSearch=actionSearch&showRss=1'); 98 | var 99 | e: Thevent; 100 | i: Integer; 101 | s: AnsiString; 102 | begin 103 | i := EK_msg; 104 | s := ''; 105 | if i = EK_AUTOMSG then 106 | s := AnsiChar(#00); 107 | // e := Thevent.new(i, icq.myInfo, now, s+'Testing', 0); 108 | e := Thevent.new(i, Account.AccProto.getMyInfo, now, s 109 | , getTranslation('Testing') 110 | +CRLF + 'Second row ------- :)', 0); 111 | // TipAdd(e); 112 | TipAdd3(e); 113 | // tipfrm.show(e); 114 | e.Free; 115 | end; 116 | 117 | procedure TTipsFr.TipsMaxCntSpinChange(Sender: TObject); 118 | begin 119 | DisLbl.Visible := TipsMaxCntSpin.Value = 0; 120 | end; 121 | 122 | end. 123 | -------------------------------------------------------------------------------- /RnQ/Prefs/update_fr.dfm: -------------------------------------------------------------------------------- 1 | object updateFr: TupdateFr 2 | Left = 0 3 | Top = 0 4 | ClientHeight = 376 5 | ClientWidth = 420 6 | Color = clBtnFace 7 | Font.Charset = DEFAULT_CHARSET 8 | Font.Color = clWindowText 9 | Font.Height = -11 10 | Font.Name = 'Tahoma' 11 | Font.Style = [] 12 | OldCreateOrder = True 13 | DesignSize = ( 14 | 420 15 | 376) 16 | PixelsPerInch = 96 17 | TextHeight = 13 18 | object updateGrp: TGroupBox 19 | Left = 6 20 | Top = 10 21 | Width = 378 22 | Height = 97 23 | Anchors = [akLeft, akTop, akRight] 24 | Caption = 'updateGrp' 25 | TabOrder = 1 26 | object Label1: TLabel 27 | Left = 182 28 | Top = 26 29 | Width = 27 30 | Height = 13 31 | Caption = 'hours' 32 | end 33 | object Label2: TLabel 34 | Left = 59 35 | Top = 27 36 | Width = 60 37 | Height = 13 38 | Alignment = taRightJustify 39 | Caption = 'Check every' 40 | end 41 | object checkSpin: TRnQSpinEdit 42 | Left = 124 43 | Top = 23 44 | Width = 53 45 | Height = 22 46 | HelpKeyword = 'auto-check-every' 47 | Decimal = 0 48 | MaxLength = 4 49 | MaxValue = 9999.000000000000000000 50 | MinValue = 1.000000000000000000 51 | TabOrder = 0 52 | Value = 1.000000000000000000 53 | AsInteger = 1 54 | end 55 | object LoginUpdChk: TCheckBox 56 | Left = 14 57 | Top = 51 58 | Width = 307 59 | Height = 17 60 | Caption = 'Check every login' 61 | Checked = True 62 | Enabled = False 63 | State = cbChecked 64 | TabOrder = 1 65 | Visible = False 66 | end 67 | end 68 | object updateChk: TCheckBox 69 | Left = 6 70 | Top = 6 71 | Width = 169 72 | Height = 17 73 | HelpKeyword = 'auto-check-update' 74 | Caption = 'Auto-check for new versions' 75 | TabOrder = 0 76 | OnClick = updateChkClick 77 | end 78 | object betaChk: TCheckBox 79 | Left = 6 80 | Top = 113 81 | Width = 355 82 | Height = 17 83 | HelpKeyword = 'check-betas' 84 | Caption = 'Check updates for beta-testers' 85 | TabOrder = 2 86 | end 87 | end 88 | -------------------------------------------------------------------------------- /RnQ/Prefs/update_fr.pas: -------------------------------------------------------------------------------- 1 | { 2 | This file is part of R&Q. 3 | Under same license 4 | } 5 | unit update_fr; 6 | {$I RnQConfig.inc} 7 | {$I NoRTTI.inc} 8 | 9 | interface 10 | 11 | uses 12 | Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, 13 | StdCtrls, RnQSpin, 14 | RnQPrefsInt, RnQPrefsTypes, 15 | RDGlobal; 16 | 17 | type 18 | TupdateFr = class(TPrefFrame) 19 | updateChk: TCheckBox; 20 | updateGrp: TGroupBox; 21 | checkSpin: TRnQSpinEdit; 22 | Label1: TLabel; 23 | Label2: TLabel; 24 | betaChk: TCheckBox; 25 | LoginUpdChk: TCheckBox; 26 | procedure updateChkClick(Sender: TObject); 27 | private 28 | { Private declarations } 29 | public 30 | procedure applyPage; Override; 31 | procedure resetPage; Override; 32 | procedure updateVisPage; Override; 33 | { Public declarations } 34 | end; 35 | 36 | implementation 37 | 38 | uses 39 | RnQConst, globalLib; 40 | 41 | {$R *.dfm} 42 | 43 | procedure TupdateFr.updateChkClick(Sender: TObject); 44 | begin 45 | updateVisPage 46 | end; 47 | 48 | procedure TupdateFr.applyPage; 49 | begin 50 | checkupdate.enabled := updateChk.checked; 51 | checkupdate.betas := betaChk.checked; 52 | checkupdate.every := round(checkSpin.value); 53 | end; 54 | 55 | procedure TupdateFr.resetPage; 56 | begin 57 | updateGrp.width:= ClientWidth - GAP_SIZE2; 58 | 59 | betaChk.checked := checkupdate.betas; 60 | updateChk.checked := checkupdate.enabled or PREVIEWversion; 61 | checkSpin.value := checkupdate.every; 62 | end; 63 | 64 | procedure TupdateFr.updateVisPage; 65 | begin 66 | updateGrp.visible := updateChk.checked; 67 | LoginUpdChk.Visible := PREVIEWversion; 68 | updateChk.Enabled := not PREVIEWversion; 69 | end; 70 | 71 | end. 72 | -------------------------------------------------------------------------------- /RnQ/Protocols_all.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/Protocols_all.pas -------------------------------------------------------------------------------- /RnQ/Res/MAINICON_Lite.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/Res/MAINICON_Lite.ico -------------------------------------------------------------------------------- /RnQ/Res/RnQLite.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/Res/RnQLite.res -------------------------------------------------------------------------------- /RnQ/Res/RnQ_Icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/Res/RnQ_Icon.ico -------------------------------------------------------------------------------- /RnQ/Res/RnQ_Icon1.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/Res/RnQ_Icon1.ico -------------------------------------------------------------------------------- /RnQ/Res/RnQ_Icon2.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/Res/RnQ_Icon2.ico -------------------------------------------------------------------------------- /RnQ/Res/WinXP2.rc: -------------------------------------------------------------------------------- 1 | 1 24 "rnq.manifest1" 2 | //101 ICON "RnQ.ico" 3 | //MAIN_ICON ICON "MAINICON_Lite.ico" 4 | -------------------------------------------------------------------------------- /RnQ/Res/rnq.manifest.hidpi: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | RnQ IM 9 | 10 | 11 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 30 | True/PM 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /RnQ/Res/rnq.manifest1: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | RnQ IM 9 | 10 | 11 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 30 | True/PM 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /RnQ/Res/rnq.manifest1_: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | RnQ IM 9 | 10 | 11 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /RnQ/RnQBuiltTime.inc: -------------------------------------------------------------------------------- 1 | { 3/27/2024 00:02:57 } 2 | BuiltTime = 45378.0020523148; -------------------------------------------------------------------------------- /RnQ/RnQConfig.inc: -------------------------------------------------------------------------------- 1 | 2 | {$I ForRnQConfig.inc} 3 | 4 | {$DEFINE RNQ} 5 | {$DEFINE RNQ_FULL} 6 | { $DEFINE RNQ_FULL2} // For History Recoding 7 | 8 | // defined in ForRnQConfig.inc { $DEFINE CHAT_CEF} // Chromium 9 | 10 | {$IFNDEF CHAT_SCI} 11 | {$IFNDEF CHAT_CEF} 12 | {$DEFINE CHAT_USE_LSB} 13 | {$ENDIF ~CHAT_CEF} 14 | {$ENDIF ~CHAT_SCI} 15 | 16 | {$DEFINE CHAT_SPELL_CHECK} 17 | 18 | { $DEFINE USE_REGUIN} 19 | { $DEFINE USE_SECUREIM} 20 | 21 | { $DEFINE USE_SMILE_MENU} // allow use menu but not only panel 22 | 23 | { $DEFINE ICQ_ONLY} // Use only ICQ! 24 | 25 | {$IFDEF ICQ_ONLY} 26 | {$DEFINE PROTOCOL_ICQ} // OSCAR protocol 27 | {$UNDEF UID_IS_UNICODE} 28 | {$ELSE ~ICQ_ONLY} 29 | {$DEFINE UID_IS_UNICODE} 30 | { $DEFINE PROTOCOL_ICQ} // OSCAR protocol 31 | { $DEFINE PROTOCOL_MRA} // Mail.ru Agent protocol 32 | { $DEFINE PROTOCOL_XMP} // XMPP 33 | { $DEFINE PROTOCOL_BIM} // Obimp protocol 34 | {$DEFINE PROTOCOL_WIM} // ICQ Rest protocol 35 | { $DEFINE PROTOCOL_TLG} // Telegram protocol 36 | {$ENDIF ~ICQ_ONLY} 37 | 38 | 39 | ////////////// For ICQ -------> 40 | {$IFDEF PROTOCOL_ICQ} 41 | { $DEFINE usesRSA} 42 | {$DEFINE usesECC} 43 | { $DEFINE UseNotSSI} 44 | {$DEFINE ICQ_OLD_STATUS} 45 | {$DEFINE usesDC} // Enable File-transfer 46 | {$DEFINE CHECK_INVIS} 47 | {$ENDIF PROTOCOL_ICQ} 48 | ////////////////// <------- 49 | 50 | {$DEFINE RNQ_AVATARS} 51 | { $DEFINE FLASH_AVATARS} 52 | { $DEFINE AVATARS_DEBUG} // Show packets of avatar session 53 | 54 | 55 | { $DEFINE RNQ_FULL2} 56 | 57 | // { $DEFINE EUREKALOG} 58 | // { $DEFINE EUREKALOG_VER5} 59 | 60 | -------------------------------------------------------------------------------- /RnQ/RnQConst.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/RnQConst.pas -------------------------------------------------------------------------------- /RnQ/RnQProtoUtils.pas: -------------------------------------------------------------------------------- 1 | { 2 | This file is part of R&Q. 3 | Under same license 4 | } 5 | unit RnQProtoUtils; 6 | {$I RnQConfig.inc} 7 | {$I NoRTTI.inc} 8 | 9 | interface 10 | uses 11 | RDGlobal, RnQPics; 12 | 13 | type 14 | TwhatLog = (WL_connected, WL_disconnected, 15 | WL_serverGot, WL_serverSent, 16 | WL_heSent, WL_meSent, WL_connecting, 17 | WL_sent_text, WL_rcvd_text, 18 | WL_sent_text8, WL_rcvd_text8, // Data in UTF8 19 | WL_sent_json8, WL_rcvd_json8, // JSON in UTF8 20 | WL_sent_xml8, WL_rcvd_xml8 // XML in UTF8 21 | ); 22 | 23 | const 24 | LogWhatNames: array [TwhatLog] of string=('CONNECTED', 'DISCONNECTED', 25 | 'CLIENT', 'SERVER', 'DC RCVD', 'DC SENT', 26 | 'CONNECTING', 'CLIENT', 'SERVER', 27 | 'CLIENT', 'SERVER', 28 | 'CLIENT', 'SERVER', 29 | 'CLIENT', 'SERVER' 30 | ); 31 | LogPics: array[TwhatLog] of TPicName = (PIC_CONNECTING, PIC_OFFGOING, 32 | PIC_LEFT, PIC_RIGHT, 33 | PIC_RIGHT, PIC_LEFT, PIC_CONNECTING, 34 | PIC_LEFT, PIC_RIGHT, 35 | PIC_LEFT, PIC_RIGHT, 36 | PIC_LEFT, PIC_RIGHT, 37 | PIC_LEFT, PIC_RIGHT 38 | ); 39 | 40 | 41 | procedure logProtoPkt(what: TwhatLog; const head: String; const data: RawByteString=''; async: Boolean = false); 42 | procedure FlushLogPktFile; 43 | 44 | 45 | implementation 46 | uses 47 | RQLog, RnQGlobal, RDUtils, RDFileUtil, RnQFileUtil, 48 | rnqConst, globalLib; 49 | 50 | var 51 | logPktFileData: RawByteString; 52 | 53 | 54 | procedure logProtoPkt(what: TwhatLog; const head: String; const data: RawByteString=''; async: Boolean = false); 55 | var 56 | sA: RawByteString; 57 | sU: String; 58 | needHash: Boolean; 59 | pt: TPktType; 60 | begin 61 | needHash := not (what in [WL_sent_text, WL_rcvd_text, 62 | WL_sent_text8, WL_rcvd_text8, 63 | WL_sent_json8, WL_rcvd_json8, 64 | WL_sent_xml8, WL_rcvd_xml8 65 | ]); 66 | if needHash then 67 | begin 68 | sA := data; 69 | sU := ''; 70 | pt := ptBin; 71 | end 72 | else 73 | begin 74 | // sA := ''; 75 | if what in [WL_sent_text8, WL_rcvd_text8] then 76 | begin 77 | // sU := UTF8Decode(data); 78 | sA := data; 79 | pt := ptUTF8; 80 | end 81 | else 82 | if what in [WL_sent_json8, WL_rcvd_json8] then 83 | begin 84 | sA := data; 85 | pt := ptJSON; 86 | end 87 | else 88 | if what in [WL_sent_xml8, WL_rcvd_xml8] then 89 | begin 90 | sA := data; 91 | pt := ptXML; 92 | end 93 | else 94 | begin 95 | // sU := String(data); 96 | sA := data; 97 | pt := ptString; 98 | end; 99 | end; 100 | 101 | if (logpref.pkts.onwindow) then 102 | if async then 103 | logEvPktASync(head, sU, sA, LogPics[what], pt) 104 | else 105 | logEvPkt(head, sU, sA, LogPics[what], pt); 106 | 107 | if logpref.pkts.onfile then 108 | begin 109 | if needHash then 110 | sA := hexDump(data) 111 | else 112 | sA := data; 113 | logPktFileData := logPktFileData + AnsiString(head)+CRLF+ sA +CRLF; 114 | end; 115 | end; 116 | 117 | procedure FlushLogPktFile; 118 | begin 119 | if Length(logPktFileData) > 0 then 120 | if 121 | appendFile(logPath+packetslogFilename, logPktFileData) 122 | or (Length(logPktFileData) > MByte) then 123 | logPktFileData := ''; 124 | end; 125 | 126 | 127 | 128 | end. 129 | -------------------------------------------------------------------------------- /RnQ/RnQTips.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/RnQTips.pas -------------------------------------------------------------------------------- /RnQ/RnQx64.dpr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/RnQx64.dpr -------------------------------------------------------------------------------- /RnQ/RnQx64.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/RnQx64.res -------------------------------------------------------------------------------- /RnQ/SpellCheck.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/SpellCheck.pas -------------------------------------------------------------------------------- /RnQ/StatusForm.dfm: -------------------------------------------------------------------------------- 1 | object xStatusForm: TxStatusForm 2 | Left = 183 3 | Top = 307 4 | BorderStyle = bsSizeToolWin 5 | Caption = 'Choose the xStatus...' 6 | ClientHeight = 267 7 | ClientWidth = 255 8 | Color = clBtnFace 9 | Font.Charset = DEFAULT_CHARSET 10 | Font.Color = clWindowText 11 | Font.Height = -11 12 | Font.Name = 'Tahoma' 13 | Font.Style = [] 14 | FormStyle = fsStayOnTop 15 | KeyPreview = True 16 | OldCreateOrder = False 17 | Position = poDesigned 18 | OnClose = FormClose 19 | OnDestroy = FormDestroy 20 | OnKeyDown = FormKeyDown 21 | OnShow = FormShow 22 | DesignSize = ( 23 | 255 24 | 267) 25 | PixelsPerInch = 96 26 | TextHeight = 13 27 | object Bevel1: TBevel 28 | Left = 8 29 | Top = 36 30 | Width = 240 31 | Height = 120 32 | Anchors = [akLeft, akTop, akRight] 33 | Shape = bsFrame 34 | Style = bsRaised 35 | end 36 | object xStatusName: TEdit 37 | Left = 8 38 | Top = 8 39 | Width = 146 40 | Height = 21 41 | Anchors = [akLeft, akTop, akRight] 42 | TabOrder = 0 43 | end 44 | object XStatusStrMemo: TMemo 45 | Left = 8 46 | Top = 159 47 | Width = 239 48 | Height = 64 49 | Anchors = [akLeft, akTop, akRight, akBottom] 50 | MaxLength = 255 51 | TabOrder = 2 52 | OnChange = XStatusStrMemoChange 53 | ExplicitHeight = 114 54 | end 55 | object xSetButton: TRnQButton 56 | Left = 169 57 | Top = 5 58 | Width = 79 59 | Height = 25 60 | Anchors = [akTop, akRight] 61 | Caption = 'SET' 62 | Default = True 63 | TabOrder = 1 64 | OnClick = xSetButtonClick 65 | end 66 | object SBar: TStatusBar 67 | Left = 0 68 | Top = 248 69 | Width = 255 70 | Height = 19 71 | Panels = < 72 | item 73 | Width = 100 74 | end 75 | item 76 | Width = 50 77 | end> 78 | ExplicitTop = 298 79 | end 80 | object OldxStChk: TCheckBox 81 | AlignWithMargins = True 82 | Left = 3 83 | Top = 228 84 | Width = 249 85 | Height = 17 86 | Align = alBottom 87 | Caption = 'Use old XStatus' 88 | TabOrder = 4 89 | OnClick = OldxStChkClick 90 | ExplicitTop = 278 91 | end 92 | end 93 | -------------------------------------------------------------------------------- /RnQ/TLG/Protocol_TLG.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/TLG/Protocol_TLG.pas -------------------------------------------------------------------------------- /RnQ/TLG/RegUserFrm.dfm: -------------------------------------------------------------------------------- 1 | object RegUserDlg: TRegUserDlg 2 | Left = 0 3 | Top = 0 4 | Caption = 'RegUserDlg' 5 | ClientHeight = 287 6 | ClientWidth = 323 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | DesignSize = ( 15 | 323 16 | 287) 17 | PixelsPerInch = 96 18 | TextHeight = 13 19 | object FNameEdit: TLabeledEdit 20 | Left = 96 21 | Top = 166 22 | Width = 219 23 | Height = 21 24 | Anchors = [akLeft, akRight, akBottom] 25 | EditLabel.Width = 50 26 | EditLabel.Height = 13 27 | EditLabel.Caption = 'First name' 28 | LabelPosition = lpLeft 29 | MaxLength = 64 30 | TabOrder = 0 31 | ExplicitTop = 8 32 | ExplicitWidth = 173 33 | end 34 | object LNameEdit: TLabeledEdit 35 | Left = 96 36 | Top = 206 37 | Width = 219 38 | Height = 21 39 | Anchors = [akLeft, akRight, akBottom] 40 | EditLabel.Width = 49 41 | EditLabel.Height = 13 42 | EditLabel.Caption = 'Last name' 43 | LabelPosition = lpLeft 44 | MaxLength = 64 45 | TabOrder = 1 46 | ExplicitTop = 48 47 | ExplicitWidth = 173 48 | end 49 | object OkBtn: TRnQButton 50 | Left = 96 51 | Top = 246 52 | Width = 75 53 | Height = 25 54 | Anchors = [akLeft, akBottom] 55 | Caption = 'Ok' 56 | Default = True 57 | ImageName = 'ok' 58 | ModalResult = 1 59 | TabOrder = 2 60 | ExplicitTop = 88 61 | end 62 | object TosMemo: TMemo 63 | Left = 0 64 | Top = 0 65 | Width = 323 66 | Height = 160 67 | Align = alTop 68 | Anchors = [akLeft, akTop, akRight, akBottom] 69 | ReadOnly = True 70 | TabOrder = 3 71 | ExplicitWidth = 403 72 | ExplicitHeight = 197 73 | end 74 | object CncBtn: TRnQButton 75 | Left = 192 76 | Top = 246 77 | Width = 75 78 | Height = 25 79 | Anchors = [akLeft, akBottom] 80 | Cancel = True 81 | Caption = 'Cancel' 82 | ImageName = 'cancel' 83 | ModalResult = 2 84 | TabOrder = 4 85 | end 86 | end 87 | -------------------------------------------------------------------------------- /RnQ/TLG/RegUserFrm.pas: -------------------------------------------------------------------------------- 1 | unit RegUserFrm; 2 | 3 | interface 4 | 5 | uses 6 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, 7 | Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls, RnQButtons; 8 | 9 | type 10 | TRegUserDlg = class(TForm) 11 | FNameEdit: TLabeledEdit; 12 | LNameEdit: TLabeledEdit; 13 | OkBtn: TRnQButton; 14 | TosMemo: TMemo; 15 | CncBtn: TRnQButton; 16 | private 17 | { Private declarations } 18 | public 19 | { Public declarations } 20 | end; 21 | 22 | function acceptTOS(var firstName, lastName: String; const title: string; const tos: String = ''): Boolean; OverLoad; 23 | function acceptTOS(const title: String; const tos: String = ''): Boolean; OverLoad; 24 | 25 | implementation 26 | 27 | {$R *.dfm} 28 | 29 | uses 30 | langLib, globalLib; 31 | 32 | function acceptTOS(var firstName, lastName: String; const title: string; const tos: String = ''): Boolean; 33 | var 34 | frm: TRegUserDlg; 35 | begin 36 | frm := TRegUserDlg.create(Application); 37 | // frm.txtBox.MaxLength := maxLength; 38 | translateWindow(frm); 39 | {$ifdef CPUX64} 40 | SetWindowLongPtr(frm.handle, GWLP_HWNDPARENT, 0); 41 | {$else} 42 | setwindowlong(frm.handle, GWL_HWNDPARENT, 0); 43 | {$endif CPUX64} 44 | // You must not call SetWindowLong with the GWL_HWNDPARENT index to change the parent of a child window. 45 | // Instead, use the SetParent function. 46 | // SetParent(frm.handle, 0); 47 | if title > '' then 48 | // frm.caption:=getTranslation(title) 49 | frm.caption := title; 50 | if tos > '' then 51 | frm.TosMemo.Lines.Text := tos 52 | else 53 | frm.TosMemo.Visible := false; 54 | // else 55 | ; 56 | // frm.txtBox.text := pwd; 57 | // frm.AllowNull := AllowNull; 58 | bringForeground := frm.handle; 59 | // setTopMost(frm, True); 60 | frm.showModal; 61 | frm.BringToFront; 62 | result := frm.ModalResult=mrOk; 63 | if result then 64 | begin 65 | firstName := trim(frm.FNameEdit.text); 66 | lastName := trim(frm.LNameEdit.text); 67 | end; 68 | FreeAndNil(frm); 69 | end; // 70 | 71 | function acceptTOS(const title: String; const tos: String = ''): Boolean; 72 | var 73 | frm: TRegUserDlg; 74 | begin 75 | frm := TRegUserDlg.create(Application); 76 | // frm.txtBox.MaxLength := maxLength; 77 | translateWindow(frm); 78 | {$ifdef CPUX64} 79 | SetWindowLongPtr(frm.handle, GWLP_HWNDPARENT, 0); 80 | {$else} 81 | setwindowlong(frm.handle, GWL_HWNDPARENT, 0); 82 | {$endif CPUX64} 83 | // You must not call SetWindowLong with the GWL_HWNDPARENT index to change the parent of a child window. 84 | // Instead, use the SetParent function. 85 | // SetParent(frm.handle, 0); 86 | if title > '' then 87 | // frm.caption:=getTranslation(title) 88 | frm.caption := title; 89 | if tos > '' then 90 | frm.TosMemo.Lines.Text := tos 91 | else 92 | frm.TosMemo.Visible := false; 93 | // else 94 | ; 95 | frm.FNameEdit.Visible := false; 96 | frm.LNameEdit.Visible := false; 97 | // frm.txtBox.text := pwd; 98 | // frm.AllowNull := AllowNull; 99 | bringForeground := frm.handle; 100 | // setTopMost(frm, True); 101 | frm.showModal; 102 | frm.BringToFront; 103 | result := frm.ModalResult=mrOk; 104 | FreeAndNil(frm); 105 | end; // 106 | 107 | end. 108 | -------------------------------------------------------------------------------- /RnQ/TLG/TLG.MenuStickers.dfm: -------------------------------------------------------------------------------- 1 | object FStickers: TFStickers 2 | Left = 309 3 | Top = 213 4 | BiDiMode = bdLeftToRight 5 | BorderStyle = bsNone 6 | Caption = 'Stickers' 7 | ClientHeight = 311 8 | ClientWidth = 484 9 | Color = clBtnFace 10 | DoubleBuffered = True 11 | Font.Charset = RUSSIAN_CHARSET 12 | Font.Color = clWindowText 13 | Font.Height = -13 14 | Font.Name = 'Arial' 15 | Font.Style = [fsBold] 16 | FormStyle = fsStayOnTop 17 | KeyPreview = True 18 | OldCreateOrder = False 19 | ParentBiDiMode = False 20 | Position = poDefault 21 | OnCreate = FormCreate 22 | OnHide = FormHide 23 | OnKeyDown = FormKeyDown 24 | OnPaint = FormPaint 25 | OnShow = FormShow 26 | PixelsPerInch = 96 27 | TextHeight = 16 28 | object exts: TPanel 29 | AlignWithMargins = True 30 | Left = 1 31 | Top = 1 32 | Width = 482 33 | Height = 52 34 | Margins.Left = 1 35 | Margins.Top = 1 36 | Margins.Right = 1 37 | Margins.Bottom = 0 38 | Align = alTop 39 | BevelOuter = bvNone 40 | Color = 14935011 41 | Ctl3D = True 42 | DoubleBuffered = True 43 | FullRepaint = False 44 | ParentBackground = False 45 | ParentCtl3D = False 46 | ParentDoubleBuffered = False 47 | TabOrder = 0 48 | object scrollLeft: TRnQSpeedButton 49 | Left = 16 50 | Top = 16 51 | Width = 23 52 | Height = 22 53 | Cursor = crHandPoint 54 | Flat = True 55 | Font.Charset = RUSSIAN_CHARSET 56 | Font.Color = clBtnText 57 | Font.Height = -13 58 | Font.Name = 'Arial' 59 | Font.Style = [fsBold] 60 | Font.Quality = fqAntialiased 61 | ParentFont = False 62 | OnClick = scrollLeftClick 63 | end 64 | object scrollRight: TRnQSpeedButton 65 | Left = 448 66 | Top = 16 67 | Width = 23 68 | Height = 22 69 | Cursor = crHandPoint 70 | Flat = True 71 | Font.Charset = RUSSIAN_CHARSET 72 | Font.Color = clBtnText 73 | Font.Height = -13 74 | Font.Name = 'Arial' 75 | Font.Style = [fsBold] 76 | Font.Quality = fqAntialiased 77 | ParentFont = False 78 | OnClick = scrollRightClick 79 | end 80 | end 81 | object actList: TActionList 82 | Left = 384 83 | Top = 256 84 | object NextExt: TAction 85 | SecondaryShortCuts.Strings = ( 86 | 'TAB') 87 | OnExecute = NextExtExecute 88 | end 89 | object PrevExt: TAction 90 | SecondaryShortCuts.Strings = ( 91 | 'Shift+TAB') 92 | OnExecute = PrevExtExecute 93 | end 94 | end 95 | object UpdTmr: TTimer 96 | Enabled = False 97 | Interval = 100 98 | OnTimer = UpdTmrTimer 99 | Left = 432 100 | Top = 256 101 | end 102 | end 103 | -------------------------------------------------------------------------------- /RnQ/TLG/TLGContacts.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/TLG/TLGContacts.pas -------------------------------------------------------------------------------- /RnQ/TLG/viewTLGinfoDlg.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/TLG/viewTLGinfoDlg.pas -------------------------------------------------------------------------------- /RnQ/ViewHEventDlg.dfm: -------------------------------------------------------------------------------- 1 | object HEventFrm: THEventFrm 2 | Left = 0 3 | Top = 0 4 | Caption = 'HEventFrm' 5 | ClientHeight = 328 6 | ClientWidth = 550 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | PixelsPerInch = 96 15 | TextHeight = 13 16 | object PageCtl: TPageControl 17 | Left = 0 18 | Top = 0 19 | Width = 550 20 | Height = 328 21 | Align = alClient 22 | DoubleBuffered = True 23 | OwnerDraw = True 24 | ParentDoubleBuffered = False 25 | Style = tsButtons 26 | TabOrder = 0 27 | end 28 | object imgmenu: TPopupMenu 29 | Left = 264 30 | Top = 96 31 | object savePicMnuImg: TMenuItem 32 | Caption = 'Save pic' 33 | OnClick = savePicMnuImgClick 34 | end 35 | end 36 | end 37 | -------------------------------------------------------------------------------- /RnQ/WIM/Protocol_WIM.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/WIM/Protocol_WIM.pas -------------------------------------------------------------------------------- /RnQ/WIM/WIM.MenuStickers.dfm: -------------------------------------------------------------------------------- 1 | object FStickers: TFStickers 2 | Left = 309 3 | Top = 213 4 | BiDiMode = bdLeftToRight 5 | BorderStyle = bsNone 6 | Caption = 'Stickers' 7 | ClientHeight = 311 8 | ClientWidth = 484 9 | Color = clBtnFace 10 | DoubleBuffered = True 11 | Font.Charset = RUSSIAN_CHARSET 12 | Font.Color = clWindowText 13 | Font.Height = -13 14 | Font.Name = 'Arial' 15 | Font.Style = [fsBold] 16 | FormStyle = fsStayOnTop 17 | KeyPreview = True 18 | OldCreateOrder = False 19 | ParentBiDiMode = False 20 | Position = poDefault 21 | OnCreate = FormCreate 22 | OnHide = FormHide 23 | OnKeyDown = FormKeyDown 24 | OnPaint = FormPaint 25 | OnShow = FormShow 26 | PixelsPerInch = 96 27 | TextHeight = 16 28 | object exts: TPanel 29 | AlignWithMargins = True 30 | Left = 1 31 | Top = 1 32 | Width = 482 33 | Height = 52 34 | Margins.Left = 1 35 | Margins.Top = 1 36 | Margins.Right = 1 37 | Margins.Bottom = 0 38 | Align = alTop 39 | BevelOuter = bvNone 40 | Color = 14935011 41 | Ctl3D = True 42 | DoubleBuffered = True 43 | FullRepaint = False 44 | ParentBackground = False 45 | ParentCtl3D = False 46 | ParentDoubleBuffered = False 47 | TabOrder = 0 48 | object scrollLeft: TRnQSpeedButton 49 | Left = 16 50 | Top = 16 51 | Width = 23 52 | Height = 22 53 | Cursor = crHandPoint 54 | Flat = True 55 | Font.Charset = RUSSIAN_CHARSET 56 | Font.Color = clBtnText 57 | Font.Height = -13 58 | Font.Name = 'Arial' 59 | Font.Style = [fsBold] 60 | Font.Quality = fqAntialiased 61 | ParentFont = False 62 | OnClick = scrollLeftClick 63 | end 64 | object scrollRight: TRnQSpeedButton 65 | Left = 448 66 | Top = 16 67 | Width = 23 68 | Height = 22 69 | Cursor = crHandPoint 70 | Flat = True 71 | Font.Charset = RUSSIAN_CHARSET 72 | Font.Color = clBtnText 73 | Font.Height = -13 74 | Font.Name = 'Arial' 75 | Font.Style = [fsBold] 76 | Font.Quality = fqAntialiased 77 | ParentFont = False 78 | OnClick = scrollRightClick 79 | end 80 | end 81 | object actList: TActionList 82 | Left = 384 83 | Top = 256 84 | object NextExt: TAction 85 | SecondaryShortCuts.Strings = ( 86 | 'TAB') 87 | OnExecute = NextExtExecute 88 | end 89 | object PrevExt: TAction 90 | SecondaryShortCuts.Strings = ( 91 | 'Shift+TAB') 92 | OnExecute = PrevExtExecute 93 | end 94 | end 95 | object UpdTmr: TTimer 96 | Enabled = False 97 | Interval = 100 98 | OnTimer = UpdTmrTimer 99 | Left = 432 100 | Top = 256 101 | end 102 | end 103 | -------------------------------------------------------------------------------- /RnQ/WIM/WIMContacts.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/WIM/WIMContacts.pas -------------------------------------------------------------------------------- /RnQ/WIM/viewWIMinfoDlg.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/WIM/viewWIMinfoDlg.pas -------------------------------------------------------------------------------- /RnQ/aboutDlg.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/aboutDlg.pas -------------------------------------------------------------------------------- /RnQ/addContactDlg.dfm: -------------------------------------------------------------------------------- 1 | object addContactFrm: TaddContactFrm 2 | Left = 277 3 | Top = 192 4 | BorderIcons = [biSystemMenu] 5 | BorderStyle = bsSingle 6 | Caption = 'Add contact' 7 | ClientHeight = 90 8 | ClientWidth = 269 9 | Color = clBtnFace 10 | Font.Charset = DEFAULT_CHARSET 11 | Font.Color = clWindowText 12 | Font.Height = -11 13 | Font.Name = 'MS Sans Serif' 14 | Font.Style = [] 15 | OldCreateOrder = True 16 | Position = poDefault 17 | OnClose = FormClose 18 | OnCreate = FormCreate 19 | OnDestroy = FormDestroy 20 | OnPaint = FormPaint 21 | OnShow = FormShow 22 | PixelsPerInch = 96 23 | TextHeight = 13 24 | object Label1: TLabel 25 | Left = 8 26 | Top = 39 27 | Width = 181 28 | Height = 13 29 | Caption = 'Type the UIN number you want to add' 30 | Transparent = True 31 | end 32 | object uinBox: TLabeledEdit 33 | Left = 45 34 | Top = 62 35 | Width = 113 36 | Height = 21 37 | EditLabel.Width = 19 38 | EditLabel.Height = 13 39 | EditLabel.Caption = 'UIN' 40 | EditLabel.Transparent = True 41 | LabelPosition = lpLeft 42 | TabOrder = 0 43 | OnChange = uinBoxChange 44 | OnKeyPress = uinboxKeyPress 45 | end 46 | object addBtn: TRnQButton 47 | Left = 164 48 | Top = 60 49 | Width = 94 50 | Height = 25 51 | Caption = 'Add' 52 | Default = True 53 | ImageName = 'add.contact' 54 | TabOrder = 1 55 | OnClick = addBtnClick 56 | end 57 | object LocalChk: TCheckBox 58 | Left = 8 59 | Top = 8 60 | Width = 241 61 | Height = 17 62 | Caption = 'Locally' 63 | Checked = True 64 | State = cbChecked 65 | TabOrder = 2 66 | end 67 | end 68 | -------------------------------------------------------------------------------- /RnQ/authreqDlg.dfm: -------------------------------------------------------------------------------- 1 | object authreqFrm: TauthreqFrm 2 | Left = 162 3 | Top = 156 4 | BorderIcons = [biSystemMenu, biMinimize] 5 | BorderStyle = bsSingle 6 | Caption = 'authorization request' 7 | ClientHeight = 195 8 | ClientWidth = 434 9 | Color = clBtnFace 10 | Constraints.MinHeight = 221 11 | Constraints.MinWidth = 440 12 | Font.Charset = DEFAULT_CHARSET 13 | Font.Color = clWindowText 14 | Font.Height = -11 15 | Font.Name = 'MS Sans Serif' 16 | Font.Style = [] 17 | OldCreateOrder = True 18 | OnClose = FormClose 19 | OnPaint = FormPaint 20 | OnShow = FormShow 21 | DesignSize = ( 22 | 434 23 | 195) 24 | PixelsPerInch = 96 25 | TextHeight = 13 26 | object Label1: TLabel 27 | Left = 5 28 | Top = 0 29 | Width = 421 30 | Height = 33 31 | AutoSize = False 32 | Caption = 'auth desc' 33 | Font.Charset = RUSSIAN_CHARSET 34 | Font.Color = clWindowText 35 | Font.Height = -15 36 | Font.Name = 'Times New Roman' 37 | Font.Style = [fsBold] 38 | ParentFont = False 39 | Transparent = True 40 | WordWrap = True 41 | end 42 | object Label2: TLabel 43 | Left = 25 44 | Top = 175 45 | Width = 133 46 | Height = 13 47 | Anchors = [akLeft, akBottom] 48 | Caption = 'Close this window after reply' 49 | FocusControl = closeChk 50 | Transparent = True 51 | OnClick = Label2Click 52 | ExplicitTop = 186 53 | end 54 | object msgBox: TMemo 55 | Left = 5 56 | Top = 33 57 | Width = 280 58 | Height = 97 59 | Anchors = [akLeft, akTop, akRight, akBottom] 60 | ScrollBars = ssVertical 61 | TabOrder = 0 62 | end 63 | object closeChk: TCheckBox 64 | Left = 8 65 | Top = 174 66 | Width = 16 67 | Height = 17 68 | HelpKeyword = 'close-auth-after-reply' 69 | Anchors = [akLeft, akBottom] 70 | TabOrder = 1 71 | OnClick = closeChkClick 72 | end 73 | object AuthBtn: TRnQButton 74 | Left = 291 75 | Top = 35 76 | Width = 136 77 | Height = 26 78 | Anchors = [akTop, akRight] 79 | Caption = '&Authorize' 80 | ImageName = 'auth.grant' 81 | TabOrder = 2 82 | OnClick = authBtnClick 83 | end 84 | object noBtn: TRnQButton 85 | Left = 291 86 | Top = 67 87 | Width = 136 88 | Height = 25 89 | Anchors = [akTop, akRight] 90 | Caption = 'No' 91 | ImageName = 'cancel' 92 | TabOrder = 3 93 | OnClick = noBtnClick 94 | end 95 | object reasonBtn: TRnQButton 96 | Left = 291 97 | Top = 98 98 | Width = 136 99 | Height = 25 100 | Anchors = [akTop, akRight] 101 | Caption = 'No with &Reason' 102 | ImageName = '' 103 | TabOrder = 4 104 | OnClick = reasonBtnClick 105 | end 106 | object viewinfoBtn: TRnQButton 107 | Left = 291 108 | Top = 136 109 | Width = 135 110 | Height = 33 111 | Anchors = [akLeft, akBottom] 112 | Caption = 'View info' 113 | ImageName = 'info' 114 | TabOrder = 5 115 | OnClick = viewinfoBtnClick 116 | end 117 | object sendBtn: TRnQButton 118 | Left = 139 119 | Top = 136 120 | Width = 146 121 | Height = 33 122 | Anchors = [akLeft, akBottom] 123 | Caption = 'Send message' 124 | ImageName = 'msg' 125 | TabOrder = 6 126 | OnClick = sendBtnClick 127 | end 128 | object addBtn: TRnQButton 129 | Left = 5 130 | Top = 136 131 | Width = 128 132 | Height = 33 133 | Anchors = [akLeft, akBottom] 134 | Caption = 'Add to contact list' 135 | ImageName = 'add.contact' 136 | TabOrder = 7 137 | OnClick = addBtnClick 138 | end 139 | object addmenu: TPopupMenu 140 | Left = 105 141 | Top = 144 142 | end 143 | end 144 | -------------------------------------------------------------------------------- /RnQ/changepwddlg.dfm: -------------------------------------------------------------------------------- 1 | object changePwdFrm: TchangePwdFrm 2 | Left = 267 3 | Top = 169 4 | BorderIcons = [biSystemMenu, biMinimize] 5 | BorderStyle = bsSingle 6 | Caption = 'Change password' 7 | ClientHeight = 108 8 | ClientWidth = 297 9 | Color = clBtnFace 10 | Font.Charset = DEFAULT_CHARSET 11 | Font.Color = clWindowText 12 | Font.Height = -11 13 | Font.Name = 'MS Sans Serif' 14 | Font.Style = [] 15 | OldCreateOrder = True 16 | OnClose = FormClose 17 | OnPaint = FormPaint 18 | OnShow = FormShow 19 | PixelsPerInch = 96 20 | TextHeight = 13 21 | object Label2: TLabel 22 | Left = 75 23 | Top = 34 24 | Width = 70 25 | Height = 13 26 | Alignment = taRightJustify 27 | Caption = 'New password' 28 | Transparent = True 29 | end 30 | object Label3: TLabel 31 | Left = 19 32 | Top = 57 33 | Width = 126 34 | Height = 13 35 | Alignment = taRightJustify 36 | Caption = 'Re-type the new password' 37 | Transparent = True 38 | end 39 | object Label1: TLabel 40 | Left = 63 41 | Top = 10 42 | Width = 82 43 | Height = 13 44 | Alignment = taRightJustify 45 | Caption = 'Current password' 46 | Transparent = True 47 | end 48 | object newpwd1Box: TEdit 49 | Left = 152 50 | Top = 30 51 | Width = 137 52 | Height = 22 53 | Font.Charset = ANSI_CHARSET 54 | Font.Color = clWindowText 55 | Font.Height = -11 56 | Font.Name = 'Courier New' 57 | Font.Style = [] 58 | MaxLength = 16 59 | ParentFont = False 60 | PasswordChar = '*' 61 | TabOrder = 1 62 | end 63 | object newpwd2Box: TEdit 64 | Left = 152 65 | Top = 53 66 | Width = 137 67 | Height = 22 68 | Font.Charset = ANSI_CHARSET 69 | Font.Color = clWindowText 70 | Font.Height = -11 71 | Font.Name = 'Courier New' 72 | Font.Style = [] 73 | MaxLength = 16 74 | ParentFont = False 75 | PasswordChar = '*' 76 | TabOrder = 2 77 | end 78 | object oldpwdBox: TEdit 79 | Left = 152 80 | Top = 6 81 | Width = 137 82 | Height = 22 83 | Font.Charset = ANSI_CHARSET 84 | Font.Color = clWindowText 85 | Font.Height = -11 86 | Font.Name = 'Courier New' 87 | Font.Style = [] 88 | MaxLength = 16 89 | ParentFont = False 90 | PasswordChar = '*' 91 | TabOrder = 0 92 | end 93 | object saveBtn: TRnQButton 94 | Left = 152 95 | Top = 81 96 | Width = 137 97 | Height = 25 98 | Caption = 'Save new password' 99 | Default = True 100 | ImageName = 'save' 101 | TabOrder = 3 102 | OnClick = saveBtnClick 103 | end 104 | end 105 | -------------------------------------------------------------------------------- /RnQ/clear.bat: -------------------------------------------------------------------------------- 1 | @FOR /r %%R IN (*.~*) DO @IF EXIST %%R (del /s /q "%%R") 2 | @FOR /r %%R IN (*.identcache) DO @IF EXIST %%R (del /s /q "%%R") 3 | @FOR /r %%R IN (*.ddp) DO @IF EXIST %%R (del /s /q "%%R") 4 | @FOR /r %%R IN (*.ppu) DO @IF EXIST %%R (del /s /q "%%R") 5 | @FOR /r %%R IN (*.bak) DO @IF EXIST %%R (del /s /q "%%R") 6 | 7 | @IF EXIST "*.dcu" del *.dcu 8 | @IF EXIST "*.o" del *.o 9 | @IF EXIST ".\Units\*.dcu" del .\Units\*.dcu 10 | @IF EXIST ".\Units\*.res" del .\Units\*.res 11 | @IF EXIST "Prefs\__history\*" rd /q Prefs\__history\ 12 | @IF EXIST "Prefs\*.dcu" del /q Prefs\*.dcu 13 | @IF EXIST "__history\*" rd /q /s __history\ 14 | @IF EXIST "ICQ\__history\*" rd /q ICQ\__history\ 15 | @IF EXIST "ICQ\*.dcu" del /q ICQ\*.dcu 16 | @IF EXIST "MRA\__history\*" rd /q MRA\__history\ 17 | @IF EXIST "xmpp\__history\*" rd /q xmpp\__history\ 18 | @IF EXIST "WIM\__history\*" rd /q WIM\__history\ 19 | @IF EXIST "WIM\*.dcu" del /q WIM\*.dcu 20 | @IF EXIST "TLG\__history\*" rd /q ICQ\__history\ 21 | @IF EXIST "TLG\*.dcu" del /q ICQ\*.dcu 22 | @exit -------------------------------------------------------------------------------- /RnQ/globalLib.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/globalLib.pas -------------------------------------------------------------------------------- /RnQ/histUtilsDlg.dfm: -------------------------------------------------------------------------------- 1 | object histUtilsFrm: ThistUtilsFrm 2 | Left = 280 3 | Top = 71 4 | BorderIcons = [biSystemMenu, biMinimize] 5 | BorderStyle = bsSizeToolWin 6 | Caption = 'History utilities' 7 | ClientHeight = 374 8 | ClientWidth = 282 9 | Color = clBtnFace 10 | Constraints.MinHeight = 340 11 | Constraints.MinWidth = 290 12 | Font.Charset = DEFAULT_CHARSET 13 | Font.Color = clWindowText 14 | Font.Height = -11 15 | Font.Name = 'Tahoma' 16 | Font.Style = [] 17 | OldCreateOrder = False 18 | OnShow = FormShow 19 | DesignSize = ( 20 | 282 21 | 374) 22 | PixelsPerInch = 96 23 | TextHeight = 13 24 | object loadHistBtn: TRnQSpeedButton 25 | Left = 8 26 | Top = 48 27 | Width = 259 28 | Height = 22 29 | Anchors = [akLeft, akTop, akRight] 30 | Caption = 'Add history from another clients' 31 | OnClick = loadHistBtnClick 32 | end 33 | object loadHist1Btn: TRnQSpeedButton 34 | Left = 8 35 | Top = 80 36 | Width = 259 37 | Height = 22 38 | Anchors = [akLeft, akTop, akRight] 39 | Caption = 'Add history from one contact to another' 40 | OnClick = loadHist1BtnClick 41 | end 42 | object Label1: TLabel 43 | Left = 16 44 | Top = 112 45 | Width = 17 46 | Height = 13 47 | Caption = 'Log' 48 | end 49 | object Label2: TLabel 50 | Left = 16 51 | Top = 0 52 | Width = 243 53 | Height = 42 54 | Alignment = taCenter 55 | Anchors = [akLeft, akTop, akRight] 56 | AutoSize = False 57 | Caption = 58 | 'Thanks to Basenko Andrey for this functions!\n e-mail: and-basen' + 59 | 'ko@yandex.ru\nICQ UIN: 74835516' 60 | Font.Charset = DEFAULT_CHARSET 61 | Font.Color = clRed 62 | Font.Height = -11 63 | Font.Name = 'Tahoma' 64 | Font.Style = [] 65 | ParentFont = False 66 | Layout = tlCenter 67 | WordWrap = True 68 | end 69 | object Memo1: TMemo 70 | Left = 8 71 | Top = 128 72 | Width = 267 73 | Height = 237 74 | Anchors = [akLeft, akTop, akRight, akBottom] 75 | ScrollBars = ssVertical 76 | TabOrder = 0 77 | end 78 | object RepHistBtn: TRnQButton 79 | Left = 80 80 | Top = 104 81 | Width = 147 82 | Height = 25 83 | Caption = 'Repair bad history files' 84 | TabOrder = 1 85 | Visible = False 86 | OnClick = RepHistBtnClick 87 | end 88 | end 89 | -------------------------------------------------------------------------------- /RnQ/historyVCL.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/historyVCL.pas -------------------------------------------------------------------------------- /RnQ/iniLib.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/iniLib.pas -------------------------------------------------------------------------------- /RnQ/lockDlg.dfm: -------------------------------------------------------------------------------- 1 | object lockFrm: TlockFrm 2 | Left = 297 3 | Top = 266 4 | BorderIcons = [biMinimize] 5 | BorderStyle = bsSingle 6 | Caption = 'R&Q LOCKED' 7 | ClientHeight = 100 8 | ClientWidth = 414 9 | Color = clBtnFace 10 | Font.Charset = DEFAULT_CHARSET 11 | Font.Color = clWindowText 12 | Font.Height = -11 13 | Font.Name = 'MS Sans Serif' 14 | Font.Style = [] 15 | KeyPreview = True 16 | OldCreateOrder = True 17 | Position = poScreenCenter 18 | OnClose = FormClose 19 | OnCloseQuery = FormCloseQuery 20 | OnKeyDown = FormKeyDown 21 | OnPaint = FormPaint 22 | OnShow = FormShow 23 | PixelsPerInch = 96 24 | TextHeight = 13 25 | object Label1: TLabel 26 | Left = 112 27 | Top = 14 28 | Width = 197 29 | Height = 54 30 | Caption = 31 | 'This R&&Q has been locked. To unlock you need to type in your pa' + 32 | 'ssword.' 33 | Font.Charset = DEFAULT_CHARSET 34 | Font.Color = clWindowText 35 | Font.Height = -15 36 | Font.Name = 'Arial' 37 | Font.Style = [fsBold] 38 | ParentFont = False 39 | Transparent = True 40 | WordWrap = True 41 | end 42 | object PaintBox1: TPaintBox 43 | Left = 8 44 | Top = 8 45 | Width = 98 46 | Height = 84 47 | end 48 | object pwdBox: TEdit 49 | Left = 112 50 | Top = 64 51 | Width = 129 52 | Height = 24 53 | PasswordChar = '*' 54 | TabOrder = 0 55 | end 56 | object OkBtn: TRnQButton 57 | Left = 250 58 | Top = 62 59 | Width = 75 60 | Height = 25 61 | Caption = 'Ok' 62 | Default = True 63 | ImageName = 'ok' 64 | TabOrder = 1 65 | OnClick = OkBtnClick 66 | end 67 | object QuitBtn: TRnQButton 68 | Left = 331 69 | Top = 62 70 | Width = 75 71 | Height = 25 72 | Caption = 'Quit' 73 | ImageName = 'quit' 74 | TabOrder = 2 75 | OnClick = QuitBtnClick 76 | end 77 | end 78 | -------------------------------------------------------------------------------- /RnQ/lockDlg.pas: -------------------------------------------------------------------------------- 1 | { 2 | Copyright (C) 2002-2004 Massimo Melina (www.rejetto.com) 3 | 4 | This file is part of &RQ. 5 | 6 | &RQ is free software; you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation; either version 2 of the License, or 9 | (at your option) any later version. 10 | 11 | &RQ is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with &RQ; if not, write to the Free Software 18 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 19 | } 20 | unit lockDlg; 21 | {$I RnQConfig.inc} 22 | {$I NoRTTI.inc} 23 | 24 | interface 25 | 26 | uses 27 | Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, 28 | StdCtrls, ExtCtrls, 29 | RnQButtons, RnQDialogs; 30 | 31 | type 32 | TlockFrm = class(TForm) 33 | Label1: TLabel; 34 | pwdBox: TEdit; 35 | OkBtn: TRnQButton; 36 | QuitBtn: TRnQButton; 37 | PaintBox1: TPaintBox; 38 | procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); 39 | procedure FormShow(Sender: TObject); 40 | procedure OkBtnClick(Sender: TObject); 41 | procedure QuitBtnClick(Sender: TObject); 42 | procedure FormPaint(Sender: TObject); 43 | procedure FormClose(Sender: TObject; var Action: TCloseAction); 44 | procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); 45 | private 46 | { Private declarations } 47 | // public procedure destroyHandle; 48 | end; 49 | 50 | var 51 | lockFrm: TlockFrm; 52 | 53 | implementation 54 | 55 | {$R *.DFM} 56 | 57 | uses 58 | {$IFDEF UNICODE} 59 | AnsiStrings, 60 | {$ENDIF UNICODE} 61 | RDGlobal, 62 | globalLib, UtilLib, RnQLangs, RQUtil, RDSysUtils, RnQCrypt, 63 | iniLib, 64 | mainDlg, chatDlg; 65 | 66 | procedure TlockFrm.FormShow(Sender: TObject); 67 | begin 68 | pwdBox.onKeyDown := RnQmain.pwdBoxKeyDown; 69 | applyTaskButton(self); 70 | if formVisible(RnQmain) then 71 | RnQmain.toggleVisible; 72 | chatFrm.close; 73 | locked := TRUE; 74 | if not startingLock then 75 | // saveCFG; // eventually delete password from file 76 | saveCfgDelayed := True; 77 | //tipFrm.hide(); 78 | bringForeground := handle; 79 | pwdBox.Text := ''; 80 | pwdBox.SetFocus(); 81 | end; 82 | 83 | procedure TlockFrm.OkBtnClick(Sender: TObject); 84 | var 85 | // sA: AnsiString; 86 | rr: Boolean; 87 | begin 88 | if AccPass > '' then 89 | rr := compareText(AccPass, pwdBox.text) = 0 90 | else 91 | rr := Account.AccProto.pwdEqual(pwdBox.text); 92 | 93 | if rr then 94 | begin 95 | locked := FALSE; 96 | if not startingLock then 97 | // saveCFG; 98 | saveCfgDelayed := True; 99 | close 100 | end 101 | else 102 | msgDlg('The password you entered is incorrect', True, mtError); 103 | end; 104 | 105 | procedure TlockFrm.QuitBtnClick(Sender: TObject); 106 | begin 107 | ModalResult := mrAbort; 108 | RnQmain.close; 109 | end; 110 | 111 | procedure TlockFrm.FormPaint(Sender: TObject); 112 | begin 113 | wallpaperize(canvas) 114 | end; 115 | 116 | procedure TlockFrm.FormClose(Sender: TObject; var Action: TCloseAction); 117 | begin 118 | ModalResult := mrOk; 119 | Action := caFree; 120 | destroyHandle; 121 | lockFrm := nil; 122 | end; 123 | 124 | procedure TlockFrm.FormCloseQuery(Sender: TObject; var CanClose: Boolean); 125 | begin 126 | if locked then 127 | CanClose := False 128 | else 129 | CanClose := True; 130 | end; 131 | 132 | //procedure TlockFrm.destroyHandle; begin inherited end; 133 | 134 | procedure TlockFrm.FormKeyDown(Sender: TObject; var Key: Word; 135 | Shift: TShiftState); 136 | begin 137 | if Key = VK_RETURN then 138 | OkBtnClick(nil); 139 | end; 140 | 141 | end. 142 | -------------------------------------------------------------------------------- /RnQ/mainDlg.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/mainDlg.pas -------------------------------------------------------------------------------- /RnQ/pluginLib.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/pluginLib.pas -------------------------------------------------------------------------------- /RnQ/prefDlg.dfm: -------------------------------------------------------------------------------- 1 | object prefFrm: TprefFrm 2 | Left = 113 3 | Top = 133 4 | BorderIcons = [biSystemMenu, biMinimize] 5 | BorderStyle = bsDialog 6 | Caption = 'Preferences' 7 | ClientHeight = 422 8 | ClientWidth = 590 9 | Color = clBtnFace 10 | DefaultMonitor = dmMainForm 11 | ParentFont = True 12 | GlassFrame.Enabled = True 13 | GlassFrame.Bottom = 30 14 | KeyPreview = True 15 | Position = poScreenCenter 16 | ShowHint = True 17 | OnClose = FormClose 18 | OnCreate = FormCreate 19 | OnDestroy = FormDestroy 20 | OnKeyDown = FormKeyDown 21 | OnShow = FormShow 22 | DesignSize = ( 23 | 590 24 | 422) 25 | TextHeight = 20 26 | object Bevel: TBevel 27 | Left = 6 28 | Top = 262 29 | Width = 539 30 | Height = 4 31 | Anchors = [akLeft, akRight, akBottom] 32 | Shape = bsBottomLine 33 | ExplicitTop = 272 34 | ExplicitWidth = 549 35 | end 36 | object framePnl: TPanel 37 | Left = 198 38 | Top = 8 39 | Width = 348 40 | Height = 249 41 | Align = alCustom 42 | Anchors = [akLeft, akTop, akRight, akBottom] 43 | BevelInner = bvRaised 44 | BevelOuter = bvLowered 45 | Font.Charset = RUSSIAN_CHARSET 46 | Font.Color = clWindowText 47 | Font.Height = -11 48 | Font.Name = 'Tahoma' 49 | Font.Style = [] 50 | ParentFont = False 51 | TabOrder = 1 52 | ExplicitWidth = 360 53 | ExplicitHeight = 258 54 | end 55 | object PrefList: TVirtualDrawTree 56 | Left = 8 57 | Top = 8 58 | Width = 184 59 | Height = 258 60 | Colors.UnfocusedSelectionColor = clBtnShadow 61 | Header.AutoSizeIndex = 0 62 | Header.DefaultHeight = 17 63 | Header.Height = 20 64 | Header.MainColumn = -1 65 | Header.Options = [hoColumnResize, hoDrag] 66 | IncrementalSearch = isAll 67 | TabOrder = 0 68 | TreeOptions.MiscOptions = [toAcceptOLEDrop, toFullRepaintOnResize, toInitOnSave, toToggleOnDblClick, toWheelPanning] 69 | TreeOptions.PaintOptions = [toShowButtons, toShowDropmark, toShowTreeLines, toThemeAware, toUseBlendedImages, toUseBlendedSelection] 70 | TreeOptions.SelectionOptions = [toFullRowSelect, toMiddleClickSelect, toRightClickSelect] 71 | OnChange = PrefListChange 72 | OnDrawNode = PrefListDrawNode 73 | OnFreeNode = PrefListFreeNode 74 | OnGetNodeWidth = PrefListGetNodeWidth 75 | Touch.InteractiveGestures = [igPan, igPressAndTap] 76 | Touch.InteractiveGestureOptions = [igoPanSingleFingerHorizontal, igoPanSingleFingerVertical, igoPanInertia, igoPanGutter, igoParentPassthrough] 77 | Columns = <> 78 | end 79 | object resetBtn: TRnQButton 80 | Left = 8 81 | Top = 272 82 | Width = 85 83 | Height = 25 84 | Anchors = [akLeft, akBottom] 85 | Caption = 'Reset' 86 | ImageName = 'refresh' 87 | TabOrder = 2 88 | OnClick = resetBtnClick 89 | ExplicitTop = 281 90 | end 91 | object okBtn: TRnQButton 92 | Left = 274 93 | Top = 272 94 | Width = 83 95 | Height = 25 96 | Anchors = [akLeft, akBottom] 97 | Caption = 'Ok' 98 | Default = True 99 | ImageName = 'ok' 100 | ModalResult = 1 101 | TabOrder = 3 102 | OnClick = okBtnClick 103 | ExplicitTop = 281 104 | end 105 | object closeBtn: TRnQButton 106 | Left = 362 107 | Top = 272 108 | Width = 91 109 | Height = 25 110 | Anchors = [akLeft, akBottom] 111 | Caption = 'Close' 112 | ImageName = 'close' 113 | TabOrder = 4 114 | OnClick = closeBtnClick 115 | ExplicitTop = 281 116 | end 117 | object applyBtn: TRnQButton 118 | Left = 460 119 | Top = 272 120 | Width = 89 121 | Height = 25 122 | Anchors = [akLeft, akBottom] 123 | Caption = 'Apply' 124 | ImageName = 'apply' 125 | TabOrder = 5 126 | OnClick = applyBtnClick 127 | ExplicitTop = 281 128 | end 129 | end 130 | -------------------------------------------------------------------------------- /RnQ/pwdDlg.dfm: -------------------------------------------------------------------------------- 1 | object msgFrm: TmsgFrm 2 | Left = 161 3 | Top = 99 4 | BorderIcons = [biSystemMenu, biMinimize] 5 | BorderStyle = bsSingle 6 | ClientHeight = 68 7 | ClientWidth = 179 8 | Color = clBtnFace 9 | CustomTitleBar.Height = 6 10 | ParentFont = True 11 | GlassFrame.Enabled = True 12 | GlassFrame.Left = 6 13 | GlassFrame.Top = 6 14 | GlassFrame.Right = 6 15 | GlassFrame.Bottom = 6 16 | GlassFrame.SheetOfGlass = True 17 | OldCreateOrder = True 18 | Position = poScreenCenter 19 | OnClose = FormClose 20 | OnCreate = FormCreate 21 | OnPaint = FormPaint 22 | OnShow = FormShow 23 | DesignSize = ( 24 | 179 25 | 68) 26 | PixelsPerInch = 96 27 | TextHeight = 13 28 | object Label1: TLabel 29 | Left = 21 30 | Top = 11 31 | Width = 46 32 | Height = 13 33 | Alignment = taRightJustify 34 | Anchors = [akLeft, akBottom] 35 | Caption = 'Password' 36 | Transparent = True 37 | end 38 | object KBBtn: TRnQSpeedButton 39 | Left = 155 40 | Top = 8 41 | Width = 23 42 | Height = 22 43 | Anchors = [akTop, akRight] 44 | ImageName = 'key' 45 | OnClick = KBBtnClick 46 | end 47 | object txtBox: TEdit 48 | Left = 72 49 | Top = 7 50 | Width = 81 51 | Height = 23 52 | Anchors = [akLeft, akRight, akBottom] 53 | Font.Charset = ANSI_CHARSET 54 | Font.Color = clWindowText 55 | Font.Height = -12 56 | Font.Name = 'Courier New' 57 | Font.Style = [] 58 | ParentFont = False 59 | PasswordChar = '*' 60 | TabOrder = 0 61 | OnKeyPress = txtBoxKeyPress 62 | end 63 | object okBtn: TRnQButton 64 | Left = 49 65 | Top = 38 66 | Width = 81 67 | Height = 25 68 | Anchors = [akBottom] 69 | Caption = '&Ok' 70 | Default = True 71 | DoubleBuffered = False 72 | ImageName = 'ok' 73 | ParentDoubleBuffered = False 74 | TabOrder = 1 75 | OnClick = okBtnClick 76 | end 77 | end 78 | -------------------------------------------------------------------------------- /RnQ/pwdDlg.pas: -------------------------------------------------------------------------------- 1 | { 2 | Copyright (C) 2002-2004 Massimo Melina (www.rejetto.com) 3 | 4 | This file is part of &RQ. 5 | 6 | &RQ is free software; you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation; either version 2 of the License, or 9 | (at your option) any later version. 10 | 11 | &RQ is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with &RQ; if not, write to the Free Software 18 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 19 | } 20 | unit pwdDlg; 21 | {$I RnQConfig.inc} 22 | {$I NoRTTI.inc} 23 | { $DEFINE USE_TKB} 24 | interface 25 | 26 | uses 27 | Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, 28 | {$IFDEF USE_TKB} 29 | AdvTouchkeyboard, 30 | {$ENDIF USE_TKB} 31 | StdCtrls, RnQButtons; 32 | 33 | type 34 | TmsgFrm = class(TForm) 35 | txtBox: TEdit; 36 | Label1: TLabel; 37 | okBtn: TRnQButton; 38 | KBBtn: TRnQSpeedButton; 39 | procedure txtBoxKeyPress(Sender: TObject; var Key: Char); 40 | procedure okBtnClick(Sender: TObject); 41 | procedure FormPaint(Sender: TObject); 42 | procedure FormClose(Sender: TObject; var Action: TCloseAction); 43 | procedure FormCreate(Sender: TObject); 44 | procedure FormShow(Sender: TObject); 45 | procedure KBBtnClick(Sender: TObject); 46 | public 47 | {$IFDEF USE_TKB} 48 | tkb: TAdvPopupTouchKeyBoard; 49 | {$ENDIF USE_TKB} 50 | result_uin: integer; 51 | exitCode: (EC_enter, EC_cancel); 52 | AllowNull: Boolean; 53 | end; 54 | 55 | implementation 56 | 57 | uses 58 | globalLib, utilLib, mainDlg, 59 | RDSysUtils, RnQPics, 60 | RQUtil, RDGlobal, RQThemes, themesLib, RnQLangs; 61 | 62 | {$R *.DFM} 63 | 64 | procedure TmsgFrm.txtBoxKeyPress(Sender: TObject; var Key: Char); 65 | begin 66 | case key of 67 | #27: 68 | begin 69 | close; 70 | key := #0; 71 | end; 72 | #13: 73 | begin 74 | okBtnClick(self); 75 | key := #0; 76 | end; 77 | end; 78 | end; // keypress 79 | 80 | procedure TmsgFrm.okBtnClick(Sender: TObject); 81 | begin 82 | if (trim(txtBox.text) = '') and not AllowNull then 83 | exit; 84 | tag := 1; 85 | exitCode := EC_enter; 86 | close; 87 | end; 88 | 89 | procedure TmsgFrm.FormPaint(Sender: TObject); 90 | //var 91 | // r: TRect; 92 | begin 93 | // Canvas. 94 | // R := Canvas.ClipRect; 95 | if not GlassFrame.FrameExtended then 96 | wallpaperize(canvas) 97 | end; 98 | 99 | procedure TmsgFrm.FormClose(Sender: TObject; var Action: TCloseAction); 100 | begin 101 | //destroyHandle; 102 | // Action := caHide; 103 | Action := caFree; 104 | {$IFDEF USE_TKB} 105 | FreeAndNil(tkb); 106 | {$ENDIF USE_TKB} 107 | end; 108 | 109 | procedure TmsgFrm.FormCreate(Sender: TObject); 110 | begin 111 | theme.pic2ico(RQteFormIcon, PIC_KEY, icon); 112 | Self.DoubleBuffered := True; 113 | txtBox.DoubleBuffered := True; 114 | // okBtn.DoubleBuffered := True; 115 | {$IFDEF USE_TKB} 116 | tkb := NIL; 117 | {$ELSE USE_TKB} 118 | KBBtn.Visible := False; 119 | {$ENDIF USE_TKB} 120 | AllowNull := false; 121 | exitCode := EC_cancel; 122 | end; 123 | 124 | procedure TmsgFrm.FormShow(Sender: TObject); 125 | begin 126 | // Caption := getTranslation('Password') + ' (' + RnQUser + ')'; 127 | txtBox.onKeyDown := RnQmain.pwdBoxKeyDown; 128 | applyTaskButton(self); 129 | // okBtn.DoubleBuffered := True; 130 | // Label1.do 131 | end; 132 | 133 | procedure TmsgFrm.KBBtnClick(Sender: TObject); 134 | begin 135 | {$IFDEF USE_TKB} 136 | if not Assigned(tkb) then 137 | tkb := TAdvPopupTouchKeyBoard.Create(Self); 138 | // tkb.Keyboard. 139 | tkb.Show; 140 | // tkb. 141 | {$ENDIF USE_TKB} 142 | end; 143 | 144 | end. 145 | -------------------------------------------------------------------------------- /RnQ/readme.opensource.txt: -------------------------------------------------------------------------------- 1 | === ABOUT OPEN SOURCE, by Massimo Melina aka rejetto 2 | 3 | I believe "open source" is the way to get a better technology. 4 | Nowadays I'm releasing most software i make as open source. 5 | This was not true when I started working on &RQ. 6 | At last I decided to publish these sources because it is something 7 | important for most &RQ users, even though most of them don't know it. 8 | 9 | Don't complain with me about the low quality. 10 | I know most code in it sucks, i'm just sorry. 11 | I delayed the release for 2 years because of it. 12 | I don't have time/desire to rewrite it from scratch. 13 | But you are now _free_ to do it yourself, if you wish to. -------------------------------------------------------------------------------- /RnQ/roasterLib.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/roasterLib.pas -------------------------------------------------------------------------------- /RnQ/usersDlg.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/usersDlg.pas -------------------------------------------------------------------------------- /RnQ/utilLib.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/utilLib.pas -------------------------------------------------------------------------------- /RnQ/xmpp/Protocol_XMP.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/xmpp/Protocol_XMP.pas -------------------------------------------------------------------------------- /RnQ/xmpp/XMPP_proto.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/xmpp/XMPP_proto.pas -------------------------------------------------------------------------------- /RnQ/xmpp/XMPPcontacts.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/xmpp/XMPPcontacts.pas -------------------------------------------------------------------------------- /RnQ/xmpp/XMPPv1.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/xmpp/XMPPv1.pas -------------------------------------------------------------------------------- /RnQ/xmpp/viewXMPPinfoDlg.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/RnQ/xmpp/viewXMPPinfoDlg.pas -------------------------------------------------------------------------------- /RnQ/xmpp/xmpp_fr.dfm: -------------------------------------------------------------------------------- 1 | object xmppFr: TxmppFr 2 | Left = 0 3 | Top = 0 4 | ClientHeight = 420 5 | ClientWidth = 512 6 | Color = clBtnFace 7 | Font.Charset = DEFAULT_CHARSET 8 | Font.Color = clWindowText 9 | Font.Height = -11 10 | Font.Name = 'Tahoma' 11 | Font.Style = [] 12 | OldCreateOrder = True 13 | PixelsPerInch = 96 14 | TextHeight = 13 15 | object PageControl1: TPageControl 16 | Left = 0 17 | Top = 0 18 | Width = 512 19 | Height = 420 20 | ActivePage = TS1 21 | Align = alClient 22 | TabOrder = 0 23 | object TS1: TTabSheet 24 | Caption = 'XMPP' 25 | ExplicitLeft = 0 26 | ExplicitTop = 0 27 | ExplicitWidth = 0 28 | ExplicitHeight = 0 29 | object LPr: TLabel 30 | Left = 32 31 | Top = 67 32 | Width = 34 33 | Height = 13 34 | Alignment = taRightJustify 35 | Caption = 'Priority' 36 | end 37 | object PrtySpin: TRnQSpinEdit 38 | Left = 72 39 | Top = 64 40 | Width = 121 41 | Height = 22 42 | Decimal = 0 43 | TabOrder = 0 44 | end 45 | object SrvEdit: TLabeledEdit 46 | Left = 72 47 | Top = 32 48 | Width = 121 49 | Height = 21 50 | EditLabel.Width = 51 51 | EditLabel.Height = 13 52 | EditLabel.Caption = 'Server JID' 53 | LabelPosition = lpLeft 54 | TabOrder = 1 55 | end 56 | end 57 | object TSSecurity: TTabSheet 58 | Caption = 'Security' 59 | ImageIndex = 1 60 | ExplicitLeft = 0 61 | ExplicitTop = 0 62 | ExplicitWidth = 0 63 | ExplicitHeight = 0 64 | DesignSize = ( 65 | 504 66 | 392) 67 | object Label23: TLabel 68 | Left = 8 69 | Top = 8 70 | Width = 46 71 | Height = 13 72 | Alignment = taRightJustify 73 | Caption = 'Password' 74 | end 75 | object pwdBox: TEdit 76 | Left = 71 77 | Top = 6 78 | Width = 343 79 | Height = 22 80 | Anchors = [akLeft, akTop, akRight] 81 | Font.Charset = ANSI_CHARSET 82 | Font.Color = clWindowText 83 | Font.Height = -11 84 | Font.Name = 'Courier New' 85 | Font.Style = [] 86 | ParentFont = False 87 | PasswordChar = '*' 88 | TabOrder = 0 89 | end 90 | object SSLChk: TCheckBox 91 | Left = 329 92 | Top = 35 93 | Width = 53 94 | Height = 17 95 | Caption = 'SSL' 96 | TabOrder = 1 97 | Visible = False 98 | end 99 | object ServerCBox: TComboBox 100 | Left = 49 101 | Top = 58 102 | Width = 257 103 | Height = 21 104 | TabOrder = 2 105 | Visible = False 106 | end 107 | object portBox: TLabeledEdit 108 | Left = 341 109 | Top = 58 110 | Width = 60 111 | Height = 21 112 | Anchors = [akTop, akRight] 113 | EditLabel.Width = 20 114 | EditLabel.Height = 13 115 | EditLabel.Caption = 'Port' 116 | LabelPosition = lpLeft 117 | TabOrder = 3 118 | Visible = False 119 | end 120 | end 121 | end 122 | end 123 | -------------------------------------------------------------------------------- /RnQ/xmpp/xmpp_fr.pas: -------------------------------------------------------------------------------- 1 | unit xmpp_fr; 2 | 3 | interface 4 | {$I RnQConfig.inc} 5 | {$I NoRTTI.inc} 6 | 7 | uses 8 | Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, 9 | StdCtrls, 10 | RnQPrefsInt, RnQPrefsTypes, 11 | RDGlobal, ExtCtrls, RnQSpin, 12 | XMPPv1, ComCtrls; 13 | 14 | type 15 | TxmppFr = class(TPrefFrame) 16 | PageControl1: TPageControl; 17 | TS1: TTabSheet; 18 | PrtySpin: TRnQSpinEdit; 19 | SrvEdit: TLabeledEdit; 20 | LPr: TLabel; 21 | TSSecurity: TTabSheet; 22 | Label23: TLabel; 23 | pwdBox: TEdit; 24 | SSLChk: TCheckBox; 25 | ServerCBox: TComboBox; 26 | portBox: TLabeledEdit; 27 | private 28 | { Private declarations } 29 | fXMPP: TXMPPSession; 30 | public 31 | // procedure initProps; 32 | procedure initPage(prefs: IRnQPref); Override; final; 33 | procedure applyPage; Override; final; 34 | procedure resetPage; Override; final; 35 | // procedure updateVisible; 36 | { Public declarations } 37 | end; 38 | 39 | implementation 40 | 41 | {$R *.dfm} 42 | 43 | uses 44 | RnQProtocol, globalLib; 45 | 46 | procedure TxmppFr.initPage; 47 | var 48 | I: Integer; 49 | // Acc: PRnQAccount; 50 | begin 51 | Inherited; 52 | (* {$IFDEF PREF_IN_DB} 53 | if fAccIDX in [Low(main.Accounts)..High(main.Accounts)] then 54 | Acc := @main.Accounts[fAccIDX] 55 | else 56 | Acc := NIL; 57 | {$ELSE ~PREF_IN_DB} 58 | Acc := @Account; 59 | {$ENDIF PREF_IN_DB} 60 | fXMPP := NIL; 61 | if not Assigned(Acc) 62 | or (Acc.AccProto.ProtoID <> XMPProtoID) then 63 | Exit; 64 | fXMPP := TXMPPSession(Acc.AccProto); 65 | *) 66 | fXMPP := TXMPPSession(Account.AccProto); 67 | end; 68 | 69 | //procedure initProps; 70 | procedure TxmppFr.applyPage; 71 | begin 72 | if Assigned(fXMPP)and 73 | (fXMPP.ProtoID = XMPProtoID) then 74 | begin 75 | fXMPP.ServerJID := SrvEdit.Text; 76 | 77 | fXMPP.pwd := pwdBox.text; 78 | fXMPP.fPriority := PrtySpin.AsInteger; 79 | end; 80 | end; 81 | 82 | procedure TxmppFr.resetPage; 83 | begin 84 | if Assigned(fXMPP)and 85 | (fXMPP.ProtoID = XMPProtoID) then 86 | begin 87 | SrvEdit.Text := fXMPP.ServerJID; 88 | pwdBox.text := fXMPP.pwd; 89 | PrtySpin.AsInteger := fXMPP.fPriority; 90 | end; 91 | end; 92 | 93 | //INITIALIZATION 94 | // AddPrefPage(2, TxmppFr, 'XMPP'); 95 | end. 96 | -------------------------------------------------------------------------------- /WhatToNeed.txt: -------------------------------------------------------------------------------- 1 | Нужные компоненты: 2 | ICS v8 - http://www.overbyte.be 3 | Synopse framework. Copyright (C) 2016 Arnaud Bouchez - http://synopse.info/ 4 | 5 | Рекомендуется для компиляции Delphi XE6 и новее. 6 | 7 | Действия: 8 | 1) Прописать путь до исходников ICSv8 9 | IcsV8\Source\ 10 | 2) Изменить ics кодом из for.RnQ\Modified\ICS\ 11 | 3) Установить пакет For.rnq 12 | 4) Скомпилировать саму R&Q 13 | Можно запускать... -------------------------------------------------------------------------------- /clear_all.bat: -------------------------------------------------------------------------------- 1 | cd "%cd%\for.RnQ" 2 | cmd /C clear.bat 3 | cd ..\RnQ 4 | cmd /C clear.bat 5 | -------------------------------------------------------------------------------- /for.RnQ/Flash/FlashAX.dpk: -------------------------------------------------------------------------------- 1 | package FlashAX; 2 | 3 | {$R *.res} 4 | {$R 'ShockwaveFlashObjects_TLB.dcr'} 5 | {$R 'ShockwaveEx.dcr'} 6 | {$R 'ShockwaveList.dcr'} 7 | {$ALIGN 8} 8 | {$ASSERTIONS ON} 9 | {$BOOLEVAL OFF} 10 | {$DEBUGINFO ON} 11 | {$EXTENDEDSYNTAX ON} 12 | {$IMPORTEDDATA ON} 13 | {$IOCHECKS ON} 14 | {$LOCALSYMBOLS ON} 15 | {$LONGSTRINGS ON} 16 | {$OPENSTRINGS ON} 17 | {$OPTIMIZATION ON} 18 | {$OVERFLOWCHECKS OFF} 19 | {$RANGECHECKS OFF} 20 | {$REFERENCEINFO ON} 21 | {$SAFEDIVIDE OFF} 22 | {$STACKFRAMES OFF} 23 | {$TYPEDADDRESS OFF} 24 | {$VARSTRINGCHECKS ON} 25 | {$WRITEABLECONST OFF} 26 | {$MINENUMSIZE 1} 27 | {$IMAGEBASE $400000} 28 | {$DESCRIPTION 'Flash ActiveX'} 29 | {$IMPLICITBUILD OFF} 30 | 31 | requires 32 | rtl, 33 | vcl; 34 | 35 | contains 36 | ShockwaveFlashObjects_TLB in 'ShockwaveFlashObjects_TLB.pas', 37 | ShockwaveEx in 'ShockwaveEx.pas', 38 | ShockwaveList in 'ShockwaveList.pas'; 39 | 40 | end. 41 | -------------------------------------------------------------------------------- /for.RnQ/Flash/FlashAX.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/for.RnQ/Flash/FlashAX.res -------------------------------------------------------------------------------- /for.RnQ/Flash/FlashAXD5.dpk: -------------------------------------------------------------------------------- 1 | package FlashAXD5; 2 | 3 | {$R *.RES} 4 | {$R 'ShockwaveEx.dcr'} 5 | {$R 'ShockwaveFlashObjects_TLB.dcr'} 6 | {$ALIGN ON} 7 | {$ASSERTIONS ON} 8 | {$BOOLEVAL OFF} 9 | {$DEBUGINFO ON} 10 | {$EXTENDEDSYNTAX ON} 11 | {$IMPORTEDDATA ON} 12 | {$IOCHECKS ON} 13 | {$LOCALSYMBOLS ON} 14 | {$LONGSTRINGS ON} 15 | {$OPENSTRINGS ON} 16 | {$OPTIMIZATION ON} 17 | {$OVERFLOWCHECKS OFF} 18 | {$RANGECHECKS OFF} 19 | {$REFERENCEINFO ON} 20 | {$SAFEDIVIDE OFF} 21 | {$STACKFRAMES OFF} 22 | {$TYPEDADDRESS OFF} 23 | {$VARSTRINGCHECKS ON} 24 | {$WRITEABLECONST ON} 25 | {$MINENUMSIZE 1} 26 | {$IMAGEBASE $400000} 27 | {$IMPLICITBUILD OFF} 28 | 29 | requires 30 | vcl50; 31 | 32 | contains 33 | ShockwaveEx in 'ShockwaveEx.pas', 34 | ShockwaveFlashObjects_TLB in 'ShockwaveFlashObjects_TLB.pas'; 35 | 36 | end. 37 | -------------------------------------------------------------------------------- /for.RnQ/Flash/FlashAXD5.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/for.RnQ/Flash/FlashAXD5.res -------------------------------------------------------------------------------- /for.RnQ/Flash/ShockwaveEx.dcr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/for.RnQ/Flash/ShockwaveEx.dcr -------------------------------------------------------------------------------- /for.RnQ/Flash/ShockwaveFlashObjects9_TLB.dcr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/for.RnQ/Flash/ShockwaveFlashObjects9_TLB.dcr -------------------------------------------------------------------------------- /for.RnQ/Flash/ShockwaveFlashObjects_TLB.dcr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/for.RnQ/Flash/ShockwaveFlashObjects_TLB.dcr -------------------------------------------------------------------------------- /for.RnQ/Flash/ShockwaveList.dcr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/for.RnQ/Flash/ShockwaveList.dcr -------------------------------------------------------------------------------- /for.RnQ/ForRnQConfig.inc: -------------------------------------------------------------------------------- 1 | // Freepascal 2 | {$ifdef FPC} 3 | {/$MODE DELPHIUNICODE} 4 | {$define D7UP} 5 | {$IFNDEF UNICODE} 6 | {$DEFINE STRING_NOT_UNICODE} 7 | {$ENDIF} 8 | {$ELSE ~FPC} 9 | {$IFNDEF UNICODE} 10 | {$DEFINE STRING_NOT_UNICODE} 11 | {$ENDIF} 12 | {$endif FPC} 13 | 14 | { $IFNDEF FPC} 15 | { $I \VTV\Source\Compilers.inc} 16 | { $ENDIF} 17 | 18 | {$DEFINE HAS_INLINE} // Added 20140409 19 | 20 | {$DEFINE HAS_FINAL} 21 | 22 | { $DEFINE RNQ} 23 | {$DEFINE RNQ_FULL} 24 | { $DEFINE CHAT_CEF} 25 | { $DEFINE RNQ_SERVICES} 26 | 27 | { $DEFINE DB_ENABLED} // Enable SQLite use 28 | 29 | { $DEFINE USE_REGUIN} 30 | { $DEFINE USE_SECUREIM} 31 | 32 | {$DEFINE NO_WIN98} //NOT allow use of hooks and some hacks special under Win98 33 | {$IFDEF UNICODE} 34 | {$DEFINE NO_WIN98} 35 | {$ENDIF UNICODE} 36 | 37 | 38 | {$IFDEF RNQ2} 39 | {$DEFINE DB_ENABLED} // Enable SQLite use 40 | {$DEFINE PREF_IN_DB} // Preferences in db 41 | {$ENDIF RNQ2} 42 | 43 | 44 | {$DEFINE NOT_USE_GDIPLUS} 45 | 46 | {$IF Defined(CHAT_CEF) or Defined(CHAT_SCI)} 47 | {$DEFINE PRESERVE_BIG_FILE} 48 | {$ELSE old CHAT} 49 | 50 | {$DEFINE SMILES_ANI_ENGINE} 51 | {$IFEND} 52 | 53 | { $DEFINE LANGDEBUG} 54 | { $DEFINE RQDEBUG} 55 | 56 | 57 | {$DEFINE Use_Baloons} 58 | 59 | {$DEFINE USE_ZIP} 60 | {$IFDEF RNQ} 61 | {$DEFINE ZIP_AES} 62 | {$ENDIF RNQ} 63 | { $DEFINE ZIP_ZSTD} 64 | 65 | 66 | {$DEFINE USE_SYMCRYPTO} 67 | {$DEFINE USE_MORMOT_COLLECTIONS} 68 | 69 | {$IFNDEF FPC} 70 | {$DEFINE UseNTLMAuthentication} 71 | {$DEFINE USE_IPv6} // IPv6 72 | {$DEFINE USE_SSL} // SSL 73 | { $DEFINE USE_7Z} 74 | {$DEFINE USE_RAR} 75 | {$IFDEF RNQ} 76 | {$DEFINE USE_SYMCRYPTO} 77 | {$ENDIF} 78 | {$ENDIF} 79 | 80 | 81 | { $DEFINE RNQ_LITE} 82 | { $DEFINE RNQ_PLAYER} 83 | { $DEFINE RNQ_FULL2} 84 | 85 | // { $DEFINE EUREKALOG} 86 | // { $DEFINE EUREKALOG_VER5} 87 | 88 | 89 | {$IFNDEF FPC} 90 | {$I Include\OverbyteIcsDefs.inc} 91 | 92 | { $IFDEF DELPHI9_UP} 93 | {$INLINE AUTO} 94 | { $INLINE ON} 95 | {$STRINGCHECKS OFF} 96 | { $ENDIF DELPHI9_UP} 97 | 98 | { $IFDEF DELPHI16_UP} 99 | {$O+} 100 | {$EXCESSPRECISION OFF} 101 | { $ENDIF DELPHI16_UP} 102 | 103 | {$ENDIF} 104 | 105 | 106 | -------------------------------------------------------------------------------- /for.RnQ/MenuSmiles.dfm: -------------------------------------------------------------------------------- 1 | object FSmiles: TFSmiles 2 | Left = 82 3 | Top = 291 4 | BiDiMode = bdLeftToRight 5 | BorderStyle = bsNone 6 | Caption = 'Smiles' 7 | ClientHeight = 271 8 | ClientWidth = 387 9 | Color = clBtnFace 10 | Font.Charset = RUSSIAN_CHARSET 11 | Font.Color = clWindowText 12 | Font.Height = -13 13 | Font.Name = 'Arial' 14 | Font.Style = [fsBold] 15 | FormStyle = fsStayOnTop 16 | KeyPreview = True 17 | OldCreateOrder = False 18 | ParentBiDiMode = False 19 | Position = poDefault 20 | OnClose = FormClose 21 | OnCreate = FormCreate 22 | OnHide = FormHide 23 | OnKeyDown = FormKeyDown 24 | OnShow = FormShow 25 | PixelsPerInch = 96 26 | TextHeight = 16 27 | object MenuSmilesBox: TPaintBox 28 | Left = 0 29 | Top = 0 30 | Width = 387 31 | Height = 271 32 | Align = alClient 33 | Color = clMenu 34 | Font.Charset = RUSSIAN_CHARSET 35 | Font.Color = clWindowText 36 | Font.Height = -11 37 | Font.Name = 'Tahoma' 38 | Font.Style = [] 39 | ParentColor = False 40 | ParentFont = False 41 | OnClick = MenuSmilesBoxClick 42 | OnMouseMove = MenuSmilesBoxMouseMove 43 | OnMouseUp = MenuSmilesBoxMouseUp 44 | OnPaint = MenuSmilesBoxPaint 45 | end 46 | object UpdTmr: TTimer 47 | Interval = 40 48 | OnTimer = UpdTmrTimer 49 | Left = 24 50 | Top = 16 51 | end 52 | end 53 | -------------------------------------------------------------------------------- /for.RnQ/MenuSmiles.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/for.RnQ/MenuSmiles.pas -------------------------------------------------------------------------------- /for.RnQ/Modified/ICS/Include/OverbyteIcsDefs.inc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/for.RnQ/Modified/ICS/Include/OverbyteIcsDefs.inc -------------------------------------------------------------------------------- /for.RnQ/NoRTTI.inc: -------------------------------------------------------------------------------- 1 | (* 2 | {$IFDEF COMPILER_14_UP} 3 | {$WEAKLINKRTTI ON} 4 | {$RTTI EXPLICIT METHODS([]) FIELDS([]) PROPERTIES([])} 5 | {$ENDIF COMPILER_14_UP} 6 | *) 7 | 8 | {$IFNDEF FPC} 9 | 10 | {$if CompilerVersion >= 21} // By Rapid D 11 | { $IFDEF NO_EXTENDED_RTTI} 12 | {$WEAKLINKRTTI ON} 13 | {$RTTI EXPLICIT METHODS([]) FIELDS([]) PROPERTIES([])} 14 | { $ENDIF} 15 | {$ifend} 16 | 17 | {$ENDIF} 18 | 19 | -------------------------------------------------------------------------------- /for.RnQ/NotRnQUtils.pas: -------------------------------------------------------------------------------- 1 | { 2 | This file is part of R&Q. 3 | Under same license 4 | } 5 | unit NotRnQUtils; 6 | {$I ForRnQConfig.inc} 7 | {$I NoRTTI.inc} 8 | 9 | interface 10 | //uses 11 | // iniFiles, 12 | 13 | {$IFNDEF RNQ} 14 | function getTranslation(const key: AnsiString; const args: array of const): String; overload; 15 | function getTranslation(const key: AnsiString): String; overload; 16 | 17 | {$IFDEF UNICODE} 18 | function getTranslation(const key: UnicodeString; const args: array of const): string; overload; 19 | function getTranslation(const key: UnicodeString): string; overload; 20 | {$ENDIF UNICODE} 21 | 22 | {$ENDIF RNQ} 23 | 24 | implementation 25 | 26 | uses 27 | SysUtils, StrUtils, Masks; 28 | 29 | ////////////////////////////////////////////////////////////////////////// 30 | {$IFNDEF RNQ} 31 | function getTranslation(const key: AnsiString): string; 32 | begin 33 | result := key; 34 | result := ansiReplaceStr(result, '\n', #13); 35 | end; // getTranslation 36 | 37 | function getTranslation(const key: Ansistring; const args: array of const): String; 38 | //var 39 | // s : extended; 40 | begin 41 | Result := key; 42 | 43 | if Length(args) > 0 then 44 | try 45 | result:=format(result, args); 46 | except 47 | 48 | end; 49 | result:=ansiReplaceStr(result, '\n', #13); 50 | //result:=ansiReplaceStr(result, '\s', ' '); 51 | end; // getTranslation 52 | 53 | {$IFDEF UNICODE} 54 | function getTranslation(const key: String): string; 55 | begin 56 | Result := key; 57 | result:=ansiReplaceStr(result,'\n', #13); 58 | end; // getTranslation 59 | 60 | function getTranslation(const key: string; const args: array of const):string; 61 | //var 62 | // s : extended; 63 | begin 64 | Result := key; 65 | if Length(args) > 0 then 66 | try 67 | result:=format(result, args); 68 | except 69 | 70 | end; 71 | result:=ansiReplaceStr(result,'\n',#13); 72 | //result:=ansiReplaceStr(result,'\s',' '); 73 | end; // getTranslation 74 | {$ENDIF UNICODE} 75 | 76 | {$ENDIF RNQ} 77 | 78 | 79 | end. 80 | -------------------------------------------------------------------------------- /for.RnQ/RQMenuItem.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/for.RnQ/RQMenuItem.pas -------------------------------------------------------------------------------- /for.RnQ/RQThemes.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/for.RnQ/RQThemes.pas -------------------------------------------------------------------------------- /for.RnQ/RQUtil.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/for.RnQ/RQUtil.pas -------------------------------------------------------------------------------- /for.RnQ/RQlog.dfm: -------------------------------------------------------------------------------- 1 | object logFrm: TlogFrm 2 | Left = 192 3 | Top = 103 4 | Caption = 'Log' 5 | ClientHeight = 341 6 | ClientWidth = 602 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'MS Sans Serif' 12 | Font.Style = [] 13 | OnClose = FormClose 14 | OnCreate = FormCreate 15 | OnDestroy = FormDestroy 16 | OnShow = FormShow 17 | TextHeight = 13 18 | object Splitter1: TSplitter 19 | Left = 0 20 | Top = 165 21 | Width = 602 22 | Height = 3 23 | Cursor = crVSplit 24 | Align = alBottom 25 | ExplicitTop = 155 26 | end 27 | object dumpBox: TMemo 28 | Left = 0 29 | Top = 168 30 | Width = 602 31 | Height = 173 32 | Align = alBottom 33 | Font.Charset = DEFAULT_CHARSET 34 | Font.Color = clWindowText 35 | Font.Height = -11 36 | Font.Name = 'Courier New' 37 | Font.Style = [] 38 | ParentFont = False 39 | ReadOnly = True 40 | ScrollBars = ssBoth 41 | TabOrder = 0 42 | end 43 | object menu: TPopupMenu 44 | Left = 104 45 | Top = 32 46 | object CopytoClipboard1: TMenuItem 47 | Caption = 'Copy to Clipboard' 48 | OnClick = CopytoClipboard1Click 49 | end 50 | object Clear1: TMenuItem 51 | Caption = 'Clear' 52 | OnClick = Clear1Click 53 | end 54 | object Showevents1: TMenuItem 55 | AutoCheck = True 56 | Caption = 'Show events' 57 | Checked = True 58 | OnClick = Showevents1Click 59 | end 60 | object Showpackets1: TMenuItem 61 | AutoCheck = True 62 | Caption = 'Show packets' 63 | Checked = True 64 | OnClick = Showpackets1Click 65 | end 66 | end 67 | end 68 | -------------------------------------------------------------------------------- /for.RnQ/RQmsgs.dfm: -------------------------------------------------------------------------------- 1 | object msgsFrm: TmsgsFrm 2 | Left = 324 3 | Top = 270 4 | Caption = 'R&Q' 5 | ClientHeight = 225 6 | ClientWidth = 342 7 | Color = clBtnFace 8 | Constraints.MinWidth = 350 9 | Font.Charset = DEFAULT_CHARSET 10 | Font.Color = clWindowText 11 | Font.Height = -11 12 | Font.Name = 'MS Sans Serif' 13 | Font.Style = [] 14 | KeyPreview = True 15 | OldCreateOrder = False 16 | OnClose = FormClose 17 | OnCreate = FormCreate 18 | OnKeyDown = FormKeyDown 19 | OnResize = FormResize 20 | OnShow = FormShow 21 | PixelsPerInch = 96 22 | TextHeight = 13 23 | end 24 | -------------------------------------------------------------------------------- /for.RnQ/RTL/Murmur2.pas: -------------------------------------------------------------------------------- 1 | unit Murmur2; 2 | 3 | interface 4 | 5 | uses 6 | SysUtils, Classes; 7 | 8 | function CalcMurmur2(const Bytes: TBytes; const Seed: LongWord = $9747B28C): LongWord; overload; 9 | function CalcMurmur2(Stream: TStream; const Seed: LongWord = $9747B28C): LongWord; overload; 10 | 11 | implementation 12 | 13 | {$OVERFLOWCHECKS OFF} 14 | 15 | function CalcMurmur2(const Bytes: TBytes; const Seed: LongWord = $9747B28C): LongWord; 16 | var 17 | hash: LongWord; 18 | len: LongWord; 19 | k: LongWord; 20 | data: Integer; 21 | const 22 | // 'm' and 'r' are mixing constants generated offline. 23 | // They're not really 'magic', they just happen to work well. 24 | m = $5BD1E995; 25 | r = 24; 26 | begin 27 | len := Length(Bytes); 28 | 29 | // The default seed, $9747b28c, is from the original C library 30 | 31 | // Initialize the hash to a 'random' value 32 | hash := Seed xor len; 33 | 34 | // Mix 4 bytes at a time into the hash 35 | data := 0; 36 | 37 | while (len >= 4) do 38 | begin 39 | k := PLongWord(@Bytes[data])^; 40 | 41 | k := k * m; 42 | k := k xor (k shr r); 43 | k := k * m; 44 | 45 | hash := hash * m; 46 | hash := hash xor k; 47 | 48 | inc(data, 4); 49 | dec(len, 4); 50 | end; 51 | 52 | { Handle the last few bytes of the input array 53 | S: ... $69 $18 $2f 54 | } 55 | Assert(len <= 3); 56 | if len = 3 then 57 | hash := hash xor (LongWord(Bytes[data + 2]) shl 16); 58 | if len >= 2 then 59 | hash := hash xor (LongWord(Bytes[data + 1]) shl 8); 60 | if len >= 1 then 61 | begin 62 | hash := hash xor (LongWord(Bytes[data])); 63 | hash := hash * m; 64 | end; 65 | 66 | // Do a few final mixes of the hash to ensure the last few 67 | // bytes are well-incorporated. 68 | hash := hash xor (hash shr 13); 69 | hash := hash * m; 70 | hash := hash xor (hash shr 15); 71 | 72 | Result := hash; 73 | end; 74 | 75 | function CalcMurmur2(Stream: TStream; const Seed: LongWord = $9747B28C): LongWord; 76 | var 77 | SavePosition: Int64; 78 | Bytes: TBytes; 79 | begin 80 | SavePosition := Stream.Position; 81 | try 82 | Stream.Position := 0; 83 | SetLength(Bytes, Stream.Size); 84 | Stream.ReadBuffer(Pointer(Bytes)^, Length(Bytes)); 85 | Result := CalcMurmur2(Bytes); 86 | finally 87 | Stream.Position := SavePosition; 88 | end; 89 | end; 90 | 91 | end. -------------------------------------------------------------------------------- /for.RnQ/RTL/RDFileUtil.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/for.RnQ/RTL/RDFileUtil.pas -------------------------------------------------------------------------------- /for.RnQ/RTL/RDSysUtils.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/for.RnQ/RTL/RDSysUtils.pas -------------------------------------------------------------------------------- /for.RnQ/RTL/RDUtils.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/for.RnQ/RTL/RDUtils.pas -------------------------------------------------------------------------------- /for.RnQ/RTL/RnQ.Graphics.Utils.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/for.RnQ/RTL/RnQ.Graphics.Utils.pas -------------------------------------------------------------------------------- /for.RnQ/RTL/RnQBinUtils.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/for.RnQ/RTL/RnQBinUtils.pas -------------------------------------------------------------------------------- /for.RnQ/RTL/RnQGraphics32.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/for.RnQ/RTL/RnQGraphics32.pas -------------------------------------------------------------------------------- /for.RnQ/RTL/cgJpeg.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/for.RnQ/RTL/cgJpeg.pas -------------------------------------------------------------------------------- /for.RnQ/RTL/libJPEG.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/for.RnQ/RTL/libJPEG.pas -------------------------------------------------------------------------------- /for.RnQ/RnQCrypt.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/for.RnQ/RnQCrypt.pas -------------------------------------------------------------------------------- /for.RnQ/RnQFileUtil.pas: -------------------------------------------------------------------------------- 1 | { 2 | This file is part of R&Q. 3 | Under same license 4 | } 5 | unit RnQFileUtil; 6 | {$I ForRnQConfig.inc} 7 | {$I NoRTTI.inc} 8 | 9 | interface 10 | uses 11 | Windows, RDGlobal, 12 | Classes; 13 | 14 | // file management 15 | function appendFile(const fn: string; const data: RawByteString): boolean; 16 | 17 | implementation 18 | uses 19 | {$IFDEF RNQ} 20 | RQUtil, RnQGlobal, 21 | RnQLangs, 22 | RnQDialogs, 23 | {$ENDIF RNQ} 24 | SysUtils 25 | ; 26 | 27 | 28 | function appendFile(const fn: string; const data: RawByteString): boolean; 29 | var 30 | fs : TFileStream; 31 | md : Word; 32 | b : Boolean; 33 | begin 34 | if FileExists(fn) then 35 | md := fmOpenWrite 36 | else 37 | md := fmCreate; 38 | fs := NIL; 39 | try 40 | md := md or fmShareDenyWrite; 41 | fs := TFileStream.Create(fn, md); 42 | // if fs then 43 | fs.Seek(0, soFromEnd); 44 | fs.WriteBuffer(data[1], length(data)); 45 | result := True; 46 | fs.Free; 47 | except 48 | if Assigned(fs) then fs.Free; 49 | result := false; 50 | {$IFDEF RNQ} 51 | b := logpref.evts.onfile; 52 | logpref.evts.onfile := False; 53 | msgdlg( getTranslation('Coudn''t append file %s', [fn]), False, mtError); 54 | logpref.evts.onfile := b; 55 | {$ENDIF RNQ} 56 | end; 57 | { 58 | var 59 | f:file; 60 | b : Boolean; 61 | begin 62 | IOresult; 63 | assignFile(f,fn); 64 | reset(f,1); 65 | if IOresult <> 0 then 66 | rewrite(f,1) 67 | else 68 | seek(f,fileSize(f)); 69 | blockWrite(f, data[1], length(data)); 70 | closeFile(f); 71 | result:=IOresult=0; 72 | if not result then 73 | begin 74 | b := logpref.evts.onfile; 75 | logpref.evts.onfile := False; 76 | msgdlg( getTranslation('Coudn''t append file %s', [fn]), mtError); 77 | logpref.evts.onfile := b; 78 | end; } 79 | end; // appendFile 80 | 81 | 82 | end. 83 | -------------------------------------------------------------------------------- /for.RnQ/RnQGlobal.pas: -------------------------------------------------------------------------------- 1 | { 2 | This file is part of R&Q. 3 | Under same license 4 | } 5 | unit RnQGlobal; 6 | {$I ForRnQConfig.inc} 7 | {$I NoRTTI.inc} 8 | 9 | { $ DEFINE RNQ_PLAYER} 10 | 11 | interface 12 | uses 13 | Forms, Classes, Messages, ExtCtrls, Types, 14 | {$IFDEF RNQ_PLAYER} 15 | BASSplayer, 16 | {$ENDIF RNQ_PLAYER} 17 | // fxRegistryFile, 18 | // RQThemes, 19 | // SXZipUtils, 20 | Graphics; 21 | 22 | const 23 | eventslogFilename = 'events.log'; 24 | defaultThemePrefix = 'RQ.'; 25 | defaultThemePostfix = 'theme.ini'; 26 | // paths 27 | themesPath = 'themes\'; 28 | pluginsPath = 'plugins\'; 29 | accountsPath = 'Accounts\'; 30 | {$IFDEF CPUX64} 31 | modulesPath = 'modules.x64\'; 32 | {$ELSE} 33 | modulesPath = 'modules\'; 34 | {$ENDIF CPUX64} 35 | 36 | maxPICAVTW = 200; 37 | maxPICAVTH = 200; 38 | maxSWFAVTW = 100; 39 | maxSWFAVTH = 100; 40 | 41 | RnQImageTag = AnsiString(''); 42 | RnQImageUnTag = AnsiString(''); 43 | RnQImageExTag = AnsiString(''); 44 | RnQImageExUnTag = AnsiString(''); 45 | // RnQTrayIconGUID: TGUID = '{0629FFDF-0F1A-40A1-BB6F-32942AD6DF17}'; 46 | 47 | var 48 | timeformat: record 49 | chat, 50 | info, 51 | clock, 52 | log, 53 | automsg: string; 54 | end; 55 | logpref: record 56 | pkts, evts: record 57 | onFile, onWindow, clear: Boolean; 58 | end; 59 | writehistory: Boolean; 60 | end; 61 | 62 | 63 | var 64 | myPath : String; 65 | logPath : String; 66 | RnQUser : String; 67 | RnQMainPath : String; 68 | // rqSmiles : TRQTheme; 69 | ShowSmileCaption, 70 | MenuHeightPerm, 71 | MenuDrawExt, 72 | bringInfoFrgd, 73 | // MakeBakups, 74 | {$IFDEF LANGDEBUG} 75 | lang_debug, 76 | {$ENDIF LANGDEBUG} 77 | disableSounds, 78 | playSounds, 79 | showBalloons: Boolean; 80 | audioPresent : Boolean = false; 81 | picDrawFirstLtr : Boolean = false; 82 | TranslitList : TStringList; 83 | SoundVolume : Integer; 84 | TextBGColor : TColor; 85 | 86 | var 87 | {$IFDEF RNQ_PLAYER} 88 | RnQbPlayer: TBASSplayer; 89 | {$ELSE RNQ_PLAYER} 90 | Soundhndl: THandle; 91 | {$ENDIF RNQ_PLAYER} 92 | 93 | const 94 | EMAILCHARS = ['a'..'z','A'..'Z','0'..'9','-','_','.']; 95 | 96 | type 97 | TGroupAction = (GA_None = 0, GA_Add, GA_Rename, GA_Remove); 98 | 99 | 100 | implementation 101 | uses 102 | Windows, Controls; 103 | 104 | 105 | end. 106 | -------------------------------------------------------------------------------- /for.RnQ/RnQLangFrm.dfm: -------------------------------------------------------------------------------- 1 | object FrmLangs: TFrmLangs 2 | Left = 0 3 | Top = 0 4 | Caption = 'Select a language' 5 | ClientHeight = 274 6 | ClientWidth = 243 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | Position = poScreenCenter 15 | OnCreate = FormCreate 16 | PixelsPerInch = 96 17 | TextHeight = 13 18 | object LangsBox: TVirtualDrawTree 19 | Left = 0 20 | Top = 0 21 | Width = 243 22 | Height = 224 23 | Align = alClient 24 | Header.AutoSizeIndex = 0 25 | Header.MainColumn = -1 26 | Header.Options = [hoColumnResize, hoDrag] 27 | TabOrder = 0 28 | TreeOptions.MiscOptions = [toAcceptOLEDrop, toFullRepaintOnResize, toGridExtensions, toInitOnSave, toToggleOnDblClick, toWheelPanning] 29 | TreeOptions.PaintOptions = [toShowButtons, toShowDropmark, toShowTreeLines, toThemeAware, toUseBlendedImages] 30 | TreeOptions.SelectionOptions = [toFullRowSelect, toMiddleClickSelect, toRightClickSelect] 31 | OnDblClick = LangsBoxDblClick 32 | OnDrawNode = LangsBoxDrawNode 33 | OnFocusChanged = LangsBoxFocusChanged 34 | OnFreeNode = LangsBoxFreeNode 35 | Columns = <> 36 | end 37 | object PnlBtn: TPanel 38 | Left = 0 39 | Top = 224 40 | Width = 243 41 | Height = 50 42 | Align = alBottom 43 | TabOrder = 1 44 | object BtnOk: TRnQButton 45 | Left = 22 46 | Top = 16 47 | Width = 75 48 | Height = 25 49 | Caption = 'Ok' 50 | Default = True 51 | ModalResult = 1 52 | TabOrder = 0 53 | OnClick = BtnOkClick 54 | ImageName = 'ok' 55 | end 56 | object BtnCncl: TRnQButton 57 | Left = 136 58 | Top = 16 59 | Width = 75 60 | Height = 25 61 | Cancel = True 62 | Caption = 'Cancel' 63 | ModalResult = 2 64 | TabOrder = 1 65 | end 66 | end 67 | end 68 | -------------------------------------------------------------------------------- /for.RnQ/RnQNet.Uploads.Lib.pas: -------------------------------------------------------------------------------- 1 | unit RnQNet.Uploads.Lib; 2 | {$I forRnQConfig.inc} 3 | {$I NoRTTI.inc} 4 | 5 | interface 6 | 7 | uses 8 | Classes, 9 | RDGlobal 10 | ; 11 | 12 | type 13 | TarchiveStream = class(Tstream) 14 | protected 15 | pos, cachedTotal: int64; 16 | cur: integer; 17 | aHTTPHeader: RawByteString; 18 | procedure invalidate(); 19 | procedure calculate(); virtual; abstract; 20 | function getTotal(): int64; 21 | public 22 | flist: array of record 23 | src, // full path of the file on the disk 24 | dst: string; // full path of the file in the archive 25 | firstByte, // offset of the file inside the archive 26 | mtime, 27 | size: int64; 28 | data: Tobject; // extra data 29 | end; 30 | onDestroy: TNotifyEvent; 31 | 32 | constructor create; 33 | destructor Destroy; override; 34 | function addFile(const src: string; dst: string=''; data: Tobject=NIL): boolean; virtual; 35 | function count(): integer; 36 | procedure reset(); virtual; 37 | property totalSize: int64 read getTotal; 38 | property current: integer read cur; 39 | end; // TarchiveStream 40 | 41 | implementation 42 | 43 | uses 44 | Windows, SysUtils, StrUtils, DateUtils, math, 45 | {$IFDEF UNICODE} 46 | AnsiStrings, 47 | {$ENDIF UNICODE} 48 | RDFileUtil, RDUtils 49 | ; 50 | 51 | function InputText(Boundry, Name, Value: RawByteString): RawByteString; 52 | begin 53 | result := format(AnsiString(RawByteString('%s') + CRLF + 'Content-Disposition: form-data; name="%s"' + CRLF + CRLF + '%s' + CRLF), 54 | [AnsiString('--') + boundry, name, value]); 55 | end; 56 | 57 | //////////// TarchiveStream 58 | 59 | function TarchiveStream.getTotal():int64; 60 | begin 61 | if cachedTotal < 0 then 62 | calculate(); 63 | result := cachedTotal; 64 | end; // getTotal 65 | 66 | function TarchiveStream.addFile(const src: string; dst: string=''; data: Tobject=NIL): boolean; 67 | 68 | function getMtime(fh: Thandle): int64; 69 | var 70 | ctime, atime, mtime: Tfiletime; 71 | st: TSystemTime; 72 | begin 73 | getFileTime(fh, @ctime, @atime, @mtime); 74 | fileTimeToSystemTime(mtime, st); 75 | result:=dateTimeToUnix(SystemTimeToDateTime(st)); 76 | end; // getMtime 77 | 78 | var 79 | i, fh: integer; 80 | begin 81 | result := FALSE; 82 | fh := fileopen(src, fmOpenRead+fmShareDenyNone); 83 | if fh = -1 then 84 | exit; 85 | result := TRUE; 86 | if dst = '' then 87 | dst := extractFileName(src); 88 | i := length(flist); 89 | setLength(flist, i+1); 90 | flist[i].src := src; 91 | flist[i].dst := dst; 92 | flist[i].data := data; 93 | flist[i].size := sizeOfFile(src); 94 | flist[i].mtime := getMtime(fh); 95 | flist[i].firstByte := -1; 96 | fileClose(fh); 97 | invalidate(); 98 | end; // addFile 99 | 100 | procedure TarchiveStream.invalidate(); 101 | begin 102 | cachedTotal := -1 103 | end; 104 | 105 | constructor TarchiveStream.create; 106 | begin 107 | inherited; 108 | reset(); 109 | end; // create 110 | 111 | destructor TarchiveStream.destroy; 112 | begin 113 | if assigned(onDestroy) then 114 | onDestroy(self); 115 | inherited; 116 | end; // destroy 117 | 118 | procedure TarchiveStream.reset(); 119 | begin 120 | flist := NIL; 121 | cur := 0; 122 | pos := 0; 123 | invalidate(); 124 | end; // reset 125 | 126 | function TarchiveStream.count(): integer; 127 | begin 128 | result := length(flist) 129 | end; 130 | 131 | 132 | end. 133 | -------------------------------------------------------------------------------- /for.RnQ/RnQPrefsInt.pas: -------------------------------------------------------------------------------- 1 | { 2 | This file is part of R&Q. 3 | Under same license 4 | } 5 | unit RnQPrefsInt; 6 | {$I ForRnQConfig.inc} 7 | {$I NoRTTI.inc} 8 | 9 | interface 10 | uses 11 | Windows, Classes, 12 | // Forms, 13 | // iniFiles, 14 | RDGlobal; 15 | 16 | type 17 | TPrefKey = String; 18 | IRnQPref = interface 19 | function getDPrefStr(const key: TPrefKey): String; 20 | function getDPrefStrList(const key: TPrefKey): TStringList; 21 | function getDPrefBool(const key: TPrefKey): Boolean; 22 | function getDPrefBlob(const key: TPrefKey): RawByteString; 23 | function getDPrefBlob64(const key: TPrefKey): RawByteString; 24 | function getDPrefInt(const key: TPrefKey): Integer; 25 | function getDPrefDate(const key: TPrefKey): TDateTime; 26 | function getDPrefDateTime(const key: TPrefKey): TDateTime; 27 | function getDPrefGuid(const key: TPrefKey): TGUID; 28 | 29 | function getPrefStr(const key: TPrefKey; var Val: String): Boolean; 30 | function getPrefStrList(const key: TPrefKey; var Val: TStringList): Boolean; 31 | function getPrefBool(const key: TPrefKey; var Val: Boolean): Boolean; 32 | function getPrefBlob(const key: TPrefKey; var Val: RawByteString): Boolean; 33 | function getPrefBlob64(const key: String; var Val: RawByteString): Boolean; 34 | function getPrefInt(const key: TPrefKey; var Val: Integer): Boolean; 35 | function getPrefDate(const key: String; var Val: TDateTime): Boolean; 36 | function getPrefDateTime(const key: String; var Val: TDateTime): Boolean; 37 | // procedure getPrefValue(const key: TPrefKey; et: TElemType; var Val: TPrefElem); 38 | function getPrefGuid(const key: TPrefKey; var Val: TGUID): Boolean; 39 | function getPrefBoolDef(const key: TPrefKey; const DefVal: Boolean): Boolean; 40 | function getPrefBlobDef(const key: TPrefKey; const DefVal: RawByteString = ''): RawByteString; 41 | function getPrefBlob64Def(const key: TPrefKey; const DefVal: RawByteString = ''): RawByteString; 42 | function getPrefStrDef(const key: TPrefKey; const DefVal: String = ''): String; 43 | function getPrefIntDef(const key: TPrefKey; const DefVal: Integer = -1): Integer; 44 | // function getPrefVal(const key: TPrefKey): TPrefElement; 45 | 46 | procedure DeletePref(const key: TPrefKey); 47 | function prefExists(const key: TPrefKey): Boolean; 48 | 49 | procedure addPrefBlobOld(const key: TPrefKey; const Val: RawByteString); 50 | procedure addPrefBlob64(const key: TPrefKey; const Val: RawByteString); 51 | procedure addPrefInt(const key: TPrefKey; const Val: Integer); 52 | procedure addPrefBool(const key: TPrefKey; const Val: Boolean); 53 | procedure addPrefStr(const key: TPrefKey; const Val: String); 54 | procedure addPrefStrList(const key: TPrefKey; const Val: TStringList); 55 | procedure addPrefTime(const key: TPrefKey; const Val: TDateTime); 56 | {$IFDEF DELPHI9_UP} 57 | procedure addPrefDate(const key: TPrefKey; const Val: TDate); 58 | {$ENDIF DELPHI9_UP} 59 | procedure addPrefGuid(const key: TPrefKey; const Val: TGUID); 60 | procedure addPrefParam(param: TObject); 61 | {$IFDEF RNQ} 62 | procedure addPrefArrParam(param: array of TObject); 63 | procedure getPrefArrParam(param: array of TObject); 64 | {$ENDIF RNQ} 65 | procedure initPrefBool(const key: TPrefKey; const Val: Boolean); 66 | procedure initPrefInt(const key: TPrefKey; const Val: Integer); 67 | procedure initPrefStr(const key: TPrefKey; const Val: String); 68 | 69 | procedure BeginUpdate; 70 | procedure EndUpdate; 71 | 72 | // property isUpdating: Boolean; 73 | end; 74 | 75 | 76 | implementation 77 | 78 | 79 | end. 80 | -------------------------------------------------------------------------------- /for.RnQ/RnQStrings.pas: -------------------------------------------------------------------------------- 1 | { 2 | This file is part of R&Q. 3 | Under same license 4 | } 5 | unit RnQStrings; 6 | 7 | { $MODE Delphi} 8 | 9 | {$I ForRnQConfig.inc} 10 | {$I NoRTTI.inc} 11 | 12 | interface 13 | 14 | uses 15 | RDGlobal; 16 | 17 | const 18 | Str_message = 'Message'; 19 | Str_roster = 'roaster'; 20 | Str_unk = 'Unknown'; 21 | Str_Error = 'Error'; 22 | Str_already_run = 'There is another instance with this user already running'; 23 | Str_unsupported = 'This function is not supported yet'+CRLF + 'Please inform us if you need it!'; 24 | // Str_authRequest = 'Authorization Request\nPlease authorize my request and add me to your Contact List.'; 25 | Str_authRequest = 'Please authorize my request and add me to your Contact List.'; 26 | // not2Translate: array[0..2] of string = ('R&Q', 'http://RnQ.ru', 'Rapid D'); 27 | not2Translate: array[0..4] of AnsiString = ('R&Q', 'http://RnQ.ru', 28 | 'Massimo Melina', 'Rapid D', 'R&&Q Team'); 29 | not2TranslateSite = 1; 30 | implementation 31 | 32 | end. 33 | -------------------------------------------------------------------------------- /for.RnQ/RnQtrayLib.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/for.RnQ/RnQtrayLib.pas -------------------------------------------------------------------------------- /for.RnQ/SQLite/1/readme.txt: -------------------------------------------------------------------------------- 1 | Simple SQLite3 class wrapper for Delphi. 2 | 3 | sqlite3.pas - a simple class wrapper for sqlite3 4 | sqlite3dll.pas - Pascal interface to the C functions in sqlite3.dll 5 | sqlite3.dll - dynamic link library from www.sqlite.org 6 | 7 | How to use in Delphi 7. . . 8 | 9 | uses sqlite3; 10 | . 11 | . 12 | . 13 | var db: TSqliteDatabase; 14 | . 15 | . 16 | . 17 | db := TSqliteDatabase.Open('my.db'); 18 | 19 | // to fetch records from a query 20 | // 21 | with db.Query('select f1,f2 from tbl where f1>0') do begin 22 | while not Eof do begin 23 | writeln(FieldAsInt(0), FieldAsString(1)); 24 | Next; 25 | end; 26 | Free; 27 | end; 28 | 29 | // to execute a command without fetching the results 30 | // 31 | db.ExecSQL('delete from tbl where f1=0'); 32 | 33 | // to execute a command w/ parameters 34 | // 35 | db.CompileSQL('insert into tbl(f1,f2) values(?,?)'); 36 | db.SetParam(123); 37 | db.SetParam('abc'); 38 | db.RunSQL; 39 | 40 | // when you're done 41 | // 42 | db.Free; 43 | -------------------------------------------------------------------------------- /for.RnQ/SQLite/1/sqlite3dll.pas: -------------------------------------------------------------------------------- 1 | // 2 | // Interface to the library functions in 'sqlite3.dll'. 3 | // 4 | unit sqlite3dll; 5 | 6 | interface 7 | 8 | const 9 | SQLITE_DONE = 101; 10 | 11 | type 12 | TPCharArray = array [0..(MaxLongint div sizeOf(PChar))-1] of PChar; 13 | PPCharArray = ^TPCharArray; 14 | 15 | function sqlite3_open(filename: pchar; var db: pointer): integer; cdecl; external 'sqlite3.dll'; 16 | function sqlite3_close(db: pointer): integer; cdecl; external 'sqlite3.dll'; 17 | function sqlite3_exec(db: pointer; sql: pchar; callback: pointer; userdata: pchar; var errmsg: pchar): integer; cdecl; external 'sqlite3.dll'; 18 | procedure sqlite3_free(ptr: pchar); cdecl; external 'sqlite3.dll'; 19 | function sqlite3_prepare(db: pointer; sql: pchar; nBytes: integer; var stmt: pointer; var ztail: pchar): integer; cdecl; external 'sqlite3.dll'; 20 | function sqlite3_step(stmt: pointer): integer; cdecl; external 'sqlite3.dll'; 21 | function sqlite3_finalize(stmt: pointer): integer; cdecl; external 'sqlite3.dll'; 22 | function sqlite3_errmsg(db: pointer): pchar; cdecl; external 'sqlite3.dll'; 23 | function sqlite3_errcode(db: pointer): integer; cdecl; external 'sqlite3.dll'; 24 | function sqlite3_get_table(db: pointer; sql: pchar; var result: PPCharArray; var RowCount: Cardinal; var ColCount: Cardinal; var errmsg: pchar): integer; cdecl; external 'sqlite3.dll'; 25 | procedure sqlite3_free_table(table: PPCharArray); cdecl; external 'sqlite3.dll'; 26 | function sqlite3_last_insert_rowid(db: pointer): int64; cdecl; external 'sqlite3.dll'; 27 | procedure sqlite3_interrupt(db: pointer); cdecl; external 'sqlite3.dll'; 28 | 29 | function sqlite3_column_count(stmt: pointer): integer; cdecl; external 'sqlite3.dll'; 30 | function sqlite3_column_name(stmt: pointer; ColNum: integer): pchar; cdecl; external 'sqlite3.dll'; 31 | function sqlite3_column_type(stmt: pointer; col: integer): integer; cdecl; external 'sqlite3.dll'; 32 | function sqlite3_column_bytes(stmt: pointer; col: integer): integer; cdecl; external 'sqlite3.dll'; 33 | function sqlite3_column_blob(stmt: pointer; col: integer): pointer; cdecl; external 'sqlite3.dll'; 34 | function sqlite3_column_double(stmt: pointer; col: integer): double; cdecl; external 'sqlite3.dll'; 35 | function sqlite3_column_int(stmt: pointer; col: integer): integer; cdecl; external 'sqlite3.dll'; 36 | function sqlite3_column_int64(stmt: pointer; col: integer): Int64; cdecl; external 'sqlite3.dll'; 37 | function sqlite3_column_text(stmt: pointer; col: integer): pchar; cdecl; external 'sqlite3.dll'; 38 | function sqlite3_bind_blob(stmt: pointer; param: integer; blob: pointer; size: integer; freeproc: pointer): integer; cdecl; external 'sqlite3.dll'; 39 | function sqlite3_bind_text(stmt: pointer; param: integer; text: PChar; size: integer; freeproc: pointer): integer; cdecl; external 'sqlite3.dll'; 40 | function sqlite3_bind_int64(stmt: pointer; param: integer; value: int64): integer; cdecl; external 'sqlite3.dll'; 41 | function sqlite3_bind_double(stmt: pointer; param: integer; value: double): integer; cdecl; external 'sqlite3.dll'; 42 | 43 | implementation 44 | 45 | end. 46 | 47 | -------------------------------------------------------------------------------- /for.RnQ/SQLite/RnQDB.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/for.RnQ/SQLite/RnQDB.pas -------------------------------------------------------------------------------- /for.RnQ/VCL/RDTipDlg.dfm: -------------------------------------------------------------------------------- 1 | object RDTipFrm: TRDTipFrm 2 | Left = 358 3 | Top = 208 4 | BorderStyle = bsNone 5 | ClientHeight = 120 6 | ClientWidth = 232 7 | Color = clInfoBk 8 | TransparentColorValue = clInfoBk 9 | Font.Charset = DEFAULT_CHARSET 10 | Font.Color = clWindowText 11 | Font.Height = -11 12 | Font.Name = 'MS Sans Serif' 13 | Font.Style = [] 14 | OnClose = FormClose 15 | OnCreate = FormCreate 16 | OnDestroy = FormDestroy 17 | OnMouseDown = FormMouseDown 18 | OnMouseUp = FormMouseUp 19 | PixelsPerInch = 96 20 | TextHeight = 13 21 | end 22 | -------------------------------------------------------------------------------- /for.RnQ/VCL/RDTipDlg.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/for.RnQ/VCL/RDTipDlg.pas -------------------------------------------------------------------------------- /for.RnQ/clear.bat: -------------------------------------------------------------------------------- 1 | @FOR /r %%R IN (*.~*) DO @IF EXIST %%R (del /s /q "%%R") 2 | @FOR /r %%R IN (*.identcache) DO @IF EXIST %%R (del /s /q "%%R") 3 | @FOR /r %%R IN (*.bak) DO @IF EXIST %%R (del /s /q "%%R") 4 | @FOR /r %%R IN (*.stat) DO @IF EXIST %%R (del /s /q "%%R") 5 | @FOR /r %%R IN (*.dcu) DO @IF EXIST %%R (del /s /q "%%R") 6 | @REM FOR /r %%R IN (*.o) DO IF EXIST %%R (del /s /q "%%R") 7 | @IF EXIST "*.dcu" del *.dcu 8 | @IF EXIST "*.ppu" del *.ppu 9 | @IF EXIST "AES\*.dcu" del AES\*.dcu 10 | @IF EXIST "Bass\*.dcu" del Bass\*.dcu 11 | @IF EXIST "Flash\*.dcu" del Flash\*.dcu 12 | @IF EXIST "NativeJpg\Source\*.dcu" del NativeJpg\Source\*.dcu 13 | @IF EXIST VTV\Source\*.dcu del VTV\Source\*.dcu 14 | @IF EXIST VTV\Source\*.bak del VTV\Source\*.bak 15 | @IF EXIST xml\*.dcu del xml\*.dcu 16 | @IF EXIST RSA\*.dcu del RSA\*.dcu 17 | @IF EXIST "xml\__history\*" del /q xml\__history\* 18 | @IF EXIST "VTV\Source\__history\*" del /q VTV\Source\__history\* 19 | @IF EXIST Zip\*.dcu @del Zip\*.dcu 20 | @IF EXIST "Zip\__history\*" del /q Zip\__history\* 21 | @IF EXIST .\Units\*.dcu @del .\Units\*.dcu 22 | @IF EXIST "__history\*" rd /q /s __history\ 23 | @IF EXIST "RTL\*.dcu" del RTL\*.dcu 24 | @IF EXIST "RTL\*.ppu" del RTL\*.ppu 25 | @IF EXIST "RTL\*.o" del RTL\*.o 26 | @IF EXIST "RTL\*.a" del RTL\*.a 27 | @IF EXIST "RTL\__history" rd /s /q RTL\__history 28 | @IF EXIST "SciDe\__history\*" rd /q /s SciDe\__history\ 29 | -------------------------------------------------------------------------------- /for.RnQ/for_rnq.cfg: -------------------------------------------------------------------------------- 1 | -$A8 2 | -$B- 3 | -$C+ 4 | -$D+ 5 | -$E- 6 | -$F- 7 | -$G+ 8 | -$H+ 9 | -$I- 10 | -$J- 11 | -$K- 12 | -$L+ 13 | -$M- 14 | -$N+ 15 | -$O+ 16 | -$P+ 17 | -$Q- 18 | -$R- 19 | -$S- 20 | -$T- 21 | -$U- 22 | -$V+ 23 | -$W- 24 | -$X+ 25 | -$YD 26 | -$Z1 27 | -cg 28 | -AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; 29 | -H+ 30 | -W+ 31 | -M 32 | -$M16384,1048576 33 | -K$00400000 34 | -N"Units" 35 | -LE"e:\soft\delphi7\Projects\Bpl" 36 | -LN"e:\soft\delphi7\Projects\Bpl" 37 | -DEUREKALOG 38 | -Z 39 | -w-UNSAFE_TYPE 40 | -w-UNSAFE_CODE 41 | -w-UNSAFE_CAST 42 | -------------------------------------------------------------------------------- /for.RnQ/for_rnq.dof: -------------------------------------------------------------------------------- 1 | [FileVersion] 2 | Version=7.0 3 | [Compiler] 4 | A=8 5 | B=0 6 | C=1 7 | D=1 8 | E=0 9 | F=0 10 | G=1 11 | H=1 12 | I=0 13 | J=0 14 | K=0 15 | L=1 16 | M=0 17 | N=1 18 | O=1 19 | P=1 20 | Q=0 21 | R=0 22 | S=0 23 | T=0 24 | U=0 25 | V=1 26 | W=0 27 | X=1 28 | Y=1 29 | Z=1 30 | ShowHints=1 31 | ShowWarnings=1 32 | UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; 33 | NamespacePrefix= 34 | SymbolDeprecated=1 35 | SymbolLibrary=1 36 | SymbolPlatform=1 37 | UnitLibrary=1 38 | UnitPlatform=1 39 | UnitDeprecated=1 40 | HResultCompat=1 41 | HidingMember=1 42 | HiddenVirtual=1 43 | Garbage=1 44 | BoundsError=1 45 | ZeroNilCompat=1 46 | StringConstTruncated=1 47 | ForLoopVarVarPar=1 48 | TypedConstVarPar=1 49 | AsgToTypedConst=1 50 | CaseLabelRange=1 51 | ForVariable=1 52 | ConstructingAbstract=1 53 | ComparisonFalse=1 54 | ComparisonTrue=1 55 | ComparingSignedUnsigned=1 56 | CombiningSignedUnsigned=1 57 | UnsupportedConstruct=1 58 | FileOpen=1 59 | FileOpenUnitSrc=1 60 | BadGlobalSymbol=1 61 | DuplicateConstructorDestructor=1 62 | InvalidDirective=1 63 | PackageNoLink=1 64 | PackageThreadVar=1 65 | ImplicitImport=1 66 | HPPEMITIgnored=1 67 | NoRetVal=1 68 | UseBeforeDef=1 69 | ForLoopVarUndef=1 70 | UnitNameMismatch=1 71 | NoCFGFileFound=1 72 | MessageDirective=1 73 | ImplicitVariants=1 74 | UnicodeToLocale=1 75 | LocaleToUnicode=1 76 | ImagebaseMultiple=1 77 | SuspiciousTypecast=1 78 | PrivatePropAccessor=1 79 | UnsafeType=0 80 | UnsafeCode=0 81 | UnsafeCast=0 82 | [Linker] 83 | MapFile=0 84 | OutputObjs=0 85 | ConsoleApp=1 86 | DebugInfo=0 87 | RemoteSymbols=0 88 | MinStackSize=16384 89 | MaxStackSize=1048576 90 | ImageBase=4194304 91 | ExeDescription=For R&Q 92 | [Directories] 93 | OutputDir= 94 | UnitOutputDir=Units 95 | PackageDLLOutputDir= 96 | PackageDCPOutputDir= 97 | SearchPath= 98 | Packages= 99 | Conditionals=EUREKALOG 100 | DebugSourceDirs= 101 | UsePackages=0 102 | [Parameters] 103 | RunParams= 104 | HostApplication= 105 | Launcher= 106 | UseLauncher=0 107 | DebugCWD= 108 | [Version Info] 109 | IncludeVerInfo=1 110 | AutoIncBuild=0 111 | MajorVer=1 112 | MinorVer=0 113 | Release=0 114 | Build=0 115 | Debug=0 116 | PreRelease=0 117 | Special=0 118 | Private=0 119 | DLL=0 120 | Locale=1049 121 | CodePage=1251 122 | [Version Info Keys] 123 | CompanyName= 124 | FileDescription= 125 | FileVersion=1.0.0.0 126 | InternalName= 127 | LegalCopyright= 128 | LegalTrademarks= 129 | OriginalFilename= 130 | ProductName= 131 | ProductVersion=1.0.0.0 132 | Comments= 133 | -------------------------------------------------------------------------------- /for.RnQ/for_rnq.dpk: -------------------------------------------------------------------------------- 1 | package for_rnq; 2 | 3 | {$R *.res} 4 | {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} 5 | {$ALIGN 8} 6 | {$ASSERTIONS ON} 7 | {$BOOLEVAL OFF} 8 | {$DEBUGINFO OFF} 9 | {$EXTENDEDSYNTAX ON} 10 | {$IMPORTEDDATA ON} 11 | {$IOCHECKS OFF} 12 | {$LOCALSYMBOLS ON} 13 | {$LONGSTRINGS ON} 14 | {$OPENSTRINGS ON} 15 | {$OPTIMIZATION ON} 16 | {$OVERFLOWCHECKS OFF} 17 | {$RANGECHECKS OFF} 18 | {$REFERENCEINFO ON} 19 | {$SAFEDIVIDE OFF} 20 | {$STACKFRAMES OFF} 21 | {$TYPEDADDRESS OFF} 22 | {$VARSTRINGCHECKS ON} 23 | {$WRITEABLECONST OFF} 24 | {$MINENUMSIZE 1} 25 | {$IMAGEBASE $400000} 26 | {$ENDIF IMPLICITBUILDING} 27 | {$DESCRIPTION 'For R&Q'} 28 | {$IMPLICITBUILD OFF} 29 | 30 | requires 31 | rtl, 32 | vcl, 33 | designide, 34 | vclx; 35 | 36 | contains 37 | RDGlobal in 'RTL\RDGlobal.pas', 38 | RnQBinUtils in 'RTL\RnQBinUtils.pas', 39 | RDFileUtil in 'RTL\RDFileUtil.pas', 40 | RDUtils in 'RTL\RDUtils.pas', 41 | litegif1 in 'RTL\litegif1.pas', 42 | RnQpngimage in 'RTL\RnQpngimage.pas', 43 | RnQGraphics32 in 'RTL\RnQGraphics32.pas', 44 | RQMenuItem in 'RQMenuItem.pas', 45 | RnQGlobal in 'RnQGlobal.pas', 46 | RQThemes in 'RQThemes.pas', 47 | {$IFDEF RNQ} 48 | RQmsgs in 'RQmsgs.pas' {msgsFrm}, 49 | RQlog in 'RQlog.pas' {logFrm}, 50 | {$ENDIF RNQ} 51 | incapsulate in 'incapsulate.pas', 52 | RnQButtons in 'VCL\RnQButtons.pas', 53 | RnQSpin in 'VCL\RnQSpin.pas', 54 | RnQDialogs in 'RnQDialogs.pas', 55 | RnQLangs in 'RnQLangs.pas', 56 | RnQPrefsLib in 'RnQPrefsLib.pas', 57 | RnQFileUtil in 'RnQFileUtil.pas', 58 | RnQMenu in 'RnQMenu.pas', 59 | RQUtil in 'RQUtil.pas', 60 | RDSysUtils in 'RDSysUtils.pas', 61 | RnQSysUtils in 'RnQSysUtils.pas', 62 | RnQStrings in 'RnQStrings.pas', 63 | Base64 in 'RTL\Base64.pas', 64 | Sciter in 'SciDe\Sciter.pas'; 65 | 66 | end. 67 | 68 | 69 | -------------------------------------------------------------------------------- /for.RnQ/for_rnq.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/for.RnQ/for_rnq.res -------------------------------------------------------------------------------- /for.RnQ/for_rnq_Icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/for.RnQ/for_rnq_Icon.ico -------------------------------------------------------------------------------- /for.RnQ/incapsulate.pas: -------------------------------------------------------------------------------- 1 | { 2 | Copyright (C) 2002-2004 Massimo Melina (www.rejetto.com) 3 | 4 | This file is part of &RQ. 5 | 6 | &RQ is free software; you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation; either version 2 of the License, or 9 | (at your option) any later version. 10 | 11 | &RQ is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with &RQ; if not, write to the Free Software 18 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 19 | } 20 | unit incapsulate; 21 | {$I ForRnQConfig.inc} 22 | {$I NoRTTI.inc} 23 | 24 | interface 25 | 26 | uses 27 | sysutils, RDGlobal; 28 | 29 | type 30 | Tincapsulate=class 31 | str: RawByteString; 32 | int: integer; 33 | dt: TdateTime; 34 | bool: boolean; 35 | obj: Tobject; 36 | what: set of (I_str, I_int, I_dt, I_bool, I_obj); 37 | constructor aString(const s_: RawByteString); 38 | constructor anInt(i_: integer); 39 | constructor aDatetime(dt_: Tdatetime); 40 | function toString: RawByteString; Reintroduce; 41 | constructor fromString(s: RawByteString); Reintroduce; 42 | end; // incapsulate 43 | 44 | implementation 45 | 46 | uses 47 | RDutils, RnQBinUtils; 48 | 49 | constructor Tincapsulate.aString(const s_: RawByteString); 50 | begin 51 | inherited; 52 | what := [I_str]; 53 | str := s_; 54 | end; 55 | 56 | constructor Tincapsulate.anInt(i_: integer); 57 | begin 58 | inherited; 59 | what := [I_int]; 60 | int := i_; 61 | end; 62 | 63 | constructor Tincapsulate.aDatetime(dt_: Tdatetime); 64 | begin 65 | inherited; 66 | what := [I_dt]; 67 | dt := dt_; 68 | end; 69 | 70 | constructor Tincapsulate.fromString(s: RawByteString); 71 | begin 72 | inherited; 73 | what := []; 74 | while s > '' do 75 | case s[1] of 76 | 'S': 77 | begin 78 | include(what, I_str); 79 | setLength(str, integer((@s[2])^)); 80 | move(s[6], str[1], length(str)); 81 | delete(s, 1, 5+length(str)); 82 | end; 83 | 'I': 84 | begin 85 | include(what, I_int); 86 | int := integer((@s[2])^); 87 | delete(s, 1, 5); 88 | end; 89 | 'D': 90 | begin 91 | include(what, I_dt); 92 | dt := Tdatetime((@s[2])^); 93 | delete(s, 1, 9); 94 | end; 95 | else raise Exception.create('invalid data'); // should never reach this 96 | end; 97 | end; // fromString 98 | 99 | function Tincapsulate.toString: RawByteString; 100 | begin 101 | result := ''; 102 | if I_str in what then 103 | result := result+'S'+int2str(length(str))+str; 104 | if I_int in what then 105 | result := result+'I'+int2str(int); 106 | if I_dt in what then 107 | result := result+'D'+dt2str(int); 108 | end; // toString 109 | 110 | end. 111 | -------------------------------------------------------------------------------- /for.RnQ/xml/simdesign.inc: -------------------------------------------------------------------------------- 1 | { simdesign.inc 2 | 3 | include file for many simdesign projects 4 | default path: \simlib\general 5 | 6 | Author: Nils Haeck M.Sc. 7 | Copyright (c) 2007 - 2013 Simdesign B.V. 8 | 9 | } 10 | 11 | // unicode avoid implicit string cast warning 12 | {$ifdef UNICODE} 13 | {$WARN IMPLICIT_STRING_CAST OFF} 14 | {$endif UNICODE} 15 | 16 | // Delphi and FPC versions 17 | 18 | // Freepascal 19 | {$ifdef FPC} 20 | {$MODE DELPHI} 21 | {$define D7UP} 22 | {$endif FPC} 23 | 24 | // Delphi 5 25 | {$ifdef VER130} 26 | {$define D5UP} 27 | {$endif} 28 | 29 | //Delphi 6 30 | {$ifdef VER140} 31 | {$define D5UP} 32 | {$endif} 33 | 34 | //Delphi 7 35 | {$ifdef VER150} 36 | {$define D7UP} 37 | {$endif} 38 | 39 | //Delphi 8 40 | {$ifdef VER160} 41 | {$define D7UP} 42 | {$endif} 43 | 44 | // Delphi 2005 / 9 45 | {$ifdef VER170} 46 | {$define D7UP} 47 | {$endif} 48 | 49 | // Delphi 2006 / 10 50 | {$ifdef VER180} 51 | {$define D7UP} 52 | // D10 publishes OnMouseEnter / OnMouseLeave 53 | {$define D10UP} 54 | {$endif} 55 | 56 | // Delphi 2007 Rad studio / 11? 57 | {$ifdef VER185} 58 | {$define D7UP} 59 | {$define D10UP} 60 | {$endif} 61 | 62 | // Delphi 2007 - NET / 11? 63 | {$ifdef VER190} 64 | {$define D7UP} 65 | {$define D10UP} 66 | {$endif} 67 | 68 | // Delphi 2009 / 12 69 | // first UNICODE version, so then directive UNICODE is defined, no need for directive D12UP 70 | {$ifdef VER200} 71 | {$define D7UP} 72 | {$define D10UP} 73 | {$endif} 74 | 75 | // Delphi 2010 / 14? 76 | {$ifdef VER210} 77 | {$define D7UP} 78 | {$define D10UP} 79 | {$endif} 80 | 81 | // Delphi XE / 15 82 | {$ifdef VER220} 83 | {$define D7UP} 84 | {$define D10UP} 85 | {$define D15UP} 86 | {$endif} 87 | 88 | // Delphi XE2 / 16 89 | {$ifdef VER230} 90 | {$define D7UP} 91 | {$define D10UP} 92 | {$define D15UP} 93 | {$endif} 94 | 95 | // Delphi XE3 / 17 96 | {$ifdef VER240} 97 | {$define D7UP} 98 | {$define D10UP} 99 | {$define D15UP} 100 | {$endif} 101 | 102 | // Delphi XE4 / 18 103 | {$ifdef VER250} 104 | {$define D7UP} 105 | {$define D10UP} 106 | {$define D15UP} 107 | {$endif} 108 | 109 | // Delphi XE5 / 19 110 | {$ifdef VER260} 111 | {$define D7UP} 112 | {$define D10UP} 113 | {$define D15UP} 114 | {$endif} 115 | 116 | {$if CompilerVersion > 21} // By Rapid D 117 | {$define D7UP} 118 | {$define D10UP} 119 | {$define D15UP} 120 | {$ifend} 121 | 122 | 123 | -------------------------------------------------------------------------------- /for.RnQ/zip/RnQZip.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/for.RnQ/zip/RnQZip.pas -------------------------------------------------------------------------------- /for.RnQ/zip/ZlibHigh.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drapid/rnq/8f43a4a272a91654e98f12d76902bff9af184a00/for.RnQ/zip/ZlibHigh.pas --------------------------------------------------------------------------------