117 lines
4.2 KiB
Python
117 lines
4.2 KiB
Python
#!/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() |