changeset 10737:b7f0bc436179

[gaim-migrate @ 12339] Some notes committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Sat, 26 Mar 2005 19:19:33 +0000
parents 703f722d076f
children 55af3fa46329
files src/gtkconv.c src/plugin.c src/status.h
diffstat 3 files changed, 51 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/gtkconv.c	Sat Mar 26 19:13:15 2005 +0000
+++ b/src/gtkconv.c	Sat Mar 26 19:19:33 2005 +0000
@@ -4766,6 +4766,7 @@
 		gtk_font_options |= GTK_IMHTML_USE_POINTSIZE;
 	}
 
+	/* TODO: These colors should not be hardcoded so log.c can use them */
 	if (flags & GAIM_MESSAGE_SYSTEM) {
 		g_snprintf(buf, BUF_LONG, "<FONT SIZE=\"2\">(%s)</FONT> <B>%s</B>",
 				   mdate, message);
--- a/src/plugin.c	Sat Mar 26 19:13:15 2005 +0000
+++ b/src/plugin.c	Sat Mar 26 19:19:33 2005 +0000
@@ -209,6 +209,13 @@
 
 	if (plugin->native_plugin) {
 		const char *error;
+		/*
+		 * TODO: Should pass the G_MODULE_BIND_LOCAL parameter to
+		 *       g_module_open().  It enforces plugin separation so that
+		 *       symbols from plugins are not added to the global name
+		 *       space.  However, it caused problems with using a
+		 *       perl script for me.  If it works for you then go for it.
+		 */
 		plugin->handle = g_module_open(filename, 0);
 
 		if (plugin->handle == NULL)
--- a/src/status.h	Sat Mar 26 19:13:15 2005 +0000
+++ b/src/status.h	Sat Mar 26 19:19:33 2005 +0000
@@ -25,6 +25,49 @@
 #ifndef _GAIM_STATUS_H_
 #define _GAIM_STATUS_H_
 
+/**
+ * TODO: Someone figure out if we need to do something to get
+ *       this in the Doxygen generated docs.
+ *
+ * A brief explanation of the status API:
+ *
+ * GaimStatusType's are created by each PRPL.  They outline the
+ * available statuses of the protocol.  AIM, for example, supports
+ * and available state with an optional available message, an away
+ * state with a mandatory message, and an invisible state (which is
+ * technically "independant" of the other two, but we'll get into
+ * that later).  GaimStatusTypes are very permanent.  They are
+ * hardcoded in each PRPL and will not change often.  And because
+ * they are hardcoded, they do not need to be saved to any XML file.
+ *
+ * A GaimStatus can be thought of as an "instance" of a GaimStatusType.
+ * If you've familiar with object-oriented programming languages
+ * then this should be immediately clear.  Say, for example, that
+ * one of your AIM buddies has set himself as "away."  You have a
+ * GaimBuddy node for this person in your buddy list.  Gaim wants
+ * to mark this buddy as "away," so it creates a new GaimStatus.
+ * The GaimStatus has its GaimStatusType set to the "away" state
+ * for the oscar PRPL.  The GaimStatus also contains the buddy's
+ * away message.  GaimStatuses are sometimes saved, depending on
+ * the context.  The current GaimStatuses associated with each of
+ * your accounts is saved so that the next time you start Gaim,
+ * your accounts will be set to their last know statuses.  There
+ * is also a list of saved statuses that are written to the
+ * status.xml file.
+ *
+ * A GaimPresence is like a collection of GaimStatuses (plus some
+ * other random info).  For any buddy, or for any one of your accounts,
+ * or for any person you're chatting with, you may know various
+ * amounts of information.  This information is all contained in
+ * one GaimPresence.  If one of your buddies is away and idle,
+ * then the presence contains the GaimStatus for their awayness,
+ * and it contains their current idle time.  GaimPresences are
+ * never saved to disk.  The information they contain is only relevent
+ * for the current GaimSession.
+ *
+ * TODO: Talk about independant statuses.
+ */
+
 typedef struct _GaimStatusType      GaimStatusType;
 typedef struct _GaimStatusAttr      GaimStatusAttr;
 typedef struct _GaimPresence        GaimPresence;