Ejemplo n.º 1
0
LRESULT ControlTrayIcon::windowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam,
                                    bool *useDefWindowProc)
{
  if (m_inWindowProc) {
    *useDefWindowProc = true;
    return 0;
  }
  if (m_termination) {
    m_endEvent.notify();
    *useDefWindowProc = true;
    return 0;
  }

  m_inWindowProc = true;

  switch (uMsg) {
  case WM_USER + 1:
    switch (lParam) {
    case WM_RBUTTONUP:
      onRightButtonUp();
      break;
    case WM_LBUTTONDOWN:
      onLeftButtonDown();
      break;
    } 
    break;
  default:
    *useDefWindowProc = true;
  }

  m_inWindowProc = false;
  return 0;
}
Ejemplo n.º 2
0
LRESULT ControlTrayIcon::windowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam,
                                    bool *useDefWindowProc)
{
  if (m_inWindowProc) {
    // This call is recursive, do not do any real work.
    *useDefWindowProc = true;
    return 0;
  }
  if (m_termination) {
    m_endEvent.notify();
    *useDefWindowProc = true;
    return 0;
  }

  // Make sure to reset it back to false before leaving this function for any
  // reason (check all return statements, exceptions should not happen here).
  m_inWindowProc = true;

  switch (uMsg) {
  case WM_USER + 1:
    switch (lParam) {
    case WM_RBUTTONUP:
      onRightButtonUp();
      break;
    case WM_LBUTTONDOWN:
      onLeftButtonDown();
      break;
    } // switch (lParam)
    break;
  default:
    if (uMsg == WM_USER_TASKBAR) {
      hide();
    }
    *useDefWindowProc = true;
  }

  m_inWindowProc = false;
  return 0;
}
Ejemplo n.º 3
0
int OSToolBarWnd::onMiddleButtonDown(int x, int y) {
  if (!want_middle_clicks) return 0;

  return onLeftButtonDown(x, y);
}
Ejemplo n.º 4
0
void CB_Event::onEvent(SDL_Event* event)
{
    switch(event->type)
    {
        case SDL_KEYDOWN:
        {
            onKeyDown(event->key.keysym.sym, (SDL_Keymod)event->key.keysym.mod);
            break;
        }
        case SDL_KEYUP:
        {
            onKeyUp(event->key.keysym.sym, (SDL_Keymod)event->key.keysym.mod);
            break;
        }
        case SDL_MOUSEMOTION:
        {
            onMouseMove(event->motion.x, event->motion.y, event->motion.xrel, event->motion.yrel, (event->motion.state&SDL_BUTTON(SDL_BUTTON_LEFT))!=0,(event->motion.state&SDL_BUTTON(SDL_BUTTON_RIGHT))!=0,(event->motion.state&SDL_BUTTON(SDL_BUTTON_MIDDLE))!=0);
            break;
        }
        case SDL_MOUSEBUTTONDOWN:
        {
            switch(event->button.button)
            {
                case SDL_BUTTON_LEFT:
                {
                    onLeftButtonDown(event->button.x, event->button.y);
                    break;
                }
                case SDL_BUTTON_RIGHT:
                {
                    onRightButtonDown(event->button.x, event->button.y);
                    break;
                }
                default:
                {
                    break;
                }
            }
            break;
        }
        case SDL_MOUSEWHEEL:
        {
            //onMouseWheel(event->button.button == SDL_BUTTON_WHEELUP, event->button.button == SDL_BUTTON_WHEELDOWN);
            break;
        }
        case SDL_MOUSEBUTTONUP:
        {
            switch(event->button.button)
            {
                case SDL_BUTTON_LEFT:
                {
                    onLeftButtonUp(event->button.x, event->button.y);
                    break;
                }
                case SDL_BUTTON_RIGHT:
                {
                    onRightButtonUp(event->button.x, event->button.y);
                    break;
                }
                default:
                {
                    break;
                }
            }
        }
        case SDL_JOYAXISMOTION:
        {
            onJoyAxis(event->jaxis.which, event->jaxis.axis, event->jaxis.value);
            break;
        }
        case SDL_JOYHATMOTION:
        {
            onJoyHat(event->jhat.which, event->jhat.hat, event->jhat.value);
            break;
        }
        case SDL_WINDOWEVENT:
        {
            switch(event->window.event)
            {
                case SDL_WINDOWEVENT_RESIZED:
                {
                    onResize(event->window.data1, event->window.data2);
                    break;
                }
            }
            break;
        }
        case SDL_QUIT:
        {
            onExit();
            break;
        }
    }
}