void CVisProp::SetTypeNameAndDim(const char *szType, const char *szName, const CVisDim& refdim, bool fShared) { CVisPropTypeInfoBase *pproptypeinfo = VisLookupPropTypeInfo(szType); bool fNeedToSetTypeName = false; if (pproptypeinfo == 0) { // The type was not recognized, so we'll use a CVisPropList // object to read the value. // LATER: This code has not been tested. #ifdef _DEBUG OutputDebugString("VisSDK Warning: Type '"); OutputDebugString(szType); OutputDebugString("' not recognized in CVisProp::SetTypeNameAndDim.\n"); #endif // _DEBUG pproptypeinfo = VisLookupPropTypeInfo(typeid(CVisPropList)); assert(pproptypeinfo != 0); fNeedToSetTypeName = true; } ReleaseObj(); SetKeyData(CVisPropKeyData(szName)); SetPPropTypeInfo(pproptypeinfo); // Make a new object to store the value. SetDefaultValue(refdim, fShared); if (fNeedToSetTypeName) SetPropListTypeName(szType); }
// Called when an element is destroyed. void RocketMenuPlugin::OnElementDestroy(Rocket::Core::Element* element) { OptionsData *options_data = GetOptionsData(element); if (options_data != NULL) { delete options_data; SetOptionsData(element, NULL); } RangeData *range_data = GetRangeData(element); if (range_data != NULL) { delete range_data; SetRangeData(element, NULL); } KeyData *key_data = GetKeyData(element); if (key_data != NULL) { delete key_data; SetKeyData(element, NULL); } }
void RocketMenuPlugin::SetupKeyChooser(Rocket::Core::Element *element) { Rocket::Core::String caption; element->GetInnerRML(caption); element->SetInnerRML("<caption/><keys><key1><hdr><</hdr><keyval/><ftr>></ftr></key1><key2><hdr><</hdr><keyval/><ftr>></ftr></key2></keys>"); Rocket::Core::Element *caption_element = element->GetChild(0); caption_element->SetInnerRML(caption); Rocket::Core::Element *keys_element = element->GetChild(1); Rocket::Core::Element *key1_element = keys_element->GetChild(0); Rocket::Core::Element *key2_element = keys_element->GetChild(1); key1_element->AddEventListener("mousemove", this, false); key2_element->AddEventListener("mousemove", this, false); KeyData *data = new KeyData(); data->menu_item = element; data->hdr1 = key1_element->GetChild(0); data->opt1 = key1_element->GetChild(1); data->ftr1 = key1_element->GetChild(2); data->hdr2 = key2_element->GetChild(0); data->opt2 = key2_element->GetChild(1); data->ftr2 = key2_element->GetChild(2); data->opt1->SetInnerRML("None"); data->opt2->SetInnerRML("None"); ShowElement(data->hdr1, false); ShowElement(data->ftr1, false); ShowElement(data->hdr2, false); ShowElement(data->ftr2, false); SetKeyData(element, data); }