summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/asymptote/GUI/xasyOptionsDialog.py
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/asymptote/GUI/xasyOptionsDialog.py')
-rwxr-xr-xMaster/texmf-dist/asymptote/GUI/xasyOptionsDialog.py234
1 files changed, 0 insertions, 234 deletions
diff --git a/Master/texmf-dist/asymptote/GUI/xasyOptionsDialog.py b/Master/texmf-dist/asymptote/GUI/xasyOptionsDialog.py
deleted file mode 100755
index 271070ea457..00000000000
--- a/Master/texmf-dist/asymptote/GUI/xasyOptionsDialog.py
+++ /dev/null
@@ -1,234 +0,0 @@
-#!/usr/bin/env python
-###########################################################################
-#
-# xasyOptionsDialog implements a dialog window to allow users to edit
-# their preferences and specify program options
-#
-#
-# Author: Orest Shardt
-# Created: June 29, 2007
-#
-###########################################################################
-
-import os
-import sys
-import xasyOptions
-import xasyColorPicker
-
-if sys.version_info >= (3, 0):
- from tkinter import *
- from tkinter import simpledialog, messagebox, filedialog
-else:
- # python2
- from Tkinter import *
- import tkSimpleDialog as simpledialog
- import tkMessageBox as messagebox
- import tkFileDialog as filedialog
- # import tkColorChooser as colorchooser
-
-class xasyOptionsDlg(simpledialog.Dialog):
- """A dialog to interact with users about their preferred settings"""
- def __init__(self,master=None):
- simpledialog.Dialog.__init__(self,master,"xasy Options")
-
- def body(self,master):
- optFrame = Frame(master)
- optFrame.grid(row=0,column=0,sticky=N+S+E+W)
-
- asyGrp = LabelFrame(optFrame,text="Asymptote",padx=5,pady=5)
- asyGrp.grid(row=0,column=0,sticky=E+W)
- asyGrp.rowconfigure(0,weight=1)
- asyGrp.rowconfigure(1,weight=1)
- asyGrp.columnconfigure(0,weight=1)
- asyGrp.columnconfigure(0,weight=2)
- Label(asyGrp,text="Command").grid(row=0,column=0,sticky=W)
- self.ap = Entry(asyGrp)
- self.ap.insert(END,xasyOptions.options['asyPath'])
- self.ap.grid(row=0,column=1,sticky=E+W)
- Button(asyGrp,text="...",command=self.findAsyPath).grid(row=0,column=2,sticky=E+W)
- self.showDebug = BooleanVar()
- self.showDebug.set(xasyOptions.options['showDebug'])
- self.sd = Checkbutton(asyGrp,text="Show debugging info in console",var=self.showDebug)
- self.sd.grid(row=1,column=0,columnspan=2,sticky=W)
-
- editGrp = LabelFrame(optFrame,text="External Editor",padx=5,pady=5)
- editGrp.grid(row=1,column=0,sticky=E+W)
- editGrp.rowconfigure(0,weight=1)
- editGrp.rowconfigure(1,weight=1)
- editGrp.columnconfigure(0,weight=1)
- editGrp.columnconfigure(0,weight=2)
- Label(editGrp,text="Program").grid(row=0,column=0,sticky=W)
- self.ee = Entry(editGrp)
- self.ee.insert(END,xasyOptions.options['externalEditor'])
- self.ee.grid(row=0,column=1,sticky=E+W)
- Button(editGrp,text="...",command=self.findEEPath).grid(row=0,column=2,sticky=E+W)
-
- penGrp = LabelFrame(optFrame,text="Default Pen",padx=5,pady=5)
- penGrp.grid(row=2,column=0,sticky=E+W)
- penGrp.rowconfigure(0,weight=1)
- penGrp.rowconfigure(1,weight=1)
- penGrp.rowconfigure(2,weight=1)
- penGrp.columnconfigure(1,weight=1)
- Label(penGrp,text="Color").grid(row=0,column=0,sticky=E)
- self.pc = xasyOptions.options['defPenColor']
- Button(penGrp,text="Change",command=self.changePenColor).grid(row=0,column=1,sticky=W)
- Label(penGrp,text="Width").grid(row=1,column=0,sticky=E)
- self.pw = Entry(penGrp)
- self.pw.insert(END,str(xasyOptions.options['defPenWidth']))
- self.pw.grid(row=1,column=1,sticky=E+W)
- Label(penGrp,text="Options").grid(row=2,column=0,sticky=E)
- self.po = Entry(penGrp)
- self.po.insert(END,xasyOptions.options['defPenOptions'])
- self.po.grid(row=2,column=1,sticky=E+W)
-
- dispGrp = LabelFrame(optFrame,text="Display Options",padx=5,pady=5)
- dispGrp.grid(row=3,column=0,sticky=E+W)
- dispGrp.rowconfigure(0,weight=1)
- dispGrp.rowconfigure(1,weight=1)
- dispGrp.rowconfigure(2,weight=1)
- dispGrp.rowconfigure(3,weight=1)
- dispGrp.columnconfigure(0,weight=1)
- dispGrp.columnconfigure(1,weight=1)
- dispGrp.columnconfigure(2,weight=1)
- self.showAxes = BooleanVar()
- self.showAxes.set(xasyOptions.options['showAxes'])
- self.sa = Checkbutton(dispGrp,text="Show Axes",var=self.showAxes)
- self.sa.grid(row=0,column=0,sticky=W)
- self.ac = xasyOptions.options['axesColor']
- Button(dispGrp,text="Color...",command=self.changeAxesColor).grid(row=1,column=0)
- Label(dispGrp,text="x").grid(row=0,column=1,padx=5,sticky=E)
- self.axs = Entry(dispGrp,width=6)
- self.axs.insert(END,xasyOptions.options['axisX'])
- self.axs.grid(row=0,column=2,sticky=W+E)
- Label(dispGrp,text="y").grid(row=1,column=1,padx=5,sticky=E)
- self.ays = Entry(dispGrp,width=6)
- self.ays.insert(END,xasyOptions.options['axisY'])
- self.ays.grid(row=1,column=2,sticky=W+E)
-
- self.showGrid = BooleanVar()
- self.showGrid.set(xasyOptions.options['showGrid'])
- self.sg = Checkbutton(dispGrp,text="Show Grid",var=self.showGrid)
- self.sg.grid(row=4,column=0,sticky=W)
- self.gc = xasyOptions.options['gridColor']
- Button(dispGrp,text="Color...",command=self.changeGridColor).grid(row=3,column=0)
- Label(dispGrp,text="x").grid(row=2,column=1,padx=5,sticky=E)
- self.gxs = Entry(dispGrp,width=6)
- self.gxs.insert(END,xasyOptions.options['gridX'])
- self.gxs.grid(row=2,column=2,sticky=W+E)
- Label(dispGrp,text="y").grid(row=3,column=1,padx=5,sticky=E)
- self.gys = Entry(dispGrp,width=6)
- self.gys.insert(END,xasyOptions.options['gridY'])
- self.gys.grid(row=3,column=2,sticky=W+E)
-
- def findEEPath(self):
- if sys.platform[:3] == 'win': #for windows, wince, win32, etc
- file=filedialog.askopenfile(filetypes=[("Programs","*.exe"),("All files","*")],title="Choose External Editor",parent=self)
- else:
- file=filedialog.askopenfile(filetypes=[("All files","*")],title="Choose External Editor",parent=self)
- if file != None:
- name = os.path.abspath(file.name)
- file.close()
- self.ee.delete(0,END)
- self.ee.insert(END,name)
- self.validate()
-
- def findAsyPath(self):
- if sys.platform[:3] == 'win': #for windows, wince, win32, etc
- file=filedialog.askopenfile(filetypes=[("Programs","*.exe"),("All files","*")],title="Find Asymptote Executable",parent=self)
- else:
- file=filedialog.askopenfile(filetypes=[("All files","*")],title="Find Asymptote Executable",parent=self)
- if file != None:
- name = os.path.abspath(file.name)
- file.close()
- self.ap.delete(0,END)
- self.ap.insert(END,name)
- self.validate()
-
- def getAColor(self,color):
- result = xasyColorPicker.xasyColorDlg(self).getColor(xasyColorPicker.makeRGBfromTkColor(color))
- return xasyColorPicker.RGB255hex(xasyColorPicker.RGBreal255(result))
-
- def changeAxesColor(self):
- self.ac = self.getAColor(self.ac)
-
- def changeGridColor(self):
- self.gc = self.getAColor(self.gc)
-
- def changePenColor(self):
- self.pc = self.getAColor(self.pc)
-
- def apply(self):
- xasyOptions.options['externalEditor'] = self.ee.get()
- xasyOptions.options['asyPath'] = self.ap.get()
- xasyOptions.options['showDebug'] = bool(self.showDebug.get())
-
- xasyOptions.options['defPenColor'] = self.pc
- xasyOptions.options['defPenWidth'] = float(self.pw.get())
- xasyOptions.options['defPenOptions'] = self.po.get()
-
- xasyOptions.options['showAxes'] = bool(self.showAxes.get())
- xasyOptions.options['axesColor'] = self.ac
- xasyOptions.options['tickColor'] = self.ac
- xasyOptions.options['axisX'] = int(self.axs.get())
- xasyOptions.options['axisY'] = int(self.ays.get())
- xasyOptions.options['showGrid'] = bool(self.showGrid.get())
- xasyOptions.options['gridColor'] = self.gc
- xasyOptions.options['gridX'] = int(self.gxs.get())
- xasyOptions.options['gridY'] = int(self.gys.get())
- xasyOptions.save()
-
- def validateAColor(self,color):
- hexdigits = '0123456789abcdef'
- if len(self.pc) != 7 or self.pc[0] != '#' or sum([1 for a in self.pc[1:] if a in hexdigits]) != 6:
- return False
- else:
- return True
-
- def validate(self):
- """Validate the data entered into the dialog"""
- #validate the color
- hexdigits = '0123456789abcdef'
- if not self.validateAColor(self.pc):
- messagebox.showerror("xasy Options","Invalid pen color.\r\n"+self.pc,parent=self)
- return False
- #validate the width
- try:
- test = float(self.pw.get())
- except:
- messagebox.showerror("xasy Options","Pen width must be a number.",parent=self)
- return False
-
- #validate the options
- #nothing to do
-
- #validate the axis spacing
- try:
- test = int(self.axs.get())
- test = int(self.ays.get())
- except:
- messagebox.showerror("xasy Options","Axes' x- and y-spacing must be numbers.",parent=self)
- return False
-
- #validate the grid spacing
- try:
- test = int(self.gxs.get())
- test = int(self.gys.get())
- except:
- messagebox.showerror("xasy Options","Grid's x- and y-spacing must be numbers.",parent=self)
- return False
-
- if not self.validateAColor(self.ac):
- messagebox.showerror("xasy Options","Invalid axis color.\r\n"+self.ac,parent=self)
- return False
-
- if not self.validateAColor(self.gc):
- messagebox.showerror("xasy Options","Invalid grid color.\r\n"+self.gc,parent=self)
- return False
-
- return True
-
-if __name__ == '__main__':
- root = Tk()
- xasyOptions.load()
- d = xasyOptionsDlg(root)
- print (d.result)