This commit introduces a context menu for Tab and a new item, "Color...", which will display a color picker. A flyout menu, containing a custom flyout, is attached to each tab. The flyout displays a palette of 16 preset colors and includes a color picker. When the user selects or clears color, an event is fired, which is intercepted by the tab to which the flyout belongs. The changing of the color is achieved by putting the selected color in the resource dictionary of the tab, using well-defined dictionary keys (e.g. TabViewItemHeaderBackground). Afterwards the visual state of the tab is toggled, so that the color change is visible immediately. Custom-colored tabs will be desaturated (somewhat) by alpha blending them with the tab bar background. The flyout menu also contains a 'Close' flyout item. ## Validation Steps Performed I've validated the behavior manually: start the program via the start menu. Right click on the tab -> Choose a tab color. The color flyout is going to be shown. Click a color swatch or click 'Select a custom color' to use the color picker. Use the 'Clear the current color' to remove the custom color. Closes #2994. References #3327.
50 lines
1.6 KiB
C
50 lines
1.6 KiB
C
/*++
|
|
Copyright (c) Microsoft Corporation
|
|
Licensed under the MIT license.
|
|
|
|
Module Name:
|
|
- precomp.h
|
|
|
|
Abstract:
|
|
- Contains external headers to include in the precompile phase of console build process.
|
|
- Avoid including internal project headers. Instead include them only in the classes that need them (helps with test project building).
|
|
|
|
Author(s):
|
|
- Carlos Zamora (cazamor) April 2019
|
|
--*/
|
|
|
|
#pragma once
|
|
|
|
// This includes support libraries from the CRT, STL, WIL, and GSL
|
|
#include "LibraryIncludes.h"
|
|
// This is inexplicable, but for whatever reason, cppwinrt conflicts with the
|
|
// SDK definition of this function, so the only fix is to undef it.
|
|
// from WinBase.h
|
|
// Windows::UI::Xaml::Media::Animation::IStoryboard::GetCurrentTime
|
|
#ifdef GetCurrentTime
|
|
#undef GetCurrentTime
|
|
#endif
|
|
|
|
#include <WexTestClass.h>
|
|
#include <json.h>
|
|
#include "consoletaeftemplates.hpp"
|
|
|
|
// Common includes for most tests:
|
|
#include "../../inc/argb.h"
|
|
#include "../../inc/conattrs.hpp"
|
|
#include "../../types/inc/utils.hpp"
|
|
#include "../../inc/DefaultSettings.h"
|
|
|
|
// Are you thinking about adding WinRT things here? If so, you probably want to
|
|
// add your test to TerminalApp.LocalTests, not TerminalApp.UnitTests. The
|
|
// UnitTests run in CI, while the LocalTests do not. However, since the CI can't
|
|
// run XAML islands or unpackaged WinRT, any tests using those features will
|
|
// need to be added to the LocalTests.
|
|
|
|
// These however are okay, for some _basic_ winrt things:
|
|
#include <unknwn.h>
|
|
#include <hstring.h>
|
|
#include <winrt/Windows.Foundation.h>
|
|
#include <winrt/Windows.Foundation.Collections.h>
|
|
#include <winrt/windows.ui.core.h>
|