X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2FRootmenu.cc;h=3fbc844c6fb0e67b71e9b9535fe01e7fcbe589b1;hb=e5bdc511678f9005f5cb3330f01a1af98bf0da83;hp=4728f5075b8a02095b27f05a10de34fea0caeb12;hpb=1b1efab489353734f0047f97fe5fef7f96d0ee68;p=chaz%2Fopenbox diff --git a/src/Rootmenu.cc b/src/Rootmenu.cc index 4728f507..3fbc844c 100644 --- a/src/Rootmenu.cc +++ b/src/Rootmenu.cc @@ -1,5 +1,6 @@ -// Rootmenu.cc for Openbox -// Copyright (c) 2001 Sean 'Shaleh' Perry +// -*- mode: C++; indent-tabs-mode: nil; -*- +// Rootmenu.cc for Blackbox - an X11 Window manager +// Copyright (c) 2001 - 2002 Sean 'Shaleh' Perry // Copyright (c) 1997 - 2000 Brad Hughes (bhughes@tcac.net) // // Permission is hereby granted, free of charge, to any person obtaining a @@ -20,48 +21,38 @@ // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// stupid macros needed to access some functions in version 2 of the GNU C -// library -#ifndef _GNU_SOURCE -#define _GNU_SOURCE -#endif // _GNU_SOURCE - #ifdef HAVE_CONFIG_H # include "../config.h" #endif // HAVE_CONFIG_H -#include "openbox.h" -#include "Rootmenu.h" -#include "Screen.h" - +extern "C" { #ifdef HAVE_STDIO_H # include #endif // HAVE_STDIO_H -#ifdef HAVE_STDLIB_H +#ifdef HAVE_STDLIB_H # include #endif // HAVE_STDLIB_H -#ifdef HAVE_STRING_H +#ifdef HAVE_STRING_H # include #endif // HAVE_STRING_H #ifdef HAVE_SYS_PARAM_H # include #endif // HAVE_SYS_PARAM_H +} -#ifndef MAXPATHLEN -#define MAXPATHLEN 255 -#endif // MAXPATHLEN +#include "blackbox.hh" +#include "Rootmenu.hh" +#include "Screen.hh" +#include "Util.hh" -Rootmenu::Rootmenu(BScreen &scrn) : Basemenu(scrn), openbox(scrn.getOpenbox()), - screen(scrn) -{ -} +Rootmenu::Rootmenu(BScreen *scrn) : Basemenu(scrn) { } -void Rootmenu::itemSelected(int button, int index) { +void Rootmenu::itemSelected(int button, unsigned int index) { if (button != 1) return; @@ -72,44 +63,33 @@ void Rootmenu::itemSelected(int button, int index) { switch (item->function()) { case BScreen::Execute: - if (item->exec()) { -#ifndef __EMX__ - char displaystring[MAXPATHLEN]; - sprintf(displaystring, "DISPLAY=%s", - DisplayString(screen.getBaseDisplay().getXDisplay())); - sprintf(displaystring + strlen(displaystring) - 1, "%d", - screen.getScreenNumber()); - - bexec(item->exec(), displaystring); -#else // __EMX__ - spawnlp(P_NOWAIT, "cmd.exe", "cmd.exe", "/c", item->exec(), NULL); -#endif // !__EMX__ - } + if (item->exec()) + bexec(item->exec(), getScreen()->displayString()); break; case BScreen::Restart: - openbox.restart(); + getScreen()->getBlackbox()->restart(); break; case BScreen::RestartOther: if (item->exec()) - openbox.restart(item->exec()); + getScreen()->getBlackbox()->restart(item->exec()); break; case BScreen::Exit: - openbox.shutdown(); + getScreen()->getBlackbox()->shutdown(); break; case BScreen::SetStyle: if (item->exec()) - openbox.setStyleFilename(item->exec()); + getScreen()->getBlackbox()->saveStyleFilename(item->exec()); case BScreen::Reconfigure: - openbox.reconfigure(); + getScreen()->getBlackbox()->reconfigure(); return; } - if (! (screen.getRootmenu()->isTorn() || isTorn()) && + if (! (getScreen()->getRootmenu()->isTorn() || isTorn()) && item->function() != BScreen::Reconfigure && item->function() != BScreen::SetStyle) hide();