def init(widget):
	global xml
	xml = gtk.glade.XML(config.get('DEFAULT', 'default') + 'glade/open.glade')
	xml.signal_autoconnect({
	#'destroy' : destroy,
	'd_open' : d_open
	})
	xml.get_widget("open_denu").show()
def init(widget):
	global xml
	xml = gtk.glade.XML(config.get('DEFAULT', 'default') + 'glade/add.glade')
	xml.signal_autoconnect({
	'cancel_add' : destroy,
	'add_entry' : add_entry
	})
	xml.get_widget("add_window").show()
def init(widget):
	global xml
	xml = gtk.glade.XML(config.get('DEFAULT', 'default') + 'glade/save.glade')
	window = xml.get_widget("save_denu")
	xml.signal_autoconnect({
	#'destroy' : destroy,
	'save_denu' : d_save
	})
	window.show()
def init(widget):
    viewxml = gtk.glade.XML(config.get("DEFAULT", "default") + "glade/view.glade")
    menu_iterList = []

    def createMenuList(model, path, iter):
        menu_iterList.append(iter)

    treeselection = menuview.get_selection()
    treeselection.selected_foreach(createMenuList)
    installed_iterList = []

    def createInstalledList(model, path, iter):
        installed_iterList.append(iter)

    treeselection2 = installedview.get_selection()
    treeselection2.selected_foreach(createInstalledList)
    if len(menu_iterList) > 0:
        model = menustore
        iter = menu_iterList[0]
        id = menustore.get_value(iter, 2)
        entry = libDenu.viewEntry(id, "menu")
    elif len(installed_iterList) > 0:
        model = installedstore
        iter = installed_iterList[0]
        id = installedstore.get_value(iter, 2)
        entry = libDenu.viewEntry(id, "installed")
    viewstore = gtk.TreeStore(str, str)
    dictToTreestore(entry, viewstore)
    viewview = viewxml.get_widget("viewview")
    viewcolumn = gtk.TreeViewColumn("Entry")
    text_render = gtk.CellRendererText()
    text_render2 = gtk.CellRendererText()
    viewcolumn.pack_start(text_render, True)
    viewcolumn.pack_start(text_render2, True)
    viewcolumn.set_attributes(text_render, text=0)
    viewcolumn.set_attributes(text_render2, text=1)
    viewview.append_column(viewcolumn)
    viewview.set_model(viewstore)

    # Individual fields.
    # Type
    type = entry.keys()[0]
    viewxml.get_widget("view_type").set_text(type)
    # Name
    if entry[type]["name"].has_key(config.get("DEFAULT", "locale")):
        viewxml.get_widget("view_name").set_text(entry[type]["name"][config.get("DEFAULT", "locale")])
    else:  # Default to english
        viewxml.get_widget("view_name").set_text(entry[type]["name"]["en"])
        # Command
    if not type == "folder":
        viewxml.get_widget("view_command").set_text(entry[type]["command"])
        # Icon
    if entry[type].has_key("icon"):
        if pixbuf_manager(entry[type]["icon"]) != "Error: no file.":
            viewxml.get_widget("view_image").set_from_pixbuf(pixbuf_manager(entry[type]["icon"]))
        if entry[type]["icon"].has_key("file"):
            viewxml.get_widget("view_icon").set_text(entry[type]["icon"]["file"])
        elif entry[type]["icon"].has_key("url"):
            viewxml.get_widget("view_icon").set_text(entry[type]["icon"]["url"])
    else:
        viewxml.get_widget("view_icon").set_text("None.")
        # viewxml.signal_autoconnect({'destroy' : destroy})
    viewxml.get_widget("view_window").show()
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
import pygtk

pygtk.require("2.0")
import gtk
import gtk.glade
import sys
from DenuGUI_config import config, home

sys.path.extend(
    [
        "/usr/share/denu/wms",
        home + "/.denu/wms",
        config.get("DEFAULT", "default"),
        config.get("DEFAULT", "default") + "wms",
        config.get("DEFAULT", "default") + "includes",
    ]
)
from DenuGUI_common import *
import libDenu
from DenuGUI_SharedVars import xml, menuview, installedview


def init(widget):
    viewxml = gtk.glade.XML(config.get("DEFAULT", "default") + "glade/view.glade")
    menu_iterList = []

    def createMenuList(model, path, iter):
        menu_iterList.append(iter)
def add_entry (widget):
	global xml
	type_array = ['folder', 'program', 'special']
	type = xml.get_widget("add_type").get_active()
	entry = {type_array[type] : {'name' : {}}}
	
	#Name
	name = xml.get_widget("add_name").get_text()
	if config.get('DEFAULT', 'locale'):
		entry[type_array[type]]['name'][config.get('DEFAULT', 'locale')] = name
	else: # Default to english
		entry[type_array[type]]['name']['en'] = name
		
	#Command
	command = xml.get_widget("add_command").get_text()
	if not command == "" and not type == 0:
		entry[type_array[type]]['command'] = command
	elif not type == 0:
		pass
	
	#Portage ID
	pid = xml.get_widget("add_pid").get_text()
	if not pid == "":
		entry[type_array[type]]['portage-id'] = pid
	
	#Folder
	folder = xml.get_widget("add_folder").get_text()
	if not folder == "":
		if type == 0:
			entry[type_array[type]]['key'] = pid
		else:
			entry[type_array[type]]['location'] = pid
	
	#Icon
	icon = xml.get_widget("add_icon").get_filename()
	if not icon == None:
		entry[type_array[type]]['icon'] = {}
		entry[type_array[type]]['icon']['file'] = icon
		
	
	iterList = []
	def createList(model, path, iter):
		iterList.append(iter)
	treeselection = menuview.get_selection()
	treeselection.selected_foreach(createList)
	if len(iterList) > 0:
		if menustore.iter_parent(iterList[0]) == None:
			parent = 0
		else:
			parent = menustore.get_value(menustore.iter_parent(iterList[0]), 2)
		id = libDenu.addEntry(entry, parent, menustore.get_value(iterList[0], 2))[0]
		if entry[entry.keys()[0]].has_key('icon'):
			if not DenuGUI_common.pixbuf_manager(entry[entry.keys()[0]]['icon'], config.getint('DEFAULT', 'pixbuf_size')) == "Error: no file.":
				menustore.insert_before(menustore.iter_parent(iterList[0]), iterList[0], [DenuGUI_common.pixbuf_manager(entry[entry.keys()[0]]['icon'], config.getint('DEFAULT', 'pixbuf_size')), name, id])
			else:
				menustore.insert_before(menustore.iter_parent(iterList[0]), iterList[0], [None, name, id])
		else:
			menustore.insert_before(menustore.iter_parent(iterList[0]), iterList[0], [None, name, id])
	else:
		parent = 0
		id = libDenu.addEntry(entry, parent)[0]
		if entry[entry.keys()[0]].has_key('icon'):
			if not DenuGUI_common.pixbuf_manager(entry[entry.keys()[0]]['icon'], config.getint('DEFAULT', 'pixbuf_size')) == "Error: no file.":
				menustore.append(None, [pixbuf_manager(entry[entry.keys()[0]]['icon'], config.getint('DEFAULT', 'pixbuf_size')), name, id])
			else:
				menustore.append(None, [None, name, id])
		else:
			menustore.append(None, [None, name, id])
	xml.get_widget("add_window").destroy()