|
Java example source code file (awt_TrayIcon.h)
The awt_TrayIcon.h Java example source code/* * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this * particular file as subject to the "Classpath" exception as provided * by Oracle in the LICENSE file that accompanied this code. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ #ifndef AWT_TRAY_ICON_H #define AWT_TRAY_ICON_H #include "awt_Object.h" #include "awt_Component.h" #include "java_awt_TrayIcon.h" #include "sun_awt_windows_WTrayIconPeer.h" #include "java_awt_event_ActionEvent.h" #define TRAY_ICON_X_HOTSPOT 0 #define TRAY_ICON_Y_HOTSPOT 0 #define TRAY_ICON_TOOLTIP_MAX_SIZE 128 #define TRAY_ICON_BALLOON_TITLE_MAX_SIZE 64 #define TRAY_ICON_BALLOON_INFO_MAX_SIZE 256 /************************************************************************ * AwtTrayIcon class */ class AwtTrayIcon: public AwtObject { public: AwtTrayIcon(); virtual ~AwtTrayIcon(); virtual void Dispose(); BOOL SendTrayMessage(DWORD dwMessage); void LinkObjects(JNIEnv *env, jobject peer); void UnlinkObjects(); void InitNID(UINT uID); void InitMessage(MSG* msg, UINT message, WPARAM wParam, LPARAM lParam, int x = 0, int y = 0); void SendMouseEvent(jint id, jlong when, jint x, jint y, jint modifiers, jint clickCount, jboolean popupTrigger, jint button = 0, MSG *pMsg = NULL); void SendActionEvent(jint id, jlong when, jint modifiers, MSG *pMsg = NULL); virtual MsgRouting WmAwtTrayNotify(WPARAM wParam, LPARAM lParam); virtual MsgRouting WmMouseDown(UINT flags, int x, int y, int button); virtual MsgRouting WmMouseUp(UINT flags, int x, int y, int button); virtual MsgRouting WmMouseMove(UINT flags, int x, int y); virtual MsgRouting WmBalloonUserClick(UINT flags, int x, int y); virtual MsgRouting WmKeySelect(UINT flags, int x, int y); virtual MsgRouting WmSelect(UINT flags, int x, int y); virtual MsgRouting WmContextMenu(UINT flags, int x, int y); static MsgRouting WmTaskbarCreated(); INLINE void SetID(int ID) { m_nid.uID = ID; } INLINE int GetID() { return m_nid.uID; } void SetToolTip(LPCTSTR tooltip); INLINE LPTSTR GetToolTip() { return m_nid.szTip; } void SetIcon(HICON hIcon); INLINE HICON GetIcon() { return m_nid.hIcon; } void DisplayMessage(LPCTSTR caption, LPCTSTR text, LPCTSTR msgType); // Adds to the head of the list INLINE void AddTrayIconItem(UINT id) { TrayIconListItem* item = new TrayIconListItem(id, this); item->m_next = sm_trayIconList; sm_trayIconList = item; } static AwtTrayIcon* SearchTrayIconItem(UINT id); static void RemoveTrayIconItem(UINT id); static LPCTSTR GetClassName(); static void FillClassInfo(WNDCLASS *lpwc); static void RegisterClass(); static void UnregisterClass(); static LRESULT CALLBACK TrayWindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); static AwtTrayIcon* Create(jobject self, jobject parent); static HWND CreateMessageWindow(); static void DestroyMessageWindow(); static HBITMAP CreateBMP(HWND hW,int* imageData,int nSS, int nW, int nH); // methods called on Toolkit thread static void _SetToolTip(void *param); static void _SetIcon(void *param); static void _UpdateIcon(void *param); static void _DisplayMessage(void *param); /* * java.awt.TrayIcon fields */ static jfieldID idID; static jfieldID actionCommandID; // ************************ static HWND sm_msgWindow; static int sm_instCount; private: NOTIFYICONDATA m_nid; /* A bitmask keeps the button's numbers as MK_LBUTTON, MK_MBUTTON, MK_RBUTTON * which are allowed to * generate the CLICK event after the RELEASE has happened. * There are conditions that must be true for that sending CLICK event: * 1) button was initially PRESSED * 2) no movement or drag has happened until RELEASE */ UINT m_mouseButtonClickAllowed; class TrayIconListItem { public: TrayIconListItem(UINT id, AwtTrayIcon* trayIcon) { m_ID = id; m_trayIcon = trayIcon; m_next = NULL; } UINT m_ID; AwtTrayIcon* m_trayIcon; TrayIconListItem* m_next; }; public: static TrayIconListItem* sm_trayIconList; }; #endif /* AWT_TRAY_ICON_H */ Other Java examples (source code examples)Here is a short list of links related to this Java awt_TrayIcon.h source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.