Platforms to show: All Mac Windows Linux Cross-Platform
Required plugins for this example: MBS Main Plugin, MBS MacFrameworks Plugin, MBS MacBase Plugin
You find this example project in your Plugins Download as a Xojo project file within the examples folder: /MacFrameworks/Blocks test
This example is the version from Mon, 14th Sep 2014.
Project "Blocks test.xojo_binary_project"
Class App Inherits Application
Const kEditClear = "&Löschen"
Const kFileQuit = "Beenden"
Const kFileQuitShortcut = ""
End Class
Class Window1 Inherits Window
Control List Inherits Listbox
ControlInstance List Inherits Listbox
EventHandler Sub ExpandRow(row As Integer)
dim d as Dictionary = me.CellTag(row,0)
if d<>Nil then
for each key as Variant in d.keys
dim value as Variant = d.Value(key)
me.AddRow key.StringValue +" -> "+value.StringValue
next
end if
End EventHandler
End Control
Control StaticText1 Inherits Label
ControlInstance StaticText1 Inherits Label
End Control
EventHandler Sub Open()
// register receiver
DefaultObserver=new MyNSNotificationObserverMBS
// observer via Plugin
dim d as NSNotificationCenterMBS = NSNotificationCenterMBS.defaultCenter
d.addObserver(DefaultObserver)
// same with declares
soft declare sub addObserver lib "Cocoa" selector "addObserverForName:object:queue:usingBlock:" _
(selfHandle as integer, nameHandle as integer, objectHandle as integer, _
queue as integer, block as integer)
m = new myBlock
addObserver(d.Handle, 0, 0, 0, m.GetBlockVI)
End EventHandler
Property DefaultObserver As MyNSNotificationObserverMBS
Property m As myBlock
End Class
MenuBar MenuBar1
MenuItem FileMenu = "&Ablage"
MenuItem FileQuit = "#App.kFileQuit"
MenuItem EditMenu = "&Bearbeiten"
MenuItem EditUndo = "&Rückgängig"
MenuItem UntitledMenu1 = "-"
MenuItem EditCut = "&Ausschneiden"
MenuItem EditCopy = "&Kopieren"
MenuItem EditPaste = "&Einfügen"
MenuItem EditClear = "#App.kEditClear"
MenuItem UntitledMenu0 = "-"
MenuItem EditSelectAll = "&Alles auswählen"
End MenuBar
Class MyNSNotificationObserverMBS Inherits NSNotificationObserverMBS
EventHandler Sub GotNotification(notification as NSNotificationMBS)
dim l as listbox = window1.List
dim d as Dictionary = Notification.userInfo
dim n as string = "Plugin: "+Notification.name
if d<>Nil then
l.InsertFolder 0, n
l.CellTag(l.LastIndex,0)=d
else
l.InsertRow 0, n
end if
End EventHandler
End Class
Class myBlock Inherits BlockMBS
EventHandler Sub BlockVI(Async as boolean, tag as variant, value as Integer)
dim Notification as new NSNotificationMBS(value)
dim l as listbox = window1.List
dim d as Dictionary = Notification.userInfo
dim n as string = "Declare: "+Notification.name
if d<>Nil then
l.InsertFolder 0, n
l.CellTag(l.LastIndex,0)=d
else
l.InsertRow 0, n
end if
End EventHandler
End Class
End Project
The items on this page are in the following plugins: MBS MacFrameworks Plugin.