1 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
3 focus_cycle.h for the Openbox window manager
4 Copyright (c) 2006 Mikael Magnusson
5 Copyright (c) 2003-2007 Dana Jansens
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2 of the License, or
10 (at your option) any later version.
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 See the COPYING file for a copy of the GNU General Public License.
20 #ifndef __focus_cycle_h
21 #define __focus_cycle_h
24 #include "focus_cycle_popup.h"
31 /*! The client which appears focused during a focus cycle operation */
32 extern struct _ObClient
*focus_cycle_target
;
34 void focus_cycle_startup(gboolean reconfig
);
35 void focus_cycle_shutdown(gboolean reconfig
);
37 /*! Cycle focus amongst windows. */
38 struct _ObClient
* focus_cycle(gboolean forward
, gboolean all_desktops
,
39 gboolean nonhilite_windows
,
40 gboolean dock_windows
, gboolean desktop_windows
,
41 gboolean linear
, gboolean interactive
,
42 gboolean showbar
, ObFocusCyclePopupMode mode
,
43 gboolean done
, gboolean cancel
);
44 struct _ObClient
* focus_directional_cycle(ObDirection dir
,
45 gboolean dock_windows
,
46 gboolean desktop_windows
,
50 gboolean done
, gboolean cancel
);
52 /*! Set @redraw to FALSE if there are more clients to be added/removed first */
53 void focus_cycle_addremove(struct _ObClient
*ifclient
, gboolean redraw
);
54 void focus_cycle_reorder();
56 gboolean
focus_cycle_valid(struct _ObClient
*client
);