Skip to main content

Official coding starts, my first task - polished!

Hello again, it's been a while!


The last time I wrote this, I felt like I was getting pretty close to the completion of my first task. But, whenever I'd complete one thing, another thing popped up and so on and so forth it went.

These past 3 weeks,

- I worked on the positioning of tabs and dialogs which overlapped each other.

- I then worked on some individual widgets and added the support to flip them internally.
Have a look at some of them!

DropDownButtons:



Orignal
Flipped

Lists:

Orignal


Flipped

Sliders:

Orignal


Flipped


These involved majorly working with the XML theme-based layout system that ScummVM uses, and it feels so awesome that all of them now have the support to be viewed as in RTL!

- I worked on extending this RTL based support to the 3 existing themes, as well as extending support for RTL based on the resolution. Have a look!

High res: 960x600

Small res: 320x200
If you've ever played IGI, this gives some sort of relevance to it. I love this theme, so classy!
ScummVM classic theme

I also worked on making the text look right aligned and easy to see for RTL users
Load game lists - the numbers are on the right

While working on these, I also found a problem with the grid-based loading and saving of games. Notice how the middle row shows icons correctly, but the other rows don't? I spent a lot of time looking for this (2 days!), but couldn't figure it out!
Load game icons glitched

I asked for help and eventually saw what was causing the issue. It was because my code - while flipping the icons, did not modify the widths of the image basically. I didn't study the backends code related to this, which was causing me more time to understand what was going wrong. 
I thought my work would be abstracted away from the backend (and for the most part it was), but having at least a basic knowledge of how everything works internally can be very helpful, as you can see in situations like this. Below is the issue resolved!


Lastly, I worked on the input-able text: 
Adding text

From the last week, I am polishing up on this task, and making everything pitch-perfect. For the most part, I am so happy to say this - It is complete! 

Except for one small thing, you see the search bar above? It does not have the ability to view the previous chars if the text expands beyond the region it is drawn... at least, not yet :)
Tonight is the night I plan to finish this and have my PR feature ready and enabled for use!

It was a pleasure talking! The coding period might officially start now, but my schedule will stay the same, as I started my tasks right after my acceptance. I'll be blogging more often now, so - I'll see you in a week!


Thanks for reading!






Comments

Popular posts from this blog

The (official) end of an amazing journey!

 Hello! GSoC has officially ended, and I'm in the final stage - submitting my work for the entire summer to Google! When I first received the acceptance letter in May, I was very much baffled. It was exciting and a bit scary at the same time, because I have never ever worked on a project of this scale. Well, first time for everything I guess :) So, what have I been doing this past week? Last week I left off saying my U32 PR was showing some activity, and this week, @criezy helped out a lot by reviewing my U32 PR, and providing much feedback. He also helped out pretty much entirely towards the MacOS/iOS platforms, because it was quite not an area (Objective-C) I was comfortable in. It was really a huge help. Apart from that, I mostly spent the entire week looking at the PR to see what could be changed, fixing my mistakes, and making the PR ready for merge. It has improved quite a lot!  Criezy pushed an update for iOS, which led me to believe that there might be many more missin...

Touching upon all 3 tasks

Hello! So, this week I have done things that ranged across all my tasks. Recently I checked out our sister project, ResidualVM. ResidualVM's codebase is largely similar to ScummVM, but the main difference is the addition of capabilities to run 3D games. They also take regular snapshots from ScummVM to keep up-to-date. So, the work of RTL GUI which was merged in ScummVM was also present there. When I was running the application with the Hebrew language, some popups and drop-down buttons looked quite different from the normal GUI. Upon a little investigation, it looked like paddings were being set wrong for the RTL-widgets set in the theme. This was because back when I was on my RTL task, I temporarily set a padding of "2" as a placeholder to check, and then completely forgot about it as the difference was ever so subtle. I'm glad though, that I found this, and opened a PR to fix it. English, proper paddings Hebrew - Improper paddings Hebrew, mirrored and matching paddi...

Getting a better understanding & a little progress

Hello! The first few days this week, I spent trying to understand my task, and work on a small number of engines, and try to make games detect/work as a means to see if everything would work as expected. But first, some context. ScummVM has a MetaEngine and a Engine. MetaEngine A MetaEngine is responsible for, as the name would suggest, a meta-data related things before we actually start the engine. This is an abstract class, and each specific engine must inherit it and have their own implementation of it. Alternatively, we also have an AdvancedMetaEngine, inheriting from MetaEngine, which provides a default Game Detection algorithm - which saves individual engine developers the hassle of providing detection tools. The detection algorithm is an Md5 + filename check and makes game detection easier for engines. These engines can inherit from AdvancedMetaEngine and provide some other metadata/utility functions, like getting supported games, querying which features an engine has, etc. Adva...