diff --git a/api/mdp/module.py b/api/mdp/module.py
index b00410bc..29927e38 100644
--- a/api/mdp/module.py
+++ b/api/mdp/module.py
@@ -406,7 +406,7 @@ class Module(object):
else:
raise RuntimeError("in %s: invalid annotation '%s'" % (pfunc.name, a,))
if param.type is None:
- raise RuntimeError('in %s: param type missing' % pfunc.name)
+ raise RuntimeError('in %s: type of param "%s" is missing' % (pfunc.name, param.name))
return param
def __add_vmethod(self, pfunc):
diff --git a/api/mpi/docbookwriter.py b/api/mpi/docbookwriter.py
index 60994271..1ac57d8d 100644
--- a/api/mpi/docbookwriter.py
+++ b/api/mpi/docbookwriter.py
@@ -120,6 +120,9 @@ class Writer(object):
elif isinstance(sym, Type):
return '%(name)s' % \
dict(symbol=name, mode=self.mode, name=self.__make_class_name(sym))
+ elif isinstance(sym, Method):
+ return '%(Class)s.%(method)s()' % \
+ dict(symbol=name, mode=self.mode, Class=self.__make_class_name(sym.cls), method=sym.name)
else:
oops(name)
if self.mode == 'python':
diff --git a/moo/plugins/support/moocmdview.c b/moo/plugins/support/moocmdview.c
index 9b25943d..91b3a31e 100644
--- a/moo/plugins/support/moocmdview.c
+++ b/moo/plugins/support/moocmdview.c
@@ -14,7 +14,7 @@
*/
/**
- * class:MooCmdView: (parent MooLineView) (constructable) (moo.private 1)
+ * class:MooCmdView: (parent MooLineView) (constructable)
**/
#include "moocmdview.h"
@@ -256,7 +256,7 @@ moo_cmd_view_set_filter (MooCmdView *view,
}
/**
- * moo_cmd_view_set_filter_by_id: (moo.lua 0)
+ * moo_cmd_view_set_filter_by_id:
*
* @view:
* @id: (type const-utf8)
@@ -335,11 +335,11 @@ stderr_line_cb (MooCmd *cmd,
/**
- * moo_cmd_view_run_command: (moo.lua 0)
+ * moo_cmd_view_run_command:
*
* @view:
- * @cmd: (type filename)
- * @working_dir: (type filename) (allow-none) (default NULL)
+ * @cmd: (type const-filename)
+ * @working_dir: (type const-filename) (allow-none) (default NULL)
* @job_name: (type const-utf8) (allow-none) (default NULL)
*/
gboolean
@@ -569,6 +569,35 @@ moo_cmd_view_abort (MooCmdView *view)
}
+/**
+ * moo_cmd_view_write_with_filter:
+ *
+ * @view:
+ * @text: (type const-utf8)
+ * @error: (allow-none) (default FALSE)
+ */
+void
+moo_cmd_view_write_with_filter (MooCmdView *view,
+ const char *text,
+ gboolean error)
+{
+ char **lines;
+ char **p;
+
+ lines = moo_splitlines (text);
+
+ for (p = lines; p && *p; ++p)
+ {
+ if (error)
+ moo_cmd_view_stderr_line (view, *p);
+ else
+ moo_cmd_view_stdout_line (view, *p);
+ }
+
+ g_strfreev (lines);
+}
+
+
static gboolean
moo_cmd_view_stdout_line (MooCmdView *view,
const char *line)
diff --git a/moo/plugins/support/moocmdview.h b/moo/plugins/support/moocmdview.h
index f7fc29ee..c02e8df3 100644
--- a/moo/plugins/support/moocmdview.h
+++ b/moo/plugins/support/moocmdview.h
@@ -75,6 +75,10 @@ void moo_cmd_view_set_filter_by_id (MooCmdView *view,
void moo_cmd_view_add_filter_dirs (MooCmdView *view,
char **dirs);
+void moo_cmd_view_write_with_filter (MooCmdView *view,
+ const char *text,
+ gboolean error);
+
gboolean moo_cmd_view_run_command (MooCmdView *view,
const char *cmd,
const char *working_dir,
diff --git a/moo/plugins/support/mooeditwindowoutput.c b/moo/plugins/support/mooeditwindowoutput.c
index c73bfe19..67ca6382 100644
--- a/moo/plugins/support/mooeditwindowoutput.c
+++ b/moo/plugins/support/mooeditwindowoutput.c
@@ -3,6 +3,20 @@
#include "mooutils/moostock.h"
#include "mooutils/mooi18n.h"
+#define MOO_EDIT_WINDOW_OUTPUT "moo-edit-window-output"
+#define MOO_OUTPUT "moo-output"
+
+/**
+ * moo_edit_window_get_output:
+ *
+ * @window:
+ *
+ * Returns: an output pane, as #MooCmdView object.
+ *
+ * Get the output pane, create it if necessary. This function
+ * does not open the pane, use #moo_edit_window_present_output
+ * for that.
+ */
GtkWidget *
moo_edit_window_get_output (MooEditWindow *window)
{
@@ -12,7 +26,7 @@ moo_edit_window_get_output (MooEditWindow *window)
g_return_val_if_fail (MOO_IS_EDIT_WINDOW (window), NULL);
- scrolled_window = moo_edit_window_get_pane (window, "moo-edit-window-output");
+ scrolled_window = moo_edit_window_get_pane (window, MOO_EDIT_WINDOW_OUTPUT);
if (!scrolled_window)
{
@@ -26,14 +40,14 @@ moo_edit_window_get_output (MooEditWindow *window)
moo_text_view_set_font_from_string (MOO_TEXT_VIEW (cmd_view), "Monospace");
gtk_container_add (GTK_CONTAINER (scrolled_window), cmd_view);
gtk_widget_show_all (scrolled_window);
- g_object_set_data (G_OBJECT (scrolled_window), "moo-output", cmd_view);
+ g_object_set_data (G_OBJECT (scrolled_window), MOO_OUTPUT, cmd_view);
label = moo_pane_label_new (MOO_STOCK_TERMINAL, NULL,
/* label of Output window pane */
C_("window-pane", "Output"),
C_("window-pane", "Output"));
- if (!moo_edit_window_add_pane (window, "moo-edit-window-output",
+ if (!moo_edit_window_add_pane (window, MOO_EDIT_WINDOW_OUTPUT,
scrolled_window, label, MOO_PANE_POS_BOTTOM))
{
g_critical ("oops");
@@ -47,18 +61,25 @@ moo_edit_window_get_output (MooEditWindow *window)
return cmd_view;
}
- return g_object_get_data (G_OBJECT (scrolled_window), "moo-output");
+ return g_object_get_data (G_OBJECT (scrolled_window), MOO_OUTPUT);
}
-GtkWidget *
+static GtkWidget *
moo_edit_window_get_output_pane (MooEditWindow *window)
{
g_return_val_if_fail (MOO_IS_EDIT_WINDOW (window), NULL);
- return moo_edit_window_get_pane (window, "moo-edit-window-output");
+ return moo_edit_window_get_pane (window, MOO_EDIT_WINDOW_OUTPUT);
}
+/**
+ * moo_edit_window_present_output:
+ *
+ * @window:
+ *
+ * Open the output pane.
+ */
void
moo_edit_window_present_output (MooEditWindow *window)
{
diff --git a/moo/plugins/support/mooeditwindowoutput.h b/moo/plugins/support/mooeditwindowoutput.h
index b4387efb..13c5a692 100644
--- a/moo/plugins/support/mooeditwindowoutput.h
+++ b/moo/plugins/support/mooeditwindowoutput.h
@@ -7,7 +7,6 @@ G_BEGIN_DECLS
void moo_edit_window_present_output (MooEditWindow *window);
GtkWidget *moo_edit_window_get_output (MooEditWindow *window);
-GtkWidget *moo_edit_window_get_output_pane (MooEditWindow *window);
G_END_DECLS