irprobe.pl

来自「linux操作系统下的红外驱动的测试程序」· PL 代码 · 共 115 行

PL
115
字号
#!/usr/bin/perl -wuse Gtk;use strict 'vars';init Gtk;my ($main_window,$table);my @results;sub item_factory_cb {  my ($widget, $action, @data) = @_;  if($action == -1)  {    destroy $main_window;     exit  }}my @item_factory_entries = ();sub create_item_factory {  my ($accel_group, $item_factory, $box1, $label, $box2);  my ($separator, $button, $dummy);      $main_window = new Gtk::Window('toplevel');  $accel_group = new Gtk::AccelGroup;  $item_factory = new Gtk::ItemFactory('Gtk::MenuBar', "<main>", 				       $accel_group);  #  my @chips = `findchip -l`;#  push @item_factory_entries, ["/_File",	undef,	0,	"<Branch>"];#  foreach (@chips)#  {#    chomp;#    my $item = "/_File/Probe ".$_;#    push @item_factory_entries, [$item, undef,	1];#  }#  push @item_factory_entries, ["/File/_All", "<control>A",	0];  push @item_factory_entries, ["/File/_Quit",	"<control>Q",	-1];    $accel_group->attach($main_window);  foreach (@item_factory_entries) {    $item_factory->create_item($_, \&item_factory_cb);  }    $main_window->set_title("Linux IrDA Chip Probe");  $main_window->set_border_width(0);    $box1 = new Gtk::VBox(0, 0);  $main_window->add($box1);  $box1->pack_start($item_factory->get_widget('<main>'), 0, 0, 0);    $table = new Gtk::Table(3,6,1);  my $lab00 = new Gtk::Label "Chip:";  my $lab01 = new Gtk::Label "Model:";  my $lab02 = new Gtk::Label "Version:";  my $lab10 = new Gtk::Label "Control IO:";  my $lab11 = new Gtk::Label "SIR IO:";  my $lab12 = new Gtk::Label "FIR IO:";  my $lab20 = new Gtk::Label "IRQ:";  my $lab21 = new Gtk::Label "DMA:";  my $lab22 = new Gtk::Label "";  for(my $i = 0; $i < 9; $i++)  {    $results[$i] = new Gtk::Label "";    my ($x,$y);    $x = 2*($i % 3);    $y = $i / 3;    $table->attach_defaults($results[$i], $x+1,$x+2, $y,$y+1);  }  $table->set_col_spacings(6);  $table->set_row_spacings(4);  $table->attach_defaults($lab00, 0,1,0,1);  $table->attach_defaults($lab01, 2,3,0,1);  $table->attach_defaults($lab02, 4,5,0,1);  $table->attach_defaults($lab10, 0,1,1,2);  $table->attach_defaults($lab11, 2,3,1,2);  $table->attach_defaults($lab12, 4,5,1,2);  $table->attach_defaults($lab20, 0,1,2,3);  $table->attach_defaults($lab21, 2,3,2,3);  $table->attach_defaults($lab22, 4,5,2,3);  my ($res);  $res = `findchip`;  chomp $res;  my @chipinfo = split (/,/,$res);    for(my $i = 0; $i < 8; $i++)  {    if(defined $chipinfo[$i])    {      $results[$i]->set ($chipinfo[$i]);    }    else    {      $results[$i]->set ("?");    }  }  $box1->add($table);  }create_item_factory;$main_window->signal_connect("destroy" => sub { destroy $main_window; exit } );show_all $main_window;main Gtk;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?