GSoC 2018 - Beginner Mode and Tutorial Creation - Week 8
This is my weekly update on my Google Summer of Code project. There will be three parts of this blog post: what I did, what had issues, and what is next. Then, I will end it with a question that I need answered for part of the project.
What I did
Expanded the tour framework
- Tours are now handled as classes. This allows them to hold much more information than the original list of strings they were. Mostly, it allows them to hold a certain mapping of widgets as described below.
Add widget focusing
- Each message in the tour can now link to specific widgets on the screen. By adding custom named widgets, the tour can "highlight" different widgets for each message, allowing the user to focus their attention on the key components.
- Before, attachTour was not properly firing the action after the tour ran. After some tests, I switched the event from MouseButtonPress to MouseButtonRelease and it works like a charm.
What had issues
- Message Box Locations
- Currently, I am trying to make the message box (which could be later updated to a custom box) appear near the target items. For the most part, its passable. However, it seems that the location will change some what randomly for no particular reason. For example, when accessing the note input toolbar, it will appear below the icons. However, it sometimes appears halfway up a toolbar even though the X, Y are the same. I'll need to look more into this.
What is next
- Fix message box location
- As explained above, the message boxes have a strange bug of placing themselves differently on the same coordinates.
- Improve the highlighting
- Currently, the highlighting simply makes a blue glow around the items. I'd like it to draw a box around all the important items instead. While this isn't the most important, creating the glow is currently conflicting with the message box location.
Question for the Week
How should the highlighting work? Currently, there is a blue glow as seen here:
However, I think a box around the important items would look better, like so:
Another option is to gray out the items that are not important:
What do you think? Should I improve upon the first method? Or do you like one of the other methods more?