Files
mimaki/maintk.py
2026-02-03 21:28:22 +01:00

108 lines
2.6 KiB
Python
Executable File

from Plotter import *
from Command import *
from Program import *
import Tkinter as tk
import tkMessageBox
import tkFileDialog
from hpglView import HPGLView
import os.path
class App:
def __init__(self):
self.programs=[]
self.filename=None
self.window=tk.Tk()
self.window.title('Mimaki 0.1')
self.create_menu()
self.create_lb()
self.view=HPGLView(self.window)
self.view.pack(side=tk.RIGHT,expand=True,fill=tk.BOTH)
self.view.programs=self.programs
def create_menu(self):
menu=tk.Menu(self.window)
self.window.config(menu=menu)
filemenu=tk.Menu(menu)
filemenu.add_command(label="Open",command=self.file_open)
filemenu.add_command(label="Save",command=self.file_save)
filemenu.add_command(label="Save as",command=self.file_saveas)
menu.add_cascade(label="File", menu=filemenu)
editmenu=tk.Menu(menu)
editmenu.add_command(label="Scale",command=self.edit_scale)
editmenu.add_command(label="Flip",command=self.edit_flip)
editmenu.add_command(label="Move",command=self.edit_move)
menu.add_cascade(label="Edit", menu=editmenu)
plotmenu=tk.Menu(menu)
plotmenu.add_command(label="Write",command=self.plot_write)
plotmenu.add_command(label="Centralize",command=self.plot_center)
plotmenu.add_command(label="Full",command=self.plot_full)
menu.add_cascade(label="Plot", menu=plotmenu)
def plot_write():
pass
def plot_center():
pass
def plot_full():
pass
def create_lb(self):
listFrame = tk.Frame(self.window)
self.listBox = tk.Listbox(listFrame)
self.listBox.pack(expand=True,fill=tk.BOTH)
listFrame.pack(side=tk.LEFT,fill=tk.Y)
scrollBar = tk.Scrollbar(listFrame)
self.listBox.config(yscrollcommand=scrollBar.set)
def run(self):
self.window.mainloop()
def edit_scale(self):
pass
def edit_flip(self):
for element in self.programs:
if element.active:
element= element.flip()
def edit_move(self):
pass
def file_open(self):
filename = tkFileDialog.askopenfilename()
if filename:
p = Program.parsefile(filename)
self.programs.append(p)
self.filename = filename
self.listBox.insert(tk.END, os.path.basename(filename))
def file_save(self):
if self.program:
if self.filename:
self.save()
else:
self.file_saveas()
else:
tkMessageBox.showwarning("No!")
def file_saveas(self):
filename = tkFileDialog.asksaveasfilename()
if filename:
self.filename = filename
self.save()
def save(self):
if self.program:
with open(self.filename,"w") as file:
file.write(str(self.program))
else:
tkMessageBox.showwarning("Nope!")
app=App()
app.run()