diff options
| author | Manolo Gouy <Manolo> | 2017-12-05 16:05:35 +0000 |
|---|---|---|
| committer | Manolo Gouy <Manolo> | 2017-12-05 16:05:35 +0000 |
| commit | 0a26b0dd68ba2001d181309a40391dbbd5462852 (patch) | |
| tree | e649488644e87bfc1ea1359e8775455d39acbe48 | |
| parent | 82312ed61b97b150da257b35373b98db6d60d7b5 (diff) | |
Some code simplification for class Fl_Sys_Menu_Bar
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12581 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
| -rw-r--r-- | FL/Fl_Sys_Menu_Bar.H | 2 | ||||
| -rw-r--r-- | src/Fl_MacOS_Sys_Menu_Bar.mm | 12 | ||||
| -rw-r--r-- | src/Fl_Sys_Menu_Bar.cxx | 34 |
3 files changed, 22 insertions, 26 deletions
diff --git a/FL/Fl_Sys_Menu_Bar.H b/FL/Fl_Sys_Menu_Bar.H index 31bcb3cc7..eb2235e81 100644 --- a/FL/Fl_Sys_Menu_Bar.H +++ b/FL/Fl_Sys_Menu_Bar.H @@ -49,7 +49,7 @@ protected: public: Fl_Sys_Menu_Bar(int x,int y,int w,int h,const char *l=0); virtual ~Fl_Sys_Menu_Bar(); - Fl_Sys_Menu_Bar_Driver *driver(); + static Fl_Sys_Menu_Bar_Driver *driver(); /** Return the system menu's array of Fl_Menu_Item's */ const Fl_Menu_Item *menu() const {return Fl_Menu_::menu();} diff --git a/src/Fl_MacOS_Sys_Menu_Bar.mm b/src/Fl_MacOS_Sys_Menu_Bar.mm index 93182d36f..4d1799812 100644 --- a/src/Fl_MacOS_Sys_Menu_Bar.mm +++ b/src/Fl_MacOS_Sys_Menu_Bar.mm @@ -25,13 +25,13 @@ Fl_MacOS_Sys_Menu_Bar_Driver* Fl_MacOS_Sys_Menu_Bar_Driver::new_driver() { static Fl_MacOS_Sys_Menu_Bar_Driver *once = new Fl_MacOS_Sys_Menu_Bar_Driver(); - if (Fl_Sys_Menu_Bar_Driver::driver_ != once) { - if (Fl_Sys_Menu_Bar_Driver::driver_) { - once->bar = Fl_Sys_Menu_Bar_Driver::driver_->bar; - delete Fl_Sys_Menu_Bar_Driver::driver_; + if (driver_ != once) { + if (driver_) { + once->bar = driver_->bar; + delete driver_; } - Fl_Sys_Menu_Bar_Driver::driver_ = once; - if (Fl_Sys_Menu_Bar_Driver::driver_->bar) Fl_Sys_Menu_Bar_Driver::driver_->bar->update(); + driver_ = once; + if (driver_->bar) driver_->update(); } return once; } diff --git a/src/Fl_Sys_Menu_Bar.cxx b/src/Fl_Sys_Menu_Bar.cxx index 71613dd0b..044b85b1b 100644 --- a/src/Fl_Sys_Menu_Bar.cxx +++ b/src/Fl_Sys_Menu_Bar.cxx @@ -23,21 +23,6 @@ Fl_Sys_Menu_Bar *fl_sys_menu_bar = 0; -// initialize this static variable if it was not initialized previously -Fl_Sys_Menu_Bar_Driver* Fl_Sys_Menu_Bar_Driver::new_driver() { - if (!driver_) { // initialize this static variable if it was not initialized previously - static Fl_Sys_Menu_Bar_Driver *once = new Fl_Sys_Menu_Bar_Driver(); - driver_ = once; - } - return driver_; -} - -inline Fl_Sys_Menu_Bar_Driver *Fl_Sys_Menu_Bar::driver() { - return Fl_Sys_Menu_Bar_Driver::new_driver(); -} - -Fl_Sys_Menu_Bar_Driver *Fl_Sys_Menu_Bar_Driver::driver_ = Fl_Sys_Menu_Bar_Driver::new_driver(); - /** The constructor. On Mac OS X, all arguments are unused. On other platforms they are used as by Fl_Menu_Bar::Fl_Menu_Bar(). @@ -57,10 +42,6 @@ Fl_Sys_Menu_Bar::~Fl_Sys_Menu_Bar() clear(); } -Fl_Sys_Menu_Bar_Driver::Fl_Sys_Menu_Bar_Driver() {bar = NULL;} - -Fl_Sys_Menu_Bar_Driver::~Fl_Sys_Menu_Bar_Driver() {} - void Fl_Sys_Menu_Bar::update() { driver()->update(); } @@ -192,6 +173,21 @@ void Fl_Sys_Menu_Bar::draw() { driver()->draw(); } +#if !defined(FL_DOXYGEN) +Fl_Sys_Menu_Bar_Driver *Fl_Sys_Menu_Bar::driver() { + if (!Fl_Sys_Menu_Bar_Driver::driver_) { // initialize this static variable if it was not initialized previously + Fl_Sys_Menu_Bar_Driver::driver_ = new Fl_Sys_Menu_Bar_Driver(); + } + return Fl_Sys_Menu_Bar_Driver::driver_; +} + +Fl_Sys_Menu_Bar_Driver *Fl_Sys_Menu_Bar_Driver::driver_ = Fl_Sys_Menu_Bar::driver(); + +Fl_Sys_Menu_Bar_Driver::Fl_Sys_Menu_Bar_Driver() {bar = NULL;} + +Fl_Sys_Menu_Bar_Driver::~Fl_Sys_Menu_Bar_Driver() {} +#endif // !defined(FL_DOXYGEN) + // // End of "$Id$". // |
