예제 #1
0
FireScreen::FireScreen (CompScreen *screen) :
    PluginClassHandler <FireScreen, CompScreen> (screen),
    cScreen (CompositeScreen::get (screen)),
    gScreen (GLScreen::get (screen)),
    init (true),
    brightness (1.0),
    grabIndex (0)
{
    ScreenInterface::setHandler (screen, false);
    CompositeScreenInterface::setHandler (cScreen, false);
    GLScreenInterface::setHandler (gScreen, false);

    optionSetInitiateKeyInitiate (boost::bind (&FireScreen::initiate, this, _1,
						_2, _3));
    optionSetInitiateButtonInitiate (boost::bind (&FireScreen::initiate, this,
						   _1, _2, _3));
    optionSetInitiateKeyTerminate (boost::bind (&FireScreen::terminate, this,
						 _1, _2, _3));
    optionSetInitiateButtonTerminate (boost::bind (&FireScreen::terminate, this,
						   _1, _2, _3));

    optionSetClearKeyInitiate (boost::bind (&FireScreen::clear, this, _1, _2,
					    _3));
    optionSetClearButtonInitiate (boost::bind (&FireScreen::clear, this, _1, _2,
					       _3));

    optionSetAddParticleInitiate (boost::bind (&FireScreen::addParticle, this,
						_1, _2, _3));
}
예제 #2
0
ResizeScreen::ResizeScreen (CompScreen *s) :
    PluginClassHandler<ResizeScreen,CompScreen> (s),
    gScreen (GLScreen::get (s))
{
    logic.mScreen = new resize::CompScreenImpl (screen);
    logic.cScreen = resize::CompositeScreenImpl::wrap (CompositeScreen::get (s));
    logic.gScreen = resize::GLScreenImpl::wrap (gScreen);
    logic.options = this;

    CompOption::Vector atomTemplate;
    Display *dpy = s->dpy ();
    ResizeOptions::ChangeNotify notify =
	       boost::bind (&ResizeScreen::optionChanged, this, _1, _2);

    atomTemplate.resize (4);

    for (int i = 0; i < 4; i++)
    {
	char buf[4];
	snprintf (buf, 4, "%i", i);
	CompString tmpName (buf);

	atomTemplate.at (i).setName (tmpName, CompOption::TypeInt);
    }

    logic.resizeNotifyAtom = XInternAtom (s->dpy (), "_COMPIZ_RESIZE_NOTIFY", 0);

    logic.resizeInformationAtom = new resize::PropertyWriterImpl (
	    new PropertyWriter ("_COMPIZ_RESIZE_INFORMATION",
				atomTemplate));

    for (unsigned int i = 0; i < NUM_KEYS; i++)
	logic.key[i] = XKeysymToKeycode (s->dpy (), XStringToKeysym (logic.rKeys[i].name));

    logic.leftCursor      = XCreateFontCursor (dpy, XC_left_side);
    logic.rightCursor     = XCreateFontCursor (dpy, XC_right_side);
    logic.upCursor        = XCreateFontCursor (dpy, XC_top_side);
    logic.upLeftCursor    = XCreateFontCursor (dpy, XC_top_left_corner);
    logic.upRightCursor   = XCreateFontCursor (dpy, XC_top_right_corner);
    logic.downCursor      = XCreateFontCursor (dpy, XC_bottom_side);
    logic.downLeftCursor  = XCreateFontCursor (dpy, XC_bottom_left_corner);
    logic.downRightCursor = XCreateFontCursor (dpy, XC_bottom_right_corner);
    logic.middleCursor    = XCreateFontCursor (dpy, XC_fleur);

    logic.cursor[0] = logic.leftCursor;
    logic.cursor[1] = logic.rightCursor;
    logic.cursor[2] = logic.upCursor;
    logic.cursor[3] = logic.downCursor;

    optionSetInitiateKeyInitiate (resizeInitiateDefaultMode);
    optionSetInitiateKeyTerminate (resizeTerminate);
    optionSetInitiateButtonInitiate (resizeInitiateDefaultMode);
    optionSetInitiateButtonTerminate (resizeTerminate);

    optionSetOutlineModifierNotify (notify);
    optionSetRectangleModifierNotify (notify);
    optionSetStretchModifierNotify (notify);
    optionSetCenteredModifierNotify (notify);

    resizeMaskValueToKeyMask (optionGetOutlineModifierMask (), &logic.outlineMask);
    resizeMaskValueToKeyMask (optionGetRectangleModifierMask (), &logic.rectangleMask);
    resizeMaskValueToKeyMask (optionGetStretchModifierMask (), &logic.stretchMask);
    resizeMaskValueToKeyMask (optionGetCenteredModifierMask (), &logic.centeredMask);

    ScreenInterface::setHandler (s);

    if (gScreen)
	GLScreenInterface::setHandler (gScreen, false);
}
예제 #3
0
RotateScreen::RotateScreen (CompScreen *s) :
    PluginClassHandler<RotateScreen,CompScreen> (s),
    gScreen (GLScreen::get (s)),
    cScreen (CompositeScreen::get (s)),
    cubeScreen (CubeScreen::get (s)),
    mSnapTop (false),
    mSnapBottom (false),
    mGrabIndex (0),
    mXrot (0.0f),
    mXVelocity (0.0f),
    mYrot (0.0f),
    mYVelocity (0.0f),
    mBaseXrot (0.0f),
    mMoving (false),
    mMoveTo (0.0f),
    mMoveWindow (0),
    mMoveWindowX (0),
    mSavedPointer (0,0),
    mGrabbed (false),
    mSlow (false),
    mGrabMask (0),
    mGrabWindow (0),
    mProgress (0.0f),
    mProgressVelocity (0.0f),
    mZoomTranslate (0.0f)
{
    mPointerSensitivity = optionGetSensitivity () * ROTATE_POINTER_SENSITIVITY_FACTOR;

#define ROTATEBIND(name) boost::bind (&RotateScreen::name, this, _1, _2, _3)
#define ROTATEBINDOPT(name, ...) boost::bind (&RotateScreen::name, this, _1, _2, _3, __VA_ARGS__)

    optionSetInitiateButtonInitiate (ROTATEBIND (initiate));
    optionSetInitiateButtonTerminate (ROTATEBIND (terminate));
    optionSetRotateLeftKeyInitiate (ROTATEBINDOPT (rotate, -1));
    optionSetRotateLeftButtonInitiate (ROTATEBINDOPT (rotate, -1));
    optionSetRotateRightKeyInitiate (ROTATEBINDOPT (rotate, 1));
    optionSetRotateRightButtonInitiate (ROTATEBINDOPT (rotate, 1));
    optionSetRotateLeftWindowKeyInitiate (ROTATEBINDOPT (rotateWithWindow, -1));
    optionSetRotateLeftWindowButtonInitiate (ROTATEBINDOPT (rotateWithWindow, -1));
    optionSetRotateRightWindowKeyInitiate (ROTATEBINDOPT (rotateWithWindow, 1));
    optionSetRotateRightWindowButtonInitiate (ROTATEBINDOPT (rotateWithWindow, 1));

    optionSetRotateTo1KeyInitiate (ROTATEBINDOPT(rotateTo, 0, false));
    optionSetRotateTo2KeyInitiate (ROTATEBINDOPT(rotateTo, 1, false));
    optionSetRotateTo3KeyInitiate (ROTATEBINDOPT(rotateTo, 2, false));
    optionSetRotateTo4KeyInitiate (ROTATEBINDOPT(rotateTo, 3, false));
    optionSetRotateTo5KeyInitiate (ROTATEBINDOPT(rotateTo, 4, false));
    optionSetRotateTo6KeyInitiate (ROTATEBINDOPT(rotateTo, 5, false));
    optionSetRotateTo7KeyInitiate (ROTATEBINDOPT(rotateTo, 6, false));
    optionSetRotateTo8KeyInitiate (ROTATEBINDOPT(rotateTo, 7, false));
    optionSetRotateTo9KeyInitiate (ROTATEBINDOPT(rotateTo, 8, false));
    optionSetRotateTo10KeyInitiate (ROTATEBINDOPT(rotateTo, 9, false));
    optionSetRotateTo11KeyInitiate (ROTATEBINDOPT(rotateTo, 10, false));
    optionSetRotateTo12KeyInitiate (ROTATEBINDOPT(rotateTo, 11, false));
    optionSetRotateTo1WindowKeyInitiate (ROTATEBINDOPT(rotateTo, 0, true));
    optionSetRotateTo2WindowKeyInitiate (ROTATEBINDOPT(rotateTo, 1, true));
    optionSetRotateTo3WindowKeyInitiate (ROTATEBINDOPT(rotateTo, 2, true));
    optionSetRotateTo4WindowKeyInitiate (ROTATEBINDOPT(rotateTo, 3, true));
    optionSetRotateTo5WindowKeyInitiate (ROTATEBINDOPT(rotateTo, 4, true));
    optionSetRotateTo6WindowKeyInitiate (ROTATEBINDOPT(rotateTo, 5, true));
    optionSetRotateTo7WindowKeyInitiate (ROTATEBINDOPT(rotateTo, 6, true));
    optionSetRotateTo8WindowKeyInitiate (ROTATEBINDOPT(rotateTo, 7, true));
    optionSetRotateTo9WindowKeyInitiate (ROTATEBINDOPT(rotateTo, 8, true));
    optionSetRotateTo10WindowKeyInitiate (ROTATEBINDOPT(rotateTo, 9, true));
    optionSetRotateTo11WindowKeyInitiate (ROTATEBINDOPT(rotateTo, 10, true));
    optionSetRotateTo12WindowKeyInitiate (ROTATEBINDOPT(rotateTo, 11, true));

    optionSetRotateToKeyInitiate (ROTATEBINDOPT(rotateTo, -1, false));
    optionSetRotateWindowKeyInitiate (ROTATEBINDOPT(rotateTo, -1, true));

    optionSetRotateFlipLeftEdgeInitiate (ROTATEBINDOPT(rotateEdgeFlip, -1));
    optionSetRotateFlipLeftEdgeTerminate (ROTATEBIND (flipTerminate));
    optionSetRotateFlipRightEdgeInitiate (ROTATEBINDOPT(rotateEdgeFlip, 1));
    optionSetRotateFlipRightEdgeTerminate (ROTATEBIND (flipTerminate));

#undef ROTATEBIND
#undef ROTATEBINDOPT

    ScreenInterface::setHandler (screen);
    CompositeScreenInterface::setHandler (cScreen);
    GLScreenInterface::setHandler (gScreen);
    CubeScreenInterface::setHandler (cubeScreen);
}