Skip to content
  • Martin Baulig's avatar
    Improved handling of distribution specific menus. · f68fc88d
    Martin Baulig authored
    2000-04-24  Martin Baulig  <baulig@suse.de>
    
    	Improved handling of distribution specific menus.
    
    	Rather than providing code for RH and Debian menus, we now
    	have some generic "distribution menu" code - all customizing
    	is done in a `DistributionInfo' array in distribution.c.
    
    	This makes it very easy for distribution vendors to add a
    	custom menu for their distribution (like the already existent
    	AnotherLevel and Debian menus) with a about-10-line-change
    	in a single source file.
    
    	* distribution.h: New file.
    	(DistributionType): Contains all possible Linux distributions.
    	(DistributionInfo): New struct type containing info about
    	distribution specific menus.
    
    	* distribution.c: New file.
    	(get_distribution): New global function; returns the current
    	Linux distribution as a `DistributionType'.
    	(get_distribution_info): New global global function; takes a
    	`DistributionType' argument and returns a `DistributionInfo *',
    	this struct contains information about distribution specific
    	menus.
    
    	* menu.h (MAIN_MENU_REDHAT): Renamed to `MAIN_MENU_DISTRIBUTION'.
    	(MAIN_MENU_REDHAT_SUB): Renamed to `MAIN_MENU_DISTRIBUTION_SUB'.
    	(MAIN_MENU_DEBIAN, MAIN_MENU_DEBIAN_SUB): Removed (replaced with
    	`MAIN_MENU_OBSOLETE_DEBIAN' and `MAIN_MENU_OBSOLETE_DEBIAN_SUB'
    	for compatibility with old config files).
    	(DEBIAN_MENUDIR): Removed.
    
    	* session.c (init_user_applets): Use the new distribution menu
    	rather than the old RH and Debian menus.
    
    	* panel.c (drop_menu): Don't check for "/etc/X11/wmconfig" etc.,
    	but use the new get_distribution () function to get the
    	current distribution.
    
    	* menu.c (init_menus): Use the new get_distribution () function
    	and run the `distribution_info->menu_init_func' hook if it
    	exists.
    	(setup_menuitem_try_pixmap): Allow the "try_file" to be NULL.
    	(create_distribution_menu): New function. This replaces the
    	old create_debian_menu () function but is now distribution
    	independent.
    	(create_debian_menu): Removed.
    	(create_root_menu): Use the new distribution menus.
    f68fc88d