summaryrefslogtreecommitdiff
path: root/misc/pylib/robofab/interface/all/dialogs_fontlab_legacy2.py
diff options
context:
space:
mode:
Diffstat (limited to 'misc/pylib/robofab/interface/all/dialogs_fontlab_legacy2.py')
-rw-r--r--misc/pylib/robofab/interface/all/dialogs_fontlab_legacy2.py373
1 files changed, 0 insertions, 373 deletions
diff --git a/misc/pylib/robofab/interface/all/dialogs_fontlab_legacy2.py b/misc/pylib/robofab/interface/all/dialogs_fontlab_legacy2.py
deleted file mode 100644
index 460b73f1e..000000000
--- a/misc/pylib/robofab/interface/all/dialogs_fontlab_legacy2.py
+++ /dev/null
@@ -1,373 +0,0 @@
-"""
-
- Dialogs for FontLab 5.1.
- This might work in future versions of FontLab as well.
- This is basically a butchered version of vanilla.dialogs.
- No direct import of, or dependency on Vanilla
-
- March 7 2012
- It seems only the dialogs that deal with the file system
- need to be replaced, the other dialogs still work.
- As we're not entirely sure whether it is worth to maintain
- these dialogs, let's fix the imports in dialogs.py.
-
- This is the phenolic aldehyde version of dialogs.
-
-"""
-
-#__import__("FL")
-from FL import *
-
-from Foundation import NSObject
-from AppKit import NSApplication, NSInformationalAlertStyle, objc, NSAlert, NSAlertFirstButtonReturn, NSAlertSecondButtonReturn, NSAlertThirdButtonReturn, NSSavePanel, NSOKButton, NSOpenPanel
-
-NSApplication.sharedApplication()
-
-__all__ = [
-# "AskString",
- "AskYesNoCancel",
-# "FindGlyph",
- "GetFile",
- "GetFolder",
- "GetFileOrFolder",
- "Message",
-# "OneList",
- "PutFile",
-# "SearchList",
-# "SelectFont",
-# "SelectGlyph",
-# "TwoChecks",
-# "TwoFields",
- "ProgressBar",
-]
-
-
-class BaseMessageDialog(NSObject):
-
- def initWithMessageText_informativeText_alertStyle_buttonTitlesValues_window_resultCallback_(self,
- messageText="",
- informativeText="",
- alertStyle=NSInformationalAlertStyle,
- buttonTitlesValues=None,
- parentWindow=None,
- resultCallback=None):
- if buttonTitlesValues is None:
- buttonTitlesValues = []
- self = super(BaseMessageDialog, self).init()
- self.retain()
- self._resultCallback = resultCallback
- self._buttonTitlesValues = buttonTitlesValues
- #
- alert = NSAlert.alloc().init()
- alert.setMessageText_(messageText)
- alert.setInformativeText_(informativeText)
- alert.setAlertStyle_(alertStyle)
- for buttonTitle, value in buttonTitlesValues:
- alert.addButtonWithTitle_(buttonTitle)
- self._value = None
- code = alert.runModal()
- self._translateValue(code)
- return self
-
- def _translateValue(self, code):
- if code == NSAlertFirstButtonReturn:
- value = 1
- elif code == NSAlertSecondButtonReturn:
- value = 2
- elif code == NSAlertThirdButtonReturn:
- value = 3
- else:
- value = code - NSAlertThirdButtonReturn + 3
- self._value = self._buttonTitlesValues[value-1][1]
-
- def windowWillClose_(self, notification):
- self.autorelease()
-
-
-class BasePutGetPanel(NSObject):
-
- def initWithWindow_resultCallback_(self, parentWindow=None, resultCallback=None):
- self = super(BasePutGetPanel, self).init()
- self.retain()
- self._parentWindow = parentWindow
- self._resultCallback = resultCallback
- return self
-
- def windowWillClose_(self, notification):
- self.autorelease()
-
-
-class PutFilePanel(BasePutGetPanel):
-
- def initWithWindow_resultCallback_(self, parentWindow=None, resultCallback=None):
- self = super(PutFilePanel, self).initWithWindow_resultCallback_(parentWindow, resultCallback)
- self.messageText = None
- self.title = None
- self.fileTypes = None
- self.directory = None
- self.fileName = None
- self.canCreateDirectories = True
- self.accessoryView = None
- self._result = None
- return self
-
- def run(self):
- panel = NSSavePanel.alloc().init()
- if self.messageText:
- panel.setMessage_(self.messageText)
- if self.title:
- panel.setTitle_(self.title)
- if self.directory:
- panel.setDirectory_(self.directory)
- if self.fileTypes:
- panel.setAllowedFileTypes_(self.fileTypes)
- panel.setCanCreateDirectories_(self.canCreateDirectories)
- panel.setCanSelectHiddenExtension_(True)
- panel.setAccessoryView_(self.accessoryView)
- if self._parentWindow is not None:
- panel.beginSheetForDirectory_file_modalForWindow_modalDelegate_didEndSelector_contextInfo_(
- self.directory, self.fileName, self._parentWindow, self, "savePanelDidEnd:returnCode:contextInfo:", 0)
- else:
- isOK = panel.runModalForDirectory_file_(self.directory, self.fileName)
- if isOK == NSOKButton:
- self._result = panel.filename()
-
- def savePanelDidEnd_returnCode_contextInfo_(self, panel, returnCode, context):
- panel.close()
- if returnCode:
- self._result = panel.filename()
- if self._resultCallback is not None:
- self._resultCallback(self._result)
-
- savePanelDidEnd_returnCode_contextInfo_ = objc.selector(savePanelDidEnd_returnCode_contextInfo_, signature="v@:@ii")
-
-
-class GetFileOrFolderPanel(BasePutGetPanel):
-
- def initWithWindow_resultCallback_(self, parentWindow=None, resultCallback=None):
- self = super(GetFileOrFolderPanel, self).initWithWindow_resultCallback_(parentWindow, resultCallback)
- self.messageText = None
- self.title = None
- self.directory = None
- self.fileName = None
- self.fileTypes = None
- self.allowsMultipleSelection = False
- self.canChooseDirectories = True
- self.canChooseFiles = True
- self.resolvesAliases = True
- self._result = None
- return self
-
- def run(self):
- panel = NSOpenPanel.alloc().init()
- if self.messageText:
- panel.setMessage_(self.messageText)
- if self.title:
- panel.setTitle_(self.title)
- if self.directory:
- panel.setDirectory_(self.directory)
- if self.fileTypes:
- panel.setAllowedFileTypes_(self.fileTypes)
- panel.setCanChooseDirectories_(self.canChooseDirectories)
- panel.setCanChooseFiles_(self.canChooseFiles)
- panel.setAllowsMultipleSelection_(self.allowsMultipleSelection)
- panel.setResolvesAliases_(self.resolvesAliases)
- if self._parentWindow is not None:
- panel.beginSheetForDirectory_file_types_modalForWindow_modalDelegate_didEndSelector_contextInfo_(
- self.directory, self.fileName, self.fileTypes, self._parentWindow, self, "openPanelDidEnd:returnCode:contextInfo:", 0)
- else:
- isOK = panel.runModalForDirectory_file_types_(self.directory, self.fileName, self.fileTypes)
- if isOK == NSOKButton:
- self._result = panel.filenames()
-
- def openPanelDidEnd_returnCode_contextInfo_(self, panel, returnCode, context):
- panel.close()
- if returnCode:
- self._result = panel.filenames()
- if self._resultCallback is not None:
- self._resultCallback(self._result)
-
- openPanelDidEnd_returnCode_contextInfo_ = objc.selector(openPanelDidEnd_returnCode_contextInfo_, signature="v@:@ii")
-
-
-def Message(message="", title='noLongerUsed', informativeText=""):
- """Legacy robofab dialog compatible wrapper."""
- #def _message(messageText="", informativeText="", alertStyle=NSInformationalAlertStyle, parentWindow=None, resultCallback=None):
- resultCallback = None
- alert = BaseMessageDialog.alloc().initWithMessageText_informativeText_alertStyle_buttonTitlesValues_window_resultCallback_(
- messageText=message,
- informativeText=informativeText,
- alertStyle=NSInformationalAlertStyle,
- buttonTitlesValues=[("OK", 1)],
- parentWindow=None,
- resultCallback=None)
- if resultCallback is None:
- return 1
-
-
-def AskYesNoCancel(message, title='noLongerUsed', default=None, informativeText=""):
- """
- AskYesNoCancel Dialog
-
- message the string
- title* a title of the window
- (may not be supported everywhere)
- default* index number of which button should be default
- (i.e. respond to return)
- informativeText* A string with secundary information
-
- * may not be supported everywhere
- """
- parentWindow = None
- alert = BaseMessageDialog.alloc().initWithMessageText_informativeText_alertStyle_buttonTitlesValues_window_resultCallback_(
- messageText=message,
- informativeText=informativeText,
- alertStyle=NSInformationalAlertStyle,
- buttonTitlesValues=[("Cancel", -1), ("Yes", 1), ("No", 0)],
- parentWindow=None,
- resultCallback=None)
- return alert._value
-
-def _askYesNo(messageText="", informativeText="", alertStyle=NSInformationalAlertStyle, parentWindow=None, resultCallback=None):
- parentWindow = None
- alert = BaseMessageDialog.alloc().initWithMessageText_informativeText_alertStyle_buttonTitlesValues_window_resultCallback_(
- messageText=messageText, informativeText=informativeText, alertStyle=alertStyle, buttonTitlesValues=[("Yes", 1), ("No", 0)], parentWindow=parentWindow, resultCallback=resultCallback)
- if resultCallback is None:
- return alert._value
-
-def GetFile(message=None, title=None, directory=None, fileName=None, allowsMultipleSelection=False, fileTypes=None):
- """ Legacy robofab dialog compatible wrapper.
- This will select UFO on OSX 10.7, FL5.1
- """
- parentWindow = None
- resultCallback=None
- basePanel = GetFileOrFolderPanel.alloc().initWithWindow_resultCallback_(parentWindow, resultCallback)
- basePanel.messageText = message
- basePanel.title = title
- basePanel.directory = directory
- basePanel.fileName = fileName
- basePanel.fileTypes = fileTypes
- basePanel.allowsMultipleSelection = allowsMultipleSelection
- basePanel.canChooseDirectories = False
- basePanel.canChooseFiles = True
- basePanel.run()
- if basePanel._result is None:
- return None
- if not allowsMultipleSelection:
- # compatibly return only one as we expect
- return str(list(basePanel._result)[0])
- else:
- # return more if we explicitly expect
- return [str(n) for n in list(basePanel._result)]
-
-def GetFolder(message=None, title=None, directory=None, allowsMultipleSelection=False):
- parentWindow = None
- resultCallback = None
- basePanel = GetFileOrFolderPanel.alloc().initWithWindow_resultCallback_(parentWindow, resultCallback)
- basePanel.messageText = message
- basePanel.title = title
- basePanel.directory = directory
- basePanel.allowsMultipleSelection = allowsMultipleSelection
- basePanel.canChooseDirectories = True
- basePanel.canChooseFiles = False
- basePanel.run()
- if basePanel._result is None:
- return None
- if not allowsMultipleSelection:
- # compatibly return only one as we expect
- return str(list(basePanel._result)[0])
- else:
- # return more if we explicitly expect
- return [str(n) for n in list(basePanel._result)]
-
-def GetFileOrFolder(message=None, title=None, directory=None, fileName=None, allowsMultipleSelection=False, fileTypes=None, parentWindow=None, resultCallback=None):
- parentWindow = None
- basePanel = GetFileOrFolderPanel.alloc().initWithWindow_resultCallback_(parentWindow, resultCallback)
- basePanel.messageText = message
- basePanel.title = title
- basePanel.directory = directory
- basePanel.fileName = fileName
- basePanel.fileTypes = fileTypes
- basePanel.allowsMultipleSelection = allowsMultipleSelection
- basePanel.canChooseDirectories = True
- basePanel.canChooseFiles = True
- basePanel.run()
- if basePanel._result is None:
- return None
- if not allowsMultipleSelection:
- # compatibly return only one as we expect
- return str(list(basePanel._result)[0])
- else:
- # return more if we explicitly expect
- return [str(n) for n in list(basePanel._result)]
-
-def PutFile(message=None, title=None, directory=None, fileName=None, canCreateDirectories=True, fileTypes=None):
- parentWindow = None
- resultCallback=None
- accessoryView=None
- basePanel = PutFilePanel.alloc().initWithWindow_resultCallback_(parentWindow, resultCallback)
- basePanel.messageText = message
- basePanel.title = title
- basePanel.directory = directory
- basePanel.fileName = fileName
- basePanel.fileTypes = fileTypes
- basePanel.canCreateDirectories = canCreateDirectories
- basePanel.accessoryView = accessoryView
- basePanel.run()
- return str(basePanel._result)
-
-
-class ProgressBar(object):
-
- def __init__(self, title="RoboFab...", ticks=0, label=""):
- self._tickValue = 1
- fl.BeginProgress(title, ticks)
-
- def getCurrentTick(self):
- return self._tickValue
-
- def tick(self, tickValue=None):
- if not tickValue:
- tickValue = self._tickValue
- fl.TickProgress(tickValue)
- self._tickValue = tickValue + 1
-
- def label(self, label):
- pass
-
- def close(self):
- fl.EndProgress()
-
-
-# we seem to have problems importing from here.
-# so let's see what happens if we make the robofab compatible wrappers here as well.
-
-# start with all the defaults.
-
-#def AskString(message, value='', title='RoboFab'):
-# raise NotImplementedError
-
-#def FindGlyph(aFont, message="Search for a glyph:", title='RoboFab'):
-# raise NotImplementedError
-
-#def OneList(list, message="Select an item:", title='RoboFab'):
-# raise NotImplementedError
-
-#def PutFile(message=None, fileName=None):
-# raise NotImplementedError
-
-#def SearchList(list, message="Select an item:", title='RoboFab'):
-# raise NotImplementedError
-
-#def SelectFont(message="Select a font:", title='RoboFab'):
-# raise NotImplementedError
-
-#def SelectGlyph(font, message="Select a glyph:", title='RoboFab'):
-# raise NotImplementedError
-
-#def TwoChecks(title_1="One", title_2="Two", value1=1, value2=1, title='RoboFab'):
-# raise NotImplementedError
-
-#def TwoFields(title_1="One:", value_1="0", title_2="Two:", value_2="0", title='RoboFab'):
-# raise NotImplementedError
-