static void tree_callback( Fl_Widget* w, void* ) { Flu_Tree_Browser *t = (Flu_Tree_Browser*)w; int reason = t->callback_reason(); Flu_Tree_Browser::Node *n = t->callback_node(); if( tree->num_selected() ) deleteNode->activate(); else deleteNode->deactivate(); switch( reason ) { case FLU_HILIGHTED: printf( "%s hilighted\n", n->label() ); break; case FLU_UNHILIGHTED: printf( "%s unhilighted\n", n->label() ); break; case FLU_SELECTED: printf( "%s selected\n", n->label() ); break; case FLU_UNSELECTED: printf( "%s unselected\n", n->label() ); break; case FLU_OPENED: printf( "%s opened\n", n->label() ); break; case FLU_CLOSED: printf( "%s closed\n", n->label() ); break; case FLU_DOUBLE_CLICK: printf( "%s double-clicked\n", n->label() ); break; case FLU_WIDGET_CALLBACK: printf( "%s widget callback\n", n->label() ); break; case FLU_MOVED_NODE: printf( "%s moved\n", n->label() ); break; case FLU_NEW_NODE: printf( "node '%s' added to the tree\n", n->label() ); break; } }
void tree_callback( Fl_Widget* w, void *_gui ) { Flu_Tree_Browser *t = (Flu_Tree_Browser*)w; int reason = t->callback_reason(); GUI *gui = (GUI *)_gui; Flu_Tree_Browser::Node *n = t->callback_node(); Matrix4f &transform = gui->MVC->SelectedNodeMatrix(); Vector3f translate = transform.getTranslation(); RFO_Object *selectedObject=0; RFO_File *selectedFile=0; gui->MVC->GetSelectedRFO(&selectedObject, &selectedFile); switch( reason ) { case FLU_HILIGHTED: printf( "%s hilighted\n", n->label() ); break; case FLU_UNHILIGHTED: printf( "%s unhilighted\n", n->label() ); break; case FLU_SELECTED: gui->TranslateX->value(translate.x); gui->TranslateY->value(translate.y); gui->TranslateZ->value(translate.z); if(selectedObject) gui->ObjectNameInput->value(selectedObject->name.c_str()); else gui->ObjectNameInput->value("no selection"); if(selectedFile) { gui->FileLocationInput->value(selectedFile->location.c_str()); gui->FileTypeInput->value(selectedFile->filetype.c_str()); gui->FileMaterialInput->value(selectedFile->material.c_str()); } else { gui->FileLocationInput->value("no file selected"); gui->FileTypeInput->value("no file selected"); gui->FileMaterialInput->value("no file selected"); } printf( "%s selected\n", n->label() ); //transform break; case FLU_UNSELECTED: printf( "%s unselected\n", n->label() ); break; case FLU_OPENED: printf( "%s opened\n", n->label() ); break; case FLU_CLOSED: printf( "%s closed\n", n->label() ); break; case FLU_DOUBLE_CLICK: printf( "%s double-clicked\n", n->label() ); break; case FLU_WIDGET_CALLBACK: printf( "%s widget callback\n", n->label() ); break; case FLU_MOVED_NODE: printf( "%s moved\n", n->label() ); break; case FLU_NEW_NODE: printf( "node '%s' added to the tree\n", n->label() ); break; } gui->MVC->redraw(); }