summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManolo Gouy <Manolo>2017-12-05 16:05:35 +0000
committerManolo Gouy <Manolo>2017-12-05 16:05:35 +0000
commit0a26b0dd68ba2001d181309a40391dbbd5462852 (patch)
treee649488644e87bfc1ea1359e8775455d39acbe48
parent82312ed61b97b150da257b35373b98db6d60d7b5 (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.H2
-rw-r--r--src/Fl_MacOS_Sys_Menu_Bar.mm12
-rw-r--r--src/Fl_Sys_Menu_Bar.cxx34
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$".
//