DesktopTools Code
Status: Alpha
Brought to you by:
lightweave
| File | Date | Author | Commit |
|---|---|---|---|
| LaunchMenuDLL | 2008-01-24 | lightweave | [r1] |
| BUGS | 2008-01-24 | lightweave | [r1] |
| CHANGES | 2008-01-24 | lightweave | [r1] |
| CreateTranslationTable.py | 2008-01-24 | lightweave | [r1] |
| GlobalStrings.cpp | 2008-01-24 | lightweave | [r1] |
| GlobalStrings.h | 2008-01-24 | lightweave | [r1] |
| LMenu.ini | 2008-01-24 | lightweave | [r1] |
| LaunchMenu.cpp | 2008-01-24 | lightweave | [r1] |
| LaunchMenu.dsp | 2008-01-24 | lightweave | [r1] |
| LaunchMenu.dsw | 2008-01-24 | lightweave | [r1] |
| LaunchMenu.h | 2008-01-24 | lightweave | [r1] |
| LaunchMenu.rc | 2008-01-24 | lightweave | [r1] |
| LaunchMenuDlg.cpp | 2008-01-24 | lightweave | [r1] |
| LaunchMenuDlg.h | 2008-01-24 | lightweave | [r1] |
| Linux.cpp | 2008-01-24 | lightweave | [r1] |
| Linux.h | 2008-01-24 | lightweave | [r1] |
| MONDRIAN.ICO | 2008-01-24 | lightweave | [r1] |
| Makefile | 2008-01-24 | lightweave | [r1] |
| Misc.h | 2008-01-24 | lightweave | [r1] |
| MouseInterface.h | 2008-01-24 | lightweave | [r1] |
| Profile.c | 2008-01-24 | lightweave | [r1] |
| Profile.h | 2008-01-24 | lightweave | [r1] |
| README | 2008-01-24 | lightweave | [r1] |
| StringTable.h | 2008-01-24 | lightweave | [r1] |
| StringTable.txt | 2008-01-24 | lightweave | [r1] |
| StringTableTxt.h | 2008-01-24 | lightweave | [r1] |
| Strip.c | 2008-01-24 | lightweave | [r1] |
| TODO | 2008-01-24 | lightweave | [r1] |
| ToUpper.c | 2008-01-24 | lightweave | [r1] |
| fdchar.c | 2008-01-24 | lightweave | [r1] |
| gpl.txt | 2008-01-24 | lightweave | [r1] |
| memwatch.c | 2008-01-24 | lightweave | [r1] |
| memwatch.h | 2008-01-24 | lightweave | [r1] |
| mondrian.xpm | 2008-01-24 | lightweave | [r1] |
| rdline.c | 2008-01-24 | lightweave | [r1] |
LaunchMenu is (C) by Gerhard W. Gruber in Germany 2003. All files are released under the GPL/LGPL licence. You should have gotten a copy with the package you downloaded this files from. If you don't know where to get the most up to date version, or you want to contribute you can either contact me at sparhawk@gmx.at or take a look at http://www.sourceforge.net/projects/launchmenu. If you want to compile this package, you need to install python which you can get at http://www.python.org. The python modolu is only for creating stringarrays in order to make it easier to port it to another language. In case you don't want to install python just for that, you can always take a look at the StringTable.h file. Of course it is much easier to do with the script and less error prone. You will also need wxWindows, which you can also find on sourceforge.net. You are always welcome to send me some money for support or just to show you enjoy this software. :) But of course you don't have to and this is no requirement to use this software or the sources. Gerhard Gruber Bank: 850259438 BLZ: 36010043 Postbank Essen Since I realized that most people may not know what to do with Launchmenu I will give an explanation here as I have to create a project website. If anybody is interested in designing a nice webpage layout you are always welcome. I am a programmer and have no real capabillity to design a nice page. 1. OVERVIEW Launchmenu is a small desktop utillity, which will make your life, as it is related to the desktop, much more easier. Initially I received a small program named RunIT from a collague at work. He gave it to me because I was annoyed that I often had to shuffle the currently opened windows around in order to reach the desktop to start a program i.e like Netscape. Of course, you can put some programs in the taskbar under MS Windows, but this will eat up screen space and shorten the taskbar for the running applications, which could be also annoying when you have a lot of tasks running. This tool had an easy to use interface. A simple dialog wheren you could add applications, complete with path and optional arguments and the runmode how to start it. When you had added all your applications, that you frequently need, the dialog is closed and no screen space is needed. When you want to start one of these application, simply move the mousecursor at the right border of the desktop and press the right mouse button. This is the default for Launchmenu, as I like this behaviour most. You can configure any border you like (read TODO on how LaunchMenu progresses) but currently LaunchMenu only supports the right border with the right mousebutton. Then a popupmenu appears with your applications and you can choose one to start it. That's it. nothing more, nothing less. The nice thing about this is, that you don't have to use any window or the like, you simply activate the menu when you need it. In case you have RunIT installed and want to use LaunchMenu instead you can use the INI file from RunIT without any changes. LaunchMenu uses the same format, except for arguments, so if you have applications configured with arguments you should probably check them once you saved the INI file back. The INI file is currently written when LaunchMenu is exited. This will be changed to save it when it is minimized, though. So why did I write this program, when there is already a program which perfectly serves my needs and looks even better? Well, the answer is simple. The original author of RunIT made it open source on his webpage. the problem with his source is, that a major part is missing, so that you can not change it and recompile it. It doesn't work after that. This part is the code which is also in LaunchMenu in the separate DLL. This code is needed in a DLL because it doesn't work under MS Windows to create a system wide hookfilter within an application. I tried to contact the author but I got no response. On his webpage the author says that he no longer supports RunIT, so I suppose he choose to answer me not because he wanted to be left alone about it. Another reason why I rewrote this tool is, because the sources of RunIT are written in a, er... ehm... most challenging, way which makes it absolutely unsuitable for porting to Linux. Since I moved now completely to Linux and use Windows only for developing and playing I naturally wanted to have this great tool also under Linux. I hope the above paragraph is not taken as if I have a grudge against the author of RunIT. I have not. Quite on the contrary I'm absolutely gratefull for this tool, since I used it for several years now and I can't live without it anymore. :) 2. DE-/INSTALLATION WINDOWS: Under MS Windows you just need to create a directory and place all the files from the binary distribution in there. Then you can start it. I also created a link in the Autostart folder so that Launchmenu is automatically started whenever MS Windows starts. When you have applications configured, they are saved in LMenu.ini either in your Windows directory or in the directory where you installed LaunchMenu. You can place the wxWindowsDLL either in the Windows\system32 directory or in the local directory where Launchmenu.exe resides. In case you have other applications you should put it in the system32 directory, though. The same applies to LaunchMenuDLL.dll. LaunchMenu doesn't need any registry keys, so if you want to delete it from your machine, you simply delete the directory where you installed it. You can check your Windows directory if the LMenu.ini file is there and also delete it. If you have no other applications that uses wxWindows then you can delete this DLL as well. LINUX: Basically the same applies to the installation under Linux. The only difference to the Windows version is, that your ini file is saved under $HOME/.LaunchMenu 3. CONFIGURATION I think the configuration is pretty obvious when you play around with the buttons, so I make it brief. Adding files: First you press the "Browse" button to select an application that you want to start. Under MS Windows, you can use any file that is registered in your Windows. This means, that you don't need to specify an EXE file, you can also specify a PDF for example. When the PDF extension is registered with an applition, then Windows will automatically select the proper application to display it. Bascially, if you can launch a file with a double-click from the Windows Explorer, you can specify it in LaunchMenu as well. When you selected the application, you can edit the title, which will be the label shown in the menu. The default is the path for the file. After you made all the changes, you wanted (Titel, Runmode, Arguments, etc.) you click "Add file" and the file appears in the listbox. Changing files: If you want to change some aspect of a file (i.e. Path, Title, arguments, etc.), then you select the entry in the listbox. All fields are populated and you can edit them. When you are finished, you press "Update" and the changes should be reflected in the listbox (only if you changed title or arguments). Ordering files: When you want to reorder the files, simply select the entry and press "Up" or "Down". The file will be moved upwards or downwards accordingly. Separators: The button "Separator" adds a separator to the menu. This entry has no function in itself, and you can only use it to visually group your files so that they are more easily to discern in the menu. Options: Currently not available Close: Currently not available. If you want to close LaunchMenu you must doubleclick the taskbaricon and then close the dialogwindow. 4. COMPILATION You need to have a version of wxWindows on your operating system. In MS Windows you just need to load the Launchmenu.dsw file, make sure the LauncheMenu project is selected and then compile either "Win32 Debug DLL" or "Win32 Release DLL". The "Debug" and "Release" projects are not configured, so you need to use wxWindows as a DLL (which is my prefered way of using it). If you want to compile a statically linked version of LaunchMenu you have to configure it yourself. This shouldn't be to hard to do. Of course I'm sure my paths will not match your system, so you may have to tweak the project file anyway, but this shouldn't be to hard. If you have problems with it, you can contact me any time via email. On Linux you also need to have the wxGTK installed and then you should be able to use the Makefile. A nicer way would be to use autoconf, but since I don't know how to handle this, I can not provide it. If you want to add autoconf support you are welcome to do it and please send me the result. This would make it much more easily portable. 5. CODE The code is written in such a way that I tried to minimze the #ifdef's for operating system dependency. Only a small part is in a separate module which should contain most of the OS dependant code. For Windows this is in the LaunchMenuDLL subproject and for Linux this is in Linux.h and Linux.cpp.