gnomeclient.inc 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. {$IfDef read_interface}
  2. type
  3. TGnomeInteractStyle = (GNOME_INTERACT_NONE,GNOME_INTERACT_ERRORS,
  4. GNOME_INTERACT_ANY);
  5. TGnomeDialogType = (GNOME_DIALOG_ERROR,GNOME_DIALOG_NORMAL
  6. );
  7. TGnomeSaveStyle = (GNOME_SAVE_GLOBAL,GNOME_SAVE_LOCAL,GNOME_SAVE_BOTH
  8. );
  9. TGnomeRestartStyle = (GNOME_RESTART_IF_RUNNING,GNOME_RESTART_ANYWAY,
  10. GNOME_RESTART_IMMEDIATELY,GNOME_RESTART_NEVER
  11. );
  12. TGnomeClientState = (GNOME_CLIENT_IDLE,GNOME_CLIENT_SAVING_PHASE_1,
  13. GNOME_CLIENT_WAITING_FOR_PHASE_2,GNOME_CLIENT_SAVING_PHASE_2,
  14. GNOME_CLIENT_FROZEN,GNOME_CLIENT_DISCONNECTED,
  15. GNOME_CLIENT_REGISTERING);
  16. TGnomeClientFlags = (GNOME_CLIENT_IS_CONNECTED := 1 shl 0,GNOME_CLIENT_RESTARTED := 1 shl 1,
  17. GNOME_CLIENT_RESTORED := 1 shl 2);
  18. PGnomeClient = ^TGnomeClient;
  19. TGnomeClient = record
  20. theobject : TGtkObject;
  21. smc_conn : gpointer;
  22. input_id : gint;
  23. client_id : Pgchar;
  24. previous_id : Pgchar;
  25. config_prefix : Pgchar;
  26. global_config_prefix : Pgchar;
  27. static_args : PGList;
  28. clone_command : PPgchar;
  29. current_directory : Pgchar;
  30. discard_command : PPgchar;
  31. environment : PGHashTable;
  32. process_id : pid_t;
  33. theprogram : Pgchar;
  34. resign_command : PPgchar;
  35. restart_command : PPgchar;
  36. restart_style : TGnomeRestartStyle;
  37. shutdown_command : PPgchar;
  38. user_id : Pgchar;
  39. save_style : TGnomeSaveStyle;
  40. interact_style : TGnomeInteractStyle;
  41. shutdown : gboolean;
  42. fast : gboolean;
  43. state : TGnomeClientState;
  44. save_phase_2_requested : gboolean;
  45. save_successfull : gboolean;
  46. save_yourself_emitted : gboolean;
  47. interaction_keys : PGSList;
  48. end;
  49. GNOME_CLIENT = PGnomeClient;
  50. TGnomeInteractFunction = procedure (client:PGnomeClient; key:gint; dialog_type:TGnomeDialogType; data:gpointer);cdecl;
  51. function GNOME_CLIENT_CONNECTED(obj : pointer) : gboolean;
  52. Type
  53. PGnomeClientClass = ^TGnomeClientClass;
  54. TGnomeClientClass = record
  55. parent_class : TGtkObjectClass;
  56. save_yourself : function (client:PGnomeClient; phase:gint; save_style:TGnomeSaveStyle; shutdown:gint; interact_style:TGnomeInteractStyle;
  57. fast:gint):gboolean; cdecl;
  58. die : procedure (client:PGnomeClient); cdecl;
  59. save_complete : procedure (client:PGnomeClient); cdecl;
  60. shutdown_cancelled : procedure (client:PGnomeClient); cdecl;
  61. connect : procedure (client:PGnomeClient; restarted:gint); cdecl;
  62. disconnect : procedure (client:PGnomeClient);cdecl;
  63. end;
  64. GNOME_CLIENT_CLASS = PGnomeClientClass;
  65. function GNOME_TYPE_CLIENT : TGTKType;
  66. function GNOME_IS_CLIENT(obj : Pointer) : Boolean;
  67. function GNOME_IS_CLIENT_CLASS(klass : Pointer) : Boolean;
  68. function gnome_client_get_type:TGTKType;cdecl;external libgnomeuidll name 'gnome_client_get_type';
  69. procedure gnome_client_init;cdecl;external libgnomeuidll name 'gnome_client_init';
  70. function gnome_master_client:PGnomeClient;cdecl;external libgnomeuidll name 'gnome_master_client';
  71. function gnome_client_get_config_prefix(client:PGnomeClient):Pgchar;cdecl;external libgnomeuidll name 'gnome_client_get_config_prefix';
  72. function gnome_client_get_global_config_prefix(client:PGnomeClient):Pgchar;cdecl;external libgnomeuidll name 'gnome_client_get_global_config_prefix';
  73. procedure gnome_client_set_global_config_prefix(client:PGnomeClient; prefix:Pgchar);cdecl;external libgnomeuidll name 'gnome_client_set_global_config_prefix';
  74. function gnome_client_get_flags(client:PGnomeClient):TGnomeClientFlags;cdecl;external libgnomeuidll name 'gnome_client_get_flags';
  75. procedure gnome_client_set_restart_style(client:PGnomeClient; style:TGnomeRestartStyle);cdecl;external libgnomeuidll name 'gnome_client_set_restart_style';
  76. procedure gnome_client_set_priority(client:PGnomeClient; priority:guint);cdecl;external libgnomeuidll name 'gnome_client_set_priority';
  77. procedure gnome_client_set_restart_command(client:PGnomeClient; argc:gint; argv:PPgchar);cdecl;external libgnomeuidll name 'gnome_client_set_restart_command';
  78. procedure gnome_client_add_static_arg(client:PGnomeClient; args:array of const);cdecl;external libgnomeuidll name 'gnome_client_add_static_arg';
  79. procedure gnome_client_set_discard_command(client:PGnomeClient; argc:gint; argv:PPgchar);cdecl;external libgnomeuidll name 'gnome_client_set_discard_command';
  80. procedure gnome_client_set_resign_command(client:PGnomeClient; argc:gint; argv:PPgchar);cdecl;external libgnomeuidll name 'gnome_client_set_resign_command';
  81. procedure gnome_client_set_shutdown_command(client:PGnomeClient; argc:gint; argv:PPgchar);cdecl;external libgnomeuidll name 'gnome_client_set_shutdown_command';
  82. procedure gnome_client_set_current_directory(client:PGnomeClient; dir:Pgchar);cdecl;external libgnomeuidll name 'gnome_client_set_current_directory';
  83. procedure gnome_client_set_environment(client:PGnomeClient; name:Pgchar; value:Pgchar);cdecl;external libgnomeuidll name 'gnome_client_set_environment';
  84. procedure gnome_client_set_clone_command(client:PGnomeClient; argc:gint; argv:PPgchar);cdecl;external libgnomeuidll name 'gnome_client_set_clone_command';
  85. procedure gnome_client_set_process_id(client:PGnomeClient; pid:pid_t);cdecl;external libgnomeuidll name 'gnome_client_set_process_id';
  86. procedure gnome_client_set_program(client:PGnomeClient; theprogram:Pgchar);cdecl;external libgnomeuidll name 'gnome_client_set_program';
  87. procedure gnome_client_set_user_id(client:PGnomeClient; user_id:Pgchar);cdecl;external libgnomeuidll name 'gnome_client_set_user_id';
  88. procedure gnome_client_save_any_dialog(client:PGnomeClient; dialog:PGnomeDialog);cdecl;external libgnomeuidll name 'gnome_client_save_any_dialog';
  89. procedure gnome_client_save_error_dialog(client:PGnomeClient; dialog:PGnomeDialog);cdecl;external libgnomeuidll name 'gnome_client_save_error_dialog';
  90. procedure gnome_client_request_phase_2(client:PGnomeClient);cdecl;external libgnomeuidll name 'gnome_client_request_phase_2';
  91. procedure gnome_client_request_save(client:PGnomeClient; save_style:TGnomeSaveStyle; shutdown:gboolean; interact_style:TGnomeInteractStyle; fast:gboolean;
  92. global:gboolean);cdecl;external libgnomeuidll name 'gnome_client_request_save';
  93. procedure gnome_client_flush(client:PGnomeClient);cdecl;external libgnomeuidll name 'gnome_client_flush';
  94. procedure gnome_client_disable_master_connection;cdecl;external libgnomeuidll name 'gnome_client_disable_master_connection';
  95. function gnome_client_new:PGnomeClient;cdecl;external libgnomeuidll name 'gnome_client_new';
  96. function gnome_client_new_without_connection:PGnomeClient;cdecl;external libgnomeuidll name 'gnome_client_new_without_connection';
  97. procedure gnome_client_connect(client:PGnomeClient);cdecl;external libgnomeuidll name 'gnome_client_connect';
  98. procedure gnome_client_disconnect(client:PGnomeClient);cdecl;external libgnomeuidll name 'gnome_client_disconnect';
  99. procedure gnome_client_set_id(client:PGnomeClient; client_id:Pgchar);cdecl;external libgnomeuidll name 'gnome_client_set_id';
  100. function gnome_client_get_id(client:PGnomeClient):Pgchar;cdecl;external libgnomeuidll name 'gnome_client_get_id';
  101. function gnome_client_get_previous_id(client:PGnomeClient):Pgchar;cdecl;external libgnomeuidll name 'gnome_client_get_previous_id';
  102. function gnome_cloned_client:PGnomeClient;cdecl;external libgnomeuidll name 'gnome_cloned_client';
  103. procedure gnome_client_request_interaction(client:PGnomeClient; dialog:TGnomeDialogType; func:TGnomeInteractFunction; client_data:gpointer);cdecl;external libgnomeuidll name 'gnome_client_request_interaction';
  104. procedure gnome_client_request_interaction_interp(client:PGnomeClient; dialog:TGnomeDialogType; func:TGtkCallbackMarshal; data:gpointer; destroy:TGtkDestroyNotify);cdecl;external libgnomeuidll name 'gnome_client_request_interaction_interp';
  105. procedure gnome_interaction_key_return(key:gint; cancel_shutdown:gboolean);cdecl;external libgnomeuidll name 'gnome_interaction_key_return';
  106. {$EndIf read_interface}
  107. {$Ifdef read_implementation}
  108. function GNOME_TYPE_CLIENT : TGTKType;
  109. begin
  110. GNOME_TYPE_CLIENT:=gnome_client_get_type;
  111. end;
  112. function GNOME_IS_CLIENT(obj : Pointer) : Boolean;
  113. begin
  114. GNOME_IS_CLIENT:=(obj<>nil) and GNOME_IS_CLIENT_CLASS(PGtkTypeObject(obj)^.klass);
  115. end;
  116. function GNOME_IS_CLIENT_CLASS(klass : Pointer) : Boolean;
  117. begin
  118. GNOME_IS_CLIENT_CLASS:=(klass<>nil) and (PGtkTypeClass(klass)^.thetype=GNOME_TYPE_CLIENT);
  119. end;
  120. function GNOME_CLIENT_CONNECTED(obj : pointer) : gboolean;
  121. begin
  122. GNOME_CLIENT_CONNECTED:=(obj <> nil) and ((GNOME_CLIENT(obj))^.smc_conn <> nil);
  123. end;
  124. {$Endif read_implementation}