Opened 9 years ago

Closed 8 years ago

Last modified 12 months ago

#9267 closed patch (outdated)

WIN: Jump list support in Windows 7

Reported by: SF/sven3000 Owned by: sev-
Priority: normal Component: Port: Win32
Keywords: Cc:
Game:

Description

The attached patch is a proof of concept of how Windows 7 jump lists could be supported by ScummVM. The code calls the SHAddToRecentDocs function whenever a game is launched, causing the games to be added to the "Recent" category in the jump list. A user who has ScummVM pinned to the taskbar would be able to quickly launch a game using the jump list without going through the launcher.

Currently, I'm abusing the OSystem::engineInit function for this purpose, as it's the only function on the OSystem class I could find that would be called just before a game launches. There may be a better place to do this.

In theory the code I added shouldn't break anything on older versions of Windows, but this needs testing.

Ticket imported from: #3129979. Ticket imported from: patches/1372.

Attachments (1)

jump_list.patch (4.2 KB ) - added by SF/sven3000 9 years ago.
Proof of concept jump list support patch.

Download all attachments as: .zip

Change History (10)

by SF/sven3000, 9 years ago

Attachment: jump_list.patch added

Proof of concept jump list support patch.

comment:1 by lordhoto, 9 years ago

Owner: set to Kirben

comment:2 by lordhoto, 9 years ago

Hi,

first of all thanks for your submission.

I will assign this to our Windows porter so he will hopefully notice this one. Trawis: do you have any opinion on this one?

I noticed the comment where you wonder about game specific icons. ScummVM has currently no game specific icons at all nor any way to connect a target to a game icon, thus no that is not possible to get an icon for a game.

Apart your patch does not follow our code formatting conventions. You should read about them here: http://wiki.scummvm.org/index.php/Code_Formatting_Conventions

// Johannes

comment:3 by lordhoto, 9 years ago

Summary: Jump list support in Windows 7WIN: Jump list support in Windows 7

comment:4 by fingolfin, 9 years ago

Hi Sven,
thanks for the patch. This sounds like a nice feature. Any chance you could clean it up to conform to our coding conventions?

I also wonder how this affects compatibility with older Windows versions. Will ScummVM still run on say Windows XP with this modification? What about even older Windows versions? I see that you have a check for Windows 7 and newer in there, but I wonder about linker time issues. Maybe Travis can elaborate on that, too?

comment:5 by Kirben, 9 years ago

The current code seems to require Microsoft Visual C++, and doesn't compile under MinGW. Unfortunately MinGW is often lacking in support for the more recent win32 API changes, due to legal reasons.

I don't think it is worth adding more win32 specific code, for a feature that can only be used by a single version of Windows anyway.

comment:6 by Templier, 9 years ago

I've updated this patch with the following changes:
- abstracted taskbar interface (with platform specializations)
- per-game icons (when available in the extra folder) in the recent item list
- icon overlays (set to the running game if available)
- progress bar when mass-adding games
- support for MingW (via a compat header with the proper definitions)

I plan to add support for Unity LauncherAPI (API still WIP) and Gnome3 (if they ever add an API).

All changes are available in a branch here: https://github.com/Littleboy/scummvm/tree/taskbar

comment:7 by sev-, 8 years ago

This has been continued on github and now pulled. https://github.com/scummvm/scummvm/pull/46

comment:8 by sev-, 8 years ago

Owner: changed from Kirben to sev-
Resolution: outdated
Status: newclosed

comment:9 by digitall, 12 months ago

Component: Port: Win32
Note: See TracTickets for help on using tickets.