aboutsummaryrefslogtreecommitdiffstats
path: root/matchbox2/mb-wm-keys.h
blob: 656c6e6149d333b52a496a53eb3f08d7ba9c098a (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
/*
 *  Matchbox Window Manager II - A lightweight window manager not for the
 *                               desktop.
 *
 *  Authored By Matthew Allum <mallum@o-hand.com>
 *
 *  Copyright (c) 2005 OpenedHand Ltd - http://o-hand.com
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2, or (at your option)
 *  any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 */

#ifndef _HAVE_MB_WM_KEYS_H
#define _HAVE_MB_WM_KEYS_H

#include <matchbox2/mb-wm.h>

typedef struct MBWMKeys       MBWMKeys;
typedef struct MBWMKeyBinding MBWMKeyBinding;

typedef void (*MBWMKeyPressedFunc) (MBWindowManager   *wm,
				    MBWMKeyBinding    *binding,
				    void              *userdata);

typedef void (*MBWMKeyDestroyFunc) (MBWindowManager   *wm,
				    MBWMKeyBinding    *binding,
				    void              *userdata);

struct MBWMKeyBinding
{
  KeySym                   keysym;
  int                      modifier_mask;
  MBWMKeyPressedFunc       pressed;
  MBWMKeyDestroyFunc       destroy;
  void                    *userdata;
  /* FIXME: free func */
};

void
mb_wm_keys_binding_remove_all (MBWindowManager    *wm);

void
mb_wm_keys_binding_remove (MBWindowManager    *wm,
			   MBWMKeyBinding     *binding);
MBWMKeyBinding*
mb_wm_keys_binding_add (MBWindowManager    *wm,
			KeySym              ks,
			int                 mask,
			MBWMKeyPressedFunc  press_func,
			MBWMKeyDestroyFunc  destroy_func,
			void               *userdata);

MBWMKeyBinding*
mb_wm_keys_binding_add_with_spec (MBWindowManager    *wm,
				  const char         *keystr,
				  MBWMKeyPressedFunc  press_func,
				  MBWMKeyDestroyFunc  destroy_func,
				  void               *userdata);

void
mb_wm_keys_press (MBWindowManager *wm,
		  KeySym           keysym,
		  int              modifier_mask);

Bool
mb_wm_keys_init (MBWindowManager *wm);

#endif