#include <windows.h>
#include <windowsx.h>
#include <commctrl.h>
#include <string.h>
#include "resource.h"
#include <assert.h>
#include "persistent.h"
#include "eclipselauncher.h"
#include "launcherconfig.h"
#include "clipboard.h"
#include "changeConfigurationDialog.h"
#include "utils.h"
Go to the source code of this file.
Defines | |
#define | strict |
#define | HEADER_CONFIGURATION_NAME "Configuration Name" |
#define | HEADER_WORKSPACE_PATH "Workspace Directory" |
#define | HEADER_VMPARAMETER "VM Parameter" |
#define | HEADER_JAVAVM "Java VM" |
Functions | |
LRESULT | MainDialogWindowProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) |
BOOL | OnInitializeApp (HWND hDlg, HWND wParam, LPARAM lParam) |
BOOL | OnExitApp (HWND hDlg) |
BOOL | OnCommandHelper (HWND hwnd, int id, HWND hwndCtl, UINT codeNotify) |
void | OnDeleteConfiguration (HWND hwnd) |
int | OnAddNewConfiguration (HWND hwnd) |
int | OnEditNewConfiguration (HWND hwnd) |
void | OnLeftButtonDoubleClick (HWND hwnd, BOOL what, int x, int y, UINT keyFlags) |
void | OnSize (HWND hDialog, int type, int notused1, int notused2) |
int APIENTRY | WinMain (HINSTANCE hinst, HINSTANCE hinstPrev, LPSTR lpCmdLine, int nCmdShow) |
LPLAUNCHERCONFIG | hitTestForLauncherConfig (HWND hwnd, int x, int y) |
void | showPopupMenu (HMENU hMenu, HWND hMainWindow) |
int | OnRightButtonDown (HWND hwnd, BOOL fDoubleClick, int x, int y, UINT keyFlags) |
TCHAR * | expandEnvironmentVariable (TCHAR *stringToExpand, TCHAR *newBuffer, int bufferSize) |
void | executeLaunchConfiguration (LPLAUNCHERCONFIG launcherConfiguration) |
void | OnKeyPressed (HWND hwnd, UINT vk, BOOL fDown, int cRepeat, UINT flags) |
LRESULT | ListViewWindowProc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) |
void | setUpTrayIcon (HWND hDialog) |
void | setUpListViewHeader (HWND hDialog) |
void | restoreWindow (HWND hWindow) |
BOOL | OnCreate (HWND hwnd, LPCREATESTRUCT lpCreateStruct) |
void | OnSysCommand (HWND hDialog, UINT cmd, int x, int y) |
Variables | |
WNDPROC | gOldListViewWindowProc |
HWND | ghMainDialog |
BOOL | gSendToTray = FALSE |
NOTIFYICONDATA | gNotifyIconData |
HMENU | ghTrayMenu |
TCHAR * | headerLabel [] = { HEADER_CONFIGURATION_NAME, HEADER_WORKSPACE_PATH, HEADER_JAVAVM, HEADER_VMPARAMETER } |
int | headerLabelSize [] = { 150, 150, 150, 150 } |
|
Definition at line 50 of file eclipselauncher.c. |
|
Definition at line 53 of file eclipselauncher.c. |
|
Definition at line 52 of file eclipselauncher.c. |
|
Definition at line 51 of file eclipselauncher.c. |
|
Definition at line 11 of file eclipselauncher.c. |
|
Definition at line 247 of file eclipselauncher.c. References expandEnvironmentVariable(), getExecutablePath(), getJavaVM(), getOptionalParameter(), getVMParameter(), getWorkspacePath(), ghMainDialog, and LocString(). Referenced by OnCommandHelper(), and OnLeftButtonDoubleClick().
00248 { 00249 int CMDLineLength = 4096; 00250 TCHAR* commandline = (TCHAR*)malloc(CMDLineLength); 00251 ZeroMemory(commandline, CMDLineLength); 00252 00253 assert(launcherConfiguration != NULL); 00254 00255 if(lstrlen(getWorkspacePath(launcherConfiguration)) > 0) 00256 { 00257 TCHAR tempBuffer[BUFFERSIZE_512] = {0}; 00258 wsprintf(commandline, "%s %s %s %s", expandEnvironmentVariable(getExecutablePath(launcherConfiguration), tempBuffer, 512), 00259 "-showlocation -data", 00260 getWorkspacePath(launcherConfiguration), 00261 getOptionalParameter(launcherConfiguration)); 00262 } 00263 else 00264 { 00265 TCHAR tempBuffer[BUFFERSIZE_512] = {0}; 00266 wsprintf(commandline, "%s %s %s", expandEnvironmentVariable(getExecutablePath(launcherConfiguration), tempBuffer, 512), 00267 "-showlocation", 00268 getOptionalParameter(launcherConfiguration)); 00269 } 00270 00271 if(lstrlen(getJavaVM(launcherConfiguration)) > 0) 00272 { 00273 TCHAR tempBuffer[BUFFERSIZE_512 * 2] = {0}; 00274 wsprintf(tempBuffer, " -vm %s", getJavaVM(launcherConfiguration)); 00275 lstrcat(commandline, tempBuffer); 00276 } 00277 00278 if(lstrlen(getVMParameter(launcherConfiguration)) > 0) 00279 { 00280 TCHAR tempBuffer[BUFFERSIZE_512 * 2] = {0}; 00281 wsprintf(tempBuffer, " -vmargs %s", getVMParameter(launcherConfiguration)); 00282 lstrcat(commandline, tempBuffer); 00283 } 00284 00285 ShowWindow(ghMainDialog, SW_HIDE); 00286 00287 // >31 means success! 00288 if(WinExec(commandline, SW_SHOW) > 31) 00289 { 00290 // launcherConfiguration->isCurrentlyRunning = TRUE; 00291 } 00292 else 00293 { 00294 TCHAR messageBuffer[BUFFERSIZE_512] = {0}; 00295 TCHAR locString[BUFFERSIZE_256] = {0}; 00296 wsprintf(messageBuffer, "%s\n%s", LocString(IDS_ERROR_EXECUTING_CONFIGURATION, locString), commandline); 00297 MessageBox(ghMainDialog, messageBuffer, "Error during Execution", MB_ICONEXCLAMATION | MB_OK); 00298 } 00299 00300 free(commandline); 00301 } |
|
Definition at line 207 of file eclipselauncher.c. Referenced by executeLaunchConfiguration().
00208 { 00209 TCHAR* startEnvironmentVariable = NULL; 00210 assert(stringToExpand != NULL); 00211 00212 startEnvironmentVariable = strchr(stringToExpand, '%'); 00213 if (startEnvironmentVariable != NULL) 00214 { 00215 int startIndex = startEnvironmentVariable - stringToExpand + 1; 00216 00217 TCHAR* endEnvironmentVariable = strrchr(stringToExpand, '%'); 00218 if (endEnvironmentVariable != NULL) 00219 { 00220 int endIndex = endEnvironmentVariable - stringToExpand + 1; 00221 00222 TCHAR environmentVariableName[BUFFERSIZE_512] = {0}; 00223 TCHAR environmentVariableValue[BUFFERSIZE_512] = {0}; 00224 00225 strncpy(environmentVariableName, stringToExpand + startIndex, endIndex - startIndex - 1); 00226 GetEnvironmentVariable(environmentVariableName, environmentVariableValue, 512); 00227 00228 lstrcpyn(newBuffer, stringToExpand, startIndex); 00229 strcat(newBuffer, environmentVariableValue); 00230 strcat(newBuffer, stringToExpand + endIndex); 00231 } 00232 } 00233 else /* nothing found */ 00234 { 00235 lstrcpyn(newBuffer, stringToExpand, bufferSize); 00236 } 00237 00238 return newBuffer; 00239 } |
|
Definition at line 112 of file eclipselauncher.c. References getLauncherConfig(). Referenced by OnLeftButtonDoubleClick(), and OnRightButtonDown().
00113 { 00114 LPLAUNCHERCONFIG launcherConfig = NULL; 00115 int listEntryPosition; 00116 00117 LV_HITTESTINFO hitTest = {0}; 00118 hitTest.pt.x = x; 00119 hitTest.pt.y = y; 00120 hitTest.flags = LVHT_ONITEM; 00121 00122 listEntryPosition = ListView_HitTest(hwnd, &hitTest); 00123 00124 if(listEntryPosition != (-1)) 00125 { 00126 // select the Entry before determinig the active configuration 00127 ListView_SetItemState(hwnd, listEntryPosition, LVIS_SELECTED | LVIS_FOCUSED, 0xffff); 00128 launcherConfig = getLauncherConfig(hwnd, listEntryPosition); 00129 } 00130 00131 return(launcherConfig); 00132 } |
|
Definition at line 352 of file eclipselauncher.c. References gOldListViewWindowProc, OnKeyPressed(), OnLeftButtonDoubleClick(), and OnRightButtonDown(). Referenced by OnInitializeApp().
00353 { 00354 switch (msg) 00355 { 00356 HANDLE_MSG(hwnd, WM_LBUTTONDBLCLK, OnLeftButtonDoubleClick); 00357 HANDLE_MSG(hwnd, WM_RBUTTONDOWN, OnRightButtonDown); 00358 HANDLE_MSG(hwnd, WM_KEYUP, OnKeyPressed); 00359 } 00360 00361 return(CallWindowProc(gOldListViewWindowProc, hwnd, msg, wParam, lParam)); 00362 } |
|
This is the main function for the dialog. It handles all messages. Do what your application needs to do here.
Definition at line 625 of file eclipselauncher.c. References getConfigurationCount(), getExecutablePath(), getJavaVM(), getLauncherConfig(), getName(), getOptionalParameter(), getVMParameter(), getWorkspacePath(), ghMainDialog, ghTrayMenu, gSendToTray, lockfileIsDeleteable(), OnCommandHelper(), OnCreate(), OnExitApp(), OnInitializeApp(), OnSize(), OnSysCommand(), restoreWindow(), saveConfiguration(), setName(), showPopupMenu(), and updateLauchnerConfig(). Referenced by WinMain().
00626 { 00627 static HWND editLabelControl; 00628 ghMainDialog = hwnd; 00629 00630 switch (msg) 00631 { 00632 HANDLE_MSG(hwnd, WM_CREATE, OnCreate); 00633 HANDLE_MSG(hwnd, WM_INITDIALOG, OnInitializeApp); 00634 HANDLE_MSG(hwnd, WM_COMMAND, OnCommandHelper); 00635 HANDLE_MSG(hwnd, WM_SYSCOMMAND, OnSysCommand); 00636 HANDLE_MSG(hwnd, WM_SIZE, OnSize); 00637 00638 case WM_NOTIFY: 00639 { 00640 int idCtrl = (int) wParam; 00641 LPNMHDR pnmh = (LPNMHDR) lParam; 00642 00643 switch(pnmh->code) 00644 { 00645 case LVN_BEGINLABELEDIT: 00646 { 00647 editLabelControl = ListView_GetEditControl(pnmh->hwndFrom); 00648 return FALSE; /* allow editiing */ 00649 } 00650 break; 00651 00652 case LVN_ENDLABELEDIT: 00653 { 00654 char text[255]=""; 00655 HWND hListView = pnmh->hwndFrom; 00656 int iIndex = SendMessage(hListView, LVM_GETNEXTITEM, -1, LVNI_FOCUSED); // get selected item 00657 LPLAUNCHERCONFIG data = getLauncherConfig(hListView, iIndex); 00658 00659 GetWindowText(editLabelControl, text, sizeof(text)); // get the text into a buffer 00660 setName(data, text, sizeof(text)); 00661 updateLauchnerConfig(hListView, data, iIndex); 00662 saveConfiguration(hListView); 00663 } 00664 break; 00665 00666 case LVN_GETINFOTIP: 00667 { 00668 TCHAR* tempValue; 00669 TCHAR buffer[BUFFERSIZE_512*2] = {0}; 00670 LPNMLVGETINFOTIP pGetInfoTip = (LPNMLVGETINFOTIP)lParam; 00671 LPLAUNCHERCONFIG data = getLauncherConfig(pGetInfoTip->hdr.hwndFrom, pGetInfoTip->iItem); 00672 00673 wsprintf(buffer, "Name:\t\t%s\nExecutable:\t%s", getName(data), getExecutablePath(data)); 00674 00675 tempValue = getJavaVM(data); 00676 00677 if (lstrlen(tempValue)) 00678 { 00679 lstrcat(buffer, "\nJavaVM:\t"); 00680 lstrcat(buffer, tempValue); 00681 } 00682 00683 tempValue = getWorkspacePath(data); 00684 if (lstrlen(tempValue)) 00685 { 00686 lstrcat(buffer, "\nWorkspace:\t"); 00687 lstrcat(buffer, tempValue); 00688 } 00689 00690 tempValue = getOptionalParameter(data); 00691 if (lstrlen(tempValue)) 00692 { 00693 lstrcat(buffer, "\nParameter:\t"); 00694 lstrcat(buffer, tempValue); 00695 } 00696 00697 tempValue = getVMParameter(data); 00698 if (lstrlen(tempValue)) 00699 { 00700 lstrcat(buffer, "\nVM Parameter:\t"); 00701 lstrcat(buffer, tempValue); 00702 } 00703 00704 lstrcpy(pGetInfoTip->pszText, buffer); 00705 } 00706 } 00707 } 00708 break; 00709 00710 case WM_DESTROY: 00711 { 00712 if( gSendToTray != TRUE) 00713 { 00714 OnExitApp(hwnd); 00715 PostQuitMessage(0); 00716 } 00717 } 00718 break; 00719 /* 00720 case WM_MEASUREITEM: 00721 { 00722 SIZE size = {0}; 00723 00724 // Retrieve a device context for the main window. 00725 HDC hdc = GetDC(hwnd); 00726 00727 // Retrieve pointers to the menu item's 00728 // MEASUREITEMSTRUCT structure and MYITEM structure. 00729 00730 LPMEASUREITEMSTRUCT lpmis = (LPMEASUREITEMSTRUCT) lParam; 00731 LPLAUNCHERCONFIG launcherConfig = (LPLAUNCHERCONFIG) lpmis->itemData; 00732 00733 // check if we are already running 00734 if(launcherConfig->isCurrentlyRunning != FALSE) 00735 { 00736 launcherConfig->isCurrentlyRunning = lockfileIsDeleteable(launcherConfig->workspacePath); 00737 } 00738 00739 // Retrieve the width and height of the item's string, 00740 // and then copy the width and height into the 00741 // MEASUREITEMSTRUCT structure's itemWidth and 00742 // itemHeight members. 00743 00744 GetTextExtentPoint32(hdc, launcherConfig->name, lstrlen(launcherConfig->name), &size); 00745 lpmis->itemWidth = size.cx; 00746 lpmis->itemHeight = size.cy; 00747 00748 ReleaseDC(hwnd, hdc); 00749 00750 return TRUE; 00751 } 00752 break; 00753 00754 case WM_DRAWITEM: 00755 { 00756 COLORREF crText; 00757 COLORREF crBkgnd; 00758 00759 int wCheckX; 00760 int nTextX; 00761 int nTextY; 00762 BOOL fSelected = FALSE; 00763 00764 // Get pointers to the menu item's DRAWITEMSTRUCT 00765 // structure and MYITEM structure. 00766 00767 LPDRAWITEMSTRUCT lpdis = (LPDRAWITEMSTRUCT) lParam; 00768 LPLAUNCHERCONFIG launcherConfig = (LPLAUNCHERCONFIG) lpdis->itemData; 00769 00770 // If the user has selected the item, use the selected 00771 // text and background colors to display the item. 00772 00773 if (lpdis->itemState & ODS_SELECTED) 00774 { 00775 crBkgnd = SetBkColor(lpdis->hDC, GetSysColor(COLOR_HIGHLIGHT)); 00776 fSelected = TRUE; 00777 } 00778 00779 if (launcherConfig->isCurrentlyRunning) 00780 { 00781 crText = SetTextColor(lpdis->hDC, RGB(0xff,0x0,0x0)); 00782 } 00783 00784 // Remember to leave space in the menu item for the 00785 // check-mark bitmap. Retrieve the width of the bitmap 00786 // and add it to the width of the menu item. 00787 00788 wCheckX = GetSystemMetrics(SM_CXMENUCHECK); 00789 nTextX = wCheckX + lpdis->rcItem.left; 00790 nTextY = lpdis->rcItem.top; 00791 00792 // Select the font associated with the item into the 00793 // item's device context, and then draw the string. 00794 00795 // hfontOld = SelectObject(lpdis->hDC, pmyitem->hfont); 00796 ExtTextOut(lpdis->hDC, nTextX, nTextY, ETO_OPAQUE, 00797 &lpdis->rcItem, launcherConfig->name, 00798 lstrlen(launcherConfig->name), NULL); 00799 00800 // Select the previous font back into the device 00801 // context. 00802 00803 // SelectObject(lpdis->hDC, hfontOld); 00804 00805 // Return the text and background colors to their 00806 // normal state (not selected). 00807 00808 if (fSelected) 00809 { 00810 // SetTextColor(lpdis->hDC, crText); 00811 SetBkColor(lpdis->hDC, crBkgnd); 00812 } 00813 00814 return TRUE; 00815 } 00816 break; 00817 */ 00818 case WM_USER: 00819 { 00820 switch(lParam) 00821 { 00822 // @TODO: Make this configurable for the user. Allow the User to enable the Popup on Right or left clicks. 00823 case WM_RBUTTONUP: 00824 { 00825 HWND hConfigList = GetDlgItem(hwnd, ID_CONFIGLIST); 00826 int configurationCount = getConfigurationCount(hConfigList); 00827 HMENU hSubMenu = GetSubMenu(ghTrayMenu, 0); 00828 LPLAUNCHERCONFIG launcherConfig; 00829 00830 int configurationNum; 00831 int menuItemCount = GetMenuItemCount(hSubMenu); 00832 int itemCount; 00833 int flags; 00834 MENUITEMINFO menuiteminfo = {0}; 00835 menuiteminfo.cbSize = sizeof(MENUITEMINFO); 00836 menuiteminfo.fMask = MIIM_ID; 00837 00838 for(itemCount = 0; itemCount < menuItemCount; itemCount++) 00839 { 00840 // always get the 0th Element! 00841 GetMenuItemInfo(hSubMenu, 0, TRUE, &menuiteminfo); 00842 00843 if(menuiteminfo.wID == (UINT)(IDM_EXECUTECONFIGURATION + itemCount)) 00844 { 00845 DeleteMenu(hSubMenu, 0, MF_BYPOSITION); 00846 } 00847 00848 if(menuiteminfo.wID == 9999) 00849 { 00850 DeleteMenu(hSubMenu, 0, MF_BYPOSITION); 00851 break; // Now our Delimiter has marked the end... 00852 } 00853 } 00854 00855 for(configurationNum = 0; configurationNum < configurationCount; configurationNum++) 00856 { 00857 launcherConfig = getLauncherConfig(hConfigList, configurationNum); 00858 00859 /* InsertMenu(hSubMenu, configurationNum, MF_BYPOSITION | MF_OWNERDRAW, (UINT) IDM_EXECUTECONFIGURATION + configurationNum, 00860 launcherConfig); 00861 */ 00862 flags = MF_BYPOSITION; 00863 00864 if(! lockfileIsDeleteable(getWorkspacePath(launcherConfig))) 00865 { 00866 flags |= MF_CHECKED; 00867 } 00868 00869 InsertMenu(hSubMenu, configurationNum, flags, (UINT) IDM_EXECUTECONFIGURATION + configurationNum, 00870 getName(launcherConfig)); 00871 } 00872 00873 InsertMenu(hSubMenu, configurationNum, MF_BYPOSITION, 9999, NULL); 00874 00875 showPopupMenu(hSubMenu, hwnd); 00876 00877 return TRUE; 00878 } 00879 break; 00880 00881 case WM_LBUTTONDBLCLK: 00882 { 00883 restoreWindow(hwnd); 00884 return TRUE; 00885 } 00886 break; 00887 } 00888 } 00889 break; 00890 } 00891 00892 return FALSE; 00893 } |
|
Definition at line 895 of file eclipselauncher.c. References getApplicationInstance(), and HandleAddConfigurationDialogProc(). Referenced by OnCommandHelper(), and OnKeyPressed().
00896 { 00897 return(DialogBoxParam(getApplicationInstance(), 00898 MAKEINTRESOURCE(IDD_ADDCONFIGDLG), 00899 hwnd, 00900 (DLGPROC) HandleAddConfigurationDialogProc, 00901 MAKELPARAM(NULL, GetDlgItem(hwnd, ID_CONFIGLIST)))); 00902 } |
|
Definition at line 505 of file eclipselauncher.c. References executeLaunchConfiguration(), getLauncherConfig(), gSendToTray, LocString(), OnAddNewConfiguration(), OnDeleteConfiguration(), OnDuplicateLaunchConfiguration(), OnEditNewConfiguration(), and restoreWindow(). Referenced by MainDialogWindowProc().
00506 { 00507 // we ignore all other Messages 00508 if (codeNotify == 0) 00509 { 00510 switch (id) 00511 { 00512 case IDCANCEL: 00513 { 00514 EndDialog(hwnd, 0); 00515 return 1; 00516 } 00517 break; 00518 00519 case ID_TRAYEXIT: 00520 { 00521 gSendToTray = FALSE; 00522 EndDialog(hwnd,0); 00523 SendMessage(hwnd, WM_DESTROY, 0, 0); 00524 return TRUE; 00525 } 00526 00527 case IDM_ADDCONFIGURATION: 00528 case ID_ADDCONFIGURATION: 00529 { 00530 return(OnAddNewConfiguration(hwnd)); 00531 } 00532 00533 case IDM_EDITCONFIGURATION: 00534 case ID_EDITCONFIGURATION: 00535 { 00536 return(OnEditNewConfiguration(hwnd)); 00537 } 00538 00539 case IDM_DUPLICATECONFIGURATION: 00540 { 00541 HWND hListbox = GetDlgItem(hwnd, ID_CONFIGLIST); 00542 OnDuplicateLaunchConfiguration(hListbox); 00543 } 00544 break; 00545 00546 case IDM_DELETECONFIGURATION: 00547 case ID_DELETECONFIG: 00548 { 00549 HWND hListBox = GetDlgItem(hwnd, ID_CONFIGLIST); 00550 OnDeleteConfiguration(hListBox); 00551 return TRUE; 00552 } 00553 00554 case ID_RESTOREFROMTRAY: 00555 { 00556 restoreWindow(hwnd); 00557 } 00558 break; 00559 00560 case ID_ABOUT: 00561 { 00562 TCHAR appAbout[BUFFERSIZE_512] = {0}; 00563 TCHAR appVersionString[BUFFERSIZE_512 * 2] = {0}; 00564 TCHAR appName[APPNAME_BUFFER_SIZE] = {0}; 00565 TCHAR appVersion[APPVERSION_BUFFER_SIZE] = {0}; 00566 00567 LocString(APP_ABOUT, appAbout); 00568 LocString(IDS_APPNAME, appName); 00569 LocString(IDS_APPVERSION, appVersion); 00570 00571 wsprintf(appVersionString, "%s %s\n%s", appName, appVersion, appAbout); 00572 MessageBox(hwnd, appVersionString, "About EclipseLauncher", MB_OK | MB_ICONEXCLAMATION); 00573 } 00574 break; 00575 00576 // this is to capture the Execute from the Tray popup Menu 00577 default: 00578 { 00579 int launcherConfigNum = id - IDM_EXECUTECONFIGURATION; 00580 LPLAUNCHERCONFIG launcherConfig = getLauncherConfig(GetDlgItem(hwnd, ID_CONFIGLIST), launcherConfigNum); 00581 executeLaunchConfiguration(launcherConfig); 00582 } 00583 } 00584 } 00585 00586 return TRUE; 00587 } |
|
Definition at line 597 of file eclipselauncher.c. Referenced by MainDialogWindowProc().
00598 {
00599 lpCreateStruct->style &= WS_MINIMIZE;
00600
00601 return 0;
00602 }
|
|
Definition at line 464 of file eclipselauncher.c. References getCurrentSelection(), getLauncherConfig(), getName(), LocString(), releaseLauncherConfig(), and saveConfiguration(). Referenced by OnCommandHelper(), and OnKeyPressed().
00465 { 00466 int currentSelection = getCurrentSelection(hListBox); 00467 if(currentSelection != LB_ERR) 00468 { 00469 LPLAUNCHERCONFIG data = getLauncherConfig(hListBox, currentSelection); 00470 int result; 00471 TCHAR resString[STRINGBUFFER_SIZE];// = (TCHAR*)malloc(bufferSize); 00472 TCHAR message[STRINGBUFFER_SIZE]; 00473 TCHAR dialogTitle[STRINGBUFFER_SIZE]; 00474 00475 wsprintf(message, LocString(IDS_REMOVE_CONFIGURATION, resString), getName(data)); 00476 00477 LocString(IDS_REMOVE_CONFIGURATION_TITLE, resString); 00478 wsprintf(dialogTitle, resString); 00479 00480 result = MessageBox(NULL, message, dialogTitle, MB_YESNO); 00481 if(IDYES == result) 00482 { 00483 releaseLauncherConfig(data); 00484 ListView_DeleteItem(hListBox, currentSelection); 00485 saveConfiguration(hListBox); 00486 } 00487 } 00488 } |
|
Definition at line 904 of file eclipselauncher.c. References getApplicationInstance(), and HandleEditConfigurationDialogProc(). Referenced by OnCommandHelper(), and OnLeftButtonDoubleClick().
00905 { 00906 return(DialogBoxParam(getApplicationInstance(), 00907 MAKEINTRESOURCE(IDD_ADDCONFIGDLG), 00908 hwnd, 00909 (DLGPROC) HandleEditConfigurationDialogProc, 00910 MAKELPARAM(NULL, GetDlgItem(hwnd, ID_CONFIGLIST)))); 00911 } |
|
Definition at line 448 of file eclipselauncher.c. References disposeAllConfigurations(), ghTrayMenu, and gNotifyIconData. Referenced by MainDialogWindowProc().
00449 { 00450 // Remove from tray 00451 Shell_NotifyIcon(NIM_DELETE, &gNotifyIconData); 00452 00453 disposeAllConfigurations(GetDlgItem(hDlg, ID_CONFIGLIST)); 00454 00455 DestroyMenu(ghTrayMenu); 00456 00457 EndDialog(hDlg,0); 00458 return TRUE; 00459 } |
|
Definition at line 415 of file eclipselauncher.c. References gOldListViewWindowProc, ListViewWindowProc(), loadConfiguration(), LocString(), setUpListViewHeader(), and setUpTrayIcon(). Referenced by MainDialogWindowProc().
00416 { 00417 TCHAR appNameVersion[BUFFERSIZE_256] = {0}; 00418 TCHAR appName[APPNAME_BUFFER_SIZE] = {0}; 00419 TCHAR appVersion[APPVERSION_BUFFER_SIZE] = {0}; 00420 00421 HWND hListBox = GetDlgItem(hDlg, ID_CONFIGLIST); 00422 00423 wsprintf(appNameVersion, "%s %s", LocString(IDS_APPNAME, appName), LocString(IDS_APPVERSION, appVersion)); 00424 00425 setUpListViewHeader(hDlg); 00426 00427 loadConfiguration(hListBox); 00428 00429 /* EnableWindow(GetDlgItem(hDlg, ID_EDITCONFIGURATION), FALSE); 00430 EnableWindow(GetDlgItem(hDlg, ID_DELETECONFIG), FALSE); 00431 */ 00432 gOldListViewWindowProc = (WNDPROC)GetWindowLong(hListBox, GWL_WNDPROC); 00433 SetWindowLong(hListBox, GWL_WNDPROC, (LONG)ListViewWindowProc); 00434 00435 SetWindowText(hDlg, appNameVersion); 00436 00437 setUpTrayIcon(hDlg); 00438 00439 ShowWindow(hDlg, SW_HIDE); 00440 00441 return TRUE; 00442 } |
|
Handle WM_KEYPRESS inside the Listbox. Definition at line 330 of file eclipselauncher.c. References ghMainDialog, OnAddNewConfiguration(), and OnDeleteConfiguration(). Referenced by ListViewWindowProc().
00331 { 00332 switch(vk) 00333 { 00334 case VK_DELETE: 00335 { 00336 OnDeleteConfiguration(hwnd); 00337 } 00338 break; 00339 00340 case VK_INSERT: 00341 { 00342 OnAddNewConfiguration(ghMainDialog); 00343 } 00344 break; 00345 } 00346 } |
|
Definition at line 309 of file eclipselauncher.c. References executeLaunchConfiguration(), ghMainDialog, hitTestForLauncherConfig(), and OnEditNewConfiguration(). Referenced by ListViewWindowProc().
00310 { 00311 LPLAUNCHERCONFIG launcherConfig = hitTestForLauncherConfig(hwnd, x, y); 00312 00313 if(launcherConfig != NULL) 00314 { 00315 /* if the Control Key is pressed open to edit. */ 00316 if((keyFlags & MK_CONTROL) == MK_CONTROL) 00317 { 00318 OnEditNewConfiguration(ghMainDialog); 00319 } 00320 else 00321 { 00322 executeLaunchConfiguration(launcherConfig); 00323 } 00324 } 00325 } |
|
Definition at line 158 of file eclipselauncher.c. References getName(), ghMainDialog, hitTestForLauncherConfig(), and LocString(). Referenced by ListViewWindowProc().
00159 { 00160 POINT cursorPos; 00161 HMENU hContextMenu; 00162 TCHAR* locbuffer = (TCHAR*) malloc(256); 00163 00164 LPLAUNCHERCONFIG launcherConfig = hitTestForLauncherConfig(hwnd, x, y); 00165 00166 hContextMenu = CreatePopupMenu(); 00167 00168 if(launcherConfig != NULL) 00169 { 00170 TCHAR buffer[BUFFERSIZE_256] = {0}; 00171 00172 wsprintf(buffer, LocString(IDS_POPUP_EDIT_CONFIGURATION, locbuffer), getName(launcherConfig)); 00173 AppendMenu(hContextMenu, MF_STRING, (UINT) IDM_EDITCONFIGURATION, 00174 buffer); 00175 00176 wsprintf(buffer, LocString(IDS_POPUP_DUPLICATE_CONFIGURATION, locbuffer), getName(launcherConfig)); 00177 AppendMenu(hContextMenu, MF_STRING, (UINT) IDM_DUPLICATECONFIGURATION, 00178 buffer); 00179 00180 AppendMenu(hContextMenu, MF_MENUBREAK, (UINT) 0, 00181 NULL); 00182 00183 wsprintf(buffer, LocString(IDS_POPUP_DELETE_CONFIGURATION, locbuffer), getName(launcherConfig)); 00184 AppendMenu(hContextMenu, MF_STRING, (UINT) IDM_DELETECONFIGURATION, 00185 buffer); 00186 } 00187 else 00188 { 00189 AppendMenu(hContextMenu, MF_STRING, (UINT) IDM_ADDCONFIGURATION, 00190 LocString(IDS_POPUP_ADD_NEW_CONFIGURATION, locbuffer)); 00191 } 00192 00193 GetCursorPos(&cursorPos); 00194 TrackPopupMenu(hContextMenu, TPM_LEFTALIGN | TPM_LEFTBUTTON, cursorPos.x, cursorPos.y, 0, ghMainDialog, NULL); 00195 00196 free(locbuffer); 00197 00198 return(1); 00199 } |
|
Definition at line 589 of file eclipselauncher.c. Referenced by MainDialogWindowProc().
00590 {
00591 if(type == SIZE_MINIMIZED)
00592 {
00593 ShowWindow(hDialog, SW_HIDE);
00594 }
00595 }
|
|
Sends the Dialog to the Tray. Called when the Dialog is minimized.
Definition at line 608 of file eclipselauncher.c. References gSendToTray. Referenced by MainDialogWindowProc().
00609 { 00610 if(cmd == SC_MINIMIZE || cmd == SC_CLOSE) 00611 { 00612 ShowWindow(hDialog, SW_HIDE); 00613 gSendToTray = TRUE; 00614 } 00615 } |
|
Definition at line 494 of file eclipselauncher.c. Referenced by MainDialogWindowProc(), and OnCommandHelper().
00495 { 00496 ShowWindow(hWindow, SW_SHOWNORMAL); 00497 SetForegroundWindow(hWindow); 00498 } |
|
Definition at line 389 of file eclipselauncher.c. References headerLabel, and headerLabelSize. Referenced by OnInitializeApp().
00390 { 00391 HWND hListBox; 00392 int headerCount; 00393 int headers = sizeof(headerLabel) / sizeof(headerLabel[0]); 00394 00395 LV_COLUMN column = {0}; 00396 00397 column.mask = LVCF_FMT | LVCF_TEXT | LVCF_WIDTH; 00398 column.cx = 150; 00399 column.fmt = LVCFMT_LEFT; 00400 00401 hListBox = GetDlgItem(hDialog, ID_CONFIGLIST); 00402 00403 for(headerCount = 0; headerCount < headers; headerCount++) 00404 { 00405 column.pszText = headerLabel[headerCount]; 00406 column.cx = headerLabelSize[headerCount]; 00407 ListView_InsertColumn(hListBox, headerCount, &column); 00408 } 00409 } |
|
Definition at line 368 of file eclipselauncher.c. References getApplicationInstance(), ghTrayMenu, gNotifyIconData, and LocString(). Referenced by OnInitializeApp().
00369 { 00370 TCHAR buffer[BUFFERSIZE_256] = {0}; 00371 00372 ghTrayMenu = LoadMenu(getApplicationInstance(), MAKEINTRESOURCE(ID_TRAYMENU)); 00373 00374 gNotifyIconData.cbSize = sizeof(NOTIFYICONDATA); 00375 gNotifyIconData.hWnd = hDialog; 00376 gNotifyIconData.uID = 0; 00377 gNotifyIconData.uFlags = NIF_ICON | NIF_TIP | NIF_MESSAGE; 00378 gNotifyIconData.uCallbackMessage = WM_USER; 00379 gNotifyIconData.hIcon = LoadImage(getApplicationInstance(), MAKEINTRESOURCE(IDI_ECLIPSELAUNCHER), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); 00380 lstrcpy(gNotifyIconData.szTip, LocString(IDS_POPUP_ENABLE_HINT, buffer)); 00381 00382 Shell_NotifyIcon(NIM_ADD, &gNotifyIconData); 00383 } |
|
Definition at line 140 of file eclipselauncher.c. Referenced by MainDialogWindowProc().
00141 {
00142 POINT cursorPos;
00143 GetCursorPos(&cursorPos);
00144
00145 // PRB: Menus for Notification Icons Don't Work Correctly
00146 SetForegroundWindow(hMainWindow);
00147 TrackPopupMenu(hMenu, TPM_LEFTALIGN | TPM_LEFTBUTTON, cursorPos.x, cursorPos.y, 0, hMainWindow, NULL);
00148 PostMessage(hMainWindow, WM_NULL, 0, 0);
00149 }
|
|
Starting Point of Application
Definition at line 65 of file eclipselauncher.c. References LocString(), and MainDialogWindowProc().
00066 { 00067 TCHAR appName[APPNAME_BUFFER_SIZE] = {0}; 00068 HWND hDialog; 00069 MSG msg; 00070 WNDCLASS wc; 00071 00072 memset(&wc, 0, sizeof(wc)); 00073 wc.lpfnWndProc = DefDlgProc; 00074 wc.cbWndExtra = DLGWINDOWEXTRA; 00075 wc.hInstance = hinst; 00076 wc.hIcon = LoadIcon(NULL, MAKEINTRESOURCE(IDI_ECLIPSELAUNCHER)); 00077 wc.hCursor = LoadCursor(NULL, IDC_ARROW); 00078 wc.hbrBackground = (HBRUSH) (COLOR_WINDOW + 1); 00079 wc.lpszClassName = LocString(IDS_APPNAME, appName); 00080 RegisterClass(&wc); 00081 00082 hDialog = CreateDialog(hinst, MAKEINTRESOURCE(IDD_MAINDIALOG_NOBUTTONS), NULL, (DLGPROC) MainDialogWindowProc); 00083 ListView_SetExtendedListViewStyleEx(GetDlgItem(hDialog, ID_CONFIGLIST), LVS_EX_FULLROWSELECT | LVS_EX_INFOTIP /*| LVS_EX_GRIDLINES*/, LVS_EX_FULLROWSELECT | LVS_EX_INFOTIP /*| LVS_EX_GRIDLINES*/); 00084 if(!hDialog) 00085 { 00086 TCHAR buf[BUFFERSIZE_256]; 00087 wsprintf(buf, "Error %ld", GetLastError()); 00088 MessageBox(0, buf, "CreateDialog", MB_ICONEXCLAMATION | MB_OK); 00089 return 1; 00090 } 00091 00092 while (GetMessage(&msg, NULL, 0, 0)) 00093 { 00094 if (!IsDialogMessage(hDialog, &msg)) 00095 { 00096 TranslateMessage(&msg); 00097 DispatchMessage(&msg); 00098 } 00099 } 00100 00101 return msg.wParam; 00102 00103 /* return DialogBox(hinst, MAKEINTRESOURCE(IDD_MAINDIALOG_NOBUTTONS), NULL, (DLGPROC) MainDialogWindowProc); */ 00104 } |
|
Definition at line 43 of file eclipselauncher.c. Referenced by executeLaunchConfiguration(), MainDialogWindowProc(), OnKeyPressed(), OnLeftButtonDoubleClick(), and OnRightButtonDown(). |
|
Definition at line 48 of file eclipselauncher.c. Referenced by MainDialogWindowProc(), OnExitApp(), and setUpTrayIcon(). |
|
Definition at line 47 of file eclipselauncher.c. Referenced by OnExitApp(), and setUpTrayIcon(). |
|
Definition at line 42 of file eclipselauncher.c. Referenced by ListViewWindowProc(), and OnInitializeApp(). |
|
Definition at line 44 of file eclipselauncher.c. Referenced by MainDialogWindowProc(), OnCommandHelper(), and OnSysCommand(). |
|
Definition at line 55 of file eclipselauncher.c. Referenced by setUpListViewHeader(). |
|
Definition at line 56 of file eclipselauncher.c. Referenced by setUpListViewHeader(). |