Pygtk Pencere Yönetimi (wnck)

Başlatan hitokiri, 21 Ocak 2011 - 04:39:04

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

hitokiri

popup pencerelerini yönetilebilir nasıl yaparım diye ararken denk geldim,
Basit bir de örnek hazırladım ,
Daha doğrusu düzenledim denilebilir,
http://library.gnome.org/devel/libwnck/stable/WnckScreen.html
Kullandığım örnek ;
http://www.daniweb.com/forums/thread109144.html
#!/usr/bin/env python
#! coding:utf-8 -*-
import wnck
import pygtk
pygtk.require('2.0')

import gtk

def run():
    global box
    box = boxlet()
    screen = wnck.screen_get_default()
    screen.force_update()
    for w in screen.get_windows():
        spawnw(screen, w)

    screen.connect("window-opened", spawnw)
    gtk.main()

def spawnw(screen, window):
if window.get_window_type() == 0:
print window.get_name()
box.ekle(window)
class boxlet():
    def __init__(self):
        self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)

        self.window.set_decorated(False)
        self.window.set_keep_below(True)
        self.window.set_size_request(-1,-1)
        self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_TOOLBAR)       
        self.toolbar = gtk.Toolbar()
        self.window.add(self.toolbar)
        self.window.show_all()
               
    def ekle(self,appw):
        self.appw = appw
        self.appw.set_icon_geometry(self.window.get_position()[0],self.window.get_position()[1],\
                                                                self.window.get_size()[0],self.window.get_size()[1])
        self.image = gtk.Image()
        self.image.set_from_pixbuf(appw.get_icon())
        self.image.show()
        item = gtk.Button()
        item.add(self.image)
        item.add_events(gtk.gdk.ALL_EVENTS_MASK)
        item.connect("button-press-event", self.on_button_press,appw)
        item.set_relief(gtk.RELIEF_NONE)
        item.set_tooltip_text(appw.get_name())
        self.appw.get_screen().connect("window-closed", self.winclose_event,appw,item)
        self.toolbar.add(item )
        item.show()
    def on_button_press(self, widget, event,window):               
        if event.button  == 1:
            if window.is_minimized():
                window.unminimize(event.time)
            else:
                window.minimize()
        elif event.type == gtk.gdk.BUTTON_PRESS and event.button == 3:
            mnuw = wnck.create_window_action_menu(window)
            mnuw.popup(None, None, None, event.button, event.time, event)
    def winclose_event(self, screen, window,appw,item):
        if appw.get_xid() == window.get_xid():
            item.destroy()
            return True
        return False

if __name__ == "__main__":
run()

sem

Başarılı... Teşekkürler paylaşım için...

Peki çalışan uygulamaları nereden alıyor? ps -e gibi aratıp aradan masaüstünde olanları mı çekiyor? Ya da bu tarz bir mantık mı? Öyle ise onların masaüstünde olduğunu nereden anlıyor =)


Kafama takılan bir şeydi bu =) Bu başlık altında konuşabiliriz sanırım =)
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

hitokiri

Valla adamlar yapmış :)
window-closed
window.is_minimized

gibi geri dönüşler yapıyor kütüphane , ona göre fonksiyon oluşturup veya konum alıp event sinyalleriyle işi yönetince ortaya bi şeyler çıkıyor,
yani bi de utanmadan popup menu de hazır geri dönüyor helal olsun adamlara =))
Yani ben bilmem geliştiricisine sor =))

sem

Zaman olunca bu tarz bir yapıyı inceleyebilirsem Kısayol Oluşturucu'ya ekleyeyim diyorum... Şu şekilde;

Ben şimdi ctrl + shit + O kombinasyonuna atadım Kısayol Oluşturucuyu...Bu kombinasyon ile program; çalışmıyorsa açıyorum programı... Çalışıyor ve "kapatma tuşuna basılmışsa " sistem tepsisinde duruyor ya; yine sorun yok, açıyor programı... Daha doğrusu görünür hale getiriyor... Ama program açık sadece önüne bir başka pencere geçmişseya da simge durumunda küçültlmüşse  bu kombinasyon işlevsiz gibi duruyor...

Ona mansuben...

Güzel bir "yapı" yalnız, teşekküler tekrardan paylaşım için... Adamlar yapıyor =)
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

hitokiri

Alıntı yapılan: sem0900 - 23 Ocak 2011 - 11:18:24
Zaman olunca bu tarz bir yapıyı inceleyebilirsem Kısayol Oluşturucu'ya ekleyeyim diyorum... Şu şekilde;

Ben şimdi ctrl + shit + O kombinasyonuna atadım Kısayol Oluşturucuyu...Bu kombinasyon ile program; çalışmıyorsa açıyorum programı... Çalışıyor ve "kapatma tuşuna basılmışsa " sistem tepsisinde duruyor ya; yine sorun yok, açıyor programı... Daha doğrusu görünür hale getiriyor... Ama program açık sadece önüne bir başka pencere geçmişseya da simge durumunda küçültlmüşse  bu kombinasyon işlevsiz gibi duruyor...

Ona mansuben...

Güzel bir "yapı" yalnız, teşekküler tekrardan paylaşım için... Adamlar yapıyor =)
Evet gayet güzel bi fikirmiş isteriz =))

krwlng

Unity'den daha hoş geldi gözüme :)
http://twitter.com/yusuFBrn

Ali İsmail Korkmaz, FENERBAHÇE Yıkılmaz!

sem

Alıntı yapılan: hitokiri - 23 Ocak 2011 - 11:20:47
Alıntı yapılan: sem0900 - 23 Ocak 2011 - 11:18:24
Zaman olunca bu tarz bir yapıyı inceleyebilirsem Kısayol Oluşturucu'ya ekleyeyim diyorum... Şu şekilde;

Ben şimdi ctrl + shit + O kombinasyonuna atadım Kısayol Oluşturucuyu...Bu kombinasyon ile program; çalışmıyorsa açıyorum programı... Çalışıyor ve "kapatma tuşuna basılmışsa " sistem tepsisinde duruyor ya; yine sorun yok, açıyor programı... Daha doğrusu görünür hale getiriyor... Ama program açık sadece önüne bir başka pencere geçmişseya da simge durumunda küçültlmüşse  bu kombinasyon işlevsiz gibi duruyor...

Ona mansuben...

Güzel bir "yapı" yalnız, teşekküler tekrardan paylaşım için... Adamlar yapıyor =)
Evet gayet güzel bi fikirmiş isteriz =))

Hiç bu işlere girmeden hide - show ikilisinden sıranın hangisinde olduğunu kayıt ederek çözdüm daha güzel oldu =)

http://forum.ubuntu-tr.net/index.php/topic,23828.0.html
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?