aboutsummaryrefslogtreecommitdiffstats
path: root/matchbox2/mb-wm-theme-xml.h
blob: 83621469b5693fbc9661a90095323876a578b7f7 (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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#ifndef _HAVE_MB_WM_THEME_PRIVATE_H
#define _HAVE_MB_WM_THEME_PRIVATE_H

#include <matchbox2/matchbox.h>
#include <matchbox2/mb-wm-theme.h>
/*
 * Helper structs for xml theme
 */
typedef struct Button
{
  MBWMDecorButtonType type;
  MBWMDecorButtonPack packing;

  MBWMColor clr_fg;
  MBWMColor clr_bg;

  int x;
  int y;
  int width;
  int height;

  /* Needed by png themes */
  int active_x;
  int active_y;

  int inactive_x;
  int inactive_y;

  int press_activated;
} MBWMXmlButton;

typedef enum _MBWMXmlFontUnits
{
  MBWMXmlFontUnitsPixels,
  MBWMXmlFontUnitsPoints,
} MBWMXmlFontUnits;

typedef struct Decor
{
  MBWMDecorType type;

  MBWMColor clr_fg;
  MBWMColor clr_bg;

  int x;
  int y;
  int width;
  int height;
  int pad_offset;
  int pad_length;
  int show_title;

  int                font_size;
  MBWMXmlFontUnits   font_units;
  char             * font_family;

  MBWMList * buttons;
}MBWMXmlDecor;

typedef struct Client
{
  MBWMClientType  type;

  int x;
  int y;
  int width;
  int height;

  Bool shaped;

  MBWMList       *decors;

  MBWMClientLayoutHints layout_hints;
}MBWMXmlClient;

MBWMXmlButton *
mb_wm_xml_button_new ();

void
mb_wm_xml_button_free (MBWMXmlButton * b);

MBWMXmlDecor *
mb_wm_xml_decor_new ();

void
mb_wm_xml_decor_free (MBWMXmlDecor * d);

MBWMXmlClient *
mb_wm_xml_client_new ();

void
mb_wm_xml_client_free (MBWMXmlClient * c);

MBWMXmlClient *
mb_wm_xml_client_find_by_type (MBWMList *l, MBWMClientType type);

MBWMXmlDecor *
mb_wm_xml_decor_find_by_type (MBWMList *l, MBWMDecorType type);

MBWMXmlButton *
mb_wm_xml_button_find_by_type (MBWMList *l, MBWMDecorButtonType type);

void
mb_wm_xml_clr_from_string (MBWMColor * clr, const char *s);

#endif