• Immutable Page
  • Info
  • Attachments

BaseSwitcher

class BaseSwitchScreen
{
    public:
        BaseSwitchScreen (CompScreen *screen);
        virtual ~BaseSwitchScreen () {}

        void handleEvent (XEvent *);
        void setSelectedWindowHint ();
        void activateEvent (bool activating);
        void updateForegroundColor ();

        CompWindow *switchToWindow (bool toNext, bool autoChangeVPOption);
        static bool compareWindows (CompWindow *w1, CompWindow *w2);
        static Visual *findArgbVisual (Display *dpy, int scr);

        virtual void windowRemove (CompWindow *w) {}
        virtual void doWindowDamage (CompWindow *w);
        virtual void handleSelectionChange (bool toNext, int nextIdx) {}
        virtual void getMinimizedAndMatch (bool &minimizedOption,
                                           CompMatch *&matchOption);
        virtual bool getMipmap () { return false; }

        CompositeScreen *cScreen;
        GLScreen        *gScreen;

        PropertyWriter selectWinAtom;
        Atom           selectFgColorAtom;

        CountedList<CompWindow*> windows;

        Window       popupWindow;
        CompWindow   *selectedWindow;
        unsigned int lastActiveNum;

        CompScreen::GrabHandle grabIndex;

        bool moreAdjust;

        SwitchWindowSelection selection;

        unsigned int fgColor[4];

        bool ignoreSwitcher;
};

class BaseSwitchWindow
{
    public:
        enum IconMode {
            HideIcon,       /* show thumbnail, but hide icon */
            ShowIcon,       /* show thumbnail and icon */
            ShowIconOnly    /* show only icon */
        };

        BaseSwitchWindow (BaseSwitchScreen *, CompWindow *);

        void paintThumb (const GLWindowPaintAttrib &attrib,
                         const GLMatrix            &transform,
                         unsigned int              mask,
                         int                       x,
                         int                       y,
                         int                       width1,
                         int                       height1,
                         int                       width2,
                         int                       height2);
        virtual void updateIconTexturedWindow (GLWindowPaintAttrib  &sAttrib,
                                               int                  &wx,
                                               int                  &wy,
                                               int                  x,
                                               int                  y,
                                               GLTexture            *icon) {}
        virtual void updateIconNontexturedWindow (GLWindowPaintAttrib  &sAttrib,
                                                  int                  &wx,
                                                  int                  &wy,
                                                  float                &width,
                                                  float                &height,
                                                  int                  x,
                                                  int                  y,
                                                  GLTexture            *icon) {}
        virtual IconMode getIconMode () { return HideIcon; }
        virtual void updateIconPos (int   &wx,
                                    int   &wy,
                                    int   x,
                                    int   y,
                                    float width,
                                    float height) {}
        bool damageRect (bool, const CompRect &);
        bool isSwitchWin (bool removing = false);

        BaseSwitchScreen *baseScreen;
        GLWindow         *gWindow;
        CompositeWindow  *cWindow;
        GLScreen         *gScreen;
        CompWindow       *window;
};

Development/zero-nine/PluginClasses/CompizToolbox/BaseSwitcher (last edited 2010-10-03 16:05:36 by 124-169-58-87)