Use MassiveGitTask for index manipulation
[TortoiseGit.git] / src / Utils / TaskbarUUID.h
blob7df63dbf6245ae9d0eb6388b0e41a82c3966d235
1 // TortoiseGit - a Windows shell extension for easy version control
3 // Copyright (C) 2011 - TortoiseSVN
5 // This program is free software; you can redistribute it and/or
6 // modify it under the terms of the GNU General Public License
7 // as published by the Free Software Foundation; either version 2
8 // of the License, or (at your option) any later version.
10 // This program is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU General Public License for more details.
15 // You should have received a copy of the GNU General Public License
16 // along with this program; if not, write to the Free Software Foundation,
17 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19 #pragma once
20 #include <string>
23 /**
24 * Sets the Task ID (Win7) for the process according to settings
25 * in the registry:
26 * HKCU\\Software\\TortoiseGit\\GroupTaskbarIconsPerRepo
27 * determines how this is done. The Task ID is used by the windows
28 * taskbar to determine how the app icons on the taskbar are grouped
29 * together.
31 * GroupTaskbarIconsPerRepo = 0 : this is the default. Icons are
32 * grouped by application.
33 * GroupTaskbarIconsPerRepo = 1 : Icons are grouped by repository uuid, so
34 * each TSVN dialog gets grouped according
35 * to the repository/wc it is used for.
36 * Each TSVN app is grouped separately, i.e.,
37 * TortoiseMerge icons won't get grouped together
38 * with TortoiseProc icons.
39 * GroupTaskbarIconsPerRepo = 2 : The same as 1, but all TSVN apps are treated
40 * as one, e.g., a TortoiseMerge instance showing
41 * a diff from repo X is grouped together with
42 * a log dialog instance for repo X.
44 * The repository uuid is used by examining the command line of the process:
45 * it must be set with /groupuuid:"uuid".
47 void SetTaskIDPerUUID();
49 /**
50 * Returns the App ID string. See \ref SetTaskIDPerUUID() for details.
52 std::wstring GetTaskIDPerUUID(LPCTSTR uuid = NULL);
54 /**
55 * Sets a different overlay icon for the taskbar icon on Win7 for each
56 * repository uuid. This allows to 'mark' the uuid-grouped icons on the
57 * taskbar to make them more distinguishable.
58 * Call this function from the OnTaskbarButtonCreated() message handler.
59 * To receive this message, you must first register it:
60 * \code
61 * const UINT TaskBarButtonCreated = RegisterWindowMessage(L"TaskbarButtonCreated");
62 * \endcode
64 * The repository uuid is used by examining the command line of the process:
65 * it must be set with /groupuuid:"uuid".
67 void SetUUIDOverlayIcon(HWND hWnd);