Platforms to show: All Mac Windows Linux Cross-Platform
Required plugins for this example: MBS Util Plugin, MBS Win Plugin
You find this example project in your Plugins Download as a Xojo project file within the examples folder: /Win/Notification
This example is the version from Sun, 16th Aug 2014.
Project "Notification.xojo_binary_project"
Class App Inherits Application
Const kEditClear = "&Löschen"
Const kFileQuit = "Beenden"
Const kFileQuitShortcut = ""
EventHandler Sub Open()
if not TargetWin32 then
MsgBox "This example is only for Windows."
end if
End EventHandler
End Class
Class MainWindow Inherits Window
Control ListenButton Inherits PushButton
ControlInstance ListenButton Inherits PushButton
EventHandler Sub Action()
if w.ListenForMessage(TextField1.text) then
List.InsertRow 0, "Listening for "+TextField1.Text
else
List.InsertRow 0, "Failed to listening for "+TextField1.Text
end if
End EventHandler
End Control
Control TextField1 Inherits TextField
ControlInstance TextField1 Inherits TextField
End Control
Control StopListening Inherits PushButton
ControlInstance StopListening Inherits PushButton
EventHandler Sub Action()
if w.StopListeningForMessage(TextField1.text) then
List.InsertRow 0, "Stopped listening for "+TextField1.Text
else
List.InsertRow 0, "Failed to stop listening for "+TextField1.Text
end if
End EventHandler
End Control
Control SendButton Inherits PushButton
ControlInstance SendButton Inherits PushButton
EventHandler Sub Action()
dim v1,v2 as integer
v1 = val(TextField2.text)
v2 = val(TextField3.text)
if w.SendMessage(TextField1.text, v1, v2) then
List.InsertRow 0, "Sent message "+TextField1.Text
else
List.InsertRow 0, "Failed to send message "+TextField1.Text
end if
End EventHandler
End Control
Control list Inherits Listbox
ControlInstance list Inherits Listbox
End Control
Control TextField2 Inherits TextField
ControlInstance TextField2 Inherits TextField
End Control
Control TextField3 Inherits TextField
ControlInstance TextField3 Inherits TextField
End Control
Control StaticText1 Inherits Label
ControlInstance StaticText1 Inherits Label
End Control
EventHandler Sub Open()
w = new MyWinNotification
// also listen for time changes and app switches
const WM_DISPLAYCHANGE = &h7E
const WM_TIMECHANGE = &h001E
const WM_ACTIVATEAPP = &h1C
const WM_DEVICECHANGE = &h0219
call w.ListenForMessage WM_TIMECHANGE
call w.ListenForMessage WM_ACTIVATEAPP
call w.ListenForMessage WM_DISPLAYCHANGE
call w.ListenForMessage WM_DEVICECHANGE
End EventHandler
Property w As MyWinNotification
End Class
MenuBar MenuBar1
MenuItem FileMenu = "&Datei"
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 MyWinNotification Inherits WinNotificationMBS
EventHandler Sub GotNotification(Message as Integer, Name as string, Value1 as Integer, Value2 as Integer)
const WM_TIMECHANGE = &h001E
const WM_ACTIVATEAPP = &h1C
const WM_DISPLAYCHANGE = &h7E
const WM_DEVICECHANGE = &h0219
Select case Message
case WM_TIMECHANGE
Mainwindow.list.InsertRow 0, "System time changed."
case WM_ACTIVATEAPP
Mainwindow.list.InsertRow 0, "App switched."
case WM_DISPLAYCHANGE
Mainwindow.list.InsertRow 0, "Display Switched."
// http://msdn.microsoft.com/de-de/library/windows/desktop/dd145210(v=vs.85).aspx
// value1 = wParam, value2 = LParam
Mainwindow.list.InsertRow 1, "New bit depth: "+str(value1)
Mainwindow.list.InsertRow 2, "New width: "+str(LoWordMBS(value2))
Mainwindow.list.InsertRow 3, "New height: "+str(HiWordMBS(value2))
case WM_DEVICECHANGE
Mainwindow.list.InsertRow 0, "Drive Changed."
// http://msdn.microsoft.com/en-us/library/windows/desktop/aa363480(v=vs.85).aspx
const DBT_DEVICEARRIVAL = &h8000 // system detected a new device
const DBT_DEVICEQUERYREMOVE = &h8001 // wants to remove, may fail
const DBT_DEVICEQUERYREMOVEFAILED = &h8002 // removal aborted
const DBT_DEVICEREMOVEPENDING = &h8003 // about to remove, still avail.
const DBT_DEVICEREMOVECOMPLETE = &h8004 // device is gone
const DBT_DEVICETYPESPECIFIC = &h8005 // type specific event
Select case Value1
case DBT_DEVICEARRIVAL
Mainwindow.list.InsertRow 1, "system detected a new device"
case DBT_DEVICEQUERYREMOVE
Mainwindow.list.InsertRow 1, "wants to remove, may fail"
case DBT_DEVICEQUERYREMOVEFAILED
Mainwindow.list.InsertRow 1, "removal aborted"
case DBT_DEVICEREMOVEPENDING
Mainwindow.list.InsertRow 1, "about to remove, still avail."
case DBT_DEVICEREMOVECOMPLETE
Mainwindow.list.InsertRow 1, "device is gone"
case DBT_DEVICETYPESPECIFIC
Mainwindow.list.InsertRow 1, "type specific event"
end Select
else
Mainwindow.list.InsertRow 0, name+": "+str(value1)+", "+str(value2)
end Select
End EventHandler
End Class
End Project
The items on this page are in the following plugins: MBS Win Plugin.