Example: /Win/TextArea Sub and SuperScript

Online Documentation   -   Statistics   -   FAQ   -   Plugin Parts (All, Dependencies)   -   Class hierarchy

New in Version 22.2 22.3 22.4 22.5 23.0 23.1 23.2 23.3 23.4 23.5 24.0 24.1

The list of the   topics,   classes,   interfaces,   controls,   modules,   global methods by category,   global methods by name,   screenshots,   licenses   and   examples.

Platforms to show: All Mac Windows Linux Cross-Platform

/Win/TextArea Sub and SuperScript


Required plugins for this example: MBS MacBase Plugin, MBS MacCocoa Plugin, MBS Main Plugin

You find this example project in your Plugins Download as a Xojo project file within the examples folder: /Win/TextArea Sub and SuperScript

This example is the version from Wed, 17th Jan 2017.

Project "TextArea Sub and SuperScript.xojo_binary_project"
Class App Inherits Application
Const kEditClear = "&Delete"
Const kFileQuit = "&Quit"
Const kFileQuitShortcut = ""
End Class
Class Window1 Inherits Window
Control TextArea1 Inherits TextArea
ControlInstance TextArea1 Inherits TextArea
EventHandler Sub SelChange() 'SubScriptButton.Value = me.WinSelSubScriptMBS 'SuperScriptButton.Value = me.WinSelSuperScriptMBS SubScriptButton.Value = me.SelSubScript SuperScriptButton.Value = me.SelSuperScript End EventHandler
End Control
Control SubScriptButton Inherits BevelButton
ControlInstance SubScriptButton Inherits BevelButton
EventHandler Sub Action() 'TextArea1.WinSelSubScriptMBS = me.Value TextArea1.selSubScript = me.Value End EventHandler
End Control
Control SuperScriptButton Inherits BevelButton
ControlInstance SuperScriptButton Inherits BevelButton
EventHandler Sub Action() 'TextArea1.WinSelSuperScriptMBS = me.Value TextArea1.selSuperScript = me.Value End EventHandler
End Control
EventHandler Sub Open() TextArea1.AppendText "Hello " TextArea1.SelSubScript = true TextArea1.AppendText "SubScript " TextArea1.SelSubScript = false TextArea1.AppendText "World " TextArea1.SelSuperScript = true TextArea1.AppendText "SuperScript " TextArea1.SelSuperScript = false TextArea1.AppendText "ok?" End EventHandler
End Class
MenuBar MainMenuBar
MenuItem FileMenu = "&File"
MenuItem FileQuit = "#App.kFileQuit"
MenuItem EditMenu = "&Edit"
MenuItem EditUndo = "&Undo"
MenuItem EditSeparator1 = "-"
MenuItem EditCut = "Cu&t"
MenuItem EditCopy = "&Copy"
MenuItem EditPaste = "&Paste"
MenuItem EditClear = "#App.kEditClear"
MenuItem EditSeparator2 = "-"
MenuItem EditSelectAll = "Select &All"
End MenuBar
Module TextAreaModule
Function SelSubScript(extends t as TextArea) As Boolean #if TargetWin32 then // for Windows return t.WinSelSubScriptMBS #elseif TargetCocoa then // for Mac dim n as NSTextViewMBS = t.NSTextViewMBS dim s as NSTextStorageMBS = n.textStorage // and for typing dim att as Dictionary = n.typingAttributes return att.lookup( NSAttributedStringMBS.NSSuperscriptAttributeName, 0) < 0 #else break // not supported #endif End Function
Sub SelSubScript(extends t as TextArea, assigns value as Boolean) #if TargetWin32 then // for Windows t.WinSelSubScriptMBS = value #elseif TargetCocoa then // for Mac dim n as NSTextViewMBS = t.NSTextViewMBS dim s as NSTextStorageMBS = n.textStorage dim range as new NSRangeMBS( t.SelStart,t.SelLength ) // change it for selection if range.length > 0 then if value then s.subscriptRange(range.location, range.length) else s.unscriptRange(range.location, range.length) end if end if // and for typing dim att as Dictionary = n.typingAttributes dim v as integer if value then v = -1 else v = 0 end if att.Value( NSAttributedStringMBS.NSSuperscriptAttributeName ) = v n.typingAttributes = att #else break // not supported #endif End Sub
Function SelSuperScript(extends t as TextArea) As Boolean #if TargetWin32 then // for Windows return t.WinSelSuperScriptMBS #elseif TargetCocoa then // for Mac dim n as NSTextViewMBS = t.NSTextViewMBS dim s as NSTextStorageMBS = n.textStorage // and for typing dim att as Dictionary = n.typingAttributes return att.lookup( NSAttributedStringMBS.NSSuperscriptAttributeName, 0) > 0 #else break // not supported #endif End Function
Sub SelSuperScript(extends t as TextArea, assigns value as Boolean) #if TargetWin32 then // for Windows t.WinSelSuperScriptMBS = value #elseif TargetCocoa then // for Mac dim n as NSTextViewMBS = t.NSTextViewMBS dim s as NSTextStorageMBS = n.textStorage dim range as new NSRangeMBS( t.SelStart,t.SelLength ) // change it for selection if range.length > 0 then if value then s.superscriptRange(range.location, range.length) else s.unscriptRange(range.location, range.length) end if end if // and for typing dim att as Dictionary = n.typingAttributes dim v as integer if value then v = 1 else v = 0 end if att.Value( NSAttributedStringMBS.NSSuperscriptAttributeName ) = v n.typingAttributes = att #else break // not supported #endif End Sub
End Module
End Project

See also:

The items on this page are in the following plugins: MBS Win Plugin.


💬 Ask a question or report a problem