diff options
author | Glenn Glazer <coyot@lindenlab.com> | 2016-06-23 08:05:31 -0700 |
---|---|---|
committer | Glenn Glazer <coyot@lindenlab.com> | 2016-06-23 08:05:31 -0700 |
commit | 5d900a4d8d01ffa2113cc8c763075bcd0968560f (patch) | |
tree | 23d29b16560ba720a376ad263e3e91b55939920e /indra | |
parent | e8785677cc3656eef20c1625a4b90ddbac542855 (diff) |
SL-321 add trinary widget to InstallerUserMessage
Diffstat (limited to 'indra')
-rw-r--r-- | indra/viewer_components/manager/InstallerUserMessage.py | 52 | ||||
-rwxr-xr-x | indra/viewer_components/manager/SL_Launcher | 1 |
2 files changed, 43 insertions, 10 deletions
diff --git a/indra/viewer_components/manager/InstallerUserMessage.py b/indra/viewer_components/manager/InstallerUserMessage.py index 0ab7eafc78..2ec71df030 100644 --- a/indra/viewer_components/manager/InstallerUserMessage.py +++ b/indra/viewer_components/manager/InstallerUserMessage.py @@ -58,8 +58,8 @@ class InstallerUserMessage(tk.Tk): self.config(background = 'black') # background="..." doesn't work on MacOS for radiobuttons or progress bars # http://tinyurl.com/tkmacbuttons - ttk.Style().configure('Linden.TLabel', foreground='#487A7B', background='black') - ttk.Style().configure('Linden.TButton', foreground='#487A7B', background='black') + ttk.Style().configure('Linden.TLabel', foreground=InstallerUserMessage.linden_green, background='black') + ttk.Style().configure('Linden.TButton', foreground=InstallerUserMessage.linden_green, background='black') ttk.Style().configure("black.Horizontal.TProgressbar", foreground=InstallerUserMessage.linden_green, background='black') #This bit of configuration centers the window on the screen @@ -136,8 +136,8 @@ class InstallerUserMessage(tk.Tk): self.mainloop() def binary_choice_message(self, message, true = 'Yes', false = 'No'): - #one: first option, returns True - #two: second option, returns False + #true: first option, returns True + #false: second option, returns False #usage is kind of opaque and relies on this object persisting after the window destruction to pass back choice #usage: # frame = InstallerUserMessage.InstallerUserMessage( ... ) @@ -164,6 +164,38 @@ class InstallerUserMessage(tk.Tk): self.update() self.mainloop() + def trinary_choice_message(self, message, one = 1, two = 2, three = 3): + #one: first option, returns 1 + #two: second option, returns 2 + #three: third option, returns 3 + #usage is kind of opaque and relies on this object persisting after the window destruction to pass back choice + #usage: + # frame = InstallerUserMessage.InstallerUserMessage( ... ) + # frame = frame.binary_choice_message( ... ) + # (wait for user to click) + # value = frame.choice.get() + + self.text_label = tk.Label(text = message) + #command registers the callback to the method named. We want the frame to go away once clicked. + self.button_one = ttk.Radiobutton(text = one, variable = self.choice, value = 1, + command = self._delete_window, style = 'Linden.TButton') + self.button_two = ttk.Radiobutton(text = two, variable = self.choice, value = 2, + command = self._delete_window, style = 'Linden.TButton') + self.button_three = ttk.Radiobutton(text = three, variable = self.choice, value = 3, + command = self._delete_window, style = 'Linden.TButton') + self.set_colors(self.text_label) + self.set_colors(self.image_label) + #pad, direction and weight are all experimentally derived by retrying various values + self.image_label.grid(row = 1, column = 1, rowspan = 4, sticky = 'W') + self.text_label.grid(row = 1, column = 2, rowspan = 4, padx = 5) + self.button_one.grid(row = 1, column = 3, sticky = 'W', pady = 5) + self.button_two.grid(row = 2, column = 3, sticky = 'W', pady = 5) + self.button_three.grid(row = 3, column = 3, sticky = 'W', pady = 5) + self.auto_resize(row_count = 3, column_count = 3, heavy_column = 3) + #self.button_two.deselect() + self.update() + self.mainloop() + def progress_bar(self, message = None, size = 0, interval = 100, pb_queue = None): #Best effort attempt at a real progress bar # This is what Tk calls "determinate mode" rather than "indeterminate mode" @@ -248,6 +280,13 @@ if __name__ == "__main__": print frame3.choice.get() sys.stdout.flush() + #trinary choice test. User destroys window when they select. + frame3a = InstallerUserMessage(text = "Something in the way she knows....", title = "Beatles Quotes for 200", icon_name="head-sl-logo.gif") + frame3a.trinary_choice_message(message = "And all I have to do is think of her.", + one = "Don't want to leave her now", two = 'You know I believe and how', three = 'John is Dead') + print frame3a.choice.get() + sys.stdout.flush() + #progress bar queue = Queue.Queue() thread = ThreadedClient(queue) @@ -257,9 +296,4 @@ if __name__ == "__main__": frame4 = InstallerUserMessage(text = "Something in the way she knows....", title = "Beatles Quotes for 300", icon_name="head-sl-logo.gif") frame4.progress_bar(message = "You're asking me will my love grow", size = 100, pb_queue = queue) print "frame defined" - frame4.mainloop() - - - - diff --git a/indra/viewer_components/manager/SL_Launcher b/indra/viewer_components/manager/SL_Launcher index fd7d00be0f..6eaccc8b13 100755 --- a/indra/viewer_components/manager/SL_Launcher +++ b/indra/viewer_components/manager/SL_Launcher @@ -34,7 +34,6 @@ elif sys.platform.startswith("win") or sys.platform.startswith("cyg"): elif os.path.isfile(os.path.join(cwd,"SecondLifeTest.exe")): executable_name = "SecondLifeTest.exe" else: - #unsupported by prototypeS sys.exit("Can't find Windows viewer binary") elif sys.platform.startswith("linux"): executable_name = "secondlife" |