<!-- ##### SECTION Title ##### -->
GnomeClient

<!-- ##### SECTION Short_Description ##### -->
Routines to provide session management support in your application

<!-- ##### SECTION Long_Description ##### -->

<para>The GNOME project uses a special object - the GnomeClient object
- to implement session management.  This object handles the connection
to a session manager, the setting and removing of properties and the
handling of messages sent by a session manager.</para>

<para>There are two functions in the GNOME libraries, that create a
new GnomeClient object: gnome_client_new() and
gnome_client_new_without_connection().  As one may guess from the
functions names: The first function tries to connect to a session
manager automatically, while the second one does not.  However, you
probably don't need to create your own client;
<function>gnome_init()</function> automatically creates a client for
you. To obtain this client, call
<function>gnome_master_client().</function>
 </para>

<para>
Two useful sources of information on session management are the
gnome-client header file and the SMlib.PS.Z document that comes with
X.
</para>

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

</para>

<!-- ##### STRUCT GnomeClient ##### -->
<para>

</para>


<!-- ##### ENUM GnomeClientFlags ##### -->
<para>

</para>


<!-- ##### MACRO GNOME_CLIENT_CONNECTED ##### -->
<para>
Returns TRUE if the client is connected to the session manager.
</para>

@obj: Client to check.


<!-- ##### ENUM GnomeInteractStyle ##### -->
<para>
Controls permitted user interaction during session save.
</para>


<!-- ##### ENUM GnomeDialogType ##### -->
<para>
Controls type of dialog generated for user interaction.
</para>


<!-- ##### ENUM GnomeSaveStyle ##### -->
<para>

</para>


<!-- ##### ENUM GnomeRestartStyle ##### -->
<para>

</para>


<!-- ##### ENUM GnomeClientState ##### -->
<para>

</para>


<!-- ##### USER_FUNCTION GnomeInteractFunction ##### -->
<para>
Callback invoked to perform user interaction.
</para>

@client: Client.
@key: Key to be returned when interaction ends.
@dialog_type: Type of dialog being shown.
@data: Callback data.


<!-- ##### FUNCTION gnome_client_disable_master_connection ##### -->
<para>

</para>



<!-- ##### FUNCTION gnome_master_client ##### -->
<para>

</para>

@Returns: 


<!-- ##### FUNCTION gnome_cloned_client ##### -->
<para>

</para>

@Returns: 


<!-- ##### FUNCTION gnome_client_new ##### -->
<para>

</para>

@Returns: 


<!-- ##### FUNCTION gnome_client_new_without_connection ##### -->
<para>

</para>

@Returns: 


<!-- ##### FUNCTION gnome_client_connect ##### -->
<para>

</para>

@client: 


<!-- ##### FUNCTION gnome_client_disconnect ##### -->
<para>

</para>

@client: 


<!-- ##### FUNCTION gnome_client_set_id ##### -->
<para>

</para>

@client: 
@client_id: 


<!-- ##### FUNCTION gnome_client_get_id ##### -->
<para>

</para>

@client: 
@Returns: 


<!-- ##### FUNCTION gnome_client_get_previous_id ##### -->
<para>

</para>

@client: 
@Returns: 


<!-- ##### FUNCTION gnome_client_get_config_prefix ##### -->
<para>

</para>

@client: 
@Returns: 


<!-- ##### FUNCTION gnome_client_get_global_config_prefix ##### -->
<para>

</para>

@client: 
@Returns: 


<!-- ##### FUNCTION gnome_client_set_global_config_prefix ##### -->
<para>

</para>

@client: 
@prefix: 


<!-- ##### FUNCTION gnome_client_get_flags ##### -->
<para>

</para>

@client: 
@Returns: 


<!-- ##### FUNCTION gnome_client_set_restart_style ##### -->
<para>

</para>

@client: 
@style: 


<!-- ##### FUNCTION gnome_client_set_restart_command ##### -->
<para>

</para>

@client: 
@argc: 
@argv: 


<!-- ##### FUNCTION gnome_client_add_static_arg ##### -->
<para>

</para>

@client: 
@Varargs: 


<!-- ##### FUNCTION gnome_client_set_discard_command ##### -->
<para>

</para>

@client: 
@argc: 
@argv: 


<!-- ##### FUNCTION gnome_client_set_resign_command ##### -->
<para>

</para>

@client: 
@argc: 
@argv: 


<!-- ##### FUNCTION gnome_client_set_shutdown_command ##### -->
<para>

</para>

@client: 
@argc: 
@argv: 


<!-- ##### FUNCTION gnome_client_set_current_directory ##### -->
<para>

</para>

@client: 
@dir: 


<!-- ##### FUNCTION gnome_client_set_environment ##### -->
<para>

</para>

@client: 
@name: 
@value: 


<!-- ##### FUNCTION gnome_client_set_clone_command ##### -->
<para>

</para>

@client: 
@argc: 
@argv: 


<!-- ##### FUNCTION gnome_client_set_process_id ##### -->
<para>

</para>

@client: 
@pid: 


<!-- ##### FUNCTION gnome_client_set_program ##### -->
<para>

</para>

@client: 
@program: 


<!-- ##### FUNCTION gnome_client_set_user_id ##### -->
<para>

</para>

@client: 
@user_id: 


<!-- ##### FUNCTION gnome_client_request_phase_2 ##### -->
<para>

</para>

@client: 


<!-- ##### FUNCTION gnome_client_save_any_dialog ##### -->
<para>

</para>

@client: 
@dialog: 


<!-- ##### FUNCTION gnome_client_save_error_dialog ##### -->
<para>

</para>

@client: 
@dialog: 


<!-- ##### FUNCTION gnome_client_request_interaction ##### -->
<para>

</para>

@client: 
@dialog: 
@func: 
@client_data: 


<!-- ##### FUNCTION gnome_client_request_interaction_interp ##### -->
<para>

</para>

@client: 
@dialog: 
@func: 
@data: 
@destroy: 


<!-- ##### FUNCTION gnome_interaction_key_return ##### -->
<para>

</para>

@key: 
@cancel_shutdown: 


<!-- ##### FUNCTION gnome_client_request_save ##### -->
<para>

</para>

@client: 
@save_style: 
@shutdown: 
@interact_style: 
@fast: 
@global: 


<!-- ##### FUNCTION gnome_client_flush ##### -->
<para>

</para>

@client: 


<!-- ##### FUNCTION gnome_client_init ##### -->
<para>

</para>



<!-- ##### SIGNAL GnomeClient::save-yourself ##### -->
<para>
This signal is probably the most important one, because it causes the
clients to save the programs state.  Clients should connect to this
signal and save their state.
</para>

@client: the object which received the signal.
@arg1: 
@arg2: 
@arg3: 
@arg4: 
@arg5: 
@Returns: 

<!-- ##### SIGNAL GnomeClient::die ##### -->
<para>
Emitted when the client should exit.
</para>

@client: the object which received the signal.

<!-- ##### SIGNAL GnomeClient::save-complete ##### -->
<para>
Emitted when everything is saved.
</para>

@client: the object which received the signal.

<!-- ##### SIGNAL GnomeClient::shutdown-cancelled ##### -->
<para>
Emitted if the user or a client cancels the logout.
</para>

@client: the object which received the signal.

<!-- ##### SIGNAL GnomeClient::connect ##### -->
<para>
Emitted on connection to the session manager.
</para>

@client: the object which received the signal.
@arg1: 

<!-- ##### SIGNAL GnomeClient::disconnect ##### -->
<para>
Emitted on disconnection from the session manager.
</para>

@client: the object which received the signal.

