Returns the name of an interface element attribute. See also the Attributes Guide section.
char *IupGetAttribute(Ihandle *ih, const char *name); [in C]
iup.GetAttribute(ih: ihandle, name: string) -> value: string, ihandle or userdata [in Lua] char *IupGetAttributeId(Ihandle *ih, const char *name, int id); [in C]
iup.GetAttributeId(ih: ihandle, name: string, id: number) -> value: string, ihandle or userdata [in Lua] char* IupGetAttributeId2(Ihandle* ih, const char* name, int lin, int col); [in C] iup.GetAttributeId2(ih: ihandle, name: string, lin, col: number) -> value: string, ihandle or userdata [in Lua]
ih: Identifier of the interface element. If
NULL will retrieve from the global environment.
name: name of the attribute.
id, lin, col: used when the attribute has additional ids.
Returns: the attribute value or NULL (nil in Lua)
if
the attribute is not set or does not exist.
These functions can also be used to get attributes from the element:
int IupGetInt (Ihandle* ih, const char* name);
int IupGetIntInt(Ihandle* ih, const char* name, int *i1, int *i2);
int IupGetInt2 (Ihandle* ih, const char* name);
float IupGetFloat (Ihandle* ih, const char* name);
double IupGetDouble(Ihandle* ih, const char* name);
void IupGetRGB (Ihandle *ih, const char* name, unsigned char *r, unsigned char *g, unsigned char *b);
void IupGetRGBA (Ihandle *ih, const char* name, unsigned char *r, unsigned char *g, unsigned char *b, unsigned char *a); (since 3.29)
int IupGetIntId (Ihandle* ih, const char* name, int id);
float IupGetFloatId (Ihandle* ih, const char* name, int id);
double IupGetDoubleId(Ihandle* ih, const char* name, int id);
void IupGetRGBId (Ihandle *ih, const char* name, int id, unsigned char *r, unsigned char *g, unsigned char *b);
int IupGetIntId2 (Ihandle* ih, const char* name, int lin, int col);
float IupGetFloatId2 (Ihandle* ih, const char* name, int lin, int col);
double IupGetDoubleId2(Ihandle* ih, const char* name, int lin, int col);
void IupGetRGBId2 (Ihandle *ih, const char* name, int lin, int col, unsigned char *r, unsigned char *g, unsigned char *b);
[There is no equivalent in Lua]
IupGetIntInt retrieves two integers separated by 'x', ':' or ',' and returns the number of returned values (0, 1 or 2). IupGetInt2 returns just the second value.
See the Attributes Guide for more details.
The returned value is not necessarily the same pointer used by the application to define the attribute value. The pointers of internal IUP attributes returned by IupGetAttribute should never be freed or changed, except when it is a custom application pointer that was stored using IupSetAttribute and allocated by the application.
The returned pointer can be used safely even if IupGetGlobal or IupGetAttribute are called several times. But not too many times, because it is an internal buffer and after IUP may reuse it after around 50 calls.
In IupLua, only known internal pointer attributes are returned as user data or as an ihandle, all other attributes are returned as strings. To access attribute data always as user data use iup.GetAttributeData:
iup.GetAttributeData(ih: ihandle) -> value: userdata [in Lua]
IupSetAttribute, IupSetAttributes, IupGetHandle, IupSetGlobal, IupGetGlobal