public TopBar()
        {
            // Get the layout
            AddToClassList(UssClassName);
            AssetDatabase.LoadAssetAtPath <VisualTreeAsset>(k_LayoutPath).CloneTree(this);
            styleSheets.Add(AssetDatabase.LoadAssetAtPath <StyleSheet>(k_StylePath));

            // Initialise fields
            m_Icon          = this.Q <VisualElement>(className: IconUssClassName);
            m_BranchInfo    = this.Q <TextElement>(className: BranchInfoUssClassName);
            m_OverflowMenu  = this.Q <IconButton>(className: OverflowMenuUssClassName);
            m_BackContainer = this.Q <VisualElement>(className: BackUssClassName);
            m_BackButton    = this.Q <IconButton>(className: BackButtonUssClassName);
            m_BackText      = this.Q <TextElement>(className: BackTextUssClassName);

            m_OverflowMenu.Clicked += ClickableOnClicked;
            m_BackButton.Clicked   += () => BackButtonClicked?.Invoke();

            HideBackNavigation();
        }
        public ChangesGroupHeader()
        {
            // Get the layout and style sheet
            AddToClassList(UssClassName);
            AssetDatabase.LoadAssetAtPath <VisualTreeAsset>(k_LayoutPath).CloneTree(this);
            styleSheets.Add(AssetDatabase.LoadAssetAtPath <StyleSheet>(k_StylePath));

            // Initialise fields
            m_GroupName      = this.Q <Label>(className: NameUssClassName);
            m_OverflowButton = this.Q <IconButton>(className: OverflowButtonUssClassName);
            m_RefreshButton  = this.Q <IconButton>(className: RefreshButtonUssClassName);

            // Wire up overflow button
            m_OverflowButton.Clicked += TriggerOverflowMenu;

            void TriggerRefreshButton()
            {
                OnRefreshButtonClicked?.Invoke();
            }

            m_RefreshButton.Clicked += TriggerRefreshButton;
        }