Platforms to show: All Mac Windows Linux Cross-Platform
/MacCG/Attributed String print
Required plugins for this example: MBS MacBase Plugin, MBS MacCocoa Plugin, MBS MacCF Plugin, MBS MacCG Plugin, MBS Main Plugin
You find this example project in your Plugins Download as a Xojo project file within the examples folder: /MacCG/Attributed String print
This example is the version from Fri, 5th Jun 2014.
Project "Attributed String print.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 Open()
me.SelStart =0
me.SelLength = 12
me.SelBold = True
me.SelStart = 0
me.SelLength = 0
End EventHandler
End Control
Control BevelButton1 Inherits BevelButton
ControlInstance BevelButton1 Inherits BevelButton
EventHandler Sub Action()
dim g as Graphics = OpenPrinterDialog
if g = nil then Return
dim textView as NSTextViewMBS = TextArea1.NSTextViewMBS
//this just gets the stored text (cannot use textView otherwise)
dim t as NSAttributedStringMBS = textView.textStorage.copy
//define the location to put the text
dim rect as new CGRectMBS(100,100, g.Width-200, g.height-200)
//and a new graphics object for the view
dim h as integer = g.Handle(g.HandleTypeCGContextRef)
dim c as CGContextMBS = CGContextMBS.contextWithCGContext(h)
dim path as new CGMutablePathMBS
path.AddRect nil, rect
dim ca as CFAttributedStringMBS = t.AsCFAttributedString
dim fs as CTFramesetterMBS = CTFramesetterMBS.CreateWithAttributedString(ca)
dim fr as CTFrameMBS = fs.CreateFrame(0, 0, path, nil)
fr.Draw(c)
fr = nil
fs = nil
c.Flush
c = nil
g = nil
'
End EventHandler
End Control
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
End Project
The items on this page are in the following plugins: MBS MacCG Plugin.