File: wxe_return.h

package info (click to toggle)
erlang 1%3A25.2.3%2Bdfsg-1%2Bdeb12u3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 219,972 kB
  • sloc: erlang: 1,440,803; xml: 473,412; ansic: 392,382; cpp: 164,287; makefile: 17,392; sh: 13,842; lisp: 9,675; java: 8,578; asm: 6,426; perl: 5,527; python: 5,469; javascript: 610; pascal: 126; sed: 72; php: 3
file content (131 lines) | stat: -rw-r--r-- 3,937 bytes parent folder | download | duplicates (2)
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
/*
 * %CopyrightBegin%
 * 
 * Copyright Ericsson AB 2008-2021. All Rights Reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * 
 * %CopyrightEnd% 
 */

/* 
 * File:   wxe_return.h
 * Author: matthew
 *
 * Created on 11 October 2008, 20:33
 */

#ifndef _WXE_RETURN_H
#define	_WXE_RETURN_H
//#define wxUSEGUI
#include "wxe_impl.h"
#include <wx/wx.h>
#include <wx/aui/aui.h>
#include <wx/geometry.h>
#include <wx/colour.h>
#include <wx/grid.h>
#include <wx/gbsizer.h>
#include <wx/dynarray.h>
#include <wx/html/htmlcell.h>
#include <wx/graphics.h>

#define RT_BUFF_SZ 64



class wxeReturn {

public:
    wxeReturn (wxeMemEnv           *_memenv,
               ErlNifPid           _caller,
	       bool                _isResult=false);

    ~wxeReturn();
    //    void add(ErlDrvTermData type, ErlDrvTermData data);

    ERL_NIF_TERM make_ref(const unsigned int ref, ERL_NIF_TERM className);
    ERL_NIF_TERM make_ref(const unsigned int ref, const char* className);
    ERL_NIF_TERM make_atom(const char* atomName);

    ERL_NIF_TERM make_binary(const char* atomName, size_t size);
    ERL_NIF_TERM make_ext2term(wxeErlTerm * term);
    ERL_NIF_TERM make_ext2term(wxETreeItemData * term);

    ERL_NIF_TERM make_list_strings(size_t size, wxString* atomName);

    ERL_NIF_TERM make_list_objs(const wxWindowList& wx_list, WxeApp *app, const char *cname);
    ERL_NIF_TERM make_list_objs(const wxSizerItemList& wx_list, WxeApp *app, const char *cname);
    ERL_NIF_TERM make_list_objs(const wxMenuItemList& wx_list, WxeApp *app, const char *cname);

    ERL_NIF_TERM make_array_objs(wxGridCellCoordsArray& arr);
    // ERL_NIF_TERM make_array_objs(const wxList& wx_list, WxeApp *app, const char *cname);
    ERL_NIF_TERM make_array_objs(wxArrayTreeItemIds& arr);
    ERL_NIF_TERM make_array_objs(wxAuiPaneInfoArray&, WxeApp *app, const char *cname);

    ERL_NIF_TERM make_bool(int val);
    ERL_NIF_TERM make_int(int val);
    ERL_NIF_TERM make_uint(unsigned int val);
    ERL_NIF_TERM make_double(double val);

    ERL_NIF_TERM make(const wxString s);
    ERL_NIF_TERM make(const wxString* s);
    ERL_NIF_TERM make(wxArrayString val);

    ERL_NIF_TERM make(wxPoint pt);
    ERL_NIF_TERM make( wxPoint2DDouble point2D);

    ERL_NIF_TERM make(wxSize size);
    ERL_NIF_TERM make(wxRect rect);

    ERL_NIF_TERM make(wxRect2DDouble rect2D);

    ERL_NIF_TERM make(wxDateTime dateTime);

    ERL_NIF_TERM make(wxColour colour);
    ERL_NIF_TERM make(wxGraphicsGradientStop colour);

    ERL_NIF_TERM make(wxGridCellCoords val);

    ERL_NIF_TERM make(wxGBPosition val);
    ERL_NIF_TERM make(wxGBSpan val);

    ERL_NIF_TERM make(wxMouseState val);

    ERL_NIF_TERM make(wxArrayInt val);
    ERL_NIF_TERM make(wxArrayDouble val);
    ERL_NIF_TERM make(wxUIntPtr *val);

    ERL_NIF_TERM make(const wxHtmlLinkInfo *val);
    ERL_NIF_TERM make(const wxHtmlLinkInfo &val);

    int send(ERL_NIF_TERM msg);
    void send_callback(int callback, ERL_NIF_TERM args);
    void send_callback(int callback, wxObject *obj, const char *class_name, ERL_NIF_TERM args);

    void reset();

    ErlNifEnv              *env;

private:

    inline ERL_NIF_TERM  make_date(wxDateTime dateTime);
    inline ERL_NIF_TERM  make_time(wxDateTime dateTime);

    ErlNifPid               caller;
    wxMBConvUTF32           utfConverter;
    bool                    isResult;
    wxeMemEnv               *memenv;
};

#endif	/* _WXE_RETURN_H */