Xojo Conferences

Platforms to show: All Mac Windows Linux Cross-Platform

/MacCocoa/Window Colorspace
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: /MacCocoa/Window Colorspace
This example is the version from Tue, 22th Dec 2014.
Project "Window Colorspace.rbp"
Class App Inherits Application
Const kEditClear = "&Delete"
Const kFileQuit = "&Quit"
Const kFileQuitShortcut = ""
EventHandler Sub Open() dim w1 as new window1(NSColorSpaceMBS.adobeRGB1998ColorSpace) dim w2 as new window1(NSColorSpaceMBS.genericRGBColorSpace) dim w3 as new window1(NSColorSpaceMBS.deviceRGBColorSpace) dim w4 as new window1(NSColorSpaceMBS.sRGBColorSpace) dim s as NSScreenMBS = NSScreenMBS.mainScreen dim c as NSColorSpaceMBS = s.colorSpace dim w5 as new window1(c) End EventHandler
End Class
Class Window1 Inherits Window
EventHandler Sub Paint(g As Graphics, areas() As REALbasic.Rect) dim x as integer = ceil(g.Width/5) dim y as integer = ceil(g.Height/2) // top with Xojo drawing in generic RGB g.ForeColor = &c000000 g.FillRect 0, 0, x, y g.ForeColor = &cFFFFFF g.FillRect x , 0, x, y g.ForeColor = &cFF0000 g.FillRect x*2, 0, x, y g.ForeColor = &c00FF00 g.FillRect x*3, 0, x, y g.ForeColor = &c0000FF g.FillRect x*4, 0, x, y // below we draw with Cocoa directly in colorspace of window dim ng as NSGraphicsMBS = NSGraphicsMBS.graphicsContext dim c1 as NSColorMBS = NSColorMBS.colorWithColorSpace(me.colorspace, 0.0, 0.0, 0.0, 1.0) dim r1 as new NSRectMBS(x*0, 0, x, y) ng.setColor c1 ng.fillRect r1 dim c2 as NSColorMBS = NSColorMBS.colorWithColorSpace(me.colorspace, 1.0, 1.0, 1.0, 1.0) dim r2 as new NSRectMBS(x*1, 0, x, y) ng.setColor c2 ng.fillRect r2 dim c3 as NSColorMBS = NSColorMBS.colorWithColorSpace(me.colorspace, 1.0, 0.0, 0.0, 1.0) dim r3 as new NSRectMBS(x*2, 0, x, y) ng.setColor c3 ng.fillRect r3 dim c4 as NSColorMBS = NSColorMBS.colorWithColorSpace(me.colorspace, 0.0, 1.0, 0.0, 1.0) dim r4 as new NSRectMBS(x*3, 0, x, y) ng.setColor c4 ng.fillRect r4 dim c5 as NSColorMBS = NSColorMBS.colorWithColorSpace(me.colorspace, 0.0, 0.0, 1.0, 1.0) dim r5 as new NSRectMBS(x*4, 0, x, y) ng.setColor c5 ng.fillRect r5 End EventHandler
Sub Constructor(c as NSColorSpaceMBS) // Calling the overridden superclass constructor. Super.Constructor me.colorspace = c dim w as new NSWindowMBS(self) w.colorSpace = c Title = c.localizedName End Sub
Property colorspace As NSColorSpaceMBS
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

See also:

Feedback, Comments & Corrections

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

MBS Xojo blog