diff '-urx*.glade' obmenu-1.0/obmenu obmenu-1.0.mod/obmenu --- obmenu-1.0/obmenu 2006-02-02 13:03:38.000000000 +0100 +++ obmenu-1.0.mod/obmenu 2020-05-30 02:30:21.035194307 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/python3 # # Openbox Menu Editor 1.0 beta # @@ -18,7 +18,10 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -import obxml, gtk, gtk.glade, gobject, random, time, os, sys +import obxml, random, time, os, sys +import gi +gi.require_version("Gtk", "3.0") +from gi.repository import Gtk class App: def reconfigureOpenbox(self): @@ -43,8 +46,7 @@ def deleteTree(self): # treemodel.iter(label, type, [action], [execute], parent, [menu-id]) - self.treemodel=gtk.TreeStore(gobject.TYPE_STRING, gobject.TYPE_STRING, - gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING) + self.treemodel=Gtk.TreeStore(str, str, str, str, str, str) self.treeview.set_model(self.treemodel) # Sets the state of "menu modified" @@ -53,10 +55,10 @@ self.sth_changed = op if op: s = "(*)" else: s = "" - self.arbol.get_widget("window1").set_title("Obmenu: %s %s" % (self.menu_path, s)) + self.glade.get_object("window1").set_title("Obmenu: %s %s" % (self.menu_path, s)) # Auxiliary function for model.foreach() - def _change_id(self, model, path, it,(old_id, new_id)): + def _change_id(self, model, path, it, old_id, new_id ): mid = model.get_value(it,5) if mid == old_id: model.set(it, 5, new_id) @@ -74,7 +76,7 @@ self.auto_change = False def confirm(self, message): - dlg = gtk.MessageDialog(None,0,gtk.MESSAGE_WARNING, gtk.BUTTONS_YES_NO,message) + dlg = Gtk.MessageDialog(None,0,Gtk.MessageType.WARNING, Gtk.ButtonsType.YES_NO,message) res = dlg.run() dlg.destroy() if res == -8: return True @@ -82,10 +84,10 @@ def ask_for_path(self, title, op): if op == 0: - action = gtk.FILE_CHOOSER_ACTION_OPEN + action = Gtk.FileChooserAction.OPEN else: - action = gtk.FILE_CHOOSER_ACTION_SAVE - dlg = gtk.FileChooserDialog(title,None,action,(gtk.STOCK_OK, 1, gtk.STOCK_CANCEL, 3)) + action = Gtk.FileChooserAction.SAVE + dlg = Gtk.FileChooserDialog(title,None,action,(Gtk.STOCK_OK, 1, Gtk.STOCK_CANCEL, 3)) dlg.set_default_response(1) res = dlg.run() flnm = dlg.get_filename() @@ -93,7 +95,7 @@ if res == 1: return flnm # New file clicked - def new(self, bt): + def new_clicked(self, bt): if self.sth_changed: res = self.confirm("Changes in %s will be lost. Continue?" % (self.menu_path)) if not res: return @@ -104,7 +106,7 @@ self._sth_changed(True) self.clear_fields() - def open(self, bt): + def open_clicked(self, bt): if self.sth_changed: res = self.confirm("Changes in %s will be lost. Continue?" % (self.menu_path)) if not res: return @@ -123,7 +125,7 @@ self.clear_fields() # save the menu - def save(self, bt): + def save_clicked(self, bt): if self.unsaved_menu: path = self.ask_for_path("Save as...", 1) if not path: return @@ -134,7 +136,7 @@ self._sth_changed(False) # save as... - def save_as(self, bt): + def save_as_clicked(self, bt): path = self.ask_for_path("Save as...", 1) if not path: return self.menu_path = path @@ -144,18 +146,18 @@ self.reconfigureOpenbox() # quit signal - def quit (self, bt, arg2): + def exit (self, bt, arg2): if self.sth_changed: res = self.confirm("There are unsaved changes. Exit anyway?") if not res: return True - gtk.main_quit() + Gtk.main_quit() # file->quit menu signal def mnu_quit (self, bt): - self.quit(None,None) + self.exit(None,None) # id_entry changed signal - def change_id(self, pa): + def id_changed(self, pa): if self.auto_change: return self._sth_changed(True) @@ -179,10 +181,10 @@ else: if old_id != new_id and not self.menu.isMenu(new_id): self.menu.replaceId(old_id, new_id) - model.foreach(self._change_id, (old_id, new_id)) + model.foreach(self._change_id, old_id, new_id ) # label_entry changed signal - def change_label(self, pa): + def label_changed(self, pa): if self.auto_change: return self._sth_changed(True) (model, ite) = self.treeview.get_selection().get_selected() @@ -201,7 +203,7 @@ model.set(ite, 0, lb) # action_combo_box changed signal - def change_action(self, pa): + def action_changed(self, pa): if self.auto_change: return self._sth_changed(True) (model, ite) = self.treeview.get_selection().get_selected() @@ -230,7 +232,7 @@ model.set(ite, 2, action, 3, eee) # execute_entry changed signal - def change_execute(self, pa): + def execute_changed(self, pa): if self.auto_change: return self._sth_changed(True) (model, ite) = self.treeview.get_selection().get_selected() @@ -260,7 +262,7 @@ self.remove(None) # treeview clicked signal - def treeview_changed(self, param): + def on_treeview1(self, param): (model, ite) = param.get_selection().get_selected() if not ite: return (label, tipe, action, exe, menu, mid) = model.get(ite,0,1,2,3,4,5) @@ -299,7 +301,7 @@ self.auto_change = False # new menu button clicked - def new_menu(self, param): + def menu_clicked(self, param): (model, ite) = self.treeview.get_selection().get_selected() if ite: @@ -308,7 +310,7 @@ n = model.get_path(ite)[-1] else: menu = None - parent = model.get_iter_root() + parent = model.get_iter_first() n = 0 nmid="%s-%d%d%d" % (menu, random.randint(0,99), time.gmtime()[4], time.gmtime()[5]) @@ -326,7 +328,7 @@ self._sth_changed(True) # new item button clicked - def new_item(self,param): + def item_clicked(self,param): (model, ite) = self.treeview.get_selection().get_selected() if not ite: return (label, tipe, action, exe, menu, mid) = model.get(ite,0,1,2,3,4,5) @@ -346,7 +348,7 @@ self._sth_changed(True) # new separator button clicked - def new_separator(self,param): + def separator_clicked(self,param): (model, ite) = self.treeview.get_selection().get_selected() if not ite: return (label, tipe, action, exe, menu, mid) = model.get(ite,0,1,2,3,4,5) @@ -365,7 +367,7 @@ self._sth_changed(True) # new link button clicked - def new_link(self,param): + def link_clicked(self,param): (model, ite) = self.treeview.get_selection().get_selected() if not ite: return (label, tipe, action, exe, menu, mid) = model.get(ite,0,1,2,3,4,5) @@ -386,7 +388,7 @@ self._sth_changed(True) # new pipe button clicked - def new_pipe(self,param): + def pipe_clicked(self,param): (model, ite) = self.treeview.get_selection().get_selected() if not ite: return (label, tipe, action, exe, menu, mid) = model.get(ite,0,1,2,3,4,5) @@ -407,7 +409,7 @@ self._sth_changed(True) # up button clicked - def up(self,param): + def up_clicked(self,param): (model, ite) = self.treeview.get_selection().get_selected() if not ite: return (label, tipe, action, exe, menu, mid) = model.get(ite,0,1,2,3,4,5) @@ -424,7 +426,7 @@ model.move_before(ite,upper) # down button clicked - def down(self,param): + def down_clicked(self,param): (model, ite) = self.treeview.get_selection().get_selected() if not ite: return (label, tipe, action, exe, menu, mid) = model.get(ite,0,1,2,3,4,5) @@ -440,7 +442,7 @@ model.move_after(ite,upper) # remove button clicked - def remove(self, param): + def remove_clicked(self, param): (model, ite) = self.treeview.get_selection().get_selected() if not ite: return self._sth_changed(True) @@ -460,11 +462,16 @@ def mnu_remove(self, param): if self.treeview.is_focus(): self.remove(None) - + def show_about(self, args): #gtk.glade.XML("/usr/local/share/obmenu/obmenu.glade", "aboutdialog1") - gtk.glade.XML(self.gladefile, "aboutdialog1") - + self.glade.add_from_file(os.path.dirname(self.gladefile)+"obmenu_about.glade") + self.glade.connect_signals (self) + self.about = self.glade.get_object("aboutdialog1") + + def about_hide(self, arg1, arg2): + self.about.destroy() + # application init def init(self): if len(sys.argv) == 2: @@ -473,20 +480,20 @@ elif len(sys.argv) == 1: self.menu_path = os.getenv("HOME") + "/.config/openbox/menu.xml" else: - print "Error: Wrong number of arguments" - print "Usage: obmenu /path/to/menu.xml" - print "\tOr just obmenu, to edit the default file" - return - - if not os.path.isfile(self.menu_path): - print "Error: \"%s\" not found" % self.menu_path + print("Error: Wrong number of arguments") + print("Usage: obmenu /path/to/menu.xml") + print("\tOr just obmenu, to edit the default file") return self.unsaved_menu = False # Load in memory the real xml menu self.menu = obxml.ObMenu() - self.menu.loadMenu(self.menu_path) + if os.path.isfile(self.menu_path): + self.menu.loadMenu(self.menu_path) + else: + print("Error: \"%s\" not found" % self.menu_path) + self.menu.newMenu() # Look for my glade file! if os.path.isfile("obmenu.glade"): @@ -497,73 +504,50 @@ elif os.path.isfile("/usr/share/obmenu/obmenu.glade"): self.gladefile = "/usr/share/obmenu/obmenu.glade" else: - print "ERROR: obmenu.glade not found!" - print " check that everything was installed all right" + print("ERROR: obmenu.glade not found!") + print(" check that everything was installed all right") sys.exit(1) # Set the basics for GTK - self.arbol = gtk.glade.XML(self.gladefile, "window1") + self.glade = Gtk.Builder() + self.glade.add_from_file(self.gladefile) + self.arbol = self.glade.get_object("window1") + + self.treeview=self.glade.get_object("treeview1") + self.label_entry = self.glade.get_object("entry1") + self.action_entry = self.glade.get_object("combobox1") + self.execute_entry = self.glade.get_object("entry2") + self.execute_srch = self.glade.get_object("button1") + self.id_entry = self.glade.get_object("entry3") - self.treeview=self.arbol.get_widget("treeview1") - self.label_entry = self.arbol.get_widget("entry1") - self.action_entry = self.arbol.get_widget("combobox1") - self.execute_entry = self.arbol.get_widget("entry2") - self.execute_srch = self.arbol.get_widget("button1") - self.id_entry = self.arbol.get_widget("entry3") - - # treemodel.iter(label, type, [action], [execute], parent, [menu-id]) - self.treemodel=gtk.TreeStore(gobject.TYPE_STRING, gobject.TYPE_STRING, - gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING) + self.treemodel=Gtk.TreeStore(str, str, str, str, str, str) self.treeview.set_model(self.treemodel) # Signals - self.arbol.signal_autoconnect ({ - "new_clicked": self.new, - "open_clicked": self.open, - "save_clicked": self.save, - "save_as_clicked": self.save_as, - "mnu_quit": self.mnu_quit, - "mnu_remove": self.mnu_remove, - "label_changed": self.change_label, - "id_changed": self.change_id, - "action_changed": self.change_action, - "execute_changed": self.change_execute, - "action_changed": self.change_action, - "search_clicked": self.search_clicked, - "on_treeview1": self.treeview_changed, - "tree_key_pressed": self.tree_key_pressed, - "menu_clicked": self.new_menu, - "item_clicked": self.new_item, - "separator_clicked": self.new_separator, - "pipe_clicked": self.new_pipe, - "link_clicked": self.new_link, - "remove_clicked": self.remove, - "up_clicked": self.up, - "down_clicked": self.down, - "show_about": self.show_about, - "exit": self.quit }) + self.glade.connect_signals (self) + #self.about.connect("delete-event", self.about_hide) # Set the columns self.treeview.set_headers_visible(True) - renderer=gtk.CellRendererText() - column=gtk.TreeViewColumn("Label",renderer, text=0) + renderer=Gtk.CellRendererText() + column=Gtk.TreeViewColumn("Label",renderer, text=0) column.set_resizable(True) self.treeview.append_column(column) - renderer=gtk.CellRendererText() - column=gtk.TreeViewColumn("Type",renderer,text=1) + renderer=Gtk.CellRendererText() + column=Gtk.TreeViewColumn("Type",renderer,text=1) column.set_resizable(True) self.treeview.append_column(column) - renderer=gtk.CellRendererText() - column=gtk.TreeViewColumn("Action",renderer,text=2) + renderer=Gtk.CellRendererText() + column=Gtk.TreeViewColumn("Action",renderer,text=2) column.set_resizable(True) self.treeview.append_column(column) - renderer=gtk.CellRendererText() - column=gtk.TreeViewColumn("Execute",renderer,text=3) + renderer=Gtk.CellRendererText() + column=Gtk.TreeViewColumn("Execute",renderer,text=3) column.set_resizable(True) self.treeview.append_column(column) @@ -575,7 +559,7 @@ self.createTree(None, None) # Let's roll! - gtk.main() + Gtk.main() if __name__ == "__main__": app = App() diff '-urx*.glade' obmenu-1.0/obxml.py obmenu-1.0.mod/obxml.py --- obmenu-1.0/obxml.py 2006-02-01 00:26:38.000000000 +0100 +++ obmenu-1.0.mod/obxml.py 2020-05-31 16:28:48.615268578 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/python3 # # Openbox Menu Editor 1.0 beta # @@ -149,7 +149,7 @@ # Most of them are self-explanatory def loadMenu(self, filename): - fil = open(filename) + fil = open(filename, encoding='utf-8') self.dom = xml.dom.minidom.parseString(fil.read()) fil.close() @@ -163,20 +163,20 @@ "") def saveMenu(self, filename): - output = open(filename, "w") - for line in self.dom.toprettyxml("\t","\n","utf-8").splitlines(): + output = open(filename, "w", encoding='utf-8') + for line in self.dom.toprettyxml("\t","\n","utf-8").decode("utf-8").splitlines(): if line.strip() != "": output.write("%s\n" %(line)) output.close() def printXml(self): - for line in self.dom.toprettyxml("\t","\n","utf-8").splitlines(): + for line in self.dom.toprettyxml("\t","\n","utf-8").decode("utf-8").splitlines(): if line.strip() != "": - print line + print(line) def getXml(self): res = "" - for line in self.dom.toprettyxml("\t","\n","utf-8").splitlines(): + for line in self.dom.toprettyxml("\t","\n","utf-8").decode("utf-8").splitlines(): if line.strip() != "": res = res + "%s\n" % (line) return res @@ -354,5 +354,5 @@ self.replaceId(old_id, new_id, item) if __name__ == "__main__": - print "This is a module. Use obmenu instead." + print("This is a module. Use obmenu instead.") exit(0) diff '-urx*.glade' obmenu-1.0/pipes/obm-dir obmenu-1.0.mod/pipes/obm-dir --- obmenu-1.0/pipes/obm-dir 2006-01-22 15:02:40.000000000 +0100 +++ obmenu-1.0.mod/pipes/obm-dir 2020-05-31 16:21:59.565686143 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python -O +#!/usr/bin/python3 -O ######################################################################### # Copyright 2005 Manuel Colmenero # @@ -21,13 +21,14 @@ # This is an example of what the obxml module can do import obxml, sys, os, time +sys.stdout = open(sys.stdout.fileno(), mode='w', encoding='utf8', buffering=1) def alfabetiza(lista): dic = {} for each in lista: k = each[0].lower() - if not dic.has_key(k): + if not k in dic: dic[k] = [each] else: dic[k].append(each) @@ -45,7 +46,7 @@ n = 0 primera = "" alf = alfabetiza(lista) - ids = alf.keys() + ids = list(alf) ids.sort() for k in ids: if primera == "": primera = k @@ -64,8 +65,7 @@ menu.newPipe() if len(sys.argv) == 3: - vmenu = clasifica( - [unicode(each, "utf-8", errors='ignore') for each in os.listdir(sys.argv[1])],10) + vmenu = clasifica(os.listdir(sys.argv[1]), 10) else: menu.createItem(None, "ERROR: Wrong number of arguments:", "Execute", "true") menu.createItem(None, "%s /path/to/directory command" % (sys.argv[0]), "Execute", "true") diff '-urx*.glade' obmenu-1.0/pipes/obm-moz obmenu-1.0.mod/pipes/obm-moz --- obmenu-1.0/pipes/obm-moz 2006-01-22 15:02:55.000000000 +0100 +++ obmenu-1.0.mod/pipes/obm-moz 2020-05-31 16:22:10.693838010 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python -O +#!/usr/bin/python3 -O ######################################################################### # Copyright 2005 Manuel Colmenero # @@ -22,6 +22,7 @@ # import obxml, sys, os +sys.stdout = open(sys.stdout.fileno(), mode='w', encoding='utf8', buffering=1) from HTMLParser import HTMLParser from optparse import OptionParser @@ -52,7 +53,7 @@ d = data.strip() if d != "": - self.data = unicode(d,"utf-8") + self.data = d def handle_starttag(self, tag, attrs): if self.finished: return @@ -177,7 +178,7 @@ f.close() if last == opts and os.path.isfile(cachefile) and os.path.getmtime(filename) < os.path.getmtime(cachefile): cache = open(cachefile) - print cache.read() + print(cache.read()) cache.close() sys.exit() diff '-urx*.glade' obmenu-1.0/pipes/obm-nav obmenu-1.0.mod/pipes/obm-nav --- obmenu-1.0/pipes/obm-nav 2006-02-08 20:11:49.000000000 +0100 +++ obmenu-1.0.mod/pipes/obm-nav 2020-05-31 16:22:24.986033060 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python -O +#!/usr/bin/python3 -O ######################################################################### # Copyright 2005 Manuel Colmenero # @@ -19,6 +19,7 @@ ######################################################################## import obxml, sys, os +sys.stdout = open(sys.stdout.fileno(), mode='w', encoding='utf8', buffering=1) menu = obxml.ObMenu() menu.newPipe() @@ -35,9 +36,9 @@ for itm in os.listdir(sys.argv[1]): if itm[0] != ".": if os.path.isdir(sys.argv[1] + "/" + itm): - dirs.append(unicode(itm, "utf-8", errors='ignore')) + dirs.append(itm) else: - files.append(unicode(itm, "utf-8", errors='ignore')) + files.append(itm) menu.createItem(None, "open", "Execute", "%s \"%s\"" % (sys.argv[2], sys.argv[1])) menu.createItem(None, "terminal", "Execute", "sh -c \"cd \\\"%s\\\"; %s\"" % (sys.argv[1], sys.argv[3])) if not len(dirs) == 0 or not len(files) == 0: diff '-urx*.glade' obmenu-1.0/pipes/obm-xdg obmenu-1.0.mod/pipes/obm-xdg --- obmenu-1.0/pipes/obm-xdg 2006-01-24 16:39:36.000000000 +0100 +++ obmenu-1.0.mod/pipes/obm-xdg 2020-05-31 16:22:33.914154903 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/python -O +#!/usr/bin/python3 -O ######################################################################### # Copyright 2005 Manuel Colmenero # @@ -22,6 +22,7 @@ # import xml.dom.minidom, obxml, os, sys, time +sys.stdout = open(sys.stdout.fileno(), mode='w', encoding='utf8', buffering=1) class XdgMenu: @@ -219,7 +220,7 @@ elif title == "": accuracy = 1 title = name - return unicode(title.strip() ,"utf-8") + return title.strip() def parseDesktopFile(self, filename, language): title = "" @@ -276,7 +277,7 @@ if cats[-1] == "": cats.pop(-1) item = { - "name": unicode(title.strip() ,"utf-8"), + "name": title.strip(), "exec": exe.strip(), "categories": cats, "filename": filename, @@ -491,7 +492,7 @@ break if not new: cache = open(cachefile) - print cache.read() + print(cache.read()) cache.close() sys.exit() --- obmenu-1.0/obmenu.glade 2006-01-17 22:28:17.000000000 +0100 +++ obmenu-1.0.mod/obmenu.glade 2020-05-30 16:58:27.219832600 +0200 @@ -1,758 +1,622 @@ - - - - - - + + + + + + True + False + gtk-delete + + + True + False + gtk-go-up + + + True + False + gtk-go-down + + True + False Openbox Menu Editor - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - False 500 500 - True - False - - True - False - False - GDK_WINDOW_TYPE_HINT_NORMAL - GDK_GRAVITY_NORTH - True - - + north + - + True - False - 0 - + False - + True - + False - + True + False _File True - - - - + + + False - - True + gtk-new + True + False + True True - - + + - - - True + gtk-open + True + False + True True - - + + - - - True + gtk-save + True + False + True True - - + + - - - True + gtk-save-as + True + False + True True - - + + - - + True - + False + - - - True + gtk-quit + True + False + True True - - + + - + - + - - + True + False _Edit True - - - - + + + False - + True + False Move _up True - - - + False + image_up + + + - - + True + False Move dow_n True - - - + False + image_down + + + - - + True - + False + - - - True + _Delete + True + False True - - - - - True - gtk-delete - 1 - 0.5 - 0.5 - 0 - 0 - - - + False + image_delete + + - + - + - - + True + False _Add True - - - - + + + False - + True + False Menu True - - - + + + - - + True + False Item True - - - + + + - - + True + False Separator True - - - + + + - - + True + False Pipemenu True - - - + + + - - + True + False Link True - - - + + + - + - + - - + True + False _Help True - - - - + + + False - + True + False _About True - - + + - + - + - + - 0 False False + 0 - - + True - GTK_ORIENTATION_HORIZONTAL - GTK_TOOLBAR_BOTH_HORIZ - True - True - + False + both-horiz - + True - Save the menu + False + True + Save the menu gtk-save - True - True - False - - + + False True - - + True - True - True - True - + False + False False - - + True + False + True New menu True gtk-index - True - True - True - - + + False True - - + True + False + True New item True gtk-execute - True - True - True - - + + False True - - + True + False + True New separator True gtk-file - True - True - True - - + + False True - - + True - True - True - True - + False + False False - - + True - Move up + False + True + Move up gtk-go-up - True - True - False - - + + False True - - + True - Move down + False + True + Move down gtk-go-down - True - True - False - - + + False True - - + True - True - True - True - + False + False False - - + True - Removes a menu or an item + False + True + Removes a menu or an item gtk-remove - True - True - False - - + + False True - + - 0 False False + 1 - - + True - False - 0 - + False - + True True - GTK_POLICY_ALWAYS - GTK_POLICY_ALWAYS - GTK_SHADOW_IN - GTK_CORNER_TOP_LEFT - + always + always + in - + True + True True True - True - True - False - False False - False - False - False - - - + + + + + + - + - 0 True True + 0 - - + True + False 4 2 - False - 0 - 0 - - + True + False + 0 + 0 Label - False - False - GTK_JUSTIFY_LEFT - False - False 0 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - + - 0 - 1 - 0 - 1 + GTK_FILL + 4 - fill - - - + True + False + 0 + 0 Id - False - False - GTK_JUSTIFY_LEFT - False - False 0 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - + - 0 - 1 1 2 + GTK_FILL + 4 - fill - - - + True + False + 0 + 0 Action - False - False - GTK_JUSTIFY_LEFT - False - False 0 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - + - 0 - 1 2 3 + GTK_FILL + 4 - fill - - - + True + False + 0 + 0 Execute - False - False - GTK_JUSTIFY_LEFT - False - False 0 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - + - 0 - 1 3 4 + GTK_FILL + 4 - fill - - - + True False True - True - True - 0 - - True * - False - - + + 1 2 - 0 - 1 + 4 - - - + True False True - True - True - 0 - - True * - False - - + + 1 2 1 2 + 4 - - - + True False - Execute -Reconfigure -Restart -Exit - False - True - - + False + + Execute + Reconfigure + Restart + Exit + + + 1 2 2 3 + GTK_FILL + GTK_FILL 4 - fill - fill - - + True - False - 0 - + False - + True False True - True - True - 0 - - True * - False - - + + - 0 True True + 0 - - + + ... True False True - ... + False True - GTK_RELIEF_NORMAL - True - - + + - 0 False False + 1 - + 1 2 3 4 + GTK_FILL + GTK_FILL 4 - fill - fill - + - 0 False True + 1 - + - 0 True True + 2 - + - - - - True - True - Openbox Menu Editor - Thank you for using this sofware. - Send any feedback to m.kolme@gmail.com - obmenu: Openbox Menu Editor - Copyright (C) 2005-2006 Manuel Colmenero - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - 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 - http://obmenu.sourceforge.net/ - Website - Manuel Colmenero <m.kolme@gmail.com> - translator-credits - mnu48.png - - - + + + + + --- obmenu-1.0/obmenu_about.glade 1970-01-01 01:00:00.000000000 +0100 +++ obmenu-1.0.mod/obmenu_about.glade 2020-05-30 10:26:02.280280703 +0200 @@ -0,0 +1,56 @@ + + + + + + True + Openbox Menu Editor + False + True + normal + Thank you for using this sofware. + Send any feedback to m.kolme@gmail.com + http://obmenu.sourceforge.net/ + Website + obmenu: Openbox Menu Editor + Copyright (C) 2005-2006 Manuel Colmenero + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + 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 + Manuel Colmenero <m.kolme@gmail.com> + translator-credits + mnu48.png + + + + + False + vertical + + + False + + + False + False + 0 + + + + + + + + +