/*
 * This file is autogenerated with bcop:
 * The Compiz option code generator
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 */


#include <core/core.h>

#include "put_options.h"

PutOptions::PutOptions (bool init /* = true */) :
    mOptions (PutOptions::OptionNum),
    mNotify (PutOptions::OptionNum)
{
    if (init)
        initOptions ();
}

void
PutOptions::initOptions ()
{
    unsigned int state;
    CompAction action;

    // put_viewport
    mOptions[PutOptions::PutViewport].setName ("put_viewport", CompOption::TypeAction);
    state = CompAction::StateAutoGrab;
    mOptions[PutOptions::PutViewport].value().set(CompAction ());
    mOptions[PutOptions::PutViewport].value().action ().setState (state);

    // put_viewport_1_key
    mOptions[PutOptions::PutViewport1Key].setName ("put_viewport_1_key", CompOption::TypeKey);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitKey);
    mOptions[PutOptions::PutViewport1Key].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutViewport1Key].value ().action ());

    // put_viewport_2_key
    mOptions[PutOptions::PutViewport2Key].setName ("put_viewport_2_key", CompOption::TypeKey);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitKey);
    mOptions[PutOptions::PutViewport2Key].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutViewport2Key].value ().action ());

    // put_viewport_3_key
    mOptions[PutOptions::PutViewport3Key].setName ("put_viewport_3_key", CompOption::TypeKey);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitKey);
    mOptions[PutOptions::PutViewport3Key].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutViewport3Key].value ().action ());

    // put_viewport_4_key
    mOptions[PutOptions::PutViewport4Key].setName ("put_viewport_4_key", CompOption::TypeKey);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitKey);
    mOptions[PutOptions::PutViewport4Key].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutViewport4Key].value ().action ());

    // put_viewport_5_key
    mOptions[PutOptions::PutViewport5Key].setName ("put_viewport_5_key", CompOption::TypeKey);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitKey);
    mOptions[PutOptions::PutViewport5Key].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutViewport5Key].value ().action ());

    // put_viewport_6_key
    mOptions[PutOptions::PutViewport6Key].setName ("put_viewport_6_key", CompOption::TypeKey);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitKey);
    mOptions[PutOptions::PutViewport6Key].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutViewport6Key].value ().action ());

    // put_viewport_7_key
    mOptions[PutOptions::PutViewport7Key].setName ("put_viewport_7_key", CompOption::TypeKey);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitKey);
    mOptions[PutOptions::PutViewport7Key].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutViewport7Key].value ().action ());

    // put_viewport_8_key
    mOptions[PutOptions::PutViewport8Key].setName ("put_viewport_8_key", CompOption::TypeKey);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitKey);
    mOptions[PutOptions::PutViewport8Key].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutViewport8Key].value ().action ());

    // put_viewport_9_key
    mOptions[PutOptions::PutViewport9Key].setName ("put_viewport_9_key", CompOption::TypeKey);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitKey);
    mOptions[PutOptions::PutViewport9Key].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutViewport9Key].value ().action ());

    // put_viewport_10_key
    mOptions[PutOptions::PutViewport10Key].setName ("put_viewport_10_key", CompOption::TypeKey);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitKey);
    mOptions[PutOptions::PutViewport10Key].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutViewport10Key].value ().action ());

    // put_viewport_11_key
    mOptions[PutOptions::PutViewport11Key].setName ("put_viewport_11_key", CompOption::TypeKey);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitKey);
    mOptions[PutOptions::PutViewport11Key].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutViewport11Key].value ().action ());

    // put_viewport_12_key
    mOptions[PutOptions::PutViewport12Key].setName ("put_viewport_12_key", CompOption::TypeKey);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitKey);
    mOptions[PutOptions::PutViewport12Key].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutViewport12Key].value ().action ());

    // put_viewport_left_key
    mOptions[PutOptions::PutViewportLeftKey].setName ("put_viewport_left_key", CompOption::TypeKey);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitKey);
    mOptions[PutOptions::PutViewportLeftKey].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutViewportLeftKey].value ().action ());

    // put_viewport_right_key
    mOptions[PutOptions::PutViewportRightKey].setName ("put_viewport_right_key", CompOption::TypeKey);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitKey);
    mOptions[PutOptions::PutViewportRightKey].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutViewportRightKey].value ().action ());

    // put_viewport_up_key
    mOptions[PutOptions::PutViewportUpKey].setName ("put_viewport_up_key", CompOption::TypeKey);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitKey);
    mOptions[PutOptions::PutViewportUpKey].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutViewportUpKey].value ().action ());

    // put_viewport_down_key
    mOptions[PutOptions::PutViewportDownKey].setName ("put_viewport_down_key", CompOption::TypeKey);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitKey);
    mOptions[PutOptions::PutViewportDownKey].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutViewportDownKey].value ().action ());

    // put_center_key
    mOptions[PutOptions::PutCenterKey].setName ("put_center_key", CompOption::TypeKey);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitKey);
    action.keyFromString ("<Super>KP_Begin");
    mOptions[PutOptions::PutCenterKey].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutCenterKey].value ().action ());

    // put_center_button
    mOptions[PutOptions::PutCenterButton].setName ("put_center_button", CompOption::TypeButton);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitButton);
    mOptions[PutOptions::PutCenterButton].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutCenterButton].value ().action ());

    // put_left_key
    mOptions[PutOptions::PutLeftKey].setName ("put_left_key", CompOption::TypeKey);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitKey);
    action.keyFromString ("<Super>KP_Left");
    mOptions[PutOptions::PutLeftKey].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutLeftKey].value ().action ());

    // put_left_button
    mOptions[PutOptions::PutLeftButton].setName ("put_left_button", CompOption::TypeButton);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitButton);
    mOptions[PutOptions::PutLeftButton].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutLeftButton].value ().action ());

    // put_right_key
    mOptions[PutOptions::PutRightKey].setName ("put_right_key", CompOption::TypeKey);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitKey);
    action.keyFromString ("<Super>KP_Right");
    mOptions[PutOptions::PutRightKey].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutRightKey].value ().action ());

    // put_right_button
    mOptions[PutOptions::PutRightButton].setName ("put_right_button", CompOption::TypeButton);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitButton);
    mOptions[PutOptions::PutRightButton].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutRightButton].value ().action ());

    // put_top_key
    mOptions[PutOptions::PutTopKey].setName ("put_top_key", CompOption::TypeKey);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitKey);
    action.keyFromString ("<Super>KP_Up");
    mOptions[PutOptions::PutTopKey].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutTopKey].value ().action ());

    // put_top_button
    mOptions[PutOptions::PutTopButton].setName ("put_top_button", CompOption::TypeButton);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitButton);
    mOptions[PutOptions::PutTopButton].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutTopButton].value ().action ());

    // put_bottom_key
    mOptions[PutOptions::PutBottomKey].setName ("put_bottom_key", CompOption::TypeKey);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitKey);
    action.keyFromString ("<Super>KP_Down");
    mOptions[PutOptions::PutBottomKey].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutBottomKey].value ().action ());

    // put_bottom_button
    mOptions[PutOptions::PutBottomButton].setName ("put_bottom_button", CompOption::TypeButton);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitButton);
    action.buttonFromString ("<Super>KP_Down");
    mOptions[PutOptions::PutBottomButton].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutBottomButton].value ().action ());

    // put_topleft_key
    mOptions[PutOptions::PutTopleftKey].setName ("put_topleft_key", CompOption::TypeKey);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitKey);
    action.keyFromString ("<Super>KP_Home");
    mOptions[PutOptions::PutTopleftKey].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutTopleftKey].value ().action ());

    // put_topleft_button
    mOptions[PutOptions::PutTopleftButton].setName ("put_topleft_button", CompOption::TypeButton);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitButton);
    mOptions[PutOptions::PutTopleftButton].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutTopleftButton].value ().action ());

    // put_topright_key
    mOptions[PutOptions::PutToprightKey].setName ("put_topright_key", CompOption::TypeKey);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitKey);
    action.keyFromString ("<Super>KP_Prior");
    mOptions[PutOptions::PutToprightKey].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutToprightKey].value ().action ());

    // put_topright_button
    mOptions[PutOptions::PutToprightButton].setName ("put_topright_button", CompOption::TypeButton);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitButton);
    mOptions[PutOptions::PutToprightButton].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutToprightButton].value ().action ());

    // put_bottomleft_key
    mOptions[PutOptions::PutBottomleftKey].setName ("put_bottomleft_key", CompOption::TypeKey);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitKey);
    action.keyFromString ("<Super>KP_End");
    mOptions[PutOptions::PutBottomleftKey].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutBottomleftKey].value ().action ());

    // put_bottomleft_button
    mOptions[PutOptions::PutBottomleftButton].setName ("put_bottomleft_button", CompOption::TypeButton);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitButton);
    mOptions[PutOptions::PutBottomleftButton].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutBottomleftButton].value ().action ());

    // put_bottomright_key
    mOptions[PutOptions::PutBottomrightKey].setName ("put_bottomright_key", CompOption::TypeKey);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitKey);
    action.keyFromString ("<Super>KP_Next");
    mOptions[PutOptions::PutBottomrightKey].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutBottomrightKey].value ().action ());

    // put_bottomright_button
    mOptions[PutOptions::PutBottomrightButton].setName ("put_bottomright_button", CompOption::TypeButton);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitButton);
    mOptions[PutOptions::PutBottomrightButton].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutBottomrightButton].value ().action ());

    // put_empty_center_key
    mOptions[PutOptions::PutEmptyCenterKey].setName ("put_empty_center_key", CompOption::TypeKey);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitKey);
    mOptions[PutOptions::PutEmptyCenterKey].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutEmptyCenterKey].value ().action ());

    // put_empty_center_button
    mOptions[PutOptions::PutEmptyCenterButton].setName ("put_empty_center_button", CompOption::TypeButton);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitButton);
    mOptions[PutOptions::PutEmptyCenterButton].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutEmptyCenterButton].value ().action ());

    // put_empty_left_key
    mOptions[PutOptions::PutEmptyLeftKey].setName ("put_empty_left_key", CompOption::TypeKey);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitKey);
    mOptions[PutOptions::PutEmptyLeftKey].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutEmptyLeftKey].value ().action ());

    // put_empty_left_button
    mOptions[PutOptions::PutEmptyLeftButton].setName ("put_empty_left_button", CompOption::TypeButton);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitButton);
    mOptions[PutOptions::PutEmptyLeftButton].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutEmptyLeftButton].value ().action ());

    // put_empty_right_key
    mOptions[PutOptions::PutEmptyRightKey].setName ("put_empty_right_key", CompOption::TypeKey);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitKey);
    mOptions[PutOptions::PutEmptyRightKey].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutEmptyRightKey].value ().action ());

    // put_empty_right_button
    mOptions[PutOptions::PutEmptyRightButton].setName ("put_empty_right_button", CompOption::TypeButton);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitButton);
    mOptions[PutOptions::PutEmptyRightButton].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutEmptyRightButton].value ().action ());

    // put_empty_top_key
    mOptions[PutOptions::PutEmptyTopKey].setName ("put_empty_top_key", CompOption::TypeKey);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitKey);
    mOptions[PutOptions::PutEmptyTopKey].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutEmptyTopKey].value ().action ());

    // put_empty_top_button
    mOptions[PutOptions::PutEmptyTopButton].setName ("put_empty_top_button", CompOption::TypeButton);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitButton);
    mOptions[PutOptions::PutEmptyTopButton].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutEmptyTopButton].value ().action ());

    // put_empty_bottom_key
    mOptions[PutOptions::PutEmptyBottomKey].setName ("put_empty_bottom_key", CompOption::TypeKey);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitKey);
    mOptions[PutOptions::PutEmptyBottomKey].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutEmptyBottomKey].value ().action ());

    // put_empty_bottom_button
    mOptions[PutOptions::PutEmptyBottomButton].setName ("put_empty_bottom_button", CompOption::TypeButton);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitButton);
    mOptions[PutOptions::PutEmptyBottomButton].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutEmptyBottomButton].value ().action ());

    // put_empty_topleft_key
    mOptions[PutOptions::PutEmptyTopleftKey].setName ("put_empty_topleft_key", CompOption::TypeKey);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitKey);
    mOptions[PutOptions::PutEmptyTopleftKey].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutEmptyTopleftKey].value ().action ());

    // put_empty_topleft_button
    mOptions[PutOptions::PutEmptyTopleftButton].setName ("put_empty_topleft_button", CompOption::TypeButton);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitButton);
    mOptions[PutOptions::PutEmptyTopleftButton].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutEmptyTopleftButton].value ().action ());

    // put_empty_topright_key
    mOptions[PutOptions::PutEmptyToprightKey].setName ("put_empty_topright_key", CompOption::TypeKey);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitKey);
    mOptions[PutOptions::PutEmptyToprightKey].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutEmptyToprightKey].value ().action ());

    // put_empty_topright_button
    mOptions[PutOptions::PutEmptyToprightButton].setName ("put_empty_topright_button", CompOption::TypeButton);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitButton);
    mOptions[PutOptions::PutEmptyToprightButton].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutEmptyToprightButton].value ().action ());

    // put_empty_bottomleft_key
    mOptions[PutOptions::PutEmptyBottomleftKey].setName ("put_empty_bottomleft_key", CompOption::TypeKey);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitKey);
    mOptions[PutOptions::PutEmptyBottomleftKey].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutEmptyBottomleftKey].value ().action ());

    // put_empty_bottomleft_button
    mOptions[PutOptions::PutEmptyBottomleftButton].setName ("put_empty_bottomleft_button", CompOption::TypeButton);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitButton);
    mOptions[PutOptions::PutEmptyBottomleftButton].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutEmptyBottomleftButton].value ().action ());

    // put_empty_bottomright_key
    mOptions[PutOptions::PutEmptyBottomrightKey].setName ("put_empty_bottomright_key", CompOption::TypeKey);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitKey);
    mOptions[PutOptions::PutEmptyBottomrightKey].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutEmptyBottomrightKey].value ().action ());

    // put_empty_bottomright_button
    mOptions[PutOptions::PutEmptyBottomrightButton].setName ("put_empty_bottomright_button", CompOption::TypeButton);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitButton);
    mOptions[PutOptions::PutEmptyBottomrightButton].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutEmptyBottomrightButton].value ().action ());

    // put_restore_key
    mOptions[PutOptions::PutRestoreKey].setName ("put_restore_key", CompOption::TypeKey);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitKey);
    action.keyFromString ("<Super>KP_Insert");
    mOptions[PutOptions::PutRestoreKey].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutRestoreKey].value ().action ());

    // put_restore_button
    mOptions[PutOptions::PutRestoreButton].setName ("put_restore_button", CompOption::TypeButton);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitButton);
    mOptions[PutOptions::PutRestoreButton].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutRestoreButton].value ().action ());

    // put_pointer_key
    mOptions[PutOptions::PutPointerKey].setName ("put_pointer_key", CompOption::TypeKey);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitKey);
    action.keyFromString ("<Super>z");
    mOptions[PutOptions::PutPointerKey].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutPointerKey].value ().action ());

    // put_pointer_button
    mOptions[PutOptions::PutPointerButton].setName ("put_pointer_button", CompOption::TypeButton);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitButton);
    mOptions[PutOptions::PutPointerButton].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutPointerButton].value ().action ());

    // put_next_output_key
    mOptions[PutOptions::PutNextOutputKey].setName ("put_next_output_key", CompOption::TypeKey);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitKey);
    mOptions[PutOptions::PutNextOutputKey].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutNextOutputKey].value ().action ());

    // put_next_output_button
    mOptions[PutOptions::PutNextOutputButton].setName ("put_next_output_button", CompOption::TypeButton);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitButton);
    mOptions[PutOptions::PutNextOutputButton].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutNextOutputButton].value ().action ());

    // put_previous_output_key
    mOptions[PutOptions::PutPreviousOutputKey].setName ("put_previous_output_key", CompOption::TypeKey);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitKey);
    mOptions[PutOptions::PutPreviousOutputKey].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutPreviousOutputKey].value ().action ());

    // put_previous_output_button
    mOptions[PutOptions::PutPreviousOutputButton].setName ("put_previous_output_button", CompOption::TypeButton);
    state = CompAction::StateAutoGrab;
    action = CompAction ();
    action.setState (state | CompAction::StateInitButton);
    mOptions[PutOptions::PutPreviousOutputButton].value().set (action);
    if (screen) screen->addAction (&mOptions[PutOptions::PutPreviousOutputButton].value ().action ());

    // put_put
    mOptions[PutOptions::PutPut].setName ("put_put", CompOption::TypeAction);
    state = CompAction::StateAutoGrab;
    mOptions[PutOptions::PutPut].value().set(CompAction ());
    mOptions[PutOptions::PutPut].value().action ().setState (state);

    // pad_left
    mOptions[PutOptions::PadLeft].setName ("pad_left", CompOption::TypeInt);
    mOptions[PutOptions::PadLeft].rest ().set (0, 500);
    mOptions[PutOptions::PadLeft].value().set((int) 0);

    // pad_right
    mOptions[PutOptions::PadRight].setName ("pad_right", CompOption::TypeInt);
    mOptions[PutOptions::PadRight].rest ().set (0, 500);
    mOptions[PutOptions::PadRight].value().set((int) 0);

    // pad_top
    mOptions[PutOptions::PadTop].setName ("pad_top", CompOption::TypeInt);
    mOptions[PutOptions::PadTop].rest ().set (0, 500);
    mOptions[PutOptions::PadTop].value().set((int) 0);

    // pad_bottom
    mOptions[PutOptions::PadBottom].setName ("pad_bottom", CompOption::TypeInt);
    mOptions[PutOptions::PadBottom].rest ().set (0, 500);
    mOptions[PutOptions::PadBottom].value().set((int) 0);

    // unfocus_window
    mOptions[PutOptions::UnfocusWindow].setName ("unfocus_window", CompOption::TypeBool);
    mOptions[PutOptions::UnfocusWindow].value().set(false);

    // window_center
    mOptions[PutOptions::WindowCenter].setName ("window_center", CompOption::TypeBool);
    mOptions[PutOptions::WindowCenter].value().set(false);

    // avoid_offscreen
    mOptions[PutOptions::AvoidOffscreen].setName ("avoid_offscreen", CompOption::TypeBool);
    mOptions[PutOptions::AvoidOffscreen].value().set(false);

    // speed
    mOptions[PutOptions::Speed].setName ("speed", CompOption::TypeFloat);
    mOptions[PutOptions::Speed].rest ().set (0.1, 50.0, 0.1);
    mOptions[PutOptions::Speed].value().set((float) 2.5);

    // timestep
    mOptions[PutOptions::Timestep].setName ("timestep", CompOption::TypeFloat);
    mOptions[PutOptions::Timestep].rest ().set (0.1, 50.0, 0.1);
    mOptions[PutOptions::Timestep].value().set((float) 0.5);

}

PutOptions::~PutOptions ()
{
}


CompOption::Vector &
PutOptions::getOptions ()
{
    return mOptions;
}

bool
PutOptions::setOption (const CompString &name, CompOption::Value &value)
{
    CompOption   *o;
    unsigned int index;

    o = CompOption::findOption (mOptions, name, &index);

    if (!o)
        return false;

    switch (index)
    {
        case PutOptions::PutViewport:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutViewport].empty ())
                    mNotify[PutOptions::PutViewport] (o, PutOptions::PutViewport);
                return true;
            }
            break;
        case PutOptions::PutViewport1Key:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutViewport1Key].empty ())
                    mNotify[PutOptions::PutViewport1Key] (o, PutOptions::PutViewport1Key);
                return true;
            }
            break;
        case PutOptions::PutViewport2Key:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutViewport2Key].empty ())
                    mNotify[PutOptions::PutViewport2Key] (o, PutOptions::PutViewport2Key);
                return true;
            }
            break;
        case PutOptions::PutViewport3Key:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutViewport3Key].empty ())
                    mNotify[PutOptions::PutViewport3Key] (o, PutOptions::PutViewport3Key);
                return true;
            }
            break;
        case PutOptions::PutViewport4Key:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutViewport4Key].empty ())
                    mNotify[PutOptions::PutViewport4Key] (o, PutOptions::PutViewport4Key);
                return true;
            }
            break;
        case PutOptions::PutViewport5Key:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutViewport5Key].empty ())
                    mNotify[PutOptions::PutViewport5Key] (o, PutOptions::PutViewport5Key);
                return true;
            }
            break;
        case PutOptions::PutViewport6Key:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutViewport6Key].empty ())
                    mNotify[PutOptions::PutViewport6Key] (o, PutOptions::PutViewport6Key);
                return true;
            }
            break;
        case PutOptions::PutViewport7Key:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutViewport7Key].empty ())
                    mNotify[PutOptions::PutViewport7Key] (o, PutOptions::PutViewport7Key);
                return true;
            }
            break;
        case PutOptions::PutViewport8Key:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutViewport8Key].empty ())
                    mNotify[PutOptions::PutViewport8Key] (o, PutOptions::PutViewport8Key);
                return true;
            }
            break;
        case PutOptions::PutViewport9Key:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutViewport9Key].empty ())
                    mNotify[PutOptions::PutViewport9Key] (o, PutOptions::PutViewport9Key);
                return true;
            }
            break;
        case PutOptions::PutViewport10Key:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutViewport10Key].empty ())
                    mNotify[PutOptions::PutViewport10Key] (o, PutOptions::PutViewport10Key);
                return true;
            }
            break;
        case PutOptions::PutViewport11Key:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutViewport11Key].empty ())
                    mNotify[PutOptions::PutViewport11Key] (o, PutOptions::PutViewport11Key);
                return true;
            }
            break;
        case PutOptions::PutViewport12Key:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutViewport12Key].empty ())
                    mNotify[PutOptions::PutViewport12Key] (o, PutOptions::PutViewport12Key);
                return true;
            }
            break;
        case PutOptions::PutViewportLeftKey:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutViewportLeftKey].empty ())
                    mNotify[PutOptions::PutViewportLeftKey] (o, PutOptions::PutViewportLeftKey);
                return true;
            }
            break;
        case PutOptions::PutViewportRightKey:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutViewportRightKey].empty ())
                    mNotify[PutOptions::PutViewportRightKey] (o, PutOptions::PutViewportRightKey);
                return true;
            }
            break;
        case PutOptions::PutViewportUpKey:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutViewportUpKey].empty ())
                    mNotify[PutOptions::PutViewportUpKey] (o, PutOptions::PutViewportUpKey);
                return true;
            }
            break;
        case PutOptions::PutViewportDownKey:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutViewportDownKey].empty ())
                    mNotify[PutOptions::PutViewportDownKey] (o, PutOptions::PutViewportDownKey);
                return true;
            }
            break;
        case PutOptions::PutCenterKey:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutCenterKey].empty ())
                    mNotify[PutOptions::PutCenterKey] (o, PutOptions::PutCenterKey);
                return true;
            }
            break;
        case PutOptions::PutCenterButton:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutCenterButton].empty ())
                    mNotify[PutOptions::PutCenterButton] (o, PutOptions::PutCenterButton);
                return true;
            }
            break;
        case PutOptions::PutLeftKey:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutLeftKey].empty ())
                    mNotify[PutOptions::PutLeftKey] (o, PutOptions::PutLeftKey);
                return true;
            }
            break;
        case PutOptions::PutLeftButton:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutLeftButton].empty ())
                    mNotify[PutOptions::PutLeftButton] (o, PutOptions::PutLeftButton);
                return true;
            }
            break;
        case PutOptions::PutRightKey:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutRightKey].empty ())
                    mNotify[PutOptions::PutRightKey] (o, PutOptions::PutRightKey);
                return true;
            }
            break;
        case PutOptions::PutRightButton:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutRightButton].empty ())
                    mNotify[PutOptions::PutRightButton] (o, PutOptions::PutRightButton);
                return true;
            }
            break;
        case PutOptions::PutTopKey:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutTopKey].empty ())
                    mNotify[PutOptions::PutTopKey] (o, PutOptions::PutTopKey);
                return true;
            }
            break;
        case PutOptions::PutTopButton:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutTopButton].empty ())
                    mNotify[PutOptions::PutTopButton] (o, PutOptions::PutTopButton);
                return true;
            }
            break;
        case PutOptions::PutBottomKey:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutBottomKey].empty ())
                    mNotify[PutOptions::PutBottomKey] (o, PutOptions::PutBottomKey);
                return true;
            }
            break;
        case PutOptions::PutBottomButton:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutBottomButton].empty ())
                    mNotify[PutOptions::PutBottomButton] (o, PutOptions::PutBottomButton);
                return true;
            }
            break;
        case PutOptions::PutTopleftKey:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutTopleftKey].empty ())
                    mNotify[PutOptions::PutTopleftKey] (o, PutOptions::PutTopleftKey);
                return true;
            }
            break;
        case PutOptions::PutTopleftButton:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutTopleftButton].empty ())
                    mNotify[PutOptions::PutTopleftButton] (o, PutOptions::PutTopleftButton);
                return true;
            }
            break;
        case PutOptions::PutToprightKey:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutToprightKey].empty ())
                    mNotify[PutOptions::PutToprightKey] (o, PutOptions::PutToprightKey);
                return true;
            }
            break;
        case PutOptions::PutToprightButton:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutToprightButton].empty ())
                    mNotify[PutOptions::PutToprightButton] (o, PutOptions::PutToprightButton);
                return true;
            }
            break;
        case PutOptions::PutBottomleftKey:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutBottomleftKey].empty ())
                    mNotify[PutOptions::PutBottomleftKey] (o, PutOptions::PutBottomleftKey);
                return true;
            }
            break;
        case PutOptions::PutBottomleftButton:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutBottomleftButton].empty ())
                    mNotify[PutOptions::PutBottomleftButton] (o, PutOptions::PutBottomleftButton);
                return true;
            }
            break;
        case PutOptions::PutBottomrightKey:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutBottomrightKey].empty ())
                    mNotify[PutOptions::PutBottomrightKey] (o, PutOptions::PutBottomrightKey);
                return true;
            }
            break;
        case PutOptions::PutBottomrightButton:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutBottomrightButton].empty ())
                    mNotify[PutOptions::PutBottomrightButton] (o, PutOptions::PutBottomrightButton);
                return true;
            }
            break;
        case PutOptions::PutEmptyCenterKey:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutEmptyCenterKey].empty ())
                    mNotify[PutOptions::PutEmptyCenterKey] (o, PutOptions::PutEmptyCenterKey);
                return true;
            }
            break;
        case PutOptions::PutEmptyCenterButton:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutEmptyCenterButton].empty ())
                    mNotify[PutOptions::PutEmptyCenterButton] (o, PutOptions::PutEmptyCenterButton);
                return true;
            }
            break;
        case PutOptions::PutEmptyLeftKey:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutEmptyLeftKey].empty ())
                    mNotify[PutOptions::PutEmptyLeftKey] (o, PutOptions::PutEmptyLeftKey);
                return true;
            }
            break;
        case PutOptions::PutEmptyLeftButton:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutEmptyLeftButton].empty ())
                    mNotify[PutOptions::PutEmptyLeftButton] (o, PutOptions::PutEmptyLeftButton);
                return true;
            }
            break;
        case PutOptions::PutEmptyRightKey:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutEmptyRightKey].empty ())
                    mNotify[PutOptions::PutEmptyRightKey] (o, PutOptions::PutEmptyRightKey);
                return true;
            }
            break;
        case PutOptions::PutEmptyRightButton:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutEmptyRightButton].empty ())
                    mNotify[PutOptions::PutEmptyRightButton] (o, PutOptions::PutEmptyRightButton);
                return true;
            }
            break;
        case PutOptions::PutEmptyTopKey:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutEmptyTopKey].empty ())
                    mNotify[PutOptions::PutEmptyTopKey] (o, PutOptions::PutEmptyTopKey);
                return true;
            }
            break;
        case PutOptions::PutEmptyTopButton:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutEmptyTopButton].empty ())
                    mNotify[PutOptions::PutEmptyTopButton] (o, PutOptions::PutEmptyTopButton);
                return true;
            }
            break;
        case PutOptions::PutEmptyBottomKey:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutEmptyBottomKey].empty ())
                    mNotify[PutOptions::PutEmptyBottomKey] (o, PutOptions::PutEmptyBottomKey);
                return true;
            }
            break;
        case PutOptions::PutEmptyBottomButton:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutEmptyBottomButton].empty ())
                    mNotify[PutOptions::PutEmptyBottomButton] (o, PutOptions::PutEmptyBottomButton);
                return true;
            }
            break;
        case PutOptions::PutEmptyTopleftKey:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutEmptyTopleftKey].empty ())
                    mNotify[PutOptions::PutEmptyTopleftKey] (o, PutOptions::PutEmptyTopleftKey);
                return true;
            }
            break;
        case PutOptions::PutEmptyTopleftButton:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutEmptyTopleftButton].empty ())
                    mNotify[PutOptions::PutEmptyTopleftButton] (o, PutOptions::PutEmptyTopleftButton);
                return true;
            }
            break;
        case PutOptions::PutEmptyToprightKey:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutEmptyToprightKey].empty ())
                    mNotify[PutOptions::PutEmptyToprightKey] (o, PutOptions::PutEmptyToprightKey);
                return true;
            }
            break;
        case PutOptions::PutEmptyToprightButton:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutEmptyToprightButton].empty ())
                    mNotify[PutOptions::PutEmptyToprightButton] (o, PutOptions::PutEmptyToprightButton);
                return true;
            }
            break;
        case PutOptions::PutEmptyBottomleftKey:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutEmptyBottomleftKey].empty ())
                    mNotify[PutOptions::PutEmptyBottomleftKey] (o, PutOptions::PutEmptyBottomleftKey);
                return true;
            }
            break;
        case PutOptions::PutEmptyBottomleftButton:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutEmptyBottomleftButton].empty ())
                    mNotify[PutOptions::PutEmptyBottomleftButton] (o, PutOptions::PutEmptyBottomleftButton);
                return true;
            }
            break;
        case PutOptions::PutEmptyBottomrightKey:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutEmptyBottomrightKey].empty ())
                    mNotify[PutOptions::PutEmptyBottomrightKey] (o, PutOptions::PutEmptyBottomrightKey);
                return true;
            }
            break;
        case PutOptions::PutEmptyBottomrightButton:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutEmptyBottomrightButton].empty ())
                    mNotify[PutOptions::PutEmptyBottomrightButton] (o, PutOptions::PutEmptyBottomrightButton);
                return true;
            }
            break;
        case PutOptions::PutRestoreKey:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutRestoreKey].empty ())
                    mNotify[PutOptions::PutRestoreKey] (o, PutOptions::PutRestoreKey);
                return true;
            }
            break;
        case PutOptions::PutRestoreButton:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutRestoreButton].empty ())
                    mNotify[PutOptions::PutRestoreButton] (o, PutOptions::PutRestoreButton);
                return true;
            }
            break;
        case PutOptions::PutPointerKey:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutPointerKey].empty ())
                    mNotify[PutOptions::PutPointerKey] (o, PutOptions::PutPointerKey);
                return true;
            }
            break;
        case PutOptions::PutPointerButton:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutPointerButton].empty ())
                    mNotify[PutOptions::PutPointerButton] (o, PutOptions::PutPointerButton);
                return true;
            }
            break;
        case PutOptions::PutNextOutputKey:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutNextOutputKey].empty ())
                    mNotify[PutOptions::PutNextOutputKey] (o, PutOptions::PutNextOutputKey);
                return true;
            }
            break;
        case PutOptions::PutNextOutputButton:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutNextOutputButton].empty ())
                    mNotify[PutOptions::PutNextOutputButton] (o, PutOptions::PutNextOutputButton);
                return true;
            }
            break;
        case PutOptions::PutPreviousOutputKey:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutPreviousOutputKey].empty ())
                    mNotify[PutOptions::PutPreviousOutputKey] (o, PutOptions::PutPreviousOutputKey);
                return true;
            }
            break;
        case PutOptions::PutPreviousOutputButton:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutPreviousOutputButton].empty ())
                    mNotify[PutOptions::PutPreviousOutputButton] (o, PutOptions::PutPreviousOutputButton);
                return true;
            }
            break;
        case PutOptions::PutPut:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PutPut].empty ())
                    mNotify[PutOptions::PutPut] (o, PutOptions::PutPut);
                return true;
            }
            break;
        case PutOptions::PadLeft:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PadLeft].empty ())
                    mNotify[PutOptions::PadLeft] (o, PutOptions::PadLeft);
                return true;
            }
            break;
        case PutOptions::PadRight:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PadRight].empty ())
                    mNotify[PutOptions::PadRight] (o, PutOptions::PadRight);
                return true;
            }
            break;
        case PutOptions::PadTop:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PadTop].empty ())
                    mNotify[PutOptions::PadTop] (o, PutOptions::PadTop);
                return true;
            }
            break;
        case PutOptions::PadBottom:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::PadBottom].empty ())
                    mNotify[PutOptions::PadBottom] (o, PutOptions::PadBottom);
                return true;
            }
            break;
        case PutOptions::UnfocusWindow:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::UnfocusWindow].empty ())
                    mNotify[PutOptions::UnfocusWindow] (o, PutOptions::UnfocusWindow);
                return true;
            }
            break;
        case PutOptions::WindowCenter:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::WindowCenter].empty ())
                    mNotify[PutOptions::WindowCenter] (o, PutOptions::WindowCenter);
                return true;
            }
            break;
        case PutOptions::AvoidOffscreen:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::AvoidOffscreen].empty ())
                    mNotify[PutOptions::AvoidOffscreen] (o, PutOptions::AvoidOffscreen);
                return true;
            }
            break;
        case PutOptions::Speed:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::Speed].empty ())
                    mNotify[PutOptions::Speed] (o, PutOptions::Speed);
                return true;
            }
            break;
        case PutOptions::Timestep:
            if (o->set (value))
            {
                if (!mNotify[PutOptions::Timestep].empty ())
                    mNotify[PutOptions::Timestep] (o, PutOptions::Timestep);
                return true;
            }
            break;
        default:
            break;
    }
    return false;

}

