Accéder au contenu principal

Articles

Affichage des articles du juin, 2015

Extracting Boxes' wizard's pages

A few days ago, Zeeshan suggested me to extract Boxes' wizard's pages out of the Wizard class and to make them full fledged widgets/classes. This idea is very welcome as it would move a lot of complexity out of the Wizard class (as it is currently implementing most of the pages) and, in the long run, make its port to GtkAssistant easier.I spent the last few days playing with the pages, discovering how they are implemented and extracting some of them.The current state of Boxes' installation wizardHere is the wizard's page flow as presented to the user:The wizard is currently implemented with such a widget hierarchy:the WizardWindow classthe WizardToolbar classthe Wizard class, a stack of pagesthe WizardSource classthe source selection pagethe URL entry pagethe preparation pagethe setup pagethe review pagethe file chooser pagethe customization pageThe wizard has three layers of pages, most of them behaving slightly differently: the WizardSource class is composed of the s…

Playing with GtkAssistant

I decided to spend some time today to play with GtkAssistant, more precisely, I tried to build a mock installation wizard mimicking Boxes' one in order to test how I could adapt its behaviour to make it GtkAssistant ready.Overall, I enjoyed using GtkAssistant, it is a quite well thought out widget offering a lot of potential for a small API.But despite how good GtkAssistant is, I encountered problems adapting it to my need. Here follows a list of what bogged me down.A sequence of pagesGtkAssistant is great at implementing a sequence of pages, unfortunately, Boxes' wizard is more like a graph of pages.Such a configuration is clearly out of GtkAssistant's scope and it can easily be solved by arranging the pages as a sequence and setting a custom "forward" function, so it's not that much of a problem.Action areaGtkAssistant allows you to mark a page as custom, which will show no button in the action area when visiting this page. You can then add buttons to the a…

Boxes' hardening sprint: two weeks in

Finishing my 4th year of CS studiesI spent the last two weeks working hard on the report and the presentation of the project my colleagues and I worked on all the semester long: creating the Stibbons multi-agent system programming language and development environment.I am very proud of what we accomplished and I’ll probably present it to you in the upcoming weeks. =)Planning the port of Boxes' installation wizard to GtkAssistantAll this work unfortunately let me little time to work on Boxes, but I nonetheless took some time to look at how its installation wizard is implemented and planned how to port it to GtkAssistant.Boxes' installation wizardCurrently, the wizard is ordered that way: WizardWindowWizardToolbar: the toolbar containing the navigation buttonsWizard: the stack of pagesMost of the wizard’s intelligence seems to lie in Wizard and its pages, I’ll have to dig further into Boxes' code in order to fully understand how the wizard work.GtkAssistantA GtkAssistant is…