X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=util%2Fepist%2Factions.hh;h=f2d5423ab3552aa9a2a4553af3c3a5fc96f0386d;hb=bd05f7ec58f3e1f5839c372ad4fb007a8d8866f5;hp=71d20ce24c70acaf49f38f3a98c397886f5fb1a2;hpb=f586e55a8cd3d740a1b7b3a0801bad27030926f9;p=chaz%2Fopenbox diff --git a/util/epist/actions.hh b/util/epist/actions.hh index 71d20ce2..f2d5423a 100644 --- a/util/epist/actions.hh +++ b/util/epist/actions.hh @@ -1,38 +1,89 @@ +// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*- +// actions.hh for Epistrophy - a key handler for NETWM/EWMH window managers. +// Copyright (c) 2002 - 2002 Ben Jansens +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + #ifndef __actions_hh #define __actions_hh -#include extern "C" { -#include +#include } + +#include +#include + class Action { public: - // xOr: this is crap. enum ActionType { noaction = 0, - execute, - iconify, - raiseWindow, - lowerWindow, - closeWindow, - shade, - moveWindowUp, - moveWindowDown, - moveWindowLeft, - moveWindowRight, - - nextWindow, - prevWindow, - nextWindowOnAllDesktops, - prevWindowOnAllDesktops, - - nextWindowOfClass, - prevWindowOfClass, - - changeDesktop, - nextDesktop, - prevDesktop, + execute, //done + iconify, //done + raise, //done + lower, //done + close, //done + toggleshade, //done + toggleomnipresent, //done + moveWindowUp, //done + moveWindowDown, //done + moveWindowLeft, //done + moveWindowRight, //done + resizeWindowWidth, //done + resizeWindowHeight, //done + + toggleMaximizeFull, //done + toggleMaximizeVertical, //done + toggleMaximizeHorizontal, //done + + sendToWorkspace, //done + + nextWindow, //done for now + prevWindow, //done for now + nextWindowOnAllWorkspaces, //done for now + prevWindowOnAllWorkspaces, //done for now + + nextWindowOnAllScreens, //done for now + prevWindowOnAllScreens, //done for now + nextWindowOfClass, //done for now + prevWindowOfClass, //done for now + nextWindowOfClassOnAllWorkspaces, //done for now + prevWindowOfClassOnAllWorkspaces, //done for now + + upWindow, + downWindow, + leftWindow, + rightWindow, + + changeWorkspace, //done + nextWorkspace, //done + prevWorkspace, //done + + upWorkspace, //all done + downWorkspace, + leftWorkspace, + rightWorkspace, + + nextScreen, //done for now + prevScreen, //done for now + // these are openbox extensions showRootMenu, showWorkspaceMenu, @@ -41,22 +92,29 @@ public: keyChain, numberChain, - cancel, + cancelChain, //done + + NUM_ACTIONS }; private: - enum Action::ActionType _type; + enum ActionType _type; const KeyCode _keycode; - const int _modifierMask; - + const unsigned int _modifierMask; + + int _numberParam; + std::string _stringParam; public: inline enum ActionType type() const { return _type;} inline const KeyCode keycode() const { return _keycode; } - inline const int modifierMask() const { return _modifierMask; } + inline const unsigned int modifierMask() const { return _modifierMask; } + inline const int number() const { return _numberParam; } + inline const std::string &string() const { return _stringParam; } - Action::Action(enum ActionType type, KeyCode keycode, int modifierMask); + Action(enum ActionType type, KeyCode keycode, unsigned int modifierMask, + const std::string &str = ""); }; -typedef list ActionList; +typedef std::list ActionList; #endif