======================================================================
 TUI::Handy Cheat Sheet                                  [TH] ภาษาไทย
======================================================================

[ 1. การติดตั้งและโหลด ]

  ไม่มีการพึ่งพา CPAN คัดลอก Handy.pm ไปยังไดเรกทอรีใดก็ได้ใน @INC หรือรันโดยตรงเป็นสคริปต์

  use TUI::Handy;
  # or, as a command:  perl Handy.pm form.txt

[ 2. การสร้างและรันฟอร์ม ]

  สร้างฟอร์มจากสตริง DSL หรือไฟล์ แล้วเรียก run() ผลลัพธ์คือ hash reference ที่ใช้ label ใน DSL เป็นคีย์

  my $tui  = TUI::Handy->new(dsl => $text);   # or new(file => $path)
  my $form = $tui->run;
  print "Company = $form->{Company}\n";

[ 3. สัญลักษณ์กล่องข้อความ ]

  อักขระเติมใน [ ] กำหนดชนิดของกล่องข้อความ: _ คือครึ่งความกว้าง, # คือตัวเลข, $ หรือ \ คือสกุลเงิน, YYYYMMDD หรือ % คือวันที่ และอักขระเต็มความกว้างคือชนิด zenkaku

  Company: [__________]
  Age:     [###]
  Price:   [$$$$$$]
  Date:    [YYYYMMDD]

[ 4. เช็คบ็อกซ์และปุ่มตัวเลือก ]

  [X]/[ ] คือเช็คบ็อกซ์ (ค่า 1 หรือ 0) ส่วน (*)/( ) จัดกลุ่มปุ่มตัวเลือกตามบรรทัดหัวข้อก่อนหน้า ค่าคือข้อความ label ที่เลือก

  [X] Agree to terms
  Plan
  (*) Basic
  ( ) Premium

[ 5. ปุ่มกด ]

  วงเล็บเหลี่ยมที่ไม่มีข้อความ label นำหน้าคือปุ่มกด ลงทะเบียนการทำงานด้วย set()

  $tui->set('Register', sub { my $form = shift; save($form); 0 });
  [Register]

[ 6. การใช้ปุ่มกด ]

  TAB/ลูกศรลงไปช่องถัดไป Shift-TAB/ลูกศรขึ้นไปช่องก่อนหน้า Enter, Space และลูกศรใช้แก้ไขหรือกดปุ่ม ส่วน ESC ยกเลิกฟอร์ม

[ 7. การเข้ารหัสอักขระ ]

  ตรวจจับ UTF-8 อัตโนมัติบนระบบที่ไม่ใช่ Windows และ Shift_JIS (CP932) บน Windows รองรับ EUC-JP ด้วย สามารถกำหนดเองด้วย TUI_HANDY_ENCODING

  $ENV{TUI_HANDY_ENCODING} = 'euc';   # utf8 / sjis / euc

[ 8. โหมดสำรองแบบบรรทัด ]

  เมื่อไม่มี stty (Windows cmd.exe ล้วน) จะสลับไปใช้ไดรเวอร์โหมดบรรทัดแบบพกพาโดยอัตโนมัติ บังคับโหมดได้ด้วย TUI_HANDY_MODE

  $ENV{TUI_HANDY_MODE} = 'line';      # ansi / line

[ 9. การใช้งานผ่านบรรทัดคำสั่ง ]

  สามารถรันไฟล์ DSL ได้โดยตรงโดยไม่ต้องเขียนโค้ด Perl

  perl Handy.pm form.txt

[ 10. ตัวอย่างเต็มรูปแบบ ]

  ตัวอย่าง DSL สั้น ๆ ที่รวมวิดเจ็ตทุกชนิด

  Registration
  Company: [__________]
  Age:     [###]
  [X] Agree to terms
  Plan
  (*) Basic
  ( ) Premium
  [Register]

[ 11. เอกสารอ้างอิง ]

  เอกสารฉบับเต็มอยู่ใน POD ของ lib/TUI/Handy.pm (perldoc TUI::Handy) ผู้เขียน: INABA Hitoshi <ina.cpan@gmail.com> สัญญาอนุญาต: เงื่อนไขเดียวกับ Perl
