openbox/openbox/action.c
2007-06-23 15:11:56 +00:00

149 lines
3.6 KiB
C

/* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
action.c for the Openbox window manager
Copyright (c) 2006 Mikael Magnusson
Copyright (c) 2003-2007 Dana Jansens
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
See the COPYING file for a copy of the GNU General Public License.
*/
#include "debug.h"
#include "client.h"
#include "focus.h"
#include "focus_cycle.h"
#include "moveresize.h"
#include "menu.h"
#include "prop.h"
#include "stacking.h"
#include "screen.h"
#include "action.h"
#include "openbox.h"
#include "grab.h"
#include "keyboard.h"
#include "event.h"
#include "dock.h"
#include "config.h"
#include "mainloop.h"
#include "startupnotify.h"
#include "gettext.h"
#include <glib.h>
void setup_action_growtoedge_north(ObAction **a, ObUserAction uact)
{
(*a)->data.diraction.any.client_action = OB_CLIENT_ACTION_ALWAYS;
(*a)->data.diraction.direction = OB_DIRECTION_NORTH;
}
void setup_action_growtoedge_south(ObAction **a, ObUserAction uact)
{
(*a)->data.diraction.any.client_action = OB_CLIENT_ACTION_ALWAYS;
(*a)->data.diraction.direction = OB_DIRECTION_SOUTH;
}
void setup_action_growtoedge_east(ObAction **a, ObUserAction uact)
{
(*a)->data.diraction.any.client_action = OB_CLIENT_ACTION_ALWAYS;
(*a)->data.diraction.direction = OB_DIRECTION_EAST;
}
void setup_action_growtoedge_west(ObAction **a, ObUserAction uact)
{
(*a)->data.diraction.any.client_action = OB_CLIENT_ACTION_ALWAYS;
(*a)->data.diraction.direction = OB_DIRECTION_WEST;
}
void setup_action_top_layer(ObAction **a, ObUserAction uact)
{
(*a)->data.layer.any.client_action = OB_CLIENT_ACTION_ALWAYS;
(*a)->data.layer.layer = 1;
}
void setup_action_normal_layer(ObAction **a, ObUserAction uact)
{
(*a)->data.layer.any.client_action = OB_CLIENT_ACTION_ALWAYS;
(*a)->data.layer.layer = 0;
}
void setup_action_bottom_layer(ObAction **a, ObUserAction uact)
{
(*a)->data.layer.any.client_action = OB_CLIENT_ACTION_ALWAYS;
(*a)->data.layer.layer = -1;
}
void setup_client_action(ObAction **a, ObUserAction uact)
{
(*a)->data.any.client_action = OB_CLIENT_ACTION_ALWAYS;
}
ActionString actionstrings[] =
{
{
"shadelower",
action_shadelower,
setup_client_action
},
{
"unshaderaise",
action_unshaderaise,
setup_client_action
},
{
"growtoedgenorth",
action_growtoedge,
setup_action_growtoedge_north
},
{
"growtoedgesouth",
action_growtoedge,
setup_action_growtoedge_south
},
{
"growtoedgewest",
action_growtoedge,
setup_action_growtoedge_west
},
{
"growtoedgeeast",
action_growtoedge,
setup_action_growtoedge_east
},
{
NULL,
NULL,
NULL
}
};
void action_unshaderaise(union ActionData *data)
{
if (data->client.any.c->shaded)
action_unshade(data);
else
action_raise(data);
}
void action_shadelower(union ActionData *data)
{
if (data->client.any.c->shaded)
action_lower(data);
else
action_shade(data);
}
void action_growtoedge(union ActionData *data)
{
}