glatigny / guipro

Graphical User Interface Productivity
GNU General Public License v2.0
6 stars 6 forks source link

Skins #10

Closed Shadeclan closed 9 years ago

Shadeclan commented 9 years ago

J, I was reading in the other issue (PortAL v1.4.7 not starting on Windows-XP 32-bit) and noticed that the user was not happy with the way PortAL looks. While I completely disagree with him on that issue, it might be a nice enhancement to provide the ability to "skin" PortAL - that way, users can have whatever look they want. You can start with the two "looks" that you mentioned (WinXP and Firefox) in the other issue and open it up to whoever wants to provide a little artwork. You can add a new parameter to the "group" tag to support it.

You said you wanted ideas - just throwing one out there.

Thanks again for a great little app!

Woody

obsidev commented 9 years ago

Hi,

I made some searchs for the way to display the menu using the same right UX than the system. I will see if I introduce some options to let the user customize the display ; I also have to perform some tests in order to check that the new way to display the menu will right be compatible with the icon loader.

But if I introduce options for skining ; it will be on the "portal" main node but I don't think it will be per group. It could be difficult to manage different skins depending the group.. With inherit etc. But it will also use more memory (and I'm trying to use as less memory as possible).

Regards, J

Shadeclan commented 9 years ago

Sounds like a plan, J.

Shadeclan commented 9 years ago

Here's an idea which would allow others to provide skins, yet keep PortAL's memory footprint small - keep the skin images in a "Skins" folder, with each skin set contained in its own sub-folder. That way, a person could choose what skins they wanted and then discard the rest. The user would be able to choose the size of their installation, depending on which skin and how many skins they kept installed on their computer.

You would, of course, define the file, resolution and size formats of the skin images, which would assist others with skin development.

Another idea to help keep the size of PortAL small would be to put the skins and their folders in a compressed file, similar to Java's JAR files.

What do you think?

obsidev commented 9 years ago

Hi Woody,

I'm not fan of skins using images. I prefer to propose various settings for the colors, alpha, positions, size, borders, gradient, rounding... More like CSS3 than Winamp 2.x :) My current work is targeting hard coded skins rules with the possibility to create a skin by XML. So when the user is using an hard coded rule, there is just a pointer to a configuration in the program. Only when the user have a specific skin, it will create the configuration in the memory. So the current skin will become an hard coded skin as the old skin.

Thanks to that, it could allow PortAL to run with a little memory usage if the user does not want to have a custom skin. But I have also to see to use the non "Owner Draw" method to display menus with icons ; so it could also have a "native skin".

Regards, J

Shadeclan commented 9 years ago

That's cool, J. These are just suggestions, anyway. As you know, personally, I'm happy with the current skin. This programming would be for those whose taste in skins is ... different. ;-)

As always, do what you think is best for the program.

Woody

obsidev commented 9 years ago

Hi,

So, I got the new skin system working. But when I use the "system skin" (using GDI+ to load images for the items). The interesting point is that the menus are displayed by the system itself, but some features are not available anymore, like the "menu break", the text on the separators or the display of the shortcuts.

I'm still finishing the options for the "ownerdraw skins" and I will see to provide a configuration which will be similar to windows 7/8 menus. But for sure, this kind of skin could be customized with various settings ; the current skin will be also available.

Regards, J

Shadeclan commented 9 years ago

The interesting point is that the menus are displayed by the system itself, but some features are not available anymore, like the "menu break", the text on the separators or the display of the shortcuts.

Oooh - I'm not sure I like that, J. Like I said earlier, I like the way you've got things set up now. I use the menu breaks a lot; I have grown to like the separator text and the shortcut display is awesome.

I hope you will preserve these niceties in the original skin. If not, I don't think I'll be upgrading. Perhaps you can offer a non-skinned version?

obsidev commented 9 years ago

Hi,

For sure, I will preserve the features. In the various skins I'll propose in PortAL, one will be the "system skin" and will have less features than the "owner draw skins".

Regards,

Shadeclan commented 9 years ago

Excellent! Works for me, J! Thanks!

obsidev commented 9 years ago

Hi,

A little message just to notice that I committed the beginning of the skin system. There is still some unfinished elements like the background of non selected items ; I need to perform more tests. But I god a "GDI" (native display) working and two different skins.

I will also improve the configuration system to be able to create custom skins (or select into a different list of pre-established skins).

Regards, J

Shadeclan commented 9 years ago

Excellent, J! Glad you're making progress - I'll enjoy seeing the results once you've released it. Of course, I'll just play around with it a little bit before going back to the first "perfect" skin! :-)

obsidev commented 9 years ago

Hi,

I just made a commit in order to update the skin system. For my tests, I made two new skins ; it will show you the current possibilities.

"Classical skin" : skin01 It uses a grandiant selection background and round borders.

"Flash skin" skin02 It uses a single color for the selection background and it remove the border between the icon and the text (and it is also possible to change the width of the separator)

"Dark skin" skin03 It changes the default background, use a single color for the selection background but use a grandiant background for the icon zone.

And, for sure, the colors and not definitive. It was just for my tests and once I'll finish the configuration loader, all skin setting could be read in the XML file. (But I'll see to propose some pre-configured one)

Shadeclan commented 9 years ago

J, Looks marvelous! I'll do a little testing for you, then? I should have some time this week to play with it.

I noticed that you closed some other items - good to see you programming again!

obsidev commented 9 years ago

Hi,

Yes, feel free to test and give your feedback. Now PortAL 1.5.0 is released (with other features coming from the other issues I closed) so now I'll focus on new issues for the next release (1.5.1). If you have ideas of improvements ; please open a new issue. That one was for the creation of the skin system.

I took my time in order to finish correctly that feature and publish the new release, I've got busy with some conventions or some other stuff (which make me live) ; But I can't stop programming, I do it almost every day in my life :)