From abd1c463b3283d9822a1d7ff8da2f9ef169edb65 Mon Sep 17 00:00:00 2001 From: Siep Kroonenberg Date: Sun, 15 May 2011 19:22:45 +0000 Subject: Tl-tray-menu: example custom menu and message box to explain custom menu git-svn-id: svn://tug.org/texlive/trunk@22484 c570f23f-e606-0410-a88d-b1316a301751 --- .../source/texk/texlive/w32_wrapper/tl-tray-menu.c | 26 +++++++++-- Master/tl-tray-menu.exe | Bin 57856 -> 61952 bytes Master/tlpkg/installer/tl-tray-menu-custom.bat | 51 +++++++++++++++++++++ 3 files changed, 74 insertions(+), 3 deletions(-) create mode 100755 Master/tlpkg/installer/tl-tray-menu-custom.bat diff --git a/Build/source/texk/texlive/w32_wrapper/tl-tray-menu.c b/Build/source/texk/texlive/w32_wrapper/tl-tray-menu.c index 7aeef3e704d..b848b223898 100644 --- a/Build/source/texk/texlive/w32_wrapper/tl-tray-menu.c +++ b/Build/source/texk/texlive/w32_wrapper/tl-tray-menu.c @@ -49,6 +49,10 @@ char ExeList[5][MAX_PATH] = { "" }; +int CustomHowMessageBox() +{ +} + LRESULT CALLBACK WndProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam ) { switch ( msg ) @@ -66,6 +70,7 @@ LRESULT CALLBACK WndProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam ) AppendMenu( hPopMenu, MF_STRING, MENU_COMSPEC, "&Command Prompt" ); if ( ExeList[MENU_CUSTOM][0] ) AppendMenu( hPopMenu, MF_STRING, MENU_CUSTOM, "Custom &Script" ); + else AppendMenu( hPopMenu, MF_SEPARATOR, 0, NULL ); AppendMenu( hPopMenu, MF_STRING, MENU_EXIT, "E&xit" ); } @@ -95,10 +100,23 @@ LRESULT CALLBACK WndProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam ) case MENU_TEXDOC: case MENU_EDITOR: case MENU_COMSPEC: - case MENU_CUSTOM: if ( _spawnlp( _P_NOWAIT, ExeList[LOWORD(wParam)], NULL ) < 0 ) DIE( "Failed to start: %s", ExeList[LOWORD(wParam)] ); break; + case MENU_CUSTOM: + if ( GetFileAttributes( ExeList[LOWORD(wParam)] ) != INVALID_FILE_ATTRIBUTES ) + { + if ( _spawnlp( _P_NOWAIT, ExeList[LOWORD(wParam)], NULL ) < 0 ) + DIE( "Failed to start: %s", ExeList[LOWORD(wParam)] ); + } + else + MessageBox( + NULL, + "For a custom menu, create tl-tray-menu-custom.bat \nin the root of the installation.\nSee sample at tlpkg\\installer\\tl-tray-menu-custom.bat.", + "Custom menu", + MB_ICONINFORMATION + ); + break; case MENU_EXIT: Shell_NotifyIcon( NIM_DELETE, &nid ); @@ -129,7 +147,7 @@ int APIENTRY WinMain( if ( !nchars || ( nchars == MAX_PATH ) ) DIE( "cannot get own path" ); if ( s = strrchr( selfdir, '\\' ) ) *s = '\0'; // remove file name part - // prepend bin/win32 to PATH + // append bin/win32 to PATH static char buffer[MAX_CMD]; strcpy( buffer, selfdir ); @@ -155,7 +173,9 @@ int APIENTRY WinMain( strcpy( buffer, selfdir ); strcat( buffer, "\\tl-tray-menu-custom.bat" ); - if ( GetFileAttributes( buffer ) != INVALID_FILE_ATTRIBUTES ) + // if ( GetFileAttributes( buffer ) != INVALID_FILE_ATTRIBUTES ) + // At call time, we test for this file and display + // a message box if it is missing. strncpy( ExeList[4], buffer, MAX_PATH ); // create a hidden window for messaging diff --git a/Master/tl-tray-menu.exe b/Master/tl-tray-menu.exe index f2b8c88175f..9593078599c 100755 Binary files a/Master/tl-tray-menu.exe and b/Master/tl-tray-menu.exe differ diff --git a/Master/tlpkg/installer/tl-tray-menu-custom.bat b/Master/tlpkg/installer/tl-tray-menu-custom.bat new file mode 100755 index 00000000000..2c284b54697 --- /dev/null +++ b/Master/tlpkg/installer/tl-tray-menu-custom.bat @@ -0,0 +1,51 @@ +@ECHO OFF + +rem Copy to the root of the TeX Live installation and customize as needed, +rem e.g. by substituting different editors. +rem The system tray menu has already taken care of the searchpath. + +SETLOCAL ENABLEEXTENSIONS +SETLOCAL ENABLEDELAYEDEXPANSION + +set tlroot=%~dp0 + +:menuloop + +set ans= +cls + +echo === TeX Live Menu === +echo. +echo 1 TexMakerX +echo 2 Emacs +echo 3 Notepad + +echo Q Quit +echo. +set /p ans="Make a choice: " + +if "%ans%"=="1" ( + %tlroot%texmakerx\texmakerx.exe + exit +) + +if "%ans%"=="2" ( + rem load emacs with the included initialization file _emacs + %tlroot%emacs\bin\emacs.exe -q -l %tlroot%emacs\_emacs + exit +) + +if "%ans%"=="3" ( + %windir%\notepad.exe + exit +) + +if "%ans%"=="Q" ( + exit +) + +if "%ans%"=="q" ( + exit +) + +goto :menuloop -- cgit v1.2.3