Back to index

easystroke  0.5.5.1
Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Private Attributes
ScrollAdvancedHandler Class Reference
Inheritance diagram for ScrollAdvancedHandler:
Inheritance graph
[legend]
Collaboration diagram for ScrollAdvancedHandler:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 ScrollAdvancedHandler (RModifiers m_, guint &rb_)
virtual void fake_wheel (int b1, int n1, int b2, int n2)
virtual void release (guint b, RTriple e)
virtual void press (guint b, RTriple e)
virtual std::string name ()
virtual Grabber::State grab_mode ()
virtual void raw_motion (RTriple e, bool abs_x, bool abs_y)
Handlertop ()
virtual void motion (RTriple e)
virtual void press_master (guint b, Time t)
virtual void pressure ()
virtual void proximity_out ()
virtual void pong ()
void replace_child (Handler *c)
virtual void init ()

Static Public Member Functions

static bool idle ()

Public Attributes

Handlerparent

Protected Member Functions

void move_back ()

Static Protected Member Functions

static float curve (float v)

Protected Attributes

Handlerchild

Private Attributes

RModifiers m
guint & rb

Detailed Description

Definition at line 491 of file main.cc.


Constructor & Destructor Documentation

ScrollAdvancedHandler::ScrollAdvancedHandler ( RModifiers  m_,
guint &  rb_ 
) [inline]

Definition at line 495 of file main.cc.

: m(m_), rb(rb_) {}

Member Function Documentation

static float AbstractScrollHandler::curve ( float  v) [inline, static, protected, inherited]

Definition at line 395 of file main.cc.

                                   {
              return v * exp(log(abs(v))/3);
       }

Here is the call graph for this function:

Here is the caller graph for this function:

virtual void ScrollAdvancedHandler::fake_wheel ( int  b1,
int  n1,
int  b2,
int  n2 
) [inline, virtual]

Reimplemented from AbstractScrollHandler.

Definition at line 496 of file main.cc.

                                                               {
              AbstractScrollHandler::fake_wheel(b1, n1, b2, n2);
              rb = 0;
       }
virtual Grabber::State ScrollAdvancedHandler::grab_mode ( ) [inline, virtual]

Implements Handler.

Definition at line 513 of file main.cc.

{ return Grabber::RAW; }
static bool Handler::idle ( ) [inline, static, inherited]

Definition at line 135 of file main.cc.

{ return !handler->child; }

Here is the caller graph for this function:

virtual void Handler::init ( ) [inline, virtual, inherited]

Reimplemented in IdleHandler, StrokeHandler, and AdvancedHandler.

Definition at line 167 of file main.cc.

{}

Here is the caller graph for this function:

virtual void Handler::motion ( RTriple  e) [inline, virtual, inherited]

Reimplemented in StrokeHandler, AdvancedHandler, ButtonHandler, and IgnoreHandler.

Definition at line 137 of file main.cc.

{}
void AbstractScrollHandler::move_back ( ) [inline, protected, inherited]

Definition at line 399 of file main.cc.

                        {
              if (!prefs.move_back.get() || current_dev->absolute)
                     return;
              XTestFakeMotionEvent(dpy, DefaultScreen(dpy), orig_x, orig_y, 0);
       }

Here is the call graph for this function:

Here is the caller graph for this function:

virtual std::string ScrollAdvancedHandler::name ( ) [inline, virtual]

Implements Handler.

Definition at line 512 of file main.cc.

{ return "ScrollAdvanced"; }
virtual void Handler::pong ( ) [inline, virtual, inherited]

Reimplemented in WaitForPongHandler.

Definition at line 144 of file main.cc.

{}
virtual void ScrollAdvancedHandler::press ( guint  b,
RTriple  e 
) [inline, virtual]

Reimplemented from Handler.

Definition at line 506 of file main.cc.

                                              {
              Handler *p = parent;
              p->replace_child(NULL);
              p->press(b, e);
              move_back();
       }

Here is the call graph for this function:

virtual void Handler::press_master ( guint  b,
Time  t 
) [inline, virtual, inherited]

Reimplemented in SelectHandler, and ScrollHandler.

Definition at line 141 of file main.cc.

{}
virtual void Handler::pressure ( ) [inline, virtual, inherited]

Reimplemented in StrokeHandler.

Definition at line 142 of file main.cc.

{}
virtual void Handler::proximity_out ( ) [inline, virtual, inherited]

Reimplemented in ScrollHandler.

Definition at line 143 of file main.cc.

{}
virtual void AbstractScrollHandler::raw_motion ( RTriple  e,
bool  abs_x,
bool  abs_y 
) [inline, virtual, inherited]

Reimplemented from Handler.

Reimplemented in ScrollHandler.

Definition at line 405 of file main.cc.

                                                                  {
              float dx = abs_x ? (have_x ? e->x - last_x : 0) : e->x;
              float dy = abs_y ? (have_y ? e->y - last_y : 0) : e->y;

              if (abs_x) {
                     last_x = e->x;
                     have_x = true;
              }

              if (abs_y) {
                     last_y = e->y;
                     have_y = true;
              }

              if (!last_t) {
                     last_t = e->t;
                     return;
              }

              if (e->t == last_t)
                     return;

              int dt = e->t - last_t;
              last_t = e->t;

              double factor = (prefs.scroll_invert.get() ? 1.0 : -1.0) * prefs.scroll_speed.get();
              offset_x += factor * curve(dx/dt)*dt/20.0;
              offset_y += factor * curve(dy/dt)*dt/10.0;
              int b1 = 0, n1 = 0, b2 = 0, n2 = 0;
              if (abs(offset_x) > 1.0) {
                     n1 = (int)floor(abs(offset_x));
                     if (offset_x > 0) {
                            b1 = 7;
                            offset_x -= n1;
                     } else {
                            b1 = 6;
                            offset_x += n1;
                     }
              }
              if (abs(offset_y) > 1.0) {
                     if (abs(offset_y) < 1.0)
                            return;
                     n2 = (int)floor(abs(offset_y));
                     if (offset_y > 0) {
                            b2 = 5;
                            offset_y -= n2;
                     } else {
                            b2 = 4;
                            offset_y += n2;
                     }
              }
              if (n1 || n2)
                     fake_wheel(b1,n1, b2,n2);
       }

Here is the call graph for this function:

Here is the caller graph for this function:

virtual void ScrollAdvancedHandler::release ( guint  b,
RTriple  e 
) [inline, virtual]

Reimplemented from Handler.

Definition at line 500 of file main.cc.

                                                {
              Handler *p = parent;
              p->replace_child(NULL);
              p->release(b, e);
              move_back();
       }

Here is the call graph for this function:

void Handler::replace_child ( Handler c) [inline, inherited]

Definition at line 145 of file main.cc.

                                      {
              if (child)
                     delete child;
              child = c;
              if (child)
                     child->parent = this;
              if (verbosity >= 2) {
                     std::string stack;
                     for (Handler *h = child ? child : this; h; h=h->parent) {
                            stack = h->name() + " " + stack;
                     }
                     printf("New event handling stack: %s\n", stack.c_str());
              }
              Handler *new_handler = child ? child : this;
              grabber->grab(new_handler->grab_mode());
              if (child)
                     child->init();
              while (queued.size() && Handler::idle()) {
                     (*queued.begin())();
                     queued.pop_front();
              }
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Handler* Handler::top ( ) [inline, inherited]

Definition at line 129 of file main.cc.

                      {
              if (child)
                     return child->top();
              else
                     return this;
       }

Here is the call graph for this function:

Here is the caller graph for this function:


Member Data Documentation

Handler* Handler::child [protected, inherited]

Definition at line 125 of file main.cc.

Definition at line 492 of file main.cc.

Handler* Handler::parent [inherited]

Definition at line 127 of file main.cc.

guint& ScrollAdvancedHandler::rb [private]

Definition at line 493 of file main.cc.


The documentation for this class was generated from the following file: