terminal/src/cascadia/TerminalApp/Tab.h
Mike Griese 141d0d4d1c Merge remote-tracking branch 'origin/master' into dev/migrie/f/non-terminal-panes
# Conflicts:
#	src/cascadia/TerminalApp/lib/TerminalAppLib.vcxproj
2019-07-19 07:58:16 -05:00

47 lines
1.7 KiB
C++

// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
#pragma once
#include <winrt/Microsoft.UI.Xaml.Controls.h>
#include "Pane.h"
class Tab
{
public:
Tab(const GUID& profile, const winrt::TerminalApp::IControlHost& control);
winrt::Microsoft::UI::Xaml::Controls::TabViewItem GetTabViewItem();
winrt::Windows::UI::Xaml::UIElement GetRootElement();
winrt::Microsoft::Terminal::TerminalControl::TermControl GetFocusedTerminalControl();
std::optional<GUID> GetFocusedProfile() const noexcept;
bool IsFocused() const noexcept;
void SetFocused(const bool focused);
void Scroll(const int delta);
void AddVerticalSplit(const GUID& profile, const winrt::TerminalApp::IControlHost& control);
void AddHorizontalSplit(const GUID& profile, const winrt::TerminalApp::IControlHost& control);
void UpdateFocus();
void ResizeContent(const winrt::Windows::Foundation::Size& newSize);
void ResizePane(const winrt::TerminalApp::Direction& direction);
void NavigateFocus(const winrt::TerminalApp::Direction& direction);
void UpdateSettings(const winrt::Microsoft::Terminal::Settings::TerminalSettings& settings, const GUID& profile);
winrt::hstring GetFocusedTitle() const;
void SetTabText(const winrt::hstring& text);
void ClosePane();
DECLARE_EVENT(Closed, _closedHandlers, winrt::Microsoft::Terminal::TerminalControl::ConnectionClosedEventArgs);
private:
std::shared_ptr<Pane> _rootPane{ nullptr };
bool _focused{ false };
winrt::Microsoft::UI::Xaml::Controls::TabViewItem _tabViewItem{ nullptr };
void _MakeTabViewItem();
void _Focus();
};