Česky
Kamil Dudka

GED 2006 (C++)

File detail

Name:Downloadmenu.h [Download]
Location: ged2006 > src
Size:2.1 KB
Last modification:2007-08-29 02:16

Source code

/*
 * File: menu.h - Menu classes
 * Project: GED - bitmap editor (ICP)
 * Author: Kamil Dudka, xdudka00
 * Team: xdudka00, xfilak01, xhefka00, xhradi08
 * Created: 2006-04-08
 */
 
#ifndef MENU_H
#define MENU_H
 
#include <FL/Fl_Menu_Bar.H>
#include <FL/Fl_Help_Dialog.H>
 
#include "framebuffer.h"
 
class DocWnd;
 
/**
 * Document window menu bar
 */
class DocMenu: public Fl_Menu_Bar {
public:
	/**
	 * Create document window menu bar.
	 * \param pDoc Pointer do document window.
	 * \param at Position of menu bar.
	 * \param size Size of menu bar.
	 */
	DocMenu (DocWnd *pDoc, const Point &at, const BoxSize &size);
	~DocMenu ();
 
	/**
	 * Enable/disable menu items.
	 * \param img Reference to Image object to obtain requested information.
	 */
	void menuInit (Image &img);
 
	void macLoad ();	///< Needed for menu callback.
	void macStop ();	///< Needed for menu callback.
 
private:
	DocWnd *_doc;		///< Pointer to document window.
	int _iSave;		///< File/Save menu item
	int _iUndo;		///< Edit/Undo menu item
	int _iRedo;		///< Edit/Redo menu item
	int _iLoad;		///< Macro/Load menuitem
	int _iStop;		///< Macro/Create... menu item
};
 
/**
 * Application window menu bar
 */
class AppMenu: public Fl_Menu_Bar {
public:
	/**
	 * Create application window menu bar.
	 * \param at Position of menu bar.
	 * \param size Size of menu bar.
	 */
	AppMenu (const Point &at, const BoxSize &size);
	~AppMenu ();
 
	/**
	 * Enable/disable "File/Close all" item.
	 * \param enable Give true to enable item, false to disable.
	 */
	void enableCloseAll (bool enable);
 
private:
	int _iCloseAll;		///< "File/Close all" menu item
};
 
/**
 * Help browser. Design pattern singleton.
 */
class HelpBrowser: public Fl_Help_Dialog {
public:
	~HelpBrowser ();
 
	/**
	 * Access point to HelpBrowser singleton.
	 * \return Return pointer to sigleton.
	 */
	static HelpBrowser *ptr ();
 
	/**
	 * Close help browser if opened.
	 */
	static void close ();
 
protected:
	/**
	 * HelpBrowser can't be allocated static. Use HelpBrowser::ptr() method to obtain singleton address.
	 */
	HelpBrowser () { }
 
private:
	static HelpBrowser *_instance;
};
 
#endif // MENU_H