1
0
mirror of https://github.com/Llewellynvdm/conky.git synced 2024-11-20 03:51:18 +00:00

Add creation functions for certain cairo structures.

This commit is contained in:
Brenden Matthews 2009-11-25 12:52:44 -08:00
parent 4652e834b1
commit 8bd41caa51
5 changed files with 109 additions and 12 deletions

View File

@ -208,10 +208,10 @@
</refsect1> </refsect1>
<refsect1> <refsect1>
<title>Lua API</title> <title>Lua API</title>
<para>Conky features a Lua Programming API, and also ships with <para>Conky features a Lua Programming API, and also ships with Lua
some Lua bindings for some useful libraries. Conky defines bindings for some useful libraries. Conky defines certain global
certain global functions and variables which can be accessed functions and variables which can be accessed from Lua code running
from Lua code running in Conky. in Conky.
</para> </para>
<para>To use Lua Conky, you first need to make sure you have a version of Conky <para>To use Lua Conky, you first need to make sure you have a version of Conky
with Lua support enabled (``conky -v'' will report this). Scripts with Lua support enabled (``conky -v'' will report this). Scripts
@ -228,6 +228,11 @@
At this time, the Lua API should not be considered stable and may At this time, the Lua API should not be considered stable and may
change drastically from one release to another as it matures. change drastically from one release to another as it matures.
</para> </para>
<para>
NOTE: In order to accommodate certain features in the cairo
library's API, Conky will export a few additional functions for the
creation of certain structures. These are documented below.
</para>
&lua; &lua;
</refsect1> </refsect1>
<refsect1> <refsect1>

View File

@ -186,4 +186,43 @@
configuration file.</para> configuration file.</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry>
<term>
<command>
<option>cairo_text_extents_t:create()</option>
</command>
<option>function</option>
</term>
<listitem>
<para>
Call this function to return a new cairo_text_extents_t structure. A creation function for this structure is not provided by the cairo API. After calling this, you should use tolua.takeownership() on the return value to ensure ownership is passed properly.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<command>
<option>cairo_font_extents_t:create()</option>
</command>
<option>function</option>
</term>
<listitem>
<para>
Call this function to return a new cairo_font_extents_t structure. A creation function for this structure is not provided by the cairo API. After calling this, you should use tolua.takeownership() on the return value to ensure ownership is passed properly.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<command>
<option>cairo_matrix_t:create()</option>
</command>
<option>function</option>
</term>
<listitem>
<para>
Call this function to return a new cairo_matrix_t structure. A creation function for this structure is not provided by the cairo API. After calling this, you should use tolua.takeownership() on the return value to ensure ownership is passed properly.
</para>
</listitem>
</varlistentry>
</variablelist> </variablelist>

View File

@ -20,37 +20,44 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
libcairo_la_SOURCES = libcairo.c
libimlib2_la_SOURCES = libimlib2.c
if BUILD_LUA if BUILD_LUA
if BUILD_LUA_CAIRO if BUILD_LUA_CAIRO
libcairo = libcairo.la libcairo_built_sources = libcairo.c
libcairo_la_CFLAGS = $(cairo_CFLAGS) $(cairo_xlib_CFLAGS) $(tolua_CFLAGS) libcairo = libcairo.la
libcairo_la_LIBADD = $(cairo_LIBS) $(cairo_xlib_LIBS) $(tolua_LIBS)
libcairo.c: cairo.pkg libcairo.c: cairo.pkg
${toluapp} -n cairo -o $@ $(srcdir)/cairo.pkg ${toluapp} -n cairo -o $@ $(srcdir)/cairo.pkg
libcairo_la_CFLAGS = $(cairo_CFLAGS) $(cairo_xlib_CFLAGS) $(tolua_CFLAGS)
libcairo_la_LIBADD = $(cairo_LIBS) $(cairo_xlib_LIBS) $(tolua_LIBS)
libcairo_la_SOURCES = cairo.pkg libcairo-helper.h libcairo.c
endif # BUILD_LUA_CAIRO endif # BUILD_LUA_CAIRO
if BUILD_LUA_IMLIB2 if BUILD_LUA_IMLIB2
libimlib2 = libimlib2.la libimlib2_built_sources = libimlib2.c
libimlib2_la_CFLAGS = $(Imlib2_CFLAGS) $(tolua_CFLAGS) libimlib2 = libimlib2.la
libimlib2_la_LIBADD = $(Imlib2_LIBS) $(tolua_LIBS)
libimlib2.c: imlib2.pkg libimlib2.c: imlib2.pkg
${toluapp} -n imlib2 -o $@ $(srcdir)/imlib2.pkg ${toluapp} -n imlib2 -o $@ $(srcdir)/imlib2.pkg
libimlib2_la_CFLAGS = $(Imlib2_CFLAGS) $(tolua_CFLAGS)
libimlib2_la_LIBADD = $(Imlib2_LIBS) $(tolua_LIBS)
libimlib2_la_SOURCES = imlib2.pkg libimlib2.c
endif # BUILD_LUA_IMLIB2 endif # BUILD_LUA_IMLIB2
pkglib_LTLIBRARIES = $(libcairo) $(libimlib2) pkglib_LTLIBRARIES = $(libcairo) $(libimlib2)
endif # BUILD_LUA endif # BUILD_LUA
EXTRA_DIST = libcairo-helper.h
BUILT_SOURCES = $(cairo_built_sources) $(imlib2_built_sources)
# vi:set ts=4 sw=4 noet ai nocindent syntax=automake: # vi:set ts=4 sw=4 noet ai nocindent syntax=automake:

View File

@ -3,6 +3,7 @@ $#include <cairo-deprecated.h>
$#include <cairo.h> $#include <cairo.h>
$#include <cairo-xlib.h> $#include <cairo-xlib.h>
$#include <X11/Xlib.h> $#include <X11/Xlib.h>
$#include "libcairo-helper.h"
/* /*
* This code was mostly copied from cairo.h and cairo-xlib.h with comments * This code was mostly copied from cairo.h and cairo-xlib.h with comments
* removed. The licence noticed below is present for the sake of clarity. * removed. The licence noticed below is present for the sake of clarity.
@ -59,6 +60,7 @@ typedef struct _cairo_matrix {
double yy; double yy;
double x0; double x0;
double y0; double y0;
static tolua_outside cairo_matrix_t* create_cairo_matrix_t @ create();
} cairo_matrix_t; } cairo_matrix_t;
typedef int cairo_bool_t; typedef int cairo_bool_t;
@ -375,6 +377,7 @@ typedef struct {
double height; double height;
double x_advance; double x_advance;
double y_advance; double y_advance;
static tolua_outside cairo_text_extents_t* create_cairo_text_extents_t @ create();
} cairo_text_extents_t; } cairo_text_extents_t;
typedef struct { typedef struct {
@ -383,6 +386,7 @@ typedef struct {
double height; double height;
double max_x_advance; double max_x_advance;
double max_y_advance; double max_y_advance;
static tolua_outside cairo_font_extents_t* create_cairo_font_extents_t @ create();
} cairo_font_extents_t; } cairo_font_extents_t;
typedef enum _cairo_font_slant { typedef enum _cairo_font_slant {

42
lua/libcairo-helper.h Normal file
View File

@ -0,0 +1,42 @@
/* -*- mode: c; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: t -*-
*
* Conky, a system monitor, based on torsmo
*
* Please see COPYING for details
*
* Copyright (c) 2005-2009 Brenden Matthews, Philip Kovacs, et. al.
* (see AUTHORS)
* All rights reserved.
*
* 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 3 of the License, 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.
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef _LIBCAIRO_HELPER_H_
#define _LIBCAIRO_HELPER_H_
#include <cairo.h>
cairo_text_extents_t *create_cairo_text_extents_t(void) {
return calloc(1, sizeof(cairo_text_extents_t));
}
cairo_font_extents_t *create_cairo_font_extents_t(void) {
return calloc(1, sizeof(cairo_font_extents_t));
}
cairo_matrix_t *create_cairo_matrix_t(void) {
return calloc(1, sizeof(cairo_matrix_t));
}
#endif /* _LIBCAIRO_HELPER_H_ */