to std list

This commit is contained in:
fluxgen 2002-02-08 13:35:20 +00:00
parent fa46eaeeaa
commit 83352ec53a
2 changed files with 171 additions and 130 deletions

View file

@ -22,7 +22,7 @@
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE. // DEALINGS IN THE SOFTWARE.
// $Id: Screen.cc,v 1.20 2002/02/07 14:46:23 fluxgen Exp $ // $Id: Screen.cc,v 1.21 2002/02/08 13:35:03 fluxgen Exp $
// stupid macros needed to access some functions in version 2 of the GNU C // stupid macros needed to access some functions in version 2 of the GNU C
// library // library
@ -95,6 +95,7 @@
#include <iostream> #include <iostream>
#include <memory> #include <memory>
#include <algorithm>
using namespace std; using namespace std;
@ -275,12 +276,6 @@ resource(rm, screenname, altscreenname)
XDefineCursor(getBaseDisplay()->getXDisplay(), getRootWindow(), XDefineCursor(getBaseDisplay()->getXDisplay(), getRootWindow(),
fluxbox->getSessionCursor()); fluxbox->getSessionCursor());
workspaceNames = new LinkedList<char>;
workspacesList = new LinkedList<Workspace>;
rootmenuList = new LinkedList<Rootmenu>;
netizenList = new LinkedList<Netizen>;
iconList = new LinkedList<FluxboxWindow>;
image_control = image_control =
new BImageControl(fluxbox, this, True, fluxbox->getColorsPerChannel(), new BImageControl(fluxbox, this, True, fluxbox->getColorsPerChannel(),
fluxbox->getCacheLife(), fluxbox->getCacheMax()); fluxbox->getCacheLife(), fluxbox->getCacheMax());
@ -381,13 +376,13 @@ resource(rm, screenname, altscreenname)
Workspace *wkspc = (Workspace *) 0; Workspace *wkspc = (Workspace *) 0;
if (*resource.workspaces != 0) { if (*resource.workspaces != 0) {
for (int i = 0; i < *resource.workspaces; ++i) { for (int i = 0; i < *resource.workspaces; ++i) {
wkspc = new Workspace(this, workspacesList->count()); wkspc = new Workspace(this, workspacesList.size());
workspacesList->insert(wkspc); workspacesList.push_back(wkspc);
workspacemenu->insert(wkspc->getName(), wkspc->getMenu()); workspacemenu->insert(wkspc->getName(), wkspc->getMenu());
} }
} else { } else {
wkspc = new Workspace(this, workspacesList->count()); wkspc = new Workspace(this, workspacesList.size());
workspacesList->insert(wkspc); workspacesList.push_back(wkspc);
workspacemenu->insert(wkspc->getName(), wkspc->getMenu()); workspacemenu->insert(wkspc->getName(), wkspc->getMenu());
} }
@ -402,7 +397,7 @@ resource(rm, screenname, altscreenname)
iconmenu); iconmenu);
workspacemenu->update(); workspacemenu->update();
current_workspace = workspacesList->first(); current_workspace = workspacesList.front();
workspacemenu->setItemSelected(2, True); workspacemenu->setItemSelected(2, True);
toolbar = new Toolbar(this); toolbar = new Toolbar(this);
@ -489,6 +484,12 @@ resource(rm, screenname, altscreenname)
} }
namespace {
template<typename T>
void delete_obj(T * obj) {
delete obj;
}
}
BScreen::~BScreen(void) { BScreen::~BScreen(void) {
if (! managed) return; if (! managed) return;
@ -501,17 +502,22 @@ BScreen::~BScreen(void) {
removeWorkspaceNames(); removeWorkspaceNames();
while (workspacesList->count()) std::for_each(
delete workspacesList->remove(0); workspacesList.begin(),
workspacesList.end(),
delete_obj<Workspace>);
while (rootmenuList->count()) // don't delete items in the rootmenuList?
rootmenuList->remove(0);
while (iconList->count()) std::for_each(
delete iconList->remove(0); iconList.begin(),
iconList.end(),
delete_obj<FluxboxWindow>);
while (netizenList->count()) std::for_each(
delete netizenList->remove(0); netizenList.begin(),
netizenList.end(),
delete_obj<Netizen>);
#ifdef HAVE_STRFTIME #ifdef HAVE_STRFTIME
if (resource.strftime_format) if (resource.strftime_format)
@ -530,11 +536,6 @@ BScreen::~BScreen(void) {
delete toolbar; delete toolbar;
delete image_control; delete image_control;
delete workspacesList;
delete workspaceNames;
delete rootmenuList;
delete iconList;
delete netizenList;
delete theme; delete theme;
} }
@ -627,14 +628,18 @@ void BScreen::reconfigure(void) {
slit->reconfigure(); slit->reconfigure();
#endif // SLIT #endif // SLIT
LinkedListIterator<Workspace> wit(workspacesList); Workspaces::iterator wit = workspacesList.begin();
for (; wit.current(); wit++) Workspaces::iterator wit_end = workspacesList.end();
wit.current()->reconfigure(); for (; wit != wit_end; ++wit) {
(*wit)->reconfigure();
}
LinkedListIterator<FluxboxWindow> iit(iconList); Icons::iterator iit = iconList.begin();
for (; iit.current(); iit++) Icons::iterator iit_end = iconList.end();
if (iit.current()->validateClient()) for (; iit != iit_end; ++iit) {
iit.current()->reconfigure(); if ((*iit)->validateClient())
(*iit)->reconfigure();
}
image_control->timeout(); image_control->timeout();
} }
@ -649,15 +654,14 @@ void BScreen::rereadMenu(void) {
void BScreen::removeWorkspaceNames(void) { void BScreen::removeWorkspaceNames(void) {
while (workspaceNames->count()) workspaceNames.erase(workspaceNames.begin(), workspaceNames.end());
delete [] workspaceNames->remove(0);
} }
void BScreen::updateWorkspaceNamesAtom(void) { void BScreen::updateWorkspaceNamesAtom(void) {
#ifdef GNOME #ifdef GNOME
XTextProperty text; XTextProperty text;
int number_of_desks = workspaceNames->count(); int number_of_desks = workspaceNames.size();
char s[1024]; char s[1024];
char *names[number_of_desks]; char *names[number_of_desks];
@ -685,9 +689,9 @@ void BScreen::addIcon(FluxboxWindow *w) {
if (! w) return; if (! w) return;
w->setWorkspace(-1); w->setWorkspace(-1);
w->setWindowNumber(iconList->count()); w->setWindowNumber(iconList.size());
iconList->insert(w); iconList.push_back(w);
iconmenu->insert((const char **) w->getIconTitle()); iconmenu->insert((const char **) w->getIconTitle());
iconmenu->update(); iconmenu->update();
@ -698,47 +702,49 @@ void BScreen::addIcon(FluxboxWindow *w) {
void BScreen::removeIcon(FluxboxWindow *w) { void BScreen::removeIcon(FluxboxWindow *w) {
if (! w) return; if (! w) return;
iconList->remove(w->getWindowNumber()); std::remove(iconList.begin(), iconList.end(), w);
iconmenu->remove(w->getWindowNumber()); iconmenu->remove(w->getWindowNumber());
iconmenu->update(); iconmenu->update();
toolbar->delIcon(w); toolbar->delIcon(w);
LinkedListIterator<FluxboxWindow> it(iconList); Icons::iterator it = iconList.begin();
for (int i = 0; it.current(); it++, i++) Icons::iterator it_end = iconList.end();
it.current()->setWindowNumber(i); for (int i = 0; it != it_end; ++it, ++i) {
(*it)->setWindowNumber(i);
}
} }
FluxboxWindow *BScreen::getIcon(int index) { FluxboxWindow *BScreen::getIcon(int index) {
if (index >= 0 && index < iconList->count()) if (index >= 0 && index < iconList.size())
return iconList->find(index); return iconList[index];
return (FluxboxWindow *) 0; return (FluxboxWindow *) 0;
} }
int BScreen::addWorkspace(void) { int BScreen::addWorkspace(void) {
Workspace *wkspc = new Workspace(this, workspacesList->count()); Workspace *wkspc = new Workspace(this, workspacesList.size());
workspacesList->insert(wkspc); workspacesList.push_back(wkspc);
workspacemenu->insert(wkspc->getName(), wkspc->getMenu(), workspacemenu->insert(wkspc->getName(), wkspc->getMenu(),
wkspc->getWorkspaceID() + 1); wkspc->getWorkspaceID() + 1);
workspacemenu->update(); workspacemenu->update();
saveWorkspaces(workspacesList->count()); saveWorkspaces(workspacesList.size());
toolbar->reconfigure(); toolbar->reconfigure();
updateNetizenWorkspaceCount(); updateNetizenWorkspaceCount();
return workspacesList->count(); return workspacesList.size();
} }
int BScreen::removeLastWorkspace(void) { int BScreen::removeLastWorkspace(void) {
if (workspacesList->count() > 1) { if (workspacesList.size() > 1) {
Workspace *wkspc = workspacesList->last(); Workspace *wkspc = workspacesList.back();
if (current_workspace->getWorkspaceID() == wkspc->getWorkspaceID()) if (current_workspace->getWorkspaceID() == wkspc->getWorkspaceID())
changeWorkspaceID(current_workspace->getWorkspaceID() - 1); changeWorkspaceID(current_workspace->getWorkspaceID() - 1);
@ -748,14 +754,14 @@ int BScreen::removeLastWorkspace(void) {
workspacemenu->remove(wkspc->getWorkspaceID() + 2); workspacemenu->remove(wkspc->getWorkspaceID() + 2);
workspacemenu->update(); workspacemenu->update();
workspacesList->remove(wkspc); workspacesList.erase(workspacesList.begin() + wkspc->getWorkspaceID());
delete wkspc; delete wkspc;
toolbar->reconfigure(); toolbar->reconfigure();
updateNetizenWorkspaceCount(); updateNetizenWorkspaceCount();
saveWorkspaces(workspacesList->count()); saveWorkspaces(workspacesList.size());
return workspacesList->count(); return workspacesList.size();
} }
return 0; return 0;
@ -763,7 +769,7 @@ int BScreen::removeLastWorkspace(void) {
void BScreen::changeWorkspaceID(int id) { void BScreen::changeWorkspaceID(int id) {
if (! current_workspace || id >= workspacesList->count() || id < 0) if (! current_workspace || id >= workspacesList.size() || id < 0)
return; return;
if (id != current_workspace->getWorkspaceID()) { if (id != current_workspace->getWorkspaceID()) {
@ -801,17 +807,18 @@ void BScreen::changeWorkspaceID(int id) {
void BScreen::addNetizen(Netizen *n) { void BScreen::addNetizen(Netizen *n) {
netizenList->insert(n); netizenList.push_back(n);
n->sendWorkspaceCount(); n->sendWorkspaceCount();
n->sendCurrentWorkspace(); n->sendCurrentWorkspace();
LinkedListIterator<Workspace> it(workspacesList); Workspaces::iterator it = workspacesList.begin();
for (; it.current(); it++) { Workspaces::iterator it_end = workspacesList.end();
int i; for (; it != it_end; ++it) {
for (i = 0; i < it.current()->getCount(); i++) for (int i = 0; i < (*it)->getCount(); ++i) {
n->sendWindowAdd(it.current()->getWindow(i)->getClientWindow(), n->sendWindowAdd((*it)->getWindow(i)->getClientWindow(),
it.current()->getWorkspaceID()); (*it)->getWorkspaceID());
}
} }
Window f = ((fluxbox->getFocusedWindow()) ? Window f = ((fluxbox->getFocusedWindow()) ?
@ -819,18 +826,16 @@ void BScreen::addNetizen(Netizen *n) {
n->sendWindowFocus(f); n->sendWindowFocus(f);
} }
void BScreen::removeNetizen(Window w) { void BScreen::removeNetizen(Window w) {
LinkedListIterator<Netizen> it(netizenList); Netizens::iterator it = netizenList.begin();
int i = 0; Netizens::iterator it_end = netizenList.end();
for (; it != it_end; ++it) {
for (; it.current(); it++, i++) if ((*it)->getWindowID() == w) {
if (it.current()->getWindowID() == w) { Netizen *n = *netizenList.erase(it);
Netizen *n = netizenList->remove(i);
delete n; delete n;
break; break;
} }
}
} }
@ -850,10 +855,11 @@ void BScreen::updateNetizenCurrentWorkspace(void) {
(unsigned char *)&gnome_workspace, 1); (unsigned char *)&gnome_workspace, 1);
#endif #endif
LinkedListIterator<Netizen> it(netizenList); Netizens::iterator it = netizenList.begin();
for (; it.current(); it++) Netizens::iterator it_end = netizenList.end();
it.current()->sendCurrentWorkspace(); for (; it != it_end; ++it) {
(*it)->sendCurrentWorkspace();
}
#ifdef DEBUG #ifdef DEBUG
cerr<<__FILE__<<"("<<__LINE__<<"): Update Current Workspace"<<endl; cerr<<__FILE__<<"("<<__LINE__<<"): Update Current Workspace"<<endl;
@ -862,10 +868,12 @@ void BScreen::updateNetizenCurrentWorkspace(void) {
void BScreen::updateNetizenWorkspaceCount(void) { void BScreen::updateNetizenWorkspaceCount(void) {
LinkedListIterator<Netizen> it(netizenList);
for (; it.current(); it++)
it.current()->sendWorkspaceCount();
Netizens::iterator it = netizenList.begin();
Netizens::iterator it_end = netizenList.end();
for (; it != it_end; ++it) {
(*it)->sendWorkspaceCount();
}
#ifdef NEWWMSPEC #ifdef NEWWMSPEC
//update _NET_WM_NUMBER_OF_DESKTOPS //update _NET_WM_NUMBER_OF_DESKTOPS
int numworkspaces = getCount()-1; int numworkspaces = getCount()-1;
@ -890,59 +898,76 @@ void BScreen::updateNetizenWorkspaceCount(void) {
void BScreen::updateNetizenWindowFocus(void) { void BScreen::updateNetizenWindowFocus(void) {
LinkedListIterator<Netizen> it(netizenList);
Netizens::iterator it = netizenList.begin();
Netizens::iterator it_end = netizenList.end();
Window f = ((fluxbox->getFocusedWindow()) ? Window f = ((fluxbox->getFocusedWindow()) ?
fluxbox->getFocusedWindow()->getClientWindow() : None); fluxbox->getFocusedWindow()->getClientWindow() : None);
for (; it.current(); it++) for (; it != it_end; ++it) {
it.current()->sendWindowFocus(f); (*it)->sendWindowFocus(f);
}
} }
void BScreen::updateNetizenWindowAdd(Window w, unsigned long p) { void BScreen::updateNetizenWindowAdd(Window w, unsigned long p) {
LinkedListIterator<Netizen> it(netizenList); Netizens::iterator it = netizenList.begin();
for (; it.current(); it++) Netizens::iterator it_end = netizenList.end();
it.current()->sendWindowAdd(w, p); for (; it != it_end; ++it) {
(*it)->sendWindowAdd(w, p);
}
} }
void BScreen::updateNetizenWindowDel(Window w) { void BScreen::updateNetizenWindowDel(Window w) {
LinkedListIterator<Netizen> it(netizenList); Netizens::iterator it = netizenList.begin();
for (; it.current(); it++) Netizens::iterator it_end = netizenList.end();
it.current()->sendWindowDel(w); for (; it != it_end; ++it) {
(*it)->sendWindowDel(w);
}
} }
void BScreen::updateNetizenWindowRaise(Window w) { void BScreen::updateNetizenWindowRaise(Window w) {
LinkedListIterator<Netizen> it(netizenList); Netizens::iterator it = netizenList.begin();
for (; it.current(); it++) Netizens::iterator it_end = netizenList.end();
it.current()->sendWindowRaise(w); for (; it != it_end; ++it) {
(*it)->sendWindowRaise(w);
}
} }
void BScreen::updateNetizenWindowLower(Window w) { void BScreen::updateNetizenWindowLower(Window w) {
LinkedListIterator<Netizen> it(netizenList); Netizens::iterator it = netizenList.begin();
for (; it.current(); it++) Netizens::iterator it_end = netizenList.end();
it.current()->sendWindowLower(w); for (; it != it_end; ++it) {
(*it)->sendWindowLower(w);
}
} }
void BScreen::updateNetizenConfigNotify(XEvent *e) { void BScreen::updateNetizenConfigNotify(XEvent *e) {
LinkedListIterator<Netizen> it(netizenList); Netizens::iterator it = netizenList.begin();
for (; it.current(); it++) Netizens::iterator it_end = netizenList.end();
it.current()->sendConfigNotify(e); for (; it != it_end; ++it) {
(*it)->sendConfigNotify(e);
}
} }
void BScreen::raiseWindows(Window *workspace_stack, int num) { void BScreen::raiseWindows(Window *workspace_stack, int num) {
Window session_stack[(num + workspacesList->count() + rootmenuList->count() + 13)]; Window session_stack[(num + workspacesList.size() + rootmenuList.size() + 13)];
int i = 0; int i = 0;
XRaiseWindow(getBaseDisplay()->getXDisplay(), iconmenu->getWindowID()); XRaiseWindow(getBaseDisplay()->getXDisplay(), iconmenu->getWindowID());
session_stack[i++] = iconmenu->getWindowID(); session_stack[i++] = iconmenu->getWindowID();
LinkedListIterator<Workspace> wit(workspacesList); Workspaces::iterator wit = workspacesList.begin();
for (; wit.current(); wit++) Workspaces::iterator wit_end = workspacesList.end();
session_stack[i++] = wit.current()->getMenu()->getWindowID(); for (; wit != wit_end; ++wit) {
session_stack[i++] = (*wit)->getMenu()->getWindowID();
}
session_stack[i++] = workspacemenu->getWindowID(); session_stack[i++] = workspacemenu->getWindowID();
@ -961,9 +986,11 @@ void BScreen::raiseWindows(Window *workspace_stack, int num) {
toolbar->getMenu()->getPlacementmenu()->getWindowID(); toolbar->getMenu()->getPlacementmenu()->getWindowID();
session_stack[i++] = toolbar->getMenu()->getWindowID(); session_stack[i++] = toolbar->getMenu()->getWindowID();
LinkedListIterator<Rootmenu> rit(rootmenuList); Rootmenus::iterator rit = rootmenuList.begin();
for (; rit.current(); rit++) Rootmenus::iterator rit_end = rootmenuList.end();
session_stack[i++] = rit.current()->getWindowID(); for (; rit != rit_end; ++rit) {
session_stack[i++] = (*rit)->getWindowID();
}
session_stack[i++] = rootmenu->getWindowID(); session_stack[i++] = rootmenu->getWindowID();
if (toolbar->isOnTop()) if (toolbar->isOnTop())
@ -994,14 +1021,14 @@ void BScreen::saveStrftimeFormat(char *format) {
void BScreen::addWorkspaceName(char *name) { void BScreen::addWorkspaceName(char *name) {
workspaceNames->insert(StringUtil::strdup(name)); workspaceNames.push_back(name);
} }
void BScreen::getNameOfWorkspace(int id, char **name) { void BScreen::getNameOfWorkspace(int id, char **name) {
if (id >= 0 && id < workspaceNames->count()) { if (id >= 0 && id < workspaceNames.size()) {
char *wkspc_name = workspaceNames->find(id); const char *wkspc_name = workspaceNames[id].c_str();
if (wkspc_name) if (wkspc_name)
*name = StringUtil::strdup(wkspc_name); *name = StringUtil::strdup(wkspc_name);
@ -1113,13 +1140,13 @@ void BScreen::raiseFocus(void) {
raiseWindow(fluxbox->getFocusedWindow()); raiseWindow(fluxbox->getFocusedWindow());
} }
// XXX - no good parsing here // XXX - no good parsing here
void BScreen::InitMenu(void) { void BScreen::InitMenu(void) {
I18n *i18n = I18n::instance(); I18n *i18n = I18n::instance();
if (rootmenu) { if (rootmenu) {
while (rootmenuList->count()) rootmenuList.erase(rootmenuList.begin(), rootmenuList.end());
rootmenuList->remove(0);
while (rootmenu->getCount()) while (rootmenu->getCount())
rootmenu->remove(0); rootmenu->remove(0);
@ -1238,7 +1265,6 @@ Bool BScreen::parseMenuFile(ifstream &file, Rootmenu *menu, int &row) {
continue; //read next line continue; //read next line
I18n *i18n = I18n::instance(); I18n *i18n = I18n::instance();
if (str_key == "end") { if (str_key == "end") {
return ((menu->getCount() == 0) ? True : False); return ((menu->getCount() == 0) ? True : False);
} else if (str_key == "nop") { } else if (str_key == "nop") {
@ -1387,7 +1413,7 @@ Bool BScreen::parseMenuFile(ifstream &file, Rootmenu *menu, int &row) {
parseMenuFile(file, submenu, row); parseMenuFile(file, submenu, row);
submenu->update(); submenu->update();
menu->insert(str_label.c_str(), submenu); menu->insert(str_label.c_str(), submenu);
rootmenuList->insert(submenu); rootmenuList.push_back(submenu);
} }
} // end of sub } // end of sub
else if (str_key == "restart") { else if (str_key == "restart") {
@ -1493,7 +1519,7 @@ Bool BScreen::parseMenuFile(ifstream &file, Rootmenu *menu, int &row) {
if (newmenu) { if (newmenu) {
stylesmenu->setLabel(str_label.c_str()); stylesmenu->setLabel(str_label.c_str());
menu->insert(str_label.c_str(), stylesmenu); menu->insert(str_label.c_str(), stylesmenu);
rootmenuList->insert(stylesmenu); rootmenuList.push_back(stylesmenu);
} }
fluxbox->saveMenuFilename(stylesdir); fluxbox->saveMenuFilename(stylesdir);
@ -1557,13 +1583,21 @@ void BScreen::shutdown(void) {
XSelectInput(getBaseDisplay()->getXDisplay(), getRootWindow(), NoEventMask); XSelectInput(getBaseDisplay()->getXDisplay(), getRootWindow(), NoEventMask);
XSync(getBaseDisplay()->getXDisplay(), False); XSync(getBaseDisplay()->getXDisplay(), False);
LinkedListIterator<Workspace> it(workspacesList); {
for (; it.current(); it ++) Workspaces::iterator it = workspacesList.begin();
it.current()->shutdown(); Workspaces::iterator it_end = workspacesList.end();
for (; it != it_end; ++it) {
(*it)->shutdown();
}
}
while (iconList->count()) { {
iconList->first()->restore(); Icons::iterator it = iconList.begin();
delete iconList->first(); Icons::iterator it_end = iconList.end();
for (; it != it_end; ++it) {
(*it)->restore();
delete (*it);
}
} }
#ifdef SLIT #ifdef SLIT

View file

@ -22,7 +22,7 @@
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE. // DEALINGS IN THE SOFTWARE.
// $Id: Screen.hh,v 1.15 2002/02/07 14:48:56 fluxgen Exp $ // $Id: Screen.hh,v 1.16 2002/02/08 13:35:20 fluxgen Exp $
#ifndef _SCREEN_HH_ #ifndef _SCREEN_HH_
#define _SCREEN_HH_ #define _SCREEN_HH_
@ -39,9 +39,6 @@
#ifndef _ICON_HH_ #ifndef _ICON_HH_
#include "Icon.hh" #include "Icon.hh"
#endif #endif
#ifndef _LINKEDLIST_HH_
#include "LinkedList.hh"
#endif
#ifndef _NETIZEN_HH_ #ifndef _NETIZEN_HH_
#include "Netizen.hh" #include "Netizen.hh"
#endif #endif
@ -82,9 +79,10 @@
#include <stdio.h> #include <stdio.h>
#include <string> #include <string>
#include <list>
#include <vector>
#include <fstream> #include <fstream>
class BScreen : public ScreenInfo { class BScreen : public ScreenInfo {
public: public:
BScreen(ResourceManager &rm, Fluxbox *b, BScreen(ResourceManager &rm, Fluxbox *b,
@ -128,7 +126,7 @@ public:
inline Toolbar *getToolbar(void) { return toolbar; } inline Toolbar *getToolbar(void) { return toolbar; }
inline Workspace *getWorkspace(int w) { return workspacesList->find(w); } inline Workspace *getWorkspace(int w) { return workspacesList[w]; }
inline Workspace *getCurrentWorkspace(void) { return current_workspace; } inline Workspace *getCurrentWorkspace(void) { return current_workspace; }
inline Workspacemenu *getWorkspacemenu(void) { return workspacemenu; } inline Workspacemenu *getWorkspacemenu(void) { return workspacemenu; }
@ -139,9 +137,12 @@ public:
inline const unsigned int getBorderWidth(void) const { return theme->getBorderWidth(); } inline const unsigned int getBorderWidth(void) const { return theme->getBorderWidth(); }
inline const unsigned int getBorderWidth2x(void) const { return theme->getBorderWidth()*2; } inline const unsigned int getBorderWidth2x(void) const { return theme->getBorderWidth()*2; }
inline const int getCurrentWorkspaceID() { return current_workspace->getWorkspaceID(); } inline const int getCurrentWorkspaceID() { return current_workspace->getWorkspaceID(); }
inline const int getCount(void) { return workspacesList->count(); }
inline const int getIconCount(void) { return iconList->count(); } typedef std::vector<FluxboxWindow *> Icons;
inline LinkedList<FluxboxWindow> *getIconList(void) { return iconList; } inline const int getCount(void) { return workspacesList.size(); }
inline const int getIconCount(void) { return iconList.size(); }
inline Icons &getIconList(void) { return iconList; }
inline const int getNumberOfWorkspaces(void) { return *resource.workspaces; } inline const int getNumberOfWorkspaces(void) { return *resource.workspaces; }
inline const Toolbar::Placement getToolbarPlacement(void) { return *resource.toolbar_placement; } inline const Toolbar::Placement getToolbarPlacement(void) { return *resource.toolbar_placement; }
inline const int getToolbarWidthPercent(void) { return *resource.toolbar_width_percent; } inline const int getToolbarWidthPercent(void) { return *resource.toolbar_width_percent; }
@ -265,9 +266,12 @@ private:
Rootmenu *rootmenu; Rootmenu *rootmenu;
LinkedList<Rootmenu> *rootmenuList; typedef std::list<Rootmenu *> Rootmenus;
LinkedList<Netizen> *netizenList; typedef std::list<Netizen *> Netizens;
LinkedList<FluxboxWindow> *iconList;
Rootmenus rootmenuList;
Netizens netizenList;
Icons iconList;
#ifdef SLIT #ifdef SLIT
Slit *slit; Slit *slit;
@ -280,8 +284,11 @@ private:
unsigned int geom_w, geom_h; unsigned int geom_w, geom_h;
unsigned long event_mask; unsigned long event_mask;
LinkedList<char> *workspaceNames; typedef std::vector<std::string> WorkspaceNames;
LinkedList<Workspace> *workspacesList; typedef std::vector<Workspace *> Workspaces;
WorkspaceNames workspaceNames;
Workspaces workspacesList;
struct ScreenResource { struct ScreenResource {
ScreenResource(ResourceManager &rm, const std::string &scrname, ScreenResource(ResourceManager &rm, const std::string &scrname,