Figured I'd take a moment to post an update on the progress being made for Dynamic Windows 3.2.
3.2 is mainly going to be a platform support update... adding support for the following platforms: GTK4, Wayland (GTK3), iOS and Android.
GTK4 is mainly ready to go, the only missing piece is HTML support since webkit2gtk does not yet support GTK4. Several other features are unavailable due to their removal in GTK4, like the already deprecated MDI and taskbar support. (Wayland also has more limitations like no window positioning support) Here is a GTK4 screenshot running in Fedora Linux using Wayland instead of X11:
iOS is also very close to ready with a few caveats. The container widget only displays the first column currently, since the UITableView only has one column on iOS. I am debating having an optional custom UITableViewCell with the data from all the columns displayed. There is no tree control in iOS so this widget is completely unavailable.
I am stuck on two bugs that have me completely confounded, first the calendar widget is implemented, but when I enable the code... all DWBox (UIView subclasses) in my view hierarchy get a size of 0x0.
Second context menus are implemented, but whenever one tries to display I get the following error on the debug console:
[Assert] Failed to find a presenting view controller for view (<DWContainer: 0x7fa413046200; baseClass = UITableView; frame = (6 696; 1344 200); clipsToBounds = YES; tag = 100; gestureRecognizers = <NSArray: 0x60000012c630>; layer = <CALayer: 0x600000ff55e0>; contentOffset: {0, 0}; contentSize: {1344, 176}; adjustedContentInset: {0, 0, 0, 0}; dataSource: <DWContainer: 0x7fa413046200; baseClass = UITableView; frame = (6 696; 1344 200); clipsToBounds = YES; tag = 100; gestureRecognizers = <NSArray: 0x60000012c630>; layer = <CALayer: 0x600000ff55e0>; contentOffset: {0, 0}; contentSize: {1344, 176}; adjustedContentInset: {0, 0, 0, 0}; dataSource: <DWContainer: 0x7fa413046200>>>) in window (<DWWindow: 0x7fa412604db0; baseClass = UIWindow; frame = (0 0; 1366 1024); gestureRecognizers = <NSArray: 0x6000001fde30>; layer = <UIWindowLayer: 0x600000f80e80>>). The interaction's view (or an ancestor) must have an associated view controller for presentation to work.
There is a presentation view controller on the DWWindow (UIWindow subclass) that is the toplevel ancestor, so not sure why it thinks there isn't one.
Here is a screenshot running on an iOS 14 iPad in dark mode:
Finally Android has the furthest to go, I have the basics working right now: Buttons, Check/Radiobuttons, Entryfield, MLE, Comboboxes, Listboxes, Notebook, and HTML are functional.
Still left to go: Container and Font.
Boxes are implemented with LinearLayout which has a weight option for expanding like my system, but it isn't divided up into horizontal and vertical.
Here is a screenshot of Android with its (slightly) incorrect layout:
Update: May 11, got much more working... almost everything except containers and fonts... and presumably a lot of bugs.
I had been using Xamarin and C# for doing mobile development, but hopefully in the next few months I can completely move over to using my own library for cross platform development on Mobile as well as desktop!
Brian
3.2 is mainly going to be a platform support update... adding support for the following platforms: GTK4, Wayland (GTK3), iOS and Android.
GTK4 is mainly ready to go, the only missing piece is HTML support since webkit2gtk does not yet support GTK4. Several other features are unavailable due to their removal in GTK4, like the already deprecated MDI and taskbar support. (Wayland also has more limitations like no window positioning support) Here is a GTK4 screenshot running in Fedora Linux using Wayland instead of X11:
iOS is also very close to ready with a few caveats. The container widget only displays the first column currently, since the UITableView only has one column on iOS. I am debating having an optional custom UITableViewCell with the data from all the columns displayed. There is no tree control in iOS so this widget is completely unavailable.
I am stuck on two bugs that have me completely confounded, first the calendar widget is implemented, but when I enable the code... all DWBox (UIView subclasses) in my view hierarchy get a size of 0x0.
Second context menus are implemented, but whenever one tries to display I get the following error on the debug console:
[Assert] Failed to find a presenting view controller for view (<DWContainer: 0x7fa413046200; baseClass = UITableView; frame = (6 696; 1344 200); clipsToBounds = YES; tag = 100; gestureRecognizers = <NSArray: 0x60000012c630>; layer = <CALayer: 0x600000ff55e0>; contentOffset: {0, 0}; contentSize: {1344, 176}; adjustedContentInset: {0, 0, 0, 0}; dataSource: <DWContainer: 0x7fa413046200; baseClass = UITableView; frame = (6 696; 1344 200); clipsToBounds = YES; tag = 100; gestureRecognizers = <NSArray: 0x60000012c630>; layer = <CALayer: 0x600000ff55e0>; contentOffset: {0, 0}; contentSize: {1344, 176}; adjustedContentInset: {0, 0, 0, 0}; dataSource: <DWContainer: 0x7fa413046200>>>) in window (<DWWindow: 0x7fa412604db0; baseClass = UIWindow; frame = (0 0; 1366 1024); gestureRecognizers = <NSArray: 0x6000001fde30>; layer = <UIWindowLayer: 0x600000f80e80>>). The interaction's view (or an ancestor) must have an associated view controller for presentation to work.
There is a presentation view controller on the DWWindow (UIWindow subclass) that is the toplevel ancestor, so not sure why it thinks there isn't one.
Here is a screenshot running on an iOS 14 iPad in dark mode:
Finally Android has the furthest to go, I have the basics working right now: Buttons, Check/Radiobuttons, Entryfield, MLE, Comboboxes, Listboxes, Notebook, and HTML are functional.
Still left to go: Container and Font.
Boxes are implemented with LinearLayout which has a weight option for expanding like my system, but it isn't divided up into horizontal and vertical.
Here is a screenshot of Android with its (slightly) incorrect layout:
Update: May 11, got much more working... almost everything except containers and fonts... and presumably a lot of bugs.
I had been using Xamarin and C# for doing mobile development, but hopefully in the next few months I can completely move over to using my own library for cross platform development on Mobile as well as desktop!
Brian