]> Dogcows Code - chaz/openbox/blobdiff - src/Workspacemenu.cc
build a 'openbox' binary
[chaz/openbox] / src / Workspacemenu.cc
index 6a1e034b4ac436026f8d8f2e64e041ed37f31fa8..a63251ab00c879a55e8e9423b2c81ac2a85613be 100644 (file)
@@ -1,5 +1,6 @@
-// Workspacemenu.cc for Openbox
-// Copyright (c) 2001 Sean 'Shaleh' Perry <shaleh@debian.org>
+// -*- mode: C++; indent-tabs-mode: nil; -*-
+// Workspacemenu.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 "i18n.h"
-#include "openbox.h"
-#include "Screen.h"
-#include "Toolbar.h"
-#include "Workspacemenu.h"
-#include "Workspace.h"
+#include "i18n.hh"
+#include "blackbox.hh"
+#include "Screen.hh"
+#include "Toolbar.hh"
+#include "Workspacemenu.hh"
+#include "Workspace.hh"
 
 
-Workspacemenu::Workspacemenu(BScreen &scrn) : Basemenu(scrn), screen(scrn) {
+Workspacemenu::Workspacemenu(BScreen *scrn) : Basemenu(scrn) {
   setInternalMenu();
 
-  setLabel(i18n->getMessage(WorkspacemenuSet, WorkspacemenuWorkspacesTitle,
-                           "Workspaces"));
-  insert(i18n->getMessage(WorkspacemenuSet, WorkspacemenuNewWorkspace,
-                         "New Workspace"));
-  insert(i18n->getMessage(WorkspacemenuSet, WorkspacemenuRemoveLast,
-                         "Remove Last"));
+  setLabel(i18n(WorkspacemenuSet, WorkspacemenuWorkspacesTitle, "Workspaces"));
+  insert(i18n(WorkspacemenuSet, WorkspacemenuNewWorkspace, "New Workspace"));
+  insert(i18n(WorkspacemenuSet, WorkspacemenuRemoveLast, "Remove Last"));
 }
 
 
-void Workspacemenu::itemSelected(int button, int index) {
+void Workspacemenu::itemSelected(int button, unsigned int index) {
   if (button != 1)
     return;
 
-  if (index == 0)
-    screen.addWorkspace();
-  else if (index == 1)
-    screen.removeLastWorkspace();
-  else if ((screen.getCurrentWorkspace()->getWorkspaceID() !=
-           (index - 2)) && ((index - 2) < screen.getWorkspaceCount()))
-    screen.changeWorkspaceID(index - 2);
-
-  if (! (screen.getWorkspacemenu()->isTorn() || isTorn()))
+  if (index == 0) {
+    getScreen()->addWorkspace();
+  } else if (index == 1) {
+    getScreen()->removeLastWorkspace();
+  } else {
+    index -= 2;
+    const Workspace* const wkspc = getScreen()->getCurrentWorkspace();
+    if (wkspc->getID() != index && index < getScreen()->getWorkspaceCount())
+      getScreen()->changeWorkspaceID(index);
+  }
+  if (! (getScreen()->getWorkspacemenu()->isTorn() || isTorn()))
     hide();
 }
This page took 0.021513 seconds and 4 git commands to generate.