Revision: 18193
http://svn.sourceforge.net/gaim/?rev=18193&view=rev
Author: eblanton
Date: 2007-02-24 19:03:11 -0800 (Sat, 24 Feb 2007)
Log Message:
-----------
Tcl savedstatus command, again from Dossy Shiobara. Dossy is on fire.
Modified Paths:
--------------
trunk/libgaim/plugins/tcl/signal-test.tcl
trunk/libgaim/plugins/tcl/tcl_cmds.c
trunk/libgaim/plugins/tcl/tcl_gaim.h
Modified: trunk/libgaim/plugins/tcl/signal-test.tcl
===================================================================
--- trunk/libgaim/plugins/tcl/signal-test.tcl 2007-02-25 03:02:00 UTC (rev 18192)
+++ trunk/libgaim/plugins/tcl/signal-test.tcl 2007-02-25 03:03:11 UTC (rev 18193)
@@ -108,6 +108,11 @@
gaim::debug -info "tcl signal" "plugin-unload [list $args]"
}
+gaim::signal connect [gaim::savedstatuses handle] savedstatus-changed args {
+ gaim::debug -info "tcl signal" "savedstatus-changed [list $args]"
+ gaim::debug -info "tcl signal" "gaim::savedstatus current = [gaim::savedstatus current]"
+}
+
proc plugin_init { } {
list "Tcl Signal Test" \
"$gaim::version" \
Modified: trunk/libgaim/plugins/tcl/tcl_cmds.c
===================================================================
--- trunk/libgaim/plugins/tcl/tcl_cmds.c 2007-02-25 03:02:00 UTC (rev 18192)
+++ trunk/libgaim/plugins/tcl/tcl_cmds.c 2007-02-25 03:03:11 UTC (rev 18193)
@@ -29,6 +29,7 @@
#include "server.h"
#include "notify.h"
#include "blist.h"
+#include "savedstatuses.h"
#include "debug.h"
#include "prefs.h"
#include "core.h"
@@ -1274,6 +1275,46 @@
return TCL_OK;
}
+int tcl_cmd_savedstatus(ClientData unused, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
+{
+ Tcl_Obj *result = Tcl_GetObjResult(interp);
+ const char *cmds[] = { "current", "handle", NULL };
+ enum { CMD_SAVEDSTATUS_CURRENT, CMD_SAVEDSTATUS_HANDLE } cmd;
+ int error;
+ GaimSavedStatus *saved_status;
+
+ if (objc < 2) {
+ Tcl_WrongNumArgs(interp, 1, objv, "subcommand ?args?");
+ return TCL_ERROR;
+ }
+
+ if ((error = Tcl_GetIndexFromObj(interp, objv[1], cmds, "subcommand", 0, (int *)&cmd)) != TCL_OK)
+ return error;
+
+ switch (cmd) {
+ case CMD_SAVEDSTATUS_CURRENT:
+ if (objc != 2) {
+ Tcl_WrongNumArgs(interp, 2, objv, "");
+ return TCL_ERROR;
+ }
+ if ((saved_status = gaim_savedstatus_get_current()) == NULL)
+ return TCL_ERROR;
+ Tcl_ListObjAppendElement(interp, result, Tcl_NewStringObj(gaim_savedstatus_get_title(saved_status), -1));
+ Tcl_ListObjAppendElement(interp, result, Tcl_NewIntObj(gaim_savedstatus_get_type(saved_status)));
+ Tcl_ListObjAppendElement(interp, result, Tcl_NewStringObj(gaim_savedstatus_get_message(saved_status), -1));
+ break;
+ case CMD_SAVEDSTATUS_HANDLE:
+ if (objc != 2) {
+ Tcl_WrongNumArgs(interp, 2, objv, "");
+ return TCL_ERROR;
+ }
+ Tcl_SetIntObj(result, (int)gaim_savedstatuses_get_handle());
+ break;
+ }
+
+ return TCL_OK;
+}
+
int tcl_cmd_send_im(ClientData unused, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
GaimConnection *gc;
Modified: trunk/libgaim/plugins/tcl/tcl_gaim.h
===================================================================
--- trunk/libgaim/plugins/tcl/tcl_gaim.h 2007-02-25 03:02:00 UTC (rev 18192)
+++ trunk/libgaim/plugins/tcl/tcl_gaim.h 2007-02-25 03:03:11 UTC (rev 18193)
@@ -107,6 +107,7 @@
Tcl_ObjCmdProc tcl_cmd_plugins;
Tcl_ObjCmdProc tcl_cmd_prefs;
Tcl_ObjCmdProc tcl_cmd_presence;
+Tcl_ObjCmdProc tcl_cmd_savedstatus;
Tcl_ObjCmdProc tcl_cmd_send_im;
Tcl_ObjCmdProc tcl_cmd_signal;
Tcl_ObjCmdProc tcl_cmd_status;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|