#ifndef GNOME_PANEL_IDL
#define GNOME_PANEL_IDL

#include <Bonobo_Unknown.idl>

/*
 * FIXME:
 *   none of the StatusSpot related interfaces
 *   are implemented at the moment. Figure out
 *   what needs to be done.
 */

module GNOME {
 module Vertigo {

	/*
	 * The panel's orientation.
	 */
	typedef unsigned short PanelOrient;

	const PanelOrient PANEL_ORIENT_UP    = 0;
	const PanelOrient PANEL_ORIENT_DOWN  = 1;
	const PanelOrient PANEL_ORIENT_LEFT  = 2;
	const PanelOrient PANEL_ORIENT_RIGHT = 3;
	
	/*
	 * The panel's width or height, depending
	 * on its orientation.
	 */
	typedef unsigned short PanelSize;

	const PanelSize PANEL_XX_SMALL = 12;
	const PanelSize PANEL_X_SMALL  = 24;
	const PanelSize PANEL_SMALL    = 36;
	const PanelSize PANEL_MEDIUM   = 48;
	const PanelSize PANEL_LARGE    = 64;
	const PanelSize PANEL_X_LARGE  = 80;
	const PanelSize PANEL_XX_LARGE = 128;

	/*
	 * GNOME::PanelBackground Format:
	 *    o "none:" - no background.
	 *    o "colour:#xxxxxx' - rgb colour value.
	 *    o "pixmap:XID,x,y" - the pixmap XID, and the applets offsets into
	 *                         that pixmap.
	 */
	typedef string PanelBackground;


	interface StatusSpot;

	interface PanelShell : Bonobo::Unknown {

		/*
		 * GNOME::PanelShell::displayRunDialog
		 * @initialString: string to display in dialog.
		 *
		 * Instructs the Panel to display the GNOME 'run'
		 * dialog box.
		 */
		void displayRunDialog (in string initialString);

		StatusSpot add_status (out unsigned long winid);
	};

	interface StatusSpot {
                oneway void remove ();
        };

	interface PanelAppletShell : Bonobo::Unknown {
	};

 };
};

#endif /* GNOME_PANEL_IDL */
