[Tokyo.pm] 座る GCC: さくら

harada goichi goichi @ mb.kcom.ne.jp
1999年 9月 5日 (日) 08:06:09 CDT


こんばんは、吾一です。

とりあえず、右クリックでポップアップメニューが出る所までです。
ちょっとウィジェットの配置関係の命令がいまいち意味がつかめていないので、
設定ウィンドウはまだできていません。
それがわかったらダイアログもダイアログボックスで書き換えます。
それと、インテリマウスだと<2>では何故か動きませんでした。

バグ:右クリックを連続で押すと連続でメニューが出ず、一回毎に出る。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++

use Tk;

$mw = MainWindow->new();
$mw->bind('<3>', [\&show_popup_menu, Ev('X'), Ev('Y')]  );

MainLoop;

sub show_popup_menu{
 my ($w, $x, $y) = @_;
 my $menu = $w->{'POPUP_MENU_REFERENCE'};

 unless (defined $menu)
  {
   $w->{'POPUP_MENU_REFERENCE'} = $menu = 
   $w->Menu (-tearoff => 0);
     $menu->command(-label => '設定(~O)',         -font => "{MS ゴシック
} 9",  -command => [\&show_config, $w]);
     $menu->command(-label => 'バージョン情報(~A)',  -font => "{MS ゴシック
} 9",  -command => [\&show_dialog, $w]);
     $menu->separator,
     $menu->command(-label => '終了(~X)',         -font => "{MS ゴシック
} 9",  -command => sub {exit;});
  }
  $menu->Post($x,$y);
}

sub show_dialog{
  my($w) = @_;
  my $dialog = $w->{'DIALOG_REFERENCE'};
  unless (defined $dialog){
    $w->{'DIALOG_REFERENCE'} = $dialog = 
    $w->Dialog(
      -title          => 'バージョン情報',
      -font => "{MS ゴシック} 9",
      -bitmap         => 'info',
      -default_button => 'OK',
      -buttons        => ['OK'],
      -text           => "バージョン情報\n" .
			 "ver 0.01",
    );
  }
  $dialog->Show();
}

sub show_config{
  my($w) = @_;
  exit;
}


-- 

---------------------------------------
Goichi Harada
E-mail  goichi @ mb.kcom.ne.jp



Tokyo-pm メーリングリストの案内