// Copyright (c) Microsoft Corporation. // Licensed under the MIT license. #pragma once #include "TitleChangedEventArgs.g.h" #include "CopyToClipboardEventArgs.g.h" #include "PasteFromClipboardEventArgs.g.h" #include "OpenHyperlinkEventArgs.g.h" #include "NoticeEventArgs.g.h" #include "ScrollPositionChangedArgs.g.h" #include "RendererWarningArgs.g.h" #include "TransparencyChangedEventArgs.g.h" #include "cppwinrt_utils.h" namespace winrt::Microsoft::Terminal::Control::implementation { struct TitleChangedEventArgs : public TitleChangedEventArgsT { public: TitleChangedEventArgs(hstring title) : _Title(title) {} WINRT_PROPERTY(hstring, Title); }; struct CopyToClipboardEventArgs : public CopyToClipboardEventArgsT { public: CopyToClipboardEventArgs(hstring text) : _text(text), _html(), _rtf(), _formats(static_cast(0)) {} CopyToClipboardEventArgs(hstring text, hstring html, hstring rtf, Windows::Foundation::IReference formats) : _text(text), _html(html), _rtf(rtf), _formats(formats) {} hstring Text() { return _text; }; hstring Html() { return _html; }; hstring Rtf() { return _rtf; }; Windows::Foundation::IReference Formats() { return _formats; }; private: hstring _text; hstring _html; hstring _rtf; Windows::Foundation::IReference _formats; }; struct PasteFromClipboardEventArgs : public PasteFromClipboardEventArgsT { public: PasteFromClipboardEventArgs(std::function clipboardDataHandler) : m_clipboardDataHandler(clipboardDataHandler) {} void HandleClipboardData(hstring value) { m_clipboardDataHandler(value); }; private: std::function m_clipboardDataHandler; }; struct OpenHyperlinkEventArgs : public OpenHyperlinkEventArgsT { public: OpenHyperlinkEventArgs(hstring uri) : _uri(uri) {} hstring Uri() { return _uri; }; private: hstring _uri; }; struct NoticeEventArgs : public NoticeEventArgsT { public: NoticeEventArgs(const NoticeLevel level, const hstring& message) : _level(level), _message(message) {} NoticeLevel Level() { return _level; }; hstring Message() { return _message; }; private: const NoticeLevel _level; const hstring _message; }; struct ScrollPositionChangedArgs : public ScrollPositionChangedArgsT { public: ScrollPositionChangedArgs(const int viewTop, const int viewHeight, const int bufferSize) : _ViewTop(viewTop), _ViewHeight(viewHeight), _BufferSize(bufferSize) { } WINRT_PROPERTY(int32_t, ViewTop); WINRT_PROPERTY(int32_t, ViewHeight); WINRT_PROPERTY(int32_t, BufferSize); }; struct RendererWarningArgs : public RendererWarningArgsT { public: RendererWarningArgs(const uint64_t hr) : _Result(hr) { } WINRT_PROPERTY(uint64_t, Result); }; struct TransparencyChangedEventArgs : public TransparencyChangedEventArgsT { public: TransparencyChangedEventArgs(const double opacity) : _Opacity(opacity) { } WINRT_PROPERTY(double, Opacity); }; }