Serenity Operating System
at master 39 lines 1.3 kB view raw
1/* 2 * Copyright (c) 2021, Matthew Olsson <mattco@serenityos.org> 3 * 4 * SPDX-License-Identifier: BSD-2-Clause 5 */ 6 7#include "SidebarWidget.h" 8#include "OutlineModel.h" 9#include <LibGUI/BoxLayout.h> 10#include <LibGUI/TabWidget.h> 11 12SidebarWidget::SidebarWidget() 13{ 14 set_fill_with_background_color(true); 15 set_layout<GUI::VerticalBoxLayout>(); 16 set_enabled(false); 17 18 auto& tab_bar = add<GUI::TabWidget>(); 19 20 auto& outline_container = tab_bar.add_tab<GUI::Widget>("Outline"); 21 outline_container.set_layout<GUI::VerticalBoxLayout>(4); 22 23 m_outline_tree_view = outline_container.add<GUI::TreeView>(); 24 m_outline_tree_view->set_activates_on_selection(true); 25 m_outline_tree_view->set_should_fill_selected_rows(true); 26 m_outline_tree_view->set_selection_behavior(GUI::AbstractView::SelectionBehavior::SelectRows); 27 m_outline_tree_view->on_selection_change = [this]() { 28 auto& selection = m_outline_tree_view->selection(); 29 if (selection.is_empty()) 30 return; 31 auto destination = OutlineModel::get_destination(selection.first()); 32 on_destination_selected(destination); 33 }; 34 35 auto& thumbnails_container = tab_bar.add_tab<GUI::Widget>("Thumbnails"); 36 thumbnails_container.set_layout<GUI::VerticalBoxLayout>(4); 37 38 // FIXME: Add thumbnail previews 39}