llwindowcallbacks.h
上传用户:king477883
上传日期:2021-03-01
资源大小:9553k
文件大小:5k
源码类别:

游戏引擎

开发平台:

C++ Builder

  1. /** 
  2.  * @file llwindowcallbacks.h
  3.  * @brief OS event callback class
  4.  *
  5.  * $LicenseInfo:firstyear=2001&license=viewergpl$
  6.  * 
  7.  * Copyright (c) 2001-2010, Linden Research, Inc.
  8.  * 
  9.  * Second Life Viewer Source Code
  10.  * The source code in this file ("Source Code") is provided by Linden Lab
  11.  * to you under the terms of the GNU General Public License, version 2.0
  12.  * ("GPL"), unless you have obtained a separate licensing agreement
  13.  * ("Other License"), formally executed by you and Linden Lab.  Terms of
  14.  * the GPL can be found in doc/GPL-license.txt in this distribution, or
  15.  * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
  16.  * 
  17.  * There are special exceptions to the terms and conditions of the GPL as
  18.  * it is applied to this Source Code. View the full text of the exception
  19.  * in the file doc/FLOSS-exception.txt in this software distribution, or
  20.  * online at
  21.  * http://secondlifegrid.net/programs/open_source/licensing/flossexception
  22.  * 
  23.  * By copying, modifying or distributing this software, you acknowledge
  24.  * that you have read and understood your obligations described above,
  25.  * and agree to abide by those obligations.
  26.  * 
  27.  * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
  28.  * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
  29.  * COMPLETENESS OR PERFORMANCE.
  30.  * $/LicenseInfo$
  31.  */
  32. #ifndef LLWINDOWCALLBACKS_H
  33. #define LLWINDOWCALLBACKS_H
  34. class LLCoordGL;
  35. class LLWindow;
  36. class LLWindowCallbacks
  37. {
  38. public:
  39. virtual ~LLWindowCallbacks() {}
  40. virtual BOOL handleTranslatedKeyDown(KEY key,  MASK mask, BOOL repeated);
  41. virtual BOOL handleTranslatedKeyUp(KEY key,  MASK mask);
  42. virtual void handleScanKey(KEY key, BOOL key_down, BOOL key_up, BOOL key_level);
  43. virtual BOOL handleUnicodeChar(llwchar uni_char, MASK mask);
  44. virtual BOOL handleMouseDown(LLWindow *window,  LLCoordGL pos, MASK mask);
  45. virtual BOOL handleMouseUp(LLWindow *window,  LLCoordGL pos, MASK mask);
  46. virtual void handleMouseLeave(LLWindow *window);
  47. // return TRUE to allow window to close, which will then cause handleQuit to be called
  48. virtual BOOL handleCloseRequest(LLWindow *window);
  49. // window is about to be destroyed, clean up your business
  50. virtual void handleQuit(LLWindow *window);
  51. virtual BOOL handleRightMouseDown(LLWindow *window,  LLCoordGL pos, MASK mask);
  52. virtual BOOL handleRightMouseUp(LLWindow *window,  LLCoordGL pos, MASK mask);
  53. virtual BOOL handleMiddleMouseDown(LLWindow *window,  LLCoordGL pos, MASK mask);
  54. virtual BOOL handleMiddleMouseUp(LLWindow *window,  LLCoordGL pos, MASK mask);
  55. virtual BOOL handleActivate(LLWindow *window, BOOL activated);
  56. virtual BOOL handleActivateApp(LLWindow *window, BOOL activating);
  57. virtual void handleMouseMove(LLWindow *window,  LLCoordGL pos, MASK mask);
  58. virtual void handleScrollWheel(LLWindow *window,  S32 clicks);
  59. virtual void handleResize(LLWindow *window,  S32 width,  S32 height);
  60. virtual void handleFocus(LLWindow *window);
  61. virtual void handleFocusLost(LLWindow *window);
  62. virtual void handleMenuSelect(LLWindow *window,  S32 menu_item);
  63. virtual BOOL handlePaint(LLWindow *window,  S32 x,  S32 y,  S32 width,  S32 height);
  64. virtual BOOL handleDoubleClick(LLWindow *window,  LLCoordGL pos, MASK mask); // double-click of left mouse button
  65. virtual void handleWindowBlock(LLWindow *window); // window is taking over CPU for a while
  66. virtual void handleWindowUnblock(LLWindow *window); // window coming back after taking over CPU for a while
  67. virtual void handleDataCopy(LLWindow *window, S32 data_type, void *data);
  68. virtual BOOL handleTimerEvent(LLWindow *window);
  69. virtual BOOL handleDeviceChange(LLWindow *window);
  70. enum DragNDropAction {
  71. DNDA_START_TRACKING = 0,// Start tracking an incoming drag
  72. DNDA_TRACK, // User is dragging an incoming drag around the window
  73. DNDA_STOP_TRACKING, // User is no longer dragging an incoming drag around the window (may have either cancelled or dropped on the window)
  74. DNDA_DROPPED // User dropped an incoming drag on the window (this is the "commit" event)
  75. };
  76. enum DragNDropResult {
  77. DND_NONE = 0, // No drop allowed
  78. DND_MOVE, // Drop accepted would result in a "move" operation
  79. DND_COPY, // Drop accepted would result in a "copy" operation
  80. DND_LINK // Drop accepted would result in a "link" operation
  81. };
  82. virtual DragNDropResult handleDragNDrop(LLWindow *window, LLCoordGL pos, MASK mask, DragNDropAction action, std::string data);
  83. virtual void handlePingWatchdog(LLWindow *window, const char * msg);
  84. virtual void handlePauseWatchdog(LLWindow *window);
  85. virtual void handleResumeWatchdog(LLWindow *window);
  86.     // Look up a localized string, usually for an error message
  87.     virtual std::string translateString(const char* tag);
  88. virtual std::string translateString(const char* tag,
  89. const std::map<std::string, std::string>& args);
  90. };
  91. #endif