//----------------------------------------------------------------------------- // name: main_mouse() // desc: ... //----------------------------------------------------------------------------- void AudicleWindow::main_mouse( int button, int state, int x, int y) { assert( this == AudicleWindow::main() ); set_mouse_coords( x, y ); //fetch pick stack main_pick(); t_CKUINT * temp_stack = (t_CKUINT*) malloc ( m_pick_size * sizeof(t_CKUINT) ); memcpy ( (void*)temp_stack, (void*)m_pick_top, m_pick_size * sizeof(t_CKUINT) ); // create mouse input event InputEvent* ev = new InputEvent ( ae_input_MOUSE, m_cur_pt, button, state ); ev->setMods( glutGetModifiers() ); ev->setStack( temp_stack , m_pick_size ); ev->time = get_current_time(); InputEvent sub = *ev; //START AN AUDICLE EVENT //make_mouse_event( m_cur_pt, button, state ); AudicleEvent event; event.type = ae_event_INPUT; event.message = 2; event.param1 = button; event.param2 = state; event.data = (void *) ev; Audicle::instance()->face()->on_event( event ); sub.popStack(); // if( m_console ) // { // m_console->handleMouse( sub ); // m_console->handleMouseAlerts( sub ); // } free (temp_stack); delete ev; //XXX assumes unqueued... // if ( wm ) wm->handleMouse(button, state, cur_pt); // if ( DragManager::instance()->object() ) { } }