This commit is contained in:
fluxgen 2002-11-14 00:15:10 +00:00
parent eefec42311
commit cade394b91

View file

@ -25,85 +25,81 @@
#ifndef SLIT_HH #ifndef SLIT_HH
#define SLIT_HH #define SLIT_HH
#include "Basemenu.hh"
#include <X11/Xlib.h> #include <X11/Xlib.h>
#include <X11/Xutil.h> #include <X11/Xutil.h>
// forward declaration
class Slit;
class Slitmenu;
#include "Basemenu.hh"
#include <list> #include <list>
#include <string> #include <string>
#include <memory>
// forward declaration
class Slit;
class Slitmenu : public Basemenu { class Slitmenu : public Basemenu {
public: public:
explicit Slitmenu(Slit &theslist); explicit Slitmenu(Slit &theslist);
virtual ~Slitmenu(); virtual ~Slitmenu();
inline Basemenu *getDirectionmenu() { return directionmenu; } const Basemenu &getDirectionmenu() const { return m_directionmenu; }
inline Basemenu *getPlacementmenu() { return placementmenu; } const Basemenu &getPlacementmenu() const { return m_placementmenu; }
#ifdef XINERAMA #ifdef XINERAMA
inline Basemenu *getHeadmenu() { return headmenu; } const Basemenu *getHeadmenu() const { return m_headmenu.get(); }
#endif // XINERAMA #endif // XINERAMA
void reconfigure(); void reconfigure();
protected:
virtual void itemSelected(int button, unsigned int index);
virtual void internal_hide();
private: private:
class Directionmenu : public Basemenu { class Directionmenu : public Basemenu {
private: public:
Slitmenu *slitmenu; Directionmenu(Slitmenu &sm);
protected: protected:
virtual void itemSelected(int button, unsigned int index); virtual void itemSelected(int button, unsigned int index);
public: private:
Directionmenu(Slitmenu *); Slitmenu &slitmenu;
}; };
class Placementmenu : public Basemenu { class Placementmenu : public Basemenu {
private: public:
Slitmenu *slitmenu; Placementmenu(Slitmenu &sm);
protected: protected:
virtual void itemSelected(int button, unsigned int index); virtual void itemSelected(int button, unsigned int index);
public: private:
Placementmenu(Slitmenu *); Slitmenu &slitmenu;
}; };
Slit &slit;
#ifdef XINERAMA #ifdef XINERAMA
class Headmenu : public Basemenu { class Headmenu : public Basemenu {
public: public:
Headmenu(Slitmenu *); Headmenu(Slitmenu &sm);
private:
Slitmenu *slitmenu;
protected: protected:
virtual void itemSelected(int button, unsigned int index); virtual void itemSelected(int button, unsigned int index);
private:
Slitmenu &slitmenu;
}; };
friend class Headmenu;
std::auto_ptr<Headmenu> m_headmenu;
#endif // XINERAMA #endif // XINERAMA
Directionmenu *directionmenu; Placementmenu m_placementmenu;
Placementmenu *placementmenu; Directionmenu m_directionmenu;
#ifdef XINERAMA
Headmenu *headmenu;
#endif // XINERAMA
Slit &slit;
friend class Directionmenu; friend class Directionmenu;
friend class Placementmenu; friend class Placementmenu;
#ifdef XINERAMA
friend class Headmenu;
#endif // XINERAMA
friend class Slit;
protected:
virtual void itemSelected(int button, unsigned int index);
virtual void internal_hide();
}; };
@ -125,14 +121,16 @@ public:
inline unsigned int width() const { return frame.width; } inline unsigned int width() const { return frame.width; }
inline unsigned int height() const { return frame.height; } inline unsigned int height() const { return frame.height; }
void setOnTop(bool val);
void setAutoHide(bool val);
void addClient(Window clientwin); void addClient(Window clientwin);
void removeClient(Window clientwin, bool = true); void removeClient(Window clientwin, bool = true);
void reconfigure(); void reconfigure();
void reposition(); void reposition();
void shutdown(); void shutdown();
void saveClientList(); void saveClientList();
BScreen *screen() { return m_screen; }
const BScreen *screen() const { return m_screen; }
/** /**
@name eventhandlers @name eventhandlers
*/ */
@ -182,10 +180,7 @@ private:
bool on_top, hidden, do_auto_hide; bool on_top, hidden, do_auto_hide;
Display *display; ///< display connection BScreen *m_screen;
Fluxbox *fluxbox; ///< obsolete
BScreen *screen;
BTimer timer; BTimer timer;
typedef std::list<SlitClient *> SlitClients; typedef std::list<SlitClient *> SlitClients;
@ -202,12 +197,6 @@ private:
unsigned int width, height; unsigned int width, height;
} frame; } frame;
friend class Slitmenu;
friend class Slitmenu::Directionmenu;
friend class Slitmenu::Placementmenu;
#ifdef XINERAMA
friend class Slitmenu::Headmenu;
#endif // XINERAMA
}; };