 Gtk gael, wella, roedd yn ff Taethau'r ffordd, widwch i gael y cymryd y ffridd. So what's newtive right now in the existing releases? We've been native Gtk file dialog and that's been native forever. The most recent releases and the GTK 3 back end are tooltips. They're now native tooltips and we just tell Gtk where the tooltip is far and what the text is and GTK self renders the tooltip. Felly halu gyd gy gleidwch yn fwy o'r grwp ydw i'r rhanion hpletio'r torb. Mae'r torb y gallwn i gyllideb yn gyングl iawn. Mae'n meddwl yng Nghymru, mae'n meddwl i'n meddwl i'r grwp y gallwn i'r grwp y gallwn i'r grwp y gallwn i'r grwp y gallwn i'r grwp. Mae'n meddwl i'r grwp y gallwn i gael, a mae'r rhoi yn y grwp y gallwn i'r grwp yn sicr yn mengynt y byddau'r torb. sy'n gwneud yn hyn o'r ddweud y gallu cyd-2. Mae'n fwy o'r cychwyn yn gyffredinol, gyda'r cyfrifau a'r ddweud yn yng Nghymru. Mae'r ddweud yng Nghymru yn ymddiadau wedi bod yn ysgrifio a'r ddweud yno yn cael eu cyfrifau cyrraedd. Mae'r ddweud yng Nghymru yn ôl a'r ddweud. Ac mae'r ddweud? Yn y plmwyno'n gynghwm, Dyna gweld llunai gwahanol gwahanol. Rwy'n cael ei hungen yn ei wneud. Ac mae'r menu'r menu' yn unudd ond yn dwi'n yn ymhwyg o'u gwir, ac mae'n arno yn gweithio'n menu. Daeth i'n erioed gwahanol gwahanol gwahanol. Mae'r menu yma yn ein menu wel. Mae'n arno'n gweithio'n menu wel. Mae'r menu fel ymgyrchu gwahanol gwahanol gwahanol. Mae'r menu yn gweithio'n menu fel yw mae sy'n gweithio gennym. Mae'r menu yn ei fung yna. Mae'n oedd o grannol gwahanol gwahanol. los heitiasu haven maen nhw a phoddiadau y F �avwch hydd. Y ffordd maen nhw ni hollio ar y ceil openglet yma, ei beth desbyddol yn ugihaill gyda fel a fasechiaf Lennull. Ond mae'r opyn felly maeac yma yma yn LPs yn ei hunain a FFBA yn flikefach. Mae'r peth yn hollio so wrth he tvais o hanes cyffligeu ahad ar y teimloar. Y ma hi peth yn haith cyfligol nawr permits heithis hynny wedi angen i welebn awfym bydd ei hun ag ros店,Hammer that there were flickering, and they were flickering last year and they were flickering this year they didn't flicker. So what do we actually do for everything else that makes it look like it's native? Everything else is actually not native, it's our own toolkit but we use the GTK APIs to render their widgets onto our actual locations where we pretend our widgets are. So it's never quite right, you have all these APIs that are fine, but you have to set up the context, the style context, quite right a gynnyddwch arno waltyniad rhai o gyfrifiadau GDK. Ac oedyn doedd, sydd y gallwn yn gael ei ddafwyl addysgu'r arcoffin ac y gallwn yn ei gweithio y ddech chi'w ddweithio fe ddiwrnodd gynnyddwch y ddweithiad. Ond y gallwn yn cael ei ddweithio arno yn gweld, ddim yn cael ei ddweithiadau. Y ddweithiadau arno yn cael ei ddweithiadau, fyddech chi'n ddweithiadau, efallai'r ddweithio i'r ddweithio yng nid ddweithiadau oedd y ddweith. Felly, ydych chi'n gwybod'r gwaith yn gweithio, ydych chi'n gweithio'r arddangos ar y rai oedd yma. Rwy'n gweithio'n gweithio, ac mae chi'n gweithio'n gweithio'n gweithio, mae'n gweithio'n gweithio'n gweithio eu cyfrifiadau. I'r rai oedd y pethau'r cyfrifiadau ar y llif, mae'n arfer o'r perthynau i'r llif yn gweithio'n gweithio'n gweithio. Felly, mae'n gweithio'n gyffredinol, hwnnw, o'r cyfrifiadau cyfrifiadau, i'w ddweud ei dweud yn ymlaen nhw. Felly mae'n ddweud bod yn cael ei gwerthu, ond ydych chi'n chlynyddu, ond mae'n ni'n gweithio. Ond mae'n ddweud bod yn cael ei dweud yn ystafell. Dyna ddweud iddyn nhw'n rhan o'r unrhyw. Rhewn i'r cyffredin hynny, y dylau'r cyfwynterfyniadau yn gyfer ydyn nhw. Wrth yn ni saya, mae Torrhaid Ddiolwg i ni ddim yn gweithbethau fel Ffarmhavs Ffarmhavs a mae'r gyda'r ddyliadau o gyfu yws mwyaf. Wrth yn ni ddim fwrdd i'r iawn yn amlwg. Ac nid oherwydd ychydig yn enghraifftdol syniad fe gweld i'w ui pob pawr hwnnw. Mae chi wedi'u gwybod yn ddif zwyllion o gyflwymoedd yn yma ar 500b. Oherwydd mae'r yn iron i'r hanfymp frysg ddiolwg, bobl hwnnw o'r ddwyliad hynny ddim yn ysgwrs i ddiolwg. yn eich ysgol, iawn yn ei chymdeithio ychydig o gyd-diwch, sydd eitnebu oherwydd llawer oedd y thymian yn ei hunach hanesol. Dyna dillodd hynny yn gofynu'r higwyl i'r stabio arfertyn ac beth sy'n cefnod hiadwyr ni'n gofynuol arall y sttyl. A gלwodau, yma, yn y rai draw gweld yr ysgol oedd yma yn rhan yn ddim yn ei gwneud y CVF yma ac yn cael eu hwylio'n perthyniadau ei gwneud yr CVF yma. Dwi'n seul i gyfwyd, Ieithio weithio'r own VCL widgets, ond we have described everything in the GTK file format, and then we are mapping that at load time at our own.ui, a GTK builder file format, with our own loader. We added in some resizable widgets equivalents, equivalents to the GTK grade GTK box. So now we have widgets that contain other widgets and then they dynamically size and position them according to the constraints that you can describe in the Glade Glowie Editor. So the results of all that is that you've got about a thousand UI files, and apparently we have like about eight accessibility bugs in each one, but they can be fixed in Glade. So that's the.ui file, so everything is now described in the GTK style file format, but mapped at load time for our own widgets. The translations then are, yet again, more in our own custom file format, the same SRC file format, and the output here is a res binary file. Each translation is indexed by a unique ID, and it's all converted to relatively standard PO to go up to the website to be translated there, if you brought it back down and then converted back out into our own custom file format as well. And then when we converted everything over to this.ui file for the dynamic layout and the new description, we had to keep a lot of this stuff and have a little bodge there so that we run those translations through the old translation system and back again. So that's the old translation format. What we've done at this stage for 6.0, I think, is that we have finally gotten rid of that file format, and we're now using the more standard get text file format. So that means that with get text we can extract our translations directly from our .ui files and from our C++ with the standard tooling for that. So we use get text to put out the tooling, then we have our .po files, which are now directly created from the translations. They can go up to the website, back down from the website, and then we can use get text to create the standard .mo output file format. And then we're using the boost get text implementation to read them. So if the old translation format is gone and the new translation format is the standard get text file format. So that's 22,000 odd translations. So 1,000 UI files and 22,000 translations taken up from the old binary file formats, converted into the .uix mile file format and to a binary, but standardised get text, a mo file format. So the consequence of moving all of the UI descriptions and the translations out of those file formats into standardised file formats is that the dialogues are mostly GDK compatible in the sense that you can use Glade Previewer on any of our .ui files, put the .mo files from our translations into the pet where they can find them, and you can use Glade Previewer to look at a localised version of any of our .ui files, which should mean that if we were to deploy that DECARD web utility for displaying translations in a .ui file as translators, modify them, that should work in the majority of cases out of the box now. So, obviously, where am I kind of hoping to go at all this? It is possible to load those .ui files natively with GDK, with its own GDK builder API, bypassing our re-implementation of that, and because GDK handles the get text file format, let GDK load those .mo files, and then rather than, and then come up with a kind of a compatibility layer where we would bind to those native GDK widgets rather than using our own VCL widgets, which are basically then emulating those GDK widgets at runtime, and then we'd use our, take our entire existing stack that currently works and just keep that as a fallback case for guys under windows and the other ones, and for the non-GDK case, for the GDK case we'd use, that's our alternative. Let's do a walkthrough of my development version, which first shows a native GDK menu fitting on screen, as best it can, and I will just show, in case anybody hasn't seen it, a popover, that's the one I'm talking about. Now, that's a popover there, that's a native GDK popover, that's just a native GDK thingy, and it's a toolbars are native, of course, and we will go for a simple, one first, more breaks, insert manual break. So, what this is then is a native GDK, this one has been loaded by the native GDK loader, they can both exist at the same time, so this one dialogue is using the native GDK stuff and the other dialogue, except for one or two other ones that are using our far back VCL one. So, what difference does it make if you keep an eye on the gradient button on the top left, fades in, while it doesn't come straight in, fades in, fades in. Okay, if I change to a different style and I change to file number here, when I have gone down to the minimum allowed value, it has grayed out the left button and left the other one ungrayed, we, in our implementation, we would have left them both clickable and it would be an example of where we get things wrong. Again, if we move back here and I hit this page break one, this should fade in gently rather than coming in hard and then all these things are native and fully in, and it works, of course, it works. Now, the style insert table has a bit more detail. Again, gently fades in, fades out when you get to that level and it might be, there we go, and so on and so forth. So, it all just works and it's needed. Now, what's maybe a little more interesting as well is that they're all standard widgets of what we do for the custom case. Now, this is another native GTK dialogue loading up the .ui file that we currently are effectively using. First, look at that. None to the file style, all these guys are going to fade in at the same time. So, they all fade in. And the right-hand side then is a custom widget. So, for handling the case of a custom widget, that's a GTK drawing area, we've got callbacks then where we draw on to our own existing output devices and then when a GTK drawing area needs to refresh, it can take from our existing output device and convert it to its own. So, they're all native and they all work. Now, let's go back to the thingy for the conclusions. Walk through. Yeah, so it was a halfway house API. Some of the problems though is that the dialogues will not be usable directly without some modification of the .ui files because we have our implementation and GTK has its implementation. There are some divergent areas where we have to modify our UI files for some of the quirks between our two different loading implementations. One minor one is like radio buttons. In our case, we have radio buttons and we link them to each other in a circle. To make it work on the GTK, you have to link the inactive ones to the active one. So, there are changes like that. And there's a whole bunch of smaller details as well where we have to modify the UI files hopefully in a pretty much three quarters, automatically kind of a way. One small one is where we have our buttons on the right-hand side. We're just going to have to put them on the bottom, but we want to put them on the bottom anyway. So, there's no final things there. Some gotchas, and the gotchas I described there. And there's some difficulties where some parts of VCL have leaked out to the UNO API. So, you can have an up-down handlers for the plus-minus buttons and spin buttons for the up-and-down there. There isn't an existing and equivalent one in GTK. So, they'll have to be able to work on to interfacing the existing UNO stuff that has leaked out that should never really have leaked out. And there'll have to be some amount of UNO support as well to tunnel the dialogues through. And one of the things that we probably need to do is we need to move those extended tips out of help and into the UI files. I think we want to do this for ages and it's still a good idea, but the translators have been through a lot of pain, so I don't want to put them through any more misery, but that might happen anyway with the help changes. If the help goes, the tooltips aren't there, so something will have to happen. And if we stick with the model of we need a file back, then we're limited only to GTK widgets that exist as equivalents to our own VCL widgets, we would have to remain within the subset of the existing implementation. Unless we went down the line to just try and use GTK under all platforms, get rid of our toolkit and then we could use whatever be available. But for the moment, I'm just limiting it to what we already support. Okay, thank you. Any questions? As any of any questions or concerns? Yeah.