File: MiscTypes.h

package info (click to toggle)
libgtk-perl 0.7009-12
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 3,956 kB
  • ctags: 2,260
  • sloc: perl: 13,998; xml: 9,919; ansic: 2,894; makefile: 64; cpp: 45
file content (71 lines) | stat: -rw-r--r-- 2,605 bytes parent folder | download | duplicates (3)
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

/* Copyright (C) 1997, Kenneth Albanowski.
   This code may be distributed under the same terms as Perl itself. */

#ifndef _Misc_Types_h_
#define _Misc_Types_h_

#ifndef PerlGtkDeclareFunc
#include "PerlGtkInt.h"
#endif

#include <gtk/gtktypeutils.h>

struct opts { int value; char * name; };
   
PerlGtkDeclareFunc(void, UnregisterMisc)(HV * hv_object, void * misc_object);
PerlGtkDeclareFunc(void, RegisterMisc)(HV * hv_object, void * misc_object);
PerlGtkDeclareFunc(HV *, RetrieveMisc)(void * gtk_object);

PerlGtkDeclareFunc(SV *, newSVMiscRef)(void * object, char * classname, int * newref);
PerlGtkDeclareFunc(void *, SvMiscRef)(SV * o, char * classname);

PerlGtkDeclareFunc(void, CroakOpts)(char * name, char * value, struct opts * o);
PerlGtkDeclareFunc(long, SvOpt)(SV * name, char * optname, struct opts * o);
PerlGtkDeclareFunc(SV *, newSVOpt)(long value, char * optname, struct opts * o);

PerlGtkDeclareFunc(long, SvOptFlags)(SV * name, char * optname, struct opts * o);
PerlGtkDeclareFunc(SV *, newSVOptFlags)(long value, char * optname, struct opts * o);

PerlGtkDeclareFunc(long, SvOptsHash)(SV * name, char * optname, HV * o);
PerlGtkDeclareFunc(SV *, newSVOptsHash)(long value, char * optname, HV * o);
PerlGtkDeclareFunc(long, SvFlagsHash)(SV * name, char * optname, HV * o);
PerlGtkDeclareFunc(SV *, newSVFlagsHash)(long value, char * optname, HV * o);

PerlGtkDeclareFunc (SV *, newSVDefEnumHash)(GtkType type, long value);
PerlGtkDeclareFunc (SV *, newSVDefFlagsHash)(GtkType type, long value);
PerlGtkDeclareFunc (long, SvEFValueLookup)(GtkEnumValue * vals, char* name, GtkType type);
PerlGtkDeclareFunc (long, SvDefEnumHash)(GtkType type, SV *name);
PerlGtkDeclareFunc (long, SvDefFlagsHash)(GtkType type, SV *name);
PerlGtkDeclareVar(int, pgtk_use_minus);
PerlGtkDeclareVar(int, pgtk_use_array);

PerlGtkDeclareFunc(void *, pgtk_alloc_temp)(int length);


#define PackCallbackST(av, first)							\
		if (SvRV(ST(first)) && (SvTYPE(SvRV(ST(first))) == SVt_PVAV)) {		\
			int i;								\
			AV * x = (AV*)SvRV(ST(first));					\
			for(i=0;i<=av_len(x);i++) {					\
				av_push(av, newSVsv(*av_fetch(x, i, 0)));		\
			}								\
		} else {								\
			int i;								\
			for(i=first;i<items;i++)					\
				av_push(av, newSVsv(ST(i)));				\
		}

#define PackCallback(av, sv)								\
		if (SvRV(sv) && (SvTYPE(SvRV(sv)) == SVt_PVAV)) {			\
			int i;								\
			AV * x = (AV*)SvRV(sv);						\
			for(i=0;i<=av_len(x);i++) {					\
				av_push(av, newSVsv(*av_fetch(x, i, 0)));		\
			}								\
		} else {								\
			av_push(av, newSVsv(sv));					\
		}

#endif /*_Misc_Types_h_*/