Scroom  0.14
SidebarManager Class Reference

#include <sidebarmanager.hh>

Collaboration diagram for SidebarManager:
Collaboration graph

Public Member Functions

void setWidgets (GtkWidget *panelWindow, GtkBox *panel)
 
void addSideWidget (const std::string &title, GtkWidget *w)
 
void removeSideWidget (GtkWidget *w)
 

Private Attributes

GtkWidget * panelWindow {nullptr}
 
GtkBox * panel {nullptr}
 
std::map< GtkWidget *, GtkWidget * > widgets
 

Member Function Documentation

◆ addSideWidget()

void SidebarManager::addSideWidget ( const std::string &  title,
GtkWidget *  w 
)
22 {
23  GtkWidget* e = gtk_expander_new(title.c_str());
24  gtk_expander_set_expanded(GTK_EXPANDER(e), true);
25  gtk_widget_show(e);
26  gtk_box_pack_start(panel, e, false, false, 0);
27  gtk_container_add(GTK_CONTAINER(e), w);
28  gtk_widget_show(w);
29 
30  widgets[w] = e;
31 
32  gtk_widget_show(panelWindow);
33 }

Referenced by View::addSideWidget().

Here is the caller graph for this function:

◆ removeSideWidget()

void SidebarManager::removeSideWidget ( GtkWidget *  w)
36 {
37  auto cur = widgets.find(w);
38 
39  require(cur != widgets.end());
40 
41  gtk_widget_destroy(cur->second);
42  widgets.erase(cur);
43 
44  if(widgets.empty())
45  {
46  gtk_widget_hide(panelWindow);
47  }
48  else
49  {
50  gtk_widget_show(panelWindow);
51  }
52 }

Referenced by View::removeSideWidget().

Here is the caller graph for this function:

◆ setWidgets()

void SidebarManager::setWidgets ( GtkWidget *  panelWindow,
GtkBox *  panel 
)
16 {
17  panelWindow = panelWindow_;
18  panel = panel_;
19 }

Member Data Documentation

◆ panel

GtkBox* SidebarManager::panel {nullptr}
private

Referenced by addSideWidget(), and setWidgets().

◆ panelWindow

GtkWidget* SidebarManager::panelWindow {nullptr}
private

◆ widgets

std::map<GtkWidget*, GtkWidget*> SidebarManager::widgets
private

Referenced by addSideWidget(), and removeSideWidget().


The documentation for this class was generated from the following files:
SidebarManager::panelWindow
GtkWidget * panelWindow
Definition: sidebarmanager.hh:18
SidebarManager::widgets
std::map< GtkWidget *, GtkWidget * > widgets
Definition: sidebarmanager.hh:21
SidebarManager::panel
GtkBox * panel
Definition: sidebarmanager.hh:19
require
#define require(expr)
Definition: assertions.hh:28