summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEtan Reisner <deryni@pidgin.im>2007-05-20 05:48:56 +0000
committerEtan Reisner <deryni@pidgin.im>2007-05-20 05:48:56 +0000
commit45f94347bcbd688f595b5c05830e007d67a694c7 (patch)
treebefc691eca52d23635b765328b4a95724de0ac03
parentdd5c803572a2fc772daf275e766ac4c3c8a49083 (diff)
downloadpidgin-45f94347bcbd688f595b5c05830e007d67a694c7.tar.gz
Warmenhove a patch from Steven Danna to add bindings to all the savedstatus.h
functions for perl. Closes #774
-rw-r--r--COPYRIGHT1
-rw-r--r--libpurple/plugins/perl/common/SavedStatuses.xs124
-rw-r--r--libpurple/plugins/perl/common/module.h2
-rw-r--r--libpurple/plugins/perl/common/typemap4
4 files changed, 116 insertions, 15 deletions
diff --git a/COPYRIGHT b/COPYRIGHT
index ce724013e5..739aee8b11 100644
--- a/COPYRIGHT
+++ b/COPYRIGHT
@@ -87,6 +87,7 @@ Adam Cowell
Palmer Cox
Jeramey Crawford
Michael Culbertson
+Steven Danna
Martijn Dekker
Vinicius Depizzol
Philip Derrin
diff --git a/libpurple/plugins/perl/common/SavedStatuses.xs b/libpurple/plugins/perl/common/SavedStatuses.xs
index 6df794270c..09ae918740 100644
--- a/libpurple/plugins/perl/common/SavedStatuses.xs
+++ b/libpurple/plugins/perl/common/SavedStatuses.xs
@@ -1,40 +1,128 @@
#include "module.h"
+/* I can't get this to work, both with and without the const on the return
+ * type I get errors from gcc. One way about ignoring types in a cast, and the
+ * other about assigning to read-only variables.
+const Purple::StatusType
+purple_savedstatus_substatus_get_type(substatus)
+ const Purple::SavedStatus::Sub substatus
+*/
+
MODULE = Purple::SavedStatus PACKAGE = Purple::SavedStatus PREFIX = purple_savedstatus_
PROTOTYPES: ENABLE
+Purple::SavedStatus
+purple_savedstatus_new(title, type)
+ const char *title
+ Purple::StatusPrimitive type
+
+void
+purple_savedstatus_set_title(status, title)
+ Purple::SavedStatus status
+ const char *title
+
+void
+purple_savedstatus_set_type(status, type)
+ Purple::SavedStatus status
+ Purple::StatusPrimitive type
+
+void
+purple_savedstatus_set_message(status, message)
+ Purple::SavedStatus status
+ const char *message
+
+void
+purple_savedstatus_set_substatus(status, account, type, message)
+ Purple::SavedStatus status
+ Purple::Account account
+ Purple::StatusType type
+ const char *message
+
+void
+purple_savedstatus_unset_substatus(status, account)
+ Purple::SavedStatus status
+ Purple::Account account
+
gboolean
purple_savedstatus_delete(title)
const char *title
Purple::SavedStatus
+purple_savedstatus_get_current()
+
+Purple::SavedStatus
+purple_savedstatus_get_default()
+
+Purple::SavedStatus
+purple_savedstatus_get_idleaway()
+
+gboolean
+purple_savedstatus_is_idleaway()
+
+void
+purple_savedstatus_set_idleaway(idleaway)
+ gboolean idleaway
+
+Purple::SavedStatus
+purple_savedstatus_get_startup()
+
+Purple::SavedStatus
purple_savedstatus_find(title)
const char *title
-const char *
-purple_savedstatus_get_message(saved_status)
- Purple::SavedStatus saved_status
+Purple::SavedStatus
+purple_savedstatus_find_by_creation_time(creation_time)
+ time_t creation_time
+
+Purple::SavedStatus
+purple_savedstatus_find_transient_by_type_and_message(type, message)
+ Purple::StatusPrimitive type
+ const char *message
+
+gboolean
+purple_savedstatus_is_transient(saved_status)
+ const Purple::SavedStatus saved_status
const char *
purple_savedstatus_get_title(saved_status)
- Purple::SavedStatus saved_status
+ const Purple::SavedStatus saved_status
Purple::StatusPrimitive
purple_savedstatus_get_type(saved_status)
+ const Purple::SavedStatus saved_status
+
+const char *
+purple_savedstatus_get_message(saved_status)
+ const Purple::SavedStatus saved_status
+
+time_t
+purple_savedstatus_get_creation_time(saved_status)
+ const Purple::SavedStatus saved_status
+
+gboolean
+purple_savedstatus_has_substatuses(saved_status)
+ const Purple::SavedStatus saved_status
+
+Purple::SavedStatus::Sub
+purple_savedstatus_get_substatus(saved_status, account)
Purple::SavedStatus saved_status
+ Purple::Account account
-Purple::SavedStatus
-purple_savedstatus_new(title, type)
- const char *title
- Purple::StatusPrimitive type
+void
+purple_savedstatus_activate(saved_status)
+ Purple::SavedStatus saved_status
void
-purple_savedstatus_set_message(status, message)
- Purple::SavedStatus status
- const char *message
+purple_savedstatus_activate_for_account(saved_status, account)
+ const Purple::SavedStatus saved_status
+ Purple::Account account
-Purple::SavedStatus
-purple_savedstatus_get_current()
+MODULE = Purple::SavedStatus::Sub PACKAGE = Purple::SavedStatus::Sub PREFIX = purple_savedstatus_substatus_
+PROTOTYPES: ENABLE
+
+const char *
+purple_savedstatus_substatus_get_message(substatus)
+ const Purple::SavedStatus::Sub substatus
MODULE = Purple::SavedStatus PACKAGE = Purple::SavedStatuses PREFIX = purple_savedstatuses_
PROTOTYPES: ENABLE
@@ -48,6 +136,16 @@ PPCODE:
XPUSHs(sv_2mortal(purple_perl_bless_object(l->data, "Purple::SavedStatus")));
}
+void
+purple_savedstatuses_get_popular(how_many)
+ unsigned int how_many
+PREINIT:
+ const GList *l;
+PPCODE:
+ for (l = purple_savedstatuses_get_popular(how_many); l != NULL; l = l->next) {
+ XPUSHs(sv_2mortal(purple_perl_bless_object(l->data, "Purple::SavedStatus")));
+ }
+
Purple::Handle
purple_savedstatuses_get_handle()
diff --git a/libpurple/plugins/perl/common/module.h b/libpurple/plugins/perl/common/module.h
index d399802c44..f4d38d7ec3 100644
--- a/libpurple/plugins/perl/common/module.h
+++ b/libpurple/plugins/perl/common/module.h
@@ -236,7 +236,7 @@ typedef PurpleRoomlistUiOps * Purple__Roomlist__UiOps;
/* savedstatuses.h */
typedef PurpleSavedStatus * Purple__SavedStatus;
-typedef PurpleSavedStatusSub * Purple__SavedStatusSub;
+typedef PurpleSavedStatusSub * Purple__SavedStatus__Sub;
/* sound.h */
typedef PurpleSoundEventID Purple__SoundEventID;
diff --git a/libpurple/plugins/perl/common/typemap b/libpurple/plugins/perl/common/typemap
index 6c7d82b91c..859cabc3a3 100644
--- a/libpurple/plugins/perl/common/typemap
+++ b/libpurple/plugins/perl/common/typemap
@@ -137,7 +137,9 @@ Purple::RoomlistFieldType T_IV
Purple::RoomlistRoomType T_IV
Purple::SavedStatus T_PurpleObj
-Purple::SavedStatusSub T_PurpleObj
+const Purple::SavedStatus T_PurpleObj
+Purple::SavedStatus::Sub T_PurpleObj
+const Purple::SavedStatus::Sub T_PurpleObj
Purple::SoundEventID T_IV
Purple::Sound::UiOps T_PurpleObj