fix bindgen
This commit is contained in:
parent
a110f2d3de
commit
a1f7444342
4 changed files with 14 additions and 10 deletions
16
bindgen.cc
16
bindgen.cc
|
|
@ -13,6 +13,7 @@ struct typeinfo {
|
|||
std::string struct_name;
|
||||
std::string widget_type;
|
||||
int pointer;
|
||||
int unsigned_num;
|
||||
};
|
||||
|
||||
struct property {
|
||||
|
|
@ -38,6 +39,8 @@ static std::string get_ctype(typeinfo type, int name = 1, int do_ptr = 1) {
|
|||
|
||||
if(type.type == "integer") {
|
||||
ret += "int";
|
||||
} else if(type.type == "short") {
|
||||
ret += "short";
|
||||
} else if(type.type == "string") {
|
||||
ret += "MwCXX::String";
|
||||
} else if(type.type == "pixmap") {
|
||||
|
|
@ -54,6 +57,8 @@ static std::string get_ctype(typeinfo type, int name = 1, int do_ptr = 1) {
|
|||
}
|
||||
}
|
||||
|
||||
if(type.unsigned_num) ret = "unsigned " + ret;
|
||||
|
||||
if(do_ptr && type.pointer) ret += "*";
|
||||
|
||||
if(name && type.name != "") {
|
||||
|
|
@ -99,11 +104,12 @@ static typeinfo xml_to_type(xl_node_t* node) {
|
|||
char* s;
|
||||
typeinfo ret;
|
||||
|
||||
ret.type = node->name;
|
||||
ret.name = ((s = xl_get_attribute(node, "name")) != NULL) ? s : "";
|
||||
ret.struct_name = ((s = xl_get_attribute(node, "defname")) != NULL) ? s : "";
|
||||
ret.widget_type = ((s = xl_get_attribute(node, "type")) != NULL) ? s : "";
|
||||
ret.pointer = ATTR_TO_BOOL(node, "pointer");
|
||||
ret.type = node->name;
|
||||
ret.name = ((s = xl_get_attribute(node, "name")) != NULL) ? s : "";
|
||||
ret.struct_name = ((s = xl_get_attribute(node, "defname")) != NULL) ? s : "";
|
||||
ret.widget_type = ((s = xl_get_attribute(node, "type")) != NULL) ? s : "";
|
||||
ret.pointer = ATTR_TO_BOOL(node, "pointer");
|
||||
ret.unsigned_num = ATTR_TO_BOOL(node, "unsigned");
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue