[go: up one dir, main page]

Menu

Tree [r1] / launchmenu /
 History

HTTPS access


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]

Read Me

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.