« Additional iOS Script… | Home | Merry Christmas »

API diffs for Xojo

Recently Norman got surprised about a change in a framework class. The EmailMessage class now has a computed property instead of a method pair for the Source property. While that doesn't change the functionality much, it does prevent you from subclassing and overwriting the methods.

Let's make diffs between the different versions of the framework classes. First attempt is to use Introspection, but for that we have to collect all the class names, which may be error prone. With introspection, we miss modules, global functions and many details like parameter names.

So let's compare each version against the previous one:

Xojo 2022r1

Class DesktopContainer
-	method Show(DesktopWindow)
+	method Show()

Class DesktopListBox
+	function CellBoldAt(Int64, Int64) as Boolean
+	method CellBoldAt(Int64, Int64, Boolean)
+	function CellItalicAt(Int64, Int64) as Boolean
+	method CellItalicAt(Int64, Int64, Boolean)
+	function CellUnderlineAt(Int64, Int64) as Boolean
+	method CellUnderlineAt(Int64, Int64, Boolean)

Xojo 2022r2

Class Dictionary
-	function Iterator() as Iterator

Class MemoryBlock
+	method CopyBytes(MemoryBlock, Int64, Int64, Int64)

Class PDFGraphics
+	computed property MiterLimit as Double
+	method FontName(Variant)

Class GraphicsPath
+	function Bounds() as Xojo.Rect
+	function Contains(Double, Double) as Boolean
+	function Contains(Xojo.Point) as Boolean

Class Graphics
+	computed property MiterLimit as Double
+	method FontName(Variant)

Class DesktopApplication
-	computed property MDIWindow as MDIWindow
+	computed property MDIWindow as DesktopMDIWindow
+	function AddTrayItem(DesktopTrayItem) as Boolean
+	method RemoveTrayItem(DesktopTrayItem)
+	function WindowAt(Int64) as DesktopWindow

Class DesktopContainer
+	function ControlAt(Int64) as Object
-	method DrawInto(Graphics, Int64, Int64, Boolean)
+	method DrawInto(Graphics, Int64, Int64)

Class EmailMessage
-	function RawSource() as String
-	function Source() as String
-	method Source(String)
+	computed read only property RawSource as String
+	computed property Source as String

Class DesktopMoviePlayer
+	computed property HasBorder as Boolean

Xojo 2022r3

Class JSONException
+	computed property Offset as UInt64

Xojo 2022r4.1

No significant changes in the observed framework parts.

We left away changes in attributes or changes in capitalization. And we miss database plugins and some other things like the whole Web and Mobile framework.

This was an interesting project and maybe it can be done again, but then maybe better with the documentation as the data source, so we know parameter names and cover more changes, like array or variant data types.

24 12 22 - 14:58