diff options
-rw-r--r-- | src/Basemenu.cc | 32 | ||||
-rw-r--r-- | src/Basemenu.hh | 5 |
2 files changed, 20 insertions, 17 deletions
diff --git a/src/Basemenu.cc b/src/Basemenu.cc index 75c88a9..f804f3d 100644 --- a/src/Basemenu.cc +++ b/src/Basemenu.cc | |||
@@ -22,7 +22,7 @@ | |||
22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
23 | // DEALINGS IN THE SOFTWARE. | 23 | // DEALINGS IN THE SOFTWARE. |
24 | 24 | ||
25 | // $Id: Basemenu.cc,v 1.35 2002/11/15 14:24:59 fluxgen Exp $ | 25 | // $Id: Basemenu.cc,v 1.36 2002/11/26 16:07:29 fluxgen Exp $ |
26 | 26 | ||
27 | //use GNU extensions | 27 | //use GNU extensions |
28 | #ifndef _GNU_SOURCE | 28 | #ifndef _GNU_SOURCE |
@@ -52,7 +52,6 @@ using namespace std; | |||
52 | static Basemenu *shown = 0; | 52 | static Basemenu *shown = 0; |
53 | 53 | ||
54 | Basemenu::Basemenu(BScreen *screen): | 54 | Basemenu::Basemenu(BScreen *screen): |
55 | m_fluxbox(Fluxbox::instance()), | ||
56 | m_screen(screen), | 55 | m_screen(screen), |
57 | m_display(Fluxbox::instance()->getXDisplay()), | 56 | m_display(Fluxbox::instance()->getXDisplay()), |
58 | m_parent(0), | 57 | m_parent(0), |
@@ -116,7 +115,8 @@ m_alignment(ALIGNDONTCARE) { | |||
116 | menu.height, m_screen->getBorderWidth(), m_screen->getDepth(), | 115 | menu.height, m_screen->getBorderWidth(), m_screen->getDepth(), |
117 | InputOutput, m_screen->getVisual(), attrib_mask, &attrib); | 116 | InputOutput, m_screen->getVisual(), attrib_mask, &attrib); |
118 | 117 | ||
119 | m_fluxbox->saveMenuSearch(menu.window, this); | 118 | Fluxbox * const fluxbox = Fluxbox::instance(); |
119 | fluxbox->saveMenuSearch(menu.window, this); | ||
120 | 120 | ||
121 | //attibutes for title to menuwindow | 121 | //attibutes for title to menuwindow |
122 | attrib_mask = CWBackPixmap | CWBackPixel | CWBorderPixel | CWEventMask; | 122 | attrib_mask = CWBackPixmap | CWBackPixel | CWBorderPixel | CWEventMask; |
@@ -127,7 +127,7 @@ m_alignment(ALIGNDONTCARE) { | |||
127 | XCreateWindow(m_display, menu.window, 0, 0, menu.width, menu.height, 0, | 127 | XCreateWindow(m_display, menu.window, 0, 0, menu.width, menu.height, 0, |
128 | m_screen->getDepth(), InputOutput, m_screen->getVisual(), | 128 | m_screen->getDepth(), InputOutput, m_screen->getVisual(), |
129 | attrib_mask, &attrib); | 129 | attrib_mask, &attrib); |
130 | m_fluxbox->saveMenuSearch(menu.title, this); | 130 | fluxbox->saveMenuSearch(menu.title, this); |
131 | 131 | ||
132 | attrib.event_mask |= PointerMotionMask; | 132 | attrib.event_mask |= PointerMotionMask; |
133 | menu.frame = XCreateWindow(m_display, menu.window, 0, | 133 | menu.frame = XCreateWindow(m_display, menu.window, 0, |
@@ -135,7 +135,7 @@ m_alignment(ALIGNDONTCARE) { | |||
135 | menu.width, menu.frame_h, 0, | 135 | menu.width, menu.frame_h, 0, |
136 | m_screen->getDepth(), InputOutput, | 136 | m_screen->getDepth(), InputOutput, |
137 | m_screen->getVisual(), attrib_mask, &attrib); | 137 | m_screen->getVisual(), attrib_mask, &attrib); |
138 | m_fluxbox->saveMenuSearch(menu.frame, this); | 138 | fluxbox->saveMenuSearch(menu.frame, this); |
139 | 139 | ||
140 | } | 140 | } |
141 | 141 | ||
@@ -163,13 +163,15 @@ Basemenu::~Basemenu() { | |||
163 | if (menu.sel_pixmap) | 163 | if (menu.sel_pixmap) |
164 | m_image_ctrl->removeImage(menu.sel_pixmap); | 164 | m_image_ctrl->removeImage(menu.sel_pixmap); |
165 | 165 | ||
166 | m_fluxbox->removeMenuSearch(menu.title); | 166 | Fluxbox * fluxbox = Fluxbox::instance(); |
167 | |||
168 | fluxbox->removeMenuSearch(menu.title); | ||
167 | XDestroyWindow(m_display, menu.title); | 169 | XDestroyWindow(m_display, menu.title); |
168 | 170 | ||
169 | m_fluxbox->removeMenuSearch(menu.frame); | 171 | fluxbox->removeMenuSearch(menu.frame); |
170 | XDestroyWindow(m_display, menu.frame); | 172 | XDestroyWindow(m_display, menu.frame); |
171 | 173 | ||
172 | m_fluxbox->removeMenuSearch(menu.window); | 174 | fluxbox->removeMenuSearch(menu.window); |
173 | XDestroyWindow(m_display, menu.window); | 175 | XDestroyWindow(m_display, menu.window); |
174 | } | 176 | } |
175 | 177 | ||
@@ -782,8 +784,9 @@ void Basemenu::setItemSelected(unsigned int index, bool sel) { | |||
782 | bool Basemenu::isItemSelected(unsigned int index) const{ | 784 | bool Basemenu::isItemSelected(unsigned int index) const{ |
783 | if (index >= menuitems.size()) return false; | 785 | if (index >= menuitems.size()) return false; |
784 | 786 | ||
785 | BasemenuItem *item = find(index); | 787 | const BasemenuItem *item = find(index); |
786 | if (! item) return false; | 788 | if (!item) |
789 | return false; | ||
787 | 790 | ||
788 | return item->isSelected(); | 791 | return item->isSelected(); |
789 | } | 792 | } |
@@ -804,7 +807,8 @@ bool Basemenu::isItemEnabled(unsigned int index) const { | |||
804 | if (index >= menuitems.size()) return false; | 807 | if (index >= menuitems.size()) return false; |
805 | 808 | ||
806 | BasemenuItem *item = find(index); | 809 | BasemenuItem *item = find(index); |
807 | if (! item) return false; | 810 | if (!item) |
811 | return false; | ||
808 | 812 | ||
809 | return item->isEnabled(); | 813 | return item->isEnabled(); |
810 | } | 814 | } |
@@ -824,7 +828,7 @@ void Basemenu::buttonPressEvent(XButtonEvent *be) { | |||
824 | if (item->submenu()) | 828 | if (item->submenu()) |
825 | drawSubmenu(w); | 829 | drawSubmenu(w); |
826 | else | 830 | else |
827 | drawItem(w, (item->isEnabled()), True); | 831 | drawItem(w, (item->isEnabled()), true); |
828 | } | 832 | } |
829 | } else { | 833 | } else { |
830 | menu.x_move = be->x_root - menu.x; | 834 | menu.x_move = be->x_root - menu.x; |
@@ -843,8 +847,8 @@ void Basemenu::buttonReleaseEvent(XButtonEvent *re) { | |||
843 | } | 847 | } |
844 | 848 | ||
845 | if (re->x >= 0 && re->x <= (signed) menu.width && | 849 | if (re->x >= 0 && re->x <= (signed) menu.width && |
846 | re->y >= 0 && re->y <= (signed) menu.title_h) | 850 | re->y >= 0 && re->y <= (signed) menu.title_h && |
847 | if (re->button == 3) | 851 | re->button == 3) |
848 | hide(); | 852 | hide(); |
849 | 853 | ||
850 | } else if (re->window == menu.frame && | 854 | } else if (re->window == menu.frame && |
diff --git a/src/Basemenu.hh b/src/Basemenu.hh index 07d166f..7a94c72 100644 --- a/src/Basemenu.hh +++ b/src/Basemenu.hh | |||
@@ -22,7 +22,7 @@ | |||
22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
23 | // DEALINGS IN THE SOFTWARE. | 23 | // DEALINGS IN THE SOFTWARE. |
24 | 24 | ||
25 | // $Id: Basemenu.hh,v 1.18 2002/10/15 10:57:58 fluxgen Exp $ | 25 | // $Id: Basemenu.hh,v 1.19 2002/11/26 16:06:36 fluxgen Exp $ |
26 | 26 | ||
27 | #ifndef BASEMENU_HH | 27 | #ifndef BASEMENU_HH |
28 | #define BASEMENU_HH | 28 | #define BASEMENU_HH |
@@ -126,12 +126,11 @@ protected: | |||
126 | virtual void redrawTitle(); | 126 | virtual void redrawTitle(); |
127 | virtual void internal_hide(); | 127 | virtual void internal_hide(); |
128 | inline Basemenu *parent() { return m_parent; } | 128 | inline Basemenu *parent() { return m_parent; } |
129 | inline const Basemenu *GetParent() const { return m_parent; } | 129 | inline const Basemenu *parent() const { return m_parent; } |
130 | 130 | ||
131 | private: | 131 | private: |
132 | 132 | ||
133 | typedef std::vector<BasemenuItem *> Menuitems; | 133 | typedef std::vector<BasemenuItem *> Menuitems; |
134 | Fluxbox *m_fluxbox; //< fluxbox object, obsolete | ||
135 | BScreen *m_screen; | 134 | BScreen *m_screen; |
136 | Display *m_display; | 135 | Display *m_display; |
137 | Basemenu *m_parent; | 136 | Basemenu *m_parent; |