mirror of
https://github.com/microsoft/terminal.git
synced 2026-05-06 20:34:29 +00:00
* use `FontFamily="{ThemeResource SymbolThemeFontFamily}"` where possible, in XAML
* use `FontFamily{ L"Segoe Fluent Icons, Segoe MDL2 Assets" }` in codebehind
Basically just a simple string replace.
* [x] This was a bullet point in #11353
* [x] Confirmed manually on my win10 PC
* see also #12438
Actually, this is the last bullet in #11353, so I'm gonna say closes #11353.
Screenshots below.
(cherry picked from commit 0a15643c9c)
109 lines
3.0 KiB
C++
109 lines
3.0 KiB
C++
// Copyright (c) Microsoft Corporation.
|
|
// Licensed under the MIT license.
|
|
|
|
#include "pch.h"
|
|
#include <LibraryResources.h>
|
|
#include "SettingsTab.h"
|
|
#include "SettingsTab.g.cpp"
|
|
#include "Utils.h"
|
|
|
|
using namespace winrt;
|
|
using namespace winrt::Windows::UI::Xaml;
|
|
using namespace winrt::Windows::UI::Core;
|
|
using namespace winrt::Microsoft::Terminal::Control;
|
|
using namespace winrt::Microsoft::Terminal::Settings::Model;
|
|
using namespace winrt::Microsoft::Terminal::Settings::Editor;
|
|
using namespace winrt::Windows::System;
|
|
|
|
namespace winrt
|
|
{
|
|
namespace MUX = Microsoft::UI::Xaml;
|
|
namespace WUX = Windows::UI::Xaml;
|
|
}
|
|
|
|
namespace winrt::TerminalApp::implementation
|
|
{
|
|
SettingsTab::SettingsTab(MainPage settingsUI)
|
|
{
|
|
Content(settingsUI);
|
|
|
|
_MakeTabViewItem();
|
|
_CreateContextMenu();
|
|
_CreateIcon();
|
|
}
|
|
|
|
void SettingsTab::UpdateSettings(CascadiaSettings settings)
|
|
{
|
|
auto settingsUI{ Content().as<MainPage>() };
|
|
settingsUI.UpdateSettings(settings);
|
|
}
|
|
|
|
// Method Description:
|
|
// - Creates a list of actions that can be run to recreate the state of this tab
|
|
// Arguments:
|
|
// - <none>
|
|
// Return Value:
|
|
// - The list of actions.
|
|
std::vector<ActionAndArgs> SettingsTab::BuildStartupActions() const
|
|
{
|
|
ActionAndArgs action;
|
|
action.Action(ShortcutAction::OpenSettings);
|
|
OpenSettingsArgs args{ SettingsTarget::SettingsUI };
|
|
action.Args(args);
|
|
|
|
return std::vector{ std::move(action) };
|
|
}
|
|
|
|
// Method Description:
|
|
// - Focus the settings UI
|
|
// Arguments:
|
|
// - focusState: The FocusState mode by which focus is to be obtained.
|
|
// Return Value:
|
|
// - <none>
|
|
void SettingsTab::Focus(WUX::FocusState focusState)
|
|
{
|
|
_focusState = focusState;
|
|
|
|
if (_focusState != FocusState::Unfocused)
|
|
{
|
|
Content().as<WUX::Controls::Page>().Focus(focusState);
|
|
}
|
|
}
|
|
|
|
// Method Description:
|
|
// - Initializes a TabViewItem for this Tab instance.
|
|
// Arguments:
|
|
// - <none>
|
|
// Return Value:
|
|
// - <none>
|
|
void SettingsTab::_MakeTabViewItem()
|
|
{
|
|
TabBase::_MakeTabViewItem();
|
|
|
|
Title(RS_(L"SettingsTab"));
|
|
TabViewItem().Header(winrt::box_value(Title()));
|
|
}
|
|
|
|
// Method Description:
|
|
// - Set the icon on the TabViewItem for this tab.
|
|
// Arguments:
|
|
// - <none>
|
|
// Return Value:
|
|
// - <none>
|
|
winrt::fire_and_forget SettingsTab::_CreateIcon()
|
|
{
|
|
auto weakThis{ get_weak() };
|
|
|
|
co_await winrt::resume_foreground(TabViewItem().Dispatcher());
|
|
|
|
if (auto tab{ weakThis.get() })
|
|
{
|
|
auto glyph = L"\xE713"; // This is the Setting icon (looks like a gear)
|
|
|
|
// The TabViewItem Icon needs MUX while the IconSourceElement in the CommandPalette needs WUX...
|
|
Icon(glyph);
|
|
TabViewItem().IconSource(IconPathConverter::IconSourceMUX(glyph));
|
|
}
|
|
}
|
|
}
|