From b5e2d38b2fbabcf37637cd857fc70d8567978b17 Mon Sep 17 00:00:00 2001 From: Manolo Gouy Date: Tue, 16 Mar 2010 14:47:40 +0000 Subject: Have class Fl_Sys_Menu_Bar and function fl_mac_set_about appear in Doxygen doc. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7276 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- FL/Fl_Sys_Menu_Bar.H | 20 ++++++++++++++++---- FL/mac.H | 20 ++++++++++++++++++-- src/Fl_Sys_Menu_Bar.cxx | 28 +++++++++++++++------------- src/Fl_cocoa.mm | 16 ---------------- 4 files changed, 49 insertions(+), 35 deletions(-) diff --git a/FL/Fl_Sys_Menu_Bar.H b/FL/Fl_Sys_Menu_Bar.H index 79275c7a4..87a4db8e3 100644 --- a/FL/Fl_Sys_Menu_Bar.H +++ b/FL/Fl_Sys_Menu_Bar.H @@ -31,36 +31,48 @@ #include "Fl_Menu_Bar.H" #include "x.H" -#ifdef __APPLE__ +#if defined(__APPLE__) || defined(FL_DOXYGEN) +/** + @brief A class to create, modify and delete menus that appear on Mac OS X in the menu bar at the top of the screen. + * + * On other than Mac OS X platforms, Fl_Sys_Menu_Bar is a synonym of class Fl_Menu_Bar. + */ class FL_EXPORT Fl_Sys_Menu_Bar : public Fl_Menu_Bar { protected: void draw(); public: + /** + @brief The constructor. + * + * On Mac OS X, all arguments are unused. On other platforms they are used as by Fl_Menu_Bar::Fl_Menu_Bar(). + */ Fl_Sys_Menu_Bar(int x,int y,int w,int h,const char *l=0) : Fl_Menu_Bar(x,y,w,h,l) { deactivate(); // don't let the old area take events fl_sys_menu_bar = this; } void menu(const Fl_Menu_Item *m); -#ifdef __APPLE_COCOA__ +#if defined(__APPLE_COCOA__) || defined(FL_DOXYGEN) int add(const char* label, int shortcut, Fl_Callback*, void *user_data=0, int flags=0); void remove(int n); void replace(int rank, const char *name); +#if ! defined(FL_DOXYGEN) enum menuOrItemOperation { itemAtIndex, setKeyEquivalent, setKeyEquivalentModifierMask, setState, initWithTitle, numberOfItems, setSubmenu, setEnabled, addSeparatorItem, setTitle, removeItem, addNewItem, renameItem }; // function doMenuOrItemOperation is in file Fl_cocoa.mm because it contains objective-c code static void *doMenuOrItemOperation( menuOrItemOperation operation, ...); #endif +#endif }; #else typedef Fl_Menu_Bar Fl_Sys_Menu_Bar; -#endif +#endif // defined(__APPLE__) || defined(FL_DOXYGEN) -#endif +#endif // Fl_Sys_Menu_Bar_H // // End of "$Id$". diff --git a/FL/mac.H b/FL/mac.H index 05366c23a..6b204db2c 100644 --- a/FL/mac.H +++ b/FL/mac.H @@ -161,7 +161,6 @@ extern void MacUnmapWindow(Fl_Window*,void *); extern WindowRef MACwindowRef(Fl_Window *w); extern Fl_Region MacRectRegionIntersect(Fl_Region current, int x,int y,int w, int h); extern void MacCollapseWindow(Window w); -extern void fl_mac_set_about( Fl_Callback *cb, void *user_data, int shortcut = 0); #else extern void MacDestroyWindow(Fl_Window*,WindowPtr); extern void MacMapWindow(Fl_Window*,WindowPtr); @@ -169,7 +168,6 @@ extern void MacUnmapWindow(Fl_Window*,WindowPtr); #endif extern int MacUnlinkWindow(Fl_X*,Fl_X*start=0L); -extern void fl_open_callback(void (*cb)(const char *)); inline Window fl_xid(const Fl_Window*w) { @@ -205,6 +203,24 @@ extern void fl_open_callback(void (*cb)(const char *)); extern FL_EXPORT int fl_parse_color(const char* p, uchar& r, uchar& g, uchar& b); #endif // FL_DOXYGEN + +#if defined(__APPLE_COCOA__) || defined(FL_DOXYGEN) +/** \defgroup group_macosx Mac OS X-specific functions + @{ */ + +/** + * \brief Mac OS X: attaches a callback to the "About myprog" item of the system application menu. + * \note #include + * + * \param cb a callback that will be called by "About myprog" menu item + * with NULL 1st argument. + * \param user_data a pointer transmitted as 2nd argument to the callback. + * \param shortcut optional shortcut to attach to the "About myprog" menu item (e.g., FL_META+'a') + */ +extern void fl_mac_set_about( Fl_Callback *cb, void *user_data, int shortcut = 0); +/** @} */ +#endif + // // End of "$Id$". // diff --git a/src/Fl_Sys_Menu_Bar.cxx b/src/Fl_Sys_Menu_Bar.cxx index 48920ef83..515f724eb 100644 --- a/src/Fl_Sys_Menu_Bar.cxx +++ b/src/Fl_Sys_Menu_Bar.cxx @@ -42,7 +42,7 @@ * - Shortcut Characters should be English alphanumeric only, no modifiers yet * - no disable main menus * - changes to menubar in run-time don't update! - * (disable, etc. - toggle and readio button do!) + * (disable, etc. - toggle and radio button do!) * * No care was taken to clean up the menu bar after destruction! * ::menu(bar) should only be called once! @@ -52,7 +52,7 @@ * a bundle for the System Menu Bar (and maybe other features) to work! */ -#if defined(__APPLE__) +#if defined(__APPLE__) || defined(FL_DOXYGEN) #include #include @@ -69,7 +69,7 @@ typedef const Fl_Menu_Item *pFl_Menu_Item; -/** +/* * copy the text of a menuitem into a buffer. * Skip all '&' which would mark the shortcut in FLTK * Skip all Mac control characters ('(', '<', ';', '^', '!' ) @@ -91,7 +91,7 @@ typedef const Fl_Menu_Item *pFl_Menu_Item; *dst = 0; } -/** +/* * append a marker to identify the menu font style * - * - * \author Manolo Gouy - * - * \param[in] cb a callback that will be called by "About myprog" menu item - * with NULL 1st argument. - * \param[in] user_data a pointer transmitted as 2nd argument to the callback. - * \param[in] shortcut optional shortcut to attach to the "About myprog" menu item (e.g., FL_META+'a') - */ void fl_mac_set_about( Fl_Callback *cb, void *user_data, int shortcut) { NSAutoreleasePool *localPool; -- cgit v1.2.3