summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTimo Sirainen <cras@irssi.org>2000-11-25 23:05:50 +0000
committercras <cras@dbcabf3a-b0e7-0310-adc4-f8d773084564>2000-11-25 23:05:50 +0000
commit746bd9b4f0b6b54874068bd0c77b021e0dfaaaac (patch)
tree5dc11de573b9baae7977e556a92add4c4f383410 /src
parent2e96f68445fc079b142dca7964c831bbe778181b (diff)
downloadirssi-746bd9b4f0b6b54874068bd0c77b021e0dfaaaac.zip
added functions from fe-windows.h and window-items.h
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@868 dbcabf3a-b0e7-0310-adc4-f8d773084564
Diffstat (limited to 'src')
-rw-r--r--src/perl/common/Channel.xs40
-rw-r--r--src/perl/common/Core.xs190
-rw-r--r--src/perl/common/Irssi.pm3
-rw-r--r--src/perl/common/Window.xs173
-rw-r--r--src/perl/common/module.h1
5 files changed, 380 insertions, 27 deletions
diff --git a/src/perl/common/Channel.xs b/src/perl/common/Channel.xs
index 8a2cd824..7ebc927b 100644
--- a/src/perl/common/Channel.xs
+++ b/src/perl/common/Channel.xs
@@ -41,6 +41,26 @@ channel_find(server, name)
Irssi::Server server
char *name
+void
+nicklist_get_same(server, nick)
+ Irssi::Server server
+ char *nick
+PREINIT:
+ GSList *list, *tmp;
+ HV *nickstash;
+PPCODE:
+ list = nicklist_get_same(server, nick);
+
+ nickstash = gv_stashpv("Irssi::Nick", 0);
+ for (tmp = list; tmp != NULL; tmp = tmp->next->next) {
+ CHANNEL_REC *channel = tmp->data;
+
+ XPUSHs(sv_2mortal(sv_bless(newRV_noinc(newSViv(GPOINTER_TO_INT(channel))),
+ irssi_get_stash(channel))));
+ XPUSHs(sv_2mortal(sv_bless(newRV_noinc(newSViv(GPOINTER_TO_INT(tmp->next->data))), nickstash)));
+ }
+ g_slist_free(list);
+
#*******************************
MODULE = Irssi PACKAGE = Irssi::Channel PREFIX = channel_
#*******************************
@@ -107,26 +127,6 @@ PPCODE:
}
g_slist_free(list);
-void
-nicklist_get_same(server, nick)
- Irssi::Server server
- char *nick
-PREINIT:
- GSList *list, *tmp;
- HV *nickstash;
-PPCODE:
- list = nicklist_get_same(server, nick);
-
- nickstash = gv_stashpv("Irssi::Nick", 0);
- for (tmp = list; tmp != NULL; tmp = tmp->next->next) {
- CHANNEL_REC *channel = tmp->data;
-
- XPUSHs(sv_2mortal(sv_bless(newRV_noinc(newSViv(GPOINTER_TO_INT(channel))),
- irssi_get_stash(channel))));
- XPUSHs(sv_2mortal(sv_bless(newRV_noinc(newSViv(GPOINTER_TO_INT(tmp->next->data))), nickstash)));
- }
- g_slist_free(list);
-
#*******************************
MODULE = Irssi PACKAGE = Irssi::Nick
#*******************************
diff --git a/src/perl/common/Core.xs b/src/perl/common/Core.xs
index 4b7c7d48..c29a17dd 100644
--- a/src/perl/common/Core.xs
+++ b/src/perl/common/Core.xs
@@ -91,6 +91,196 @@ input_remove(tag)
CODE:
perl_source_remove(tag);
+# maybe there's some easier way than this..? :)
+int
+MSGLEVEL_CRAP()
+CODE:
+ RETVAL = MSGLEVEL_CRAP;
+OUTPUT:
+ RETVAL
+
+int
+MSGLEVEL_MSGS()
+CODE:
+ RETVAL = MSGLEVEL_MSGS;
+OUTPUT:
+ RETVAL
+
+int
+MSGLEVEL_PUBLIC()
+CODE:
+ RETVAL = MSGLEVEL_PUBLIC;
+OUTPUT:
+ RETVAL
+
+int
+MSGLEVEL_NOTICES()
+CODE:
+ RETVAL = MSGLEVEL_NOTICES;
+OUTPUT:
+ RETVAL
+
+int
+MSGLEVEL_SNOTES()
+CODE:
+ RETVAL = MSGLEVEL_SNOTES;
+OUTPUT:
+ RETVAL
+
+int
+MSGLEVEL_CTCPS()
+CODE:
+ RETVAL = MSGLEVEL_CTCPS;
+OUTPUT:
+ RETVAL
+
+int
+MSGLEVEL_ACTIONS()
+CODE:
+ RETVAL = MSGLEVEL_ACTIONS;
+OUTPUT:
+ RETVAL
+
+int
+MSGLEVEL_JOINS()
+CODE:
+ RETVAL = MSGLEVEL_JOINS;
+OUTPUT:
+ RETVAL
+
+int
+MSGLEVEL_PARTS()
+CODE:
+ RETVAL = MSGLEVEL_PARTS;
+OUTPUT:
+ RETVAL
+
+int
+MSGLEVEL_QUITS()
+CODE:
+ RETVAL = MSGLEVEL_QUITS;
+OUTPUT:
+ RETVAL
+
+int
+MSGLEVEL_KICKS()
+CODE:
+ RETVAL = MSGLEVEL_KICKS;
+OUTPUT:
+ RETVAL
+
+int
+MSGLEVEL_MODES()
+CODE:
+ RETVAL = MSGLEVEL_MODES;
+OUTPUT:
+ RETVAL
+
+int
+MSGLEVEL_TOPICS()
+CODE:
+ RETVAL = MSGLEVEL_TOPICS;
+OUTPUT:
+ RETVAL
+
+int
+MSGLEVEL_WALLOPS()
+CODE:
+ RETVAL = MSGLEVEL_WALLOPS;
+OUTPUT:
+ RETVAL
+
+int
+MSGLEVEL_INVITES()
+CODE:
+ RETVAL = MSGLEVEL_INVITES;
+OUTPUT:
+ RETVAL
+
+int
+MSGLEVEL_NICKS()
+CODE:
+ RETVAL = MSGLEVEL_NICKS;
+OUTPUT:
+ RETVAL
+
+int
+MSGLEVEL_DCC()
+CODE:
+ RETVAL = MSGLEVEL_DCC;
+OUTPUT:
+ RETVAL
+
+int
+MSGLEVEL_DCCMSGS()
+CODE:
+ RETVAL = MSGLEVEL_DCCMSGS;
+OUTPUT:
+ RETVAL
+
+int
+MSGLEVEL_CLIENTNOTICE()
+CODE:
+ RETVAL = MSGLEVEL_CLIENTNOTICE;
+OUTPUT:
+ RETVAL
+
+int
+MSGLEVEL_CLIENTCRAP()
+CODE:
+ RETVAL = MSGLEVEL_CLIENTCRAP;
+OUTPUT:
+ RETVAL
+
+int
+MSGLEVEL_CLIENTERROR()
+CODE:
+ RETVAL = MSGLEVEL_CLIENTERROR;
+OUTPUT:
+ RETVAL
+
+int
+MSGLEVEL_HILIGHT()
+CODE:
+ RETVAL = MSGLEVEL_HILIGHT;
+OUTPUT:
+ RETVAL
+
+int
+MSGLEVEL_ALL()
+CODE:
+ RETVAL = MSGLEVEL_ALL;
+OUTPUT:
+ RETVAL
+
+int
+MSGLEVEL_NOHILIGHT()
+CODE:
+ RETVAL = MSGLEVEL_NOHILIGHT;
+OUTPUT:
+ RETVAL
+
+int
+MSGLEVEL_NO_ACT()
+CODE:
+ RETVAL = MSGLEVEL_NO_ACT;
+OUTPUT:
+ RETVAL
+
+int
+MSGLEVEL_NEVER()
+CODE:
+ RETVAL = MSGLEVEL_NEVER;
+OUTPUT:
+ RETVAL
+
+int
+MSGLEVEL_LASTLOG()
+CODE:
+ RETVAL = MSGLEVEL_LASTLOG;
+OUTPUT:
+ RETVAL
+
int
level2bits(str)
char *str
diff --git a/src/perl/common/Irssi.pm b/src/perl/common/Irssi.pm
index 7a4a262f..b141821e 100644
--- a/src/perl/common/Irssi.pm
+++ b/src/perl/common/Irssi.pm
@@ -18,5 +18,8 @@ require DynaLoader;
bootstrap Irssi $VERSION;
+@Irssi::Channel::ISA = qw(Irssi::Windowitem);
+@Irssi::Query::ISA = qw(Irssi::Windowitem);
+
1;
diff --git a/src/perl/common/Window.xs b/src/perl/common/Window.xs
index 5ac89029..8ca06123 100644
--- a/src/perl/common/Window.xs
+++ b/src/perl/common/Window.xs
@@ -1,12 +1,18 @@
MODULE = Irssi PACKAGE = Irssi
void
-command(cmd, server=active_win->active_server, item=active_win->active)
- char *cmd
- Irssi::Server server
- Irssi::Windowitem item
-CODE:
- signal_emit("send command", 3, cmd, server, item);
+windows()
+PREINIT:
+ GSList *tmp;
+ HV *stash;
+PPCODE:
+ stash = gv_stashpv("Irssi::Window", 0);
+ for (tmp = windows; tmp != NULL; tmp = tmp->next) {
+ WINDOW_REC *rec = tmp->data;
+
+ XPUSHs(sv_2mortal(sv_bless(newRV_noinc(newSViv(GPOINTER_TO_INT(rec))), stash)));
+ }
+
Irssi::Window
active_win()
@@ -36,6 +42,52 @@ print_window(str, level=MSGLEVEL_CLIENTNOTICE)
CODE:
printtext_window(active_win, level, str);
+void
+command(cmd, server=active_win->active_server, item=active_win->active)
+ char *cmd
+ Irssi::Server server
+ Irssi::Windowitem item
+CODE:
+ signal_emit("send command", 3, cmd, server, item);
+
+Irssi::Window
+window_find_name(name)
+ char *name
+
+Irssi::Window
+window_find_refnum(refnum)
+ int refnum
+
+int
+window_refnum_prev(refnum, wrap)
+ int refnum
+ int wrap
+
+int
+window_refnum_next(refnum, wrap)
+ int refnum
+ int wrap
+
+int
+windows_refnum_last()
+
+Irssi::Window
+window_find_level(level)
+ int level
+CODE:
+ RETVAL = window_find_level(NULL, level);
+OUTPUT:
+ RETVAL
+
+Irssi::Window
+window_find_closest(name, level)
+ char *name
+ int level
+CODE:
+ RETVAL = window_find_closest(NULL, name, level);
+OUTPUT:
+ RETVAL
+
#*******************************
MODULE = Irssi PACKAGE = Irssi::Server
@@ -52,7 +104,7 @@ CODE:
signal_emit("send command", 3, cmd, server, item);
void
-printtext(server, channel, str, level)
+print(server, channel, str, level)
Irssi::Server server
char *channel
int level
@@ -60,6 +112,23 @@ printtext(server, channel, str, level)
CODE:
printtext(server, channel, level, str);
+Irssi::Windowitem
+window_item_find(server, name)
+ Irssi::Server server
+ char *name
+
+Irssi::Window
+window_find_level(server, level)
+ Irssi::Server server
+ int level
+
+Irssi::Window
+window_find_closest(server, name, level)
+ Irssi::Server server
+ char *name
+ int level
+
+
#*******************************
MODULE = Irssi PACKAGE = Irssi::Window
#*******************************
@@ -114,6 +183,68 @@ command(window, cmd, server=window->active_server, item=window->active)
CODE:
signal_emit("send command", 3, cmd, server, item);
+void
+window_add_item(window, item, automatic)
+ Irssi::Window window
+ Irssi::Windowitem item
+ int automatic
+
+void
+window_remove_item(window, item)
+ Irssi::Window window
+ Irssi::Windowitem item
+
+void
+window_item_set_active(window, item)
+ Irssi::Window window
+ Irssi::Windowitem item
+
+void
+window_item_prev(window)
+ Irssi::Window window
+
+void
+window_item_next(window)
+ Irssi::Window window
+
+void
+window_destroy(window)
+ Irssi::Window window
+
+void
+window_set_active(window)
+ Irssi::Window window
+
+void
+window_change_server(window, server)
+ Irssi::Window window
+ Irssi::Server server
+
+void
+window_set_refnum(window, refnum)
+ Irssi::Window window
+ int refnum
+
+void
+window_set_name(window, name)
+ Irssi::Window window
+ char *name
+
+void
+window_set_level(window, level)
+ Irssi::Window window
+ int level
+
+char *
+window_get_active_name(window)
+ Irssi::Window window
+
+Irssi::Window
+window_find_item(window, name)
+ Irssi::Window window
+ char *name
+
+
#*******************************
MODULE = Irssi PACKAGE = Irssi::Windowitem
#*******************************
@@ -138,6 +269,34 @@ command(item, cmd)
CODE:
signal_emit("send command", 3, cmd, item->server, item);
+Irssi::Window
+window_create(item, automatic)
+ Irssi::Windowitem item
+ int automatic
+
+void
+window_item_create(item, automatic)
+ Irssi::Windowitem item
+ int automatic
+
+Irssi::Window
+window(item)
+ Irssi::Windowitem item
+CODE:
+ RETVAL = window_item_window(item);
+OUTPUT:
+ RETVAL
+
+void
+window_item_change_server(item, server)
+ Irssi::Windowitem item
+ Irssi::Server server
+
+int
+window_item_is_active(item)
+ Irssi::Windowitem item
+
+
#*******************************
MODULE = Irssi PACKAGE = Irssi::Channel
#*******************************
diff --git a/src/perl/common/module.h b/src/perl/common/module.h
index f456834a..24bc3de6 100644
--- a/src/perl/common/module.h
+++ b/src/perl/common/module.h
@@ -23,6 +23,7 @@
#include "perl/perl-common.h"
#include "fe-common/core/fe-windows.h"
+#include "fe-common/core/window-items.h"
#include "fe-common/core/themes.h"
#include "fe-common/core/keyboard.h"