From: <ebl...@us...> - 2007-02-25 03:03:11
|
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. |