DaxSoft

Mouse Window

Dec 9th, 2016
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.14 KB | None | 0 0
  1. #==============================================================================
  2. # • Window_Selectable
  3. #==============================================================================
  4. Dax.register(:mouse_window_selectable, "dax", 1.0, [[:mouse, "dax"]]) {
  5. class Window_Selectable < Window_Base
  6. #--------------------------------------------------------------------------
  7. # * Definição de controle de confirmação e cancelamento
  8. #--------------------------------------------------------------------------
  9. def process_handling
  10. return unless open? && active
  11. return process_ok if ok_enabled? && (trigger?(:C) or trigger?(0x01))
  12. return process_cancel if cancel_enabled? && (trigger?(:B) or trigger?(0x02))
  13. return process_pagedown if handle?(:pagedown) && Input.trigger?(:R)
  14. return process_pageup if handle?(:pageup) && Input.trigger?(:L)
  15. end
  16. #--------------------------------------------------------------------------
  17. # * Atualização da tela
  18. #--------------------------------------------------------------------------
  19. alias :dsi_mouse_update :update
  20. def update
  21. dsi_mouse_update
  22. process_mouse_handling if self.active && self.open
  23. end
  24. #--------------------------------------------------------------------------
  25. # * Configuração do processo de movimento do Mouse.
  26. #--------------------------------------------------------------------------
  27. def process_mouse_handling
  28. @delay = @delay ? @delay + 1 : 0
  29. return if @delay % 3 > 0
  30. mx, my = Mouse.x, Mouse.y
  31. vx = self.viewport ? self.x - self.viewport.ox + self.viewport.rect.x : self.x
  32. vy = self.viewport ? self.y - self.viewport.oy + self.viewport.rect.y : self.y
  33. if mx.between?(vx, vx + self.width) && my.between?(vy, vy + self.height)
  34. mx -= vx + padding
  35. my -= vy + padding
  36. my += oy
  37. (0...item_max).each { |i|
  38. rect = item_rect(i)
  39. next unless mx.between?(rect.x, rect.x + rect.width) && my.between?(rect.y, rect.y + rect.height)
  40. last_index = @index
  41. select(i)
  42. Sound.play_cursor unless @index == last_index
  43. break
  44. }
  45. end
  46. end
  47. end
  48. }
Add Comment
Please, Sign In to add comment