diff options
Diffstat (limited to 'Mac/Contrib/PyIDE-src/IDELib/Widgets/Wdialogs.py')
-rw-r--r-- | Mac/Contrib/PyIDE-src/IDELib/Widgets/Wdialogs.py | 183 |
1 files changed, 0 insertions, 183 deletions
diff --git a/Mac/Contrib/PyIDE-src/IDELib/Widgets/Wdialogs.py b/Mac/Contrib/PyIDE-src/IDELib/Widgets/Wdialogs.py deleted file mode 100644 index b954255..0000000 --- a/Mac/Contrib/PyIDE-src/IDELib/Widgets/Wdialogs.py +++ /dev/null @@ -1,183 +0,0 @@ -import W -from types import * -import string - -""" -import Wdialogs -testDict1 = {1:1, 2:2, 3:3} -testDict2 = {3:3,4:4, 'testDict1':testDict1, 6:6, 7:7} -testDict3 = {3:3,4:4, 'testDict2':testDict2, 'testDict1':testDict1, 6:6, 7:7} -Wdialogs.EditDictionary(testDict3) - -import Wdialogs -a = Wdialogs.Ask('xxx', 'default text', ['font', 'typografie', 'lettertonwerpen', 'huisstijl']) -""" - -def Message(text, button = "OK"): - w = W.ModalDialog((300, 100)) - w.button = W.Button((-90, -30, 80, 16), button, w.close) - w.message = W.TextBox((10, 10, -10, -40), text) - w.setdefaultbutton(w.button) - w.open() - - -def Ask(question, defaulttext = "", selections = []): - d = _Ask(question, defaulttext, selections) - return d.rv - - -class _Ask: - # selections is a list of possible for selections - - def __init__(self, question, defaulttext, selections): - self.selections = [] - for s in selections: - self.selections.append(string.lower(s)) - self.selections.sort() - self.w = W.ModalDialog((300, 120)) - self.w.button1 = W.Button((-90, -30, 80, 16), "OK", self.button1hit) - self.w.button2 = W.Button((-180, -30, 80, 16), "Cancel", self.button2hit) - self.w.question = W.TextBox((10, 10, -10, 30), question) - self.w.input = W.EditText((10, 40, -10, 20), defaulttext, self.processInput) - self.rv = None - self.w.setdefaultbutton(self.w.button1) - - self.w.bind("cmd.", self.w.button2.push) - self.w.open() - - def processInput(self, key, modifiers): # Process user input to match a selection - pos = self.w.input.getselection() - input = string.lower(self.w.input.get()[0:pos[1]]) - if len(input): - for t in self.selections: - if input == t[0:pos[0]]: - self.w.input.set(t) - self.w.input.setselection(pos[0], pos[1]) - return - self.w.input.set(input) - self.w.input.setselection(pos[1], pos[1]) - - def button1hit(self): - self.rv = self.w.input.get() - self.w.close() - - def button2hit(self): - self.w.close() - -class _AskYesNo: - - def __init__(self, question, cancelFlag= 0): - if cancelFlag: - size = 190, 80 - else: size = 150, 80 - self.w = W.ModalDialog(size) - self.w.yes = W.Button((10, -36, 50, 24), 'Yes', self.yes) - if cancelFlag: - self.w.cancel = W.Button((70, -36, -70, 24), "Cancel", self.cancel) - self.w.no = W.Button((-60, -36, -10, 24), 'No', self.no) - self.w.question = W.TextBox((10, 10, -10, 30), question) - self.rv = None - self.w.setdefaultbutton(self.w.yes) - if cancelFlag: - self.w.bind("cmd.", self.w.cancel) - else: self.w.bind("cmd.", self.w.no) - self.w.open() - - def yes(self): - self.rv = 1 - self.w.close() - - def no(self): - self.rv = 0 - self.w.close() - - def cancel(self): - self.rv = -1 - self.w.close() - -def AskYesNo(question): - d = _AskYesNo(question, 0) - return d.rv - -def AskYesCancelNo(question): - d = _AskYesNo(question, 1) - return d.rv - -class CallBackButton(W.Button): - def click(self, point, modifiers): - if not self._enabled: - return - part = self._control.TrackControl(point) - if part: - if self._callback: - self._callback(self.dict) - - def push(self): - if not self._enabled: - return - import time - self._control.HiliteControl(1) - time.sleep(0.1) - self._control.HiliteControl(0) - if self._callback: - self._callback(self.dict) - -class EditDictionary: # Auto layout editor of dictionary - def __init__(self, dictionary, title = 'Dictionary Editor'): - self.leading = 20 - self.d = dictionary - keys = self.d.keys() - windowSize = 400, len(keys) * self.leading + 100 - self.w = w = W.ModalDialog(windowSize) - y = 2 * self.leading - theFont = fontsettings = ('Geneva', 0, 10, (0,0,0)) - keys.sort() - for key in keys: - if type(key) == StringType: - label = key - else: label = `key` - if type(self.d[key]) == StringType: - value = self.d[key] - else: - value = `self.d[key]` # Just show the value - - if type(self.d[key]) == DictType: # Make a button - button = w[label] = CallBackButton((110, y, 50, 18), label, self.pushDict) - button.dict = self.d[key] - else: - w['k_' + label] = W.TextBox((10, y, 200, 18), label, fontsettings = theFont) - w[label] = W.EditText((110, y, -10, 18), value, fontsettings = theFont) - y = y + self.leading - - w._name = W.TextBox((10, 4, 100, 10), title) - w._ok = W.Button((-160, -36, 60, 24), "OK", self.ok) - w._cancel = W.Button((-80, -36, 60, 24), "Cancel", self.cancel) - w.setdefaultbutton(self.w._ok) - - self.rv = None # Return value - w.open() - - def pushDict(self, dict): - EditDictionary(dict) - - def popDict(self): - self.w.close() - - def ok(self): - self.rv = 1 - for key in self.d.keys(): - if type(key) == StringType: - label = key - else: label = `key` - if type(self.d[key]) == StringType or self.d[key] == None: - self.d[key] = self.w[label].get() - else: - try: - self.d[key] = eval(self.w[label].get()) - except: - pass - self.popDict() - - def cancel(self): - self.rv = 0 - self.popDict() |