NateLiquidGravity
Alibre Super User
Here is a script with all the WindowsInputTypes for an OptionsDialog.
WindowsInputTypes.Url took a little bit of trial and error for its format but I figured it out.
Also includes getting/assigning indexes dynamically to use them for value checking and disabling/DoNotDisable.
WindowsInputTypes.Url took a little bit of trial and error for its format but I figured it out.
Also includes getting/assigning indexes dynamically to use them for value checking and disabling/DoNotDisable.
Code:
ScriptName = 'Test Window'
print("\n"*20) # lazy mans clear console
Win = Windows()
# called when an input changes in the dialog window
def InputChanged(Index, Value):
print("You changed index %s!" %Index)
# do things here depending on value
if Index == Index_Boolean:
print("You changed Boolean Value to %s!" %Value)
UpdateUserInterface()
# updates the user interface based on the current selections made
def UpdateUserInterface():
for i in range(len(Options)):
if i not in DoNotDisable:
Win.DisableInput(i)
pass
# define options to show in dialog window
Options = []
DoNotDisable =[]
Options.append(['String', WindowsInputTypes.String, 'String'])
Options.append(['Integer', WindowsInputTypes.Integer, 0])
Options.append(['Real', WindowsInputTypes.Real, 0.0])
Options.append(['Boolean', WindowsInputTypes.Boolean, True])
DoNotDisable.append( len(Options)-1) # add this boolean to the DoNotDisable list to test it
Index_Boolean = len(Options) -1 # get the index of the previous item appended even if you put more above it
Options.append(['Face', WindowsInputTypes.Face, None])
# Options.append(['Faces', WindowsInputTypes.Faces, None]) # commented out simply because the window got too big
Options.append(['Plane', WindowsInputTypes.Plane, None])
# Options.append(['Planes', WindowsInputTypes.Planes, None]) # commented out simply because the window got too big
Options.append(['Edge', WindowsInputTypes.Edge, None])
# Options.append(['Edges', WindowsInputTypes.Edges, None]) # commented out simply because the window got too big
Options.append(['Vertex', WindowsInputTypes.Vertex, None])
# Options.append(['Vertices', WindowsInputTypes.Vertices, None]) # commented out simply because the window got too big
Options.append(['Point', WindowsInputTypes.Point, None])
# Options.append(['Points', WindowsInputTypes.Points, None]) # commented out simply because the window got too big
Options.append(['Axis', WindowsInputTypes.Axis, None])
# Options.append(['Axes', WindowsInputTypes.Axes, None]) # commented out simply because the window got too big
Options.append(['Sketch', WindowsInputTypes.Sketch, None])
# Options.append(['Sketches', WindowsInputTypes.Sketches, None]) # commented out simply because the window got too big
Options.append(['Sketch3D', WindowsInputTypes.Sketch3D, None])
Options.append(['File', WindowsInputTypes.File, 'File Path including Name Here'])
Options.append(['Label', WindowsInputTypes.Label, 'Label'])
DoNotDisable.append( len(Options)-1) # must add all Labels to the DoNotDisable list or you get an error
Options.append(['SaveFile', WindowsInputTypes.SaveFile, 'SaveFile Path including Name Here'])
mystringlist = ["test","this",'list']
Options.append(['StringList', WindowsInputTypes.StringList, mystringlist])
Options.append(['Image', WindowsInputTypes.Image, 'MaxCellSize.jpg', 170])
myURL = ['Click Here!','https://www.google.com/', int('0000ff',16)] # first the text to display, then the url, then a hexidecimal rrggbb color converted into an integer
Options.append([None, WindowsInputTypes.Url, myURL])
DoNotDisable.append( len(Options)-1) # must add all Urls to the DoNotDisable list or you get an error
Options.append(['Folder', WindowsInputTypes.Folder, 'Folder Path Here'])
# show dialog to user, get inputs
Values = Win.OptionsDialog(ScriptName, Options, 200, InputChanged, UpdateUserInterface)
if Values == None:
print("Canceled... Exiting.")
sys.exit()
# other error checking and program here