'\" t .\" $Id: dialog.1,v 1.241 2025/12/22 22:22:34 tom Exp $ .\" Copyright 2005-2024,2025 Thomas E. Dickey .\" .\" This program is free software; you can redistribute it and/or modify .\" it under the terms of the GNU Lesser General Public License, version 2.1 .\" as published by the Free Software Foundation. .\" .\" This program is distributed in the hope that it will be useful, but .\" WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU .\" Lesser General Public License for more details. .\" .\" You should have received a copy of the GNU Lesser General Public .\" License along with this program; if not, write to .\" Free Software Foundation, Inc. .\" 51 Franklin St., Fifth Floor .\" Boston, MA 02110, USA. .\" .\" definitions for renaming .ds p dialog .ds l dialog .ds L Dialog .ds D DIALOG .\" .ie n .ds CW R .el \{ .ie \n(.g .ds CW CR .el .ds CW CW .\} . .de ES .ne 8 .IP .. .de Ex .RS +7 .PP .nf .ft \*(CW .. .de Ee .fi .ft R .RE .. .\" Bulleted paragraph .de bP .ie n .IP \(bu 4 .el .IP \(bu 2 .. .ie \n(.g \{\ .ds `` \(lq .ds '' \(rq .ds ' \(aq .\} .el \{\ .ie t .ds `` `` .el .ds `` "" .ie t .ds '' '' .el .ds '' "" .ie t .ds ' \(aq .el .ds ' ' .\}", . .TH \*D "" 2025-12-22 "" "User commands" .SH "نام (NAME)" dialog \- نمایش جعبه‌های گفتگو از طریق اسکریپت‌های شل .SH "خلاصه دستور (SYNOPSIS)" \fB\*p \-\-clear\fP .br .BI "\*p \-\-create\-rc " file .br \fB\*p \-\-print\-maxsize\fP .br \fB\*p\fP \fIcommon-options\fP \fIbox-options\fP .SH "توضیحات (DESCRIPTION)" \fB\*L\fP برنامه‌ای است که به شما امکان می‌دهد انواع سؤالات را مطرح کرده یا پیام‌ها را با استفاده از جعبه‌های گفتگو از درون یک اسکریپت شل نمایش دهید. این انواع از جعبه‌های گفتگو پیاده‌سازی شده‌اند (اگرچه ممکن است همه آن‌ها لزوماً در \fB\*p\fR کامپایل نشده باشند): .RS .LP .nh .na .BR buildlist "، " .BR calendar "، " .BR checklist "، " .BR dselect "، " .BR editbox "، " .BR form "، " .BR fselect "، " .BR gauge "، " .BR infobox "، " .BR inputbox "، " .BR inputmenu "، " .BR menu "، " .BR mixedform "، " .BR mixedgauge "، " .BR msgbox " (پیام)، " .BR passwordbox "، " .BR passwordform "، " .BR pause "، " .BR prgbox "، " .BR programbox "، " .BR progressbox "، " .BR radiolist "، " .BR rangebox "، " .BR tailbox "، " .BR tailboxbg "، " .BR textbox "، " .BR timebox "، " .BR treeview "، و " .BR yesno " (بله/خیر)." .ad .RE .PP می‌توانید بیش از یک جعبه گفتگو را در یک اسکریپت قرار دهید: .bP از نشانه "\fB\-\-and\-widget\fP" استفاده کنید تا \fB\*p\fP را وادار کنید به گفتگوی بعدی برود مگر اینکه برای لغو کلید ESC را فشرده باشید، یا .bP به سادگی نشانه‌های مربوط به جعبه گفتگوی بعدی را اضافه کنید و یک زنجیره بسازید. زمانی که کد بازگشتی یک گفتگو غیرصفر باشد (مانند Cancel یا No)، زنجیره‌سازی در \*L متوقف می‌شود (به وضعیت خروج مراجعه کنید). .PP برخی از ویجت‌ها، مانند checklist، متنی را در خروجی \fB\*p\fP می‌نویسند. به طور معمول این خروجی خطای استاندارد است، اما گزینه‌هایی برای تغییر آن وجود دارد: \*(``\fB\-\-output\-fd\fP\*(''، \*(``\fB\-\-stderr\fP\*('' و \*(``\fB\-\-stdout\fP\*(''. اگر دکمه Cancel (یا ESC) فشرده شود، هیچ متنی نوشته نمی‌شود؛ در این حالت \fB\*p\fP بلافاصله خارج می‌شود. . .\" ************************************************************************ .SH "گزینه‌ها (OPTIONS)" همه گزینه‌ها با \*(``\fB\-\-\fP\*('' آغاز می‌شوند (دو خط تیره اسکی، به نفع کسانی که از سیستم‌هایی با پشتیبانی لوکال نامناسب استفاده می‌کنند). .PP یک \*(``\fB\-\-\fP\*('' به تنهایی به عنوان گریز استفاده می‌شود، بدین معنی که نشانه بعدی در خط فرمان به عنوان گزینه در نظر گرفته نمی‌شود. این رفتار با \fBgetopt\fP(1) متفاوت است، که از آن نشانه برای در نظر گرفتن نشانه‌های باقی‌مانده به عنوان \fIپارامتر\fP به جای \fIگزینه\fP استفاده می‌کند. .RS .PP .B \*p \-\-title \-\- \-\-Not an option .br .B \*p \-\-title This \-\- \-\-title is not an option .RE .PP \fB\*L\fP از هیچ \fIپارامتری\fP استفاده نمی‌کند و از تجزیه‌کننده \fIگزینه‌های\fP اختصاصی خود بهره می‌برد. .PP هنگامی که یک گزینه عمومی (مثلاً غیرویجتی) تکرار می‌شود، آخرین گزینه دریافت‌شده اعمال می‌گردد. گزینه‌های بولی به طور ویژه مدیریت می‌شوند تا بتوان آن‌ها را لغو کرد؛ این کار با افزودن (یا حذف) پیشوند \*(``no\*('' پس از \*(``\fB\-\-\fP\*('' ابتدایی انجام می‌شود. به عنوان مثال، \fB\-\-no\-shadow\fP در اینجا مستند شده است، اما \fB\-\-shadow\fP نیز پذیرفته می‌شود. .PP گزینه \*(``\fB\-\-args\fP\*('' به \fB\*p\fP می‌گوید که پارامترهای خط فرمان را در خطای استاندارد فهرست کند. این قابلیت هنگام اشکال‌زدایی اسکریپت‌های پیچیده‌ای که از \*(``\fB\-\-\fP\*('' و \*(``\fB\-\-file\fP\*('' استفاده می‌کنند مفید است، چرا که ممکن است خط فرمان با باز شدن این موارد بازنویسی شود. .PP گزینه \*(``\fB\-\-file\fP\*('' به \fB\*p\fP می‌گوید پارامترها را از فایلی که نام آن به عنوان مقدار داده شده است بخواند. .RS .B \*p \-\-file \fIparameterfile .RE .PP فاصله‌های خالی که درون نقل‌قول دوگانه نباشند نادیده گرفته می‌شوند (برای گریز کاراکترهای تکی از بک‌اسلش استفاده کنید). نتیجه حاصل در خط فرمان درج می‌شود و جایگزین \*(``\fB\-\-file\fP\*('' و مقدار آن می‌گردد. تفسیر خط فرمان از همان نقطه از سر گرفته می‌شود. اگر \fIparameterfile\fP با \*(``&\*('' آغاز شود، \fB\*p\fP متن پس از آن را به جای نام فایل، به عنوان شماره توصیف‌گر فایل در نظر می‌گیرد. .PP بیشتر ویجت‌ها پارامترهای \fIheight\fP و \fIwidth\fP را می‌پذیرند، که می‌توان از آن‌ها برای اندازه‌گیری خودکار ویجت جهت تطبیق با اعلان‌های پیامی چندخطی (\fIprompt\fP) استفاده کرد: .bP اگر پارامتر منفی باشد، \fB\*l\fP از اندازه صفحه نمایش استفاده می‌کند. .bP اگر پارامتر صفر باشد، \fB\*l\fP از حداقل اندازه لازم برای ویجت جهت نمایش \fIprompt\fP و داده‌ها استفاده می‌کند. .bP در غیر این صورت، \fB\*l\fP از اندازه مشخص‌شده برای ویجت استفاده می‌کند. . .SS "گزینه‌های عمومی (Common Options)" بیشتر گزینه‌های عمومی پیش از پردازش هر ویجت بازنشانی می‌شوند. . .IP "\fB\-\-ascii\-lines" به جای ترسیم خطوط گرافیکی در اطراف جعبه‌ها، کاراکترهای اسکی \*(``+\*('' و \*(``-\*('' را در همان محل رسم می‌کند. همچنین \*(``\fB\-\-no\-lines\fR\*('' را ببینید. . .IP "\fB\-\-aspect \fIratio" هنگام استفاده از تعیین اندازه خودکار (مشخص کردن صفر برای ارتفاع و عرض)، کنترلی روی ابعاد جعبه فراهم می‌کند. این مقدار نمایانگر نسبت عرض / ارتفاع است. مقدار پیش‌فرض 9 است، به این معنی که 9 کاراکتر در عرض به ازای هر 1 خط در ارتفاع در نظر گرفته می‌شود. . .IP "\fB\-\-backtitle \fIbacktitle" رشته‌ای را به عنوان \fIbacktitle\fP برای نمایش در پس‌زمینه، در بالای صفحه نمایش مشخص می‌کند. . .IP "\fB\-\-begin \fIy x" موقعیت گوشه بالا و سمت چپ جعبه گفتگو را روی صفحه نمایش مشخص می‌کند. . .IP "\fB\-\-cancel\-label \fIstring" برچسب مورد استفاده برای دکمه‌های \*(``Cancel\*('' را تغییر می‌دهد. . .IP "\fB\-\-clear" صفحه ویجت را پاک می‌کند و تنها پس‌زمینه screen_color را نگه می‌دارد. زمانی که ویجت‌ها را با \*(``\fB\-\-and\-widget\fR\*('' ترکیب می‌کنید، از این گزینه برای پاک کردن محتوای ویجت قبلی از صفحه استفاده کنید تا زیر محتوای ویجت بعدی دیده نشود. این گزینه را به عنوان مکمل \*(``\fB\-\-keep\-window\fR\*('' در نظر بگیرید. برای مقایسه اثرات، از این نمونه‌ها استفاده کنید: . .ES هر سه ویجت نمایان هستند، اثر پلکانی، با ترتیب 1، 2، 3: .Ex \*p \e \-\-begin 2 2 \-\-yesno "" 0 0 \e \-\-and\-widget \-\-begin 4 4 \-\-yesno "" 0 0 \e \-\-and\-widget \-\-begin 6 6 \-\-yesno "" 0 0 .Ee . .ES تنها آخرین ویجت نمایان باقی می‌ماند: .Ex \*p \e \-\-clear \-\-begin 2 2 \-\-yesno "" 0 0 \e \-\-and\-widget \-\-clear \-\-begin 4 4 \-\-yesno "" 0 0 \e \-\-and\-widget \-\-begin 6 6 \-\-yesno "" 0 0 .Ee . .ES هر سه ویجت نمایان هستند، اثر پلکانی، با ترتیب 3، 2، 1: .Ex \*p \e \-\-keep\-window \-\-begin 2 2 \-\-yesno "" 0 0 \e \-\-and\-widget \-\-keep\-window \-\-begin 4 4 \-\-yesno "" 0 0 \e \-\-and\-widget \-\-begin 6 6 \-\-yesno "" 0 0 .Ee . .ES ویجت‌های اول و سوم نمایان هستند، اثر پلکانی، با ترتیب 3، 1: .Ex \*p \e \-\-keep\-window \-\-begin 2 2 \-\-yesno "" 0 0 \e \-\-and\-widget \-\-clear \-\-begin 4 4 \-\-yesno "" 0 0 \e \-\-and\-widget \-\-begin 6 6 \-\-yesno "" 0 0 .Ee .IP توجه داشته باشید، اگر می‌خواهید رنگ‌های کنسول اصلی را بازگردانید و نشانگر را پس از خروج برنامه به نقطه آغاز بازگردانید، از دستور \fBclear\fR(1) استفاده کنید. برعکس، اگر می‌خواهید صفحه را پاک کرده و نشانگر را پس از خروج برنامه \fB\*p\fP به گوشه پایین و سمت چپ منتقل کنید، از گزینه \fB\-\-erase\-on\-exit\fR\ استفاده کنید. . .IP "\fB\-\-color-mode \fIcode" گزینه \fB\-\-colors\fP را به محتوای programbox، tailbox و textbox گسترش می‌دهد. برای این ویژگی از کد \*(``2\*('' استفاده کنید. . .IP "\fB\-\-colors" دنباله‌های توکار \*(``\eZ\*('' را در متن گفتگو بر اساس کاراکتر پس از آن تفسیر می‌کند، که به \fB\*p\fP دستور می‌دهد رنگ‌ها یا ویژگی‌های تصویری را تنظیم کند: .RS .bP 0 تا 7 شماره رنگ‌های ANSI هستند که در curses استفاده می‌شوند: به ترتیب سیاه، قرمز، سبز، زرد، آبی، سرخابی (magenta)، فیروزه‌ای (cyan) و سفید. .bP برجسته (Bold) با 'b' تنظیم و با 'B' لغو می‌شود. .bP معکوس (Reverse) با 'r' تنظیم و با 'R' لغو می‌شود. .bP خط زیرین (Underline) با 'u' تنظیم و با 'U' لغو می‌شود. .bP تنظیمات تجمعی هستند، به عنوان مثال \*(``\eZb\eZ1\*('' متن بعدی را پررنگ و قرمز (احتمالاً روشن) می‌کند. .bP تنظیمات عادی را با \*(``\eZn\*('' بازگردانید. .RE . .IP "\fB\-\-column\-separator \fIstring" به \fB\*p\fP می‌گوید داده‌ها را برای دکمه‌های رادیویی/کادرهای علامت‌گذاری و منوها با رخداد رشته داده‌شده تقسیم کند و داده‌های تفکیک‌شده را در ستون‌ها تراز کند. . .IP "\fB\-\-cr\-wrap" خطوط جدید درون متن گفتگو را به عنوان خط جدید روی صفحه نمایش تفسیر می‌کند. در غیر این صورت، \fB\*p\fR خطوط را تنها در جایی می‌شکند که برای جا شدن درون کادر متن لازم باشد. .IP حتی اگر بتوانید شکست خطوط را با این گزینه کنترل کنید، \fB\*L\fR همچنان خطوطی را که برای عرض جعبه بیش از حد طولانی باشند می‌شکند. بدون cr-wrap، چیدمان متن شما می‌تواند به گونه‌ای قالب‌بندی شود که در کد مبدا اسکریپت ظاهر مرتبی داشته باشد بدون اینکه بر نحوه نمایش آن در گفتگو تأثیر بگذارد. .IP ویژگی \fIcr\-wrap\fP با رعایت این شرایط پیاده‌سازی شده است: .RS .bP رشته شامل \*(``\en\*('' باشد و گزینه \fB\-\-no\-nl\-expand\fP استفاده نشده باشد، یا .bP گزینه \fB\-\-trim\fP استفاده شده باشد. .RE .IP برای اطلاعات بیشتر، بخش \fBگزینه‌های فاصله‌گذاری (Whitespace Options)\fP را ببینید. . .IP "\fB\-\-create\-rc \fIfile" زمانی که \fB\*p\fP از پیکربندی زمان اجرا پشتیبانی می‌کند، این گزینه می‌تواند برای استخراج یک فایل پیکربندی نمونه در فایل مشخص‌شده توسط .IR file استفاده شود. . .IP "\fB\-\-cursor\-off\-label" نشانگر ترمینال را به جای قرار دادن روی اولین کاراکتر برچسب دکمه، در انتهای دکمه قرار می‌دهد. این کار برای کاهش سردرگمی بصری در مواقعی که رنگ‌آمیزی نشانگر تداخل نامناسبی با رنگ‌های متن برچسب دکمه دارد، مفید است. . .IP "\fB\-\-date\-format \fIformat" اگر سیستم میزبان \fBstrftime\fP را فراهم کند، این گزینه به شما امکان می‌دهد قالب تاریخ چاپ‌شده را برای ویجت \fB\-\-calendar\fP مشخص کنید. زمان روز (ساعت، دقیقه، ثانیه) مطابق با زمان محلی فعلی است. . .IP "\fB\-\-defaultno" مقدار پیش‌فرض جعبه \fByes/no\fP را به .BR No تغییر می‌دهد. به همین ترتیب، دکمه پیش‌فرض ویجت‌هایی که \*(``OK\*('' و \*(``Cancel\*('' را ارائه می‌دهند، به عنوان \fICancel\fP در نظر می‌گیرد. اگر \*(``\fB\-\-no\-cancel\fP\*('' یا \*(``\fB\-\-visit\-items\fP\*('' داده شوند، آن گزینه‌ها این مورد را لغو می‌کنند و دکمه پیش‌فرض را همیشه \*(``Yes\*('' قرار می‌دهند (که در داخل برنامه همان \*(``OK\*('' است). . .IP "\fB\-\-default\-button \fIstring" دکمه پیش‌فرض (انتخاب‌شده از پیش) را در یک ویجت تنظیم می‌کند. با پیش‌انتخاب یک دکمه، یک اسکریپت امکان فشردن کلید \fIEnter\fP توسط کاربر را فراهم می‌کند تا با حداقل تعامل، گفتگو را پیش ببرد. .IP مقدار این گزینه نام دکمه است: .IR ok ، .IR yes ، .IR cancel ، .IR no ، .IR help " یا" .IR extra . .IP به طور معمول اولین دکمه در هر ویجت پیش‌فرض است. اولین دکمه نمایش‌داده‌شده توسط ویجت به همراه گزینه‌های \*(``\fB\-\-no\-ok\fP\*('' و \*(``\fB\-\-no\-cancel\fP\*('' تعیین می‌شود. اگر این گزینه مشخص نشود، دکمه پیش‌فرضی تعیین نمی‌شود. . .IP "\fB\-\-default\-item \fIstring" آیتم پیش‌فرض را در یک چک‌لیست، فرم یا جعبه منو تنظیم می‌کند. به طور معمول اولین آیتم در جعبه پیش‌فرض است. . .IP "\fB\-\-erase\-on\-exit" هنگامی که \fB\*p\fP خارج می‌شود، ویجت گفتگو را حذف می‌کند، کل صفحه را به رنگ پس‌زمینه اصلی خود پاک می‌کند، و نشانگر ترمینال را در گوشه پایین و سمت چپ قرار می‌دهد. . .IP "\fB\-\-exit\-label \fIstring" برچسب مورد استفاده برای دکمه‌های \*(``EXIT\*('' را تغییر می‌دهد. . .IP "\fB\-\-extra\-button" یک دکمه اضافی بین دکمه‌های \*(``OK\*('' و \*(``Cancel\*('' نمایش می‌دهد. .IP این دکمه اضافی برای ویجت \fIyesno\fP بین \*(``Yes\*('' و \*(``No\*('' ظاهر می‌شود. . .IP "\fB\-\-extra\-label \fIstring" برچسب مورد استفاده برای دکمه‌های \*(``Extra\*('' را تغییر می‌دهد. توجه: برای ویجت‌های inputmenu، این برچسب به طور پیش‌فرض \*(``Rename\*('' است. . .IP "\fB\-\-help" پیام راهنما را در خروجی استاندارد چاپ کرده و خارج می‌شود. همچنین اگر هیچ گزینه‌ای داده نشود یا یک گزینه ناشناخته وارد گردد، پیام راهنما چاپ می‌شود. . .IP "\fB\-\-help\-button" یک دکمه راهنما پس از دکمه‌های \*(``OK\*('' و \*(``Cancel\*('' در جعبه‌هایی که دارای فهرستی از آیتم‌های برچسب‌دار هستند (یعنی جعبه‌های checklist، radiolist، menu و treeview) نمایش می‌دهد. .IP این دکمه راهنما برای ویجت \fIyesno\fP پس از \*(``Yes\*('' و \*(``No\*('' ظاهر می‌شود. .IP در هنگام خروج، وضعیت بازگشتی مشخص می‌کند که دکمه Help فشرده شده است. همچنین \fB\*L\fP پس از نشانه \*(``HELP\*('' پیامی را در خروجی خود می‌نویسد: .RS .bP اگر "\fB\-\-item\-help\fR" نیز مشخص شده باشد، متن راهنمای آیتم نوشته می‌شود. .bP در غیر این صورت، برچسب آیتم (فیلد نخست) نوشته می‌شود. .RE .IP می‌توانید از گزینه \fB\-\-help\-tags\fP و/یا متغیر محیطی DIALOG_ITEM_HELP برای تغییر این پیام‌ها و وضعیت خروج استفاده کنید. .IP این گزینه می‌تواند برای سایر ویجت‌هایی که دکمه \*(``OK\*('' دارند نیز اعمال شود، صرف‌نظر از اینکه دکمه \*(``Cancel\*('' استفاده شده باشد یا خیر. وضعیت بازگشتی و خروجی برای سایر ویجت‌ها به صورت ویژه مدیریت نمی‌شود؛ دکمه راهنما فقط یک دکمه اضافی است. . .IP "\fB\-\-help\-label \fIstring" برچسب مورد استفاده برای دکمه‌های \*(``Help\*('' را تغییر می‌دهد. . .IP "\fB\-\-help\-status" اگر دکمه راهنما انتخاب شود، اطلاعات چک‌لیست، لیست رادیویی یا فرم را پس از اطلاعات \*(``HELP\*('' راهنمای آیتم می‌نویسد. این قابلیت می‌تواند برای بازسازی وضعیت چک‌لیست پس از پردازش درخواست راهنما استفاده شود. . .IP "\fB\-\-help\-tags" پیام‌های نوشته‌شده هنگام خروج برای \fB\-\-help\-button\fP را تغییر می‌دهد تا همیشه تنها برچسب آیتم باشد. این کار بر کد وضعیت خروج تأثیری ندارد. . .IP "\fB\-\-hfile \fIfilename" فایل مشخص‌شده را با استفاده از یک textbox هنگامی که کاربر کلید F1 را فشار می‌دهد نمایش می‌دهد. . .IP "\fB\-\-hline \fIstring" رشته مشخص‌شده را به صورت وسط‌چین در پایین ویجت نمایش می‌دهد. .IP پنجره‌های قابل پیمایش دارای نشانگری در نزدیکی سمت چپ ویجت هستند و فضای متناظری در سمت راست رزرو شده است. این امر مقدار متنی را که می‌توان نمایش داد به 9 ستون کمتر از عرض پنجره محدود می‌کند. اگر فضای کافی در دسترس نباشد، متنی نمایش داده نمی‌شود. . .IP "\fB\-\-ignore" گزینه‌هایی را که \fB\*p\fP نمی‌شناسد نادیده می‌گیرد. برخی از گزینه‌های شناخته‌شده مانند \*(``\fB\-\-icon\fP\*('' در هر حال نادیده گرفته می‌شوند، اما این گزینه انتخاب بهتری برای سازگاری با سایر پیاده‌سازی‌ها است. . .IP "\fB\-\-input\-fd \fIfd" ورودی صفحه‌کلید را از توصیف‌گر فایل داده‌شده می‌خواند. بیشتر اسکریپت‌های \fB\*p\fR از ورودی استاندارد می‌خوانند، اما ویجت gauge از یک لوله می‌خواند (که همیشه ورودی استاندارد است). برخی از پیکربندی‌ها زمانی که \fB\*p\fP تلاش می‌کند ترمینال را دوباره باز کند، به درستی کار نمی‌کنند. اگر اسکریپت شما باید در چنین محیطی کار کند، از این گزینه (با مدیریت مناسب توصیف‌گرهای فایل) استفاده کنید. . .IP "\fB\-\-insecure" ویجت گذرواژه را کاربرپسندتر اما با امنیت کمتر می‌کند؛ به این صورت که برای هر کاراکتر ستاره نمایش می‌دهد. . .IP "\fB\-\-iso\-week" نقطه شروع شماره هفته نمایش‌داده‌شده در گزینه \*(``\fB\-\-calendar\fP\*('' را مطابق با ISO-8601 تنظیم می‌کند، که شماره‌گذاری را با اولین هفته‌ای که شامل یک پنج‌شنبه در ماه ژانویه است آغاز می‌کند. . .IP "\fB\-\-item\-help" داده‌های برچسب‌ها را برای جعبه‌های چک‌لیست، لیست رادیویی و منو تفسیر کرده و ستونی اضافه می‌کند که در خط پایینی صفحه برای آیتم انتخاب‌شده کنونی نمایش داده می‌شود. . .IP "\fB\-\-keep\-tite" هنگامی که با \fBncurses\fP ساخته شده باشد، \fB\*p\fP معمولاً بررسی می‌کند که آیا در \fBxterm\fP اجرا می‌شود یا خیر، و در آن صورت سعی می‌کند رشته‌های اولیه‌سازی را که باعث جابه‌جایی به صفحه متناوب می‌شوند، متوقف کند. جابه‌جایی بین صفحات عادی و متناوب در اسکریپتی که \fB\*p\fP را چندین بار اجرا می‌کند از نظر بصری آزاردهنده است. از این گزینه استفاده کنید تا به \fB\*p\fP اجازه دهید از آن رشته‌های اولیه‌سازی استفاده کند. . .IP "\fB\-\-keep\-window" به طور معمول زمانی که \fB\*p\fR چندین ویجت \fBtailboxbg\fR متصل‌شده با \*(``\fB\-\-and\-widget\fR\*('' را اجرا می‌کند، ویجت قدیمی را با بازنویسی روی آن از صفحه پاک می‌کند. از این گزینه برای جلوگیری از این بازنویسی استفاده کنید. .IP در هنگام خروج، \fB\*p\fR تمام ویجت‌هایی را که با \*(``\fB\-\-keep\-window\fR\*('' علامت‌گذاری شده‌اند دوباره ترسیم می‌کند، حتی اگر ویجت‌های \fBtailboxbg\fR نباشند. این کار باعث می‌شود آن‌ها با ترتیب معکوس بازترسیم شوند. برای نمونه‌ها، توضیحات گزینه \*(``\fB\-\-clear\fR\*('' را ببینید. . .IP "\fB\-\-last\-key" در هنگام خروج، آخرین کلیدی را که کاربر وارد کرده گزارش می‌دهد. این مقدار کد کلید curses است نه یک نماد یا کاراکتر تحت‌اللفظی، و تنها برای کلیدهایی گزارش می‌شود که به یک عملیات متصل شده‌اند. اسکریپت‌ها می‌توانند از این گزینه برای تمایز بین دو کلید که به یک عملیات متصل هستند استفاده کنند. . .IP "\fB\-\-max\-input \fIsize" رشته‌های ورودی را به اندازه داده‌شده محدود می‌کند. در صورت عدم تعیین، این محدودیت 2048 است. . .IP "\fB\-\-no\-cancel" دکمه \*(``Cancel\*('' را در حالت‌های جعبه چک‌لیست، inputbox و منو حذف می‌کند. یک اسکریپت همچنان می‌تواند بررسی کند که آیا کاربر کلید ESC را برای لغو و خروج فشار داده است یا خیر. . .IP "\fB\-\-no\-collapse" به طور معمول \fB\*p\fR تب‌ها را به فاصله تبدیل کرده و فاصله‌های متوالی را برای متنی که در جعبه‌های پیام و غیره نمایش داده می‌شود، به یک فاصله کاهش می‌دهد. از این گزینه برای غیرفعال کردن این ویژگی استفاده کنید. توجه داشته باشید که \fB\*p\fR همچنان متن را با توجه به گزینه‌های \*(``\fB\-\-cr\-wrap\fR\*('' و \*(``\fB\-\-trim\fR\*('' می‌شکند. .IP ویژگی \fIno\-collapse\fP با رعایت این شرایط اعمال می‌شود: .RS .bP رشته شامل \*(``\en\*('' باشد و گزینه \fB\-\-no\-nl\-expand\fP استفاده نشده باشد، یا .bP گزینه \fB\-\-trim\fP استفاده نشده باشد. .RE .IP برای اطلاعات بیشتر، بخش \fBگزینه‌های فاصله‌گذاری (Whitespace Options)\fP را ببینید. . .IP "\fB\-\-no\-hot\-list" به \fB\*p\fP دستور می‌دهد قابلیت کلید میانبر را برای فهرست‌ها، مثلاً کادر علامت‌گذاری و منوها غیرفعال کند. .IP به طور معمول، اولین کاراکتر بزرگ در یک ورودی فهرست برجسته می‌شود و فشردن آن کاراکتر، تمرکز را به آن ورودی منتقل می‌کند. این گزینه هم برجسته‌سازی و هم انتقال تمرکز را غیرفعال می‌کند. .IP کلیدهای میانبر دکمه‌ها (\*(``OK\*(''، \*(``Cancel\*('' و غیره) تحت تأثیر قرار نمی‌گیرند. . .IP "\fB\-\-no\-items" برخی ویجت‌ها (checklist، inputmenu، radiolist، menu) فهرستی با دو ستون نمایش می‌دهند (یک \*(``tag\*('' و یک \*(``item\*('' یا همان \*(``description\*(''). این گزینه به \fB\*p\fP می‌گوید ردیف‌های کوتاه‌تری بخواند و بخش \*(``item\*('' فهرست را نادیده بگیرد. این قابلیت گاهی اوقات مفید است، مثلاً زمانی که برچسب‌ها اطلاعات کافی ارائه می‌دهند. .IP همچنین \fB\-\-no\-tags\fP را ببینید. اگر هر دو گزینه داده شوند، این گزینه نادیده گرفته می‌شود. . .IP "\fB\-\-no\-kill" به \fB\*p\fP دستور می‌دهد جعبه \fBtailboxbg\fP را در پس‌زمینه قرار دهد، و شناسه فرایند آن را در خروجی \fB\*p\fP چاپ کند. سیگنال SIGHUP برای فرایند پس‌زمینه غیرفعال می‌شود. . .IP "\fB\-\-no-label \fIstring" برچسب مورد استفاده برای دکمه‌های \*(``No\*('' را تغییر می‌دهد. . .IP "\fB\-\-no\-lines" به جای ترسیم خطوط دور جعبه‌ها، در همان محل فاصله‌های خالی رسم می‌کند. همچنین \*(``\fB\-\-ascii\-lines\fR\*('' را ببینید. . .IP "\fB\-\-no\-mouse" ماوس را فعال نمی‌کند. . .IP "\fB\-\-no\-nl\-expand" زیررشته‌های \*(``\en\*('' در متن پیام/اعلان را به خطوط جدید تحت‌اللفظی تبدیل نمی‌کند. .IP ویژگی \fIno\-nl\-expand\fP تنها در صورتی استفاده می‌شود که رشته حاوی \*(``\en\*('' باشد تا چیزی برای تبدیل وجود داشته باشد. .IP برای اطلاعات بیشتر، بخش \fBگزینه‌های فاصله‌گذاری (Whitespace Options)\fP را ببینید. . .IP "\fB\-\-no\-ok" دکمه \*(``OK\*('' را حذف می‌کند تا نمایش داده نشود. یک اسکریپت همچنان می‌تواند بررسی کند که آیا کاربر کلید \*(``Enter\*('' را برای پذیرش داده‌ها فشرده است یا خیر: .RS .bP هنگامی که گزینه \fB\-\-no\-ok\fP استفاده می‌شود، کلید \*(``Enter\*('' همیشه مانند دکمه \*(``OK\*('' عمل می‌کند. یعنی به طور پیش‌فرض به کلید مجازی \fILEAVE\fP متصل است. .IP هنگامی که \fB\-\-no\-ok\fP استفاده نمی‌شود، می‌توانید از کلید \fITab\fP برای حرکت نشانگر بین فیلدها و دکمه‌های روی ویجت استفاده کنید. در این حالت، اگر نشانگر روی یک دکمه قرار داشته باشد، کلید \*(``Enter\*('' دکمه فعلی را فعال می‌کند. .bP برای حالتی که می‌خواهید هنگام استفاده از \fB\-\-no\-ok\fP دکمه‌ای را فعال کنید، کلید مجازی دیگری به نام \fILEAVE\fP وجود دارد که دکمه فعلی را فعال می‌کند. به طور پیش‌فرض، \fB^D\fP (EOF) به آن کلید متصل است. .RE . .IP "\fB\-\-no\-shadow" سایه‌هایی را که در سمت راست و پایین هر جعبه گفتگو کشیده می‌شوند، حذف می‌کند. . .IP "\fB\-\-no\-tags" برخی ویجت‌ها (checklist، inputmenu، radiolist، menu) فهرستی با دو ستون نمایش می‌دهند (یک \*(``tag\*('' و یک \*(``description\*(''). برچسب برای اسکریپت‌نویسی مفید است، اما ممکن است به کاربر کمکی نکند. گزینه \fB\-\-no\-tags\fP (برگرفته از Xdialog) ممکن است برای حذف ستون برچسب‌ها از صفحه نمایش استفاده شود. برخلاف گزینه \fB\-\-no\-items\fP، این گزینه بر داده‌هایی که از اسکریپت خوانده می‌شوند تأثیری ندارد. .IP برنامه Xdialog ستون برچسب را برای ویجت‌های مشابه buildlist و treeview نمایش نمی‌دهد؛ \fB\*p\fP نیز همین کار را انجام می‌دهد. .IP به طور معمول \fB\*p\fP به شما امکان می‌دهد تا با تطبیق یک تک‌کاراکتر با اولین کاراکتر برچسب، به سرعت به ورودی‌های فهرست نمایش‌داده‌شده بروید. هنگامی که گزینه \fB\-\-no\-tags\fP داده می‌شود، \fB\*p\fP با اولین کاراکتر توضیحات تطبیق می‌دهد. در هر دو حالت، کاراکتر قابل تطبیق برجسته می‌شود. . .IP "\fB\-\-ok\-label \fIstring" برچسب مورد استفاده برای دکمه‌های \*(``OK\*('' را تغییر می‌دهد. . .IP "\fB\-\-output\-fd \fIfd" خروجی را به توصیف‌گر فایل مشخص‌شده هدایت می‌کند. بیشتر اسکریپت‌های \fB\*p\fR در خطای استاندارد می‌نویسند، اما بسته به اسکریپت شما، پیام‌های خطا نیز ممکن است در آنجا نوشته شوند. . .IP "\fB\-\-separator \fIstring" .IP "\fB\-\-output\-separator \fIstring" رشته‌ای را مشخص می‌کند که خروجی‌های چک‌لیست‌ها را در خروجی \fB\*p\fP به جای خط جدید (برای \fB\-\-separate\-output\fP) یا فاصله، از یکدیگر جدا می‌کند. این گزینه برای سایر ویجت‌ها مانند فرم‌ها و editboxها که معمولاً از خط جدید استفاده می‌کنند نیز اعمال می‌شود. . .IP "\fB\-\-print\-maxsize" حداکثر اندازه جعبه‌های گفتگو (یعنی اندازه صفحه نمایش) را در خروجی \fB\*p\fP چاپ می‌کند. این گزینه می‌تواند به تنهایی و بدون سایر گزینه‌ها استفاده شود. . .IP "\fB\-\-print\-size" اندازه هر جعبه گفتگو را هنگام راه‌اندازی جعبه در خروجی \fB\*p\fP چاپ می‌کند. . .IP "\fB\-\-print\-text\-only \fIstring [ height [ width ] ]" رشته را همان‌گونه که در یک جعبه پیام پیچیده می‌شود در خروجی \fB\*p\fP چاپ می‌کند. .IP از آنجا که مقادیر اختیاری \fIheight\fP و \fIwidth\fP به طور پیش‌فرض صفر هستند، در صورت حذف آن‌ها، \fB\*p\fP اندازه را به طور خودکار بر اساس ابعاد صفحه تعیین می‌کند. . .IP "\fB\-\-print\-text\-size \fIstring [ height [ width ] ]" اندازه رشته را همان‌طور که در یک جعبه پیام پیچیده می‌شود، در خروجی \fB\*p\fP به صورت زیر چاپ می‌کند: .Ex height width .Ee .IP از آنجا که پارامترهای اختیاری \fIheight\fP و \fIwidth\fP به طور پیش‌فرض صفر هستند، در صورت حذف آن‌ها، \fB\*p\fP اندازه را به طور خودکار بر اساس ابعاد صفحه تعیین می‌کند. . .IP "\fB\-\-print\-version" نسخه \fB\*p\fR را در خروجی \fB\*p\fP چاپ می‌کند. این گزینه می‌تواند به تنهایی و بدون گزینه‌های دیگر استفاده شود. این گزینه به خودی خود باعث خروج \fB\*l\fP نمی‌شود. . .IP "\fB\-\-quoted" به طور معمول \fB\*p\fP رشته‌های بازگردانده‌شده توسط چک‌لیست و همچنین متن راهنمای آیتم را درون نقل‌قول قرار می‌دهد. از این گزینه برای قرار دادن تمام نتایج متنی در نقل‌قول در صورت لزوم استفاده کنید (یعنی اگر رشته حاوی فاصله خالی یا نویسه نقل‌قول تکی یا دوتایی باشد). . .IP "\fB\-\-reorder" به طور پیش‌فرض، ویجت buildlist برای فهرست خروجی (راست) از همان ترتیبی استفاده می‌کند که برای فهرست ورودی (چپ) استفاده شده است. از این گزینه استفاده کنید تا به \fB\*p\fP بگویید از ترتیبی استفاده کند که کاربر انتخاب‌ها را به فهرست خروجی اضافه می‌کند. . .IP "\fB\-\-scrollbar" برای ویجت‌هایی که مجموعه‌ای از داده‌های قابل پیمایش را نگه می‌دارند، یک نوار پیمایش در حاشیه سمت راست رسم می‌کند. این نوار به ماوس پاسخ نمی‌دهد. . .IP "\fB\-\-separate\-output" برای ویجت‌های خاص (buildlist، checklist، treeview)، نتیجه را خط به خط و بدون نقل‌قول خروجی می‌دهد. این کار تجزیه خروجی توسط برنامه‌های دیگر را تسهیل می‌کند. . .IP "\fB\-\-separate\-widget \fIstring" رشته‌ای را مشخص می‌کند که خروجی هر ویجت را در خروجی \fB\*p\fP از یکدیگر جدا می‌کند. از این گزینه برای ساده‌سازی تجزیه نتیجه یک گفتگو با چندین ویجت استفاده می‌شود. اگر این گزینه داده نشود، رشته جداکننده پیش‌فرض یک نویسه تب است. . .IP "\fB\-\-single\-quoted" در صورت نیاز، از نقل‌قول تکی (و در صورت عدم نیاز بدون نقل‌قول) برای خروجی چک‌لیست‌ها و متن راهنمای آیتم استفاده می‌کند. .IP اگر این گزینه تنظیم نشود، \fB\*p\fP ممکن است از نقل‌قول دوتایی در اطراف هر آیتم استفاده کند. در هر دو حالت، \fB\*p\fP بک‌اسلش‌هایی اضافه می‌کند تا خروجی در اسکریپت‌های شل قابل استفاده باشد. .IP اگر رشته حاوی فاصله خالی یا نویسه نقل‌قول تکی یا دوتایی باشد، به نقل‌قول تکی نیاز خواهد بود. . .IP "\fB\-\-size\-err" پیش از تلاش برای استفاده از جعبه گفتگو، اندازه حاصل را بررسی می‌کند و اگر بزرگ‌تر از صفحه نمایش باشد، اندازه حاصل را چاپ می‌کند. (این گزینه منسوخ شده است، زیرا اکنون تمام فراخوانی‌های ساخت پنجره جدید بررسی می‌شوند). . .IP "\fB\-\-sleep \fIsecs" پس از پردازش یک جعبه گفتگو، به تعداد ثانیه‌های مشخص‌شده مکث می‌کند. . .IP "\fB\-\-stderr" خروجی را به خطای استاندارد هدایت می‌کند. این حالت پیش‌فرض است، زیرا curses به طور معمول به‌روزرسانی‌های صفحه را در خروجی استاندارد می‌نویسد. . .IP "\fB\-\-stdout" خروجی را به خروجی استاندارد هدایت می‌کند. این گزینه برای سازگاری با Xdialog ارائه شده است، با این حال استفاده از آن در اسکریپت‌های قابل حمل توصیه نمی‌شود، زیرا curses به طور معمول به‌روزرسانی‌های صفحه را در خروجی استاندارد می‌نویسد. اگر از این گزینه استفاده کنید، \fB\*p\fR تلاش می‌کند ترمینال را دوباره باز کند تا بتواند روی نمایشگر بنویسد. بسته به پلتفرم و محیط شما، این کار ممکن است با شکست مواجه شود. . .IP "\fB\-\-tab\-correct" هر نویسه تب را به یک یا چند فاصله تبدیل می‌کند (برای ویجت \fBtextbox\fP؛ در غیر این صورت به یک فاصله تکی). در غیر این صورت، تب‌ها بر اساس تفسیر کتابخانه curses رندر می‌شوند. گزینه \fB\-\-no\-collapse\fP بسط تب را غیرفعال می‌کند. . .IP "\fB\-\-tab\-len \fIn" در صورت تعیین گزینه \*(``\fB\-\-tab\-correct\fP\*(''، تعداد فاصله‌هایی را که یک نویسه تب اشغال می‌کند مشخص می‌کند. مقدار پیش‌فرض 8 است. این گزینه تنها برای ویجت \fBtextbox\fP مؤثر است. . .IP "\fB\-\-time\-format \fIformat" اگر سیستم میزبان \fBstrftime\fP را فراهم کند، این گزینه به شما امکان می‌دهد قالب زمان چاپ‌شده برای ویجت \fB\-\-timebox\fP را مشخص کنید. مقادیر روز، ماه و سال در این حالت مطابق با زمان محلی فعلی است. . .IP "\fB\-\-timeout \fIsecs" در صورت عدم پاسخ کاربر در مدت ثانیه‌های داده‌شده، مهلت زمانی پایان می‌یابد. مهلت زمانی صفر ثانیه نادیده گرفته می‌شود. .IP به طور معمول پایان مهلت زمانی باعث ارسال نویسه ESC به ویجت فعلی شده و آن را لغو می‌کند. سایر ویجت‌ها ممکن است همچنان روی صفحه باقی بمانند؛ آن‌ها لغو نمی‌شوند. متغیر محیطی \fBDIALOG_TIMEOUT\fP را تنظیم کنید تا به \fB\*l\fP دستور دهد مستقیماً خارج شود، یعنی تمام ویجت‌های روی صفحه را لغو کند. .IP این گزینه توسط ویجت \*(``\fB\-\-pause\fP\*('' نادیده گرفته می‌شود. همچنین اگر گزینه پس‌زمینه \*(``\fB\-\-tailboxbg\fP\*('' برای راه‌اندازی چندین ویجت هم‌زمان استفاده شود، این گزینه لغو می‌گردد. . .IP "\fB\-\-title \fItitle" رشته‌ای را به عنوان \fItitle\fP برای نمایش در بالای جعبه گفتگو مشخص می‌کند. . .IP "\fB\-\-trace \fIfilename" پارامترهای خط فرمان، کلیدهای فشرده‌شده و سایر اطلاعات را در فایل داده‌شده ثبت می‌کند. اگر \fB\*l\fP یک فایل پیکربندی را بخواند، آن نیز ثبت می‌شود. ورودی لوله‌کشی‌شده به ویجت \fIgauge\fP نیز ثبت می‌شود. برای ثبت تصویری از پنجره گفتگوی فعلی از control/T استفاده کنید. .IP برنامه \fB\*p\fR برخی از پارامترهای خط فرمان را به طور ویژه مدیریت کرده و با پردازش آن‌ها، آن‌ها را از فهرست پارامترها حذف می‌کند. به عنوان مثال، اگر اولین گزینه \fB\-\-trace\fP باشد، پیش از آنکه \fB\*p\fR نمایشگر را راه‌اندازی کند، پردازش (و حذف) می‌شود. . .IP "\fB\-\-week\-start \fIday" روز شروع هفته را که در گزینه \*(``\fB\-\-calendar\fP\*('' استفاده می‌شود تعیین می‌کند. پارامتر \fIday\fP می‌تواند یکی از موارد زیر باشد: .RS .bP یک عدد (0 تا 6، یکشنبه تا شنبه بر اساس POSIX) یا .bP مقدار ویژه \*(``locale\*('' (این مقدار روی سیستم‌های دارای glibc کار می‌کند و افزونه‌ای به دستور \fBlocale\fP ارائه می‌دهد، یعنی مقدار \fBfirst_weekday\fP). .bP رشته‌ای منطبق با یکی از اختصارات روز هفته که در ویجت \fBcalendar\fP نمایش داده می‌شود، به عنوان مثال \*(``Mo\*('' برای دوشنبه. .RE . .IP "\fB\-\-trim" فاصله‌های ابتدایی را حذف می‌کند، خطوط جدید تحت‌اللفظی و فاصله‌های مکرر را از متن پیام پاکسازی می‌کند. .IP ویژگی \fItrim\fP با رعایت این شرایط پیاده‌سازی شده است: .RS .bP رشته حاوی \*(``\en\*('' نباشد یا .bP گزینه \fB\-\-no\-nl\-expand\fP استفاده شده باشد. .RE .IP برای اطلاعات بیشتر، بخش \fBگزینه‌های فاصله‌گذاری (Whitespace Options)\fP را ببینید. . .IP همچنین گزینه‌های \*(``\fB\-\-cr\-wrap\fR\*('' و \*(``\fB\-\-no\-collapse\fR\*('' را ببینید. . .IP "\fB\-\-version" نسخه \fB\*p\fR را در خروجی استاندارد چاپ کرده و خارج می‌شود. همچنین \*(``\fB\-\-print\-version\fP\*('' را ببینید. . .IP "\fB\-\-visit\-items" پیمایش کلید Tab در چک‌لیست، لیست رادیویی، menubox و inputmenu را تغییر می‌دهد تا فهرست آیتم‌ها را به عنوان یکی از حالت‌ها در بر گیرد. این گزینه به عنوان یک کمک بصری مفید است؛ بدین معنا که موقعیت نشانگر به برخی کاربران کمک می‌کند. .IP هنگامی که این گزینه داده می‌شود، نشانگر در ابتدا روی فهرست قرار می‌گیرد. اختصارات (حرف اول برچسب) برای آیتم‌های فهرست اعمال می‌شوند. اگر با کلید Tab به ردیف دکمه‌ها بروید، اختصارات برای دکمه‌ها اعمال می‌شوند. . .IP "\fB\-\-yes-label \fIstring" برچسب مورد استفاده برای دکمه‌های \*(``Yes\*('' را تغییر می‌دهد. . .\" ************************************************************************ .SS "گزینه‌های جعبه (Box Options)" همه جعبه‌های گفتگو حداقل دارای سه پارامتر هستند: .TP 7 \fItext\fP عنوان یا محتوای جعبه. .TP 7 \fIheight\fP ارتفاع جعبه گفتگو. .TP 7 \fIwidth\fP عرض جعبه گفتگو. .PP سایر پارامترها به نوع جعبه بستگی دارند. . . .IP "\fB\-\-buildlist \fItext height width list-height \fR[ \fItag item status \fR] \fI..." یک گفتگوی \fBbuildlist\fP دو فهرست را کنار هم نمایش می‌دهد. فهرست سمت چپ آیتم‌های انتخاب‌نشده را نشان می‌دهد. فهرست سمت راست آیتم‌های انتخاب‌شده را نمایش می‌دهد. با انتخاب یا لغو انتخاب آیتم‌ها، آن‌ها بین دو فهرست جابه‌جا می‌شوند. .IP از کلید اینتر یا دکمه \*(``OK\*('' برای پذیرش مقدار فعلی در پنجره انتخاب‌شده‌ها و خروج استفاده کنید. نتایج با استفاده از ترتیبی که در پنجره انتخاب‌شده‌ها نمایش داده شده است نوشته می‌شوند. .IP وضعیت اولیه فعال/غیرفعال هر ورودی توسط .IR status مشخص می‌شود. .IP این گفتگو مانند یک \fBmenu\fP رفتار می‌کند و از \fB\-\-visit\-items\fP برای کنترل اینکه آیا نشانگر مجاز به بازدید مستقیم از فهرست‌ها است یا خیر، استفاده می‌کند. .RS .bP اگر \fB\-\-visit\-items\fP داده نشود، پیمایش کلید Tab از دو حالت (OK/Cancel) استفاده می‌کند. .bP اگر \fB\-\-visit\-items\fP داده شود، پیمایش کلید Tab از چهار حالت (Left/Right/OK/Cancel) استفاده می‌کند. .RE .IP صرف‌نظر از اینکه \fB\-\-visit\-items\fP مشخص شده باشد یا خیر، امکان انتقال نشانگر برجسته‌سازی بین دو فهرست با استفاده از کلیدهای پیش‌فرض \*(``^\*('' (ستون چپ) و \*(``$\*('' (ستون راست) وجود دارد. .IP در هنگام خروج، فهرستی از رشته‌های .IR tag آن دسته از ورودی‌هایی که فعال هستند در خروجی \fB\*p\fP چاپ خواهد شد. .IP اگر گزینه "\fB\-\-separate\-output\fP" داده نشود، رشته‌ها در صورت نیاز درون نقل‌قول قرار می‌گیرند تا تفکیک آن‌ها برای اسکریپت‌ها ساده باشد. به طور پیش‌فرض، در صورت نیاز از نقل‌قول دوتایی استفاده می‌شود. گزینه \*(``\fB\-\-single\-quoted\fP\*('' را ببینید که رفتار نقل‌قول را تغییر می‌دهد. . .IP "\fB\-\-calendar \fItext height width day month year" یک جعبه \fBcalendar\fP ماه، روز و سال را در پنجره‌هایی با قابلیت تنظیم جداگانه نمایش می‌دهد. اگر مقادیر day، month یا year ناموجود یا منفی باشند، مقادیر متناظر با تاریخ فعلی استفاده می‌شوند. می‌توانید هر یک از آن‌ها را با استفاده از کلیدهای جهت‌نما (چپ، بالا، راست، پایین) افزایش یا کاهش دهید. از کلیدهای سبک vi شامل h، j، k و l برای جابه‌جایی در میان روزهای یک ماه استفاده کنید. از کلید Tab یا Backtab برای جابه‌جایی بین پنجره‌ها استفاده کنید. اگر سال به عنوان صفر داده شود، تاریخ فعلی به عنوان مقدار اولیه استفاده می‌شود. .IP در هنگام خروج، تاریخ به صورت روز/ماه/سال چاپ می‌شود. این قالب را می‌توان با استفاده از گزینه \fB\-\-date\-format\fP تغییر داد. . .IP "\fB\-\-checklist \fItext height width list-height \fR[ \fItag item status \fR] \fI..." یک جعبه \fBchecklist\fP مشابه جعبه \fBmenu\fP است؛ ورودی‌های متعددی در قالب یک منو ارائه می‌شوند. تفاوت دیگر این است که می‌توانید با تنظیم .IR status " به " on مشخص کنید کدام ورودی در حال حاضر انتخاب شده است. به جای انتخاب تنها یک ورودی از میان ورودی‌ها، هر ورودی می‌تواند توسط کاربر فعال یا غیرفعال شود. وضعیت روشن/خاموش اولیه هر ورودی توسط .IR status تعیین می‌شود. .IP در هنگام خروج، فهرستی از رشته‌های .IR tag آن ورودی‌هایی که فعال هستند در خروجی \fB\*p\fP چاپ خواهد شد. .IP اگر گزینه \*(``\fB\-\-separate\-output\fP\*('' داده نشود، رشته‌ها در صورت نیاز درون نقل‌قول قرار می‌گیرند تا جداسازی آن‌ها برای اسکریپت‌ها آسان باشد. به طور پیش‌فرض، در صورت نیاز از نقل‌قول دوتایی استفاده می‌شود. گزینه \*(``\fB\-\-single\-quoted\fP\*('' را ببینید که رفتار نقل‌قول را تغییر می‌دهد. . .IP "\fB\-\-dselect \fIfilepath height width\fR" گفتگوی انتخاب دایرکتوری، یک پنجره ورود متن نمایش می‌دهد که در آن می‌توانید نام دایرکتوری را تایپ کنید، و در بالای آن پنجره‌ای با نام‌های دایرکتوری‌ها نمایش داده می‌شود. .IP در اینجا \fBfilepath\fP می‌تواند مسیر فایلی باشد که در این صورت پنجره دایرکتوری محتویات مسیر را نمایش می‌دهد و پنجره ورود متن شامل دایرکتوری از پیش‌انتخاب‌شده خواهد بود. .IP از کلید Tab یا کلیدهای جهت‌نما برای جابه‌جایی بین پنجره‌ها استفاده کنید. درون پنجره دایرکتوری، از کلیدهای جهت‌نمای بالا/پایین برای پیمایش انتخاب فعلی استفاده کنید. از کلید فاصله برای کپی کردن انتخاب فعلی در پنجره ورود متن استفاده کنید. .IP تایپ هر کاراکتر قابل چاپ، تمرکز را به پنجره ورود متن منتقل می‌کند، آن کاراکتر را وارد کرده و پنجره دایرکتوری را نیز به نزدیک‌ترین مورد منطبق پیمایش می‌کند. .IP از کلید اینتر یا دکمه \*(``OK\*('' برای پذیرش مقدار فعلی در پنجره ورود متن و خروج استفاده کنید. .IP در هنگام خروج، محتوای پنجره ورود متن در خروجی \fB\*p\fP نوشته می‌شود. . .IP "\fB\-\-editbox \fIfilepath height width\fR" گفتگوی edit-box نسخه‌ای از فایل را نمایش می‌دهد. می‌توانید آن را با استفاده از کلیدهای \fIbackspace\fP، \fIdelete\fP و کلیدهای جهت‌نما ویرایش کرده تا خطاهای تایپی را اصلاح کنید. این جعبه همچنین کلیدهای pageup/pagedown را تشخیص می‌دهد. برخلاف \fB\-\-inputbox\fP، برای بستن گفتگو باید با کلید Tab به دکمه‌های \*(``OK\*('' یا \*(``Cancel\*('' بروید. فشردن کلید \*(``Enter\*('' درون جعبه، خط متناظر را می‌شکند. .IP در هنگام خروج، محتوای پنجره ویرایش در خروجی \fB\*p\fP نوشته می‌شود. . .nf .IP "\fB\-\-form \fItext height width formheight \fR[ \fIlabel y x item y x flen ilen \fR] \fI..." .fi گفتگوی \fBform\fP فرمی متشکل از برچسب‌ها و فیلدها را نمایش می‌دهد که بر اساس مختصات ارائه‌شده در اسکریپت روی یک پنجره قابل پیمایش قرار می‌گیرند. طول فیلد \fIflen\fR و طول ورودی \fIilen\fR مشخص می‌کنند که فیلد تا چه اندازه می‌تواند طولانی باشد. مورد اول طولی را که برای یک فیلد انتخاب‌شده نمایش داده می‌شود تعریف می‌کند، در حالی که مورد دوم طول مجاز داده‌های واردشده در فیلد را تعیین می‌نماید. .RS .bP اگر \fIflen\fR صفر باشد، فیلد متناظر قابل تغییر نیست و محتوای فیلد طول نمایش‌داده‌شده را تعیین می‌کند. .bP اگر \fIflen\fR منفی باشد، فیلد متناظر قابل تغییر نیست و مقدار منفی‌شده \fIflen\fR به عنوان طول نمایش‌داده‌شده استفاده می‌شود. .bP اگر \fIilen\fR صفر باشد، برابر با \fIflen\fR تنظیم می‌شود. .RE .IP از کلیدهای جهت‌نمای بالا/پایین (یا control/N، control/P) برای جابه‌جایی بین فیلدها استفاده کنید. از کلید Tab برای جابه‌جایی بین پنجره‌ها استفاده کنید. .IP در هنگام خروج، محتوای فیلدهای فرم در خروجی \fB\*p\fP نوشته می‌شود و هر فیلد با یک خط جدید جدا می‌گردد. متنی که برای پر کردن فیلدهای غیرقابل ویرایش (\fIflen\fR صفر یا منفی است) استفاده شده، در خروجی نوشته نمی‌شود. . . .IP "\fB\-\-fselect \fIfilepath height width\fR" گفتگوی \fBfselect\fP (انتخاب فایل) یک پنجره ورود متن نمایش می‌دهد که در آن می‌توانید نام فایل (یا دایرکتوری) را تایپ کنید، و در بالای آن دو پنجره با نام‌های دایرکتوری‌ها و نام‌های فایل‌ها قرار دارد. .IP در اینجا \fBfilepath\fP می‌تواند یک مسیر فایل باشد که در این حالت پنجره‌های فایل و دایرکتوری محتویات مسیر را نمایش می‌دهند و پنجره ورود متن شامل نام فایل از پیش‌انتخاب‌شده خواهد بود. .IP از کلید Tab یا کلیدهای جهت‌نما برای جابه‌جایی بین پنجره‌ها استفاده کنید. درون پنجره‌های دایرکتوری یا نام فایل، از کلیدهای جهت‌نمای بالا/پایین برای پیمایش انتخاب فعلی استفاده کنید. از کلید فاصله برای کپی کردن انتخاب فعلی در پنجره ورود متن استفاده کنید. .IP تایپ هر کاراکتر قابل چاپ، تمرکز را به پنجره ورود متن منتقل می‌کند، آن کاراکتر را وارد کرده و پنجره‌های دایرکتوری و نام فایل را به نزدیک‌ترین مورد منطبق پیمایش می‌کند. .IP تایپ کاراکتر فاصله، \fB\*p\fP را وادار به تکمیل نام فعلی می‌کند (تا نقطه‌ای که ممکن است با بیش از یک ورودی مطابقت داشته باشد). .IP از کلید اینتر یا دکمه \*(``OK\*('' برای پذیرش مقدار فعلی در پنجره ورود متن و خروج استفاده کنید. .IP در هنگام خروج، محتوای پنجره ورود متن در خروجی \fB\*p\fP نوشته می‌شود. . . .IP "\fB\-\-gauge \fItext height width [percent]\fR" یک جعبه \fBgauge\fP یک درجه سنجش را در امتداد پایین جعبه نمایش می‌دهد. این درجه درصد را نشان می‌دهد. درصدهای جدید از ورودی استاندارد، هر عدد صحیح در یک خط خوانده می‌شوند. درجه با دریافت هر درصد جدید به‌روزرسانی می‌شود. اگر ورودی استاندارد رشته \*(``XXX\*('' را بخواند، اولین خط پس از آن به عنوان درصد عدد صحیح در نظر گرفته می‌شود و خطوط بعدی تا رسیدن به \*(``XXX\*('' بعدی برای اعلان جدید استفاده می‌شوند. هنگامی که ورودی استاندارد به پایان فایل (EOF) برسد، gauge خارج می‌شود. .IP مقدار \fIpercent\fR نشان‌دهنده درصد اولیه‌ای است که روی درجه نشان داده می‌شود. در صورت عدم تعیین، صفر است. .IP در هنگام خروج، هیچ متنی در خروجی \fB\*p\fP نوشته نمی‌شود. این ویجت ورودی نمی‌پذیرد، بنابراین وضعیت خروج همیشه OK است. . . .IP "\fB\-\-infobox \fItext height width" یک جعبه \fBinfo\fP اساساً یک جعبه \fBmessage\fP است. با این حال، در این حالت، \fB\*p\fP بلافاصله پس از نمایش پیام به کاربر خارج می‌شود. هنگامی که \fB\*p\fP خارج می‌شود، صفحه پاک نمی‌شود تا پیام روی صفحه باقی بماند تا زمانی که اسکریپت شل فراخوان بعداً آن را پاک کند. این قابلیت زمانی مفید است که می‌خواهید به کاربر اطلاع دهید عملیاتی در حال انجام است که ممکن است برای تکمیل به زمان نیاز داشته باشد. .IP در هنگام خروج، هیچ متنی در خروجی \fB\*p\fP نوشته نمی‌شود. وضعیت خروج OK بازگردانده می‌شود. . . .IP "\fB\-\-inputbox \fItext height width [init]" یک جعبه \fBinput\fP زمانی مفید است که می‌خواهید سؤالاتی بپرسید که نیازمند وارد کردن یک رشته متنی به عنوان پاسخ توسط کاربر است. اگر init ارائه شود، برای اولیه‌سازی رشته ورودی استفاده می‌شود. هنگام وارد کردن رشته، کلیدهای \fIbackspace\fP، \fIdelete\fP و جهت‌نما می‌توانند برای اصلاح خطاهای تایپی استفاده شوند. اگر رشته ورودی طولانی‌تر از گنجایش جعبه گفتگو باشد، فیلد ورودی پیمایش خواهد شد. .IP در هنگام خروج، رشته ورودی در خروجی \fB\*p\fP چاپ خواهد شد. . . .IP "\fB\-\-inputmenu \fItext height width menu-height \fR[ \fItag item \fR] \fI..." یک جعبه \fBinputmenu\fP بسیار شبیه به یک جعبه \fBmenu\fP معمولی است. تنها چند تفاوت بین آن‌ها وجود دارد: .RS .TP 4 1. ورودی‌ها به طور خودکار وسط‌چین نمی‌شوند بلکه چپ‌چین هستند. .TP 2. یک دکمه اضافی (به نام \fIRename\/\fP) در نظر گرفته شده است تا هنگام فشرده شدن، نام آیتم فعلی را تغییر دهد. .TP 3. تغییر نام ورودی فعلی با فشردن دکمه \fIRename\fP امکان‌پذیر است. سپس \fB\*p\fP عبارت زیر را در خروجی \fB\*p\fP می‌نویسد: .IP RENAMED .RE . . .IP "\fB\-\-menu \fItext height width menu-height \fR[ \fItag item \fR] \fI..." همان‌طور که از نامش پیداست، جعبه \fBmenu\fP یک جعبه گفتگو است که می‌تواند برای ارائه فهرستی از گزینه‌ها در قالب یک منو به کاربر برای انتخاب استفاده شود. گزینه‌ها به ترتیبی که داده شده‌اند نمایش داده می‌شوند. هر ورودی منو شامل یک رشته \fItag\fP و یک رشته \fIitem\fP است. رشته \fItag\fP نامی به ورودی می‌دهد تا آن را از سایر ورودی‌های منو متمایز کند. رشته \fIitem\fP توضیح کوتاهی از گزینه‌ای است که ورودی نشان می‌دهد. کاربر می‌تواند با فشردن کلیدهای جهت‌نما، حرف اول \fItag\fP به عنوان کلید میانبر، یا کلیدهای عددی \fI1\fP تا \fI9\fP بین ورودی‌های منو جابه‌جا شود. در هر زمان \fImenu-height\fP ورودی در منو نمایش داده می‌شود، اما اگر تعداد ورودی‌ها بیشتر از آن باشد، منو پیمایش خواهد شد. .IP در هنگام خروج، \fItag\fP ورودی منوی انتخاب‌شده در خروجی \fB\*p\fP چاپ خواهد شد. اگر گزینه \*(``\fB\-\-help\-button\fR\*('' داده شده باشد، در صورت انتخاب دکمه راهنما توسط کاربر، متن راهنمای متناظر چاپ خواهد شد. . .nf .IP "\fB\-\-mixedform \fItext height width formheight \fR[ \fIlabel y x item y x flen ilen itype \fR] \fI..." .fi گفتگوی \fBmixedform\fP فرمی متشکل از برچسب‌ها و فیلدها را نمایش می‌دهد، بسیار شبیه به گفتگوی \fB\-\-form\fP. تفاوت آن در افزودن پارامتر نوع فیلد به توضیحات هر فیلد است. هر بیت در نوع نشان‌دهنده یک ویژگی از فیلد است: .RS .TP 5 1 مخفی، مثلاً یک فیلد گذرواژه. .TP 5 2 فقط‌خواندنی، مثلاً یک برچسب. .RE . .IP "\fB\-\-mixedgauge \fItext height width percent \fR[ \fItag1 item1 \fR] \fI..." یک جعبه \fBmixedgauge\fP یک درجه را در امتداد پایین جعبه نمایش می‌دهد. درجه درصد را نشان می‌دهد. .IP همچنین فهرستی از مقادیر \fItag\/\fP و \fIitem\/\fP را در بالای جعبه نمایش می‌دهد. برای مقادیر برچسب، \*l(3) را ببینید. .IP رشته \fItext\fP به عنوان عنوان بین فهرست و درجه نمایش داده می‌شود. مقدار \fIpercent\fR نشان‌دهنده درصد اولیه‌ای است که در درجه نشان داده می‌شود. .IP برخلاف \fB\-\-gauge\fP، تمهیدی برای خواندن داده‌ها از ورودی استاندارد در نظر گرفته نشده است. .IP در هنگام خروج، هیچ متنی در خروجی \fB\*p\fP نوشته نمی‌شود. این ویجت ورودی نمی‌پذیرد، بنابراین وضعیت خروج همیشه OK است. . .IP "\fB\-\-msgbox \fItext height width" یک جعبه \fBmessage\fP بسیار شبیه به جعبه \fByes/no\fP است. تنها تفاوت بین جعبه \fBmessage\fP و جعبه \fByes/no\fP این است که جعبه \fBmessage\fP تنها یک دکمه \fBOK\fP دارد. می‌توانید از این جعبه گفتگو برای نمایش هر پیامی که دوست دارید استفاده کنید. پس از خواندن پیام، کاربر می‌تواند کلید \fIENTER\fP را فشار دهد تا \fB\*p\fP خارج شده و اسکریپت شل فراخوان بتواند به کار خود ادامه دهد. .IP اگر پیام برای فضا بیش از حد بزرگ باشد، \fB\*p\fP ممکن است به شما امکان دهد آن را پیمایش کنید، به شرطی که پیاده‌سازی زیربنایی curses به اندازه کافی توانمند باشد. در این حالت، درصدی در پایه ویجت نمایش داده می‌شود. .IP در هنگام خروج، متنی در خروجی \fB\*p\fP نوشته نمی‌شود. تنها یک دکمه \*(``OK\*('' برای ورودی ارائه شده است، اما ممکن است وضعیت خروج ESC بازگردانده شود. . .IP "\fB\-\-pause \fItext height width seconds\fR" یک جعبه \fBpause\fP یک درجه را در امتداد پایین جعبه نمایش می‌دهد. این درجه نشان می‌دهد چند ثانیه تا پایان مکث باقی مانده است. مکث با رسیدن به مهلت زمانی یا فشردن دکمه OK توسط کاربر (وضعیت OK) یا فشردن دکمه CANCEL یا کلید Esc پایان می‌یابد. .IP "\fB\-\-passwordbox \fItext height width [init]" یک جعبه \fBpassword\fP شبیه به یک inputbox است، با این تفاوت که متنی که کاربر وارد می‌کند نمایش داده نمی‌شود. این قابلیت هنگام درخواست گذرواژه یا سایر اطلاعات حساس مفید است. توجه داشته باشید که اگر چیزی در \*(``init\*('' ارسال شود، در جدول فرایندهای سیستم برای افراد کنجکاو قابل مشاهده خواهد بود. همچنین ارائه یک گذرواژه پیش‌فرض که کاربر نمی‌تواند آن را ببیند بسیار گیج‌کننده است. به این دلایل، استفاده از \*(``init\*('' به شدت منع می‌شود. اگر به امنیت گذرواژه خود اهمیتی نمی‌دهید، \*(``\fB\-\-insecure\fP\*('' را ببینید. .IP در هنگام خروج، رشته ورودی در خروجی \fB\*p\fP چاپ خواهد شد. . . .nf .IP "\fB\-\-passwordform \fItext height width formheight \fR[ \fIlabel y x item y x flen ilen \fR] \fI..." .fi این گزینه با \fB\-\-form\fP یکسان است به جز اینکه با تمام فیلدهای متنی به عنوان ویجت‌های \fBpassword\fP رفتار می‌شود نه ویجت‌های \fBinputbox\fP. . . .IP "\fB\-\-prgbox \fItext command height width" .IP "\fB\-\-prgbox \fIcommand height width" یک \fBprgbox\fP بسیار شبیه به \fBprogrambox\fP است. .IP این جعبه گفتگو برای نمایش خروجی دستوری استفاده می‌شود که به عنوان آرگومان به \fBprgbox\fP داده شده است. .IP پس از اتمام دستور، کاربر می‌تواند کلید \fIENTER\fP را فشار دهد تا \fB\*l\fP خارج شده و اسکریپت شل فراخوان به کار خود ادامه دهد. .IP اگر چهار پارامتر داده شود، متن زیر عنوان را به صورت جداشده از محتوای فایل در حال پیمایش نمایش می‌دهد. اگر تنها سه پارامتر داده شود، این متن حذف می‌شود. . . .IP "\fB\-\-programbox \fItext height width" .IP "\fB\-\-programbox \fIheight width" یک \fBprogrambox\fP بسیار شبیه به \fBprogressbox\fP است. تنها تفاوت بین جعبه \fBprogram\fP و جعبه \fBprogress\fP این است که جعبه \fBprogram\fP یک دکمه \fBOK\fP را نمایش می‌دهد (اما تنها پس از اتمام دستور). .IP این جعبه گفتگو برای نمایش خروجی لوله‌کشی‌شده یک دستور استفاده می‌شود. پس از اتمام دستور، کاربر می‌تواند کلید \fIENTER\fP را فشار دهد تا \fB\*l\fP خارج شده و اسکریپت شل فراخوان بتواند به کار خود ادامه دهد. .IP اگر سه پارامتر داده شود، متن زیر عنوان را به صورت تفکیک‌شده از محتوای فایل در حال پیمایش نمایش می‌دهد. اگر تنها دو پارامتر داده شود، این متن حذف می‌شود. . . .IP "\fB\-\-progressbox \fItext height width" .IP "\fB\-\-progressbox \fIheight width" یک \fBprogressbox\fP شبیه به یک \fBtailbox\fP است، به استثنای اینکه: .RS .TP 3 الف) به جای نمایش محتوای یک فایل، خروجی لوله‌کشی‌شده یک دستور را نمایش می‌دهد و .TP 3 ب) زمانی که به انتهای فایل برسد خارج خواهد شد (دکمه \*(``OK\*('' وجود ندارد). .RE .IP اگر سه پارامتر داده شود، متن زیر عنوان را به صورت تفکیک‌شده از محتوای فایل در حال پیمایش نمایش می‌دهد. اگر تنها دو پارامتر داده شود، این متن حذف می‌شود. . . .IP "\fB\-\-radiolist \fItext height width list-height \fR [ \fItag item status \fR] \fI..." یک جعبه \fBradiolist\fP شبیه به یک جعبه \fBmenu\fP است. تنها تفاوت این است که می‌توانید با تنظیم .IR status " به " on مشخص کنید کدام ورودی در حال حاضر انتخاب شده است. .IP در هنگام خروج، برچسب آیتم انتخاب‌شده در خروجی \fB\*p\fP نوشته می‌شود. . . .nf .IP "\fB\-\-rangebox \fItext height width min-value max-value default-value" .fi به کاربر اجازه می‌دهد تا از یک محدوده از مقادیر، مثلاً با استفاده از یک اسلایدر، مقداری را انتخاب کند. گفتگو مقدار فعلی را به صورت یک نوار (مانند گفتگوی gauge) نشان می‌دهد. کلیدهای Tab یا جهت‌نما نشانگر را بین دکمه‌ها و مقدار جابه‌جا می‌کنند. هنگامی که نشانگر روی مقدار قرار دارد، می‌توانید آن را با روش‌های زیر ویرایش کنید: .RS .TP 5 حرکت نشانگر به چپ/راست برای انتخاب یک رقم جهت تغییر .TP 5 نویسه‌های +/- برای افزایش/کاهش رقم به اندازه یک واحد .TP 5 0 تا 9 برای تنظیم رقم روی مقدار داده‌شده .RE .IP برخی کلیدها نیز در تمام موقعیت‌های نشانگر شناسایی می‌شوند: .RS .TP 5 home/end مقدار را روی حداکثر یا حداقل آن تنظیم می‌کنند .TP 5 pageup/pagedown مقدار را به گونه‌ای افزایش می‌دهند که اسلایدر یک ستون حرکت کند .RE . . .IP "\fB\-\-tailbox \fIfile height width" متن یک فایل را در یک جعبه گفتگو نمایش می‌دهد، همانند دستور \*(``tail -f\*(''. با استفاده از کلیدهای سبک vi شامل 'h' و 'l' یا کلیدهای جهت‌نما، به چپ/راست پیمایش کنید. کلید '0' پیمایش را بازنشانی می‌کند. .IP در هنگام خروج، هیچ متنی در خروجی \fB\*p\fP نوشته نمی‌شود. تنها یک دکمه \*(``OK\*('' برای ورودی ارائه شده است، اما وضعیت خروج ESC نیز ممکن است بازگردانده شود. . . .IP "\fB\-\-tailboxbg \fIfile height width" متن یک فایل را در یک جعبه گفتگو به عنوان یک وظیفه پس‌زمینه نمایش می‌دهد، مانند دستور \*(``tail -f &\*(''. با استفاده از کلیدهای سبک vi شامل 'h' و 'l' یا کلیدهای جهت‌نما به چپ/راست پیمایش کنید. کلید '0' پیمایش را بازنشانی می‌کند. .IP اگر سایر ویجت‌ها (\fB\-\-and\-widget\fP) هم‌زمان روی صفحه باشند، \*L با وظیفه پس‌زمینه به طور ویژه رفتار می‌کند. تا زمانی که آن ویجت‌ها بسته شوند (مثلاً با یک \*(``OK\*('')، \fB\*p\fP تمام ویجت‌های tailboxbg را در همان فرایند اجرا کرده و برای به‌روزرسانی‌ها نظرسنجی می‌کند. می‌توانید از کلید Tab برای پیمایش بین ویجت‌های روی صفحه استفاده کنید و آن‌ها را به صورت جداگانه، مثلاً با فشردن \fIENTER\fP ببندید. پس از بسته شدن ویجت‌های غیر tailboxbg، برنامه \fB\*p\fP یک کپی از خود را به پس‌زمینه فورک می‌کند و در صورت تعیین گزینه \*(``\fB\-\-no\-kill\fP\*('' شناسه فرایند خود را چاپ می‌کند. .IP در هنگام خروج، هیچ متنی در خروجی \fB\*p\fP نوشته نمی‌شود. تنها یک دکمه \*(``EXIT\*('' برای ورودی ارائه شده است، اما وضعیت خروج ESC ممکن است بازگردانده شود. .IP یادداشت: نسخه‌های قدیمی‌تر \fB\*p\fP بلافاصله فورک می‌شدند و تلاش می‌کردند صفحه را به طور جداگانه به‌روزرسانی کنند. این کار علاوه بر اینکه برای کارایی نامناسب بود، غیرقابل اجرا نیز بود. برخی از اسکریپت‌های قدیمی‌تر ممکن است با طرح نظرسنجی به درستی کار نکنند. . . .IP "\fB\-\-textbox \fIfile height width" یک جعبه \fBtext\fP به شما امکان می‌دهد محتوای یک فایل متنی را در یک جعبه گفتگو نمایش دهید. این جعبه مانند یک نمایش‌دهنده ساده فایل‌های متنی است. کاربر می‌تواند با استفاده از کلیدهای جهت‌نما، page-up، page-down و \fIHOME/END\fR موجود در اکثر صفحه‌کلیدها در فایل جابه‌جا شود. اگر خطوط برای نمایش در جعبه خیلی طولانی باشند، می‌توان از کلیدهای \fILEFT/RIGHT\fP برای پیمایش افقی ناحیه متن استفاده کرد. همچنین می‌توانید از کلیدهای سبک vi شامل h، j، k و l به جای کلیدهای جهت‌نما، و B یا N به جای کلیدهای page-up و page-down استفاده کنید. با استفاده از 'k' و 'j' سبک vi یا کلیدهای جهت‌نما، به بالا/پایین پیمایش کنید. با استفاده از 'h' و 'l' سبک vi یا کلیدهای جهت‌نما، به چپ/راست پیمایش کنید. کلید '0' پیمایش چپ/راست را بازنشانی می‌کند. برای راحتی بیشتر، توابع جستجوی رو به جلو و رو به عقب به سبک vi نیز ارائه شده است. .IP در هنگام خروج، هیچ متنی در خروجی \fB\*p\fP نوشته نمی‌شود. تنها یک دکمه \*(``EXIT\*('' برای ورودی ارائه شده است، اما وضعیت خروج ESC ممکن است بازگردانده شود. . . .IP "\fB\-\-timebox \fItext height [width hour minute second]" گفتگویی نمایش داده می‌شود که به شما امکان می‌دهد ساعت، دقیقه و ثانیه را انتخاب کنید. اگر مقادیر ساعت، دقیقه یا ثانیه ناموجود یا منفی باشند، مقادیر متناظر با زمان فعلی استفاده می‌شوند. می‌توانید هر یک از آن‌ها را با استفاده از کلیدهای جهت‌نمای چپ، بالا، راست و پایین افزایش یا کاهش دهید. از کلید Tab یا Backtab برای جابه‌جایی بین پنجره‌ها استفاده کنید. .IP در هنگام خروج، نتیجه به صورت ساعت:دقیقه:ثانیه چاپ می‌شود. این قالب را می‌توان با استفاده از گزینه \fB\-\-time\-format\fP تغییر داد. . . .IP "\fB\-\-treeview \fItext height width list-height \fR[ \fItag item status depth \fR] \fI..." داده‌ها را به صورت ساختار درختی نمایش می‌دهد. هر گروه از داده‌ها شامل یک برچسب، متن برای نمایش آیتم، وضعیت آن (\*(``on\*('' یا \*(``off\*('') و عمق آیتم در درخت است. .IP تنها یک آیتم می‌تواند انتخاب شود (مانند \fBradiolist\fP). برچسب نمایش داده نمی‌شود. .IP در هنگام خروج، برچسب آیتم انتخاب‌شده در خروجی \fB\*p\fP نوشته می‌شود. . . .IP "\fB\-\-yesno \fItext height width" یک جعبه گفتگوی \fByes/no\fP با اندازه \fIheight\fP سطر در \fIwidth\fP ستون نمایش داده خواهد شد. رشته مشخص‌شده توسط \fItext\fP درون جعبه گفتگو نمایش داده می‌شود. اگر این رشته برای جا شدن در یک سطر خیلی طولانی باشد، به طور خودکار در مکان‌های مناسب به چندین سطر تقسیم می‌شود. رشته \fItext\fP همچنین می‌تواند شامل زیررشته .RI """" \en """" یا نویسه‌های خط جدید .RI ` \en ' باشد تا شکست خط را به طور صریح کنترل کند. این جعبه گفتگو برای پرسیدن سؤالاتی که کاربر باید به آن‌ها پاسخ بله یا خیر بدهد مفید است. جعبه گفتگو دارای دکمه \fBYes\fP و دکمه \fBNo\fP است که کاربر می‌تواند با فشردن کلید .IR TAB بین آن‌ها جابه‌جا شود. .IP در هنگام خروج، هیچ متنی در خروجی \fB\*p\fP نوشته نمی‌شود. علاوه بر کدهای خروج \*(``Yes\*('' و \*(``No\*('' (به وضعیت خروج مراجعه کنید)، وضعیت خروج ESC نیز ممکن است بازگردانده شود. .IP کدهای مورد استفاده برای \*(``Yes\*('' و \*(``No\*('' با کدهای مورد استفاده برای \*(``OK\*('' و \*(``Cancel\*('' مطابقت دارند و در داخل برنامه تفاوتی بین آن‌ها وجود ندارد. . .\" ************************************************************************ .SS "گزینه‌های منسوخ‌شده (Obsolete Options)" .\" from cdialog 0.9a (Pako) .IP "\fB\-\-beep" این گزینه برای اعلام به cdialog اصلی استفاده می‌شد که باید هنگام بازترسیم صفحه توسط فرایندهای جداگانه ویجت tailboxbg، یک بوق صوتی ایجاد کند. . .\" from cdialog 0.9a (Pako) .IP "\fB\-\-beep\-after" پس از اینکه کاربر با فشردن یکی از دکمه‌ها یک ویجت را تکمیل کرد، بوق صوتی ایجاد می‌کند. . .\" ************************************************************************ .SS "گزینه‌های فاصله‌گذاری (Whitespace Options)" این گزینه‌ها می‌توانند برای تبدیل فاصله‌های خالی (فاصله، تب، خط جدید) هنگامی که dialog اسکریپت را می‌خواند استفاده شوند: .RS .BR \-\-cr\-wrap ، .BR \-\-no\-collapse ، .BR \-\-no\-nl\-expand "، و" .B \-\-trim .RE .PP این گزینه‌ها مستقل از یکدیگر نیستند: .bP \fB\*L\fP بررسی می‌کند که آیا اسکریپت حاوی حداقل یک \*(``\en\*('' است یا خیر و (مگر اینکه \fB\-\-no\-nl\-expand\fP تنظیم شده باشد) گزینه‌های \fB\-\-no\-collapse\fP و \fB\-\-trim\fP را نادیده خواهد گرفت. .bP پس از بررسی \*(``\en\*('' و گزینه \fB\-\-no\-nl\-expand\fP، برنامه \fB\*l\fP گزینه \fB\-\-trim\fP را مدیریت می‌کند. .IP اگر گزینه \fB\-\-trim\fP اعمال شود، \fB\*l\fP گزینه \fB\-\-no\-collapse\fP را نادیده می‌گیرد. این گزینه توالی تب‌ها، فاصله‌ها (و خطوط جدید، مگر اینکه \fB\-cr\-wrap\fP تنظیم شده باشد) را به یک فاصله تکی تبدیل می‌کند. .bP اگر هیچ‌یک از موارد \*(``\en\*('' یا \fB\-\-trim\fP اعمال نشوند، \fB\*l\fP گزینه \fB\-\-no\-collapse\fP را بررسی می‌کند تا تصمیم بگیرد آیا توالی تب‌ها و فاصله‌ها را به یک فاصله تکی کاهش دهد یا خیر. .IP در این حالت، \fB\*l\fP گزینه \fB\-\-cr\-wrap\fP را نادیده می‌گیرد و خطوط جدید را تغییر نمی‌دهد. .PP با در نظر گرفتن این وابستگی‌ها، در اینجا جدولی آورده شده است که رفتار حاصل از ترکیب‌های مختلف گزینه‌ها را خلاصه می‌کند. این جدول فرض می‌کند که اسکریپت حاوی حداقل یک \*(``\en\*('' است در زمانی که گزینه \fB\-\-no\-nl\-expand\fP تنظیم نشده باشد. .na .RS 5 .TS tab(/) ; lB lB lB lB lB lB lB lB lB lB _ _ _ _ _ lw4 lw4 lw4 lw4 lw29. cr-/no-/no-/trim/نتیجه wrap/collapse/nl\-expand no/no/no/no/T{ تبدیل تب به فاصله. تبدیل خط جدید به فاصله. تبدیل \*(``\en\*('' به خط جدید. T} no/no/no/yes/T{ تبدیل تب به فاصله. تبدیل خط جدید به فاصله. تبدیل \*(``\en\*('' به خط جدید. T} no/no/yes/no/T{ تبدیل تب به فاصله. عدم تبدیل خط جدید به فاصله. تبدیل فاصله‌های متوالی به فاصله تکی. نمایش تحت‌اللفظی \*(``\en\*(''. T} no/no/yes/yes/T{ تبدیل تب به فاصله. تبدیل فاصله‌های متوالی به فاصله تکی. تبدیل خط جدید به فاصله. نمایش تحت‌اللفظی \*(``\en\*(''. T} no/yes/no/no/T{ تبدیل خط جدید به فاصله. تبدیل \*(``\en\*('' به خط جدید. T} no/yes/no/yes/T{ تبدیل خط جدید به فاصله. تبدیل \*(``\en\*('' به خط جدید. T} no/yes/yes/no/T{ عدم تبدیل خط جدید به فاصله. عدم کاهش فاصله‌های متوالی. نمایش تحت‌اللفظی \*(``\en\*(''. T} no/yes/yes/yes/T{ تبدیل فاصله‌های متوالی به فاصله تکی. تبدیل خط جدید به فاصله. نمایش تحت‌اللفظی \*(``\en\*(''. T} yes/no/no/no/T{ تبدیل تب به فاصله. شکستن خط در خط جدید. تبدیل \*(``\en\*('' به خط جدید. T} yes/no/no/yes/T{ تبدیل تب به فاصله. شکستن خط در خط جدید. تبدیل \*(``\en\*('' به خط جدید. T} yes/no/yes/no/T{ تبدیل تب به فاصله. عدم تبدیل خط جدید به فاصله. تبدیل فاصله‌های متوالی به فاصله تکی. نمایش تحت‌اللفظی \*(``\en\*(''. T} yes/no/yes/yes/T{ تبدیل تب به فاصله. تبدیل فاصله‌های متوالی به فاصله تکی. شکستن خط در خط جدید. نمایش تحت‌اللفظی \*(``\en\*(''. T} yes/yes/no/no/T{ شکستن خط در خط جدید. تبدیل \*(``\en\*('' به خط جدید. T} yes/yes/no/yes/T{ شکستن خط در خط جدید. تبدیل \*(``\en\*('' به خط جدید. T} yes/yes/yes/no/T{ عدم تبدیل خط جدید به فاصله. عدم کاهش فاصله‌های متوالی. نمایش تحت‌اللفظی \*(``\en\*(''. T} yes/yes/yes/yes/T{ تبدیل فاصله‌های متوالی به فاصله تکی. شکستن خط در خط جدید. نمایش تحت‌اللفظی \*(``\en\*(''. T} .TE .RE .ad . .\" ************************************************************************ .SH "پیکربندی زمان اجرا (RUN-TIME CONFIGURATION)" .TP 4 1. با تایپ دستور زیر، یک فایل پیکربندی نمونه ایجاد کنید: .LP .Ex \*p \-\-create\-rc \fIfile\fP .Ee .TP 4 2. در هنگام شروع، \fB\*p\fP تنظیمات مورد استفاده را به شرح زیر تعیین می‌کند: .RS .TP 4 الف) اگر متغیر محیطی \fBDIALOGRC\fP تنظیم شده باشد، مقدار آن نام فایل پیکربندی را تعیین می‌کند. .TP 4 ب) اگر فایل مشخص‌شده در (الف) یافت نشود، از فایل \fI$HOME/.dialogrc\fP به عنوان فایل پیکربندی استفاده می‌شود. .TP 4 ج) اگر فایل مشخص‌شده در (ب) یافت نشود، برنامه تلاش می‌کند از فایل GLOBALRC تعیین‌شده در زمان کامپایل، یعنی \fI/etc/dialogrc\fP استفاده کند. .TP 4 د) اگر فایل مشخص‌شده در (ج) یافت نشود، از مقادیر پیش‌فرض کامپایل‌شده در برنامه استفاده می‌شود. .RE .TP 4 3. فایل پیکربندی نمونه را ویرایش کرده و آن را در مکانی کپی کنید که \fB\*p\fP بتواند طبق مرحله ۲ بالا آن را پیدا کند. . .\" ************************************************************************ .SH "کلیدهای میانبر (KEY BINDINGS)" می‌توانید با افزودن به فایل پیکربندی، کلیدهای میانبر در \fB\*p\fP را لغو کرده یا کلیدهای جدیدی به آن بیفزایید. دستور \fBbindkey\fP در \fB\*L\fP کلیدهای تکی را به کدهای داخلی خود نگاشت می‌کند. .Ex bindkey \fIwidget\fP \fIcurses_key\fP \fIdialog_key\fP .Ee .PP نام \fIwidget\fP می‌تواند \*(``*\*('' (همه ویجت‌ها)، یا ویجت‌های خاصی مانند \fBtextbox\fP باشد. اتصالات مربوط به ویجت‌های خاص، اتصالات \*(``*\*('' را لغو می‌کنند. اتصالات تعریف‌شده توسط کاربر، اتصالات پیش‌فرض داخلی را لغو می‌کنند. .PP کلید \fIcurses_key\fP می‌تواند به شکل‌های مختلفی بیان شود: .bP می‌تواند هر یک از نام‌های برگرفته از \fBcurses.h\fP باشد، به عنوان مثال \*(``HELP\*('' از \*(``KEY_HELP\*(''. .bP همچنین \fB\*L\fP کاراکترهای کنترلی ANSI مانند \*(``^A\*('' و \*(``^?\*('' و همچنین کنترل‌های C1 مانند \*(``~A\*('' و \*(``~?\*('' را می‌شناسد. .bP در نهایت، \fB\*l\fP همانند زبان C اجازه استفاده از دنباله‌های گریز بک‌اسلش را می‌دهد. این دنباله‌ها می‌توانند مقادیر کاراکتری اکتال مانند \*(``\\033\*('' (کاراکتر escape در اسکی) یا کاراکترهای فهرست‌شده در این جدول باشند: .RS 10 .TS tab(/) ; lI lI _ _ l l . نویسه گریز/نویسه واقعی \\b/backspace \\f/form feed \\n/new line (line feed) \\r/carriage return \\s/space \\t/tab \\^/\*(``^\*('' (caret) \\?/\*(``?\*('' (question mark) \\\\/\*(``\\\*('' (backslash) _ .TE .RE .PP نام‌های کدهای کلید داخلی \fB\*L\fP متناظر با نوع \fBDLG_KEYS_ENUM\fP در \fBdlg_keys.h\fP هستند، به عنوان مثال \*(``HELP\*('' از \*(``DLGK_HELP\*(''. .SS "نام ویجت‌ها (Widget Names)" برخی از ویجت‌ها (مانند formbox) دارای ناحیه‌ای هستند که می‌توان فیلدها را در آن ویرایش کرد. این نواحی در یک زیرپنجره از ویجت مدیریت می‌شوند، و ممکن است کلیدهای میانبر جداگانه‌ای نسبت به ویجت اصلی داشته باشند زیرا زیرپنجره‌ها با استفاده از نام متفاوتی ثبت شده‌اند. .RS 5 .TS tab(/) ; lI lI lI _ _ _ l l l . ویجت/نام پنجره/نام زیرپنجره calendar/calendar checklist/checklist editbox/editbox/editbox2 form/formbox/formfield fselect/fselect/fselect2 inputbox/inputbox/inputbox2 menu/menubox/menu msgbox/msgbox pause/pause progressbox/progressbox radiolist/radiolist tailbox/tailbox textbox/textbox/searchbox timebox/timebox yesno/yesno _ .TE .RE .PP برخی از ویجت‌ها در واقع همان ویجت‌های دیگر هستند که با استفاده از تنظیمات داخلی رفتار آن‌ها تغییر کرده است. این ویجت‌ها از همان نام ویجتِ ویجتِ واقعی استفاده می‌کنند: .RS 5 .TS tab(/) ; lI lI _ _ l l . ویجت/ویجت واقعی dselect/fselect infobox/msgbox inputmenu/menu mixedform/form passwordbox/inputbox passwordform/form prgbox/progressbox programbox/progressbox tailboxbg/tailbox _ .TE .RE .SS "کلیدهای پیش‌فرض داخلی (Built-in Bindings)" این صفحه راهنما کلیدهای میانبر مربوط به هر ویجت را فهرست نمی‌کند، زیرا این اطلاعات دقیق را می‌توان با اجرای \fB\*p\fP به دست آورد. اگر گزینه \fB\-\-trace\fP را تنظیم کرده باشید، \fB\*p\fP اطلاعات کلیدهای میانبر هر ویجت را به محض ثبت شدن در آن می‌نویسد. .PP چند کلید میانبر به صورت پیش‌فرض و مستقل از ویجت‌های خاص تعبیه شده‌اند: .TS tab(/) ; lI lI _ _ l l . کلید/هدف Control-I/پیمایش کلید Tab به جلو، مثلاً با \fB\-\-tailboxbg\fP. Control-L/بازترسیم صفحه نمایش. Control-T/نوشتن یک تصویر از صفحه در فایل \fB\-\-trace\fP. Control-V/غیرفعال کردن کلیدهای ویژه برای بایت ورودی بعدی. DLGK_FIELD_NEXT/پیمایش کلید Tab به جلو، همانند Control-I. DLGK_FIELD_PREV/پیمایش کلید Tab به عقب، همانند back-tab. DLGK_HELPFILE/نمایش فایل راهنمای مشخص‌شده با \fB\-\-hfile\fP. KEY_BTAB/پیمایش کلید Tab به عقب، مثلاً با \fB\-\-tailboxbg\fP. _ .TE .SS "مثال (Example)" به طور معمول \fB\*p\fP از کلیدهای متفاوتی برای پیمایش بین دکمه‌ها و بخش ویرایشی یک گفتگو در مقایسه با پیمایش در درون بخش ویرایشی استفاده می‌کند. بدین معنا که کلید Tab (و Backtab) بین دکمه‌ها (یا بین دکمه‌ها و بخش ویرایش) حرکت می‌کنند، در حالی که کلیدهای جهت‌نما بین فیلدهای درون بخش ویرایش جابه‌جا می‌شوند. کلیدهای Tab همچنین به عنوان حالت خاصی برای پیمایش بین ویجت‌ها شناخته می‌شوند، مثلاً هنگام استفاده از چندین ویجت tailboxbg. .PP برخی از کاربران ممکن است تمایل داشته باشند از همان کلید برای پیمایش در درون بخش ویرایش استفاده کنند که برای پیمایش بین دکمه‌ها استفاده می‌شود. ویجت form برای پشتیبانی از این نوع بازتعریف کلیدها طراحی شده است، به این صورت که گروه خاصی در \fBdlgk_keys.h\fP برای \*(``form\*('' (چپ/راست/بعدی/قبلی) اضافه شده است. در اینجا نمونه‌ای از اتصال کلیدها آورده شده است که نحوه انجام این کار را نشان می‌دهد: .Ex bindkey formfield TAB form_NEXT bindkey formbox TAB form_NEXT bindkey formfield BTAB form_prev bindkey formbox BTAB form_prev .Ee .PP این نوع بازتعریف در سایر ویجت‌ها، مثلاً calendar، به دلیل تعداد زیاد فیلدهای احتمالی برای پیمایش، مفید نخواهد بود. . .SH "وضعیت خروج (EXIT STATUS)" وضعیت خروج ممکن است توسط متغیرهای محیطی بازنویسی شود. مقادیر پیش‌فرض و متغیرهای محیطی متناظری که می‌توانند آن‌ها را بازنویسی کنند عبارتند از: .TP 5 0 اگر دکمه \fBYES\fP یا \fBOK\fP فشرده شود (DIALOG_OK). .TP 5 1 اگر دکمه .BR No " یا " Cancel فشرده شود (DIALOG_CANCEL). .TP 5 2 اگر دکمه .B Help فشرده شود (DIALOG_HELP)، .br مگر در مواردی که در زیر درباره DIALOG_ITEM_HELP اشاره شده است. .TP 5 3 اگر دکمه .B Extra فشرده شود (DIALOG_EXTRA). .TP 5 4 اگر دکمه .B Help فشرده شود، .br و گزینه \fB\-\-item\-help\fP تنظیم شده باشد .br و متغیر محیطی DIALOG_ITEM_HELP روی 4 تنظیم شده باشد. .IP اگرچه هر یک از کدهای خروج را می‌توان با استفاده از متغیرهای محیطی تغییر داد، این حالت خاص در سال 2004 برای ساده‌سازی سازگاری معرفی شد. \fB\*L\fP در داخل از DIALOG_ITEM_HELP (4) استفاده می‌کند، اما مگر اینکه متغیر محیطی نیز تنظیم شده باشد، آن را در هنگام خروج به DIALOG_HELP (2) تغییر می‌دهد. .TP 5 5 اگر مهلت زمانی به پایان برسد و متغیر \fBDIALOG_TIMEOUT\fP روی 5 تنظیم شده باشد. .TP 5 \-1 اگر خطاهایی در داخل \fB\*p\fP رخ دهد (DIALOG_ERROR) یا \fB\*p\fP به دلیل فشرده شدن کلید \fIESC\fP (DIALOG_ESC) خارج شود. .\" ************************************************************************ .SH "محیط (ENVIRONMENT)" .TP 15 \fBDIALOGOPTS\fP این متغیر را برای اعمال هر یک از گزینه‌های عمومی به هر ویجت تعریف کنید. بیشتر گزینه‌های عمومی پیش از پردازش هر ویجت بازنشانی می‌شوند. اگر گزینه‌ها را در این متغیر محیطی تنظیم کنید، پس از بازنشانی روی وضعیت \fB\*p\fP اعمال می‌شوند. همانند گزینه \*(``\fB\-\-file\fP\*(''، نقل‌قول‌های دوتایی و بک‌اسلش‌ها تفسیر می‌شوند. .IP گزینه \*(``\fB\-\-file\fP\*('' یک گزینه عمومی در نظر گرفته نمی‌شود (بنابراین نمی‌توانید آن را درون این متغیر محیطی جاسازی کنید). .TP 15 \fBDIALOGRC\fP اگر می‌خواهید نام فایل پیکربندی مورد استفاده را مشخص کنید، این متغیر را تعریف نمایید. .TP 15 \fBDIALOG_CANCEL\fP .TP 15 \fBDIALOG_ERROR\fP .TP 15 \fBDIALOG_ESC\fP .TP 15 \fBDIALOG_EXTRA\fP .TP 15 \fBDIALOG_HELP\fP .TP 15 \fBDIALOG_ITEM_HELP\fP .TP 15 \fBDIALOG_TIMEOUT\fP .TP 15 \fBDIALOG_OK\fP هر یک از این متغیرها را برای تغییر کد وضعیت خروج در موارد زیر تعریف کنید: .RS .bP لغو (1)، .bP خطا (\-1)، .bP کلید ESC (255)، .bP دکمه Extra (3)، .bP دکمه Help (2)، .bP دکمه Help با \fB\-\-item\-help\fP (2)، .bP پایان مهلت زمانی (5)، یا .bP دکمه OK (0). .RE .IP به طور معمول اسکریپت‌های شل نمی‌توانند بین \-1 و 255 تفاوتی قائل شوند. .TP 15 \fBDIALOG_TTY\fP این متغیر را روی \*(``1\*('' تنظیم کنید تا سازگاری با نسخه‌های قدیمی‌تر \fB\*p\fP فراهم شود که فرض می‌کردند اگر اسکریپت خروجی استاندارد را هدایت کند، گزینه \*(``\fB\-\-stdout\fP\*('' داده شده است. .\" ************************************************************************ .SH "فایل‌ها (FILES)" .TP 20 \fI$HOME/.dialogrc\fP فایل پیکربندی پیش‌فرض .\" ************************************************************************ .SH "قابلیت حمل (PORTABILITY)" \fB\*L\fP با X/Open curses کار می‌کند. با این حال، برخی پیاده‌سازی‌ها دارای کاستی‌هایی هستند: .RS 3 .bP کتابخانه curses در HPUX (و شاید موارد دیگر) ترمینال را برای تابع \fInewterm\fP به درستی باز نمی‌کند. این موضوع با گزینه \fB\-\-input\-fd\fP در \fB\*p\fP تداخل دارد و از شناسایی کلیدهای جهت‌نما و دنباله‌های گریز مشابه جلوگیری می‌کند. .bP کتابخانه curses در NetBSD 5.1 پشتیبانی ناقصی از کاراکترهای عریض دارد. برنامه \fB\*p\fP ساخته می‌شود، اما همه نمونه‌ها به درستی نمایش داده نمی‌شوند. .RE .\" ************************************************************************ .SH "سازگاری (COMPATIBILITY)" ممکن است بخواهید اسکریپت‌هایی بنویسید که با دیگر نسخه‌های شبیه‌سازی‌شده \fB\*l\fP کار کنند. .SS "Dialog اصلی (Original Dialog)" نخست، باید برنامه \*(``اصلی\*('' \fB\*p\fP را در نظر گرفت (نسخه‌های 0.3 تا 0.9). این نسخه دارای گزینه‌هایی با املای نادرست (یا ناسازگار) بود. برنامه \fB\*p\fP آن گزینه‌های منسوخ را به موارد ترجیحی نگاشت می‌کند. آن‌ها شامل موارد زیر هستند: .RS .TS tab(/) ; lI lI _ _ l l. گزینه/نحوه برخورد \fB\-\-beep\-after\fP/نادیده گرفته می‌شود \fB\-\-guage\fP/به \fB\-\-gauge\fP نگاشت می‌شود _ .TE .RE .SS Xdialog این یک برنامه مبتنی بر محیط X است، نه یک برنامه ترمینال. با کمی دقت، می‌توان اسکریپت‌های مفیدی نوشت که هم با \fBXdialog\fP و هم با \fB\*p\fP کار کنند. .PP برنامه \fB\*p\fP گزینه‌های زیر را که توسط \fBXdialog\fP شناخته می‌شوند نادیده می‌گیرد: .RS .TS tab(/) ; lI lI _ _ l l. گزینه/نحوه برخورد \fB\-\-allow\-close\fP/نادیده گرفته می‌شود \fB\-\-auto\-placement\fP/نادیده گرفته می‌شود \fB\-\-fixed\-font\fP/نادیده گرفته می‌شود \fB\-\-icon\fP/نادیده گرفته می‌شود \fB\-\-keep\-colors\fP/نادیده گرفته می‌شود \fB\-\-no\-close\fP/نادیده گرفته می‌شود \fB\-\-no\-cr\-wrap\fP/نادیده گرفته می‌شود \fB\-\-screen\-center\fP/نادیده گرفته می‌شود \fB\-\-separator\fP/به \fB\-\-separate\-output\fP نگاشت می‌شود \fB\-\-smooth\fP/نادیده گرفته می‌شود \fB\-\-under\-mouse\fP/نادیده گرفته می‌شود \fB\-\-wmclass\fP/نادیده گرفته می‌شود _ .TE .RE .PP صفحه راهنمای \fBXdialog\fP دارای بخشی است که سازگاری آن با \fB\*p\fP را مورد بحث قرار می‌دهد. برخی تفاوت‌ها وجود دارند که در صفحه راهنما نشان داده نشده‌اند. به عنوان مثال، مستندات html بیان می‌کنند: .RS .PP یادداشت: نسخه‌های قبلی Xdialog از \*(``\en\*('' (خط جدید) به عنوان جداکننده نتایج برای ویجت چک‌لیست استفاده می‌کردند؛ این مورد در نسخه Xdialog 1.5.0 به \*(``/\*('' تغییر یافته است تا با cdialog سازگار شود. در اسکریپت‌های قدیمی خود که از چک‌لیست Xdialog استفاده می‌کنند، باید گزینه \fB\-\-separate\-output\fP را قبل از گزینه \fB\-\-checklist\fP اضافه کنید. .RE .PP برنامه \fB\*L\fP از جداکننده متفاوتی استفاده نکرده است؛ این تفاوت احتمالاً ناشی از سردرگمی در مورد برخی اسکریپت‌ها بوده است. .SS Whiptail سپس \fBwhiptail\fP وجود دارد. برای اهداف عملی، این برنامه توسط دبیان نگهداری می‌شود (توسعه‌دهندگان اصلی آن کار بسیار کمی روی آن انجام می‌دهند). مستندات آن (README.whiptail) ادعا می‌کند: .Ex whiptail(1) یک جایگزین سبک‌وزن برای \*p(1) است تا جعبه‌های گفتگو را برای اسکریپت‌های شل فراهم کند. این برنامه بر پایه کتابخانه پنجره‌بندی newt ساخته شده است نه کتابخانه ncurses، که به آن اجازه می‌دهد در محیط‌های تعبیه‌شده مانند نصاب‌ها، دیسک‌های نجات و غیره حجم کمتری داشته باشد. whiptail طوری طراحی شده است که سازگاری مستقیم با \*p داشته باشد، اما ویژگی‌های کمتری دارد: برخی از جعبه‌های گفتگو مانند tailbox، timebox، calendarbox و غیره پیاده‌سازی نشده‌اند. .Ee .PP مقایسه اندازه‌های واقعی (Debian testing، 2007/1/10): مجموع اندازه‌ها برای \fBwhiptail\fP و کتابخانه‌های newt، popt و slang برابر با 757\ کیلوبایت است. عدد متناظر برای \fB\*p\fP (با احتساب ncurses) برابر با 520\ کیلوبایت است. پاراگراف اول را نادیده بگیرید. .PP پاراگراف دوم گمراه‌کننده است، زیرا \fBwhiptail\fP برای گزینه‌های عمومی \fB\*p\fP مانند جعبه gauge نیز کار نمی‌کند. سازگاری \fBwhiptail\fP با \fB\*p\fP از برنامه اصلی dialog 0.4 در اواسط دهه 1990 نیز کمتر است. .PP صفحه راهنمای \fBwhiptail\fP ویژگی‌هایی را از \fB\*p\fP وام گرفته است، اما به طرز عجیبی تنها از نسخه‌های \fB\*p\fP تا 0.4 (1994) به عنوان منبع یاد می‌کند. به این معنا که صفحه راهنمای آن به ویژگی‌هایی اشاره می‌کند که از نسخه‌های جدیدتر \fB\*p\fP وام گرفته شده‌اند، از جمله: .bP \fB\-\-gauge\fP (از نسخه 0.5) .bP \fB\-\-passwordbox\fP (از تغییرات دبیان در 1999)، .bP \fB\-\-default\-item\fP (از \fB\*p\fP تاریخ 2000/02/22)، .bP \fB\-\-output\-fd\fP (از \fB\*p\fP تاریخ 2002/08/14). .PP دبیان از \fBwhiptail\fP برای گونه رسمی \fB\*p\fP استفاده می‌کند. .PP برنامه \fB\*p\fP این گزینه‌ها را که توسط \fBwhiptail\fP شناخته می‌شوند نادیده گرفته یا نگاشت می‌کند: .RS .TS tab(/) ; lI lI _ _ l l. گزینه/نحوه برخورد \fB\-\-cancel\-button\fP/به \fB\-\-cancel\-label\fP نگاشت می‌شود \fB\-\-fb\fP/نادیده گرفته می‌شود \fB\-\-fullbutton\fP/نادیده گرفته می‌شود \fB\-\-no\-button\fP/به \fB\-\-no\-label\fP نگاشت می‌شود \fB\-\-nocancel\fP/به \fB\-\-no\-cancel\fP نگاشت می‌شود \fB\-\-noitem\fP/به \fB\-\-no\-items\fP نگاشت می‌شود \fB\-\-notags\fP/به \fB\-\-no\-tags\fP نگاشت می‌شود \fB\-\-ok\-button\fP/به \fB\-\-ok\-label\fP نگاشت می‌شود \fB\-\-scrolltext\fP/به \fB\-\-scrollbar\fP نگاشت می‌شود \fB\-\-topleft\fP/به \fB\-\-begin 0 0\fP نگاشت می‌شود \fB\-\-yes\-button\fP/به \fB\-\-yes\-label\fP نگاشت می‌شود _ .TE .RE .LP تفاوت‌های بصری وجود دارند که توسط گزینه‌های خط فرمان برطرف نمی‌شوند: .bP \fB\*p\fP فهرست‌ها را در داخل پنجره وسط‌چین می‌کند. \fBwhiptail\fP معمولاً فهرست‌ها را در حاشیه سمت چپ قرار می‌دهد. .bP \fBwhiptail\fP از علامت‌های زاویه‌دار (\*(``<\*('' و \*(``>\*('') برای مشخص کردن دکمه‌ها استفاده می‌کند. \fB\*p\fP از براکت استفاده می‌کند. .bP \fBwhiptail\fP حدود زیرعنوان‌ها را با خطوط عمودی مشخص می‌کند. \fB\*p\fP حدود را مشخص نمی‌کند. .bP \fBwhiptail\fP تلاش می‌کند خانه‌های بالا/پایین نوار پیمایش را با پیکان‌های بالا/پایین علامت‌گذاری کند. هنگامی که نمی‌تواند این کار را انجام دهد، آن خانه‌ها را با رنگ پس‌زمینه نوار پیمایش پر می‌کند و باعث سردرگمی کاربر می‌شود. \fB\*p\fP از کل فضای نوار پیمایش استفاده می‌کند و در نتیجه وضوح بهتری به دست می‌آورد. .\" ************************************************************************ .SH "اشکالات (BUGS)" شاید وجود داشته باشد. .\" ************************************************************************ .SH "مثال‌ها (EXAMPLES)" منابع \fB\*p\fP شامل چندین نمونه از نحوه استفاده از گزینه‌های مختلف جعبه و ظاهر آن‌ها است. کافی است نگاهی به دایرکتوری \fBsamples/\fP در سورس برنامه بیندازید. .\" ************************************************************************ .SH "نویسندگان (AUTHORS)" Thomas E.\& Dickey (به‌روزرسانی‌ها برای 0.9b و پس از آن) .LP Kiran Cherupally \(en ویجت‌های mixed form و mixed gauge. .LP Tobias C.\& Rittweiler .LP Valery Reznic \(en ویجت‌های form و progressbox. .LP Yura Kalinichenko ویجت gauge را به عنوان \*(``pause\*('' تطبیق داد. .PP این یک بازنویسی (به جز موارد مورد نیاز برای تأمین سازگاری) از نسخه پیشین \fB\*p 0.9a\fP است که نویسندگان آن به شرح زیر فهرست شده‌اند: .bP Savio Lam \(en نسخه 0.3، \*(``dialog\*('' .bP Stuart Herbert \(en وصله برای نسخه 0.4 .bP Marc Ewing \(en ویجت gauge. .bP Pasquale De Marco \*(``Pako\*('' \(en نسخه 0.9a، \*(``cdialog\*(''