---
name: "Wx::Api"
section: "3pm"
platform: "linux"
package: "libwx-perl"
version: "1:0.9932-9+b2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Wx::Api"
---

# Wx::Api(3pm)

wxPerl extension API documentation

## NAME

API - wxPerl extension API documentation

## DESCRIPTION

### WXPL\_API\_VERSION

An integer value used to differentiate wxPerl versions, it is guaranteed to be non-decreasing. wxPerl 0.15 value is 0150; wxPerl 1.00 value will be 1000, wxPerl 2.12 value will be 2120.

*Introduced in wxPerl 0.15*

### wxPli\_create\_evthandler

```
  SV* wxPli_create_evthandler( pTHX_ wxEvtHandler* object,
                               const char* classname );
```

Creates a new hash reference, blessed into `"classname"`, and binds`"object"` to it.

*Introduced in wxPerl 0.16*

### wxPli\_evthandler\_2\_sv

```
  SV* wxPli_evthandler_2_sv( pTHX_ SV* var, wxEvtHandler* evth );
```

Same as wxPli\_object\_2\_sv, but works with `"wxEvtHandler"`-derived classes, which includes all `"wxWindow"`-derived classes.

*Introduced in wxPerl 0.16*

### wxPli\_get\_class

```
  const char* wxPli_get_class( pTHX_ SV* ref );
```

The C++ equivalent of `"$class = ref( $obj ) || $obj"`; the pointer returned by the function is potentially temporary.

### wxPli\_non\_object\_2\_sv

```
  SV* wxPli_non_object_2_sv( pTHX_ SV* var, void* data, const char* package );
```

Binds a generic pointer to an `"SV*"`, and returns it; the new binding is blessed into the given `"package"`.

*Introduced before wxPerl 0.14*

### wxPli\_object\_2\_sv

```
  SV* wxPli_object_2_sv( pTHX_ SV* var, wxObject* object );
```

Binds a `"wxObject*"` pointer to an `"SV*"`, and returns it.  If the object is already bound to an `"SV*"`, returns a reference to the existing `"SV*"`, otherwise, it creates a new binding; in the latter case, the new `"SV*"` is blessed into a package obtained through the wxWidgets RTTI system.

*Introduced before wxPerl 0.14*

### wxPli\_push\_arguments

```
  void wxPli_push_arguments( pTHX_ SV*** stack, const char* argtypes, ... );
  // example
  wxPli_push_arguments( aTHX_ SP, "iP", 12, "foo" );
```

Pushes a variable number of arguments on the perl stack, it is useful for passing parameters to a Perl function. The `"argtypes"` string describes the types of subsequent arguments, each character of the string specifying the type of a single argument. Possible values are:

- b

  a `"bool"` value

- i

  an `"int"` value

- l

  a `"long"` value

- L

  an `"unsigned long"` value

- d

  a `"double"` value

- p

  a `"char*"` value

- w

  a `"wxChar*"` value

- P

  a `"wxString*"` value

- S

  a `"SV*"`, a **copy** of the SV is pushed on the stack

- s

  a `"SV*"`, the pointer itself is pushed on the stack

- O

  a `"wxObject*"`, the function will internally call `"wxPli_object_2_sv"` and push the result on the stack.

- o

  this is the only type that uses 2 parameters: the first is a `"void*"`, the second a `"char*"`; the function will internally call `"wxPli_non_object_2_sv"` and push the result on the stack.

*Introduced before wxPerl 0.14*

### wxPli\_sv\_2\_object

```
  void* wxPli_sv_2_object( pTHX_ SV* scalar, const char* classname );
```

Extracts a bound pointer from a perl reference, checking that the reference belongs to the correct class (**die()**s on failure), and returns it. If `"classname"` is `"NULL"`, the check is not done.

*Introduced before wxPerl 0.14*

### wxPli\_wxChar\_2\_sv

```
  SV* wxPli_wxChar_2_sv( pTHX_ const wxChar* str, SV* out );
```

Stores a string into a `"SV*"`, and returns the `"SV*"`.

*Introduced before wxPerl 0.14*

### wxPli\_wxString\_2\_sv

```
  SV* wxPli_wxString_2_sv( pTHX_ const wxString& str, SV* out );
```

Stores a string into a `"SV*"`, and returns the `"SV*"`.

*Introduced before wxPerl 0.14*

## AUTHOR

Mattia Barbon \<mbarbon at cpan dot org\>
