├── Editor
├── .gitignore
├── app_icon.ico
├── app_icon.png
├── images
│ ├── gui
│ │ ├── bold.png
│ │ ├── copy.png
│ │ ├── cut.png
│ │ ├── find.png
│ │ ├── help.png
│ │ ├── new.png
│ │ ├── open.png
│ │ ├── paste.png
│ │ ├── print.png
│ │ ├── redo.png
│ │ ├── save.png
│ │ ├── undo.png
│ │ ├── delete.png
│ │ ├── italic.png
│ │ ├── license.txt
│ │ ├── overbar.png
│ │ ├── saveas.png
│ │ ├── zoomin.png
│ │ ├── zoomout.png
│ │ ├── properties.png
│ │ ├── settings.png
│ │ ├── underbar.png
│ │ ├── underline.png
│ │ ├── information.png
│ │ ├── exitfullscreen.png
│ │ └── strikethrough.png
│ ├── commands
│ │ ├── box
│ │ │ ├── all.png
│ │ │ ├── leftTop.png
│ │ │ ├── rightTop.png
│ │ │ ├── leftBottom.png
│ │ │ └── rightBottom.png
│ │ ├── matrix
│ │ │ ├── row.png
│ │ │ ├── 2Square.png
│ │ │ ├── 2cellRow.png
│ │ │ ├── 3Square.png
│ │ │ ├── 3cellRow.png
│ │ │ ├── column.png
│ │ │ ├── custom.png
│ │ │ ├── 2cellColumn.png
│ │ │ └── 3cellColumn.png
│ │ ├── subSuper
│ │ │ ├── Sub.png
│ │ │ ├── Super.png
│ │ │ ├── SubLeft.png
│ │ │ ├── SubSuper.png
│ │ │ ├── SuperLeft.png
│ │ │ └── SubSuperLeft.png
│ │ ├── brackets
│ │ │ ├── Floor.png
│ │ │ ├── AngleBar.png
│ │ │ ├── BarAngle.png
│ │ │ ├── Ceiling.png
│ │ │ ├── LeftBar.png
│ │ │ ├── RightBar.png
│ │ │ ├── DoubleBar.png
│ │ │ ├── LeftAngle.png
│ │ │ ├── Parentheses.png
│ │ │ ├── RightAngle.png
│ │ │ ├── SingleBar.png
│ │ │ ├── SquareBar.png
│ │ │ ├── CurlyBracket.png
│ │ │ ├── LeftDoubleBar.png
│ │ │ ├── LeftSquareBar.png
│ │ │ ├── SquareBracket.png
│ │ │ ├── LeftCurlyBracket.png
│ │ │ ├── LeftParenthesis.png
│ │ │ ├── PointingAngles.png
│ │ │ ├── RightDoubleBar.png
│ │ │ ├── RightParenthesis.png
│ │ │ ├── RightSquareBar.png
│ │ │ ├── TopCurlyBracket.png
│ │ │ ├── TopSquareBracket.png
│ │ │ ├── BottomCurlyBracket.png
│ │ │ ├── LeftSquareBracket.png
│ │ │ ├── ParenthesisSquare.png
│ │ │ ├── RightCurlyBracket.png
│ │ │ ├── RightSquareBracket.png
│ │ │ ├── SquareParenthesis.png
│ │ │ ├── BottomSquareBracket.png
│ │ │ ├── DoubleArrowBarBracket.png
│ │ │ ├── LeftLeftSquareBracket.png
│ │ │ ├── RightLeftSquareBracket.png
│ │ │ └── RightRightSquareBracket.png
│ │ ├── divAndRoots
│ │ │ ├── Div.png
│ │ │ ├── nRoot.png
│ │ │ ├── DivHoriz.png
│ │ │ ├── DivMath.png
│ │ │ ├── DivSlant.png
│ │ │ ├── SmallDiv.png
│ │ │ ├── SqRoot.png
│ │ │ ├── DivDoubleBar.png
│ │ │ ├── DivTripleBar.png
│ │ │ ├── SmallDivHoriz.png
│ │ │ ├── SmallDivSlant.png
│ │ │ ├── DivMathInverted.png
│ │ │ ├── DivMathWithTop.png
│ │ │ ├── DivTriangleFixed.png
│ │ │ ├── DivTriangleExpanding.png
│ │ │ └── DivMathInvertedWithBottom.png
│ │ ├── composite
│ │ │ ├── BigSub.png
│ │ │ ├── BigTop.png
│ │ │ ├── BigBottom.png
│ │ │ ├── BigSuper.png
│ │ │ ├── BigBottomTop.png
│ │ │ ├── BigSubSuper.png
│ │ │ ├── CompositeTop.png
│ │ │ ├── CompositeBottom.png
│ │ │ └── CompositeBottomTop.png
│ │ ├── sumsProducts
│ │ │ ├── sum.png
│ │ │ ├── product.png
│ │ │ ├── sumSub.png
│ │ │ ├── union.png
│ │ │ ├── coProduct.png
│ │ │ ├── sumBottom.png
│ │ │ ├── unionSub.png
│ │ │ ├── coProductSub.png
│ │ │ ├── intersection.png
│ │ │ ├── productSub.png
│ │ │ ├── sumBottomTop.png
│ │ │ ├── sumSubSuper.png
│ │ │ ├── unionBottom.png
│ │ │ ├── productBottom.png
│ │ │ ├── unionBottomTop.png
│ │ │ ├── unionSubSuper.png
│ │ │ ├── ProductBottomTop.png
│ │ │ ├── coProductBottom.png
│ │ │ ├── coProductSubSuper.png
│ │ │ ├── intersectionSub.png
│ │ │ ├── productSubSuper.png
│ │ │ ├── coProductBottomTop.png
│ │ │ ├── intersectionBottom.png
│ │ │ ├── intersectionBottomTop.png
│ │ │ └── intersectionSubSuper.png
│ │ ├── integrals
│ │ │ ├── Clock
│ │ │ │ ├── Sub.png
│ │ │ │ ├── Bottom.png
│ │ │ │ ├── Simple.png
│ │ │ │ ├── BottomTop.png
│ │ │ │ └── SubSuper.png
│ │ │ ├── Double
│ │ │ │ ├── Sub.png
│ │ │ │ ├── Bottom.png
│ │ │ │ ├── Simple.png
│ │ │ │ ├── SubSuper.png
│ │ │ │ └── BottomTop.png
│ │ │ ├── Single
│ │ │ │ ├── Sub.png
│ │ │ │ ├── Bottom.png
│ │ │ │ ├── Simple.png
│ │ │ │ ├── SubSuper.png
│ │ │ │ └── BottomTop.png
│ │ │ ├── Triple
│ │ │ │ ├── Sub.png
│ │ │ │ ├── Bottom.png
│ │ │ │ ├── Simple.png
│ │ │ │ ├── SubSuper.png
│ │ │ │ └── BottomTop.png
│ │ │ ├── volume
│ │ │ │ ├── Sub.png
│ │ │ │ ├── Bottom.png
│ │ │ │ ├── Simple.png
│ │ │ │ ├── SubSuper.png
│ │ │ │ └── BottomTop.png
│ │ │ ├── Contour
│ │ │ │ ├── Sub.png
│ │ │ │ ├── Bottom.png
│ │ │ │ ├── Simple.png
│ │ │ │ ├── BottomTop.png
│ │ │ │ └── SubSuper.png
│ │ │ ├── Surface
│ │ │ │ ├── Sub.png
│ │ │ │ ├── Bottom.png
│ │ │ │ ├── Simple.png
│ │ │ │ ├── BottomTop.png
│ │ │ │ └── SubSuper.png
│ │ │ └── AntiClock
│ │ │ │ ├── Sub.png
│ │ │ │ ├── Bottom.png
│ │ │ │ ├── Simple.png
│ │ │ │ ├── BottomTop.png
│ │ │ │ └── SubSuper.png
│ │ └── decorated
│ │ │ ├── equation
│ │ │ ├── hat.png
│ │ │ ├── cross.png
│ │ │ ├── tilde.png
│ │ │ ├── topBar.png
│ │ │ ├── tortoise.png
│ │ │ ├── bottomBar.png
│ │ │ ├── leftCross.png
│ │ │ ├── parenthesis.png
│ │ │ ├── rightCross.png
│ │ │ ├── strikeThrough.png
│ │ │ ├── topDoubleBar.png
│ │ │ ├── topLeftArrow.png
│ │ │ ├── topRightArrow.png
│ │ │ ├── bottomDoubleBar.png
│ │ │ ├── bottomLeftArrow.png
│ │ │ ├── bottomRightArrow.png
│ │ │ ├── topDoubleArrow.png
│ │ │ ├── topLeftHalfArrow.png
│ │ │ ├── bottomDoubleArrow.png
│ │ │ ├── topRightHalfArrow.png
│ │ │ ├── bottomLeftHalfArrow.png
│ │ │ └── bottomRightHalfArrow.png
│ │ │ ├── arrow
│ │ │ ├── DoubleTop.png
│ │ │ ├── LeftTop.png
│ │ │ ├── RightTop.png
│ │ │ ├── LeftBottom.png
│ │ │ ├── RightBottom.png
│ │ │ ├── DoubleBottom.png
│ │ │ ├── LeftBottomTop.png
│ │ │ ├── RightBottomTop.png
│ │ │ ├── RightLeftTop.png
│ │ │ ├── DoubleBottomTop.png
│ │ │ ├── RightLeftBottom.png
│ │ │ ├── RightLeftHarpTop.png
│ │ │ ├── RightLeftBottomTop.png
│ │ │ ├── RightLeftHarpBottom.png
│ │ │ ├── RightSmallLeftTop.png
│ │ │ ├── SmallRightLeftTop.png
│ │ │ ├── RightSmallLeftBottom.png
│ │ │ ├── RightSmallLeftHarpTop.png
│ │ │ ├── SmallRightLeftBottom.png
│ │ │ ├── SmallRightLeftHarpTop.png
│ │ │ ├── RightLeftHarpBottomTop.png
│ │ │ ├── RightSmallLeftBottomTop.png
│ │ │ ├── RightSmallLeftHarpBottom.png
│ │ │ ├── SmallRightLeftBottomTop.png
│ │ │ ├── SmallRightLeftHarpBottom.png
│ │ │ ├── RightSmallLeftHarpBottomTop.png
│ │ │ └── SmallRightLeftHarpBottomTop.png
│ │ │ └── character
│ │ │ ├── Cross.png
│ │ │ ├── None.png
│ │ │ ├── Prime.png
│ │ │ ├── TopBar.png
│ │ │ ├── TopDDot.png
│ │ │ ├── TopDot.png
│ │ │ ├── TopRing.png
│ │ │ ├── TopTDot.png
│ │ │ ├── BottomBar.png
│ │ │ ├── BottomDDot.png
│ │ │ ├── BottomDot.png
│ │ │ ├── BottomTDot.png
│ │ │ ├── LeftCross.png
│ │ │ ├── RightCross.png
│ │ │ ├── TopBreve.png
│ │ │ ├── TopCaron.png
│ │ │ ├── TopFourDot.png
│ │ │ ├── TopTilde.png
│ │ │ ├── AcuteAccent.png
│ │ │ ├── BottomBreve.png
│ │ │ ├── BottomTilde.png
│ │ │ ├── DoublePrime.png
│ │ │ ├── GraveAccent.png
│ │ │ ├── ReversePrime.png
│ │ │ ├── TopLeftArrow.png
│ │ │ ├── TopRightRing.png
│ │ │ ├── TriplePrime.png
│ │ │ ├── BottomFourDot.png
│ │ │ ├── BottomLeftArrow.png
│ │ │ ├── StrikeThrough.png
│ │ │ ├── TopCircumflex.png
│ │ │ ├── TopDoubleArrow.png
│ │ │ ├── TopLeftHarpoon.png
│ │ │ ├── TopRightArrow.png
│ │ │ ├── TopRightHarpoon.png
│ │ │ ├── VStrikeThrough.png
│ │ │ ├── BottomDoubleArrow.png
│ │ │ ├── BottomLeftHarpoon.png
│ │ │ ├── BottomRightArrow.png
│ │ │ ├── LeftUprightCross.png
│ │ │ ├── RightUprightCross.png
│ │ │ ├── TopInvertedBreve.png
│ │ │ ├── BottomInvertedBreve.png
│ │ │ ├── BottomRightHarpoon.png
│ │ │ ├── DoubleStrikeThrough.png
│ │ │ ├── ReverseDoublePrime.png
│ │ │ └── VDoubleStrikeThrough.png
│ └── mathbuttons
│ │ ├── arrows.png
│ │ ├── boxes.png
│ │ ├── divroot.png
│ │ ├── matrix.png
│ │ ├── symbols.png
│ │ ├── brackets.png
│ │ ├── composite.png
│ │ ├── integrals.png
│ │ ├── subsuper.png
│ │ ├── greekcapital.png
│ │ ├── greeksmall.png
│ │ ├── sumproduct.png
│ │ ├── arrowEquation.png
│ │ ├── decoratedEquation.png
│ │ └── decoratedCharacter.png
├── STIX
│ ├── STIXGeneral-Bold.otf
│ ├── STIXGeneral-Italic.otf
│ ├── STIXVariants-Bold.otf
│ ├── STIXGeneral-Regular.otf
│ ├── STIXIntegralsD-Bold.otf
│ ├── STIXIntegralsSm-Bold.otf
│ ├── STIXIntegralsUp-Bold.otf
│ ├── STIXIntegralsUpD-Bold.otf
│ ├── STIXNonUnicode-Bold.otf
│ ├── STIXNonUnicode-Italic.otf
│ ├── STIXSizeFourSym-Bold.otf
│ ├── STIXSizeOneSym-Bold.otf
│ ├── STIXSizeThreeSym-Bold.otf
│ ├── STIXSizeTwoSym-Bold.otf
│ ├── STIXVariants-Regular.otf
│ ├── STIX Font License 2010.pdf
│ ├── STIXGeneral-BoldItalic.otf
│ ├── STIXIntegralsD-Regular.otf
│ ├── STIXIntegralsSm-Regular.otf
│ ├── STIXIntegralsUp-Regular.otf
│ ├── STIXIntegralsUpSm-Bold.otf
│ ├── STIXNonUnicode-Regular.otf
│ ├── STIXSizeFiveSym-Regular.otf
│ ├── STIXSizeFourSym-Regular.otf
│ ├── STIXSizeOneSym-Regular.otf
│ ├── STIXSizeTwoSym-Regular.otf
│ ├── STIXIntegralsUpD-Regular.otf
│ ├── STIXIntegralsUpSm-Regular.otf
│ ├── STIXNonUnicode-BoldItalic.otf
│ └── STIXSizeThreeSym-Regular.otf
├── FodyWeavers.xml
├── equations
│ ├── Common
│ │ ├── MathEditorData.cs
│ │ ├── UndoRedo
│ │ │ ├── ISupportsUndo.cs
│ │ │ ├── UndoEventArgs.cs
│ │ │ ├── EquationAction.cs
│ │ │ ├── Text
│ │ │ │ ├── TextFormatAction.cs
│ │ │ │ ├── ModeChangeAction.cs
│ │ │ │ ├── DecorationAction.cs
│ │ │ │ ├── TextAction.cs
│ │ │ │ └── TextRemoveAction.cs
│ │ │ ├── Row
│ │ │ │ ├── RowAction.cs
│ │ │ │ ├── EquationRowFormatAction.cs
│ │ │ │ ├── RowRemoveAction.cs
│ │ │ │ └── EquationRowPasteAction.cs
│ │ │ └── RowContainer
│ │ │ │ ├── RowContainerRemoveAction.cs
│ │ │ │ ├── RowContainerAction.cs
│ │ │ │ ├── RowContainerFormatAction.cs
│ │ │ │ ├── RowContainerTextAction.cs
│ │ │ │ └── RowContainerPasteAction.cs
│ │ ├── CopyDataObject.cs
│ │ ├── DrawingContextHelper.cs
│ │ ├── FunctionNames.cs
│ │ ├── StaticText.cs
│ │ └── PenManager.cs
│ ├── HorizontalBracket
│ │ ├── TopBracket.cs
│ │ └── BottomBracket.cs
│ ├── Division
│ │ ├── DivMathInverted.cs
│ │ ├── DivMathWithTop.cs
│ │ ├── DivMathWithBottom.cs
│ │ ├── DivisionsMisc.cs
│ │ ├── DivTriangleSign.cs
│ │ ├── DivMathSign.cs
│ │ ├── DivMathWithOuterBase.cs
│ │ ├── DivisionFactory.cs
│ │ ├── DivSlanted.cs
│ │ ├── DivMath.cs
│ │ └── DivHorizontal.cs
│ ├── Bracket
│ │ ├── LeftBracket.cs
│ │ ├── RightBracket.cs
│ │ ├── LeftRightBracket.cs
│ │ └── Bracket.cs
│ ├── Composite
│ │ ├── CompositeFactory.cs
│ │ ├── CompositeBase.cs
│ │ └── BigCompositeFactory.cs
│ ├── Text
│ │ ├── CharacterDecorationInfo.cs
│ │ └── TextFormat.cs
│ ├── SignComposite
│ │ ├── SignCompositeFactory.cs
│ │ └── SignSimple.cs
│ ├── SubSuper
│ │ ├── SubSuperBase.cs
│ │ ├── Super.cs
│ │ └── Sub.cs
│ └── Root
│ │ ├── SquareRoot.cs
│ │ └── RadicalSign.cs
├── Properties
│ ├── Settings.settings
│ ├── AssemblyInfo.cs
│ ├── Settings.Designer.cs
│ └── Resources.Designer.cs
├── common
│ ├── CommandDetails.cs
│ ├── EditorModeToBoolConverter.cs
│ ├── EditorModeToVisibilityConverter.cs
│ ├── AutoGrayableImage.cs
│ └── MouseWheelGesture.cs
├── app.config
├── ButtonPanel.xaml
├── App.xaml
├── AboutWindow.xaml.cs
├── App.xaml.cs
├── CustomZoomWindow.xaml
├── BrowserHelper.cs
├── MatrixInputWindow.xaml.cs
├── EditorControl.xaml
├── Editor.csproj
├── CodepointWindow.xaml
├── CharacterToolBar.xaml
├── CustomZoomWindow.xaml.cs
├── SettingsWindow.xaml.cs
├── MatrixInputWindow.xaml
├── ButtonPanel.xaml.cs
├── AboutWindow.xaml
└── HistoryToolBar.xaml.cs
├── Directory.packages.props
├── README.md
├── Directory.Build.props
├── LICENSE.md
└── MathiVersity.sln
/Editor/.gitignore:
--------------------------------------------------------------------------------
1 | /obj/
2 | /bin/
3 |
--------------------------------------------------------------------------------
/Editor/app_icon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/app_icon.ico
--------------------------------------------------------------------------------
/Editor/app_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/app_icon.png
--------------------------------------------------------------------------------
/Editor/images/gui/bold.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/gui/bold.png
--------------------------------------------------------------------------------
/Editor/images/gui/copy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/gui/copy.png
--------------------------------------------------------------------------------
/Editor/images/gui/cut.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/gui/cut.png
--------------------------------------------------------------------------------
/Editor/images/gui/find.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/gui/find.png
--------------------------------------------------------------------------------
/Editor/images/gui/help.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/gui/help.png
--------------------------------------------------------------------------------
/Editor/images/gui/new.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/gui/new.png
--------------------------------------------------------------------------------
/Editor/images/gui/open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/gui/open.png
--------------------------------------------------------------------------------
/Editor/images/gui/paste.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/gui/paste.png
--------------------------------------------------------------------------------
/Editor/images/gui/print.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/gui/print.png
--------------------------------------------------------------------------------
/Editor/images/gui/redo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/gui/redo.png
--------------------------------------------------------------------------------
/Editor/images/gui/save.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/gui/save.png
--------------------------------------------------------------------------------
/Editor/images/gui/undo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/gui/undo.png
--------------------------------------------------------------------------------
/Editor/images/gui/delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/gui/delete.png
--------------------------------------------------------------------------------
/Editor/images/gui/italic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/gui/italic.png
--------------------------------------------------------------------------------
/Editor/images/gui/license.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/gui/license.txt
--------------------------------------------------------------------------------
/Editor/images/gui/overbar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/gui/overbar.png
--------------------------------------------------------------------------------
/Editor/images/gui/saveas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/gui/saveas.png
--------------------------------------------------------------------------------
/Editor/images/gui/zoomin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/gui/zoomin.png
--------------------------------------------------------------------------------
/Editor/images/gui/zoomout.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/gui/zoomout.png
--------------------------------------------------------------------------------
/Editor/STIX/STIXGeneral-Bold.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/STIX/STIXGeneral-Bold.otf
--------------------------------------------------------------------------------
/Editor/images/gui/properties.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/gui/properties.png
--------------------------------------------------------------------------------
/Editor/images/gui/settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/gui/settings.png
--------------------------------------------------------------------------------
/Editor/images/gui/underbar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/gui/underbar.png
--------------------------------------------------------------------------------
/Editor/images/gui/underline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/gui/underline.png
--------------------------------------------------------------------------------
/Editor/STIX/STIXGeneral-Italic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/STIX/STIXGeneral-Italic.otf
--------------------------------------------------------------------------------
/Editor/STIX/STIXVariants-Bold.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/STIX/STIXVariants-Bold.otf
--------------------------------------------------------------------------------
/Editor/images/commands/box/all.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/box/all.png
--------------------------------------------------------------------------------
/Editor/images/gui/information.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/gui/information.png
--------------------------------------------------------------------------------
/Editor/STIX/STIXGeneral-Regular.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/STIX/STIXGeneral-Regular.otf
--------------------------------------------------------------------------------
/Editor/STIX/STIXIntegralsD-Bold.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/STIX/STIXIntegralsD-Bold.otf
--------------------------------------------------------------------------------
/Editor/STIX/STIXIntegralsSm-Bold.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/STIX/STIXIntegralsSm-Bold.otf
--------------------------------------------------------------------------------
/Editor/STIX/STIXIntegralsUp-Bold.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/STIX/STIXIntegralsUp-Bold.otf
--------------------------------------------------------------------------------
/Editor/STIX/STIXIntegralsUpD-Bold.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/STIX/STIXIntegralsUpD-Bold.otf
--------------------------------------------------------------------------------
/Editor/STIX/STIXNonUnicode-Bold.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/STIX/STIXNonUnicode-Bold.otf
--------------------------------------------------------------------------------
/Editor/STIX/STIXNonUnicode-Italic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/STIX/STIXNonUnicode-Italic.otf
--------------------------------------------------------------------------------
/Editor/STIX/STIXSizeFourSym-Bold.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/STIX/STIXSizeFourSym-Bold.otf
--------------------------------------------------------------------------------
/Editor/STIX/STIXSizeOneSym-Bold.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/STIX/STIXSizeOneSym-Bold.otf
--------------------------------------------------------------------------------
/Editor/STIX/STIXSizeThreeSym-Bold.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/STIX/STIXSizeThreeSym-Bold.otf
--------------------------------------------------------------------------------
/Editor/STIX/STIXSizeTwoSym-Bold.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/STIX/STIXSizeTwoSym-Bold.otf
--------------------------------------------------------------------------------
/Editor/STIX/STIXVariants-Regular.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/STIX/STIXVariants-Regular.otf
--------------------------------------------------------------------------------
/Editor/images/commands/matrix/row.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/matrix/row.png
--------------------------------------------------------------------------------
/Editor/images/gui/exitfullscreen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/gui/exitfullscreen.png
--------------------------------------------------------------------------------
/Editor/images/gui/strikethrough.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/gui/strikethrough.png
--------------------------------------------------------------------------------
/Editor/images/mathbuttons/arrows.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/mathbuttons/arrows.png
--------------------------------------------------------------------------------
/Editor/images/mathbuttons/boxes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/mathbuttons/boxes.png
--------------------------------------------------------------------------------
/Editor/images/mathbuttons/divroot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/mathbuttons/divroot.png
--------------------------------------------------------------------------------
/Editor/images/mathbuttons/matrix.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/mathbuttons/matrix.png
--------------------------------------------------------------------------------
/Editor/images/mathbuttons/symbols.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/mathbuttons/symbols.png
--------------------------------------------------------------------------------
/Editor/STIX/STIX Font License 2010.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/STIX/STIX Font License 2010.pdf
--------------------------------------------------------------------------------
/Editor/STIX/STIXGeneral-BoldItalic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/STIX/STIXGeneral-BoldItalic.otf
--------------------------------------------------------------------------------
/Editor/STIX/STIXIntegralsD-Regular.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/STIX/STIXIntegralsD-Regular.otf
--------------------------------------------------------------------------------
/Editor/STIX/STIXIntegralsSm-Regular.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/STIX/STIXIntegralsSm-Regular.otf
--------------------------------------------------------------------------------
/Editor/STIX/STIXIntegralsUp-Regular.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/STIX/STIXIntegralsUp-Regular.otf
--------------------------------------------------------------------------------
/Editor/STIX/STIXIntegralsUpSm-Bold.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/STIX/STIXIntegralsUpSm-Bold.otf
--------------------------------------------------------------------------------
/Editor/STIX/STIXNonUnicode-Regular.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/STIX/STIXNonUnicode-Regular.otf
--------------------------------------------------------------------------------
/Editor/STIX/STIXSizeFiveSym-Regular.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/STIX/STIXSizeFiveSym-Regular.otf
--------------------------------------------------------------------------------
/Editor/STIX/STIXSizeFourSym-Regular.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/STIX/STIXSizeFourSym-Regular.otf
--------------------------------------------------------------------------------
/Editor/STIX/STIXSizeOneSym-Regular.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/STIX/STIXSizeOneSym-Regular.otf
--------------------------------------------------------------------------------
/Editor/STIX/STIXSizeTwoSym-Regular.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/STIX/STIXSizeTwoSym-Regular.otf
--------------------------------------------------------------------------------
/Editor/images/commands/box/leftTop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/box/leftTop.png
--------------------------------------------------------------------------------
/Editor/images/commands/box/rightTop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/box/rightTop.png
--------------------------------------------------------------------------------
/Editor/images/commands/subSuper/Sub.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/subSuper/Sub.png
--------------------------------------------------------------------------------
/Editor/images/mathbuttons/brackets.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/mathbuttons/brackets.png
--------------------------------------------------------------------------------
/Editor/images/mathbuttons/composite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/mathbuttons/composite.png
--------------------------------------------------------------------------------
/Editor/images/mathbuttons/integrals.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/mathbuttons/integrals.png
--------------------------------------------------------------------------------
/Editor/images/mathbuttons/subsuper.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/mathbuttons/subsuper.png
--------------------------------------------------------------------------------
/Editor/STIX/STIXIntegralsUpD-Regular.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/STIX/STIXIntegralsUpD-Regular.otf
--------------------------------------------------------------------------------
/Editor/STIX/STIXIntegralsUpSm-Regular.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/STIX/STIXIntegralsUpSm-Regular.otf
--------------------------------------------------------------------------------
/Editor/STIX/STIXNonUnicode-BoldItalic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/STIX/STIXNonUnicode-BoldItalic.otf
--------------------------------------------------------------------------------
/Editor/STIX/STIXSizeThreeSym-Regular.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/STIX/STIXSizeThreeSym-Regular.otf
--------------------------------------------------------------------------------
/Editor/images/commands/box/leftBottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/box/leftBottom.png
--------------------------------------------------------------------------------
/Editor/images/commands/box/rightBottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/box/rightBottom.png
--------------------------------------------------------------------------------
/Editor/images/commands/brackets/Floor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/brackets/Floor.png
--------------------------------------------------------------------------------
/Editor/images/commands/divAndRoots/Div.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/divAndRoots/Div.png
--------------------------------------------------------------------------------
/Editor/images/commands/matrix/2Square.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/matrix/2Square.png
--------------------------------------------------------------------------------
/Editor/images/commands/matrix/2cellRow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/matrix/2cellRow.png
--------------------------------------------------------------------------------
/Editor/images/commands/matrix/3Square.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/matrix/3Square.png
--------------------------------------------------------------------------------
/Editor/images/commands/matrix/3cellRow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/matrix/3cellRow.png
--------------------------------------------------------------------------------
/Editor/images/commands/matrix/column.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/matrix/column.png
--------------------------------------------------------------------------------
/Editor/images/commands/matrix/custom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/matrix/custom.png
--------------------------------------------------------------------------------
/Editor/images/commands/subSuper/Super.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/subSuper/Super.png
--------------------------------------------------------------------------------
/Editor/images/mathbuttons/greekcapital.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/mathbuttons/greekcapital.png
--------------------------------------------------------------------------------
/Editor/images/mathbuttons/greeksmall.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/mathbuttons/greeksmall.png
--------------------------------------------------------------------------------
/Editor/images/mathbuttons/sumproduct.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/mathbuttons/sumproduct.png
--------------------------------------------------------------------------------
/Editor/images/commands/brackets/AngleBar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/brackets/AngleBar.png
--------------------------------------------------------------------------------
/Editor/images/commands/brackets/BarAngle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/brackets/BarAngle.png
--------------------------------------------------------------------------------
/Editor/images/commands/brackets/Ceiling.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/brackets/Ceiling.png
--------------------------------------------------------------------------------
/Editor/images/commands/brackets/LeftBar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/brackets/LeftBar.png
--------------------------------------------------------------------------------
/Editor/images/commands/brackets/RightBar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/brackets/RightBar.png
--------------------------------------------------------------------------------
/Editor/images/commands/composite/BigSub.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/composite/BigSub.png
--------------------------------------------------------------------------------
/Editor/images/commands/composite/BigTop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/composite/BigTop.png
--------------------------------------------------------------------------------
/Editor/images/commands/divAndRoots/nRoot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/divAndRoots/nRoot.png
--------------------------------------------------------------------------------
/Editor/images/commands/subSuper/SubLeft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/subSuper/SubLeft.png
--------------------------------------------------------------------------------
/Editor/images/commands/subSuper/SubSuper.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/subSuper/SubSuper.png
--------------------------------------------------------------------------------
/Editor/images/commands/sumsProducts/sum.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/sumsProducts/sum.png
--------------------------------------------------------------------------------
/Editor/images/mathbuttons/arrowEquation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/mathbuttons/arrowEquation.png
--------------------------------------------------------------------------------
/Editor/images/commands/brackets/DoubleBar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/brackets/DoubleBar.png
--------------------------------------------------------------------------------
/Editor/images/commands/brackets/LeftAngle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/brackets/LeftAngle.png
--------------------------------------------------------------------------------
/Editor/images/commands/brackets/Parentheses.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/brackets/Parentheses.png
--------------------------------------------------------------------------------
/Editor/images/commands/brackets/RightAngle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/brackets/RightAngle.png
--------------------------------------------------------------------------------
/Editor/images/commands/brackets/SingleBar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/brackets/SingleBar.png
--------------------------------------------------------------------------------
/Editor/images/commands/brackets/SquareBar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/brackets/SquareBar.png
--------------------------------------------------------------------------------
/Editor/images/commands/composite/BigBottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/composite/BigBottom.png
--------------------------------------------------------------------------------
/Editor/images/commands/composite/BigSuper.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/composite/BigSuper.png
--------------------------------------------------------------------------------
/Editor/images/commands/divAndRoots/DivHoriz.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/divAndRoots/DivHoriz.png
--------------------------------------------------------------------------------
/Editor/images/commands/divAndRoots/DivMath.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/divAndRoots/DivMath.png
--------------------------------------------------------------------------------
/Editor/images/commands/divAndRoots/DivSlant.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/divAndRoots/DivSlant.png
--------------------------------------------------------------------------------
/Editor/images/commands/divAndRoots/SmallDiv.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/divAndRoots/SmallDiv.png
--------------------------------------------------------------------------------
/Editor/images/commands/divAndRoots/SqRoot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/divAndRoots/SqRoot.png
--------------------------------------------------------------------------------
/Editor/images/commands/integrals/Clock/Sub.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/integrals/Clock/Sub.png
--------------------------------------------------------------------------------
/Editor/images/commands/integrals/Double/Sub.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/integrals/Double/Sub.png
--------------------------------------------------------------------------------
/Editor/images/commands/integrals/Single/Sub.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/integrals/Single/Sub.png
--------------------------------------------------------------------------------
/Editor/images/commands/integrals/Triple/Sub.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/integrals/Triple/Sub.png
--------------------------------------------------------------------------------
/Editor/images/commands/integrals/volume/Sub.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/integrals/volume/Sub.png
--------------------------------------------------------------------------------
/Editor/images/commands/matrix/2cellColumn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/matrix/2cellColumn.png
--------------------------------------------------------------------------------
/Editor/images/commands/matrix/3cellColumn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/matrix/3cellColumn.png
--------------------------------------------------------------------------------
/Editor/images/commands/subSuper/SuperLeft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/subSuper/SuperLeft.png
--------------------------------------------------------------------------------
/Editor/images/commands/sumsProducts/product.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/sumsProducts/product.png
--------------------------------------------------------------------------------
/Editor/images/commands/sumsProducts/sumSub.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/sumsProducts/sumSub.png
--------------------------------------------------------------------------------
/Editor/images/commands/sumsProducts/union.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/sumsProducts/union.png
--------------------------------------------------------------------------------
/Editor/images/mathbuttons/decoratedEquation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/mathbuttons/decoratedEquation.png
--------------------------------------------------------------------------------
/Editor/images/commands/brackets/CurlyBracket.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/brackets/CurlyBracket.png
--------------------------------------------------------------------------------
/Editor/images/commands/brackets/LeftDoubleBar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/brackets/LeftDoubleBar.png
--------------------------------------------------------------------------------
/Editor/images/commands/brackets/LeftSquareBar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/brackets/LeftSquareBar.png
--------------------------------------------------------------------------------
/Editor/images/commands/brackets/SquareBracket.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/brackets/SquareBracket.png
--------------------------------------------------------------------------------
/Editor/images/commands/composite/BigBottomTop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/composite/BigBottomTop.png
--------------------------------------------------------------------------------
/Editor/images/commands/composite/BigSubSuper.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/composite/BigSubSuper.png
--------------------------------------------------------------------------------
/Editor/images/commands/composite/CompositeTop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/composite/CompositeTop.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/equation/hat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/equation/hat.png
--------------------------------------------------------------------------------
/Editor/images/commands/integrals/Clock/Bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/integrals/Clock/Bottom.png
--------------------------------------------------------------------------------
/Editor/images/commands/integrals/Clock/Simple.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/integrals/Clock/Simple.png
--------------------------------------------------------------------------------
/Editor/images/commands/integrals/Contour/Sub.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/integrals/Contour/Sub.png
--------------------------------------------------------------------------------
/Editor/images/commands/integrals/Surface/Sub.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/integrals/Surface/Sub.png
--------------------------------------------------------------------------------
/Editor/images/commands/subSuper/SubSuperLeft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/subSuper/SubSuperLeft.png
--------------------------------------------------------------------------------
/Editor/images/commands/sumsProducts/coProduct.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/sumsProducts/coProduct.png
--------------------------------------------------------------------------------
/Editor/images/commands/sumsProducts/sumBottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/sumsProducts/sumBottom.png
--------------------------------------------------------------------------------
/Editor/images/commands/sumsProducts/unionSub.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/sumsProducts/unionSub.png
--------------------------------------------------------------------------------
/Editor/images/mathbuttons/decoratedCharacter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/mathbuttons/decoratedCharacter.png
--------------------------------------------------------------------------------
/Editor/images/commands/brackets/LeftCurlyBracket.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/brackets/LeftCurlyBracket.png
--------------------------------------------------------------------------------
/Editor/images/commands/brackets/LeftParenthesis.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/brackets/LeftParenthesis.png
--------------------------------------------------------------------------------
/Editor/images/commands/brackets/PointingAngles.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/brackets/PointingAngles.png
--------------------------------------------------------------------------------
/Editor/images/commands/brackets/RightDoubleBar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/brackets/RightDoubleBar.png
--------------------------------------------------------------------------------
/Editor/images/commands/brackets/RightParenthesis.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/brackets/RightParenthesis.png
--------------------------------------------------------------------------------
/Editor/images/commands/brackets/RightSquareBar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/brackets/RightSquareBar.png
--------------------------------------------------------------------------------
/Editor/images/commands/brackets/TopCurlyBracket.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/brackets/TopCurlyBracket.png
--------------------------------------------------------------------------------
/Editor/images/commands/brackets/TopSquareBracket.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/brackets/TopSquareBracket.png
--------------------------------------------------------------------------------
/Editor/images/commands/composite/CompositeBottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/composite/CompositeBottom.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/arrow/DoubleTop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/arrow/DoubleTop.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/arrow/LeftTop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/arrow/LeftTop.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/arrow/RightTop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/arrow/RightTop.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/Cross.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/Cross.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/None.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/None.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/Prime.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/Prime.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/equation/cross.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/equation/cross.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/equation/tilde.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/equation/tilde.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/equation/topBar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/equation/topBar.png
--------------------------------------------------------------------------------
/Editor/images/commands/divAndRoots/DivDoubleBar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/divAndRoots/DivDoubleBar.png
--------------------------------------------------------------------------------
/Editor/images/commands/divAndRoots/DivTripleBar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/divAndRoots/DivTripleBar.png
--------------------------------------------------------------------------------
/Editor/images/commands/divAndRoots/SmallDivHoriz.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/divAndRoots/SmallDivHoriz.png
--------------------------------------------------------------------------------
/Editor/images/commands/divAndRoots/SmallDivSlant.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/divAndRoots/SmallDivSlant.png
--------------------------------------------------------------------------------
/Editor/images/commands/integrals/AntiClock/Sub.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/integrals/AntiClock/Sub.png
--------------------------------------------------------------------------------
/Editor/images/commands/integrals/Clock/BottomTop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/integrals/Clock/BottomTop.png
--------------------------------------------------------------------------------
/Editor/images/commands/integrals/Clock/SubSuper.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/integrals/Clock/SubSuper.png
--------------------------------------------------------------------------------
/Editor/images/commands/integrals/Contour/Bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/integrals/Contour/Bottom.png
--------------------------------------------------------------------------------
/Editor/images/commands/integrals/Contour/Simple.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/integrals/Contour/Simple.png
--------------------------------------------------------------------------------
/Editor/images/commands/integrals/Double/Bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/integrals/Double/Bottom.png
--------------------------------------------------------------------------------
/Editor/images/commands/integrals/Double/Simple.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/integrals/Double/Simple.png
--------------------------------------------------------------------------------
/Editor/images/commands/integrals/Double/SubSuper.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/integrals/Double/SubSuper.png
--------------------------------------------------------------------------------
/Editor/images/commands/integrals/Single/Bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/integrals/Single/Bottom.png
--------------------------------------------------------------------------------
/Editor/images/commands/integrals/Single/Simple.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/integrals/Single/Simple.png
--------------------------------------------------------------------------------
/Editor/images/commands/integrals/Single/SubSuper.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/integrals/Single/SubSuper.png
--------------------------------------------------------------------------------
/Editor/images/commands/integrals/Surface/Bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/integrals/Surface/Bottom.png
--------------------------------------------------------------------------------
/Editor/images/commands/integrals/Surface/Simple.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/integrals/Surface/Simple.png
--------------------------------------------------------------------------------
/Editor/images/commands/integrals/Triple/Bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/integrals/Triple/Bottom.png
--------------------------------------------------------------------------------
/Editor/images/commands/integrals/Triple/Simple.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/integrals/Triple/Simple.png
--------------------------------------------------------------------------------
/Editor/images/commands/integrals/Triple/SubSuper.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/integrals/Triple/SubSuper.png
--------------------------------------------------------------------------------
/Editor/images/commands/integrals/volume/Bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/integrals/volume/Bottom.png
--------------------------------------------------------------------------------
/Editor/images/commands/integrals/volume/Simple.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/integrals/volume/Simple.png
--------------------------------------------------------------------------------
/Editor/images/commands/integrals/volume/SubSuper.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/integrals/volume/SubSuper.png
--------------------------------------------------------------------------------
/Editor/images/commands/sumsProducts/coProductSub.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/sumsProducts/coProductSub.png
--------------------------------------------------------------------------------
/Editor/images/commands/sumsProducts/intersection.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/sumsProducts/intersection.png
--------------------------------------------------------------------------------
/Editor/images/commands/sumsProducts/productSub.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/sumsProducts/productSub.png
--------------------------------------------------------------------------------
/Editor/images/commands/sumsProducts/sumBottomTop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/sumsProducts/sumBottomTop.png
--------------------------------------------------------------------------------
/Editor/images/commands/sumsProducts/sumSubSuper.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/sumsProducts/sumSubSuper.png
--------------------------------------------------------------------------------
/Editor/images/commands/sumsProducts/unionBottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/sumsProducts/unionBottom.png
--------------------------------------------------------------------------------
/Editor/images/commands/brackets/BottomCurlyBracket.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/brackets/BottomCurlyBracket.png
--------------------------------------------------------------------------------
/Editor/images/commands/brackets/LeftSquareBracket.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/brackets/LeftSquareBracket.png
--------------------------------------------------------------------------------
/Editor/images/commands/brackets/ParenthesisSquare.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/brackets/ParenthesisSquare.png
--------------------------------------------------------------------------------
/Editor/images/commands/brackets/RightCurlyBracket.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/brackets/RightCurlyBracket.png
--------------------------------------------------------------------------------
/Editor/images/commands/brackets/RightSquareBracket.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/brackets/RightSquareBracket.png
--------------------------------------------------------------------------------
/Editor/images/commands/brackets/SquareParenthesis.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/brackets/SquareParenthesis.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/arrow/LeftBottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/arrow/LeftBottom.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/arrow/RightBottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/arrow/RightBottom.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/TopBar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/TopBar.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/TopDDot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/TopDDot.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/TopDot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/TopDot.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/TopRing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/TopRing.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/TopTDot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/TopTDot.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/equation/tortoise.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/equation/tortoise.png
--------------------------------------------------------------------------------
/Editor/images/commands/divAndRoots/DivMathInverted.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/divAndRoots/DivMathInverted.png
--------------------------------------------------------------------------------
/Editor/images/commands/divAndRoots/DivMathWithTop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/divAndRoots/DivMathWithTop.png
--------------------------------------------------------------------------------
/Editor/images/commands/integrals/AntiClock/Bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/integrals/AntiClock/Bottom.png
--------------------------------------------------------------------------------
/Editor/images/commands/integrals/AntiClock/Simple.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/integrals/AntiClock/Simple.png
--------------------------------------------------------------------------------
/Editor/images/commands/integrals/Contour/BottomTop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/integrals/Contour/BottomTop.png
--------------------------------------------------------------------------------
/Editor/images/commands/integrals/Contour/SubSuper.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/integrals/Contour/SubSuper.png
--------------------------------------------------------------------------------
/Editor/images/commands/integrals/Double/BottomTop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/integrals/Double/BottomTop.png
--------------------------------------------------------------------------------
/Editor/images/commands/integrals/Single/BottomTop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/integrals/Single/BottomTop.png
--------------------------------------------------------------------------------
/Editor/images/commands/integrals/Surface/BottomTop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/integrals/Surface/BottomTop.png
--------------------------------------------------------------------------------
/Editor/images/commands/integrals/Surface/SubSuper.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/integrals/Surface/SubSuper.png
--------------------------------------------------------------------------------
/Editor/images/commands/integrals/Triple/BottomTop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/integrals/Triple/BottomTop.png
--------------------------------------------------------------------------------
/Editor/images/commands/integrals/volume/BottomTop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/integrals/volume/BottomTop.png
--------------------------------------------------------------------------------
/Editor/images/commands/sumsProducts/productBottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/sumsProducts/productBottom.png
--------------------------------------------------------------------------------
/Editor/images/commands/sumsProducts/unionBottomTop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/sumsProducts/unionBottomTop.png
--------------------------------------------------------------------------------
/Editor/images/commands/sumsProducts/unionSubSuper.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/sumsProducts/unionSubSuper.png
--------------------------------------------------------------------------------
/Editor/images/commands/brackets/BottomSquareBracket.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/brackets/BottomSquareBracket.png
--------------------------------------------------------------------------------
/Editor/images/commands/brackets/DoubleArrowBarBracket.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/brackets/DoubleArrowBarBracket.png
--------------------------------------------------------------------------------
/Editor/images/commands/brackets/LeftLeftSquareBracket.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/brackets/LeftLeftSquareBracket.png
--------------------------------------------------------------------------------
/Editor/images/commands/composite/CompositeBottomTop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/composite/CompositeBottomTop.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/arrow/DoubleBottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/arrow/DoubleBottom.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/arrow/LeftBottomTop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/arrow/LeftBottomTop.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/arrow/RightBottomTop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/arrow/RightBottomTop.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/arrow/RightLeftTop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/arrow/RightLeftTop.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/BottomBar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/BottomBar.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/BottomDDot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/BottomDDot.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/BottomDot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/BottomDot.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/BottomTDot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/BottomTDot.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/LeftCross.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/LeftCross.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/RightCross.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/RightCross.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/TopBreve.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/TopBreve.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/TopCaron.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/TopCaron.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/TopFourDot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/TopFourDot.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/TopTilde.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/TopTilde.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/equation/bottomBar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/equation/bottomBar.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/equation/leftCross.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/equation/leftCross.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/equation/parenthesis.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/equation/parenthesis.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/equation/rightCross.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/equation/rightCross.png
--------------------------------------------------------------------------------
/Editor/images/commands/divAndRoots/DivTriangleFixed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/divAndRoots/DivTriangleFixed.png
--------------------------------------------------------------------------------
/Editor/images/commands/integrals/AntiClock/BottomTop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/integrals/AntiClock/BottomTop.png
--------------------------------------------------------------------------------
/Editor/images/commands/integrals/AntiClock/SubSuper.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/integrals/AntiClock/SubSuper.png
--------------------------------------------------------------------------------
/Editor/images/commands/sumsProducts/ProductBottomTop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/sumsProducts/ProductBottomTop.png
--------------------------------------------------------------------------------
/Editor/images/commands/sumsProducts/coProductBottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/sumsProducts/coProductBottom.png
--------------------------------------------------------------------------------
/Editor/images/commands/sumsProducts/coProductSubSuper.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/sumsProducts/coProductSubSuper.png
--------------------------------------------------------------------------------
/Editor/images/commands/sumsProducts/intersectionSub.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/sumsProducts/intersectionSub.png
--------------------------------------------------------------------------------
/Editor/images/commands/sumsProducts/productSubSuper.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/sumsProducts/productSubSuper.png
--------------------------------------------------------------------------------
/Editor/FodyWeavers.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Editor/images/commands/brackets/RightLeftSquareBracket.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/brackets/RightLeftSquareBracket.png
--------------------------------------------------------------------------------
/Editor/images/commands/brackets/RightRightSquareBracket.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/brackets/RightRightSquareBracket.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/arrow/DoubleBottomTop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/arrow/DoubleBottomTop.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/arrow/RightLeftBottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/arrow/RightLeftBottom.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/arrow/RightLeftHarpTop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/arrow/RightLeftHarpTop.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/AcuteAccent.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/AcuteAccent.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/BottomBreve.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/BottomBreve.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/BottomTilde.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/BottomTilde.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/DoublePrime.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/DoublePrime.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/GraveAccent.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/GraveAccent.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/ReversePrime.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/ReversePrime.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/TopLeftArrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/TopLeftArrow.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/TopRightRing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/TopRightRing.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/TriplePrime.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/TriplePrime.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/equation/strikeThrough.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/equation/strikeThrough.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/equation/topDoubleBar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/equation/topDoubleBar.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/equation/topLeftArrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/equation/topLeftArrow.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/equation/topRightArrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/equation/topRightArrow.png
--------------------------------------------------------------------------------
/Editor/images/commands/divAndRoots/DivTriangleExpanding.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/divAndRoots/DivTriangleExpanding.png
--------------------------------------------------------------------------------
/Editor/images/commands/sumsProducts/coProductBottomTop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/sumsProducts/coProductBottomTop.png
--------------------------------------------------------------------------------
/Editor/images/commands/sumsProducts/intersectionBottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/sumsProducts/intersectionBottom.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/arrow/RightLeftBottomTop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/arrow/RightLeftBottomTop.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/arrow/RightLeftHarpBottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/arrow/RightLeftHarpBottom.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/arrow/RightSmallLeftTop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/arrow/RightSmallLeftTop.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/arrow/SmallRightLeftTop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/arrow/SmallRightLeftTop.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/BottomFourDot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/BottomFourDot.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/BottomLeftArrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/BottomLeftArrow.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/StrikeThrough.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/StrikeThrough.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/TopCircumflex.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/TopCircumflex.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/TopDoubleArrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/TopDoubleArrow.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/TopLeftHarpoon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/TopLeftHarpoon.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/TopRightArrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/TopRightArrow.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/TopRightHarpoon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/TopRightHarpoon.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/VStrikeThrough.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/VStrikeThrough.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/equation/bottomDoubleBar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/equation/bottomDoubleBar.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/equation/bottomLeftArrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/equation/bottomLeftArrow.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/equation/bottomRightArrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/equation/bottomRightArrow.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/equation/topDoubleArrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/equation/topDoubleArrow.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/equation/topLeftHalfArrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/equation/topLeftHalfArrow.png
--------------------------------------------------------------------------------
/Editor/images/commands/sumsProducts/intersectionBottomTop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/sumsProducts/intersectionBottomTop.png
--------------------------------------------------------------------------------
/Editor/images/commands/sumsProducts/intersectionSubSuper.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/sumsProducts/intersectionSubSuper.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/arrow/RightSmallLeftBottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/arrow/RightSmallLeftBottom.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/arrow/RightSmallLeftHarpTop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/arrow/RightSmallLeftHarpTop.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/arrow/SmallRightLeftBottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/arrow/SmallRightLeftBottom.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/arrow/SmallRightLeftHarpTop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/arrow/SmallRightLeftHarpTop.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/BottomDoubleArrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/BottomDoubleArrow.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/BottomLeftHarpoon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/BottomLeftHarpoon.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/BottomRightArrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/BottomRightArrow.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/LeftUprightCross.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/LeftUprightCross.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/RightUprightCross.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/RightUprightCross.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/TopInvertedBreve.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/TopInvertedBreve.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/equation/bottomDoubleArrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/equation/bottomDoubleArrow.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/equation/topRightHalfArrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/equation/topRightHalfArrow.png
--------------------------------------------------------------------------------
/Editor/images/commands/divAndRoots/DivMathInvertedWithBottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/divAndRoots/DivMathInvertedWithBottom.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/arrow/RightLeftHarpBottomTop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/arrow/RightLeftHarpBottomTop.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/arrow/RightSmallLeftBottomTop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/arrow/RightSmallLeftBottomTop.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/arrow/RightSmallLeftHarpBottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/arrow/RightSmallLeftHarpBottom.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/arrow/SmallRightLeftBottomTop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/arrow/SmallRightLeftBottomTop.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/arrow/SmallRightLeftHarpBottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/arrow/SmallRightLeftHarpBottom.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/BottomInvertedBreve.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/BottomInvertedBreve.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/BottomRightHarpoon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/BottomRightHarpoon.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/DoubleStrikeThrough.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/DoubleStrikeThrough.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/ReverseDoublePrime.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/ReverseDoublePrime.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/character/VDoubleStrikeThrough.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/character/VDoubleStrikeThrough.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/equation/bottomLeftHalfArrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/equation/bottomLeftHalfArrow.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/equation/bottomRightHalfArrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/equation/bottomRightHalfArrow.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/arrow/RightSmallLeftHarpBottomTop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/arrow/RightSmallLeftHarpBottomTop.png
--------------------------------------------------------------------------------
/Editor/images/commands/decorated/arrow/SmallRightLeftHarpBottomTop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kashifimran/math-editor/HEAD/Editor/images/commands/decorated/arrow/SmallRightLeftHarpBottomTop.png
--------------------------------------------------------------------------------
/Editor/equations/Common/MathEditorData.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Editor
4 | {
5 | [Serializable]
6 | public sealed class MathEditorData
7 | {
8 | public string XmlString { get; set; }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/Editor/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Directory.packages.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Editor/equations/Common/UndoRedo/ISupportsUndo.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 |
6 | namespace Editor
7 | {
8 | public interface ISupportsUndo
9 | {
10 | void ProcessUndo(EquationAction action);
11 | }
12 | }
13 |
14 |
--------------------------------------------------------------------------------
/Editor/equations/Common/CopyDataObject.cs:
--------------------------------------------------------------------------------
1 | using System.Windows.Media.Imaging;
2 | using System.Xml.Linq;
3 |
4 | namespace Editor
5 | {
6 | public sealed class CopyDataObject
7 | {
8 | public BitmapSource Image { get; set; }
9 | public string Text { get; set; }
10 | public XElement XElement { get; set; }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Editor/common/CommandDetails.cs:
--------------------------------------------------------------------------------
1 | using System.Windows.Controls;
2 |
3 | namespace Editor
4 | {
5 | public sealed class CommandDetails
6 | {
7 | public Image Image { get; set; }
8 | public string UnicodeString { get; set; }
9 | public CommandType CommandType { get; set; }
10 | public object CommandParam { get; set; }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Editor/equations/HorizontalBracket/TopBracket.cs:
--------------------------------------------------------------------------------
1 | namespace Editor
2 | {
3 | public sealed class TopBracket : HorizontalBracket
4 | {
5 | public TopBracket(EquationContainer parent, HorizontalBracketSignType signType)
6 | :base (parent, signType)
7 | {
8 | topEquation.FontFactor = SubFontFactor;
9 | ActiveChild = bottomEquation;
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Editor/app.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Editor/equations/HorizontalBracket/BottomBracket.cs:
--------------------------------------------------------------------------------
1 | namespace Editor
2 | {
3 | public sealed class BottomBracket : HorizontalBracket
4 | {
5 | public BottomBracket(EquationContainer parent, HorizontalBracketSignType signType)
6 | :base (parent, signType)
7 | {
8 | bottomEquation.FontFactor = SubFontFactor;
9 | ActiveChild = topEquation;
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Editor/equations/Common/UndoRedo/UndoEventArgs.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 |
6 | namespace Editor
7 | {
8 | public sealed class UndoEventArgs : EventArgs
9 | {
10 | public bool ActionPossible { get; set; }
11 | public UndoEventArgs(bool actionPossible)
12 | {
13 | ActionPossible = actionPossible;
14 | }
15 | }
16 | }
17 |
18 |
--------------------------------------------------------------------------------
/Editor/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 |
3 | [assembly: ThemeInfo(
4 | ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
5 | //(used if a resource is not found in the page,
6 | // or application resource dictionaries)
7 | ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
8 | //(used if a resource is not found in the page,
9 | // app, or any theme specific resource dictionaries)
10 | )]
11 |
--------------------------------------------------------------------------------
/Editor/equations/Common/UndoRedo/EquationAction.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 |
6 | namespace Editor
7 | {
8 | public abstract class EquationAction
9 | {
10 | public bool UndoFlag { get; set; }
11 | public ISupportsUndo Executor { get; set; }
12 | public int FurtherUndoCount { get; set; }
13 |
14 | public EquationAction(ISupportsUndo executor)
15 | {
16 | Executor = executor;
17 | UndoFlag = true;
18 | }
19 | }
20 | }
21 |
22 |
--------------------------------------------------------------------------------
/Editor/ButtonPanel.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Editor/equations/Common/UndoRedo/Text/TextFormatAction.cs:
--------------------------------------------------------------------------------
1 | namespace Editor
2 | {
3 | public sealed class TextFormatAction : EquationAction
4 | {
5 | public int Index { get; set; }
6 | public int[] OldFormats { get; set; }
7 | public int[] NewFormats { get; set; }
8 |
9 | public TextFormatAction(ISupportsUndo executor, int index, int[] oldFormats, int[] newFormats)
10 | : base(executor)
11 | {
12 | Index = index;
13 | OldFormats = oldFormats;
14 | NewFormats = newFormats;
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/Editor/equations/Common/UndoRedo/Text/ModeChangeAction.cs:
--------------------------------------------------------------------------------
1 | namespace Editor
2 | {
3 | public sealed class ModeChangeAction : EquationAction
4 | {
5 | public int Index { get; set; }
6 | public EditorMode[] OldModes { get; set; }
7 | public EditorMode[] NewModes { get; set; }
8 |
9 | public ModeChangeAction(ISupportsUndo executor, int index, EditorMode[] oldModes, EditorMode[] newModes)
10 | : base(executor)
11 | {
12 | Index = index;
13 | OldModes = oldModes;
14 | NewModes = newModes;
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | Math Editor
2 | ==========
3 |
4 | An equation editor for creating mathematical and scientific documents.
5 |
6 | Math Editor is a free alternative to expensive commercial products like MathType. It allows you to typeset almost all kinds of equations.
7 |
8 | The architecture of Math Editor has been explained in this article on The Code Project: http://www.codeproject.com/Articles/522345/OOP-in-the-Real-World-Creating-an-Equation-Editor
9 |
10 | Screenshot
11 | ==========
12 |
13 | 
14 |
--------------------------------------------------------------------------------
/Editor/common/EditorModeToBoolConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Globalization;
3 | using System.Windows.Data;
4 |
5 | namespace Editor
6 | {
7 | [ValueConversion(typeof(EditorMode), typeof(bool))]
8 | public sealed class EditorModeToBoolConverter : IValueConverter
9 | {
10 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture) =>
11 | value is EditorMode mode && mode == EditorMode.Text;
12 |
13 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) =>
14 | value is bool mode && mode ? EditorMode.Text : EditorMode.Math;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/Editor/App.xaml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Editor/equations/Division/DivMathInverted.cs:
--------------------------------------------------------------------------------
1 | namespace Editor
2 | {
3 | public sealed class DivMathInverted : DivMath
4 | {
5 | public DivMathInverted(EquationContainer parent)
6 | : base(parent)
7 | {
8 | divMathSign.IsInverted = true;
9 | }
10 |
11 | protected override void AdjustVertical()
12 | {
13 | insideEquation.Top = Top + VerticalGap;
14 | divMathSign.Bottom = Bottom;
15 | }
16 |
17 | public override double RefY
18 | {
19 | get
20 | {
21 | return insideEquation.LastRow.MidY - Top;
22 | }
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/Editor/equations/Common/UndoRedo/Text/DecorationAction.cs:
--------------------------------------------------------------------------------
1 | namespace Editor
2 | {
3 | public sealed class DecorationAction : EquationAction
4 | {
5 | public CharacterDecorationInfo [] CharacterDecorations { get; set; }
6 | public bool Added { get; set; }
7 |
8 | public DecorationAction(ISupportsUndo executor, CharacterDecorationInfo [] cdi, bool added)
9 | : base(executor)
10 | {
11 | Added = added;
12 | CharacterDecorations = cdi;
13 | }
14 |
15 | public DecorationAction(ISupportsUndo executor, CharacterDecorationInfo[] cdi)
16 | : base(executor)
17 | {
18 | CharacterDecorations = cdi;
19 | }
20 | }
21 | }
--------------------------------------------------------------------------------
/Editor/equations/Bracket/LeftBracket.cs:
--------------------------------------------------------------------------------
1 | namespace Editor
2 | {
3 | public sealed class LeftBracket : Bracket
4 | {
5 | public LeftBracket(EquationContainer parent, BracketSignType bracketType)
6 | : base(parent)
7 | {
8 | bracketSign = new BracketSign(this, bracketType);
9 | childEquations.AddRange(new EquationBase[] { insideEq, bracketSign });
10 | }
11 |
12 | public override double Left
13 | {
14 | get { return base.Left; }
15 | set
16 | {
17 | base.Left = value;
18 | bracketSign.Left = value;
19 | insideEq.Left = bracketSign.Right;
20 | }
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/Editor/equations/Bracket/RightBracket.cs:
--------------------------------------------------------------------------------
1 | namespace Editor
2 | {
3 | public sealed class RightBracket : Bracket
4 | {
5 | public RightBracket(EquationContainer parent, BracketSignType bracketType)
6 | : base(parent)
7 | {
8 | bracketSign = new BracketSign(this, bracketType);
9 | childEquations.AddRange(new EquationBase[] { insideEq, bracketSign });
10 | }
11 |
12 | public override double Left
13 | {
14 | get { return base.Left; }
15 | set
16 | {
17 | base.Left = value;
18 | insideEq.Left = value;
19 | bracketSign.Left = insideEq.Right;
20 | }
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/Editor/common/EditorModeToVisibilityConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Globalization;
3 | using System.Windows;
4 | using System.Windows.Data;
5 |
6 | namespace Editor
7 | {
8 | [ValueConversion(typeof(EditorMode), typeof(Visibility))]
9 | public sealed class EditorModeToVisibilityConverter : IValueConverter
10 | {
11 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture) =>
12 | value is EditorMode mode && mode == EditorMode.Math ? Visibility.Collapsed : Visibility.Visible;
13 |
14 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) =>
15 | value is Visibility mode && mode == Visibility.Collapsed ? EditorMode.Math : EditorMode.Text;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/Directory.Build.props:
--------------------------------------------------------------------------------
1 |
2 |
3 | Math Editor Team
4 | Math Editor
5 | 8.0.30703
6 | 2.0.0.0
7 | Copyright © 2012-2021
8 | Debug;Release
9 | 9.0
10 | prompt
11 | false
12 |
13 |
14 | enable
15 | true
16 | true
17 |
18 |
--------------------------------------------------------------------------------
/Editor/equations/Division/DivMathWithTop.cs:
--------------------------------------------------------------------------------
1 | namespace Editor
2 | {
3 | public sealed class DivMathWithTop : DivMathWithOuterBase
4 | {
5 | public DivMathWithTop(EquationContainer parent)
6 | : base(parent)
7 | {
8 | }
9 |
10 | protected override void AdjustVertical()
11 | {
12 | outerEquation.Top = Top;
13 | insideEquation.Top = outerEquation.Bottom + VerticalGap;
14 | divMathSign.Top = outerEquation.Bottom + VerticalGap;
15 | }
16 |
17 | public override double RefY
18 | {
19 | get
20 | {
21 | return outerEquation.Height + insideEquation.FirstRow.RefY + VerticalGap;
22 | }
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/Editor/equations/Division/DivMathWithBottom.cs:
--------------------------------------------------------------------------------
1 | namespace Editor
2 | {
3 | public sealed class DivMathWithBottom : DivMathWithOuterBase
4 | {
5 | public DivMathWithBottom(EquationContainer parent)
6 | : base(parent)
7 | {
8 | divMathSign.IsInverted = true;
9 | }
10 |
11 | protected override void AdjustVertical()
12 | {
13 | outerEquation.Bottom = Bottom;
14 | insideEquation.Top = Top;
15 | divMathSign.Bottom = outerEquation.Top - VerticalGap;
16 | }
17 |
18 | public override double RefY
19 | {
20 | get
21 | {
22 | return insideEquation.Height - (insideEquation.FirstRow.Height - insideEquation.FirstRow.RefY);
23 | }
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Editor/AboutWindow.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Windows;
3 | using System.Windows.Controls;
4 | using System.Windows.Input;
5 |
6 | namespace Editor
7 | {
8 | ///
9 | /// Interaction logic for About.xaml
10 | ///
11 | public partial class AboutWindow : Window
12 | {
13 | public AboutWindow()
14 | {
15 | InitializeComponent();
16 | versionLabel.Content = "Math Editor v." + Assembly.GetEntryAssembly().GetName().Version.ToString();
17 | }
18 |
19 | private void LinkTextBlock_MouseUp(object sender, MouseButtonEventArgs e)
20 | {
21 | BrowserHelper.Open(((TextBlock)sender).Text);
22 | }
23 |
24 | private void okButton_Click(object sender, RoutedEventArgs e)
25 | {
26 | this.Close();
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/Editor/equations/Composite/CompositeFactory.cs:
--------------------------------------------------------------------------------
1 | namespace Editor
2 | {
3 | public static class CompositeFactory
4 | {
5 | public static EquationBase CreateEquation(EquationContainer equationParent, Position position)
6 | {
7 | EquationBase equation = null;
8 | switch (position)
9 | {
10 | case Position.Bottom:
11 | equation = new CompositeBottom(equationParent);
12 | break;
13 | case Position.Top:
14 | equation = new CompositeTop(equationParent);
15 | break;
16 | case Position.BottomAndTop:
17 | equation = new CompositeBottomTop(equationParent);
18 | break;
19 | }
20 | return equation;
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/Editor/equations/Common/UndoRedo/Row/RowAction.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 |
6 | namespace Editor
7 | {
8 | public sealed class RowAction : EquationAction
9 | {
10 | public int Index { get; set; }
11 | public int CaretIndex { get; set; }
12 | public EquationBase Equation { get; set; }
13 | public TextEquation EquationAfter { get; set; }
14 | public bool Added { get; set; }
15 |
16 | public RowAction(ISupportsUndo executor, EquationBase equation, TextEquation equationAfter, int index, int caretIndex, bool added = false)
17 | : base(executor)
18 | {
19 | Index = index;
20 | Equation = equation;
21 | CaretIndex = caretIndex;
22 | EquationAfter = equationAfter;
23 | Added = added;
24 | }
25 | }
26 | }
27 |
28 |
--------------------------------------------------------------------------------
/Editor/equations/Common/UndoRedo/Row/EquationRowFormatAction.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 |
6 | namespace Editor
7 | {
8 | public sealed class EquationRowFormatAction : EquationAction
9 | {
10 | public int SelectionStartIndex { get; set; }
11 | public int SelectedItems { get; set; }
12 | public int FirstChildSelectionStartIndex { get; set; }
13 | public int FirstChildSelectedItems { get; set; }
14 | public int LastChildSelectionStartIndex { get; set; }
15 | public int LastChildSelectedItems { get; set; }
16 | public string Operation { get; set; }
17 | public string Argument { get; set; }
18 | public bool Applied { get; set; }
19 |
20 | public EquationRowFormatAction(ISupportsUndo executor)
21 | : base(executor)
22 | {
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/Editor/equations/Common/UndoRedo/Text/TextAction.cs:
--------------------------------------------------------------------------------
1 | namespace Editor
2 | {
3 | public sealed class TextAction : EquationAction
4 | {
5 | public int Index { get; set; }
6 | public string Text { get; set; }
7 | public int[] Formats { get; set; }
8 | public EditorMode[] Modes { get; set; }
9 | public CharacterDecorationInfo[] Decorations { get; set; }
10 | public bool Added { get; set; }
11 |
12 | public TextAction(ISupportsUndo executor)
13 | : base(executor)
14 | {
15 | }
16 |
17 | public TextAction(ISupportsUndo executor, int index, string text, int[] formats, EditorMode[] modes, CharacterDecorationInfo[] decorations)
18 | : base(executor)
19 | {
20 | Index = index;
21 | Text = text;
22 | Formats = formats;
23 | Modes = modes;
24 | Decorations = decorations;
25 | }
26 | }
27 | }
--------------------------------------------------------------------------------
/Editor/App.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 |
3 | namespace Editor
4 | {
5 | ///
6 | /// Interaction logic for App.xaml
7 | ///
8 | public partial class App : Application
9 | {
10 | //protected override void OnStartup(StartupEventArgs e)
11 | //{
12 | // try
13 | // {
14 | // if (e.Args != null && e.Args.Count() > 0)
15 | // {
16 | // //MessageBox.Show(e.Args[0]);
17 | // }
18 | // var fileName = AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData[0];
19 | // MessageBox.Show("After call");
20 | // this.Properties["AFunnyNameForKKj$$"] = (new Uri(fileName)).LocalPath;
21 | // MessageBox.Show(this.Properties["AFunnyNameForKKj$$"] as string);
22 | // }
23 | // catch { }
24 | // base.OnStartup(e);
25 | //}
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/Editor/equations/Text/CharacterDecorationInfo.cs:
--------------------------------------------------------------------------------
1 | namespace Editor
2 | {
3 | public sealed class CharacterDecorationInfo
4 | {
5 | public CharacterDecorationType DecorationType { get; set; }
6 | public Position Position { get; set; }
7 | public string UnicodeString { get; set; } //Only if DecorationType == CharacterDecorationType.Unicode
8 | public int Index { get; set; } //Should be -1 when not appplicable or invalid
9 |
10 | //public CharacterDecorationInfo(CharacterDecorationType decorationType, Position position)
11 | //{
12 | // DecorationType = decorationType;
13 | // Position = position;
14 | // //Index = -1;
15 | //}
16 |
17 | //public CharacterDecorationInfo Clone()
18 | //{
19 | // CharacterDecorationInfo cdi = new CharacterDecorationInfo(this.DecorationType, this.Position);
20 | // //cdi.Index = this.Index;
21 | // cdi.UnicodeString = this.UnicodeString;
22 | // return cdi;
23 | //}
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/Editor/CustomZoomWindow.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2011-2016 Kashif Imran.
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6 |
7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8 |
9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
10 |
--------------------------------------------------------------------------------
/Editor/equations/Common/UndoRedo/RowContainer/RowContainerRemoveAction.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 |
6 | namespace Editor
7 | {
8 | public sealed class RowContainerRemoveAction : RowRemoveAction
9 | {
10 | public EquationRow HeadEquationRow { get; set; }
11 | public EquationRow TailEquationRow { get; set; }
12 | public int FirstRowActiveIndex { get; set; }
13 | public int LastRowActiveIndex { get; set; }
14 | public int FirstRowSelectionIndex { get; set; }
15 | public int LastRowSelectionIndex { get; set; }
16 | public int FirstRowSelectedItems { get; set; }
17 | public int LastRowSelectedItems { get; set; }
18 | public int FirstRowActiveIndexAfterRemoval { get; set; }
19 |
20 | public List FirstRowDeletedContent { get; set; }
21 | public List LastRowDeletedContent { get; set; }
22 |
23 | public RowContainerRemoveAction(ISupportsUndo executor)
24 | : base(executor)
25 | {
26 | }
27 | }
28 | }
29 |
30 |
--------------------------------------------------------------------------------
/Editor/equations/Common/UndoRedo/RowContainer/RowContainerAction.cs:
--------------------------------------------------------------------------------
1 | namespace Editor
2 | {
3 | public sealed class RowContainerAction : EquationAction
4 | {
5 | public int Index { get; set; }
6 | public int ChildIndexInRow { get; set; }
7 | public int CaretIndex { get; set; }
8 | public EquationRow Equation { get; set; }
9 | public bool Added { get; set; }
10 |
11 | public RowContainerAction(ISupportsUndo executor, int index, int childIndexInRow, int caretIndex, bool added, EquationRow equation)
12 | : base(executor)
13 | {
14 | Index = index;
15 | ChildIndexInRow = childIndexInRow;
16 | CaretIndex = caretIndex;
17 | Equation = equation;
18 | Added = added;
19 | }
20 |
21 | public RowContainerAction(ISupportsUndo executor, int index, int childIndexInRow, int caretIndex, EquationRow equation)
22 | : base(executor)
23 | {
24 | Index = index;
25 | ChildIndexInRow = childIndexInRow;
26 | CaretIndex = caretIndex;
27 | Equation = equation;
28 | }
29 | }
30 | }
31 |
32 |
--------------------------------------------------------------------------------
/Editor/equations/Division/DivisionsMisc.cs:
--------------------------------------------------------------------------------
1 | namespace Editor
2 | {
3 | public sealed class DivRegularSmall : DivRegular
4 | {
5 | public DivRegularSmall(EquationContainer parent)
6 | : base(parent, true)
7 | {
8 | }
9 | }
10 |
11 | public sealed class DivDoubleBar : DivRegular
12 | {
13 | public DivDoubleBar(EquationContainer parent)
14 | : base(parent)
15 | {
16 | barCount = 2;
17 | }
18 | }
19 |
20 | public sealed class DivTripleBar : DivRegular
21 | {
22 | public DivTripleBar(EquationContainer parent)
23 | : base(parent)
24 | {
25 | barCount = 3;
26 | }
27 | }
28 |
29 | public sealed class DivSlantedSmall : DivSlanted
30 | {
31 | public DivSlantedSmall(EquationContainer parent)
32 | : base(parent, true)
33 | {
34 | }
35 | }
36 |
37 | public sealed class DivHorizSmall : DivHorizontal
38 | {
39 | public DivHorizSmall(EquationContainer parent)
40 | : base(parent, true)
41 | {
42 | }
43 | }
44 |
45 | }
46 |
--------------------------------------------------------------------------------
/Editor/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.269
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace Editor.Properties
12 | {
13 |
14 |
15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")]
17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
18 | {
19 |
20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
21 |
22 | public static Settings Default
23 | {
24 | get
25 | {
26 | return defaultInstance;
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/Editor/equations/Common/DrawingContextHelper.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 | using System.Windows.Media;
3 |
4 | namespace Editor
5 | {
6 | public static class DrawingContextHelper
7 | {
8 | public static void DrawPolyline(this DrawingContext dc, Point startPoint, PointCollection points, Pen pen)
9 | {
10 | PathGeometry geometry = new PathGeometry();
11 | PolyLineSegment segment = new PolyLineSegment();
12 | segment.Points = points;
13 | PathFigure fig = new PathFigure(startPoint, new[] { segment }, false);
14 | geometry.Figures.Add(fig);
15 | dc.DrawGeometry(null, pen, geometry);
16 | }
17 |
18 | public static void FillPolylineGeometry(this DrawingContext dc, Point startPoint, PointCollection points)
19 | {
20 | PathGeometry geometry = new PathGeometry();
21 | PolyLineSegment segment = new PolyLineSegment();
22 | segment.Points = points;
23 | PathFigure fig = new PathFigure(startPoint, new[] { segment }, true);
24 | geometry.Figures.Add(fig);
25 | dc.DrawGeometry(Brushes.Black, null, geometry);
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/Editor/equations/Composite/CompositeBase.cs:
--------------------------------------------------------------------------------
1 | namespace Editor
2 | {
3 | public abstract class CompositeBase : EquationContainer
4 | {
5 | protected RowContainer mainRowContainer;
6 | protected double bottomGap;
7 | protected double SubOverlap { get { return FontSize * .4; } }
8 | protected double SuperOverlap { get { return FontSize * 0.32; } }
9 |
10 | public CompositeBase(EquationContainer parent)
11 | : base(parent)
12 | {
13 | ActiveChild = mainRowContainer = new RowContainer(this);
14 | DetermineBottomGap();
15 | }
16 |
17 | private void DetermineBottomGap()
18 | {
19 | bottomGap = FontSize / 20;
20 | }
21 |
22 | public override double FontSize
23 | {
24 | get
25 | {
26 | return base.FontSize;
27 | }
28 | set
29 | {
30 | base.FontSize = value;
31 | DetermineBottomGap();
32 | }
33 | }
34 |
35 | public void ChangeMainEquationSize(double newFontSizeFactor)
36 | {
37 | mainRowContainer.FontFactor = newFontSizeFactor;
38 | }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/Editor/equations/Division/DivTriangleSign.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 | using System.Windows.Media;
3 |
4 | namespace Editor
5 | {
6 | public sealed class DivTriangleSign : EquationBase
7 | {
8 | public DivTriangleSign(EquationContainer parent)
9 | : base(parent)
10 | {
11 | IsStatic = true;
12 | }
13 |
14 | public override double Height
15 | {
16 | get
17 | {
18 | return base.Height;
19 | }
20 | set
21 | {
22 | base.Height = value;
23 | Width = FontSize * .25 + Height * .06;
24 | }
25 | }
26 |
27 | public override double Bottom
28 | {
29 | get
30 | {
31 | return base.Bottom - StandardPen.Thickness / 2;
32 | }
33 | set
34 | {
35 | base.Bottom = value;
36 | }
37 | }
38 |
39 | public override void DrawEquation(DrawingContext dc)
40 | {
41 | dc.DrawPolyline(new Point(ParentEquation.Right, Bottom), new PointCollection{new Point(Left, Bottom), new Point(Right, Top)}, StandardRoundPen);
42 | }
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/Editor/equations/SignComposite/SignCompositeFactory.cs:
--------------------------------------------------------------------------------
1 | namespace Editor
2 | {
3 | public static class SignCompositeFactory
4 | {
5 | public static EquationBase CreateEquation(EquationContainer equationParent, Position position, SignCompositeSymbol symbol, bool useUpright)
6 | {
7 | EquationBase equation = null;
8 | switch (position)
9 | {
10 | case Position.None:
11 | equation = new SignSimple(equationParent, symbol, useUpright);
12 | break;
13 | case Position.Bottom:
14 | equation = new SignBottom(equationParent, symbol, useUpright);
15 | break;
16 | case Position.BottomAndTop:
17 | equation = new SignBottomTop(equationParent, symbol, useUpright);
18 | break;
19 | case Position.Sub:
20 | equation = new SignSub(equationParent, symbol, useUpright);
21 | break;
22 | case Position.SubAndSuper:
23 | equation = new SignSubSuper(equationParent, symbol, useUpright);
24 | break;
25 | }
26 | return equation;
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/Editor/BrowserHelper.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.Runtime.InteropServices;
4 |
5 | namespace Editor
6 | {
7 | public static class BrowserHelper
8 | {
9 | ///
10 | /// Opens an URL in the system default browser.
11 | ///
12 | /// The URL to open.
13 | public static void Open(string url)
14 | {
15 | if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
16 | {
17 | var psi = new ProcessStartInfo
18 | {
19 | FileName = url,
20 | UseShellExecute = true
21 | };
22 | Process.Start(psi);
23 | return;
24 | }
25 |
26 | if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
27 | {
28 | Process.Start("xdg-open", url);
29 | return;
30 | }
31 |
32 | if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
33 | {
34 | Process.Start("open", url);
35 | return;
36 | }
37 |
38 | throw new PlatformNotSupportedException("Cannot open link in browser.");
39 | }
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/Editor/equations/Common/FunctionNames.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace Editor
4 | {
5 | static class FunctionNames
6 | {
7 | static List names = new List();
8 |
9 | static FunctionNames()
10 | {
11 | names.AddRange(new string[] { "arccos", "arcsin", "arctan", "arg", "cos", "cosh", "cot", "coth",
12 | "cov", "csc", "curl", "deg", "det", "dim", "div", "erf", "exp", "gcd", "glb", "grad", "hom", "lm",
13 | "inf", "int", "ker", "lg", "lim", "ln", "log", "lub", "max",
14 | "min", "mod", "Pr", "Re", "rot", "sec", "sgn", "sin", "sinh", "sup", "tan", "tanh", "var",
15 | });
16 | }
17 |
18 | public static bool IsFunctionName(string text)
19 | {
20 | return names.Contains(text);
21 | }
22 |
23 | public static string CheckForFunctionName(string text)
24 | {
25 | foreach (string s in names)
26 | {
27 | if (text.EndsWith(s))
28 | {
29 | return s;
30 | }
31 | }
32 | return null;
33 | }
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/Editor/equations/Composite/BigCompositeFactory.cs:
--------------------------------------------------------------------------------
1 | namespace Editor
2 | {
3 | public static class BigCompositeFactory
4 | {
5 | public static EquationBase CreateEquation(EquationContainer equationParent, Position position)
6 | {
7 | CompositeBase equation = null;
8 | switch (position)
9 | {
10 | case Position.Bottom:
11 | equation = new CompositeBottom(equationParent);
12 | break;
13 | case Position.Top:
14 | equation = new CompositeTop(equationParent);
15 | break;
16 | case Position.BottomAndTop:
17 | equation = new CompositeBottomTop(equationParent);
18 | break;
19 | case Position.Sub:
20 | equation = new CompositeSub(equationParent);
21 | break;
22 | case Position.Super:
23 | equation = new CompositeSuper(equationParent);
24 | break;
25 | case Position.SubAndSuper:
26 | equation = new CompositeSubSuper(equationParent);
27 | break;
28 | }
29 | equation.ChangeMainEquationSize(1.3);
30 | return equation;
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/Editor/equations/Common/UndoRedo/Text/TextRemoveAction.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 |
6 | namespace Editor
7 | {
8 | public sealed class TextRemoveAction : EquationAction
9 | {
10 | public int Index { get; set; }
11 | public string Text { get; set; }
12 | public int[] Formats { get; set; }
13 | public EditorMode[] Modes { get; set; }
14 | public CharacterDecorationInfo[] Decorations { get; set; }
15 | public int SelectionStartIndex { get; set; }
16 | public int SelectionCount { get; set; }
17 | public int ParentSelectionStartIndex { get; set; }
18 |
19 | public TextRemoveAction(ISupportsUndo executor, int index, string text, int selectionStartIndex,
20 | int selectionCout, int parentSelectionStartIndex, int[] formats, EditorMode[] modes,
21 | CharacterDecorationInfo[] decorations)
22 | : base(executor)
23 | {
24 | Index = index;
25 | Text = text;
26 | Formats = formats;
27 | Modes = modes;
28 | Decorations = decorations;
29 | SelectionStartIndex = selectionStartIndex;
30 | SelectionCount = selectionCout;
31 | ParentSelectionStartIndex = parentSelectionStartIndex;
32 | }
33 | }
34 | }
35 |
36 |
--------------------------------------------------------------------------------
/Editor/common/AutoGrayableImage.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows;
3 | using System.Windows.Controls;
4 | using System.Windows.Media;
5 | using System.Windows.Media.Imaging;
6 |
7 | namespace Editor
8 | {
9 | public sealed class AutoGreyableImage : Image
10 | {
11 | static AutoGreyableImage()
12 | {
13 | IsEnabledProperty.OverrideMetadata(typeof(AutoGreyableImage), new FrameworkPropertyMetadata(true, new PropertyChangedCallback(OnAutoGreyScaleImageIsEnabledPropertyChanged)));
14 | }
15 |
16 | private static void OnAutoGreyScaleImageIsEnabledPropertyChanged(DependencyObject source, DependencyPropertyChangedEventArgs args)
17 | {
18 | var isEnable = Convert.ToBoolean(args.NewValue);
19 | if (source is AutoGreyableImage autoGreyScaleImg)
20 | {
21 | if (isEnable)
22 | {
23 | autoGreyScaleImg.Source = ((FormatConvertedBitmap)autoGreyScaleImg.Source).Source;
24 | autoGreyScaleImg.OpacityMask = null;
25 | }
26 | else
27 | {
28 | var bitmapImage = new BitmapImage(new Uri(autoGreyScaleImg.Source.ToString()));
29 | autoGreyScaleImg.Source = new FormatConvertedBitmap(bitmapImage, PixelFormats.Gray32Float, null, 0);
30 | autoGreyScaleImg.OpacityMask = new ImageBrush(bitmapImage);
31 | }
32 | }
33 | }
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/Editor/equations/Common/UndoRedo/RowContainer/RowContainerFormatAction.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 |
6 | namespace Editor
7 | {
8 | public sealed class RowContainerFormatAction : EquationAction
9 | {
10 | public EquationBase ActiveChild { get; set; }
11 | public int SelectionStartIndex { get; set; }
12 | public int SelectedItems { get; set; }
13 |
14 | public int FirstRowActiveChildIndex { get; set; }
15 | public int FirstRowSelectionStartIndex { get; set; }
16 | public int FirstRowSelectedItems { get; set; }
17 |
18 | public int LastRowActiveChildIndex { get; set; }
19 | public int LastRowSelectionStartIndex { get; set; }
20 | public int LastRowSelectedItems { get; set; }
21 |
22 | public int FirstTextCaretIndex { get; set; }
23 | public int FirstTextSelectionStartIndex { get; set; }
24 | public int FirstTextSelectedItems{ get; set; }
25 |
26 | public int LastTextCaretIndex { get; set; }
27 | public int LastTextSelectionStartIndex { get; set; }
28 | public int LastTextSelectedItems { get; set; }
29 |
30 | public string Operation { get; set; }
31 | public string Argument { get; set; }
32 | public bool Applied { get; set; }
33 |
34 | public RowContainerFormatAction(ISupportsUndo executor)
35 | : base(executor)
36 | {
37 | }
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/Editor/equations/Common/UndoRedo/Row/RowRemoveAction.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace Editor
4 | {
5 | public class RowRemoveAction : EquationAction
6 | {
7 | public EquationBase ActiveEquation { get; set; }
8 | public TextEquation HeadTextEquation { get; set; }
9 | public TextEquation TailTextEquation { get; set; }
10 |
11 | //public int ParentSelectionStartIndex { get; set; }
12 | public int SelectionStartIndex { get; set; }
13 | public int SelectedItems { get; set; }
14 |
15 | public int FirstTextCaretIndex { get; set; }
16 | public int LastTextCaretIndex { get; set; }
17 | public string FirstText { get; set; }
18 | public string LastText { get; set; }
19 | public int[] FirstFormats { get; set; }
20 | public EditorMode[] FirstModes { get; set; }
21 | public int[] LastFormats { get; set; }
22 | public EditorMode[] LastModes { get; set; }
23 | public CharacterDecorationInfo[] FirstDecorations { get; set; }
24 | public CharacterDecorationInfo[] LastDecorations { get; set; }
25 | public int FirstTextSelectionIndex { get; set; }
26 | public int LastTextSelectionIndex { get; set; }
27 | public int FirstTextSelectedItems { get; set; }
28 | public int LastTextSelectedItems { get; set; }
29 |
30 | public List Equations { get; set; }
31 |
32 | public RowRemoveAction(ISupportsUndo executor)
33 | : base(executor)
34 | {
35 | }
36 | }
37 | }
38 |
39 |
--------------------------------------------------------------------------------
/Editor/MatrixInputWindow.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Globalization;
3 | using System.Windows;
4 |
5 | namespace Editor
6 | {
7 | public partial class MatrixInputWindow : Window
8 | {
9 | public event Action ProcessRequest = (x, y) => { };
10 |
11 | public MatrixInputWindow()
12 | {
13 | InitializeComponent();
14 | }
15 |
16 | public MatrixInputWindow(int rows, int columns)
17 | {
18 | InitializeComponent();
19 | rowsUpDown.Text = rows.ToString(CultureInfo.CurrentUICulture);
20 | columnsUpDown.Text = columns.ToString(CultureInfo.CurrentUICulture);
21 | }
22 |
23 | private void cancelButton_Click(object sender, RoutedEventArgs e)
24 | {
25 | Close();
26 | }
27 |
28 | private void okButton_Click(object sender, RoutedEventArgs e)
29 | {
30 | // WPF does not provide a NumericUpDown control out of the box
31 | // The button click will be ignored, when the number cannot be parsed.
32 | // TODO: provide user feedback when the input is invalid or implement a proper NumericUpDownControl
33 |
34 | if (int.TryParse(rowsUpDown.Text, NumberStyles.Integer, CultureInfo.CurrentUICulture, out var rows)
35 | && int.TryParse(columnsUpDown.Text, NumberStyles.Integer, CultureInfo.CurrentUICulture, out var columns))
36 | {
37 | ProcessRequest(rows, columns);
38 | Close();
39 | }
40 | }
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/Editor/EditorControl.xaml:
--------------------------------------------------------------------------------
1 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/Editor/equations/Common/UndoRedo/Row/EquationRowPasteAction.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 |
6 | namespace Editor
7 | {
8 | public sealed class EquationRowPasteAction : EquationAction
9 | {
10 | public TextEquation ActiveTextEquation { get; set; }
11 | public int SelectedItems { get; set; }
12 | public int SelectionStartIndex { get; set; }
13 |
14 | public int ActiveChildCaretIndex { get; set; }
15 | public int ActiveChildSelectedItems { get; set; }
16 | public int ActiveChildSelectionStartIndex { get; set; }
17 | public string ActiveChildText { get; set; }
18 | public int[] ActiveChildFormats { get; set; }
19 | public EditorMode[] ActiveChildModes { get; set; }
20 | public CharacterDecorationInfo[] ActiveChildDecorations { get; set; }
21 |
22 | public string FirstNewText { get; set; }
23 | public int[] FirstNewFormats { get; set; }
24 | public EditorMode[] FirstNewModes { get; set; }
25 | public CharacterDecorationInfo[] FirstNewDecorations { get; set; }
26 |
27 | public string LastNewText { get; set; }
28 | public int[] LastNewFormats { get; set; }
29 | public EditorMode[] LastNewModes { get; set; }
30 | public CharacterDecorationInfo[] LastNewDecorations { get; set; }
31 |
32 | public List Equations { get; set; }
33 |
34 | public EquationRowPasteAction(ISupportsUndo executor)
35 | : base(executor)
36 | {
37 | }
38 | }
39 | }
40 |
41 |
--------------------------------------------------------------------------------
/Editor/Editor.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | WinExe
4 | net5.0-windows
5 | true
6 | false
7 | app_icon.ico
8 | MathEditor
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | True
24 | True
25 | Settings.settings
26 |
27 |
28 | True
29 | True
30 | Resources.resx
31 |
32 |
33 |
34 |
35 |
36 | PublicResXFileCodeGenerator
37 | Resources.Designer.cs
38 |
39 |
40 |
41 |
42 |
43 | SettingsSingleFileGenerator
44 | Settings.Designer.cs
45 |
46 |
47 |
--------------------------------------------------------------------------------
/Editor/equations/Common/UndoRedo/RowContainer/RowContainerTextAction.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 |
6 | namespace Editor
7 | {
8 | public sealed class RowContainerTextAction : EquationAction
9 | {
10 | public int SelectionStartIndex { get; set; }
11 | public int SelectedItems { get; set; }
12 |
13 | public EquationBase ActiveEquation { get; set; }
14 | public EquationBase ActiveEquationAfterChange { get; set; }
15 | public int ActiveEquationSelectionIndex { get; set; }
16 | public int ActiveEquationSelectedItems { get; set; }
17 |
18 | public TextEquation ActiveTextInRow { get; set; }
19 | public int CaretIndexOfActiveText { get; set; }
20 | public int SelectionStartIndexOfTextEquation { get; set; }
21 | public int SelectedItemsOfTextEquation { get; set; }
22 | public string TextEquationContents { get; set; }
23 | public int[] TextEquationFormats { get; set; }
24 | public EditorMode[] TextEquationModes { get; set; }
25 | public CharacterDecorationInfo[] TextEquationDecoration { get; set; }
26 |
27 | public string FirstLineOfInsertedText { get; set; }
28 | public int[] FirstFormatsOfInsertedText { get; set; }
29 | public EditorMode[] FirstModesOfInsertedText { get; set; }
30 | public CharacterDecorationInfo[] FirstDecorationsOfInsertedText { get; set; }
31 |
32 | public List Equations { get; set; }
33 |
34 | public RowContainerTextAction(ISupportsUndo executor)
35 | : base(executor)
36 | {
37 | }
38 | }
39 | }
40 |
41 |
--------------------------------------------------------------------------------
/Editor/equations/SubSuper/SubSuperBase.cs:
--------------------------------------------------------------------------------
1 | namespace Editor
2 | {
3 | public abstract class SubSuperBase : EquationContainer
4 | {
5 | public Position Position { get; set; }
6 | protected double Padding
7 | {
8 | get
9 | {
10 | if (buddy != null && buddy.GetType() == typeof(TextEquation))
11 | {
12 | return FontSize * .01;
13 | }
14 | else
15 | {
16 | return FontSize * .05;
17 | }
18 | }
19 | }
20 | protected double SuperOverlap { get { return FontSize * 0.35; } }
21 | protected double SubOverlap
22 | {
23 | get
24 | {
25 | TextEquation te = buddy as TextEquation;
26 | double oha = 0;
27 | if (te != null)
28 | {
29 | oha = te.GetCornerDescent(this.Position);
30 | }
31 | return FontSize * .1 - oha;
32 | }
33 | }
34 |
35 | EquationBase buddy = null;
36 | protected EquationBase Buddy
37 | {
38 | get { return buddy ?? ParentEquation.ActiveChild; }
39 | set { buddy = value; }
40 | }
41 |
42 | public SubSuperBase(EquationRow parent, Position position)
43 | : base(parent)
44 | {
45 | ApplySymbolGap = false;
46 | SubLevel++;
47 | Position = position;
48 | }
49 |
50 | public void SetBuddy(EquationBase buddy)
51 | {
52 | this.Buddy = buddy;
53 | CalculateHeight();
54 | }
55 | }
56 | }
57 |
--------------------------------------------------------------------------------
/Editor/CodepointWindow.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 | Decimal
19 | Octal
20 | Hexadecimal
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/Editor/common/MouseWheelGesture.cs:
--------------------------------------------------------------------------------
1 | using System.Windows.Input;
2 |
3 | namespace Editor
4 | {
5 | public sealed class MouseWheelGesture : MouseGesture
6 | {
7 | public WheelDirection Direction { get; set; }
8 |
9 | public static MouseWheelGesture CtrlDown
10 | {
11 | get
12 | {
13 | return new MouseWheelGesture(ModifierKeys.Control) { Direction = WheelDirection.Down };
14 | }
15 | }
16 |
17 | public static MouseWheelGesture CtrlUp
18 | {
19 | get
20 | {
21 | return new MouseWheelGesture(ModifierKeys.Control) { Direction = WheelDirection.Up };
22 | }
23 | }
24 | public MouseWheelGesture()
25 | : base(MouseAction.WheelClick)
26 | {
27 | }
28 |
29 | public MouseWheelGesture(ModifierKeys modifiers)
30 | : base(MouseAction.WheelClick, modifiers)
31 | {
32 | }
33 |
34 | public override bool Matches(object targetElement, InputEventArgs inputEventArgs)
35 | {
36 | if (!base.Matches(targetElement, inputEventArgs)) return false;
37 | if (!(inputEventArgs is MouseWheelEventArgs)) return false;
38 | var args = (MouseWheelEventArgs)inputEventArgs;
39 | switch (Direction)
40 | {
41 | case WheelDirection.None:
42 | return args.Delta == 0;
43 | case WheelDirection.Up:
44 | return args.Delta > 0;
45 | case WheelDirection.Down:
46 | return args.Delta < 0;
47 | default:
48 | return false;
49 | }
50 | }
51 | public enum WheelDirection
52 | {
53 | None,
54 | Up,
55 | Down,
56 | }
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/Editor/equations/Common/UndoRedo/RowContainer/RowContainerPasteAction.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 |
6 | namespace Editor
7 | {
8 | public sealed class RowContainerPasteAction : EquationAction
9 | {
10 | public int SelectionStartIndex { get; set; }
11 | public int SelectedItems { get; set; }
12 |
13 | public EquationBase ActiveEquation { get; set; }
14 | public int ActiveEquationSelectionIndex { get; set; }
15 | public int ActiveEquationSelectedItems { get; set; }
16 |
17 | public TextEquation ActiveTextInChildRow { get; set; }
18 | public int CaretIndexOfActiveText { get; set; }
19 | public int SelectionStartIndexOfTextEquation { get; set; }
20 | public int SelectedItemsOfTextEquation { get; set; }
21 | public string TextEquationContents { get; set; }
22 |
23 | public int[] TextEquationFormats { get; set; }
24 | public EditorMode[] TextEquationModes { get; set; }
25 | public CharacterDecorationInfo[] TextEquationDecorations { get; set; }
26 |
27 | public string HeadTextOfPastedRows { get; set; }
28 | public string TailTextOfPastedRows { get; set; }
29 |
30 | public int[] HeadFormatsOfPastedRows { get; set; }
31 | public int[] TailFormatsOfPastedRows { get; set; }
32 |
33 | public EditorMode[] HeadModeOfPastedRows { get; set; }
34 | public EditorMode[] TailModesOfPastedRows { get; set; }
35 |
36 |
37 | public CharacterDecorationInfo[] HeadDecorationsOfPastedRows { get; set; }
38 | public CharacterDecorationInfo[] TailDecorationsOfPastedRows { get; set; }
39 |
40 | public List Equations { get; set; }
41 |
42 | public RowContainerPasteAction(ISupportsUndo executor)
43 | : base(executor)
44 | {
45 | }
46 | }
47 | }
48 |
49 |
--------------------------------------------------------------------------------
/Editor/CharacterToolBar.xaml:
--------------------------------------------------------------------------------
1 |
9 |
25 |
26 |
--------------------------------------------------------------------------------
/Editor/CustomZoomWindow.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows;
3 | using System.Windows.Input;
4 |
5 | namespace Editor
6 | {
7 | ///
8 | /// Interaction logic for CustomZoomWindow.xaml
9 | ///
10 | public partial class CustomZoomWindow : Window
11 | {
12 | int maxPercentage = 9999;
13 | MainWindow mainWindow = null;
14 | public CustomZoomWindow(MainWindow mainWindow)
15 | {
16 | this.mainWindow = mainWindow;
17 | InitializeComponent();
18 | numberBox.Focus();
19 | }
20 |
21 | private bool AreAllValidNumericChars(string str)
22 | {
23 | foreach (char c in str)
24 | {
25 | if (!Char.IsNumber(c)) return false;
26 | }
27 |
28 | return true;
29 | }
30 |
31 | private void numberBox_PreviewTextInput(object sender, TextCompositionEventArgs e)
32 | {
33 | e.Handled = !AreAllValidNumericChars(e.Text) || numberBox.Text.Length > 3;
34 | base.OnPreviewTextInput(e);
35 | }
36 |
37 | private void okButton_Click(object sender, RoutedEventArgs e)
38 | {
39 | try
40 | {
41 | int number = int.Parse(numberBox.Text);
42 | if (number <= 0 || number > maxPercentage)
43 | {
44 | MessageBox.Show("Zoom percentage must be between 1 and " + maxPercentage + ".");
45 | return;
46 | }
47 | mainWindow.SetFontSizePercentage(number);
48 | this.Close();
49 | }
50 | catch
51 | {
52 | MessageBox.Show("Zoom percentage must be a number between 1 and " + maxPercentage + ".");
53 | }
54 | }
55 |
56 | private void cancelButton_Click(object sender, RoutedEventArgs e)
57 | {
58 | this.Close();
59 | }
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/Editor/equations/Division/DivMathSign.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 | using System.Windows.Media;
3 |
4 | namespace Editor
5 | {
6 | public sealed class DivMathSign: EquationBase
7 | {
8 | public bool IsInverted { get; set; }
9 |
10 | public DivMathSign(EquationContainer parent)
11 | : base(parent)
12 | {
13 | IsStatic = true;
14 | }
15 |
16 | public override double Height
17 | {
18 | get
19 | {
20 | return base.Height;
21 | }
22 | set
23 | {
24 | base.Height = value;
25 | Width = FontSize * .25 + Height * .03;
26 | }
27 | }
28 |
29 |
30 | public override void DrawEquation(DrawingContext dc)
31 | {
32 | LineSegment line;
33 | ArcSegment arc;
34 | Point pathFigureStart;
35 | if (IsInverted)
36 | {
37 | pathFigureStart = new Point(ParentEquation.Right, Bottom - StandardRoundPen.Thickness /2);
38 | line = new LineSegment(new Point(Left, Bottom - StandardRoundPen.Thickness / 2), true);
39 | arc = new ArcSegment(Location, new Size(Width * 4.5, Height), 0, false, SweepDirection.Counterclockwise, true);
40 | }
41 | else
42 | {
43 | pathFigureStart = new Point(ParentEquation.Right, Top);
44 | line = new LineSegment(Location, true);
45 | arc = new ArcSegment(new Point(Left, Bottom), new Size(Width * 4.5, Height), 0, false, SweepDirection.Clockwise, true);
46 | }
47 | PathGeometry pathGeometry = new PathGeometry();
48 | PathFigure pathFigure = new PathFigure(pathFigureStart, new PathSegment[] { line, arc }, false);
49 | pathGeometry.Figures.Add(pathFigure);
50 | dc.DrawGeometry(null, StandardRoundPen, pathGeometry);
51 | }
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/Editor/equations/Common/StaticText.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 | using System.Windows.Media;
3 |
4 | namespace Editor
5 | {
6 | public class StaticText : EquationBase
7 | {
8 | protected string Text { get; set; }
9 | protected FontType FontType { get; set; }
10 | protected double FontSizeFactor = 1;
11 | protected FontWeight FontWeight = FontWeights.Normal;
12 | protected double TopOffestFactor = 0;
13 | protected double LeftMarginFactor = 0;
14 | protected double RightMarginFactor = 0;
15 |
16 | FormattedText formattedText;
17 |
18 | public StaticText(EquationContainer parent)
19 | :base(parent)
20 | {
21 | IsStatic = true;
22 | }
23 |
24 | public override void DrawEquation(DrawingContext dc)
25 | {
26 | //dc.DrawText(formattedText, new Point(Left + LeftMarginFactor * FontSize, Top + TopOffestFactor * Height));
27 | formattedText.DrawTextTopLeftAligned(dc, new Point(Left + LeftMarginFactor * FontSize, Top + TopOffestFactor * Height));
28 | }
29 |
30 | public override double FontSize
31 | {
32 | get
33 | {
34 | return base.FontSize;
35 | }
36 | set
37 | {
38 | base.FontSize = value;
39 | ReformatSign();
40 | }
41 | }
42 |
43 | protected void ReformatSign()
44 | {
45 | formattedText = FontFactory.GetFormattedText(Text, FontType, FontSize * FontSizeFactor, FontWeight);
46 | Width = formattedText.GetFullWidth() + LeftMarginFactor * FontSize + RightMarginFactor * FontSize; // * WidthFactor;
47 | Height = formattedText.Extent;
48 | }
49 |
50 | public double OverhangTrailing
51 | {
52 | get { return formattedText.OverhangTrailing; }
53 | }
54 |
55 | public double OverhangLeading
56 | {
57 | get { return formattedText.OverhangLeading; }
58 | }
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/MathiVersity.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 16
4 | VisualStudioVersion = 16.0.31321.278
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Editor", "Editor\Editor.csproj", "{B19FF7B5-8771-4222-A539-496B58ECCC12}"
7 | EndProject
8 | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{C7BA4678-983F-4EA2-B840-FD1747EA41B5}"
9 | ProjectSection(SolutionItems) = preProject
10 | LICENSE.md = LICENSE.md
11 | README.md = README.md
12 | EndProjectSection
13 | EndProject
14 | Global
15 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
16 | Debug|Any CPU = Debug|Any CPU
17 | Debug|Mixed Platforms = Debug|Mixed Platforms
18 | Debug|x86 = Debug|x86
19 | Release|Any CPU = Release|Any CPU
20 | Release|Mixed Platforms = Release|Mixed Platforms
21 | Release|x86 = Release|x86
22 | EndGlobalSection
23 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
24 | {B19FF7B5-8771-4222-A539-496B58ECCC12}.Debug|Any CPU.ActiveCfg = Debug|x86
25 | {B19FF7B5-8771-4222-A539-496B58ECCC12}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
26 | {B19FF7B5-8771-4222-A539-496B58ECCC12}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
27 | {B19FF7B5-8771-4222-A539-496B58ECCC12}.Debug|x86.ActiveCfg = Debug|x86
28 | {B19FF7B5-8771-4222-A539-496B58ECCC12}.Debug|x86.Build.0 = Debug|x86
29 | {B19FF7B5-8771-4222-A539-496B58ECCC12}.Release|Any CPU.ActiveCfg = Release|x86
30 | {B19FF7B5-8771-4222-A539-496B58ECCC12}.Release|Mixed Platforms.ActiveCfg = Release|x86
31 | {B19FF7B5-8771-4222-A539-496B58ECCC12}.Release|Mixed Platforms.Build.0 = Release|x86
32 | {B19FF7B5-8771-4222-A539-496B58ECCC12}.Release|x86.ActiveCfg = Release|x86
33 | {B19FF7B5-8771-4222-A539-496B58ECCC12}.Release|x86.Build.0 = Release|x86
34 | EndGlobalSection
35 | GlobalSection(SolutionProperties) = preSolution
36 | HideSolutionNode = FALSE
37 | EndGlobalSection
38 | GlobalSection(ExtensibilityGlobals) = postSolution
39 | SolutionGuid = {8D728F5A-F3BB-434F-8A9F-5B2E4B13C740}
40 | EndGlobalSection
41 | EndGlobal
42 |
--------------------------------------------------------------------------------
/Editor/SettingsWindow.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using System.Windows;
3 | using System.Windows.Controls;
4 |
5 | namespace Editor
6 | {
7 | ///
8 | /// Interaction logic for SettingsWindow.xaml
9 | ///
10 | public partial class SettingsWindow : Window
11 | {
12 | public SettingsWindow()
13 | {
14 | InitializeComponent();
15 | try
16 | {
17 | //EditorMode mode = (EditorMode)Enum.Parse(typeof(EditorMode), ConfigManager.GetConfigurationValue(KeyName.default_mode));
18 | //FontType font = (FontType)Enum.Parse(typeof(FontType), ConfigManager.GetConfigurationValue(KeyName.default_font));
19 | var mode = ConfigManager.GetConfigurationValue(KeyName.default_mode);
20 | var fontName = ConfigManager.GetConfigurationValue(KeyName.default_font);
21 |
22 | var modes = editorModeCombo.Items;
23 | foreach (ComboBoxItem item in modes)
24 | {
25 | if ((string)item.Tag == mode)
26 | {
27 | editorModeCombo.SelectedItem = item;
28 | }
29 | }
30 | var fonts = equationFontCombo.Items;
31 | foreach (ComboBoxItem item in fonts)
32 | {
33 | if ((string)item.Tag == fontName)
34 | {
35 | equationFontCombo.SelectedItem = item;
36 | }
37 | }
38 | }
39 | catch { }
40 | }
41 |
42 | private void okButton_Click(object sender, RoutedEventArgs e)
43 | {
44 | ConfigManager.SetConfigurationValues(new Dictionary() {
45 | {KeyName.default_mode, ((ComboBoxItem)editorModeCombo.SelectedItem).Tag.ToString()},
46 | {KeyName.default_font, ((ComboBoxItem)equationFontCombo.SelectedItem).Tag.ToString()}
47 | });
48 | this.Close();
49 | }
50 |
51 | private void cancelButton_Click(object sender, RoutedEventArgs e)
52 | {
53 | this.Close();
54 | }
55 | }
56 | }
57 |
--------------------------------------------------------------------------------
/Editor/equations/Common/PenManager.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Windows.Media;
4 |
5 | namespace Editor
6 | {
7 | public static class PenManager
8 | {
9 | static Dictionary bevelPens = new Dictionary();
10 | static Dictionary miterPens = new Dictionary();
11 | static Dictionary roundPens = new Dictionary();
12 | static Dictionary whitePens = new Dictionary();
13 |
14 | static object bevelLock = new object();
15 | static object miterLock = new object();
16 | static object roundLock = new object();
17 |
18 | static object whiteLock = new object();
19 |
20 | public static Pen GetWhitePen(double thickness)
21 | {
22 | return GetPen(whiteLock, whitePens, thickness, PenLineJoin.Miter, Brushes.White);
23 | }
24 |
25 | public static Pen GetPen(double thickness, PenLineJoin lineJoin = PenLineJoin.Bevel)
26 | {
27 | if (lineJoin == PenLineJoin.Bevel)
28 | {
29 | return GetPen(bevelLock, bevelPens, thickness, lineJoin);
30 | }
31 | else if (lineJoin == PenLineJoin.Miter)
32 | {
33 | return GetPen(miterLock, miterPens, thickness, lineJoin);
34 | }
35 | else
36 | {
37 | return GetPen(roundLock, roundPens, thickness, lineJoin);
38 | }
39 | }
40 |
41 | static Pen GetPen(object lockObj, Dictionary penDictionary, double thickness, PenLineJoin lineJoin, Brush brush=null)
42 | {
43 | lock (lockObj)
44 | {
45 | thickness = Math.Round(thickness, 1);
46 | if (!penDictionary.ContainsKey(thickness))
47 | {
48 | Pen pen = new Pen(brush ?? Brushes.Black, thickness);
49 | pen.LineJoin = lineJoin;
50 | pen.Freeze();
51 | penDictionary.Add(thickness, pen);
52 | }
53 | return penDictionary[thickness];
54 | }
55 | }
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/Editor/equations/Division/DivMathWithOuterBase.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Linq;
3 | using System.Xml.Linq;
4 |
5 | namespace Editor
6 | {
7 | public abstract class DivMathWithOuterBase: DivMath
8 | {
9 | protected RowContainer outerEquation;
10 |
11 | public DivMathWithOuterBase(EquationContainer parent)
12 | : base(parent)
13 | {
14 | outerEquation = new RowContainer(this);
15 | outerEquation.HAlignment = Editor.HAlignment.Right;
16 | //insideEquation.HAlignment = Editor.HAlignment.Right;
17 | childEquations.Add(outerEquation);
18 | }
19 |
20 | public override XElement Serialize()
21 | {
22 | XElement thisElement = new XElement(GetType().Name);
23 | thisElement.Add(insideEquation.Serialize());
24 | thisElement.Add(outerEquation.Serialize());
25 | return thisElement;
26 | }
27 |
28 | public override void DeSerialize(XElement xElement)
29 | {
30 | var elements = xElement.Elements().ToArray();
31 | insideEquation.DeSerialize(elements[0]);
32 | outerEquation.DeSerialize(elements[1]);
33 | CalculateSize();
34 | }
35 |
36 | public override void CalculateSize()
37 | {
38 | CalculateHeight();
39 | CalculateWidth();
40 | }
41 |
42 | protected override void CalculateWidth()
43 | {
44 | Width = Math.Max(insideEquation.Width, outerEquation.Width) + divMathSign.Width + LeftGap;
45 | }
46 |
47 | protected override void CalculateHeight()
48 | {
49 | Height = outerEquation.Height + insideEquation.Height + ExtraHeight;
50 | divMathSign.Height = insideEquation.FirstRow.Height + ExtraHeight;
51 | }
52 |
53 | public override double Left
54 | {
55 | get { return base.Left; }
56 | set
57 | {
58 | base.Left = value;
59 | divMathSign.Left = value + LeftGap;
60 | insideEquation.Right = Right;
61 | outerEquation.Right = Right;
62 | }
63 | }
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/Editor/equations/Bracket/LeftRightBracket.cs:
--------------------------------------------------------------------------------
1 | using System.Xml.Linq;
2 |
3 | namespace Editor
4 | {
5 | public sealed class LeftRightBracket : Bracket
6 | {
7 | BracketSign bracketSign2;
8 |
9 | public LeftRightBracket(EquationContainer parent, BracketSignType leftBracketType, BracketSignType rightBracketType)
10 | : base(parent)
11 | {
12 | bracketSign = new BracketSign(this, leftBracketType);
13 | bracketSign2 = new BracketSign(this, rightBracketType);
14 | childEquations.AddRange(new EquationBase[] { insideEq, bracketSign, bracketSign2 });
15 | }
16 |
17 | public override XElement Serialize()
18 | {
19 | XElement thisElement = new XElement(GetType().Name);
20 | XElement parameters = new XElement("parameters");
21 | parameters.Add(new XElement(bracketSign.SignType.GetType().Name, bracketSign.SignType));
22 | parameters.Add(new XElement(bracketSign2.SignType.GetType().Name, bracketSign2.SignType));
23 | thisElement.Add(parameters);
24 | thisElement.Add(insideEq.Serialize());
25 | return thisElement;
26 | }
27 |
28 | public override void DeSerialize(XElement xElement)
29 | {
30 | insideEq.DeSerialize(xElement.Element(insideEq.GetType().Name));
31 | CalculateSize();
32 | }
33 |
34 |
35 | protected override void CalculateWidth()
36 | {
37 | Width = insideEq.Width + bracketSign.Width + bracketSign2.Width;
38 | }
39 |
40 | protected override void CalculateHeight()
41 | {
42 | base.CalculateHeight();
43 | bracketSign2.Height = bracketSign.Height;
44 | }
45 |
46 | public override double Left
47 | {
48 | get { return base.Left; }
49 | set
50 | {
51 | base.Left = value;
52 | bracketSign.Left = value;
53 | insideEq.Left = bracketSign.Right;
54 | bracketSign2.Left = insideEq.Right;
55 | }
56 | }
57 |
58 | public override double Top
59 | {
60 | get { return base.Top; }
61 | set
62 | {
63 | base.Top = value;
64 | bracketSign2.Top = bracketSign.Top;
65 | }
66 | }
67 | }
68 | }
69 |
--------------------------------------------------------------------------------
/Editor/equations/SubSuper/Super.cs:
--------------------------------------------------------------------------------
1 | using System.Xml.Linq;
2 |
3 | namespace Editor
4 | {
5 | public sealed class Super : SubSuperBase
6 | {
7 | RowContainer rowContainer;
8 |
9 | public Super(EquationRow parent, Position position)
10 | : base(parent, position)
11 | {
12 | ActiveChild = rowContainer = new RowContainer(this);
13 | childEquations.Add(rowContainer);
14 | if (SubLevel == 1)
15 | {
16 | rowContainer.FontFactor = SubFontFactor;
17 | }
18 | else if (SubLevel == 2)
19 | {
20 | rowContainer.FontFactor = SubSubFontFactor;
21 | }
22 | }
23 |
24 | public override XElement Serialize()
25 | {
26 | XElement thisElement = new XElement(GetType().Name);
27 | XElement parameters = new XElement("parameters");
28 | parameters.Add(new XElement(Position.GetType().Name, Position));
29 | thisElement.Add(parameters);
30 | thisElement.Add(rowContainer.Serialize());
31 | return thisElement;
32 | }
33 |
34 | public override void DeSerialize(XElement xElement)
35 | {
36 | rowContainer.DeSerialize(xElement.Element(rowContainer.GetType().Name));
37 | CalculateSize();
38 | }
39 |
40 | protected override void CalculateHeight()
41 | {
42 | Height = rowContainer.Height + Buddy.RefY - SuperOverlap;
43 | }
44 |
45 | public override double Top
46 | {
47 | get { return base.Top; }
48 | set
49 | {
50 | base.Top = value;
51 | rowContainer.Top = value;
52 | }
53 | }
54 |
55 | protected override void CalculateWidth()
56 | {
57 | Width = rowContainer.Width + Padding * 2;
58 | }
59 |
60 | public override double Left
61 | {
62 | get { return base.Left; }
63 | set
64 | {
65 | base.Left = value;
66 | rowContainer.Left = this.Left + Padding;
67 | }
68 | }
69 |
70 | public override double RefY
71 | {
72 | get
73 | {
74 | return Height;
75 | }
76 | }
77 | }
78 | }
79 |
--------------------------------------------------------------------------------
/Editor/MatrixInputWindow.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
23 |
28 |
29 |
32 |
37 |
38 |
39 |
41 |
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/Editor/equations/SignComposite/SignSimple.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Xml.Linq;
3 |
4 | namespace Editor
5 | {
6 | class SignSimple : EquationContainer
7 | {
8 | protected RowContainer mainEquation;
9 | protected StaticSign sign;
10 |
11 | public SignSimple(EquationContainer parent, SignCompositeSymbol symbol, bool useUpright)
12 | : base(parent)
13 | {
14 | ActiveChild = mainEquation = new RowContainer(this);
15 | sign = new StaticSign(this, symbol, useUpright);
16 | childEquations.AddRange(new EquationBase[] {mainEquation, sign});
17 | }
18 |
19 | public override XElement Serialize()
20 | {
21 | XElement thisElement = new XElement(GetType().Name);
22 | XElement parameters = new XElement("parameters");
23 | parameters.Add(new XElement(sign.Symbol.GetType().Name, sign.Symbol));
24 | parameters.Add(new XElement(typeof(bool).FullName, sign.UseItalicIntegralSign));
25 | thisElement.Add(parameters);
26 | thisElement.Add(mainEquation.Serialize());
27 | return thisElement;
28 | }
29 |
30 | public override void DeSerialize(XElement xElement)
31 | {
32 | mainEquation.DeSerialize(xElement.Element(mainEquation.GetType().Name));
33 | CalculateSize();
34 | }
35 |
36 | protected override void CalculateWidth()
37 | {
38 | Width = sign.Width + mainEquation.Width;
39 | }
40 |
41 | protected override void CalculateHeight()
42 | {
43 | Height = Math.Max(sign.RefY, mainEquation.RefY) + Math.Max(sign.RefY, mainEquation.Height - mainEquation.RefY);
44 | }
45 |
46 | public override double Top
47 | {
48 | get { return base.Top; }
49 | set
50 | {
51 | base.Top = value;
52 | sign.MidY = MidY;
53 | mainEquation.MidY = MidY;
54 | }
55 | }
56 |
57 | public override double Left
58 | {
59 | get { return base.Left; }
60 | set
61 | {
62 | base.Left = value;
63 | sign.Left = value;
64 | mainEquation.Left = sign.Right;
65 | }
66 | }
67 |
68 | public override double RefY
69 | {
70 | get
71 | {
72 | return Math.Max(sign.RefY, mainEquation.RefY);
73 | }
74 | }
75 | }
76 | }
--------------------------------------------------------------------------------
/Editor/equations/Division/DivisionFactory.cs:
--------------------------------------------------------------------------------
1 | namespace Editor
2 | {
3 | public static class DivisionFactory
4 | {
5 | public static EquationBase CreateEquation(EquationContainer equationParent, DivisionType divType)
6 | {
7 | EquationBase equation = null;
8 | switch (divType)
9 | {
10 | case DivisionType.DivRegular:
11 | equation = new DivRegular(equationParent);
12 | break;
13 | case DivisionType.DivRegularSmall:
14 | equation = new DivRegularSmall(equationParent);
15 | break;
16 | case DivisionType.DivDoubleBar:
17 | equation = new DivDoubleBar(equationParent);
18 | break;
19 | case DivisionType.DivTripleBar:
20 | equation = new DivTripleBar(equationParent);
21 | break;
22 |
23 | case DivisionType.DivHoriz:
24 | equation = new DivHorizontal(equationParent);
25 | break;
26 | case DivisionType.DivHorizSmall:
27 | equation = new DivHorizSmall(equationParent);
28 | break;
29 |
30 | case DivisionType.DivMath:
31 | equation = new DivMath(equationParent);
32 | break;
33 | case DivisionType.DivMathWithTop:
34 | equation = new DivMathWithTop(equationParent);
35 | break;
36 |
37 | case DivisionType.DivSlanted:
38 | equation = new DivSlanted(equationParent);
39 | break;
40 | case DivisionType.DivSlantedSmall:
41 | equation = new DivSlantedSmall(equationParent);
42 | break;
43 |
44 | case DivisionType.DivMathInverted:
45 | equation = new DivMathInverted(equationParent);
46 | break;
47 | case DivisionType.DivInvertedWithBottom:
48 | equation = new DivMathWithBottom(equationParent);
49 | break;
50 | case DivisionType.DivTriangleFixed:
51 | equation = new DivTriangle(equationParent, true);
52 | break;
53 | case DivisionType.DivTriangleExpanding:
54 | equation = new DivTriangle(equationParent, false);
55 | break;
56 | }
57 | return equation;
58 | }
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/Editor/equations/Root/SquareRoot.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using System.Xml.Linq;
3 |
4 | namespace Editor
5 | {
6 | public sealed class SquareRoot : EquationContainer
7 | {
8 | protected RowContainer insideEquation = null;
9 | protected RadicalSign radicalSign;
10 | protected double ExtraHeight
11 | {
12 | get { return FontSize * .15; }
13 | }
14 |
15 | protected double LeftGap
16 | {
17 | get { return FontSize * .1; }
18 | }
19 |
20 | public SquareRoot(EquationContainer parent)
21 | : base(parent)
22 | {
23 | radicalSign = new RadicalSign(this);
24 | ActiveChild = insideEquation = new RowContainer(this);
25 | childEquations.Add(insideEquation);
26 | childEquations.Add(radicalSign);
27 | }
28 |
29 | public override XElement Serialize()
30 | {
31 | XElement thisElement = new XElement(GetType().Name);
32 | thisElement.Add(insideEquation.Serialize());
33 | return thisElement;
34 | }
35 |
36 | public override void DeSerialize(XElement xElement)
37 | {
38 | insideEquation.DeSerialize(xElement.Elements().First());
39 | CalculateSize();
40 | }
41 |
42 | public override double Top
43 | {
44 | get { return base.Top; }
45 | set
46 | {
47 | base.Top = value;
48 | AdjustVertical();
49 | }
50 | }
51 |
52 | private void AdjustVertical()
53 | {
54 | insideEquation.Bottom = Bottom;
55 | radicalSign.Top = Top;
56 | }
57 |
58 | protected override void CalculateWidth()
59 | {
60 | Width = insideEquation.Width + radicalSign.Width + LeftGap;
61 | }
62 |
63 | protected override void CalculateHeight()
64 | {
65 | Height = insideEquation.Height + ExtraHeight;
66 | radicalSign.Height = Height;
67 | AdjustVertical();
68 | }
69 |
70 | public override double Left
71 | {
72 | get { return base.Left; }
73 | set
74 | {
75 | base.Left = value;
76 | radicalSign.Left = value + LeftGap;
77 | insideEquation.Left = radicalSign.Right;
78 | }
79 | }
80 |
81 | public override double RefY
82 | {
83 | get
84 | {
85 | return insideEquation.RefY + ExtraHeight;
86 | }
87 | }
88 | }
89 | }
90 |
--------------------------------------------------------------------------------
/Editor/equations/Bracket/Bracket.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Xml.Linq;
3 |
4 | namespace Editor
5 | {
6 | public abstract class Bracket : EquationContainer
7 | {
8 | protected RowContainer insideEq = null;
9 | protected BracketSign bracketSign;
10 | protected double ExtraHeight { get; set; }
11 |
12 | public Bracket(EquationContainer parent)
13 | : base(parent)
14 | {
15 | ExtraHeight = FontSize * 0.2;
16 | ActiveChild = insideEq = new RowContainer(this);
17 | }
18 |
19 | //public override void DrawEquation(DrawingContext dc)
20 | //{
21 | // base.DrawEquation(dc);
22 | // dc.DrawLine(new Pen(Brushes.Red, 1), new Point(Left, insideEq.MidY), new Point(Right, insideEq.MidY));
23 | // dc.DrawLine(new Pen(Brushes.Blue, 1), new Point(Left, bracketSign.MidY), new Point(Right, bracketSign.MidY));
24 | //}
25 |
26 | public override XElement Serialize()
27 | {
28 | XElement thisElement = new XElement(GetType().Name);
29 | XElement parameters = new XElement("parameters");
30 | parameters.Add(new XElement(bracketSign.SignType.GetType().Name, bracketSign.SignType));
31 | thisElement.Add(parameters);
32 | thisElement.Add(insideEq.Serialize());
33 | return thisElement;
34 | }
35 |
36 | public override void DeSerialize(XElement xElement)
37 | {
38 | insideEq.DeSerialize(xElement.Element(insideEq.GetType().Name));
39 | CalculateSize();
40 | }
41 |
42 | public override double Top
43 | {
44 | get { return base.Top; }
45 | set
46 | {
47 | base.Top = value;
48 | insideEq.MidY = MidY;
49 | bracketSign.MidY = MidY;
50 | }
51 | }
52 |
53 | public override void CalculateSize()
54 | {
55 | CalculateHeight();
56 | CalculateWidth();
57 | }
58 |
59 | protected override void CalculateWidth()
60 | {
61 | Width = insideEq.Width + bracketSign.Width;
62 | }
63 |
64 | protected override void CalculateHeight()
65 | {
66 | ExtraHeight = FontSize * 0.2;
67 | double upperMax = insideEq.RefY;
68 | double lowerMax = insideEq.RefYReverse;
69 | Height = Math.Max(upperMax, lowerMax) * 2 + ExtraHeight;
70 | bracketSign.Height = Height;
71 | }
72 |
73 | //public override double RefY
74 | //{
75 | // get
76 | // {
77 | // return insideEq.RefY + ExtraHeight / 2;
78 | // }
79 | //}
80 | }
81 | }
82 |
--------------------------------------------------------------------------------
/Editor/equations/Root/RadicalSign.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 | using System.Windows.Media;
3 |
4 | namespace Editor
5 | {
6 | public sealed class RadicalSign : EquationBase
7 | {
8 | static double widthFactor = .9;
9 | public RadicalSign(EquationContainer parent)
10 | : base(parent)
11 | {
12 | Width = FontSize * widthFactor;
13 | IsStatic = true;
14 | }
15 |
16 | public override double FontSize
17 | {
18 | get
19 | {
20 | return base.FontSize;
21 | }
22 | set
23 | {
24 | base.FontSize = value;
25 | Width = value * widthFactor;
26 | }
27 | }
28 |
29 | public override void DrawEquation(DrawingContext dc)
30 | {
31 | dc.DrawPolyline(new Point(Left, Bottom - Height * .4),
32 | new PointCollection
33 | {
34 | new Point(Left + FontSize * .2, Bottom - Height * .5),
35 | new Point(Left + FontSize * .2, Bottom - Height * .5),
36 | new Point(Left + FontSize * .4, Bottom),
37 | new Point(Left + FontSize * .4, Bottom),
38 | new Point(Right - FontSize * .1, Top + FontSize * .1),
39 | new Point(Right - FontSize * .1, Top + FontSize * .1),
40 | new Point(ParentEquation.Right, Top + FontSize * .1),
41 | },
42 | StandardPen);
43 | }
44 |
45 | //An incomplete manual solution
46 | //new PointCollection
47 | // {
48 | // new Point(Left + FontSize * .2, Bottom - Height * .5),
49 | // new Point(Left + FontSize * .4, Bottom - FontSize * .17),
50 | // new Point(Right - FontSize * .1, Top + FontSize * .1),
51 | // new Point(ParentEquation.Right, Top + FontSize * .1),
52 | // new Point(ParentEquation.Right, Top + FontSize * .17),
53 | // new Point(Right - FontSize * .05, Top + FontSize * .17),
54 | // new Point(Left + FontSize * .41, Bottom),
55 | // new Point(Left + FontSize * .37, Bottom),
56 | // new Point(Left + FontSize * .2, Bottom - Height * .45),
57 | // });
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/Editor/equations/Division/DivSlanted.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows;
3 | using System.Windows.Media;
4 |
5 | namespace Editor
6 | {
7 | public class DivSlanted : DivBase
8 | {
9 | double ExtraWidth { get { return FontSize * .1; } }
10 | double ExtraHeight { get { return FontSize * .1; } }
11 |
12 | double centerX;
13 | double slantXTop;
14 | double slantXBottom;
15 |
16 | public DivSlanted(EquationContainer parent)
17 | : base(parent, false)
18 | {
19 | }
20 |
21 | public DivSlanted(EquationContainer parent, bool isSmall)
22 | : base(parent, isSmall)
23 | {
24 | }
25 |
26 | public override void DrawEquation(DrawingContext dc)
27 | {
28 | base.DrawEquation(dc);
29 | dc.DrawLine(StandardPen, new Point(Left + centerX + slantXTop, Top), new Point(Left + centerX - slantXBottom, Bottom));
30 | }
31 |
32 | public override double Left
33 | {
34 | get { return base.Left; }
35 | set
36 | {
37 | base.Left = value;
38 | topEquation.Right = Left + centerX - ExtraWidth / 2;
39 | bottomEquation.Left = Left + centerX + ExtraWidth / 2;
40 | }
41 | }
42 | public override double Top
43 | {
44 | get { return base.Top; }
45 | set
46 | {
47 | base.Top = value;
48 | topEquation.Top = this.Top;
49 | bottomEquation.Bottom = Bottom;
50 | }
51 | }
52 |
53 | public override void CalculateSize()
54 | {
55 | CalculateHeight();
56 | CalculateWidth();
57 | }
58 |
59 | protected override void CalculateWidth()
60 | {
61 | double width = topEquation.Width + bottomEquation.Width + ExtraWidth;
62 | Rect rect = new Rect(0, 0, width, Height);
63 | slantXTop = Math.Sin(Math.PI / 5) * (topEquation.Height + ExtraHeight/2);
64 | slantXBottom = Math.Sin(Math.PI / 5) * (bottomEquation.Height + ExtraHeight/2);
65 | rect.Union(new Point(topEquation.Width + slantXTop + ExtraWidth/2, Top));
66 | rect.Union(new Point(bottomEquation.Width + slantXBottom + ExtraWidth/2, Bottom));
67 | Width = rect.Width;
68 | centerX = rect.Width - Math.Max(slantXTop, bottomEquation.Width) - ExtraWidth/2;
69 | }
70 |
71 | protected override void CalculateHeight()
72 | {
73 | Height = topEquation.Height + bottomEquation.Height + ExtraHeight;
74 | }
75 |
76 | //public override double RefY
77 | //{
78 | // get
79 | // {
80 | // return topEquation.Height + ExtraHeight / 2;
81 | // }
82 | //}
83 | }
84 | }
85 |
--------------------------------------------------------------------------------
/Editor/ButtonPanel.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Windows;
4 | using System.Windows.Controls;
5 |
6 | namespace Editor
7 | {
8 | ///
9 | /// Interaction logic for ButtonPanel.xaml
10 | ///
11 | public partial class ButtonPanel : UserControl
12 | {
13 | public event EventHandler ButtonClick = (x, y) => { };
14 |
15 | List commandDetails;
16 | public ButtonPanel(List listCommandDetails, int columns, int buttonMargin)
17 | {
18 | InitializeComponent();
19 | commandDetails = listCommandDetails;
20 | mainGrid.Columns = columns;//listButtonDetails.Count < 5 ? listButtonDetails.Count : 5;
21 | mainGrid.Rows = (int)Math.Ceiling(listCommandDetails.Count / (double)mainGrid.Columns);
22 | mainGrid.Width = 30 * mainGrid.Columns;
23 | mainGrid.Height = 30 * mainGrid.Rows;
24 |
25 | for (int i = 0; i < commandDetails.Count; i++)
26 | {
27 | EditorToolBarButton b = new EditorToolBarButton(commandDetails[i]);
28 | b.Margin = new Thickness(buttonMargin);
29 | b.Click += new RoutedEventHandler(panelButton_Click);
30 | b.Style = (Style)FindResource("MathToolBarButtonStyle");
31 | b.SetValue(Grid.ColumnProperty, i % mainGrid.Columns);
32 | b.SetValue(Grid.RowProperty, i / mainGrid.Columns);
33 | b.FontFamily = FontFactory.GetFontFamily(FontType.STIXGeneral);
34 | //b.FontSize = 10;
35 | if (commandDetails[i].Image != null)
36 | {
37 | b.Content = commandDetails[i].Image;
38 | }
39 | else
40 | {
41 | b.Content = commandDetails[i].UnicodeString;
42 | }
43 | mainGrid.Children.Add(b);
44 | if (commandDetails[i].CommandType == CommandType.None) //This is an ugly kludge!
45 | {
46 | b.Visibility = System.Windows.Visibility.Hidden;
47 | }
48 | }
49 | }
50 |
51 | void panelButton_Click(object sender, RoutedEventArgs e)
52 | {
53 | this.Visibility = System.Windows.Visibility.Collapsed;
54 | ButtonClick(this, EventArgs.Empty);
55 | }
56 | }
57 |
58 | public sealed class EditorToolBarButton : Button
59 | {
60 | CommandDetails commandDetails = null;
61 |
62 | public EditorToolBarButton(CommandDetails commandDetails)
63 | {
64 | this.commandDetails = commandDetails;
65 | }
66 |
67 | protected override void OnClick()
68 | {
69 | base.OnClick();
70 | ((MainWindow)Application.Current.MainWindow).HandleToolBarCommand(commandDetails);
71 | }
72 | }
73 | }
74 |
--------------------------------------------------------------------------------
/Editor/AboutWindow.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 | http://www.MathiVersity.com
43 |
44 |
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/Editor/HistoryToolBar.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using System.Collections.ObjectModel;
3 | using System.Linq;
4 | using System.Windows;
5 | using System.Windows.Controls;
6 | using System.Windows.Input;
7 |
8 | namespace Editor
9 | {
10 | ///
11 | /// Interaction logic for HistoryToolBar.xaml
12 | ///
13 | public partial class HistoryToolBar : UserControl
14 | {
15 | int maxSymbols = 30;
16 | ObservableCollection recentList = new ObservableCollection();
17 | Dictionary usedCount = new Dictionary();
18 |
19 | public HistoryToolBar()
20 | {
21 | this.DataContext = this;
22 | InitializeComponent();
23 | recentListBox.ItemsSource = recentList;
24 | var data = ConfigManager.GetConfigurationValue(KeyName.symbols);
25 | if (data.Length > 0)
26 | {
27 | string[] list = data.Split(',');
28 | foreach (var s in list)
29 | {
30 | recentList.Add(s);
31 | usedCount.Add(s, 0);
32 | }
33 | }
34 | recentListBox.FontFamily = FontFactory.GetFontFamily(FontType.STIXGeneral);
35 | }
36 |
37 | public void AddItem(string symbol)
38 | {
39 | if (usedCount.ContainsKey(symbol))
40 | {
41 | usedCount[symbol] += 1;
42 | }
43 | else
44 | {
45 | if (usedCount.Count >= maxSymbols)
46 | {
47 | int min = int.MaxValue;
48 | string s = usedCount.First().Key;
49 | foreach (var pair in usedCount)
50 | {
51 | if (pair.Value < min)
52 | {
53 | min = pair.Value;
54 | s = pair.Key;
55 | }
56 | }
57 | recentList.Remove(s);
58 | usedCount.Remove(s);
59 | }
60 | recentList.Insert(0, symbol);
61 | usedCount.Add(symbol, 1);
62 | }
63 | }
64 |
65 | private void symbolClick(object sender, MouseButtonEventArgs e)
66 | {
67 | string item = ((TextBlock)sender).DataContext as string;
68 | CommandDetails commandDetails = new CommandDetails { UnicodeString = item, CommandType = Editor.CommandType.Text };
69 | ((MainWindow)Application.Current.MainWindow).HandleToolBarCommand(commandDetails);
70 | }
71 |
72 | public void Save()
73 | {
74 | string data = "";
75 | foreach (var s in recentList)
76 | {
77 | data += s + ",";
78 | }
79 | data = data.Trim(',');
80 | ConfigManager.SetConfigurationValue(KeyName.symbols, data);
81 | }
82 | }
83 | }
84 |
--------------------------------------------------------------------------------
/Editor/equations/Text/TextFormat.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows;
3 | using System.Windows.Media;
4 | using System.Xml.Linq;
5 |
6 | namespace Editor
7 | {
8 | public sealed class TextFormat
9 | {
10 | public double FontSize { get; private set; }
11 | public FontType FontType { get; private set; }
12 | public FontFamily FontFamily { get; private set; }
13 | public FontStyle FontStyle { get; private set; }
14 | public FontWeight FontWeight { get; private set; }
15 | public SolidColorBrush TextBrush { get; private set; }
16 | public Typeface TypeFace { get; private set; }
17 | public string TextBrushString { get; private set; }
18 | public bool UseUnderline { get; set; }
19 | public int Index { get; set; }
20 |
21 | public TextFormat(double size, FontType ft, FontStyle fs, FontWeight fw, SolidColorBrush brush, bool useUnderline)
22 | {
23 | this.FontSize = Math.Round(size, 1);
24 | this.FontType = ft;
25 | this.FontFamily = FontFactory.GetFontFamily(ft);
26 | this.FontStyle = fs;
27 | this.UseUnderline = useUnderline;
28 | this.FontWeight = fw;
29 | this.TextBrush = brush;
30 | this.TypeFace = new Typeface(FontFamily, fs, fw, FontStretches.Normal, FontFactory.GetFontFamily(FontType.STIXGeneral));
31 | BrushConverter bc = new BrushConverter();
32 | TextBrushString = bc.ConvertToString(brush);
33 | }
34 |
35 | public XElement Serialize()
36 | {
37 | XElement thisElement = new XElement(GetType().Name);
38 | thisElement.Add(new XElement("FontSize", FontSize),
39 | new XElement("FontType", FontType),
40 | new XElement("FontStyle", FontStyle),
41 | new XElement("Underline", UseUnderline),
42 | new XElement("FontWeight", FontWeight),
43 | new XElement("Brush", TextBrushString));
44 | return thisElement;
45 | }
46 |
47 | public static TextFormat DeSerialize(XElement xe)
48 | {
49 | double fontSize = double.Parse(xe.Element("FontSize").Value);
50 | FontType fontType = (FontType)Enum.Parse(typeof(FontType), xe.Element("FontType").Value);
51 | FontStyle fontStyle = xe.Element("FontStyle").Value == "Italic" ? FontStyles.Italic : FontStyles.Normal;
52 | FontWeight fontWeight = xe.Element("FontWeight").Value == "Bold" ? FontWeights.Bold : FontWeights.Normal;
53 | BrushConverter bc = new BrushConverter();
54 | SolidColorBrush brush = (SolidColorBrush)bc.ConvertFrom(xe.Element("Brush").Value);
55 | bool useUnderline = Convert.ToBoolean(xe.Element("Underline").Value);
56 | return new TextFormat(fontSize, fontType, fontStyle, fontWeight, brush, useUnderline);
57 | }
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/Editor/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.269
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace Editor.Properties
12 | {
13 |
14 |
15 | ///
16 | /// A strongly-typed resource class, for looking up localized strings, etc.
17 | ///
18 | // This class was auto-generated by the StronglyTypedResourceBuilder
19 | // class via a tool like ResGen or Visual Studio.
20 | // To add or remove a member, edit your .ResX file then rerun ResGen
21 | // with the /str option, or rebuild your VS project.
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class Resources
26 | {
27 |
28 | private static global::System.Resources.ResourceManager resourceMan;
29 |
30 | private static global::System.Globalization.CultureInfo resourceCulture;
31 |
32 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
33 | internal Resources()
34 | {
35 | }
36 |
37 | ///
38 | /// Returns the cached ResourceManager instance used by this class.
39 | ///
40 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
41 | internal static global::System.Resources.ResourceManager ResourceManager
42 | {
43 | get
44 | {
45 | if ((resourceMan == null))
46 | {
47 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Editor.Properties.Resources", typeof(Resources).Assembly);
48 | resourceMan = temp;
49 | }
50 | return resourceMan;
51 | }
52 | }
53 |
54 | ///
55 | /// Overrides the current thread's CurrentUICulture property for all
56 | /// resource lookups using this strongly typed resource class.
57 | ///
58 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
59 | internal static global::System.Globalization.CultureInfo Culture
60 | {
61 | get
62 | {
63 | return resourceCulture;
64 | }
65 | set
66 | {
67 | resourceCulture = value;
68 | }
69 | }
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/Editor/equations/Division/DivMath.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Linq;
3 | using System.Xml.Linq;
4 |
5 | namespace Editor
6 | {
7 | public class DivMath : EquationContainer
8 | {
9 | protected RowContainer insideEquation = null;
10 | protected DivMathSign divMathSign;
11 | protected double ExtraHeight
12 | {
13 | get { return FontSize * .3; }
14 | }
15 |
16 | protected double VerticalGap
17 | {
18 | get { return FontSize * .1; }
19 | }
20 |
21 | protected double LeftGap
22 | {
23 | get { return FontSize * .1; }
24 | }
25 |
26 | public DivMath(EquationContainer parent)
27 | : base(parent)
28 | {
29 | divMathSign = new DivMathSign(this);
30 | ActiveChild = insideEquation = new RowContainer(this);
31 | childEquations.Add(insideEquation);
32 | childEquations.Add(divMathSign);
33 | }
34 |
35 | public override XElement Serialize()
36 | {
37 | XElement thisElement = new XElement(GetType().Name);
38 | thisElement.Add(insideEquation.Serialize());
39 | return thisElement;
40 | }
41 |
42 | public override void DeSerialize(XElement xElement)
43 | {
44 | insideEquation.DeSerialize(xElement.Elements().First());
45 | CalculateSize();
46 | }
47 |
48 | public override double Top
49 | {
50 | get { return base.Top; }
51 | set
52 | {
53 | base.Top = value;
54 | AdjustVertical();
55 | }
56 | }
57 |
58 | protected virtual void AdjustVertical()
59 | {
60 | insideEquation.Top = Top + VerticalGap;
61 | divMathSign.Top = Top + VerticalGap;
62 | }
63 |
64 | public override void CalculateSize()
65 | {
66 | CalculateHeight();
67 | CalculateWidth();
68 | }
69 |
70 | protected override void CalculateWidth()
71 | {
72 | Width = insideEquation.Width + divMathSign.Width + LeftGap;
73 | }
74 |
75 | protected override void CalculateHeight()
76 | {
77 | divMathSign.Height = insideEquation.FirstRow.Height + ExtraHeight;
78 | Height = Math.Max(insideEquation.Height + ExtraHeight, divMathSign.Height);
79 | }
80 |
81 | public override double Left
82 | {
83 | get { return base.Left; }
84 | set
85 | {
86 | base.Left = value;
87 | divMathSign.Left = value + LeftGap;
88 | insideEquation.Left = divMathSign.Right;
89 | }
90 | }
91 |
92 | public override double RefY
93 | {
94 | get
95 | {
96 | return insideEquation.FirstRow.RefY + VerticalGap;
97 | }
98 | }
99 | }
100 | }
101 |
--------------------------------------------------------------------------------
/Editor/equations/Division/DivHorizontal.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows;
3 | using System.Windows.Input;
4 | using System.Windows.Media;
5 |
6 | namespace Editor
7 | {
8 | public class DivHorizontal : DivBase
9 | {
10 | double ExtraWidth { get { return FontSize * .3; } }
11 |
12 | public DivHorizontal(EquationContainer parent)
13 | : base(parent, false)
14 | {
15 | }
16 |
17 | public DivHorizontal(EquationContainer parent, bool isSmall)
18 | : base (parent, isSmall)
19 | {
20 | }
21 |
22 | public override void DrawEquation(DrawingContext dc)
23 | {
24 | base.DrawEquation(dc);
25 | dc.DrawLine(StandardPen, new Point(bottomEquation.Left - ExtraWidth/10, Top), new Point(topEquation.Right + ExtraWidth/10, Bottom));
26 | }
27 |
28 | public override double Left
29 | {
30 | get { return base.Left; }
31 | set
32 | {
33 | base.Left = value;
34 | AdjustHorizontal();
35 | }
36 | }
37 |
38 | private void AdjustHorizontal()
39 | {
40 |
41 | topEquation.Left = this.Left;
42 | bottomEquation.Left = topEquation.Right + ExtraWidth;
43 | }
44 | public override double Top
45 | {
46 | get { return base.Top; }
47 | set
48 | {
49 | base.Top = value;
50 | topEquation.MidY = MidY;
51 | bottomEquation.MidY = MidY;
52 | }
53 | }
54 |
55 | public override double RefY
56 | {
57 | get
58 | {
59 | return Math.Max(topEquation.RefY, bottomEquation.RefY);
60 | }
61 | }
62 |
63 |
64 | protected override void CalculateWidth()
65 | {
66 | Width = topEquation.Width + bottomEquation.Width + ExtraWidth;
67 | AdjustHorizontal();
68 | }
69 |
70 | protected override void CalculateHeight()
71 | {
72 | Height = Math.Max(topEquation.Height , bottomEquation.Height);
73 | }
74 |
75 | public override bool ConsumeKey(Key key)
76 | {
77 | if (ActiveChild.ConsumeKey(key))
78 | {
79 | CalculateSize();
80 | return true;
81 | }
82 | if (key == Key.Right)
83 | {
84 | if (ActiveChild == topEquation)
85 | {
86 | ActiveChild = bottomEquation;
87 | return true;
88 | }
89 | }
90 | else if (key == Key.Left)
91 | {
92 | if (ActiveChild == bottomEquation)
93 | {
94 | ActiveChild = topEquation;
95 | return true;
96 | }
97 | }
98 | return false;
99 | }
100 | }
101 | }
102 |
--------------------------------------------------------------------------------
/Editor/equations/SubSuper/Sub.cs:
--------------------------------------------------------------------------------
1 | using System.Xml.Linq;
2 |
3 | namespace Editor
4 | {
5 | public sealed class Sub : SubSuperBase
6 | {
7 | RowContainer rowContainer;
8 |
9 | public Sub(EquationRow parent, Position position)
10 | : base(parent, position)
11 | {
12 | ActiveChild = rowContainer = new RowContainer(this);
13 | childEquations.Add(rowContainer);
14 | if (SubLevel == 1)
15 | {
16 | rowContainer.FontFactor = SubFontFactor;
17 | }
18 | else if (SubLevel == 2)
19 | {
20 | rowContainer.FontFactor = SubSubFontFactor;
21 | }
22 | }
23 |
24 | public override XElement Serialize()
25 | {
26 | XElement thisElement = new XElement(GetType().Name);
27 | XElement parameters = new XElement("parameters");
28 | parameters.Add(new XElement(Position.GetType().Name, Position));
29 | thisElement.Add(parameters);
30 | thisElement.Add(rowContainer.Serialize());
31 | return thisElement;
32 | }
33 |
34 | public override void DeSerialize(XElement xElement)
35 | {
36 | rowContainer.DeSerialize(xElement.Element(rowContainer.GetType().Name));
37 | CalculateSize();
38 | }
39 |
40 | protected override void CalculateWidth()
41 | {
42 | /*
43 | double width = rowContainer.Width + Padding * 2;
44 | TextEquation te = Buddy as TextEquation;
45 | if (te != null)
46 | {
47 | width += te.OverHangTrailing;
48 | }
49 | */
50 | Width = rowContainer.Width + Padding * 2;
51 | }
52 |
53 | public override double Left
54 | {
55 | get { return base.Left; }
56 | set
57 | {
58 | base.Left = value;
59 | rowContainer.Left = this.Left + Padding;
60 | }
61 | }
62 |
63 | public override System.Windows.Thickness Margin
64 | {
65 | get
66 | {
67 | double left = 0;
68 | TextEquation te = Buddy as TextEquation;
69 | if (te != null)
70 | {
71 | left += te.OverhangTrailing;
72 | }
73 | return new System.Windows.Thickness(left, 0, 0, 0);
74 | }
75 | }
76 |
77 | protected override void CalculateHeight()
78 | {
79 | Height = rowContainer.Height - SubOverlap;
80 | }
81 |
82 | public override double Top
83 | {
84 | get { return base.Top; }
85 | set
86 | {
87 | base.Top = value;
88 | rowContainer.Bottom = Bottom;
89 | }
90 | }
91 |
92 | public override double RefY
93 | {
94 | get
95 | {
96 | return 0;
97 | }
98 | }
99 | }
100 | }
101 |
--------------------------------------------------------------------------------