Accéder au contenu principal


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. Extracting pages, kind of The current state of Boxes' installation wizard Here is the wizard's page flow as presented to the user: The current page flow The wizard is currently implemented with such a widget hierarchy: the WizardWindow class the WizardToolbar class the Wizard class, a stack of pages the WizardSource class the source selection page the URL entry page the preparation page

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 pages GtkAssistant is great at implementing a sequence of pages, unfortunately, Boxes' wizard is more like a graph of pages. Boxes' wizard's page graph 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 area GtkAssistant allows you to mark a page as custom, which will show no button in the action are

Boxes' hardening sprint: two weeks in

Finishing my 4th year of CS studies I 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 GtkAssistant All 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 wizard Currently, the wizard is ordered that way: WizardWindow WizardToolbar: the toolbar containing the navigation buttons Wizard: the stack of pages Most 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 th