Example #1
0
    def searchGlyphListCallback(self, sender):
        """
		2020/02/25
		modified by Cho
		
		If there is saved file in directory, load groupDict,
		else go through matrix, topology process to get groupDict & save it.

		and then print it on the lineView.
		"""
        file = getExtensionDefault(DefaultKey + ".file")
        jsonFilePath = getExtensionDefault(DefaultKey + ".jsonFilePath")
        jsonFileName1 = getExtensionDefault(DefaultKey + ".jsonFileName1")
        jsonFileName2 = getExtensionDefault(DefaultKey + ".jsonFileName2")
        font = getExtensionDefault(DefaultKey + ".font")
        groupDict = getExtensionDefault(DefaultKey + ".groupDict")
        KoreanCheck = getExtensionDefault(DefaultKey + ".korean")

        standardGlyph = self.searchGlyph
        setExtensionDefault(DefaultKey + ".standardGlyph", standardGlyph)
        contourIndex = int(self.w.contourIndex.slider.get())
        standardContour = standardGlyph.contours[contourIndex]
        setExtensionDefault(DefaultKey + ".standardContour", standardContour)

        if KoreanCheck == True:
            print("korean")
            tMC.handleSearchGlyphList(standardGlyph, contourIndex, groupDict)
        else:
            print("chinese")
            ctMC.cHandleSearchGlyphList(standardGlyph, contourIndex, groupDict)
        return
Example #2
0
    def glyphWindowWillClose(self, notification):
        start = time.time()
        self.roboCJKView.setglyphState(self.currentGlyph)
        self.openedGlyphName = ""
        if self.glyphInspectorWindow is not None:
            self.glyphInspectorWindow.closeWindow()
            self.glyphInspectorWindow = None
        try:
            posSize = CurrentGlyphWindow().window().getPosSize()
            setExtensionDefault(blackrobocjk_glyphwindowPosition, posSize)
            self.glyphWindowPosSize = getExtensionDefault(
                blackrobocjk_glyphwindowPosition)
        except:
            pass
        if self.currentGlyph.type != "atomicElement":
            self.window.removeGlyphEditorSubview(self.glyphView)

        self.drawer.refGlyph = None
        self.drawer.refGlyphPos = [0, 0]
        self.drawer.refGlyphScale = [1, 1]

        self.currentFont.fontLib.update(self.currentFont._RFont.lib.asDict())
        self.currentFont._fullRFont.lib.update(self.currentFont._RFont.lib)

        if not self.mysql:
            self.currentFont.save()
            if self.currentGlyph is not None:
                self.currentFont.getGlyph(self.currentGlyph)
            self.currentFont.clearRFont()
        else:
            self.currentFont.saveGlyph(self.currentGlyph)
            self.currentFont.saveFontlib()
            self.currentFont.batchUnlockGlyphs([self.currentGlyph.name])
        stop = time.time()
        print(stop - start, "to close %s" % self.currentGlyph.name)
Example #3
0
	def drawBroadNibBackground(self, info):
		
		# 칠할 필요가 없다면 종료
		state = getExtensionDefault(DefaultKey+".state")
		if bool(state) is not True:
			return

		# paint current group's contour
		targetGlyph = info["glyph"].getLayer(self.layerName)
		# picks current contours which should be painted from current group
		contourList = []


		try :
			targetIdxList = getExtensionDefault(DefaultKey+".groupDict")[targetGlyph]
			setExtensionDefault(DefaultKey + ".contourNumber", targetIdxList[0])
			
			color = getExtensionDefault(DefaultKey+".color")
			r,g,b,a = color
			fill(r,g,b,a)

			step = getExtensionDefault(DefaultKey+".step"); width = getExtensionDefault(DefaultKey+".width"); height = getExtensionDefault(DefaultKey+".height");


			if info["glyph"].layerName == self.layerName or not self.currentPen:
				self.currentPen = BroadNibPen(None, step, width, height, 0, oval)

			for idx in targetIdxList:
				targetGlyph.contours[idx].draw(self.currentPen)


		except Exception as e:
			setExtensionDefault(DefaultKey + ".contourNumber", None)
			return
Example #4
0
 def applicationOpenFile(self, notification):
     path = notification["path"]
     ext = notification["ext"]
     fileHandler = notification["fileHandler"]
     if ext == ".%s" % fileExtension:
         singleItems = list(getExtensionDefault("com.mechanic.singleExtensionItems"))
         try:
             with open(path, "rb") as f:
                 item = yaml.load(f.read())
         except Exception as e:
             logger.error("Cannot read '%s' file" % path)
             logger.error(e)
         try:
             ExtensionYamlItem(item)
             if item not in singleItems:
                 singleItems.append(item)
                 setExtensionDefault("com.mechanic.singleExtensionItems", singleItems)
                 title = "Opening Mechanic file."
                 text = "Added '%s' to Mechanic" % path
             else:
                 title = "Duplicate Mechanic file."
                 text = "The extension '%s' was not added to Mechanic" % path
         except Exception as e:
             logger.error("Cannot parse the file '%s'" % path)
             logger.error(e)
             title = "Failed to read the file '%s'." % path
             text = "See the output window for a detailed traceback."
         message(title, text)
         fileHandler["opened"] = True
Example #5
0
 def previewCallback(self, sender):
     value = sender.get()
     self.w.fill.enable(value)
     self.w.stroke.enable(value)
     self.w.color.enable(value)
     setExtensionDefault("%s.%s" %(outlinePaletteDefaultKey, "preview"), value)
     self.updateView()
Example #6
0
    def fillCallback(self, sender):
        """
        Change the fill status

        """
        setExtensionDefault(DEFAULTKEY_FILL, sender.get())
        postEvent(f"{DEFAULTKEY}.fillCheckBoxDidChange")
 def previewCallback(self, sender):
     value = sender.get()
     self.w.fill.enable(value)
     self.w.stroke.enable(value)
     self.w.color.enable(value)
     setExtensionDefault("%s.%s" % (outlinePaletteDefaultKey, "preview"), value)
     self.updateView()
Example #8
0
    def strokeCallback(self, sender):
        """
        Change the stroke status

        """
        setExtensionDefault(DEFAULTKEY_STROKE, sender.get())
        postEvent(f"{DEFAULTKEY}.strokeCheckBoxDidChange")
Example #9
0
 def windowCloseCallback(self, sender):
     removeObserver(self, "draw")
     removeObserver(self, "drawInactive")
     removeObserver(self, "currentGlyphChanged")
     setExtensionDefault("%s.%s" % (extensionID, "tension"), self.w.HobbySlider.get())
     super(metapolator, self).windowCloseCallback(sender)
     UpdateCurrentGlyphView()
Example #10
0
 def saveDefaults(self):
     setExtensionDefault('%s.%s' % (rotatorDefaults, 'x'), self.xValue)
     setExtensionDefault('%s.%s' % (rotatorDefaults, 'y'), self.yValue)
     setExtensionDefault('%s.%s' % (rotatorDefaults, 'steps'), self.steps)
     setExtensionDefault('%s.%s' % (rotatorDefaults, 'lock'), self.lock)
     setExtensionDefault('%s.%s' % (rotatorDefaults, 'round'),
                         self.rounding)
    def okCallback(self, sender):
        userName = self.w.userName.get()
        password = self.w.password.get()
        twit = TwitPicAPI(userName, password)

        i = self.w.view.get()
        viewName = self._viewNames[i]
        image = self.getImageForView(viewName)
        if image is None:
            self.showMessage("Oeps!",
                             "Open a glyph window or space center window")
            return

        message = self.w.message.get()
        status = twit.upload(image,
                             "%s #robofont" % message,
                             post_to_twitter=True)
        if status == 1001:
            self.showMessage("Oeps!", "Invalid user or password")
        elif status in [1002, 1003, 1004]:
            self.showMessage("Oeps!",
                             "An error occured 'somewhere', try again")
        else:
            self.showMessage("Send to Twitter", "%s" % status)

        setExtensionDefault("%s.%s" % (defaultKey, "userName"), userName)
        setExtensionDefault("%s.%s" % (defaultKey, "password"), password)
Example #12
0
    def settingsWindow(self, onOff=bool):
        if onOff == True:
            self.w = FloatingWindow((1443.0, 108.0, 160.0, 72.0),
                                    title,
                                    closable=False)
            setExtensionDefault(settingsWindow, self.w)
            # print getExtensionDefault(settingsWindow)
            columnDescriptions = [
                dict(title="",
                     key="checkBox",
                     cell=CheckBoxListCell(),
                     width=15),
                dict(title="accent", editable=False),
                dict(title="anchor", width=50, editable=False),
            ]

            # self.w.latin_supp = SquareButton(
            #     (0, 0, 40, 17), "supp", sizeStyle='mini', callback=self.checkOnUnicode)
            # self.w.latin_A = SquareButton(
            #     (40, 0, 40, 17), "ex a", sizeStyle='mini', callback=self.checkOnUnicode)
            # self.w.latin_B = SquareButton(
            #     (80, 0, 40, 17), "ex b", sizeStyle='mini', callback=self.checkOnUnicode)
            # self.w.latin_add = SquareButton(
            #     (120, 0, 40, 17), "add", sizeStyle='mini', callback=self.checkOnUnicode)

            self.w.allOn = SquareButton((0, 0, 53, 17),
                                        "all on",
                                        callback=self.allOn,
                                        sizeStyle='mini')
            self.w.allOff = SquareButton((53, 0, 53, 17),
                                         "all off",
                                         callback=self.allOff,
                                         sizeStyle='mini')
            self.w.reload = SquareButton((106, 0, -0, 17),
                                         "reload",
                                         callback=self.reloadConstructions,
                                         sizeStyle='mini')
            self.w.list = List(
                (0, 17, -0, -20),
                items=[],
                columnDescriptions=columnDescriptions,
                editCallback=self.listEditCallback,
                doubleClickCallback=self.goToAccent,
            )

            self.w.compile = SquareButton((0, -20, -0, -0),
                                          'compile these glyphs',
                                          callback=self.compileGlyphs,
                                          sizeStyle='small')
            self.setUpBaseWindowBehavior()
            self.w.open()
            self.buildAccentList()

        if onOff == False:
            try:
                getExtensionDefault(settingsWindow).hide()
                setExtensionDefault(settingsWindow, None)
            except:
                pass
Example #13
0
 def saveCallback(self, sender):
     data = {
         "threaded": self.w.threaded.get(),
         "exportInFolders": self.w.exportInFolders.get(),
         "keepFileNames": self.w.keepFileNames.get()
     }
     setExtensionDefault(self.identifier, data)
     self.closeCallback(sender)
Example #14
0
def removeSelectedGlyphFromSmartSet(smartSetIndex, groupDict):

	keyList = list(groupDict.keys())
	for glyph in keyList:
		if glyph.selected is True and glyph.name in getSmartSets()[smartSetIndex]:
			del groupDict[glyph]

	setExtensionDefault(DefaultKey+".groupDict", groupDict)
 def windowCloseCallback(self, sender):
     self.removeObservers()
     setExtensionDefault("%s.%s" % (extensionID, "hide"),
                         self.fontAnchors.hideLists)
     setExtensionDefault("%s.%s" % (extensionID, "preview"),
                         self.showPreview)
     super(AnchorOverlay, self).windowCloseCallback(sender)
     UpdateCurrentGlyphView()
Example #16
0
 def incrementCallback(self, sender):
     prev_inc = self.increment
     try:
         self.increment = int(sender.get())
     except ValueError:
         self.increment = prev_inc
         self.w.inc_text_box.set(prev_inc)
     setExtensionDefault(self.pref_key, self.increment)
 def connectmiterLimit(self, sender):
     setExtensionDefault(
         "%s.%s" % (outlinePaletteDefaultKey, "connectmiterLimit"),
         sender.get())
     value = not sender.get()
     self.w.miterLimit.enable(value)
     self.w.miterLimitText.enable(value)
     self.parametersChanged(sender)
 def resetCallback(self, sender):
     if self.w.tabs.get() == 0:
         self.settings.set(None)
     else:
         setExtensionDefault("%s.htmlPreview" % settingsIdentifier, htmlPreviewDefault)
         self.html.set(htmlPreviewDefault)
         setExtensionDefault("%s.globalCSSPreview" % settingsIdentifier, "")
         self.globalCss.set("")
Example #19
0
 def _activate(self):
     setExtensionDefault(selfKey, self)
     addObserver(self, "mainFunction", event)
     addObserver(self, "glyphChange", "currentGlyphChanged")
     addObserver(self, "drawPreviewAccents", "drawPreview")
     addObserver(self, "warn", "draw")
     # addObserver(self, "testOverlap", "drawBackground")
     self.reloadConstructions()
 def saveCallback(self, sender):
     data = {
         "threaded": self.w.threaded.get(),
         "exportInFolders": self.w.exportInFolders.get(),
         "keepFileNames": self.w.keepFileNames.get()
     }
     setExtensionDefault(self.identifier, data)
     self.closeCallback(sender)
 def saveCallback(self, sender):
     data = {
         "instanceFolderName": self.w.instanceFolderNameEdit.get(),
         #"exportInFolders": self.w.exportInFolders.get(),
         #"keepFileNames": self.w.keepFileNames.get()
     }
     setExtensionDefault(self.identifier, data)
     self.closeCallback(sender)
 def _save_settings(self):
     for settings_key, setting in self.settings.items():
         # print(
         #     "Saving", "%s.%s" % (
         #         self._extension_id, settings_key
         #     ), setting.value, setting.ui_object
         # )
         setExtensionDefault("%s.%s" % (self._extension_id, settings_key),
                             setting.value)
Example #23
0
    def replaceSuffixes(self, sender):
        """ Handle replacing/appending of suffixes. """
        mode = "replace" if self.w.replace.get() == 1 else "append"
        oldSuffix = self.w.oldSuffix.getItems()[self.w.oldSuffix.get()]
        enteredSuffix = self.w.newSuffix.get()
        suffixes_in = [oldSuffix, enteredSuffix]

        suffixes = []  # build proper suffixes list
        for s in suffixes_in:
            if s is not None and len(s) > 0:
                if s[0] == ".":
                    s = s[1:]  # handle suffixes without periods
            suffixes.append(s)

        if mode == "replace" and suffixes[0] == suffixes[1]:
            Message(
                u"Cannot replace a suffix with itself.\nI mean I could, but there seems to be little point :)"
            )
        elif mode == "append" and suffixes[1] == "":
            Message(
                u"Cannot append an empty suffix.\n(Or you could just pretend I've already done it.)"
            )

        else:
            scope = self.f.keys() if self.w.scope.get(
            ) == 1 else self.f.selection

            if mode == "replace":
                for gname in scope:
                    if gname.endswith(suffixes[0]):
                        sufLen = len(suffixes[0])
                        if len(suffixes[1]) > 0:
                            newName = gname[:-sufLen] + suffixes[1]
                        else:
                            sufLenWithPeriod = sufLen + 1
                            newName = gname[:-sufLenWithPeriod]
                        self._changeGlyphname(gname, newName)

            elif mode == "append":
                for gname in scope:
                    newName = gname + "." + suffixes[1]
                    self._changeGlyphname(gname, newName)

            self.f.update()

            # store new values as defaults
            savedPresets = getExtensionDefault(
                "nl.typologic.suffixer.presetSuffixes")
            if enteredSuffix != "" and enteredSuffix not in savedPresets:
                savedPresetsList = savedPresets.split()
                savedPresetsList.append(enteredSuffix)
                savedPresetsList.sort()
                newPresets = " ".join(savedPresetsList)
                setExtensionDefault("nl.typologic.suffixer.presetSuffixes",
                                    newPresets)

            self.w.close()
Example #24
0
    def saveDefaults(self, sender):
        for setting in self.generateSettings:
            key = setting.replace(" ", "_").lower()
            value = getattr(self, key).get()
            setExtensionDefault("%s.%s" % (settingsIdentifier, key), value)

        for format in doodleSupportedExportFileTypes + ["generateSuffix"]:
            value = getattr(self, format).get()
            setExtensionDefault("%s.%s" % (settingsIdentifier, format), value)
Example #25
0
 def resetCallback(self, sender):
     if self.w.tabs.get() == 0:
         self.settings.set(None)
     else:
         setExtensionDefault("%s.htmlPreview" % settingsIdentifier,
                             htmlPreviewDefault)
         self.html.set(htmlPreviewDefault)
         setExtensionDefault("%s.globalCSSPreview" % settingsIdentifier, "")
         self.globalCss.set("")
Example #26
0
 def windowClosedCallback(self, sender):
     if self.debug: print("windowClosedCallback")
     # The window is closing, save the themes into the extension preferenes using setExtensionDefault()
     # First, only keep the user defined themes, don't need to save the default themes
     themesToSave = []
     for theme in self.themes:
         if theme["themeType"] == "User":
             themesToSave += [theme]
     setExtensionDefault(DEFAULTSKEY, themesToSave)
    def _end(self):
        removeObserver(getExtensionDefault(selfKey), event)
        # See _activate()

        setExtensionDefault(selfKey, None)
        # this is optional
        if wasOn:
            self.restoreGlyphViewItems()
        # kill settings window
        self.settingsWindow(onOff=False)
 def saveSettings(self):
     glyphSettings = self.working_options
     settings = dict(
         # drawGlyph=self.view.drawChBox.get(),
         showOptions=self.view.showOptions.get(),
         colorFill=nsColor2RGB(self.view.colorFillCW.get()),
         colorStroke=nsColor2RGB(self.view.colorStroke.get()),
         glyphSettings=glyphSettings,
         generateStrokeColorBasedOnFill=self.generateStrokeColorBasedOnFill)
     setExtensionDefault(self.globalKey, settings)
Example #29
0
    def colorCallback(self, sender):
        """
        Change the color

        """
        r, g, b, a = NSColorToRgba(sender.get())
        self.fillColor = r, g, b, a
        self.strokeColor = r, g, b, 1
        setExtensionDefault(DEFAULTKEY_FILLCOLOR, (r, g, b, a))
        setExtensionDefault(DEFAULTKEY_STROKECOLOR, self.strokeColor)
        postEvent(f"{DEFAULTKEY}.colorDidChange")
Example #30
0
 def _turnOff(self):
     pref_as_is = getDefault('glyphZoomViewShowItems')
     setExtensionDefault('restoreGlyphZoomViewShowItems', pref_as_is)
     pref_new = dict()
     for i in pref_as_is:
         if i in turnOffItems:
             pref_new[i] = 0
         else:
             pref_new[i] = pref_as_is[i]
     setDefault('glyphZoomViewShowItems', pref_new)
     preferencesChanged()
Example #31
0
 def saveComponentList(self):
     # Save the component list as an extension user default, just without the component objects.
     cleanedComponentList = []
     for component in self.components:
         cleanedComponentList.append(
             {"type": component["type"], 
             "name": component["name"],
             "pins": component["pins"], 
             "object": None,
             "problem": True})
     setExtensionDefault("lastComponentList", cleanedComponentList)
Example #32
0
 def get_otf_2_callback(self, sender):
     otf_2 = getFile(
         messageText='choose a first .otf font',
         title=self.title,
         allowsMultipleSelection=False)
     if otf_2 is not None:
         otf_2 = otf_2[0]
         if len(otf_2) > 0:
             self.otf_2 = otf_2
             if os.path.exists(self.otf_2):
                 setExtensionDefault('%s.otf_2' % self.extension_key, self.otf_2)
                 self.w.otf_2_status.set('%s' % unichr(10003))
Example #33
0
    def closeCallback(self, sender):
        overWrite = self.w.overWrite.get()
        markColor = None
        if self.w.markGlyphs.get():
            markColor = self.w.markGlyphColor.get()

        setExtensionDefault(self.overWriteKey, overWrite)
        setExtensionDefault(self.useMarkColorKey, bool(markColor))
        if markColor is not None:
            setExtensionDefaultColor(self.markColorKey, markColor)

        self.w.close()
 def gridInputCallback(self, sender):
     value = sender.get()
     ## must be int
     try:
         value = int(value)
     except:
         value = self.tool.size
         sender.set(value)
         return
     
     self.tool.size = value
     setExtensionDefault(GRID_DEFAULTS_KEY, value)
 def closeCallback(self, sender):
     overWrite = self.w.overWrite.get()
     markColor = None
     if self.w.markGlyphs.get():
         markColor = self.w.markGlyphColor.get()
         
     setExtensionDefault(self.overWriteKey, overWrite)
     setExtensionDefault(self.useMarkColorKey, bool(markColor))
     if markColor is not None:
         setExtensionDefaultColor(self.markColorKey, markColor)
     
     self.w.close()
Example #36
0
 def get_folder_callback(self, sender):
     folder = getFolder(
         messageText='choose a folder for the output files',
         title=self.title,
         allowsMultipleSelection=False)
     if folder is not None:
         folder = folder[0]
         if len(folder) > 0:
             self.folder = folder
             if os.path.exists(self.folder):
                 setExtensionDefault('%s.folder' % self.extension_key, self.folder)
                 self.w.folder_status.set('%s' % unichr(10003))
Example #37
0
    def _end(self):
        removeObserver(getExtensionDefault(selfKey), event)
        removeObserver(getExtensionDefault(selfKey), "currentGlyphChanged")
        removeObserver(getExtensionDefault(selfKey), "drawPreview")
        removeObserver(getExtensionDefault(selfKey), "draw")
        # removeObserver(getExtensionDefault(selfKey), 'drawBackground')

        setExtensionDefault(selfKey, None)
        # this is optional
        if wasOn:
            self._restoreGlyphViewItems()
        # kill settings window
        self.settingsWindow(onOff=False)
Example #38
0
    def loadExtensions(self, checkForUpdates=False):
        progress = self.startProgress("Loading extensions...")

        wrappedItems = []
        for urlStream in getExtensionDefault("com.mechanic.urlstreams"):
            clss = ExtensionRepository
            if urlStream == extensionStoreDataURL:
                clss = ExtensionStoreItem
            for data in getExtensionData(urlStream):
                try:
                    item = MCExtensionListItem(
                        clss(data, checkForUpdates=checkForUpdates))
                    wrappedItems.append(item)
                except Exception as e:
                    logger.error(
                        "Creating extension item '%s' from url '%s' failed." %
                        (data.get("extensionName", "unknow"), urlStream))
                    logger.error(e)

        for singleExtension in getExtensionDefault(
                "com.mechanic.singleExtensionItems"):
            try:
                item = MCExtensionListItem(
                    ExtensionYamlItem(singleExtension,
                                      checkForUpdates=checkForUpdates))
                wrappedItems.append(item)
            except Exception as e:
                logger.error("Creating single extension item '%s' failed." %
                             singleExtension.get("extensionName", "unknow"))
                logger.error(e)

        progress.update("Setting Extensions...")
        try:
            self.w.extensionList.set(wrappedItems)
        except Exception as e:
            logger.error("Cannot set items in mechanic list.")
            logger.error(e)

        if checkForUpdates:
            progress.update("Checking for updates...")
            progress.setTickCount(len(wrappedItems))
            for item in wrappedItems:
                progress.update()
                item.extensionObject().extensionNeedsUpdate()
            progress.setTickCount(None)
            now = time.time()
            setExtensionDefault("com.mechanic.lastUpdateCheck", now)
            title = time.strftime("Checked at %H:%M", time.localtime(now))
            self.w.checkForUpdates.setTitle(title)
            self._didCheckedForUpdates = True
        progress.close()
Example #39
0
    def replaceSuffixes(self, sender):
    	""" Handle replacing/appending of suffixes. """
        mode = "replace" if self.w.replace.get() == 1 else "append"
        oldSuffix = self.w.oldSuffix.getItems()[self.w.oldSuffix.get()]
        enteredSuffix = self.w.newSuffix.get()
        suffixes_in = [oldSuffix, enteredSuffix]
        
        suffixes = [] # build proper suffixes list
        for s in suffixes_in:
            if s is not None and len(s) > 0:
                if s[0] == ".":
                    s = s[1:] # handle suffixes without periods
            suffixes.append(s)

        if mode == "replace" and suffixes[0] == suffixes[1]:
            Message(u"Cannot replace a suffix with itself.\nI mean I could, but there seems to be little point :)")
        elif mode == "append" and suffixes[1] == "":
            Message(u"Cannot append an empty suffix.\n(Or you could just pretend I've already done it.)")

        else:
	        scope = self.f.keys() if self.w.scope.get() == 1 else self.f.selection

	        if mode == "replace":
	            for gname in scope:
	                if gname.endswith(suffixes[0]):
	                    sufLen = len(suffixes[0])
	                    if len(suffixes[1]) > 0:
	                        newName = gname[:-sufLen] + suffixes[1]
	                    else:
	                        sufLenWithPeriod = sufLen+1
	                        newName = gname[:-sufLenWithPeriod]
                        self._changeGlyphname(gname, newName)
	                        
	        elif mode == "append":
	            for gname in scope:
	                newName = gname + "." + suffixes[1]
	                self._changeGlyphname(gname, newName)
	                
	        self.f.autoUnicodes()
	        self.f.update()
	        
	        # store new values as defaults
	        savedPresets = getExtensionDefault("nl.typologic.suffixer.presetSuffixes")
	        if enteredSuffix != "" and enteredSuffix not in savedPresets:
	            savedPresetsList = savedPresets.split()
	            savedPresetsList.append(enteredSuffix)
	            savedPresetsList.sort()
	            newPresets = " ".join(savedPresetsList) 
	            setExtensionDefault("nl.typologic.suffixer.presetSuffixes", newPresets)
	        
	        self.w.close()
Example #40
0
	def save(self):
		setExtensionDefault(onOffKey, self.onOff)
		setExtensionDefault(lineWidthKey, self.lineWidth)
		setExtensionDefaultColor(lineColorKey, self.lineColor)
		setExtensionDefaultColor(fillColorKey, self.fillColor)
		setExtensionDefault(lineRGBA, self.lineRGBA)
		setExtensionDefault(fillRGBA, self.fillRGBA)
Example #41
0
 def windowCloseCallback(self, sender):
     removeObserver(self, "draw")
     removeObserver(self, "drawInactive")
     #removeObserver(self, "currentGlyphChanged")
     setExtensionDefault("%s.%s" % (extensionID, "method"), self.w.eqMethodSelector.get())
     setExtensionDefault("%s.%s" % (extensionID, "curvature"), self.w.eqCurvatureSelector.get())
     setExtensionDefault("%s.%s" % (extensionID, "curvatureFree"), self.w.eqCurvatureSlider.get())
     setExtensionDefault("%s.%s" % (extensionID, "tension"), self.w.eqHobbyTensionSlider.get())
     super(CurveEqualizer, self).windowCloseCallback(sender)
     UpdateCurrentGlyphView()
Example #42
0
 def toggle_panels():
     '''Show/hide all floating windows in the current workspace.'''
     # get panels
     windows = NSApp.windows()
     panels = [ window for window in windows if isinstance(window, NSPanel) ]
     # get state
     show_panels = getExtensionDefault('com.hipertipo.showHidePanels', fallback=True)
     # hide panels
     if show_panels:
         for panel in panels:
             panel.orderOut_(None)
         setExtensionDefault('com.hipertipo.showHidePanels', False)
     # show panels
     if show_panels is False:
         for panel in panels:
             if str(type(panel)) != '<objective-c class NSColorPanel at 0x7fff750fad60>':
                 panel.orderBack_(None)
         setExtensionDefault('com.hipertipo.showHidePanels', True)
 def okCallback(self, sender):
     userName = self.w.userName.get()
     password = self.w.password.get()
     twit = TwitPicAPI(userName, password)
     
     i = self.w.view.get()
     viewName = self._viewNames[i]
     image = self.getImageForView(viewName)
     if image is None:
         self.showMessage("Oeps!", "Open a glyph window or space center window")
         return
     
     message = self.w.message.get()
     status = twit.upload(image, "%s #robofont" %message, post_to_twitter=True)
     if status == 1001:
         self.showMessage("Oeps!", "Invalid user or password") 
     elif status in [1002, 1003, 1004]:
         self.showMessage("Oeps!", "An error occured 'somewhere', try again")
     else:
         self.showMessage("Send to Twitter", "%s" %status)
     
     setExtensionDefault("%s.%s" %(defaultKey, "userName"), userName)
     setExtensionDefault("%s.%s" %(defaultKey, "password"), password)
    def saveDefaults(self, sender):
        for setting in self.webSettings:
            key = setting.replace(" ", "_").lower()
            value = getattr(self, key).get()
            setExtensionDefault("%s.%s" % (settingsIdentifier, key), value)
            if "Woff" in setting:
                value = getattr(self, "%s_format" % key).get()
                setExtensionDefault("%s.format_%s" % (settingsIdentifier, key), value)

        for key in ["webSuffix", "preserveTTFhints", "generateHTML"]:
            value = getattr(self, key).get()
            setExtensionDefault("%s.%s" % (settingsIdentifier, key), value)
 def drawingModeCallback(self, sender):
     i = self.view.drawingMode.get()
     
     value = self.drawingChoices[i]
     
     self.tool.drawingMode = value
     setExtensionDefault(DRAWING_DEFAULTS_KEY, value)
     componentName = ""
     if value == COMPONENT_MODE:
         self.view.componentName.show(True)
         componentName = str(self.view.componentName.get())
     else:
         self.view.componentName.show(False)
         self.view.componentName.set("")
     self.tool.componentName = componentName
     setExtensionDefault(COMPONENT_DEFAULT_KEY, componentName)
     
     useGrid = self.view.useGrid.get()
     self.tool.useGrid = useGrid
     setExtensionDefault(USEGRID_DEFAULT_KEY, useGrid)
Example #46
0
 def alignmentCallback(self, sender):
     alignment = sender.get()
     setExtensionDefault(self.DEFAULTKEY_ALIGNMENT, alignment)
     self._alignment = alignment
     self.updateView()
Example #47
0
 def strokeCallback(self, sender):
     setExtensionDefault("%s.%s" %(defaultKey, "stroke"), sender.get())
     self.setStroke()
     self.updateView()
Example #48
0
 def drawCallback(self, sender):
     drawing = sender.get()
     setExtensionDefault(self.DEFAULTKEY_DRAW, drawing)
     self._drawing = drawing
     self.updateView()
Example #49
0
 def strokeCallback(self, sender):
     stroke = sender.get()
     setExtensionDefault(self.DEFAULTKEY_STROKE, stroke)
     self._stroke = stroke
     self.updateView()
Example #50
0
 def fillCallback(self, sender):
     fill = sender.get()
     setExtensionDefault(self.DEFAULTKEY_FILL, fill)
     self._fill = fill
     self.updateView()
 def strokeCallback(self, sender):
     setExtensionDefault("%s.%s" % (outlinePaletteDefaultKey, "stroke"), sender.get()),
     self.updateView()
Example #52
0
 def pointsCallback(self, sender):
     points = sender.get()
     setExtensionDefault(self.DEFAULTKEY_POINTS, points)
     self._points = points
     self.updateView()
    def parametersChanged(self, sender=None, glyph=None):
        tickness = int(self.w.tickness.get())
        setExtensionDefault("%s.%s" % (outlinePaletteDefaultKey, "thickness"), tickness)
        contrast = int(self.w.contrast.get())
        setExtensionDefault("%s.%s" % (outlinePaletteDefaultKey, "contrast"), contrast)
        contrastAngle = int(self.w.contrastAngle.get())
        setExtensionDefault("%s.%s" % (outlinePaletteDefaultKey, "contrastAngle"), contrastAngle)
        keepBounds = self.w.keepBounds.get()
        setExtensionDefault("%s.%s" % (outlinePaletteDefaultKey, "keepBounds"), keepBounds)
        preserveComponents = bool(self.w.preserveComponents.get())
        setExtensionDefault("%s.%s" % (outlinePaletteDefaultKey, "preserveComponents"), preserveComponents)

        miterLimit = int(self.w.miterLimit.get())
        if self.w.connectmiterLimit.get():
            miterLimit = tickness
            self.w.miterLimit.set(miterLimit)
        setExtensionDefault("%s.%s" % (outlinePaletteDefaultKey, "miterLimit"), miterLimit)

        corner = self.w.corner.getItems()[self.w.corner.get()]
        setExtensionDefault("%s.%s" % (outlinePaletteDefaultKey, "corner"), corner )

        cap = self.w.cap.getItems()[self.w.cap.get()]
        setExtensionDefault("%s.%s" % (outlinePaletteDefaultKey, "cap"), cap )

        drawOriginal = self.w.addOriginal.get()
        setExtensionDefault("%s.%s" % (outlinePaletteDefaultKey, "addOriginal"), drawOriginal)

        drawInner = self.w.addInner.get()
        setExtensionDefault("%s.%s" % (outlinePaletteDefaultKey, "addLeft"), drawInner)

        drawOuter = self.w.addOuter.get()
        setExtensionDefault("%s.%s" % (outlinePaletteDefaultKey, "addRight"), drawOuter)

        self.w.ticknessText.set("%i" % tickness)
        self.w.contrastText.set("%i" % contrast)
        self.w.contrastAngleText.set("%i" % contrastAngle)
        self.w.miterLimitText.set("%i" % miterLimit)
        self.updateView()
Example #54
0
 def kerningCallback(self, sender):
     kerning = sender.get()
     setExtensionDefault(self.DEFAULTKEY_KERNING, kerning)
     self._kerning = kerning
     self.updateView()
 def useCapCallback(self, sender):
     value = sender.get()
     setExtensionDefault("%s.%s" % (outlinePaletteDefaultKey, "closeOpenPath"), value)
     self.w.cap.enable(value)
     self.parametersChanged(sender)
 def connectmiterLimit(self, sender):
     setExtensionDefault("%s.%s" % (outlinePaletteDefaultKey, "connectmiterLimit"), sender.get())
     value = not sender.get()
     self.w.miterLimit.enable(value)
     self.w.miterLimitText.enable(value)
     self.parametersChanged(sender)
 def save(self):
     setExtensionDefaultColor(_fillColorDefaultKey, self.fillColor)
     setExtensionDefaultColor(_strokeColorDefaultKey, self.strokeColor)
     setExtensionDefault(_showPreviewDefaultKey, self.showPreview)
     setExtensionDefault(_dataDefaultKey, self.data)
Example #58
0
 def floatingCallback(self, sender):
     floating = sender.get()
     setExtensionDefault(self.DEFAULTKEY_FLOATING, floating)
     self._floating = floating
     self.setWindowLevel()
Example #59
0
 def resetSettingsCallback(self, sender):
     drawing = True
     fill = True
     fillColor = self.FALLBACK_FILLCOLOR
     stroke = True
     strokeColor = self.FALLBACK_STROKECOLOR
     points = True
     pointsColor = self.FALLBACK_POINTSCOLOR
     alignment = 0
     kerning = True
     floating = True
     
     setExtensionDefault(self.DEFAULTKEY_DRAW, drawing)
     setExtensionDefault(self.DEFAULTKEY_FILL, fill)
     setExtensionDefaultColor(self.DEFAULTKEY_FILLCOLOR, fillColor)
     setExtensionDefault(self.DEFAULTKEY_STROKE, stroke)
     setExtensionDefaultColor(self.DEFAULTKEY_STROKECOLOR, strokeColor)
     setExtensionDefault(self.DEFAULTKEY_POINTS, points)
     setExtensionDefaultColor(self.DEFAULTKEY_POINTSCOLOR, pointsColor)
     setExtensionDefault(self.DEFAULTKEY_ALIGNMENT, alignment)
     setExtensionDefault(self.DEFAULTKEY_KERNING, kerning)
     setExtensionDefault(self.DEFAULTKEY_FLOATING, floating)
     
     self.w.draw.set(drawing)
     self.w.fill.set(fill)
     self.w.fillColor.set(fillColor)
     self.w.stroke.set(stroke)
     self.w.strokeColor.set(strokeColor)
     self.w.points.set(points)
     self.w.pointsColor.set(strokeColor)
     self.w.alignment.set(alignment)
     self.w.kerning.set(kerning)
     self.w.floating.set(floating)
     
     self._drawing = drawing
     self._fill = fill
     self._fillColor = fillColor
     self._stroke = stroke
     self._strokeColor = strokeColor
     self._points = points
     self._pointsColor = strokeColor
     self._alignment = alignment
     self._kerning = kerning
     self._floating = floating
     
     self.updateView()