void ExtractLocalStylesToNewClass(string className) { PreAddStyleClass(className); // Create new selector in main StyleSheet. var selectorString = "." + className; var mainStyleSheet = m_PaneWindow.document.mainStyleSheet; var selectorsRootElement = BuilderSharedStyles.GetSelectorContainerElement(m_Selection.documentElement); var newSelector = BuilderSharedStyles.CreateNewSelector(selectorsRootElement, mainStyleSheet, selectorString); // Transfer all properties from inline styles rule to new selector. mainStyleSheet.TransferRulePropertiesToSelector( newSelector, m_Inspector.styleSheet, m_Inspector.currentRule); // Update VisualTreeAsset. BuilderAssetUtilities.AddStyleClassToElementInAsset( m_PaneWindow.document, currentVisualElement, className); // Overwrite Undo Message. Undo.RegisterCompleteObjectUndo( new Object[] { m_PaneWindow.document.visualTreeAsset, m_PaneWindow.document.mainStyleSheet }, BuilderConstants.CreateStyleClassUndoMessage); // We actually want to get the notification back and refresh ourselves. m_Selection.NotifyOfStylingChange(null); m_Selection.NotifyOfHierarchyChange(null, currentVisualElement); }
void AddStyleClass(string className) { PreAddStyleClass(className); // Update VisualTreeAsset. BuilderAssetUtilities.AddStyleClassToElementInAsset( m_PaneWindow.document, currentVisualElement, className); // We actually want to get the notification back and refresh ourselves. m_Selection.NotifyOfHierarchyChange(null); m_Selection.NotifyOfStylingChange(null); }
protected override void PerformAction(VisualElement destination, DestinationPane pane, int index = -1) { if (BuilderSharedStyles.IsDocumentElement(destination)) { return; } var className = m_ClassNameBeingDragged.TrimStart('.'); destination.AddToClassList(className); // Update VisualTreeAsset. BuilderAssetUtilities.AddStyleClassToElementInAsset( paneWindow.document, destination, className); selection.NotifyOfHierarchyChange(null); selection.NotifyOfStylingChange(null); }
void ExtractLocalStylesToNewClass(string className) { // Get StyleSheet. var mainStyleSheet = m_PaneWindow.document.activeStyleSheet; if (mainStyleSheet == null) { var option = BuilderDialogsUtility.DisplayDialogComplex( BuilderConstants.ExtractInlineStylesNoUSSDialogTitle, BuilderConstants.ExtractInlineStylesNoUSSDialogMessage, BuilderConstants.ExtractInlineStylesNoUSSDialogNewUSSOption, BuilderConstants.ExtractInlineStylesNoUSSDialogExistingUSSOption, BuilderConstants.DialogCancelOption); switch (option) { // New case 0: if (!BuilderStyleSheetsUtilities.CreateNewUSSAsset(m_PaneWindow)) { return; } break; // Existing case 1: if (!BuilderStyleSheetsUtilities.AddExistingUSSToAsset(m_PaneWindow)) { return; } break; // Cancel case 2: return; } mainStyleSheet = m_PaneWindow.document.activeStyleSheet; } PreAddStyleClass(className); // Create new selector in main StyleSheet. var selectorString = BuilderConstants.UssSelectorClassNameSymbol + className; var selectorsRootElement = BuilderSharedStyles.GetSelectorContainerElement(m_Selection.documentElement); var newSelector = BuilderSharedStyles.CreateNewSelector(selectorsRootElement, mainStyleSheet, selectorString); // Transfer all properties from inline styles rule to new selector. mainStyleSheet.TransferRulePropertiesToSelector( newSelector, m_Inspector.styleSheet, m_Inspector.currentRule); // Update VisualTreeAsset. BuilderAssetUtilities.AddStyleClassToElementInAsset( m_PaneWindow.document, currentVisualElement, className); // Overwrite Undo Message. Undo.RegisterCompleteObjectUndo( new Object[] { m_PaneWindow.document.visualTreeAsset, mainStyleSheet }, BuilderConstants.CreateStyleClassUndoMessage); // We actually want to get the notification back and refresh ourselves. m_Selection.NotifyOfStylingChange(null); m_Selection.NotifyOfHierarchyChange(null, currentVisualElement); }