oleeventtable.java
来自「源码为Eclipse开源开发平台桌面开发工具SWT的源代码,」· Java 代码 · 共 76 行
JAVA
76 行
/******************************************************************************* * Copyright (c) 2000, 2003 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Common Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/cpl-v10.html * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/package org.eclipse.swt.ole.win32;/*** The OleEventTable class implements a simple* look up mechanism that maps an event type* to a listener. Muliple listeners for the* same event type are supported.**/class OleEventTable { int [] types; OleListener [] handlers;void hook (int eventType, OleListener handler) { if (types == null) types = new int [4]; if (handlers == null) handlers = new OleListener [4]; for (int i=0; i<types.length; i++) { if (types [i] == 0) { types [i] = eventType; handlers [i] = handler; return; } } int size = types.length; int [] newTypes = new int [size + 4]; OleListener [] newHandlers = new OleListener [size + 4]; System.arraycopy (types, 0, newTypes, 0, size); System.arraycopy (handlers, 0, newHandlers, 0, size); types = newTypes; handlers = newHandlers; types [size] = eventType; handlers [size] = handler;}boolean hooks (int eventType) { if (handlers == null) return false; for (int i=0; i<types.length; i++) { if (types [i] == eventType) return true; } return false;}void sendEvent (OleEvent event) { if (handlers == null) return; for (int i=0; i<types.length; i++) { if (types [i] == event.type) { OleListener listener = handlers [i]; if (listener != null) listener.handleEvent (event); } }}void unhook (int eventType, OleListener handler) { if (handlers == null) return; for (int i=0; i<types.length; i++) { if ((types [i] == eventType) && (handlers [i] == handler)) { types [i] = 0; handlers [i] = null; return; } }}boolean hasEntries() { for (int i=0; i<types.length; i++) { if (types[i] != 0) return true; } return false;}}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?