X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2FWorkspacemenu.cc;h=2ba73e23ae4618cbb11474ac72065fdea21057d1;hb=ce5313528ead2692adfdfb41cf5e65dafcc0bc64;hp=a63251ab00c879a55e8e9423b2c81ac2a85613be;hpb=8794d357e67abddf9fda9db77b235e294d0ec590;p=chaz%2Fopenbox diff --git a/src/Workspacemenu.cc b/src/Workspacemenu.cc index a63251ab..2ba73e23 100644 --- a/src/Workspacemenu.cc +++ b/src/Workspacemenu.cc @@ -27,6 +27,7 @@ #include "i18n.hh" #include "blackbox.hh" +#include "Clientmenu.hh" #include "Screen.hh" #include "Toolbar.hh" #include "Workspacemenu.hh" @@ -51,6 +52,8 @@ void Workspacemenu::itemSelected(int button, unsigned int index) { } else if (index == 1) { getScreen()->removeLastWorkspace(); } else { + // subtract 2 because the workspace menu has 2 extra items at the top before + // the list of the workspace names index -= 2; const Workspace* const wkspc = getScreen()->getCurrentWorkspace(); if (wkspc->getID() != index && index < getScreen()->getWorkspaceCount()) @@ -59,3 +62,27 @@ void Workspacemenu::itemSelected(int button, unsigned int index) { if (! (getScreen()->getWorkspacemenu()->isTorn() || isTorn())) hide(); } + + +void Workspacemenu::changeWorkspaceLabel(unsigned int index, + const std::string& label) { + // add 2 because the workspace menu has 2 extra items at the top before the + // list of the workspace names + changeItemLabel(index + 2, label); +} + + +void Workspacemenu::insertWorkspace(Workspace *wkspc) { + assert(wkspc); + // add 2 because the workspace menu has 2 extra items at the top before the + // list of the workspace names + insert(wkspc->getName(), wkspc->getMenu(), wkspc->getID() + 2); +} + + +void Workspacemenu::removeWorkspace(Workspace *wkspc) { + assert(wkspc); + // add 2 because the workspace menu has 2 extra items at the top before the + // list of the workspace names + remove(wkspc->getID() + 2); +}