分页: 1 / 2

通用的tray菜单,有点问题

发表于 : 2009-05-08 10:23
eexpress

代码: 全选

#!/usr/bin/perl

use utf8;

use Gtk2 -init;

sub popM {
   my ($widget, $button, $time, $menu) = @_;
   if ($button == 3) {
   my ($x,$y,$push_in)=Gtk2::StatusIcon::position_menu($menu, $widget);
   $menu->show_all();
   $menu->popup(undef,undef,sub{return($x,$y,0)},undef,0,$time);
   }
}

open(CFGFILE,"$ENV{HOME}/.traymenu.rc") or die "不能打开配置文件。";
my $menu = Gtk2::Menu->new();
my $item;
my $defaultcmd;
while(<CFGFILE>){
        chomp;
        next if /^#/;
        my($menuname,$iconfile,$command)=split(/,/);
        if(!$defaultcmd){$defaultcmd=$command;}
        print "$menuname\n";
$item = Gtk2::ImageMenuItem->new_with_label("执行$menuname");
$item->set_image(Gtk2::Image->new_from_file($iconfile));
$item->signal_connect('activate', sub{`$_[1]`;},$command);
$menu->append($item);
}
close CFGFILE;
my $status_icon = Gtk2::StatusIcon->new_from_stock('gtk-home');
$item = Gtk2::ImageMenuItem->new_from_stock('gtk-quit');
$item->signal_connect('activate', sub{Gtk2->main_quit();}, $status_icon);
$menu->append($item);

$status_icon->set_tooltip("截图/贴图/贴文字集合");
$status_icon->signal_connect('activate', sub{`$defaultcmd`;});
$status_icon->signal_connect('popup-menu', \&popM, $menu);
$status_icon->set_visible(1);

Gtk2->main();
其中,读取的$menuname $iconfile 是乱码或者说无效路径。奇怪的,谁测试下。print出来正确,连那new_with_label("执行$menuname")的”执行“都正常。

配置文件格式如下。

代码: 全选

☎ cat ~/.traymenu.rc 
# 菜单项目名,图标,执行命令
# 第一条命令为缺省点击命令
截图并贴图,/home/exp/应用/脚本/f2.png,p-p截图并贴图.bash
截图,/home/exp/应用/脚本/f1.png,import-截图

Re: 通用的tray菜单,有点问题

发表于 : 2009-05-08 10:30
lerosua
做出来,有啥用?

Re: 通用的tray菜单,有点问题

发表于 : 2009-05-08 10:31
eexpress
不用fvwm的,你就路过罗。
:em04
有需要的。常用脚本都集成到这里嘛。

Re: 通用的tray菜单,有点问题

发表于 : 2009-05-08 12:10
HuntXu
为什么不能用fvwmbuttons要用tray...

Re: 通用的tray菜单,有点问题

发表于 : 2009-05-08 12:19
bones7456
哦,我路过..

Re: 通用的tray菜单,有点问题

发表于 : 2009-05-08 12:20
adagio
再过以下……

Re: 通用的tray菜单,有点问题

发表于 : 2009-05-08 12:55
eexpress
没事的,都测试下啊。晕不。试试904有问题没。
其他wm不一样可以用哦。

Re: 通用的tray菜单,有点问题

发表于 : 2009-05-08 13:18
zhan
有 tray 的软件如果能够设置我都设置成不显示。

Re: 通用的tray菜单,有点问题

发表于 : 2009-05-08 13:20
yaoms
怪阿,为什么呢?

Re: 通用的tray菜单,有点问题

发表于 : 2009-05-08 13:26
adam8157
bones7456 写了:哦,我路过..

Re: 通用的tray菜单,有点问题

发表于 : 2009-05-08 13:43
yaoms
use Encode;

...

$menuname = decode_utf8($menuname);

Re: 通用的tray菜单,有点问题

发表于 : 2009-05-08 14:50
windwiny
试下 x

Re: 通用的tray菜单,有点问题

发表于 : 2009-05-08 16:50
eexpress
没道理encode的啊。
其他脚本里面,都是直接操作,读写很多的啊。

Re: 通用的tray菜单,有点问题

发表于 : 2009-05-12 17:40
ljskr
支持ee, 支持fvwm。 同样需要,不知问题解决了没有?

Re: 通用的tray菜单,有点问题

发表于 : 2009-05-12 20:10
想入非非
纯属路过了。。。基本上只用gnome