Files
h2inc-old/Gui test/gtk_test_1.py

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()