Motosu 0.95-beta

Motosu is a taskbar that also offers a start menu and acts as a DHST-server.
The program is still in beta and so there are (naturally) some things that are planned/possible but not present.

For example:

Motosu does not yet offer a way to configure icon associations. I intend to change that of course.
Motosu does not yet offer a way to autostart programs based on the start menu. That might change.
Motosu does not do a lot of other things that it in theory could be doing.

Motosu is also doing some things that is offering something new to the table. Stuff like the possibility to
anchor tabs to the taskbar, the resorting of the TAB order as well as the Tray panel which sets out to offer
a way to display application data in a dedicated place. Applications can also change their own icon in realtime.
There is an API in place for this and the details for it will be released when things have been tested a bit
more thoroughly - something that a first public beta will hopefully make possible.

Further things that may be nice to play with is the support for 48px icons as well as being able to use
PNG icons with realtime transparency - the latter probably useful mostly if you have a CT60 or a V4SA.



Credits:
===============================================================================================================
Lonny Pursell		For taking GFABASIC into the future with his excellent GBE3.74 which really is a
			true testament to his skill and dedication for the coding language and this community.
			Furthermore, the addition of his image plugins + thingimg-module has added a whole new
			set of tools to mine and other coders arsenal. It is just awesome, awesome stuff.
			He has also supplied tireless support for GFABASIC when my skills or memory failed me.

Peter Persson		For his efforts and support for the EmuTOS adaptation for the V4SA.
			Also, for acting a sounding board for my brainstorming stages.


Mikro			For continued support of the Atari platform and bringing back much needed focus on
			bug fixing and cleaning up XaAES.


Thanks to the following for encouraging, sending feedback, suggestions and reporting issues:

Jiri Petrzelka, JF Lemaire, Swe, Vido, Kroll, cb, agranlund, micken



Start tab: (start button)
===============================================================================================================
Left double click + ALT =	Toggle mode of all tabs (text/icon/text+icon)
Left click + RSHIFT	=	Reload/rebuild start menu, default GRP file
Right click + RSHIFT	=	Reload/rebuild start menu, opens file selector to decide GRP file

Left click		= 	Opens that Start menu, and adds the following entries at the bottom:

				-System			-> Submenu with shortcuts to important sysfiles

				-Recent documents	-> Submenu with latest used files (DHST protocol)
								* left click opens the file through AV-SERVER
								* ctrl+left click deletes the DHST entry

				-Search			-> If $FINDER is set, the associated app is started

				NOTE: For any link to a file in the Start menu or System menu, you can hold
				down CTRL while clickning it to instead open a desktop window for the path. 



Right click		=	Opens up a popup menu:


				-Tab			-> Opens submenu with options to control tab visuals

						*Configure icon		opens icon config utility

						*Normal			set tab display mode to icon+text

						*Folded			set tab display mode to icon

						*Stripped		set tab display mode to text


				-Motosu			-> Opens submenu with


						*About			Program info, version, author, etc

						*Preferences		Not implemented - however...
							   		Currently, it opens up a font selector

				-Taskbar		-> Opens submenu with options to tweak the taskbar:

						*Taskbar height
							+Compact mode (uses 16x16 icons)
							+Classic mode (uses 16x16 icons)
							+Expanded mode (uses 32x32 icons)
							+Oversize mode (uses 48x48 icons)
icons)
						*Background
							+Use Thing deskpic
							 (Will echo Thing background gfx as texture, creating 
							 a transparency effect)

								Requirements:	NVDI 5.03 (exactly that)
										Lp's image modules
										Thing desktop, $THINGDIR set

							+Invert highlighting
							 (useful when trying different background images)

						*Colour themes
							+Dark text
							 (works well with eg. "AES-grey" background)
							+Bright text
							 (works well with dark backgrounds)
							+Colour by proc type
							 (separate colours for acc/app/desk + start button)

						*Window options
							+Floating (window is "Always on top")
							 (Note: floating needs XaAES/MyAES)
							+Normal (standard GEM window)

							+Auto hide
							 (Automatically hides taskbar)


						*Show scope	Display the scope tab on taskbar


				-Start menu	-> Opens submenu with options to tweak things related to this tab

						*Select GRP-file	Select GRP-file and rebuild start menu


						*Rebuild current	Reload GRP-file and rebuild start menu



				-Save config	-> Saves the config file with current settings.

				-Shutdown	-> If $SDMASTER is set the specified app is launched, else
						   a generic menu is offering to Power off/Reboot/Cancel.

				-Quit		-> The app is terminated.



Scope tab:
===============================================================================================================

Left click		=	Clears/restores all GEM windows
Left click + CTRL	=	Clears/restores all GEM windows, but excludes windows belonging to desktop

(Note: This behaviour can be inverted through a config setting. This setting is not yet present in the GUI)

Left click + SHIFT	=	Allows resorting the TAB order
				While holding mouse button, drag the tab to the desired location

Right click		=	Opens up a popup menu that has 3 sections: (where applicable)

				1) Hidden tray objects	(tray objects hidden from the tray panel)
				-Select		 (this equals a click on the, now hidden, tray object)
				-Quit		 (tell parent app of the object to remove tray object)
				-Show on panel	 (make the tray object show up in tray panel again)

				2) Hidden processes	(programs hidden from the taskbar)
				-Select		 (bring app to front - or start it, if it is an anchored tab)
				-Quit		 (quit the app - or close it, unless it is an anchored tab)
				-Show on taskbar (make the tab show up on taskbar again)

				3) Tab		(Opens submenu with options to control tab visuals)

					*Configure icon		opens icon config utility
					*Normal			set tab display mode to icon+text
					*Folded			set tab display mode to icon
					*Stripped		set tab display mode to text

				4) A set of "shortcuts" to control groups of windows, as follows:

				- Hide all	 (does what is says, hides all GEM windows)
				- Show all	 (does the opposite of the above..)
				- Show desktop	 (shows all windows belonging to AVSERVER, others are hidden)



Process tabs:
===============================================================================================================

Left click + ALT	=	Folds/unfolds a tab component
				(Click on TAB TEXT to fold/unfold the TAB ICON - click on TAB ICON to fold/unfold the TAB TEXT)

Left click		=	Tops the application if already running (if already topped, it will be hidden)
				If the application is not yet running (persistent tab) it will be started

Left click + SHIFT	=	Allows resorting the TAB order
				While holding mouse button, drag the tab to the desired location


Right click		=	Open a popup menu with options to control features for the tab and the
				associated process:

				- Tab
					* Configuire icon
					* Normal (display icon+text)
					* Folded (display icon)
					* Stripped (display text)
					* Hide from taskbar (hides this program TAB from taskbar)
					* Anchor tab (tab becomes persistent)

				- Process
					* Launch program (if anchored, not running), else show memory footprint
					* Shortcut to workdir of process
					* Kill (Terminate the process with brute force)

				- Menu (Aware apps can install context menu here through custom API)
				- Window (Submenu with access to the app's GEM windows)

				- Quit (Terminate the process nicely through AP_TERM)
				  (If AVSERVER is targetted, a "Really want to quit?" alert is shown)

				- Hide others (Hide all processes except this one)
				- Hide (Hide only this process)
				- Show (Show/top. Might be redundant)



Paths:

	Motosu will look for the INDEX.GRP file in these locations, and in this order:

	$HOME/motosu/
	$HOME/
	$THINGDIR/
	Workdir of app

	The configuration will be stored in this location:

	$HOME/motosu/ (Motosu's workdir will be used as a fallback if $HOME is not set/available)

NOTE: Several files and subdirectories may be created under $HOME/motosu/

	motosu.inf		=	Configuration file
	dhst.dat		=	Data file for maintaining the DHST functionality
	/cache			=	Used for caching of icons, and caching of background texture

	NOTE: If using the feature to anchor tabs to the taskbar, every persistent tab will result in a new
	subdirectory showing up in this path.





