2 * @file scim_panel_agent.h
3 * @brief Defines scim::PanelAgent and their related types.
5 * scim::PanelAgent is a class used to write Panel daemons.
6 * It acts like a Socket Server and handles all socket clients
10 /* ISF is based on SCIM 1.4.7 and extended for supporting more mobile fitable. */
13 * Smart Common Input Method
15 * Copyright (c) 2004-2005 James Su <suzhe@tsinghua.org.cn>
18 * This library is free software; you can redistribute it and/or
19 * modify it under the terms of the GNU Lesser General Public
20 * License as published by the Free Software Foundation; either
21 * version 2 of the License, or (at your option) any later version.
23 * This library is distributed in the hope that it will be useful,
24 * but WITHOUT ANY WARRANTY; without even the implied warranty of
25 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26 * GNU Lesser General Public License for more details.
28 * You should have received a copy of the GNU Lesser General Public
29 * License along with this program; if not, write to the
30 * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
31 * Boston, MA 02111-1307 USA
33 * $Id: scim_panel_agent.h,v 1.2 2005/06/11 14:50:31 suzhe Exp $
36 #ifndef __SCIM_PANEL_AGENT_H
37 #define __SCIM_PANEL_AGENT_H
39 #include <scim_panel_common.h>
45 * @ingroup InputServiceFramework
46 * The accessory classes to help develop Panel daemons and FrontEnds
47 * which need to communicate with Panel daemons.
53 TOOLBAR_KEYBOARD_MODE = 0, /* Hardware keyboard ISE */
54 TOOLBAR_HELPER_MODE /* Software keyboard ISE */
57 typedef struct _ISE_INFO
70 typedef Slot1<void, int>
73 typedef Slot1<void, const String &>
76 typedef Slot2<void, String &, String &>
77 PanelAgentSlotString2;
79 typedef Slot2<void, int, const String &>
80 PanelAgentSlotIntString;
82 typedef Slot1<void, const PanelFactoryInfo &>
83 PanelAgentSlotFactoryInfo;
85 typedef Slot1<void, const std::vector <PanelFactoryInfo> &>
86 PanelAgentSlotFactoryInfoVector;
88 typedef Slot1<void, const LookupTable &>
89 PanelAgentSlotLookupTable;
91 typedef Slot1<void, const Property &>
92 PanelAgentSlotProperty;
94 typedef Slot1<void, const PropertyList &>
95 PanelAgentSlotPropertyList;
97 typedef Slot2<void, int, int>
100 typedef Slot2<void, int &, int &>
101 PanelAgentSlotIntInt2;
103 typedef Slot3<void, int, int, int>
104 PanelAgentSlotIntIntInt;
106 typedef Slot2<void, int, const Property &>
107 PanelAgentSlotIntProperty;
109 typedef Slot2<void, int, const PropertyList &>
110 PanelAgentSlotIntPropertyList;
112 typedef Slot2<void, int, const HelperInfo &>
113 PanelAgentSlotIntHelperInfo;
115 typedef Slot2<void, const String &, const AttributeList &>
116 PanelAgentSlotAttributeString;
118 typedef Slot1<void, std::vector<String> &>
119 PanelAgentSlotStringVector;
121 typedef Slot1<bool, std::vector<String> &>
122 PanelAgentSlotBoolStringVector;
124 typedef Slot2<void, char *, std::vector<String> &>
125 PanelAgentSlotStrStringVector;
127 typedef Slot2<bool, const String &, ISE_INFO &>
128 PanelAgentSlotStringISEINFO;
130 typedef Slot1<void, const KeyEvent &>
131 PanelAgentSlotKeyEvent;
133 typedef Slot1<void, struct rectinfo &>
136 typedef Slot2<void, const String &, bool>
137 PanelAgentSlotStringBool;
139 typedef struct DefaultIse
144 DefaultIse () : type (TOOLBAR_KEYBOARD_MODE), uuid (""), name ("") { }
148 * @brief The class to implement all socket protocol in Panel.
150 * This class acts like a stand alone SocketServer.
151 * It has its own dedicated main loop, and will be blocked when run () is called.
152 * So run () must be called within a separated thread, in order to not block
153 * the main loop of the Panel program itself.
155 * Before calling run (), the panel must hook the callback functions to the
156 * corresponding signals.
158 * Note that, there are two special signals: lock(void) and unlock(void). These
159 * two signals are used to provide a thread lock to PanelAgent, so that PanelAgent
160 * can run correctly within a multi-threading Panel program.
164 class PanelAgentImpl;
165 PanelAgentImpl *m_impl;
167 PanelAgent (const HelperAgent &);
168 const PanelAgent & operator = (const HelperAgent &);
175 * @brief Initialize this PanelAgent.
177 * @param config The name of the config module to be used by Helpers.
178 * @param display The name of display, on which the Panel should run.
179 * @param resident If this is true then this PanelAgent will keep running
180 * even if there is no more client connected.
182 * @return true if the PanelAgent is initialized correctly and ready to run.
184 bool initialize (const String &config, const String &display, bool resident = false);
187 * @brief Check if this PanelAgent is initialized correctly and ready to run.
189 * @return true if this PanelAgent is ready to run.
191 bool valid (void) const;
194 * @brief Run this PanelAgent.
196 * This method has its own dedicated main loop,
197 * so it should be run in a separated thread.
199 * @return false if the Panel SocketServer encountered an error when running.
200 * Otherwise, it won't return until the server exits.
205 * @brief Stop this PanelAgent.
212 * @brief Get the list of all helpers.
214 * Panel program should provide a menu which contains
215 * all stand alone but not auto start Helpers, so that users can activate
216 * the Helpers by clicking in the menu.
218 * All auto start Helpers should be started by Panel after running PanelAgent
219 * by calling PanelAgent::start_helper().
221 * @param helpers A list contains information of all Helpers.
223 int get_helper_list (std::vector <HelperInfo> & helpers) const;
226 * @brief Get the list of active ISEs.
228 * @param strlist A list contains information of active ISEs.
230 * @return the list size.
232 int get_active_ise_list (std::vector<String> &strlist);
235 * @brief Send display name to FrontEnd.
237 * @param name The display name.
239 * @return zero if this operation is successful, otherwise return -1.
241 int send_display_name (String &name);
245 * @brief Get current ISE type.
247 * @return the current ISE type.
249 TOOLBAR_MODE_T get_current_toolbar_mode (void) const;
252 * @brief Get current ISE icon.
254 * @return the current ISE icon.
256 String get_current_factory_icon (void) const;
259 * @brief Get current helper ISE uuid.
261 * @return the current helper ISE uuid.
263 String get_current_helper_uuid (void) const;
266 * @brief Get current helper ISE name.
268 * @return the current helper ISE name.
270 String get_current_helper_name (void) const;
273 * @brief Get current ISE name.
275 * @return the current ISE name.
277 String get_current_ise_name (void) const;
280 * @brief Set current ISE style.
282 * @param style The current ISE style.
284 void set_current_ise_style (uint32 &style);
287 * @brief Set current ISE name.
289 * @param name The current ISE name.
291 void set_current_ise_name (String &name);
294 * @brief Set current ISE icon.
296 * @param icon The current ISE icon filepath.
298 void set_current_factory_icon (String &icon);
301 * @brief Set current ISE type.
303 * @param mode The current ISE type.
305 void set_current_toolbar_mode (TOOLBAR_MODE_T mode);
308 * @brief Get current ISE size and position.
310 * @param rect It contains ISE size and position.
312 void get_current_ise_geometry (rectinfo &rect);
315 * @brief Update ISE name to IM Control.
317 * @param name The ISE name.
319 void update_ise_name (String &name);
322 * @brief Update ISE style to IM Control.
324 * @param style The ISE style.
326 void update_ise_style (uint32 &style);
329 * @brief Send candidate panel event to IM Control.
331 * @param nType The candidate panel event type.
332 * @param nValue The candidate panel event value.
334 void update_candidate_panel_event (uint32 nType, uint32 nValue);
337 * @brief Update ISE control panel status to IM Control.
339 * @param showed The control panel status.
341 void update_isf_control_status (const bool showed);
344 * @brief Notice helper ISE to focus out.
346 * @param uuid The helper ISE uuid.
348 void focus_out_helper (const String &uuid);
351 * @brief Notice helper ISE to focus in.
353 * @param uuid The helper ISE uuid.
355 void focus_in_helper (const String &uuid);
358 * @brief Notice helper ISE to show window.
360 * @param uuid The helper ISE uuid.
362 void show_helper (const String &uuid);
365 * @brief Notice helper ISE to hide window.
367 * @param uuid The helper ISE uuid.
369 void hide_helper (const String &uuid);
373 * @brief Set default ISE.
375 * @param ise The variable contains the information of default ISE.
377 void set_default_ise (const DEFAULT_ISE_T &ise);
380 * @brief Set whether shared ISE is for all applications.
382 * @param should_shared_ise The indicator for shared ISE.
384 void set_should_shared_ise (const bool should_shared_ise);
387 * @brief Reset keyboard ISE.
389 * @return true if this operation is successful, otherwise return false.
391 bool reset_keyboard_ise (void) const;
394 * @brief Set whether ISE is changed.
396 * @param changing The indicator for ISE changing.
398 void set_ise_changing (bool changing);
402 * @brief Let the focused IMEngineInstance object move the preedit caret.
404 * @param position The new preedit caret position.
405 * @return true if the command was sent correctly.
407 bool move_preedit_caret (uint32 position);
410 * @brief Request help information from the focused IMEngineInstance object.
411 * @return true if the command was sent correctly.
413 bool request_help (void);
416 * @brief Request factory menu from the focused FrontEnd.
417 * @return true if the command was sent correctly.
419 bool request_factory_menu (void);
422 * @brief Change the factory used by the focused IMEngineInstance object.
424 * @param uuid The uuid of the new factory.
425 * @return true if the command was sent correctly.
427 bool change_factory (const String &uuid);
430 * @brief Notice Helper ISE that candidate more window is showed.
431 * @return true if the command was sent correctly.
433 bool candidate_more_window_show (void);
436 * @brief Notice Helper ISE that candidate more window is hidden.
437 * @return true if the command was sent correctly.
439 bool candidate_more_window_hide (void);
442 * @brief Let the focused IMEngineInstance object
443 * select a aux in current aux string.
445 * @param item The index of the selected aux.
446 * @return true if the command was sent correctly.
448 bool select_aux (uint32 item);
451 * @brief Let the focused IMEngineInstance object
452 * select a candidate in current lookup table.
454 * @param item The index of the selected candidate.
455 * @return true if the command was sent correctly.
457 bool select_candidate (uint32 item);
460 * @brief Let the focused IMEngineInstance object
461 * flip the LookupTable to previous page.
462 * @return true if the command was sent correctly.
464 bool lookup_table_page_up (void);
467 * @brief Let the focused IMEngineInstance object
468 * flip the LookupTable to next page.
469 * @return true if the command was sent correctly.
471 bool lookup_table_page_down (void);
474 * @brief Let the focused IMEngineInstance object
475 * update the page size of the LookupTable.
477 * @param size The new page size.
478 * @return true if the command was sent correctly.
480 bool update_lookup_table_page_size (uint32 size);
483 * @brief Let the focused IMEngineInstance object
484 * select a associate in current associate table.
486 * @param item The index of the selected associate.
487 * @return true if the command was sent correctly.
489 bool select_associate (uint32 item);
492 * @brief Let the focused IMEngineInstance object
493 * flip the AssociateTable to previous page.
494 * @return true if the command was sent correctly.
496 bool associate_table_page_up (void);
499 * @brief Let the focused IMEngineInstance object
500 * flip the AssociateTable to next page.
501 * @return true if the command was sent correctly.
503 bool associate_table_page_down (void);
506 * @brief Let the focused IMEngineInstance object
507 * update the page size of the AssociateTable.
509 * @param size The new page size.
510 * @return true if the command was sent correctly.
512 bool update_associate_table_page_size (uint32 size);
515 * @brief Trigger a property of the focused IMEngineInstance object.
517 * @param property The property key to be triggered.
518 * @return true if the command was sent correctly.
520 bool trigger_property (const String &property);
523 * @brief Trigger a property of a Helper object.
525 * @param client The client id of the Helper object.
526 * @param property The property key to be triggered.
527 * @return true if the command was sent correctly.
529 bool trigger_helper_property (int client,
530 const String &property);
533 * @brief Start a stand alone helper.
535 * @param uuid The uuid of the Helper object to be started.
536 * @return true if the command was sent correctly.
538 bool start_helper (const String &uuid);
541 * @brief Stop a stand alone helper.
543 * @param uuid The uuid of the Helper object to be stopped.
544 * @return true if the command was sent correctly.
546 bool stop_helper (const String &uuid);
549 * @brief Let all FrontEnds and Helpers reload configuration.
550 * @return true if the command was sent correctly.
552 bool reload_config (void);
555 * @brief Let all FrontEnds, Helpers and this Panel exit.
556 * @return true if the command was sent correctly.
561 * @brief Filter the events received from panel client.
563 * Corresponding signal will be emitted in this method.
565 * @param fd The file description for connection.
567 * @return true if the command was sent correctly, otherwise return false.
569 bool filter_event (int fd);
572 * @brief Filter the exception events received from panel client.
574 * Corresponding signal will be emitted in this method.
576 * @param fd The file description for connection.
578 * @return true if the command was sent correctly, otherwise return false.
580 bool filter_exception_event (int fd);
583 * @brief Get PanelAgent server fd.
585 * @return the PanelAgent server fd.
587 int get_server_id (void);
590 * @brief Set the common ISE uuid.
594 void set_common_ise_uuid (String &uuid);
597 * @brief Request to update ISE list.
601 void update_ise_list (std::vector<String> &strList);
605 * @brief Signal: Reload configuration.
607 * When a Helper object send a RELOAD_CONFIG event to this Panel,
608 * this signal will be emitted. Panel should reload all configuration here.
610 Connection signal_connect_reload_config (PanelAgentSlotVoid *slot);
613 * @brief Signal: Turn on.
615 * slot prototype: void turn_on (void);
617 Connection signal_connect_turn_on (PanelAgentSlotVoid *slot);
620 * @brief Signal: Turn off.
622 * slot prototype: void turn_off (void);
624 Connection signal_connect_turn_off (PanelAgentSlotVoid *slot);
627 * @brief Signal: Show panel.
629 * slot prototype: void show_panel (void);
631 Connection signal_connect_show_panel (PanelAgentSlotVoid *slot);
634 * @brief Signal: Hide panel.
636 * slot prototype: void hide_panel (void);
638 Connection signal_connect_hide_panel (PanelAgentSlotVoid *slot);
641 * @brief Signal: Update screen.
643 * slot prototype: void update_screen (int screen);
645 Connection signal_connect_update_screen (PanelAgentSlotInt *slot);
648 * @brief Signal: Update spot location.
650 * slot prototype: void update_spot_location (int x, int y, int top_y);
652 Connection signal_connect_update_spot_location (PanelAgentSlotIntIntInt *slot);
655 * @brief Signal: Update factory information.
657 * slot prototype: void update_factory_info (const PanelFactoryInfo &info);
659 Connection signal_connect_update_factory_info (PanelAgentSlotFactoryInfo *slot);
662 * @brief Signal: start default ise.
664 * slot prototype: void start_default_ise (void);
666 Connection signal_connect_start_default_ise (PanelAgentSlotVoid *slot);
669 * @brief Signal: Get the list of keyboard ise name.
671 * slot prototype: bool get_keyboard_ise_list (std::vector<String> &);
673 Connection signal_connect_get_keyboard_ise_list (PanelAgentSlotBoolStringVector *slot);
676 * @brief Signal: set candidate ui.
678 * slot prototype: void set_candidate_ui (int style, int mode);
680 Connection signal_connect_set_candidate_ui (PanelAgentSlotIntInt *slot);
683 * @brief Signal: get candidate ui.
685 * slot prototype: void get_candidate_ui (int &style, int &mode);
687 Connection signal_connect_get_candidate_ui (PanelAgentSlotIntInt2 *slot);
690 * @brief Signal: get candidate window geometry information.
692 * slot prototype: void get_candidate_geometry (rectinfo &info);
694 Connection signal_connect_get_candidate_geometry (PanelAgentSlotRect *slot);
697 * @brief Signal: set candidate position.
699 * slot prototype: void set_candidate_position (int left, int top);
701 Connection signal_connect_set_candidate_position (PanelAgentSlotIntInt *slot);
704 * @brief Signal: set keyboard ise.
706 * slot prototype: void set_keyboard_ise (int type, const String &ise);
708 Connection signal_connect_set_keyboard_ise (PanelAgentSlotIntString *slot);
711 * @brief Signal: get keyboard ise.
713 * slot prototype: void get_keyboard_ise (String &ise_name);
715 Connection signal_connect_get_keyboard_ise (PanelAgentSlotString2 *slot);
717 * @brief Signal: launch helper ise list selection.
719 * slot prototype: void launch_helper_ise_list_selecton (int withUI);
721 Connection signal_connect_launch_helper_ise_list_selection (PanelAgentSlotInt *slot);
724 * @brief Signal: Show help.
726 * slot prototype: void show_help (const String &help);
728 Connection signal_connect_show_help (PanelAgentSlotString *slot);
731 * @brief Signal: Show factory menu.
733 * slot prototype: void show_factory_menu (const std::vector <PanelFactoryInfo> &menu);
735 Connection signal_connect_show_factory_menu (PanelAgentSlotFactoryInfoVector *slot);
738 * @brief Signal: Show preedit string.
740 * slot prototype: void show_preedit_string (void):
742 Connection signal_connect_show_preedit_string (PanelAgentSlotVoid *slot);
745 * @brief Signal: Show aux string.
747 * slot prototype: void show_aux_string (void):
749 Connection signal_connect_show_aux_string (PanelAgentSlotVoid *slot);
752 * @brief Signal: Show lookup table.
754 * slot prototype: void show_lookup_table (void):
756 Connection signal_connect_show_lookup_table (PanelAgentSlotVoid *slot);
759 * @brief Signal: Show associate table.
761 * slot prototype: void show_associate_table (void):
763 Connection signal_connect_show_associate_table (PanelAgentSlotVoid *slot);
766 * @brief Signal: Hide preedit string.
768 * slot prototype: void hide_preedit_string (void);
770 Connection signal_connect_hide_preedit_string (PanelAgentSlotVoid *slot);
773 * @brief Signal: Hide aux string.
775 * slot prototype: void hide_aux_string (void);
777 Connection signal_connect_hide_aux_string (PanelAgentSlotVoid *slot);
780 * @brief Signal: Hide lookup table.
782 * slot prototype: void hide_lookup_table (void);
784 Connection signal_connect_hide_lookup_table (PanelAgentSlotVoid *slot);
787 * @brief Signal: Hide associate table.
789 * slot prototype: void hide_associate_table (void);
791 Connection signal_connect_hide_associate_table (PanelAgentSlotVoid *slot);
794 * @brief Signal: Update preedit string.
796 * slot prototype: void update_preedit_string (const String &str, const AttributeList &attrs);
797 * - str -- The UTF-8 encoded string to be displayed in preedit area.
798 * - attrs -- The attributes of the string.
800 Connection signal_connect_update_preedit_string (PanelAgentSlotAttributeString *slot);
803 * @brief Signal: Update preedit caret.
805 * slot prototype: void update_preedit_caret (int caret);
807 Connection signal_connect_update_preedit_caret (PanelAgentSlotInt *slot);
810 * @brief Signal: Update aux string.
812 * slot prototype: void update_aux_string (const String &str, const AttributeList &attrs);
813 * - str -- The UTF-8 encoded string to be displayed in aux area.
814 * - attrs -- The attributes of the string.
816 Connection signal_connect_update_aux_string (PanelAgentSlotAttributeString *slot);
819 * @brief Signal: Update lookup table.
821 * slot prototype: void update_lookup_table (const LookupTable &table);
822 * - table -- The new LookupTable object.
824 Connection signal_connect_update_lookup_table (PanelAgentSlotLookupTable *slot);
827 * @brief Signal: Update associate table.
829 * slot prototype: void update_associate_table (const LookupTable &table);
830 * - table -- The new LookupTable object.
832 Connection signal_connect_update_associate_table (PanelAgentSlotLookupTable *slot);
835 * @brief Signal: Register properties.
837 * Register properties of the focused instance.
839 * slot prototype: void register_properties (const PropertyList &props);
840 * - props -- The properties to be registered.
842 Connection signal_connect_register_properties (PanelAgentSlotPropertyList *slot);
845 * @brief Signal: Update property.
847 * Update a property of the focused instance.
849 * slot prototype: void update_property (const Property &prop);
850 * - prop -- The property to be updated.
852 Connection signal_connect_update_property (PanelAgentSlotProperty *slot);
855 * @brief Signal: Register properties of a helper.
857 * slot prototype: void register_helper_properties (int id, const PropertyList &props);
858 * - id -- The client id of the helper object.
859 * - props -- The properties to be registered.
861 Connection signal_connect_register_helper_properties (PanelAgentSlotIntPropertyList *slot);
864 * @brief Signal: Update helper property.
866 * slot prototype: void update_helper_property (int id, const Property &prop);
867 * - id -- The client id of the helper object.
868 * - prop -- The property to be updated.
870 Connection signal_connect_update_helper_property (PanelAgentSlotIntProperty *slot);
873 * @brief Signal: Register a helper object.
875 * A newly started helper object will send this event to Panel.
877 * slot prototype: register_helper (int id, const HelperInfo &helper);
878 * - id -- The client id of the helper object.
879 * - helper -- The information of the helper object.
881 Connection signal_connect_register_helper (PanelAgentSlotIntHelperInfo *slot);
884 * @brief Signal: Remove a helper object.
886 * If a running helper close its connection to Panel, then this signal will be triggered to
887 * tell Panel to remove all data associated to this helper.
889 * slot prototype: void remove_helper (int id);
890 * - id -- The client id of the helper object to be removed.
892 Connection signal_connect_remove_helper (PanelAgentSlotInt *slot);
895 * @brief Signal: Start an ise with the speficied uuid
897 * slot prototype: void set_active_ise_by_uuid (const String& uuid);
898 * - uuid -- the uuid of the ise object
900 Connection signal_connect_set_active_ise_by_uuid (PanelAgentSlotStringBool *slot);
903 * @brief Signal: Start an ise with the speficied name
905 * slot prototype: void set_active_ise_by_name (const String& name);
906 * - name -- the name of the ise object
908 Connection signal_connect_set_active_ise_by_name (PanelAgentSlotString *slot);
911 * @brief Signal: Focus in panel.
913 * slot prototype: void focus_in (void);
915 Connection signal_connect_focus_in (PanelAgentSlotVoid *slot);
918 * @brief Signal: Focus out panel.
920 * slot prototype: void focus_out (void);
922 Connection signal_connect_focus_out (PanelAgentSlotVoid *slot);
925 * @brief Signal: Get the list of ise name.
927 * slot prototype: bool get_ise_list (std::vector<String> &);
929 Connection signal_connect_get_ise_list (PanelAgentSlotBoolStringVector *slot);
932 * @brief Signal: Get the list of selected language name.
934 * slot prototype: void get_language_list (std::vector<String> &);
936 Connection signal_connect_get_language_list (PanelAgentSlotStringVector *slot);
939 * @brief Signal: Get the all languages name.
941 * slot prototype: void get_all_language (std::vector<String> &);
943 Connection signal_connect_get_all_language (PanelAgentSlotStringVector *slot);
945 * @brief Signal: Get the language list of a specified ise.
947 * slot prototype: void get_ise_language (char *, std::vector<String> &);
949 Connection signal_connect_get_ise_language (PanelAgentSlotStrStringVector *slot);
952 * @brief Signal: Set the isf language.
954 * slot prototype: void get_ise_language (char *, std::vector<String> &);
956 Connection signal_connect_set_isf_language (PanelAgentSlotString *slot);
959 * @brief Signal: Get the ise information by uuid.
961 * slot prototype: bool get_ise_info_by_uuid (const String &, ISE_INFO &);
963 Connection signal_connect_get_ise_info_by_uuid (PanelAgentSlotStringISEINFO *slot);
966 * @brief Signal: Get the ise information by name.
968 * slot prototype: bool get_ise_info_by_name (const String &, ISE_INFO &);
970 Connection signal_connect_get_ise_info_by_name (PanelAgentSlotStringISEINFO *slot);
973 * @brief Signal: send key event in panel.
975 * slot prototype: void send_key_event (const KeyEvent &);
977 Connection signal_connect_send_key_event (PanelAgentSlotKeyEvent *slot);
980 * @brief Signal: A transaction is started.
982 * This signal infers that the Panel should disable update before this transaction finishes.
984 * slot prototype: void signal_connect_transaction_start (void);
986 Connection signal_connect_transaction_start (PanelAgentSlotVoid *slot);
989 * @brief Signal: Accept connection for this PanelAgent.
991 * slot prototype: void accept_connection (int fd);
992 * - fd -- the file description for connection
994 Connection signal_connect_accept_connection (PanelAgentSlotInt *slot);
997 * @brief Signal: Close connection for this PanelAgent.
999 * slot prototype: void close_connection (int fd);
1000 * - fd -- the file description for connection
1002 Connection signal_connect_close_connection (PanelAgentSlotInt *slot);
1005 * @brief Signal: Exit application for this PanelAgent.
1007 * slot prototype: void app_exit (void);
1009 Connection signal_connect_exit (PanelAgentSlotVoid *slot);
1012 * @brief Signal: A transaction is finished.
1014 * This signal will get emitted when a transaction is finished. This implys to re-enable
1017 * slot prototype: void signal_connect_transaction_end (void);
1019 Connection signal_connect_transaction_end (PanelAgentSlotVoid *slot);
1022 * @brief Signal: Lock the exclusive lock for this PanelAgent.
1024 * The panel program should provide a thread lock and hook a slot into this signal to lock it.
1025 * PanelAgent will use this lock to ensure the data integrity.
1027 * slot prototype: void lock (void);
1029 Connection signal_connect_lock (PanelAgentSlotVoid *slot);
1032 * @brief Signal: Unlock the exclusive lock for this PanelAgent.
1034 * slot prototype: void unlock (void);
1036 Connection signal_connect_unlock (PanelAgentSlotVoid *slot);
1041 } /* namespace scim */
1043 #endif /* __SCIM_PANEL_AGENT_H */
1046 vi:ts=4:nowrap:ai:expandtab