]> Dogcows Code - chaz/openbox/blobdiff - src/Rootmenu.cc
build a 'openbox' binary
[chaz/openbox] / src / Rootmenu.cc
index 2bda207074bd3fc3d77b1513af6b680206334251..3fbc844c6fb0e67b71e9b9535fe01e7fcbe589b1 100644 (file)
@@ -1,5 +1,6 @@
-// Rootmenu.cc for Openbox
-// Copyright (c) 2001 Sean 'Shaleh' Perry <shaleh@debian.org>
+// -*- mode: C++; indent-tabs-mode: nil; -*-
+// Rootmenu.cc for Blackbox - an X11 Window manager
+// Copyright (c) 2001 - 2002 Sean 'Shaleh' Perry <shaleh@debian.org>
 // Copyright (c) 1997 - 2000 Brad Hughes (bhughes@tcac.net)
 //
 // Permission is hereby granted, free of charge, to any person obtaining a
 // 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 <stdio.h>
 #endif // HAVE_STDIO_H
 
-#ifdef    HAVE_STDLIB_H
+#ifdef HAVE_STDLIB_H
 #  include <stdlib.h>
 #endif // HAVE_STDLIB_H
 
-#ifdef    HAVE_STRING_H
+#ifdef HAVE_STRING_H
 #  include <string.h>
 #endif // HAVE_STRING_H
 
 #ifdef    HAVE_SYS_PARAM_H
 #  include <sys/param.h>
 #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), screen(scrn),
-  openbox(scrn.getOpenbox())
-{
-}
+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();
This page took 0.023012 seconds and 4 git commands to generate.