summaryrefslogtreecommitdiff
path: root/src/tag.h
blob: 243e40b17145d556af07950fdd181aa23a77ddd2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
/** Copyright 2011-2013 Thorsten Wißmann. All rights reserved.
 *
 * This software is licensed under the "Simplified BSD License".
 * See LICENSE for details */

#ifndef __HERBSTLUFT_TAG_H_
#define __HERBSTLUFT_TAG_H_

#include "glib-backports.h"
#include <stdbool.h>

struct HSFrame;
struct HSClient;
struct HSStack;

typedef struct HSTag {
    GString*        name;   // name of this tag
    GString*        display_name; // name used for object-io
    struct HSFrame* frame;  // the master frame
    bool            floating;
    int             flags;
    struct HSStack* stack;
    struct HSObject* object;
} HSTag;

void tag_init();
void tag_destroy();

// for tags
HSTag* add_tag(const char* name);
HSTag* find_tag(const char* name);
int    tag_index_of(HSTag* tag);
HSTag* find_unused_tag();
HSTag* find_tag_with_toplevel_frame(struct HSFrame* frame);
HSTag* get_tag_by_index(int index);
HSTag* get_tag_by_index_str(char* index_str, bool skip_visible_tags);
int    tag_get_count();
int tag_add_command(int argc, char** argv, GString* output);
int tag_rename_command(int argc, char** argv, GString* output);
int tag_move_window_command(int argc, char** argv, GString* output);
int tag_move_window_by_index_command(int argc, char** argv, GString* output);
void tag_move_focused_client(HSTag* target);
void tag_move_client(struct HSClient* client,HSTag* target);
int tag_remove_command(int argc, char** argv, GString* output);
int tag_set_floating_command(int argc, char** argv, GString* output);
void tag_update_focus_layer(HSTag* tag);
void tag_foreach(void (*action)(HSTag*,void*), void* data);
void tag_update_each_focus_layer();
void tag_update_focus_objects();
void tag_force_update_flags();
void tag_update_flags();
void tag_set_flags_dirty();
void ensure_tags_are_available();

#endif