ocarina/src/extra/oGtk/dialog.py

73 lines
1.9 KiB
Python

#! /usr/bin/python
# To change this template, choose Tools | Templates
# and open the template in the editor.
__author__="bjschuma"
__date__ ="$Mar 18, 2010 11:48:15 AM$"
import gtk
import db
import ocarina
#import scripting
from oGtk import progbar
class FileChooser(gtk.FileChooserDialog):
def __init__(self,title,seldir=False):
buttons = (gtk.STOCK_CANCEL,gtk.RESPONSE_CANCEL,gtk.STOCK_OPEN,gtk.RESPONSE_OK)
action=gtk.FILE_CHOOSER_ACTION_OPEN
gtk.FileChooserDialog.__init__(self,title,None,action=action,buttons=buttons)
if seldir == True:
self.set_action(gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER)
def choose(self):
response = self.run()
self.hide()
file = ""
#print response
if response == gtk.RESPONSE_OK:
file = self.get_filename()
if response != gtk.RESPONSE_OK:
return None
return file
class NewLibrary(gtk.Dialog):
def __init__(self):
buttons = (gtk.STOCK_CANCEL,gtk.RESPONSE_CANCEL,"Scan",gtk.RESPONSE_OK)
gtk.Dialog.__init__(self,"New Library",None,gtk.DIALOG_NO_SEPARATOR,buttons=buttons)
self.table = gtk.Table(2,3,False)
name = gtk.Label("Name: ")
dir = gtk.Label("Directory: ")
self.libname = gtk.Entry()
self.libname.set_text("New Library")
self.dir = gtk.Entry()
button = gtk.Button(None,gtk.STOCK_OPEN)
button.connect("clicked",self.onclick)
self.table.attach(name,0,1,0,1)
self.table.attach(self.libname,1,2,0,1)
self.table.attach(dir,0,1,1,2)
self.table.attach(self.dir,1,2,1,2)
self.table.attach(button,2,3,1,2)
self.table.show_all()
self.get_children()[0].pack_start(self.table,False,False,0)
def choose(self):
response = self.run()
self.hide()
if response == -5:
return (self.libname.get_text(), self.dir.get_text())
return (None,None)
def onclick(self,button):
dirresult = FileChooser("Select a directory",True).choose()
if dirresult != "":
self.dir.set_text(dirresult)