Yattm - unified GTK instant-messaging client | |
[Generated for version 0.2-17 - Mon Jan 6 19:01:23 GMT+1 2003] |
This graph shows which files directly or indirectly include this file:
Go to the source code of this file.
Data Structures | |
struct | _trigger |
Typedefs | |
typedef _trigger | trigger_struct |
Enumerations | |
enum | trigger_type { NO_TYPE, USER_ONLINE, USER_OFFLINE, USER_ON_OFF_LINE } |
enum | trigger_action { NO_ACTION, PLAY_SOUND, EXECUTE, DIALOG, POUNCE } |
Functions | |
void | destroy_window () |
trigger_type | get_trigger_type_num (char *text) |
trigger_action | get_trigger_action_num (char *text) |
char * | get_trigger_type_text (trigger_type type) |
char * | get_trigger_action_text (trigger_action action) |
void | show_trigger_window () |
void | do_trigger_online (struct contact *con) |
void | do_trigger_offline (struct contact *con) |
void | do_trigger_action (struct contact *con, int trigger_type) |
|
|
|
Definition at line 34 of file trigger.h. Referenced by get_trigger_action_num(), and get_trigger_action_text().
00034 {NO_ACTION, PLAY_SOUND, EXECUTE, DIALOG, POUNCE} trigger_action; |
|
Definition at line 33 of file trigger.h. Referenced by do_trigger_action(), get_trigger_type_num(), and get_trigger_type_text().
00033 {NO_TYPE, USER_ONLINE, USER_OFFLINE, USER_ON_OFF_LINE} trigger_type; |
|
Definition at line 184 of file trigger.c. References edit_trigger_window, and window_open. Referenced by set_button_callback(), and show_trigger_window().
00185 { 00186 window_open = 0; 00187 00188 gtk_widget_destroy(edit_trigger_window); 00189 } |
|
Definition at line 87 of file trigger.c. References _, _trigger::action, DBG_CORE, DIALOG, eb_debug, EXECUTE, NO_ACTION, _trigger::param, PLAY_SOUND, playsoundfile(), POUNCE, pounce_contact(), quick_message(), contact::trigger, trigger_type, _trigger::type, and USER_ONLINE. Referenced by do_trigger_offline(), and do_trigger_online().
00088 { 00089 gchar param_string[2048]; 00090 gchar *substr; 00091 gchar *basestr; 00092 00093 strcpy(param_string, "\0"); 00094 substr = NULL; 00095 00096 if(con->trigger.action == NO_ACTION) 00097 return; 00098 if(strlen(con->trigger.param) >= (sizeof(param_string)/2)) 00099 { 00100 eb_debug(DBG_CORE, "Trigger parameter too long - ignoring"); 00101 return; 00102 } 00103 /* replace all occurrences of %t with "online" or "offline" */ 00104 basestr = con->trigger.param; 00105 while ((substr = strstr(basestr, "%t")) != NULL) 00106 { 00107 if (substr[-1] == '%') 00108 { 00109 strncat(param_string, basestr, (size_t)(substr-basestr + 2)); 00110 basestr=substr + 2; 00111 continue; 00112 } 00113 else 00114 { 00115 strncat(param_string, basestr, (size_t)(substr-basestr)); 00116 strcat(param_string, ((trigger_type == USER_ONLINE) ? 00117 _("online") : _("offline"))); 00118 basestr = substr + 2; 00119 } 00120 if((strlen(param_string) + strlen(basestr) + 8) > 00121 sizeof(param_string)) 00122 { 00123 eb_debug(DBG_CORE, "Result string may be too long, no substitution done\n"); 00124 basestr = con->trigger.param; 00125 strcpy(param_string, ""); 00126 break; 00127 } 00128 } 00129 /* copy remainder (or all if no subst done) */ 00130 strcat(param_string, basestr); 00131 00132 if(con->trigger.action == PLAY_SOUND) 00133 { 00134 playsoundfile(param_string); 00135 } else if(con->trigger.action == EXECUTE) 00136 { 00137 system(param_string); 00138 } else if(con->trigger.action == DIALOG) 00139 { 00140 quick_message(param_string); 00141 } else if(con->trigger.action == POUNCE && con->trigger.type == USER_ONLINE) 00142 { 00143 pounce_contact(con, param_string); 00144 } 00145 00146 } |
|
Definition at line 156 of file trigger.c. References do_trigger_action(), contact::trigger, _trigger::type, USER_OFFLINE, and USER_ON_OFF_LINE. Referenced by contact_logoff().
00157 { 00158 if((con->trigger.type == USER_OFFLINE) || (con->trigger.type == USER_ON_OFF_LINE)) 00159 { 00160 do_trigger_action(con, USER_OFFLINE); 00161 } 00162 } |
|
Definition at line 148 of file trigger.c. References do_trigger_action(), contact::trigger, _trigger::type, USER_ON_OFF_LINE, and USER_ONLINE. Referenced by set_account_icon().
00149 { 00150 if ((con->trigger.type == USER_ONLINE) || (con->trigger.type == USER_ON_OFF_LINE)) 00151 { 00152 do_trigger_action(con, USER_ONLINE); 00153 } 00154 } |
|
Referenced by yyparse(). |
|
Definition at line 254 of file trigger.c. References DIALOG, EXECUTE, PLAY_SOUND, POUNCE, and trigger_action.
00255 { 00256 if(action == PLAY_SOUND) 00257 return "PLAY_SOUND"; 00258 else if(action == EXECUTE) 00259 return "EXECUTE"; 00260 else if(action == DIALOG) 00261 return "DIALOG"; 00262 else if(action == POUNCE) 00263 return "POUNCE"; 00264 else 00265 return "\0"; 00266 } |
|
Referenced by yyparse(). |
|
Definition at line 241 of file trigger.c. References trigger_type, USER_OFFLINE, USER_ON_OFF_LINE, and USER_ONLINE. Referenced by write_contact_list().
00242 { 00243 if(type == USER_ONLINE) 00244 return "USER_ONLINE"; 00245 else if(type == USER_OFFLINE) 00246 return "USER_OFFLINE"; 00247 else if(type == USER_ON_OFF_LINE) 00248 return "USER_ON_OFF_LINE"; 00249 else 00250 return "\0"; 00251 00252 } |
|
Referenced by edit_trigger_callback(). |