//---------------------------------------------------------------------------- //Borland C++Builder //Copyright (c) 1987, 1998 Borland International Inc. All Rights Reserved. //---------------------------------------------------------------------------- //--------------------------------------------------------------------------- #include #include #include #pragma hdrstop #include "traymain.h" #include "TPropiedades.h" //--------------------------------------------------------------------------- #pragma resource "*.dfm" TTrayMainForm *TrayMainForm; //--------------------------------------------------------------------------- __fastcall TTrayMainForm::TTrayMainForm(TComponent* Owner) : TForm(Owner) { Running = true; TrayMessage(NIM_ADD); TrayMessage(NIM_MODIFY); } //--------------------------------------------------------------------------- void __fastcall TTrayMainForm::DrawItem(TMessage& Msg) { IconDrawItem((LPDRAWITEMSTRUCT)Msg.LParam); TForm::Dispatch(&Msg); } //--------------------------------------------------------------------------- void __fastcall TTrayMainForm::MyNotify(TMessage& Msg) { POINT MousePos; switch(Msg.LParam) { case WM_RBUTTONUP: if ( GetCursorPos(&MousePos) ) { PopupMenu1->PopupComponent = Propiedades; SetForegroundWindow(Handle); PopupMenu1->Popup(MousePos.x, MousePos.y); PopupMenu1->PopupComponent = 0; } else Show(); break; case WM_LBUTTONDBLCLK: Properties1Click(0); break; /* case WM_LBUTTONUP: Properties1Click(0); break; */ default: break; } TForm::Dispatch(&Msg); } //--------------------------------------------------------------------------- void __fastcall TTrayMainForm::FormDestroy(TObject *Sender) { TrayMessage(NIM_DELETE); } //--------------------------------------------------------------------------- bool __fastcall TTrayMainForm::TrayMessage(DWORD dwMessage) { NOTIFYICONDATA tnd; PSTR pszTip; pszTip = TipText(); tnd.cbSize = sizeof(NOTIFYICONDATA); tnd.hWnd = Handle; tnd.uID = IDC_MYICON; tnd.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP; tnd.uCallbackMessage = MYWM_NOTIFY; if (dwMessage == NIM_MODIFY) { tnd.hIcon = IconHandle(); if (pszTip) lstrcpyn(tnd.szTip, pszTip, sizeof(tnd.szTip)); else tnd.szTip[0] = '\0'; } else { tnd.hIcon = NULL; tnd.szTip[0] = '\0'; } return (Shell_NotifyIcon(dwMessage, &tnd)); } //--------------------------------------------------------------------------- HANDLE __fastcall TTrayMainForm::IconHandle(void) { if (Running) return imagenOn -> Picture->Icon->Handle; else return imagenOFF -> Picture->Icon->Handle; } //--------------------------------------------------------------------------- void __fastcall TTrayMainForm::ToggleState(void) { Running = !Running; TrayMessage(NIM_MODIFY); } //--------------------------------------------------------------------------- PSTR __fastcall TTrayMainForm::TipText(void) { if (Running) return ("Lanzador de RAS's esta Activado."); else return ("-- DESACTIVADO --"); } //--------------------------------------------------------------------------- LRESULT IconDrawItem(LPDRAWITEMSTRUCT lpdi) { HICON hIcon; hIcon = (HICON)LoadImage(g_hinst, MAKEINTRESOURCE(lpdi->CtlID), IMAGE_ICON, 16, 16, 0); if (!hIcon) return(FALSE); DrawIconEx(lpdi->hDC, lpdi->rcItem.left, lpdi->rcItem.top, hIcon, 16, 16, 0, NULL, DI_NORMAL); return(TRUE); } //--------------------------------------------------------------------------- void __fastcall TTrayMainForm::Properties1Click(TObject *Sender) { // Show(); Propiedades -> Visible = !(Propiedades->Visible); } //--------------------------------------------------------------------------- void __fastcall TTrayMainForm::ToggleState1Click(TObject *Sender) { ToggleState(); } //--------------------------------------------------------------------------- void __fastcall TTrayMainForm::Shutdown1Click(TObject *Sender) { Close(); } //--------------------------------------------------------------------------- void __fastcall TTrayMainForm::BSalirClick(TObject *Sender) { Visible = false; } //--------------------------------------------------------------------------- void __fastcall TTrayMainForm::FormCreate(TObject *Sender) { Visible = false; } //---------------------------------------------------------------------------