-void focus_cycle(gboolean forward, gboolean all_desktops,
- gboolean dock_windows, gboolean desktop_windows,
- gboolean linear, gboolean interactive,
- gboolean dialog, gboolean done, gboolean cancel);
-void focus_directional_cycle(ObDirection dir, gboolean dock_windows,
- gboolean desktop_windows, gboolean interactive,
- gboolean dialog, gboolean done, gboolean cancel);
-
-void focus_cycle_stop(struct _ObClient *ifclient);
+struct _ObClient* focus_cycle(gboolean forward, gboolean all_desktops,
+ gboolean nonhilite_windows,
+ gboolean dock_windows, gboolean desktop_windows,
+ gboolean linear, gboolean interactive,
+ gboolean showbar, ObFocusCyclePopupMode mode,
+ gboolean done, gboolean cancel);
+struct _ObClient* focus_directional_cycle(ObDirection dir,
+ gboolean dock_windows,
+ gboolean desktop_windows,
+ gboolean interactive,
+ gboolean showbar,
+ gboolean dialog,
+ gboolean done, gboolean cancel);
+
+/*! Set @redraw to FALSE if there are more clients to be added/removed first */
+void focus_cycle_addremove(struct _ObClient *ifclient, gboolean redraw);
+void focus_cycle_reorder();
+
+gboolean focus_cycle_valid(struct _ObClient *client);