THIS DOCUMENTATION IS NO LONGER MAINTAINED. PLEASE REFER TO scripting/apidocs.xml OR scripting/kwsapi.html FOR
DOCUMENTATION.

# This is a list of all the events and methods that are currently
# supported methods and events. Please follow the format given
# below for adding new methods/events
#
# TYPE OBJECT NAME SIGNAL WRAPPERSLOT WRAPPERSIGNAL
# For properties:
# GO: GET only | SG: SET and GET functions defined
#

OBJECTS_DOC_LIST_START

Instantiable objects:
---------------------

(instantiable) ClientGroup : Create a group which corresponds to a ClientGroup and add/remove/introspect tabs of the group.
(instantiable) QTimer : A QTimer class for creating polling or one shot timers. Linked from plasma.

Others
------

(floating) client : Client objects which correspond to an actual KWin::Client.
(singleton) workspace : The main KWin::Workspace object.
(singleton) config : Configuration parameters for the running script.
(floating) toplevel : Inherited by client. Corresponds to a KWin::Toplevel or any of it's derived classes.

OBJECTS_DOC_LIST_END

PROPERTIES_DOC_LIST_START

Implemented properties:
--------------------

method    workspace     getAllClients           NONE                    NONE                       NONE
event     workspace     currentDesktopChanged   currentDesktopChanged   sl_currentDesktopChanged   currentDesktopChanged
event     workspace     desktopPresenceChanged  desktopPresenceChanged  sl_desktopPresenceChanged  desktopPresenceChanged
method    client        caption                 NONE                    NONE                       NONE
event     client        clientMoved             clientMoved             sl_clientMoved             clientMoved
method    client        close                   NONE                    NONe                       NONE
property  workspace     currentDesktop (GO)     NONE                    NONE                       NONE
event     workspace     clientAdded             clientAdded             sl_clientAdded             clientAdded
event     workspace     clientManaging          DIRECT_FUNCTION_CALL    sl_clientManaging          clientManaging
event     workspace     clientMinimized         DIRECT_FUNCTION_CALL    sl_clientMinimized         clientMinimized
event     workspace     clientMaximizeSet       DIRECT_FUNCTION_CALL    sl_clientMaximizeSet       clientMaximizeSet
event     workspace     killWindowCalled        DIRECT_FUNCTION_CALL    sl_killWindowCalled        killWindowCalled
event     client        minimized               s_minimized             DIRECT_CONNECTION          minimized
event     client        maximizeSet             maximizeSet             sl_maximizeSet             maximizeSet
method    toplevel      x                       NONE                    NONE                       NONE
method    toplevel      y                       NONE                    NONE                       NONE
method    toplevel      width                   NONE                    NONE                       NONE
method    toplevel      height                  NONE                    NONE                       NONE
method    toplevel      size                    NONE                    NONE                       NONE
metho     toplevel      pos                     NONE                    NONE                       NONE
event     client        activated               s_activated             DIRECT_CONNECTION          gotFocus
event     workspace     clientActivated         clientActivated         sl_clientActivated         clientActivated
method    toplevel      geometry                NONE                    NONE                       NONE
method    client        move                    NONE                    NONE                       NONE
method    client        resize                  NONE                    NONE                       NONE
method    client        setGeometry             NONE                    NONE                       NONE
method    client        getWindowInfo           NONE                    NONE                       NONE
property  windowinfo    isValid (GO)            NONE                    NONE                       NONE
property  windowinfo    visibleName (GO)        NONE                    NONE                       NONE
property  windowinfo    isMinimized (GO)        NONE                    NONE                       NONE
property  windowinfo    state (GO)              NONE                    NONE                       NONE
method    client        isTransient             NONE                    NONE                       NONE
method    client        transientFor            NONE                    NONE                       NONE
method    client        activate                NONE                    NONE                       NONE
method    client        setCaption              NONE                    NONE                       NONE
method    workspace     dimensions              NONE                    NONE                       NONE
method    workspace     desktopGridSize         NONE                    NONE                       NONE
method    client        isFullScreen            NONE                    NONE                       NONE
method    client        isFullScreenable        NONE                    NONE                       NONE
method    client        setFullScreen           NONE                    NONE                       NONE
event     client        fullScreenSet           s_fullScreenSet         DIRECT_CONNECTION          fullScreenSet
event     workspace     clientFullScreenSet     DIRECT_FUNCTION_CALL    sl_clientFullScreenSet     clientFullScreenSet
method    toplevel      opacity                 NONE                    NONE                       NONE
method    toplevel      hasAlpha                NONE                    NONE                       NONE
method    toplevel      setOpacity              NONE                    NONE                       NONE
method    clientgroup   clientgroup (ctor)      NONE                    NONE                       NONE
method    clientgroup   add                     NONE                    NONE                       NONE
method    workspace     activeClient            NONE                    NONE                       NONE
method    workspace     clientGroups            NONE                    NONE                       NONE
method    clientgroup   remove                  NONE                    NONE                       NONE
method    clientgroup   clients                 NONE                    NONE                       NONE
method    client        unminimize              NONE                    NONE                       NONE
method    client        restore                 NONE                    NONE                       NONE
event     workspace     clientUnminimized       DIRECT_FUNCTION_CALL    sl_clientUnminimized       clientUnminimized
event     workspace     clientRestored          DIRECT_FUNCTION_CALL    sl_clientUnminimized       clientRestored
event     client        unminimized             s_unminimized           sl_unminimized             unminimized
event     client        restored                s_unminimized           sl_unminimized             restored
method    client        clientGroup             NONE                    NONE                       NONE
method    clientgroup   contains                NONE                    NONE                       NONE
method    clientgroup   indexOf                 NONE                    NONE                       NONE
method    clientgroup   move                    NONE                    NONE                       NONE
method    clientgroup   removeAll               NONE                    NONE                       NONE
method    clientgroup   closeAll                NONE                    NONE                       NONE
method    clientgroup   minSize                 NONE                    NONE                       NONE
method    clientgroup   maxSize                 NONE                    NONE                       NONE
property  windowinfo    windowRole (GO)         NONE                    NONE                       NONE
property  windowinfo    windowClassClass (GO)   NONE                    NONE                       NONE
property  windowinfo    windowClassName (GO)    NONE                    NONE                       NONE
property  config        loaded (GO)             NONE                    NONE                       NONE
method    config        exists                  NONE                    NONE                       NONE
method    config        get                     NONE                    NONE                       NONE
method    client        desktop                 NONE                    NONE                       NONE
method    client        isShade                 NONE                    NONE                       NONE
method    client        isShadeable             NONE                    NONE                       NONE
method    client        isMinimized             NONE                    NONE                       NONE
method    client        isMinimizable           NONE                    NONE                       NONE
method    client        isMaximizable           NONE                    NONE                       NONE
method    client        isResizable             NONE                    NONE                       NONE
method    client        isMovable               NONE                    NONE                       NONE
method    client        isMovableAcrossScreens  NONE                    NONE                       NONE
method    client        isCloseable             NONE                    NONE                       NONE
PROPERTIES_DOC_LIST_END

PROPERTIES_DOC_DESC_START

# NOTES
# (m) workspace.getAllClients : Returns the client objects according to stacking order specified by an optional parameter which specifies the desktop nubmer to fetch the clients from. If no such parameter is provided, all clients are returned.
# (e) workspace.currentDesktopChanged : Occurs when the active desktop is changed. Parameters: prev_desktop
# (e) workspace.desktopPresenceChanged : Occurs when a client is switched from one desktop to another. Parameters: affected_client, prev_desktop
# (m) client.caption : Returns the caption of the client (or title in other terminologies)
# (e) client.clientMoved : Called when the client's geometry changed. Semantic error I know. Will be changed. TODO.
# (p) workspace.currentDesktop : Returns the current desktop of the workspace. Getter ONLY.
# (e) workspace.clientAdded : Called when a new client is added to the workspace. However, if there are clients already present when kwin is loaded, the C++ method. Workspace::clientAdded is called, but the script registered functions are not called. They are called ONLY for clients which are added after KWin has loaded. Maybe this will be fixed later, maybe not.
# (e) workspace.clientManaging: Called when a client is managed. Calls with one parameter, the client which is managed. NOTE: During this event, many of the client properties will not be available.
# (e) workspace.clientMinimize: Called when a client is minimized. Passes 1 parameter, the client which was minimized.
# (e) workspace.clientMaximizeSet: Called when the value of either of the two scalar dimensions of the client are set to the corresponding value of the workspace's dimensions or set to any other values FROM the corresponding values of the workspaces' dimensions. Passes 2 parameters, 1st being the client which is maximized and second specifying the vertically and horizontally hints. 
# (m) client.close: Closes the given client. BTW: Just added client.close() within a function registered with workspace.clientAdded() to make a really annoying script ;)
# (e) workspace.killWindowCalled: Called whenever a kill window is requested [by default using the Ctrl+Esc sequence. Passes 1 param, the Client object of the Kill Window.
# (e) client.minimize: Called when the client is minimized. Called with no parameters.
# (e) client.maximizeSet: Similar to workspace.clientMaximizeSet other than for it's 1st parameter and called only when the event occurs on the specific client.
# (e) workspace.clientActivated: Called when any client gets focus. Called with one parameter: the client which was activated.
# (e) client.activated: Called when the object client gets activated.
#
# -- GEOMETRY PROPERTIES FOR TOPLEVEL --
# client inherits from toplevel i.e. toplevel properties are merged into the client scriptvalue before passing it to the
# scripting environment. Hence, all properties, methods and events of toplevel are available with the client object also
#
# (m) toplevel.x: Gives the x co-ordinate of the toplevel object.
# (m) toplevel.y: Gives the y co-ordinate of the toplevel object.
# (m) toplevel.width: Gives the width of the toplevel object.
# (m) toplevel.height: Givesn the height of the toplevel object.
# (m) toplevel.size: Returns the size in a QtScript object with properties of it's components. In JSON representation, the structure would be {w: <value>, h: <value>}.
# (m) toplevel.pos: Returns the posisition in a QtScript object with properties of it's components. In JSON representation, the structure would be {x: <value>, y: <value>}.
# (m) toplevel.geometry: Returns the complete geometry on a QtScript object with properties of it's components. In JSON representation, the structure would be [object] {x: <value>, y: <value>, w: <value>, h: <value>}
# (m) toplevel.move: Moves the client to the specified position.
# (m) toplevel.resize: Resized the client to the specified size.
# (m) toplevel.setGeometry: Set the geometry of the client to the specified size.
#
# -- For the three functions above --
# 
# There are two methods to access each of these methods. One call can be made through using objects:
#
# client.move({x: <value>, y: <value>})
# client.resize({w: <value>, h: <value>})
# client.setGeometry({x: <value>, y: <value>, w: <value>, h: <value>})
#
# Or alternatively, using multiple parameters:
#
# client.move(x_value, y_value)
# client.resize(w_value, h_value)
# client.setGeometry(x_value, y_value, w_value, h_value)
#
# NOTE: For passing objects to these methods, the property names MUST match i.e. the move property expects properties
#        'x' and 'y' of the passed object.
#
# (m) client.isTransient : Returns (true) is 'client' is transient, (false) otherwise
# (m) client.transientFor : If the given client is transient, returns it's parent client, otherwise returns an undefin-
#                           ed scriptvalue.
# (m) client.activate : Attempt to focus the client, also send a parameter whether to force or not. However, focus stealing prevention still is activated and this may or may not actually focus the client.
# (m) client.setCaption : Set caption for the specified client.
# (m) workspace.dimensions : Returns the dimensions of the workspace. Accepts 1 string as a parameter which predates the the exact dimension to be returned. Default is "MaximizeMode"
# (m) workspace.desktopGridSize : Returns the size of the desktop in grid units.
# (m) client.isFullScreen : Returns true if the client is already in full screen mode.
# (m) client.isFullScreenable : Returns true if the client can be set in full screen mode.
# (m) client.setFullScreen : Set or clear full screen mode of the clientActivated
# (e) client.fullScreenSet : Occurs whenever the specified client is set to fullscreen.
# (e) workspace.clientFullScreenSet : Occurs whenever any client is set to fullscreen. Passes three params: client, set, user
# (m) toplevel.opacity : Returns a qsreal denoting the opacity of the cient.
# (m) toplevel.hasAlpha : Returns a boolean signifying whether the client has alpha compositing (porter-duff) enabled or not.
# (m) toplevel.setOpacity : Set the opacity of the client to a specified value. Accepts 1 qsreal parameter, the opacity value.
# (m) clientgroup.ClientGroup (ctor) : Constructor for a new ClientGroup object. Must pass a client object, otherwise returns an invalid scriptvalue.
# (m) clientgroup.add : Add a client to a client group. Expects 1 parameter.
# (m) workspace.activeClient : Returns the active client on the workspace i.e. the client which currently has focus.
# (m) workspace.clientGroups : Returns an array of clientGroups currently present in the workspace.
# (m) clientgroup.remove : Removes the client specified by the parameter which is either a client object or an index of the client in the clientlist.
# (m) clientgroup.clients : Returns an array of clients which are members of the clientgroup.
# (m) client.clientGroup : Returns the clientgroup a given client belongs to, or an undefined scriptvalue otherwise.
# (m) clientgroup.contains : Accepts a client parameter, and returns true the client is contained within the clientgroup
# (m) clientgroup.indexOf : Returns the index of the parameter 'client' within the clientgroup
# (m) clientgroup.move : Move a client within the group. Accepts move(client, client), move(index, index), move(index, client), move(client, index). All calls except move(client, client) are eventually mapped to move(index, index) using indexOf(client)
# (m) clientgroup.removeAll : Removes all clients from a group and assigns them individual groups.
# (m) clientgroup.closeAll : Closes all the clients in a group.
# (m) clientgroup.minSize : Returns the minimum size cumulative of all the clients in the clientgroup.
# (m) clientgroup.maxSize : Returns the maximum size cumulative of all the clients in the clientgroup.
# (p) config.loaded : Returns true if a file corresponding to the script has been found and loaded.
# (m) config.get : Gets the value for the given configuration parameters. Various methods to use this are: get() returns all available values in a value-key pair. get(keys, simple) returns an array of value indexed by keys if simple is 0 or indexed by integers if simple is 1. get(keys) is equivalent of get(keys, 0). get(key1, key2 ... ) is equivalent of get(array(key1, key2 ... ), 0).
# (m) config.exists : Returns true if the provided key exists within the configuration or false otherwise.
# (m) client.desktop : Returns the desktop the client is on. Returns -1 if the client is on all desktops.
# (m) client.isShade : Returns true if the client is shaded, false otherwise.
# (m) client.isShadeable : Returns true if the client can be shaded, false otherwise.
# (m) client.isMinimized : Returns true if the client is minimized, false otherwise.
# (m) client.isMinimizable : Returns true if the client can be minimized, false otherwise.
# (m) client.isMaximizable : Returns true if the client can be maximized, false otherwise.
# (m) client.isResizable : Returns true if the client can be resized, false otherwise.
# (m) client.isMovable : Returns true if the client can be moved, false otherwise.
# (m) client.isMovableAcrossScreens : Returns true if the client can be moved across screens, false otherwise.
# (m) client.isCloseable : Returns true if the client can be closed, false otherwise.

PROPERTIES_DOC_DESC_END
