logical pc_ADK_FieldControl :: AddTabControl (int32 posx, int32 posy ) { pc_ADK_Field fields(GPH("fields")); PropertyHandle *my_class = GPH("class"); PropertyHandle *member; PropertyHandle *fc; logical term = NO; BEGINSEQ if ( !my_class->Get(FIRST_INSTANCE) ) ERROR pc_ADK_Class new_class(*my_class); if ( !(fc = new_class.ProvideDefaultTabControl()) || !fc->Exist() ) ERROR if ( fields.NewField("tab",posx,posy) ) ERROR fields.SetupDataSource("*","DRT_PropertyPath",NO); fields.SetupFromFieldControl(fc); fields.GPH("class")->Add(new_class.ExtractKey()); CTXCERR fields.GPH("field_control")->Add(fc->ExtractKey()); CTXCERR fields.Save(); CTXCERR SetActionResult(fields.GPH("sys_ident")->GetString()); RECOVER SetActionResult(""); term = YES; ENDSEQ return(term); }
logical pc_ADK_Field :: SetupField ( ) { PropertyHandle *pfc = GetParentProperty(); PropertyHandle *my_class = pfc->GPH("class"); PropertyHandle *member; PropertyHandle *fc; logical vgrow = YES; logical hgrow = YES; logical coll_opt; char *ref_type; char *propnames = NULL; char strnames[ID_SIZE+1]; logical term = NO; BEGINSEQ if ( IsInitialized() ) LEAVESEQ propnames = strdup(GPH("sys_ident")->GetString()); SetupFromParent(); if ( !my_class->Get(FIRST_INSTANCE) ) ERROR pc_ADK_Class new_class(GetObjectHandle(),PI_Update); PropertyHandle extent(GetObjectHandle(),"SDB_Extend",PI_Read); PropertyHandle phpropnames(propnames); pc_ADK_Class structure(*my_class); if ( member = structure.GetMember(propnames) ) { if ( !(fc = new_class.ProvideDefaultControl(member,hgrow,vgrow)) || !fc->Exist() ) ERROR coll_opt = pc0_SDB_Member(member).IsMultipleRef() ? YES : NO; ref_type = "DRT_PropertyPath"; strcpy(strnames,member->GetString("ddetype")); } else if ( extent.Get(phpropnames) ) { if ( !(fc = new_class.ProvideDefaultControl(&extent,hgrow,vgrow)) || !fc->Exist() ) ERROR coll_opt = YES; ref_type = "DRT_Extent"; strcpy(strnames,extent.GetString("ddetype")); } else ERROR if ( !hgrow ) *GPH("allign.hori_sizing") = "SIZE_Fixed"; if ( !vgrow ) *GPH("allign.vert_sizing") = "SIZE_Fixed"; *GPH("auto_open") = YES; SetupDataSource(propnames,ref_type,coll_opt); SetupFromFieldControl(fc); SetupTitle(propnames); GPH("class")->Add(new_class.ExtractKey()); CTXCERR GPH("field_control")->Add(fc->ExtractKey()); CTXCERR RECOVER term = YES; ENDSEQ if ( propnames ) free(propnames); return(term); }