TreeBox::Node::Node( TreeBox& parentTree, int index ) : UIObject( (*API->TreeBox->CreateTreeBoxNode)( ModuleHandle(), this ) ) { if ( IsNull() ) throw APIFunctionError( "CreateTreeBoxNode" ); if ( !parentTree.IsNull() ) parentTree.Insert( index, this ); }
void HDRCompositionInterface::__InputImages_NodeActivated( TreeBox& sender, TreeBox::Node& node, int col ) { int index = sender.ChildIndex( &node ); if ( index < 0 || size_type( index ) >= instance.images.Length() ) throw Error( "HDRCompositionInterface: *Warning* Corrupted interface structures" ); HDRCompositionInstance::ImageItem& item = instance.images[index]; switch ( col ) { case 0: break; case 1: item.enabled = !item.enabled; UpdateInputImagesItem( index ); break; case 2: { Array<ImageWindow> w = ImageWindow::Open( item.path ); for ( Array<ImageWindow>::iterator i = w.Begin(); i != w.End(); ++i ) i->Show(); } break; } }
void DrizzleIntegrationInterface::__NodeActivated( TreeBox& sender, TreeBox::Node& node, int col ) { int index = sender.ChildIndex( &node ); if ( index < 0 || size_type( index ) >= m_instance.p_inputData.Length() ) throw Error( "DrizzleIntegrationInterface: *Warning* Corrupted interface structures" ); DrizzleIntegrationInstance::DataItem& item = m_instance.p_inputData[index]; switch ( col ) { case 0: break; case 1: item.enabled = !item.enabled; UpdateInputDataItem( index ); break; case 2: { /* * ### TODO: Open drizzle data file and show a summary of drizzle data. */ } break; } }
void GradientsMergeMosaicInterface::__TargetImages_NodeActivated( TreeBox& sender, TreeBox::Node& node, int col ) { int index = sender.ChildIndex( &node ); if ( index < 0 || size_type( index ) >= instance.targetFrames.Length() ) throw Error( "GradientsMergeMosaicInterface: *Warning* Corrupted interface structures" ); GradientsMergeMosaicInstance::ImageItem& item = instance.targetFrames[index]; switch ( col ) { case 0: // Activate the item's index number: ignore. break; case 1: // Activate the item's checkmark: toggle item's enabled state. item.enabled = !item.enabled; UpdateTargetImageItem( index ); break; case 2: { // Activate the item's path: open the image. Array<ImageWindow> w = ImageWindow::Open( item.path ); for ( Array<ImageWindow>::iterator i = w.Begin(); i != w.End(); ++i ) i->Show(); } break; } }
void HDRCompositionInterface::__InputImages_CurrentNodeUpdated( TreeBox& sender, TreeBox::Node& current, TreeBox::Node& oldCurrent ) { int index = sender.ChildIndex( ¤t ); if ( index < 0 || size_type( index ) >= instance.images.Length() ) throw Error( "HDRCompositionInterface: *Warning* Corrupted interface structures" ); // ### If there's something that depends on which image is selected in the list, do it now. }
void DrizzleIntegrationInterface::__CurrentNodeUpdated( TreeBox& sender, TreeBox::Node& current, TreeBox::Node& oldCurrent ) { int index = sender.ChildIndex( ¤t ); if ( index < 0 || size_type( index ) >= m_instance.p_inputData.Length() ) throw Error( "DrizzleIntegrationInterface: *Warning* Corrupted interface structures" ); // ### If there's something that depends on which item is selected in the list, do it here. }
void GradientsMergeMosaicInterface::__TargetImages_CurrentNodeUpdated( TreeBox& sender, TreeBox::Node& current, TreeBox::Node& oldCurrent ) { // Actually do nothing (placeholder). Just perform a sanity check. int index = sender.ChildIndex( ¤t ); if ( index < 0 || size_type( index ) >= instance.targetFrames.Length() ) throw Error( "GradientsMergeMosaicInterface: *Warning* Corrupted interface structures" ); // ### If there's something else that depends on which image is selected in the list, do it here. }
static size_type TreeInsertionIndex( const TreeBox& tree ) { const TreeBox::Node* n = tree.CurrentNode(); return (n != 0) ? tree.ChildIndex( n ) + 1 : tree.NumberOfChildren(); }