/*
 * DWN - Desktop Window Manager
 * retoor <retoor@molodetz.nl>
 * Layout algorithms (tiling, floating, monocle)
 */

#ifndef DWN_LAYOUT_H
#define DWN_LAYOUT_H

#include "dwn.h"

void layout_arrange(int workspace);
void layout_arrange_tiling(int workspace);
void layout_arrange_floating(int workspace);
void layout_arrange_monocle(int workspace);
void layout_arrange_centered_master(int workspace);
void layout_arrange_columns(int workspace);
void layout_arrange_fibonacci(int workspace);

int layout_get_usable_area(int *x, int *y, int *width, int *height);
int layout_count_tiled_clients(int workspace);

void layout_apply_snap_constraint(Client *c, int area_x, int area_y,
                                  int area_w, int area_h, int gap);

const char *layout_get_name(LayoutType layout);
const char *layout_get_symbol(LayoutType layout);

#endif
