如何获得Gdk.Window任务图标或标题?

时间:2016-05-22 08:20:57

标签: window gtk vala gdk genie

我正在尝试:

//valac *.gs --pkg gtk+-3.0 

init
    Gtk.init(ref args)
    var ventana= new win()
    ventana.inicio()

    Gtk.main()


class win:Gtk.Window


    def inicio()

        var button= new Gtk.Button()
        button.clicked.connect(resizer)
        this.add(button)
        this.show_all()
    def resizer()
        var a=Gdk.Screen.get_default().get_window_stack()
        a.foreach(allwin)

    def allwin (w:Gdk.Window)
        var a=w.get_type_hint()
        if a!= Gdk.WindowTypeHint.DESKTOP

            w.resize(200,200)
            var iconpix= w.get_icon() //don't exist // [changed]
            var title= w.get_title() //don't exist // [changed]
            print "window"

但这些方法不存在。为什么?我不知道。 有什么建议?我尝试过Wnck,但我也遇到了错误。

2 个答案:

答案 0 :(得分:2)

您认为WNCK是要走的路。 Gdk只能看到您的程序创建的窗口。 Wnck使您可以访问由Window Manager管理的所有窗口。你的方法应该像我在dock中为Puppy Linux写的Genie一样。

答案 1 :(得分:1)

我认为Gdk是不可能的。我已经尝试(在更多时间)Wnck库给C编译器这个'-DWNCK_I_KNOW_THIS_IS_UNSTABLE'并且有效但有警告:未处理的动作类型_OB_WM_ACTION_UNDECORATE

//valac *.gs --pkg gtk+-3.0 --pkg libwnck-3.0 -X '-DWNCK_I_KNOW_THIS_IS_UNSTABLE'

init
    Gtk.init(ref args)
    var ventana= new win()
    ventana.inicio()
    ventana.resizer()
    Gtk.main()


class win:Gtk.Window

    won:weak GLib.List of Wnck.Window

    def inicio()

        var button= new Gtk.Button()
        button.clicked.connect(resizer)
        this.add(button)
        this.show_all()

    def resizer()
        won= Wnck.Screen.get_default().get_windows()
        won.foreach(allwin)

    def allwin(w:Wnck.Window)
        if w.is_skip_tasklist() or w.is_skip_pager()
            pass
        else
            print w.get_name()
相关问题