<!-- ##### SECTION Title ##### -->
NetkScreen

<!-- ##### SECTION Short_Description ##### -->
Represents a screen

<!-- ##### SECTION Long_Description ##### -->
<para>
#NetkScreen represents a screen
</para>

<!-- ##### SECTION See_Also ##### -->
<para>

</para>

<!-- ##### SECTION Stability_Level ##### -->


<!-- ##### STRUCT NetkScreen ##### -->
<para>

</para>

@parent_instance: 
@priv: 

<!-- ##### FUNCTION netk_screen_get_type ##### -->
<para>

</para>

@Returns: the gtype for the #NetkScreen class


<!-- ##### FUNCTION netk_screen_get_default ##### -->
<para>

</para>

@Returns: the default screen. refcount NOT touched. beware.


<!-- ##### FUNCTION netk_screen_get ##### -->
<para>

</para>

@index: the index of the screen to return. Starting from 0 (as for X)
@Returns: the screen. can not be NULL.


<!-- ##### FUNCTION netk_screen_get_for_root ##### -->
<para>

</para>

@root_window_id: the root window X id
@Returns: netk screen instance, or NULL. 

Given the root window, return the NetkScreen instance. refcount is NOT touched. be careful.
Does not create a new NetkScreen instance, unlike netk_screen_get


<!-- ##### FUNCTION netk_screen_get_workspace ##### -->
<para>

</para>

@screen: The NetkScreen instance
@workspace: the workspace number. starting with 0. XXX
@Returns: the #NetkWorkspace, or NULL on error. refcount of workspace is NOT touched.


<!-- ##### FUNCTION netk_screen_get_active_workspace ##### -->
<para>

</para>

@screen: The NetkScreen instance
@Returns: the active workspace, or NULL

Gets the active workspace. May return %NULL sometimes,
if we are in a weird state due to the asynchronous
nature of our interaction with the window manager.


<!-- ##### FUNCTION netk_screen_get_windows ##### -->
<para>

</para>

@screen: The NetkScreen instance
@Returns: the list of windows, or NULL on failure. item refcount is not touched. list is owned by the Screen. do not free.

Gets the screen's list of windows. The list is not copied
and should not be freed. The list is not in a defined order,
but should be "stable" (windows shouldn't reorder themselves in
it). (However, the stability of the list is established by
the window manager, so don't blame libnetk if it breaks down.)


<!-- ##### FUNCTION netk_screen_get_windows_stacked ##### -->
<para>

</para>

@screen: The NetkScreen instance
@Returns: the list of windows, or NULL on failure. items refcount is not touched. list is owned by the Screen. do not free.

Gets the screen's list of windows in bottom-to-top order.
The list is not copied and should not be freed.


<!-- ##### FUNCTION netk_screen_force_update ##### -->
<para>

</para>

@screen: The NetkScreen instance

Synchronously and immediately update the window list.  This is
usually a bad idea for both performance and correctness reasons (to
get things right, you need to write model-view code that tracks
changes, not get a static list of open windows).


<!-- ##### FUNCTION netk_screen_get_workspace_count ##### -->
<para>

</para>

@screen: The NetkScreen instance
@Returns: the workspace count, or 0 on failure


<!-- ##### FUNCTION netk_screen_change_workspace_count ##### -->
<para>

</para>

@screen: The NetkScreen instance
@count: the new count. range from 1 to XXX

Asks the window manager to change the number of workspaces.


<!-- ##### FUNCTION netk_screen_net_wm_supports ##### -->
<para>

</para>

@screen: The NetkScreen instance
@atom: the atom of the capability to check for
@Returns: if it is supported


<!-- ##### FUNCTION netk_screen_get_background_pixmap ##### -->
<para>

</para>

@screen: The NetkScreen instance
@Returns: a gulong XXX


<!-- ##### FUNCTION netk_screen_get_width ##### -->
<para>

</para>

@screen: The NetkScreen instance
@Returns: width of the screen, XXX border? XXX fail condition?


<!-- ##### FUNCTION netk_screen_get_height ##### -->
<para>

</para>

@screen: The NetkScreen instance
@Returns: height of the screen, XXX border? XXX fail condition?


<!-- ##### FUNCTION netk_screen_get_showing_desktop ##### -->
<para>

</para>

@screen: The NetkScreen instance
@Returns: if showing the desktop, or FALSE on failure


<!-- ##### FUNCTION netk_screen_toggle_showing_desktop ##### -->
<para>

</para>

@screen: The NetkScreen instance
@show: if wanting to show desktop


<!-- ##### FUNCTION netk_screen_move_viewport ##### -->
<para>

</para>

@screen: The NetkScreen instance
@x: the x offset of the viewport
@y: the y offset of the viewport

Ask window manager to move the viewport of the current workspace.


<!-- ##### FUNCTION netk_screen_release_workspace_layout ##### -->
<para>

</para>

@screen: The NetkScreen instance
@current_token: the token XXX

releases the layout with the given token


