From 1ada2b68b62c44b7379f3623567dbb291d04ab7a Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Fri, 25 Aug 2006 09:19:27 +0000 Subject: Skeleton for the global keys stuff --- diff --git a/.gitignore b/.gitignore index 2284514..0895c3e 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,9 @@ Makefile Makefile.in *.deps +*.libs +*.la +*.lo # Absolute @@ -43,3 +46,4 @@ libtool ltmain.sh po/ChangeLog m4/intltool.m4 +bindings/globalkeys/globalkeys.c diff --git a/bindings/Makefile.am b/bindings/Makefile.am index 2f2d292..0d2dc85 100644 --- a/bindings/Makefile.am +++ b/bindings/Makefile.am @@ -1 +1 @@ -SUBDIRS = threadframe +SUBDIRS = globalkeys threadframe diff --git a/bindings/globalkeys/Makefile.am b/bindings/globalkeys/Makefile.am new file mode 100644 index 0000000..86e0abc --- /dev/null +++ b/bindings/globalkeys/Makefile.am @@ -0,0 +1,34 @@ +INCLUDES = \ + $(PYTHON_INCLUDES) \ + $(PYGTK_CFLAGS) \ + $(GLOBALKEYS_CFLAGS) + +pkgpythondir = $(pyexecdir)/sugar + +globalkeysdir = $(pkgpythondir) +globalkeys_PYTHON = __init__.py + +pkgpyexec_LTLIBRARIES = globalkeys.la + +globalkeys_la_LDFLAGS = -module -avoid-version +globalkeys_la_LIBADD = $(GLOBALKEYS_LIBS) + +globalkeys_la_SOURCES = \ + globalkeysmodule.c \ + sugar-key-grabber.h \ + sugar-key-grabber.c + +nodist_globalkeys_la_SOURCES = globalkeys.c + +globalkeys.c: globalkeys.defs globalkeys.override + +CLEANFILES = globalkeys.c +EXTRA_DIST = globalkeys.override globalkeys.defs + +.defs.c: + (cd $(srcdir)\ + && $(PYGTK_CODEGEN) \ + --override $*.override \ + --prefix py$* $*.defs) > gen-$*.c \ + && cp gen-$*.c $*.c \ + && rm -f gen-$*.c diff --git a/bindings/globalkeys/globalkeys.defs b/bindings/globalkeys/globalkeys.defs new file mode 100644 index 0000000..5597417 --- /dev/null +++ b/bindings/globalkeys/globalkeys.defs @@ -0,0 +1,17 @@ +(define-object KeyGrabber + (in-module "globalkeys") + (parent "GObject") + (c-name "SugarKeyGrabber") + (gtype-id "SUGAR_TYPE_KEY_GRABBER") +) + +(define-function sugar_key_grabber_get_type + (c-name "sugar_key_grabber_get_type") + (return-type "GType") +) + +(define-function sugar_key_grabber_new + (c-name "sugar_key_grabber_new") + (is-constructor-of "SugarKeyGrabber") + (return-type "GObject*") +) diff --git a/bindings/globalkeys/globalkeys.override b/bindings/globalkeys/globalkeys.override new file mode 100644 index 0000000..f54c4ef --- /dev/null +++ b/bindings/globalkeys/globalkeys.override @@ -0,0 +1,17 @@ +/* -*- Mode: C; c-basic-offset: 4 -*- */ +%% +headers +#include + +#include "pygobject.h" +#include "sugar-key-grabber.h" + +%% +modulename globalkeys +%% +import gobject.GObject as PyGObject_Type +%% +ignore-glob + *_get_type + _* +%% diff --git a/bindings/globalkeys/globalkeysmodule.c b/bindings/globalkeys/globalkeysmodule.c new file mode 100644 index 0000000..9034f51 --- /dev/null +++ b/bindings/globalkeys/globalkeysmodule.c @@ -0,0 +1,27 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +/* include this first, before NO_IMPORT_PYGOBJECT is defined */ +#include + +void pyglobalkeys_register_classes (PyObject *d); + +extern PyMethodDef pyglobalkeys_functions[]; + +DL_EXPORT(void) +initglobalkeys(void) +{ + PyObject *m, *d; + + init_pygobject (); + + m = Py_InitModule ("globalkeys", pyglobalkeys_functions); + d = PyModule_GetDict (m); + + pyglobalkeys_register_classes (d); + + if (PyErr_Occurred ()) { + Py_FatalError ("can't initialise module globalkeys"); + } +} diff --git a/bindings/globalkeys/sugar-key-grabber.c b/bindings/globalkeys/sugar-key-grabber.c new file mode 100644 index 0000000..3444377 --- /dev/null +++ b/bindings/globalkeys/sugar-key-grabber.c @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2006 Red Hat, Inc + * + * Sugar 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 of the License, or + * (at your option) any later version. + * + * Sugar 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. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + */ + +#include "sugar-key-grabber.h" + +struct _SugarKeyGrabber { + gpointer dummy; +}; + +struct _SugarKeyGrabberClass { + GObjectClass base_class; +}; + +G_DEFINE_TYPE(SugarKeyGrabber, sugar_key_grabber, G_TYPE_OBJECT) + +static void +sugar_key_grabber_class_init (SugarKeyGrabberClass *key_grabber_class) +{ +} + +static void +sugar_key_grabber_init (SugarKeyGrabber *key_grabber) +{ +} diff --git a/bindings/globalkeys/sugar-key-grabber.h b/bindings/globalkeys/sugar-key-grabber.h new file mode 100644 index 0000000..0d72a2b --- /dev/null +++ b/bindings/globalkeys/sugar-key-grabber.h @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2006 Red Hat, Inc + * + * Sugar 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 of the License, or + * (at your option) any later version. + * + * Sugar 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. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + */ + +#ifndef __SUGAR_KEY_GRABBER_H__ +#define __SUGAR_KEY_GRABBER_H__ + +#include + +G_BEGIN_DECLS + +typedef struct _SugarKeyGrabber SugarKeyGrabber; +typedef struct _SugarKeyGrabberClass SugarKeyGrabberClass; +typedef struct _SugarKeyGrabberPrivate SugarKeyGrabberPrivate; + +#define SUGAR_TYPE_KEY_GRABBER (sugar_key_grabber_get_type()) +#define SUGAR_KEY_GRABBER(object) (G_TYPE_CHECK_INSTANCE_CAST((object), SUGAR_TYPE_KEY_GRABBER, SugarKeyGrabber)) +#define SUGAR_KEY_GRABBER_CLASS(klass) (G_TYPE_CHACK_CLASS_CAST((klass), SUGAR_TYPE_KEY_GRABBER, SugarKeyGrabberClass)) +#define SUGAR_IS_KEY_GRABBER(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), SUGAR_TYPE_KEY_GRABBER)) +#define SUGAR_IS_KEYGRABBER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SUGAR_TYPE_KEY_GRABBER)) +#define SUGAR_KEY_GRABBER_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), SUGAR_TYPE_KEY_GRABBER, SugarKeyGrabberClass)) + +GType sugar_key_grabber_get_type (void); +GObject *sugar_key_grabber_new (void); + +G_END_DECLS + +#endif /* __SUGAR_KEY_GRABBER_H__ */ diff --git a/configure.ac b/configure.ac index 9e77e36..4270f39 100644 --- a/configure.ac +++ b/configure.ac @@ -18,6 +18,11 @@ AC_PROG_LIBTOOL AM_PATH_PYTHON AM_CHECK_PYTHON_HEADERS(,[AC_MSG_ERROR(could not find Python headers)]) +AC_PATH_PROG(PYGTK_CODEGEN, pygtk-codegen-2.0, no) + +PKG_CHECK_MODULES(PYGTK, pygtk-2.0) +PKG_CHECK_MODULES(GLOBALKEYS, gdk-2.0) + # # Setup GETTEXT # @@ -37,6 +42,7 @@ activities/chat/Makefile activities/groupchat/Makefile activities/terminal/Makefile bindings/Makefile +bindings/globalkeys/Makefile bindings/threadframe/Makefile shell/Makefile shell/data/Makefile -- cgit v0.9.1