9e83655b08
This pull request adds an appearance configuration object to our settings model and app lib, allowing the control to be rendered differently depending on its state, and then uses it to add support for an "unfocused" appearance that the terminal will use when it's not in focus. To accomplish this, we isolated the appearance-related settings from Profile (into AppearanceConfig) and TerminalSettings (into the IControlAppearance and ICoreAppearance interfaces). A bunch of work was done to make inheritance work. The unfocused appearance inherits from the focused one _for that profile_. This is important: If you define a defaults.unfocusedAppearance, it will apply all of defaults' settings to any leaf profile when a terminal in that profile is out of focus. Specified in #8345 Closes #3062 Closes #2316
46 lines
1.5 KiB
C++
46 lines
1.5 KiB
C++
// Copyright (c) Microsoft Corporation.
|
|
// Licensed under the MIT license.
|
|
|
|
#include "pch.h"
|
|
|
|
#include "AzureCloudShellGenerator.h"
|
|
#include "LegacyProfileGeneratorNamespaces.h"
|
|
|
|
#include "../../types/inc/utils.hpp"
|
|
#include "../../inc/DefaultSettings.h"
|
|
#include "Utils.h"
|
|
#include "DefaultProfileUtils.h"
|
|
|
|
using namespace ::Microsoft::Terminal::Settings::Model;
|
|
using namespace winrt::Microsoft::Terminal::Settings::Model;
|
|
using namespace winrt::Microsoft::Terminal::TerminalConnection;
|
|
|
|
std::wstring_view AzureCloudShellGenerator::GetNamespace()
|
|
{
|
|
return AzureGeneratorNamespace;
|
|
}
|
|
|
|
// Method Description:
|
|
// - Checks if the Azure Cloud shell is available on this platform, and if it
|
|
// is, creates a profile to be able to launch it.
|
|
// Arguments:
|
|
// - <none>
|
|
// Return Value:
|
|
// - a vector with the Azure Cloud Shell connection profile, if available.
|
|
std::vector<Profile> AzureCloudShellGenerator::GenerateProfiles()
|
|
{
|
|
std::vector<Profile> profiles;
|
|
|
|
if (AzureConnection::IsAzureConnectionAvailable())
|
|
{
|
|
auto azureCloudShellProfile{ CreateDefaultProfile(L"Azure Cloud Shell") };
|
|
azureCloudShellProfile.Commandline(L"Azure");
|
|
azureCloudShellProfile.StartingDirectory(DEFAULT_STARTING_DIRECTORY);
|
|
azureCloudShellProfile.DefaultAppearance().ColorSchemeName(L"Vintage");
|
|
azureCloudShellProfile.ConnectionType(AzureConnection::ConnectionType());
|
|
profiles.emplace_back(azureCloudShellProfile);
|
|
}
|
|
|
|
return profiles;
|
|
}
|