======================================================================
 TUI::Handy Cheat Sheet                                  [MY] မြန်မာဘာသာ
======================================================================

[ 1. ထည့်သွင်းခြင်းနှင့် ဖွင့်ခြင်း ]

  CPAN မှီခိုမှု မရှိပါ။ Handy.pm ကို @INC ထဲမှ ဒါရိုက်တိုရီတစ်ခုသို့ ကူးယူပါ၊ သို့မဟုတ် script အနေဖြင့် တိုက်ရိုက် မောင်းနှင်ပါ။

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

[ 2. ဖောင်ဖန်တီးပြီး အလုပ်လုပ်ခြင်း ]

  DSL string သို့မဟုတ် ဖိုင်တစ်ခုမှ ဖောင်ကို တည်ဆောက်ပြီး run() ကို ခေါ်ပါ။ ရလဒ်မှာ DSL ရှိ label များကို key အဖြစ်အသုံးပြုသော hash reference တစ်ခုဖြစ်သည်။

  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. အက္ခရာ ကုဒ်နံပါတ် ]

  Windows မဟုတ်သော စနစ်များတွင် UTF-8 နှင့် Windows တွင် Shift_JIS (CP932) ကို အလိုအလျောက် သိရှိသည်။ EUC-JP ကိုလည်း ပံ့ပိုးသည်။ TUI_HANDY_ENCODING ဖြင့် ပြင်ဆင်နိုင်သည်။

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

[ 8. လိုင်းမုဒ် အရန်စနစ် ]

  stty မရရှိနိုင်သောအခါ (စစ်စစ် Windows cmd.exe) သယ်ဆောင်ရလွယ်ကူသော လိုင်းမုဒ် driver ကို အလိုအလျောက် အသုံးပြုသည်။ TUI_HANDY_MODE ဖြင့် မုဒ်ကို အတင်းသတ်မှတ်ပါ။

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

[ 9. command line အသုံးပြုခြင်း ]

  Perl ကုဒ် မရေးဘဲ DSL ဖိုင်တစ်ခုကို တိုက်ရိုက် မောင်းနှင်နိုင်သည်။

  perl Handy.pm form.txt

[ 10. ပြည့်စုံသော ဥပမာ ]

  widget အမျိုးအစားအားလုံးပေါင်းစပ်ထားသော DSL ဥပမာ တိုတိုလေး။

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

[ 11. ကိုးကားချက်များ ]

  အပြည့်အစုံ စာရွက်စာတမ်းသည် lib/TUI/Handy.pm ၏ POD တွင်ရှိသည် (perldoc TUI::Handy)။ စာရေးသူ: INABA Hitoshi <ina.cpan@gmail.com>။ လိုင်စင်: Perl နှင့်တူညီသောစည်းကမ်းများ။
