char *var_make_name(const slv_system_t sys,const struct var_variable *var){ if(sys == NULL){ ERROR_REPORTER_HERE(ASC_PROG_ERR,"called with NULL system."); return NULL; } return WriteInstanceNameString(IPTR(var->ratom),IPTR(slv_instance(sys))); }
real64 var_lower_bound(struct var_variable *var) { struct Instance *c; if (var==NULL || var->ratom==NULL) { ERROR_REPORTER_HERE(ASC_PROG_ERR,"bad var"); return 0.0; } c = ChildByChar(IPTR(var->ratom),LOWER_V); if( c == NULL ) { ERROR_REPORTER_HERE(ASC_PROG_ERR,"no 'lower_bound' field"); WriteInstance(stderr,IPTR(var->ratom)); return 0.0; } return( RealAtomValue(c) ); }
boolean solver_semi( SlvBackendToken inst) { struct TypeDescription *type; if (!g_solver_semi_type) return FALSE; type = InstanceTypeDesc(IPTR(inst)); return( type == MoreRefined(type,g_solver_semi_type) ); }
double var_odeatol(struct var_variable *var){ struct Instance *c; if(var==NULL||var->ratom==NULL){ ERROR_REPORTER_HERE(ASC_PROG_ERR,"bad var"); return -1; } c = ChildByChar(IPTR(var->ratom),ODEATOL_V); if(c==NULL){ ERROR_REPORTER_HERE(ASC_PROG_ERR,"no '%s' field",SCP(ODEATOL_V)); return -1; } return RealAtomValue(c); }
void var_set_upper_bound(struct var_variable *var, real64 upper_bound) { struct Instance *c; if (var==NULL || var->ratom==NULL) { ERROR_REPORTER_HERE(ASC_PROG_ERR,"bad var"); return; } c = ChildByChar(IPTR(var->ratom),UPPER_V); if( c == NULL ) { ERROR_REPORTER_HERE(ASC_PROG_ERR,"no 'upper_bound' field"); /* WriteInstance(stderr,IPTR(var->ratom)); */ return; } SetRealAtomValue(c,upper_bound,(unsigned)0); }
void var_set_nominal(struct var_variable *var, real64 nominal) { struct Instance *c; if (var==NULL || var->ratom==NULL) { ERROR_REPORTER_HERE(ASC_PROG_ERR,"bad var"); return; } c = ChildByChar(IPTR(var->ratom),NOMINAL_V); if( c == NULL ) { ERROR_REPORTER_HERE(ASC_PROG_ERR,"no 'nominal' field in var"); /* WriteInstance(stderr,IPTR(var->ratom)); */ return; } SetRealAtomValue(c,nominal,(unsigned)0); }
uint32 var_interface(struct var_variable *var) { struct Instance *c; if (var==NULL || var->ratom==NULL) { ERROR_REPORTER_HERE(ASC_PROG_ERR,"bad var"); return FALSE; } c = ChildByChar(IPTR(var->ratom),INTERFACE_V); if( c == NULL ) { ERROR_REPORTER_HERE(ASC_PROG_ERR,"no 'interface' field"); /* WriteInstance(stderr,IPTR(var->ratom)); */ return 0; } var_set_flagbit(var,VAR_INTERFACE,GetBooleanAtomValue(c)); return( GetIntegerAtomValue(c) ); }
void var_set_relaxed(struct var_variable *var, uint32 fixed) { struct Instance *c; if (var==NULL || var->ratom==NULL) { ERROR_REPORTER_HERE(ASC_PROG_ERR,"bad var"); return; } c = ChildByChar(IPTR(var->ratom),RELAXED_V); if( c == NULL ) { ERROR_REPORTER_HERE(ASC_PROG_ERR,"no 'relaxed' field"); /* WriteInstance(stderr,IPTR(var->ratom)); */ return; } SetBooleanAtomValue(c,fixed,(unsigned)0); var_set_flagbit(var,VAR_RELAXED,fixed); }
uint32 var_fixed(struct var_variable *var) { struct Instance *c; if (var==NULL || var->ratom==NULL) { ERROR_REPORTER_HERE(ASC_PROG_ERR,"bad var"); return FALSE; } c = ChildByChar(IPTR(var->ratom),FIXED_V); if( c == NULL ) { ERROR_REPORTER_HERE(ASC_PROG_ERR,"no 'fixed' field"); /* WriteInstance(stderr,IPTR(var->ratom)); */ return FALSE; } var_set_flagbit(var,VAR_FIXED,GetBooleanAtomValue(c)); return( GetBooleanAtomValue(c) ); }
#define MODULE_NAME "gui" #include "ecere.h" static Class * CO(HelloWindow); struct CM(HelloWindow) { Label label; }; typedef Instance HelloWindow; static bool HelloWindow_constructor(HelloWindow this) { struct CM(HelloWindow) * self = IPTR(this, HelloWindow); Window_set_caption(this, $("My First Ecere/C Bindings App")); Window_set_borderStyle(this, BorderStyle_sizable); Window_set_size(this, &(Size){ 380, 190 }); Window_set_hasClose(this, true); FontResource font = newi(FontResource); FontResource_set_faceName(font, "Arial"); FontResource_set_size(font, 30); /*char tmp[256]; String s = Instance_onGetString(0, font, tmp, null, null); PrintLn(CO(String), s, null); // Need to terminate with a null!*/ self->label = newi(Label); Window_set_parent(self->label, this); Window_set_position(self->label, &(Point){ 10, 10 }); Window_set_font(self->label, font); Window_set_caption(self->label, $("Hello, Bindings!!"));