/*
 * $Id$
 *
 * Eiconman, desktop and icon manager
 * Part of Equinox Desktop Environment (EDE).
 * Copyright (c) 2000-2007 EDE Authors.
 *
 * This program is licensed under terms of the 
 * GNU General Public License version 2 or newer.
 * See COPYING for details.
 */

#ifndef __NOTIFYBOX_H__
#define __NOTIFYBOX_H__

#include <FL/Fl_Box.h>
#include <FL/Fl_Window.h>

class NotifyBox : public Fl_Window {
	private:
		bool is_shown;
		int lwidth, lheight;
		int area_w, area_h;
		Fl_Box* txt_box;
		void update_label_size(void);
		void resize_all(void);

	public:
		NotifyBox(int aw, int ah);
		~NotifyBox();

		virtual void show(void);
		virtual void hide(void);
		bool shown(void) { return is_shown; }

		const char* label(void);
		void label(const char* l);
		void copy_label(const char* l);

		static void animate_cb(void* b) { ((NotifyBox*)b)->animate(); }
		void animate(void);

		static void visible_timeout_cb(void* b) { ((NotifyBox*)b)->visible_timeout(); }
		void visible_timeout(void);
};

#endif
