Xojo Conferences
XDCMay2019MiamiUSA

Platforms to show: All Mac Windows Linux Cross-Platform

/Win/Sparkle for Windows/WinSparkle Test
Function:
Required plugins for this example:
You find this example project in your Plugins Download as a Xojo project file within the examples folder: /Win/Sparkle for Windows/WinSparkle Test
This example is the version from Mon, 18th Dec 2016.
Project "WinSparkle Test.rbp"
Class App Inherits Application
Const kEditClear = "&Löschen"
Const kFileQuit = "Beenden"
Const kFileQuitShortcut = ""
EventHandler Sub Close() #if TargetWin32 then if Sparkle <> nil then dim Sparkle as MyWinSparkleMBS = app.Sparkle Sparkle.Cleanup end if #endif End EventHandler
EventHandler Sub Open() InitWinSparkle End EventHandler
Function FindFile(name as string) As FolderItem // Look for file in parent folders from executable on dim parent as FolderItem = app.ExecutableFile.Parent while parent<>Nil dim file as FolderItem = parent.Child(name) if file<>Nil and file.Exists then Return file end if parent = parent.Parent wend End Function
Sub InitWinSparkle() #if TargetWin32 dim f as FolderItem #if Target64Bit then f = FindFile("WinSparkle64.dll") #else f = FindFile("WinSparkle32.dll") #endif if WinSparkleMBS.LoadLibrary(f) then dim s as new MyWinSparkleMBS s.CompanyName = "Test Inc." s.AppName = "Test App" s.AppVersion = "1.2" s.AppCastURL = "https://www.monkeybreadsoftware.de/UpdaterTest/win.xml" log "AppCastURL: "+s.AppCastURL // for details on feed format, check: // https://github.com/vslavik/winsparkle/wiki/Appcast-Feeds s.Initialize self.Sparkle = s log "Initialized" else MsgBox "Failed to load Sparkle DLL." end if #else Return #endif End Sub
Property Shared Sparkle As Variant
End Class
Class MainWindow Inherits Window
Control LogList Inherits Listbox
ControlInstance LogList Inherits Listbox
End Control
Control CheckAutomaticCheckForUpdates Inherits CheckBox
ControlInstance CheckAutomaticCheckForUpdates Inherits CheckBox
EventHandler Sub Action() #if TargetWin32 if inited then dim Sparkle as MyWinSparkleMBS = app.Sparkle sparkle.AutomaticCheckForUpdates = CheckAutomaticCheckForUpdates.value end if #endif End EventHandler
End Control
Control CheckCanShutdown Inherits CheckBox
ControlInstance CheckCanShutdown Inherits CheckBox
EventHandler Sub Action() #if TargetWin32 then if inited then dim Sparkle as MyWinSparkleMBS = app.Sparkle sparkle.CanShutdown = CheckCanShutdown.value end if #endif End EventHandler
End Control
Control Label5 Inherits Label
ControlInstance Label5 Inherits Label
End Control
Control LastCheckTimeField Inherits Label
ControlInstance LastCheckTimeField Inherits Label
End Control
Control BevelButton1 Inherits BevelButton
ControlInstance BevelButton1 Inherits BevelButton
EventHandler Sub Action() #if TargetWin32 dim Sparkle as MyWinSparkleMBS = app.Sparkle Sparkle.CheckUpdateWithUI #endif End EventHandler
End Control
Control BevelButton2 Inherits BevelButton
ControlInstance BevelButton2 Inherits BevelButton
EventHandler Sub Action() #if TargetWin32 dim Sparkle as MyWinSparkleMBS = app.Sparkle Sparkle.CheckUpdateWithoutUI #endif End EventHandler
End Control
EventHandler Sub Open() #if TargetWin32 then dim Sparkle as MyWinSparkleMBS = app.Sparkle queryLastCheckTime CheckAutomaticCheckForUpdates.value = sparkle.AutomaticCheckForUpdates Inited = true #endif End EventHandler
Sub queryLastCheckTime() #if TargetWin32 dim Sparkle as MyWinSparkleMBS = app.Sparkle dim n as integer = sparkle.LastCheckTime if n = -1 then LastCheckTimeField.Text = "n/a" else dim d as new Date(1970,1,1,0,0,0) d.TotalSeconds = d.TotalSeconds + n LastCheckTimeField.Text = d.AbbreviatedDate+" "+d.ShortTime end if #endif End Sub
Property Inited As Boolean
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 MyWinSparkleMBS Inherits WinSparkleMBS
EventHandler Sub DidFindUpdate() log "Did find update" End EventHandler
EventHandler Sub DidNotFindUpdate() log "Did not find update" End EventHandler
EventHandler Sub Error() log "Error event" End EventHandler
EventHandler Sub ShutdownRequest() log "Shutdown request" quit End EventHandler
EventHandler Sub UpdateCancelled() log "Update cancelled" End EventHandler
End Class
Module UtilModule
Sub Log(s as string) MainWindow.LogList.addrow s End Sub
End Module
End Project

Feedback, Comments & Corrections

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




Links
MBS Xojo Plugins