本文整理汇总了C++中reflect::ObjectPtr::IsClass方法的典型用法代码示例。如果您正苦于以下问题:C++ ObjectPtr::IsClass方法的具体用法?C++ ObjectPtr::IsClass怎么用?C++ ObjectPtr::IsClass使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类reflect::ObjectPtr
的用法示例。
在下文中一共展示了ObjectPtr::IsClass方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnRemove
///////////////////////////////////////////////////////////////////////////////
// Callback for when the remove button is pressed. If there are any items
// selected in the list control, they will be removed from the list.
//
void ReflectStlSetInterpreter::OnRemove( const ButtonClickedArgs& args )
{
Reflect::ObjectPtr clientData = args.m_Control->GetClientData();
if ( clientData.ReferencesObject() && clientData->IsClass( Reflect::GetClass<ClientData>() ) )
{
ClientData* data = static_cast< ClientData* >( clientData.Ptr() );
List* list = static_cast< List* >( data->GetControl() );
const std::set< size_t >& selectedItemIndices = list->a_SelectedItemIndices.Get();
if ( !selectedItemIndices.empty() )
{
// for each item in the array to remove (by index)
std::set< size_t >::const_reverse_iterator itr = selectedItemIndices.rbegin();
std::set< size_t >::const_reverse_iterator end = selectedItemIndices.rend();
for ( ; itr != end; ++itr )
{
// for each array in the selection set (the objects the array data is connected to)
std::vector< DataPtr >::const_iterator serItr = m_Datas.begin();
std::vector< DataPtr >::const_iterator serEnd = m_Datas.end();
for ( ; serItr != serEnd; ++serItr )
{
Reflect::StlSetData* setData = Reflect::AssertCast<Reflect::StlSetData>(*serItr);
std::vector< DataPtr > items;
setData->GetItems( items );
setData->RemoveItem( items[ *itr ] );
}
}
list->a_SelectedItemIndices.Set( std::set< size_t > () );
args.m_Control->GetCanvas()->Read();
}
}
}
示例2: OnMoveDown
void ReflectStlVectorInterpreter::OnMoveDown( const ButtonClickedArgs& args )
{
Reflect::ObjectPtr clientData = args.m_Control->GetClientData();
if ( clientData.ReferencesObject() && clientData->IsClass( Reflect::GetClass<ClientData>() ) )
{
ClientData* data = static_cast< ClientData* >( clientData.Ptr() );
List* list = static_cast< List* >( data->GetControl() );
std::set< size_t > selectedItemIndices = list->a_SelectedItemIndices.Get();
if ( !selectedItemIndices.empty() )
{
// for each array in the selection set (the objects the array data is connected to)
std::vector< DataPtr >::const_iterator serItr = m_Datas.begin();
std::vector< DataPtr >::const_iterator serEnd = m_Datas.end();
for ( ; serItr != serEnd; ++serItr )
{
Reflect::StlVectorData* arrayData = Reflect::AssertCast<Reflect::StlVectorData>(*serItr);
arrayData->MoveDown( selectedItemIndices );
}
list->a_SelectedItemIndices.Set( selectedItemIndices );
args.m_Control->GetCanvas()->Read();
}
}
}
示例3: OnAdd
///////////////////////////////////////////////////////////////////////////////
// Callback for when the add button is pressed. Displays a dialog that lets
// you enter a new key-value pair. If you enter a key that already exists in
// the list, you will be asked if you want to replace it or not.
//
void ReflectStlSetInterpreter::OnAdd( const ButtonClickedArgs& args )
{
Reflect::ObjectPtr clientData = args.m_Control->GetClientData();
if ( clientData.ReferencesObject() && clientData->IsClass( Reflect::GetClass<ClientData>() ) )
{
ClientData* data = static_cast< ClientData* >( clientData.Ptr() );
List* list = static_cast< List* >( data->GetControl() );
list->e_AddItem.Raise( AddItemArgs() );
args.m_Control->GetCanvas()->Read();
}
}