#!/usr/bin/env python3.5 # You are free to use and/or change this code for # your own needs. # Original code (c)2018 Jan Lerking # Program to convert C-header (*.h) files to nasm include files (*.inc), # for direct usage in assembly programming using nasm/yasm. import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk class h2incGUI(Gtk.Window): def __init__(self): Gtk.Window.__init__(self) self.set_title('Translate C-header files to Nasm include files!') self.set_default_size(200, 200) self.set_border_width(10) self.connect("destroy", Gtk.main_quit) self.sourcedir = 'Select source directory!' self.destdir = 'Select destination directory!' self.addinc = False self.totalvar = 0 self.filecnt = 0 self.infofolder = 'Number of folders: 0' self.infofile = 'Number of headers: 0' self.currentfile = 'Current file: ' self.totprogress = 'Total progress: ' self.val = 0 self.maingrid = Gtk.Grid() self.add(self.maingrid) self.frame = Gtk.Frame(label='Select folders') self.maingrid.add(self.frame) self.framegrid = Gtk.Grid() self.framegrid.set_border_width(5) self.frame.add(self.framegrid) self.sourcebox = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL, spacing=6) self.framegrid.attach(self.sourcebox, 0, 0, 5, 1) self.sourcelabel = Gtk.Label(label='Source: ') self.sourcelabel.set_justify(Gtk.Justification.RIGHT) self.sourcebox.add(self.sourcelabel) self.sourceentry = Gtk.Entry() self.sourceentry.set_text(self.sourcedir) self.sourcebox.add(self.sourceentry) self.sourcedir_button = Gtk.Button(label="Source directory...") #self.sourcedir_button.connect('clicked', self.select_sourcedir(self.sourcedir)) self.sourcebox.add(self.sourcedir_button) self.destbox = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL, spacing=6) self.framegrid.attach(self.destbox, 0, 1, 5, 1) self.destlabel = Gtk.Label(label='Destination: ') self.destbox.add(self.destlabel) self.destentry = Gtk.Entry() self.destentry.set_text(self.destdir) self.destbox.add(self.destentry) self.destdir_button = Gtk.Button(label="Destination directory...") #self.destdir_button.connect('clicked', self.select_destdir(self.destdir)) self.destbox.add(self.destdir_button) self.incchkbox = Gtk.CheckButton('Create "include" folder if it does not exist.') self.incchkbox.set_active(False) #self.incchkbox.connect("toggled", self.on_button_toggled, self.addinc) #self.framebox.add(self.incchkbox) self.transframe = Gtk.Frame(label='Translation') #self.mainbox.add(self.transframe) self.framebox_1 = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=6) #self.transframe.add(self.framebox_1) self.infoframe = Gtk.Frame(label='Source information') #self.framebox_1.add(self.infoframe) self.infobox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=6) #self.infoframe.add(self.infobox) self.infofolders = Gtk.Label(label=self.infofolder) #self.infobox.add(self.infofolders) self.infofiles = Gtk.Label(label=self.infofile) #self.infobox.add(self.infofiles) self.translate_button = Gtk.Button(label="Translate!") #self.translate_button.connect('clicked', self.translate(self.destdir, self.sourcedir, self.addinc)) #self.framebox_1.add(self.translate_button) self.progressframe = Gtk.Frame(label='Progress') #self.framebox_1.add(self.progressframe) self.progressbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=6) #self.progressframe.add(self.progressbox) self.cfilelabel = Gtk.Label(label=self.currentfile) #self.progressbox.add(self.cfilelabel) self.totallabel = Gtk.Label(label=self.totprogress) #self.progressbox.add(self.totallabel) self.totalprogress = Gtk.ProgressBar() self.totalprogress.set_fraction(0.0) #self.progressbox.add(self.totalprogress) win = h2incGUI() win.show_all() Gtk.main()