mirror of
https://github.com/atom/atom.git
synced 2026-02-19 02:44:29 -05:00
Add sourcePath parameter to StyleManager::addStyleSheet
This commit is contained in:
@@ -5,6 +5,7 @@ class StyleManager
|
||||
constructor: ->
|
||||
@emitter = new Emitter
|
||||
@styleElements = []
|
||||
@styleElementsBySourcePath = {}
|
||||
|
||||
onDidAddStyleSheet: (callback) ->
|
||||
@emitter.on 'did-add-style-sheet', callback
|
||||
@@ -12,19 +13,35 @@ class StyleManager
|
||||
onDidRemoveStyleSheet: (callback) ->
|
||||
@emitter.on 'did-remove-style-sheet', callback
|
||||
|
||||
onDidUpdateStyleSheet: (callback) ->
|
||||
@emitter.on 'did-update-style-sheet', callback
|
||||
|
||||
getStyleElements: ->
|
||||
@styleElements.slice()
|
||||
|
||||
addStyleSheet: (source) ->
|
||||
styleElement = document.createElement('style')
|
||||
addStyleSheet: (source, params) ->
|
||||
sourcePath = params?.sourcePath
|
||||
if sourcePath? and styleElement = @styleElementsBySourcePath[sourcePath]
|
||||
updated = true
|
||||
else
|
||||
styleElement = document.createElement('style')
|
||||
|
||||
styleElement.textContent = source
|
||||
|
||||
@styleElements.push(styleElement)
|
||||
@emitter.emit 'did-add-style-sheet', {styleElement}
|
||||
@styleElementsBySourcePath[sourcePath] ?= styleElement if sourcePath?
|
||||
|
||||
new Disposable => @removeStyleElement(styleElement)
|
||||
if updated
|
||||
@emitter.emit 'did-update-style-sheet', {styleElement, sourcePath}
|
||||
else
|
||||
@emitter.emit 'did-add-style-sheet', {styleElement, sourcePath}
|
||||
|
||||
removeStyleElement: (styleElement) ->
|
||||
new Disposable => @removeStyleElement(styleElement, params)
|
||||
|
||||
removeStyleElement: (styleElement, params) ->
|
||||
index = @styleElements.indexOf(styleElement)
|
||||
unless index is -1
|
||||
@styleElements.splice(index, 1)
|
||||
sourcePath = params?.sourcePath
|
||||
delete @styleElementsBySourcePath[sourcePath] if sourcePath?
|
||||
@emitter.emit 'did-remove-style-sheet', {styleElement}
|
||||
|
||||
Reference in New Issue
Block a user