66 lines
2.0 KiB
Python
66 lines
2.0 KiB
Python
# Bryan Schumaker (8/13/2010)
|
|
|
|
import gtk
|
|
import ocarina
|
|
import libsaria
|
|
import body
|
|
import shortcuts
|
|
from libsaria.path import files
|
|
|
|
TARGET_TYPE_URI_LIST = 80
|
|
DND_MASK = gtk.DEST_DEFAULT_MOTION | gtk.DEST_DEFAULT_HIGHLIGHT | gtk.DEST_DEFAULT_DROP
|
|
DND_LIST = [("text/uri-list", 0, TARGET_TYPE_URI_LIST)]
|
|
|
|
width = libsaria.prefs.init("ocarina.window.width", 800)
|
|
height = libsaria.prefs.init("ocarina.window.height", 600)
|
|
|
|
window = gtk.Window(gtk.WINDOW_TOPLEVEL)
|
|
window.resize(width, height)
|
|
window.connect("delete-event", ocarina.quit)
|
|
window.connect("key-press-event", shortcuts.key_pressed)
|
|
window.add(body.body)
|
|
window.show()
|
|
|
|
def grab_focus():
|
|
window.set_focus(None)
|
|
shortcuts.register_shortcut("Escape", grab_focus, True)
|
|
|
|
def set_title(new_title = None):
|
|
if new_title == None:
|
|
new_title = ocarina.__vers__
|
|
window.set_title(new_title)
|
|
set_title()
|
|
|
|
def get_art_icon_state():
|
|
return libsaria.prefs.get("ocarina.window.articon")
|
|
|
|
def toggle_art_icon(newval):
|
|
libsaria.prefs.set("ocarina.window.articon", newval)
|
|
icon = "images/ocarina.png"
|
|
if newval == True:
|
|
icon = libsaria.sources.all_attrs()["art"]
|
|
set_icon(icon)
|
|
libsaria.prefs.init("ocarina.window.articon", False)
|
|
|
|
def set_icon(icon = "images/ocarina.png"):
|
|
if (icon != "images/ocarina.png") and (get_art_icon_state() == False):
|
|
icon = "images/ocarina.png"
|
|
window.set_icon_from_file(icon)
|
|
set_icon()
|
|
|
|
def resized(widget, geom):
|
|
if libsaria.prefs.get("ocarina.window.width") != geom.width:
|
|
libsaria.prefs.set("ocarina.window.width", geom.width)
|
|
if libsaria.prefs.get("ocarina.window.height") != geom.height:
|
|
libsaria.prefs.set("ocarina.window.height", geom.height)
|
|
window.connect("size-allocate", resized)
|
|
|
|
def dnd_receive(widget, context, x, y, selection, type, time):
|
|
if type == TARGET_TYPE_URI_LIST:
|
|
uri = selection.data.strip('\r\n\x00')
|
|
for file in uri.split():
|
|
file = file[7:]
|
|
files.universal_open(file)
|
|
window.connect("drag-data-received", dnd_receive)
|
|
window.drag_dest_set(DND_MASK, DND_LIST, gtk.gdk.ACTION_COPY)
|