void Background::MouseLDoubleClickInside(aui_MouseEvent *data) { if (IsDisabled()) return; if (GetWhichSeesMouse() && GetWhichSeesMouse() != this) return; SetWhichSeesMouse(this); Assert(g_tiledMap != NULL); if (g_tiledMap == NULL) return; data->position.x -= X(); data->position.y -= Y(); if (s_savedEvents.GetCount() > 0) { SavedMouseEvent *ev = s_savedEvents.GetTail(); if(ev->type == SEV_LGRAB) { ev->type = SEV_LDOUBLE; memcpy(&ev->event, data, sizeof(aui_MouseEvent)); } else { ev = new SavedMouseEvent; memcpy(&ev->event, data, sizeof(aui_MouseEvent)); ev->type = SEV_LDOUBLE; s_savedEvents.AddTail(ev); } } else { g_tiledMap->Click(data, TRUE); } m_lbutton_isdown = TRUE; }
void Background::MouseMoveInside(aui_MouseEvent *data) { if (IsDisabled()) return; if (GetWhichSeesMouse() && GetWhichSeesMouse() != this) return; SetWhichSeesMouse(this); Assert(data); MapPoint tmp; if (g_tiledMap && g_tiledMap->GetMouseTilePos(tmp)){ m_current_mouse_tile = tmp; } if (data->movecount==0) { ProcessLastMouseMoveThisFrame(data); } if (g_tiledMap != NULL) { g_tiledMap->SetHiliteMouseTile(m_current_mouse_tile); g_tiledMap->DrawHilite( TRUE ); } }
void Background::MouseLGrabInside(aui_MouseEvent *data) { if (IsDisabled()) return; if (GetWhichSeesMouse() && GetWhichSeesMouse() != this) return; SetWhichSeesMouse(this); Assert(g_tiledMap != NULL); if (g_tiledMap == NULL) return; data->position.x -= X(); data->position.y -= Y(); SavedMouseEvent *ev = new SavedMouseEvent; memcpy(&ev->event, data, sizeof(aui_MouseEvent)); ev->type = SEV_LGRAB; s_savedEvents.AddTail(ev); m_lbutton_isdown = TRUE; data->position.x += X(); data->position.y += Y(); }
void aui_Tab::MouseLDropInside( aui_MouseEvent *mouseData ) { if ( IsDisabled() ) return; if ( !GetWhichSeesMouse() || GetWhichSeesMouse() == this ) { SetWhichSeesMouse( this ); if ( GetMouseOwnership() != NULL ) { PlaySound( AUI_SOUNDBASE_SOUND_ACTIVATE ); if ( m_mouseCode == AUI_ERRCODE_UNHANDLED ) m_mouseCode = AUI_ERRCODE_HANDLED; m_attributes |= k_CONTROL_ATTRIBUTE_ACTIVE; m_draw |= m_drawMask & k_AUI_REGION_DRAWFLAG_MOUSELDROPINSIDE; if ( m_ActionFunc ) m_ActionFunc( this, AUI_SWITCH_ACTION_NULL, 0, m_cookie ); else if ( m_action ) m_action->Execute( this, AUI_SWITCH_ACTION_NULL, 0 ); } } else MouseLDropOutside( mouseData ); }
void aui_Button::MouseLDragOver( aui_MouseEvent *mouseData ) { aui_Control::MouseLDragOver(mouseData); if (IsDisabled()) return; if ( !GetWhichSeesMouse() || GetWhichSeesMouse() == this ) { SetWhichSeesMouse( this ); if ( GetMouseOwnership() == this ) { PlaySound( AUI_SOUNDBASE_SOUND_ENGAGE ); if ( m_mouseCode == AUI_ERRCODE_UNHANDLED ) m_mouseCode = AUI_ERRCODE_HANDLED; m_attributes |= k_CONTROL_ATTRIBUTE_DOWN; m_attributes |= k_CONTROL_ATTRIBUTE_ACTIVE; m_draw |= m_drawMask & k_AUI_REGION_DRAWFLAG_MOUSELDRAGOVER; m_isRepeating = TRUE; } } else MouseLDragOutside( mouseData ); }
void aui_Tab::MouseLGrabInside( aui_MouseEvent *mouseData ) { if ( IsDisabled() ) return; if ( !GetWhichSeesMouse() || GetWhichSeesMouse() == this ) { SetWhichSeesMouse( this ); PlaySound( AUI_SOUNDBASE_SOUND_EXECUTE ); HideTipWindow(); SetMouseOwnership(); ReleaseMouseOwnership(); SetKeyboardFocus(); m_mouseCode = AUI_ERRCODE_HANDLEDEXCLUSIVE; if ( !HandleGameSpecificLeftClick( this ) ) if ( 0 < m_state && m_state < m_numStates - 1 ) SetState( Mod(m_state+1,m_numStates) ); else SetState( 1 ); m_attributes |= k_CONTROL_ATTRIBUTE_ACTIVE; m_draw |= m_drawMask & k_AUI_REGION_DRAWFLAG_MOUSELGRABINSIDE; } else MouseLGrabOutside( mouseData ); }
void aui_Button::MouseLDropInside( aui_MouseEvent *mouseData ) { if (IsDisabled()) { g_soundManager->AddGameSound(GAMESOUNDS_DISABLED); return; } if ( !GetWhichSeesMouse() || GetWhichSeesMouse() == this ) { SetWhichSeesMouse( this ); if ( GetMouseOwnership() == this ) { ReleaseMouseOwnership(); PlaySound( AUI_SOUNDBASE_SOUND_EXECUTE ); m_mouseCode = AUI_ERRCODE_HANDLEDEXCLUSIVE; m_attributes &= ~k_CONTROL_ATTRIBUTE_DOWN; m_attributes &= ~k_CONTROL_ATTRIBUTE_ACTIVE; m_draw |= m_drawMask & k_AUI_REGION_DRAWFLAG_MOUSELDROPINSIDE; m_isRepeating = FALSE; if(GetAttracting()) { SetAttract(false, 0); } if ( !HandleGameSpecificLeftClick( this ) ) if ( m_ActionFunc ) m_ActionFunc( this, AUI_BUTTON_ACTION_EXECUTE, 0, m_cookie ); else if ( m_action ) m_action->Execute( this, AUI_BUTTON_ACTION_EXECUTE, 0 ); } else { PlaySound( AUI_SOUNDBASE_SOUND_ACTIVATE ); if ( m_mouseCode == AUI_ERRCODE_UNHANDLED ) m_mouseCode = AUI_ERRCODE_HANDLED; m_attributes |= k_CONTROL_ATTRIBUTE_ACTIVE; m_draw |= m_drawMask & k_AUI_REGION_DRAWFLAG_MOUSELDROPINSIDE; } } else MouseLDropOutside( mouseData ); }
void aui_Tab::MouseRGrabInside( aui_MouseEvent *mouseData ) { if ( IsDisabled() ) return; if ( !GetWhichSeesMouse() || GetWhichSeesMouse() == this ) { SetWhichSeesMouse( this ); HandleGameSpecificRightClick((void *)this); m_mouseCode = AUI_ERRCODE_HANDLED; } else { MouseRGrabOutside( mouseData ); } }
void aui_Control::MouseNoChange( aui_MouseEvent *mouseData ) { if ( m_isMouseInside ) if ( !GetWhichSeesMouse() || GetWhichSeesMouse() == this ) if ( !mouseData->lbutton && !mouseData->rbutton ) if ( mouseData->time - m_noChangeTime > m_timeOut ) { SetWhichSeesMouse( this ); if ( ShowTipWindow( mouseData ) ) if ( m_mouseCode == AUI_ERRCODE_UNHANDLED ) m_mouseCode = AUI_ERRCODE_HANDLED; } }
void Background::MouseRDoubleClickInside(aui_MouseEvent *data) { if (IsDisabled()) return; if (GetWhichSeesMouse() && GetWhichSeesMouse() != this) return; SetWhichSeesMouse(this); Assert(g_tiledMap != NULL); if (g_tiledMap == NULL) return; data->position.x -= X(); data->position.y -= Y(); g_tiledMap->Click(data, TRUE); m_lbutton_isdown = TRUE; }
void aui_Control::MouseMoveOver( aui_MouseEvent *mouseData ) { if(IsDisabled()) return; if(!GetWhichSeesMouse() || GetWhichSeesMouse() == this) { SetWhichSeesMouse( this ); if(GetWhichSeesMouse() == this) { Highlight(); PlaySound( AUI_SOUNDBASE_SOUND_ACTIVATE ); if(m_statusText) { StatusBar::SetText(m_statusText, this); } else if(m_statusTextCopy) { StatusBar::SetText(m_statusTextCopy, this); } if ( m_mouseCode == AUI_ERRCODE_UNHANDLED ) m_mouseCode = AUI_ERRCODE_HANDLED; m_attributes |= k_CONTROL_ATTRIBUTE_ACTIVE; m_draw |= m_drawMask & k_AUI_REGION_DRAWFLAG_MOUSEMOVEOVER; if ( m_ActionFunc ) m_ActionFunc( this, 0, 0, m_cookie ); else if ( m_action ) m_action->Execute( this, 0, 0 ); } } else { MouseMoveOutside( mouseData ); } }
void Background::MouseLDropInside(aui_MouseEvent *data) { if (IsDisabled()) return; if (GetWhichSeesMouse() && GetWhichSeesMouse() != this) return; SetWhichSeesMouse(this); data->position.x -= X(); data->position.y -= Y(); SavedMouseEvent *ev = new SavedMouseEvent; memcpy(&ev->event, data, sizeof(aui_MouseEvent)); ev->type = SEV_LDROP; s_savedEvents.AddTail(ev); m_lbutton_isdown = FALSE; data->position.x += X(); data->position.y += Y(); }
void ctp2_MenuButton::MouseLDragAway( aui_MouseEvent *mouseData ) { if (IsDisabled()) return; if ( GetMouseOwnership() == this) { PlaySound( AUI_SOUNDBASE_SOUND_DISENGAGE ); if ( m_mouseCode == AUI_ERRCODE_UNHANDLED ) m_mouseCode = AUI_ERRCODE_HANDLED; m_attributes &= ~k_CONTROL_ATTRIBUTE_DOWN; m_attributes &= ~k_CONTROL_ATTRIBUTE_ACTIVE; m_draw |= m_drawMask & k_AUI_REGION_DRAWFLAG_MOUSELDRAGAWAY; m_isRepeating = FALSE; if ( m_ActionFunc ) m_ActionFunc( this, AUI_BUTTON_ACTION_RELEASE, 0, m_cookie ); else if ( m_action ) m_action->Execute( this, AUI_BUTTON_ACTION_RELEASE, 0 ); if(mouseData->position.y >= Y() + Height()) { SetWhichSeesMouse(NULL); mouseData->position.y -= Height(); m_menu->ActivateMenu(mouseData); } else if(mouseData->position.x >= X() + Width()) { if(m_rightNeighbor) { m_rightNeighbor->MouseLGrabInside(mouseData); } m_menu->Close(); } else if(mouseData->position.x < X()) { if(m_leftNeighbor) { m_leftNeighbor->MouseLGrabInside(mouseData); } m_menu->Close(); } } }
void aui_Button::MouseLGrabInside( aui_MouseEvent *mouseData ) { if (IsDisabled()) { if (g_soundManager) { g_soundManager->AddSound(SOUNDTYPE_SFX, 0, gamesounds_GetGameSoundID(GAMESOUNDS_GENERALFAIL), 0, 0); } return; } if ( !GetWhichSeesMouse() || GetWhichSeesMouse() == this ) { SetWhichSeesMouse( this ); PlaySound( AUI_SOUNDBASE_SOUND_ENGAGE ); HideTipWindow(); SetMouseOwnership(); SetKeyboardFocus(); m_mouseCode = AUI_ERRCODE_HANDLEDEXCLUSIVE; m_attributes |= k_CONTROL_ATTRIBUTE_DOWN; m_attributes |= k_CONTROL_ATTRIBUTE_ACTIVE; m_draw |= m_drawMask & k_AUI_REGION_DRAWFLAG_MOUSELGRABINSIDE; m_isRepeating = TRUE; m_repeatCount = 0; m_startWaitTime = mouseData->time; if ( m_ActionFunc ) m_ActionFunc( this, AUI_BUTTON_ACTION_PRESS, 0, m_cookie ); else if ( m_action ) m_action->Execute( this, AUI_BUTTON_ACTION_PRESS, 0 ); } else MouseLGrabOutside( mouseData ); }
void Background::MouseLDragInside( aui_MouseEvent *data ) { if ( IsDisabled() ) return; if (GetWhichSeesMouse() && GetWhichSeesMouse() != this) return; if ( !GetWhichSeesMouse() ) SetWhichSeesMouse( this ); MapPoint tmp; data->position.x -= X(); data->position.y -= Y(); if (g_tiledMap && g_tiledMap->GetMouseTilePos(tmp)){ if (m_current_mouse_tile != tmp) { SavedMouseEvent *ev = new SavedMouseEvent; memcpy(&ev->event, data, sizeof(aui_MouseEvent)); ev->type = SEV_LDRAG; s_savedEvents.AddTail(ev); } m_current_mouse_tile = tmp; } if (data->movecount==0) { ProcessLastMouseMoveThisFrame(data); } if (g_tiledMap != NULL) { g_tiledMap->SetHiliteMouseTile(m_current_mouse_tile); g_tiledMap->DrawHilite( TRUE ); } data->position.x += X(); data->position.y += Y(); }
AUI_ERRCODE aui_Region::ResetThis( void ) { if ( GetWhichSeesMouse() == this ) SetWhichSeesMouse( NULL ); return AUI_ERRCODE_OK; }
AUI_ERRCODE aui_UI::HandleMouseEvents( sint32 numEvents, aui_MouseEvent *events ) { AUI_ERRCODE errcode = AUI_ERRCODE_UNHANDLED; if (!m_mouse) return errcode; aui_MouseEvent *curEvent = events; static aui_MouseEvent mouseEvents[ k_MOUSE_MAXINPUT ]; if ( !numEvents && !events ) { numEvents = m_mouse->ManipulateInputs( mouseEvents, FALSE ); curEvent = mouseEvents; } TagMouseEvents( numEvents, curEvent ); for ( sint32 k = numEvents; k; k--, curEvent++ ) { SetWhichSeesMouse( NULL ); ListPos position = m_childList->GetHeadPosition(); for ( sint32 i = m_childList->L(); i; i-- ) { aui_Window *window = (aui_Window *)m_childList->GetNext( position ); if ( !window->IsHidden() && window->Type() != AUI_WINDOW_TYPE_TIP ) { errcode = window->HandleMouseEvent( curEvent, !window->IgnoringEvents() ); if ( m_childListChanged || errcode == AUI_ERRCODE_HANDLEDEXCLUSIVE) { m_childListChanged = FALSE; position = m_childList->GetHeadPosition(); for ( i = m_childList->L(); i; i-- ) { window = (aui_Window *)m_childList->GetNext( position ); if ( !window->IsHidden() && window->Type() != AUI_WINDOW_TYPE_TIP ) { window->HandleMouseEvent( curEvent, FALSE ); } } if ( k > 1 ) return HandleMouseEvents( k - 1, curEvent + 1 ); return errcode; } } } } return errcode; }
void ctp2_HyperTextBox::MouseLDropInside( aui_MouseEvent *mouseData ) { if (IsDisabled()) return; if ( !GetWhichSeesMouse() || GetWhichSeesMouse() == this ) { SetWhichSeesMouse( this ); if ( GetMouseOwnership() == this ) { ReleaseMouseOwnership(); PlaySound( AUI_SOUNDBASE_SOUND_EXECUTE ); m_mouseCode = AUI_ERRCODE_HANDLEDEXCLUSIVE; m_attributes &= ~k_CONTROL_ATTRIBUTE_ACTIVE; POINT pos; pos.x = mouseData->position.x - m_x; pos.y = mouseData->position.y - m_y; pos.y += m_ranger->GetValueY(); m_selectedHyperLink = NULL; ListPos lp = m_hyperLinkList->GetHeadPosition(); for ( uint32 i = 0;i < m_hyperLinkList->L();i++ ) { ctp2_HyperLink *hl = m_hyperLinkList->GetNext( lp ); RECT rect; rect.left = hl->m_static->X(); rect.top = hl->m_static->Y(); rect.right = rect.left + hl->m_static->Width(); rect.bottom = rect.top + hl->m_static->Height(); if ( PtInRect(&rect, pos) ) { hl->m_frame = TRUE; m_selectedHyperLink = hl; } else { hl->m_frame = FALSE; hl->m_static->SetTextColor( hl->m_oldColor ); } } if ( m_selectedHyperLink ) { m_draw |= m_drawMask & k_AUI_REGION_DRAWFLAG_MOUSELDROPINSIDE; if ( !HandleGameSpecificLeftClick( this ) ) if ( m_ActionFunc ) m_ActionFunc( this, CTP2_HYPERLINK_ACTION_EXECUTE, 0, m_cookie ); else if ( m_action ) m_action->Execute( this, CTP2_HYPERLINK_ACTION_EXECUTE, 0 ); else { open_GreatLibrary(); if(g_greatLibrary) { g_greatLibrary->SetLibrary(m_selectedHyperLink->m_index, (DATABASE)m_selectedHyperLink->m_db); } } } else { m_draw |= m_drawMask & k_AUI_REGION_DRAWFLAG_UPDATE; } } else { PlaySound( AUI_SOUNDBASE_SOUND_ACTIVATE ); if ( m_mouseCode == AUI_ERRCODE_UNHANDLED ) m_mouseCode = AUI_ERRCODE_HANDLED; m_attributes |= k_CONTROL_ATTRIBUTE_ACTIVE; m_draw |= m_drawMask & k_AUI_REGION_DRAWFLAG_MOUSELDROPINSIDE; } } else MouseLDropOutside( mouseData ); }
void ctp2_HyperTextBox::MouseLGrabInside( aui_MouseEvent *mouseData ) { if (IsDisabled()) return; if ( !GetWhichSeesMouse() || GetWhichSeesMouse() == this ) { SetWhichSeesMouse( this ); PlaySound( AUI_SOUNDBASE_SOUND_ENGAGE ); HideTipWindow(); SetMouseOwnership(); SetKeyboardFocus(); m_mouseCode = AUI_ERRCODE_HANDLEDEXCLUSIVE; m_attributes |= k_CONTROL_ATTRIBUTE_DOWN; m_attributes |= k_CONTROL_ATTRIBUTE_ACTIVE; m_draw |= m_drawMask & k_AUI_REGION_DRAWFLAG_MOUSELGRABINSIDE; POINT pos; pos.x = mouseData->position.x - m_x; pos.y = mouseData->position.y - m_y; pos.y += m_ranger->GetValueY(); m_selectedHyperLink = NULL; ListPos lp = m_hyperLinkList->GetHeadPosition(); for ( uint32 i = 0;i < m_hyperLinkList->L();i++ ) { ctp2_HyperLink *hl = m_hyperLinkList->GetNext( lp ); RECT rect; rect.left = hl->m_static->X(); rect.top = hl->m_static->Y(); rect.right = rect.left + hl->m_static->Width(); rect.bottom = rect.top + hl->m_static->Height(); if ( PtInRect(&rect, pos) ) { hl->m_frame = TRUE; hl->m_static->SetTextColor( hl->m_selectColor ); m_selectedHyperLink = hl; } else { hl->m_frame = FALSE; hl->m_static->SetTextColor( hl->m_oldColor ); } } } else MouseLGrabOutside( mouseData ); }
void aui_Region::MouseNoChange( aui_MouseEvent *mouseData ) { if ( IsDisabled() ) return; if ( m_isMouseInside && !GetWhichSeesMouse() ) SetWhichSeesMouse( this ); }
void aui_Region::MouseRGrabInsideEdit( aui_MouseEvent *mouseData ) { if ( s_editModeStatus == AUI_EDIT_MODE_CHOOSE_REGION ) { if ( this == s_editChild ) { s_editModeStatus = AUI_EDIT_MODE_CHOOSE_PARENT_REGION; } else if ( s_editChild ) { POINT point = { mouseData->position.x, mouseData->position.y }; if ( m_parent != g_ui ) (( aui_Control *)this)->ToScreen( &point ); if ( g_ui->TheEditRegion()->IsInside( point.x, point.y ) ) { s_editChild->MouseRGrabInsideEdit( mouseData ); return; } else { s_editChild = NULL; } } } if ( !s_editChild ) { s_editChild = this; s_editModeStatus = AUI_EDIT_MODE_REGION_SELECTED; s_editSelectionCount = 0; s_editSelectionCurrent = 0; } if ( s_editModeStatus == AUI_EDIT_MODE_CHOOSE_PARENT_REGION ) { if ( s_editSelectionCurrent < s_editSelectionCount ) { s_editSelectionCurrent++; if ( m_parent == g_ui ) { s_editModeStatus = AUI_EDIT_MODE_CHOOSE_REGION; s_editSelectionCount = 0; s_editSelectionCurrent = 0; if ( g_ui->TheEditRegion() ) g_ui->TheEditRegion()->ShouldDraw( TRUE ); g_ui->SetEditRegion( NULL ); if (s_editChild ) s_editChild->MouseRGrabInsideEdit( mouseData ); } else m_parent->MouseRGrabInsideEdit( mouseData ); return; } else s_editModeStatus = AUI_EDIT_MODE_REGION_SELECTED; } if ( s_editModeStatus == AUI_EDIT_MODE_REGION_SELECTED ) { s_editSelectionCount++; s_editSelectionCurrent = s_editSelectionCount; s_editModeStatus = AUI_EDIT_MODE_MODIFY; SetWhichSeesMouse( this, TRUE ); m_mouseCode = AUI_ERRCODE_HANDLEDEXCLUSIVE; if ( g_ui->TheEditRegion() ) g_ui->TheEditRegion()->ShouldDraw( TRUE ); if ( s_editChild ) { if ( s_editChild->m_parent == g_ui ) m_draw |= m_drawMask & k_AUI_REGION_DRAWFLAG_UPDATE; else ( ( aui_Control * )s_editChild )->GetParentWindow()->ShouldDraw( TRUE ); } g_ui->SetEditRegion( this ); m_editGrabPointAttributes = k_REGION_GRAB_NONE; } }
void aui_Region::MouseLDragOver( aui_MouseEvent *mouseData ) { if ( IsDisabled() ) return; if ( !GetWhichSeesMouse() ) SetWhichSeesMouse( this ); }
void aui_Region::MouseRDropInside( aui_MouseEvent *mouseData ) { if ( IsDisabled() ) return; if ( !GetWhichSeesMouse() ) SetWhichSeesMouse( this ); }