Gonna have python plugins
parent
df9801f498
commit
e7680a218d
|
@ -46,6 +46,8 @@
|
||||||
|
|
||||||
/* moo-pygtk.c */
|
/* moo-pygtk.c */
|
||||||
void initmoo (void);
|
void initmoo (void);
|
||||||
|
/* mooplugin-python.c */
|
||||||
|
gboolean _moo_python_plugin_init (void);
|
||||||
|
|
||||||
|
|
||||||
static MooApp *moo_app_instance = NULL;
|
static MooApp *moo_app_instance = NULL;
|
||||||
|
@ -895,6 +897,7 @@ static void start_python (G_GNUC_UNUSED MooApp *app)
|
||||||
app->priv->argv);
|
app->priv->argv);
|
||||||
#ifdef MOO_USE_PYGTK
|
#ifdef MOO_USE_PYGTK
|
||||||
initmoo ();
|
initmoo ();
|
||||||
|
_moo_python_plugin_init ();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
description__,author__,version__) \
|
description__,author__,version__) \
|
||||||
\
|
\
|
||||||
static MooPluginParams plugin_name__##_plugin_params = { \
|
static MooPluginParams plugin_name__##_plugin_params = { \
|
||||||
|
TRUE, \
|
||||||
TRUE \
|
TRUE \
|
||||||
}; \
|
}; \
|
||||||
\
|
\
|
||||||
|
|
|
@ -863,6 +863,14 @@ moo_plugin_init_builtin (void)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
moo_plugin_visible (MooPlugin *plugin)
|
||||||
|
{
|
||||||
|
g_return_val_if_fail (MOO_IS_PLUGIN (plugin), FALSE);
|
||||||
|
return plugin->info->params->visible ? TRUE : FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/***************************************************************************/
|
/***************************************************************************/
|
||||||
/* Preferences dialog
|
/* Preferences dialog
|
||||||
*/
|
*/
|
||||||
|
@ -1003,12 +1011,16 @@ prefs_init (MooPrefsDialog *dialog,
|
||||||
{
|
{
|
||||||
GtkTreeIter iter;
|
GtkTreeIter iter;
|
||||||
MooPlugin *plugin = l->data;
|
MooPlugin *plugin = l->data;
|
||||||
gtk_list_store_append (store, &iter);
|
|
||||||
gtk_list_store_set (store, &iter,
|
if (moo_plugin_visible (plugin))
|
||||||
COLUMN_ENABLED, moo_plugin_enabled (plugin),
|
{
|
||||||
COLUMN_PLUGIN_ID, moo_plugin_id (plugin),
|
gtk_list_store_append (store, &iter);
|
||||||
COLUMN_PLUGIN_NAME, moo_plugin_name (plugin),
|
gtk_list_store_set (store, &iter,
|
||||||
-1);
|
COLUMN_ENABLED, moo_plugin_enabled (plugin),
|
||||||
|
COLUMN_PLUGIN_ID, moo_plugin_id (plugin),
|
||||||
|
COLUMN_PLUGIN_NAME, moo_plugin_name (plugin),
|
||||||
|
-1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
selection_changed (gtk_tree_view_get_selection (treeview), page);
|
selection_changed (gtk_tree_view_get_selection (treeview), page);
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
G_BEGIN_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
#define MOO_PLUGIN_PREFS_ROOT "Plugins"
|
#define MOO_PLUGIN_PREFS_ROOT "Plugins"
|
||||||
#define MOO_PLUGIN_CURRENT_VERSION 13
|
#define MOO_PLUGIN_CURRENT_VERSION 14
|
||||||
#define MOO_PLUGIN_DIR_BASENAME "plugins"
|
#define MOO_PLUGIN_DIR_BASENAME "plugins"
|
||||||
|
|
||||||
|
|
||||||
|
@ -83,6 +83,7 @@ typedef void (*MooDocPluginDestroyFunc) (MooDocPlugin *doc_plugin);
|
||||||
struct _MooPluginParams
|
struct _MooPluginParams
|
||||||
{
|
{
|
||||||
gboolean enabled;
|
gboolean enabled;
|
||||||
|
gboolean visible;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _MooPluginPrefsParams
|
struct _MooPluginPrefsParams
|
||||||
|
|
|
@ -98,7 +98,7 @@ $(moopython)/mooapp-pygtk.c: $(moopython)/mooapp-pygtk.defs $(moopython)/mooapp-
|
||||||
$(moopython_srcdir)/mooapp-pygtk.defs > $(moopython)/mooapp-pygtk.c
|
$(moopython_srcdir)/mooapp-pygtk.defs > $(moopython)/mooapp-pygtk.c
|
||||||
|
|
||||||
|
|
||||||
if MOO_USE_PYTHON
|
if MOO_USE_PYGTK
|
||||||
moo_sources += $(moopython_sources)
|
moo_sources += $(moopython_sources)
|
||||||
moo_built_sources += $(moopython_bulit_sources)
|
moo_built_sources += $(moopython_bulit_sources)
|
||||||
moo_nodist_sources += $(nodist_moopython_sources)
|
moo_nodist_sources += $(nodist_moopython_sources)
|
||||||
|
@ -106,3 +106,12 @@ moo_cleanfiles += $(moopython_cleanfiles)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
moo_extra_dist += $(moopython_extra_dist)
|
moo_extra_dist += $(moopython_extra_dist)
|
||||||
|
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
# Python plugin
|
||||||
|
|
||||||
|
if MOO_USE_PYGTK
|
||||||
|
moo_sources += $(moopython)/mooplugin-python.c
|
||||||
|
endif
|
||||||
|
moo_extra_dist += $(moopython)/mooplugin-python.c
|
||||||
|
|
|
@ -28,13 +28,6 @@
|
||||||
(gtype-id "MOO_TYPE_LANG_MGR")
|
(gtype-id "MOO_TYPE_LANG_MGR")
|
||||||
)
|
)
|
||||||
|
|
||||||
(define-object Plugin
|
|
||||||
(in-module "Moo")
|
|
||||||
(parent "GObject")
|
|
||||||
(c-name "MooPlugin")
|
|
||||||
(gtype-id "MOO_TYPE_PLUGIN")
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-object TextBuffer
|
(define-object TextBuffer
|
||||||
(in-module "Moo")
|
(in-module "Moo")
|
||||||
(parent "GtkTextBuffer")
|
(parent "GtkTextBuffer")
|
||||||
|
@ -1291,211 +1284,6 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;; From ../mooedit/mooplugin.h
|
|
||||||
|
|
||||||
(define-function moo_plugin_get_type
|
|
||||||
(c-name "moo_plugin_get_type")
|
|
||||||
(return-type "GType")
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-function moo_window_plugin_get_type
|
|
||||||
(c-name "moo_window_plugin_get_type")
|
|
||||||
(return-type "GType")
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-function moo_plugin_register
|
|
||||||
(c-name "moo_plugin_register")
|
|
||||||
(return-type "gboolean")
|
|
||||||
(parameters
|
|
||||||
'("GType" "type")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-method initialized
|
|
||||||
(of-object "MooPlugin")
|
|
||||||
(c-name "moo_plugin_initialized")
|
|
||||||
(return-type "gboolean")
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-method enabled
|
|
||||||
(of-object "MooPlugin")
|
|
||||||
(c-name "moo_plugin_enabled")
|
|
||||||
(return-type "gboolean")
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-method set_enabled
|
|
||||||
(of-object "MooPlugin")
|
|
||||||
(c-name "moo_plugin_set_enabled")
|
|
||||||
(return-type "gboolean")
|
|
||||||
(parameters
|
|
||||||
'("gboolean" "enabled")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-function moo_plugin_get
|
|
||||||
(c-name "moo_plugin_get")
|
|
||||||
(return-type "MooPlugin*")
|
|
||||||
(parameters
|
|
||||||
'("GType" "type")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-function moo_plugin_registered
|
|
||||||
(c-name "moo_plugin_registered")
|
|
||||||
(return-type "gboolean")
|
|
||||||
(parameters
|
|
||||||
'("GType" "type")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-function moo_plugin_lookup
|
|
||||||
(c-name "moo_plugin_lookup")
|
|
||||||
(return-type "gpointer")
|
|
||||||
(parameters
|
|
||||||
'("const-char*" "plugin_id")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-function moo_list_plugins
|
|
||||||
(c-name "moo_list_plugins")
|
|
||||||
(return-type "GSList*")
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-method id
|
|
||||||
(of-object "MooPlugin")
|
|
||||||
(c-name "moo_plugin_id")
|
|
||||||
(return-type "const-char*")
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-method name
|
|
||||||
(of-object "MooPlugin")
|
|
||||||
(c-name "moo_plugin_name")
|
|
||||||
(return-type "const-char*")
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-method description
|
|
||||||
(of-object "MooPlugin")
|
|
||||||
(c-name "moo_plugin_description")
|
|
||||||
(return-type "const-char*")
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-method author
|
|
||||||
(of-object "MooPlugin")
|
|
||||||
(c-name "moo_plugin_author")
|
|
||||||
(return-type "const-char*")
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-method version
|
|
||||||
(of-object "MooPlugin")
|
|
||||||
(c-name "moo_plugin_version")
|
|
||||||
(return-type "const-char*")
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-function moo_window_plugin_lookup
|
|
||||||
(c-name "moo_window_plugin_lookup")
|
|
||||||
(return-type "gpointer")
|
|
||||||
(parameters
|
|
||||||
'("const-char*" "plugin_id")
|
|
||||||
'("MooEditWindow*" "window")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-function moo_plugin_read_dir
|
|
||||||
(c-name "moo_plugin_read_dir")
|
|
||||||
(return-type "none")
|
|
||||||
(parameters
|
|
||||||
'("const-char*" "dir")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-function moo_plugin_init_builtin
|
|
||||||
(c-name "moo_plugin_init_builtin")
|
|
||||||
(return-type "none")
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;; From ../mooedit/mootextbuffer.h
|
|
||||||
|
|
||||||
(define-function moo_text_buffer_get_type
|
|
||||||
(c-name "moo_text_buffer_get_type")
|
|
||||||
(return-type "GType")
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-function moo_text_buffer_new
|
|
||||||
(c-name "moo_text_buffer_new")
|
|
||||||
(is-constructor-of "MooTextBuffer")
|
|
||||||
(return-type "GtkTextBuffer*")
|
|
||||||
(parameters
|
|
||||||
'("GtkTextTagTable*" "table")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-method set_lang
|
|
||||||
(of-object "MooTextBuffer")
|
|
||||||
(c-name "moo_text_buffer_set_lang")
|
|
||||||
(return-type "none")
|
|
||||||
(parameters
|
|
||||||
'("MooLang*" "lang")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-method get_lang
|
|
||||||
(of-object "MooTextBuffer")
|
|
||||||
(c-name "moo_text_buffer_get_lang")
|
|
||||||
(return-type "MooLang*")
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-method set_bracket_match_style
|
|
||||||
(of-object "MooTextBuffer")
|
|
||||||
(c-name "moo_text_buffer_set_bracket_match_style")
|
|
||||||
(return-type "none")
|
|
||||||
(parameters
|
|
||||||
'("const-MooTextStyle*" "style")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-method set_bracket_mismatch_style
|
|
||||||
(of-object "MooTextBuffer")
|
|
||||||
(c-name "moo_text_buffer_set_bracket_mismatch_style")
|
|
||||||
(return-type "none")
|
|
||||||
(parameters
|
|
||||||
'("const-MooTextStyle*" "style")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-method set_brackets
|
|
||||||
(of-object "MooTextBuffer")
|
|
||||||
(c-name "moo_text_buffer_set_brackets")
|
|
||||||
(return-type "none")
|
|
||||||
(parameters
|
|
||||||
'("const-char*" "brackets")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-method set_check_brackets
|
|
||||||
(of-object "MooTextBuffer")
|
|
||||||
(c-name "moo_text_buffer_set_check_brackets")
|
|
||||||
(return-type "none")
|
|
||||||
(parameters
|
|
||||||
'("gboolean" "check")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-method has_text
|
|
||||||
(of-object "MooTextBuffer")
|
|
||||||
(c-name "moo_text_buffer_has_text")
|
|
||||||
(return-type "gboolean")
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-method has_selection
|
|
||||||
(of-object "MooTextBuffer")
|
|
||||||
(c-name "moo_text_buffer_has_selection")
|
|
||||||
(return-type "gboolean")
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;; From ../mooedit/mootextiter.h
|
;; From ../mooedit/mootextiter.h
|
||||||
|
|
||||||
(define-function moo_text_iter_find_matching_bracket
|
(define-function moo_text_iter_find_matching_bracket
|
||||||
|
|
|
@ -3,7 +3,10 @@ headers
|
||||||
#include <Python.h>
|
#include <Python.h>
|
||||||
#define NO_IMPORT_PYGOBJECT
|
#define NO_IMPORT_PYGOBJECT
|
||||||
#include "pygobject.h"
|
#include "pygobject.h"
|
||||||
#include "moo.h"
|
#include "mooedit/mooeditor.h"
|
||||||
|
#include "mooedit/mooeditsearch.h"
|
||||||
|
#include "mooedit/mootextbuffer.h"
|
||||||
|
#include "mooedit/moocmdview.h"
|
||||||
|
|
||||||
void moo_edit_add_constants (PyObject *module, const gchar *strip_prefix);
|
void moo_edit_add_constants (PyObject *module, const gchar *strip_prefix);
|
||||||
void moo_edit_register_classes (PyObject *d);
|
void moo_edit_register_classes (PyObject *d);
|
||||||
|
|
|
@ -0,0 +1,92 @@
|
||||||
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4; coding: utf-8 -*-
|
||||||
|
*
|
||||||
|
* moofind.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2004-2005 by Yevgen Muntyan <muntyan@math.tamu.edu>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* See COPYING file that comes with this distribution.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include "config.h"
|
||||||
|
#endif
|
||||||
|
#ifndef MOO_VERSION
|
||||||
|
#define MOO_VERSION NULL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "mooedit/mooplugin-macro.h"
|
||||||
|
|
||||||
|
#define PYTHON_PLUGIN_ID "python"
|
||||||
|
|
||||||
|
|
||||||
|
gboolean _moo_python_plugin_init (void);
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
MooPlugin parent;
|
||||||
|
} PythonPlugin;
|
||||||
|
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
python_plugin_init (G_GNUC_UNUSED PythonPlugin *plugin)
|
||||||
|
{
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
python_plugin_deinit (G_GNUC_UNUSED PythonPlugin *plugin)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
python_plugin_attach_win (G_GNUC_UNUSED PythonPlugin *plugin,
|
||||||
|
G_GNUC_UNUSED MooEditWindow *window)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
python_plugin_detach_win (G_GNUC_UNUSED PythonPlugin *plugin,
|
||||||
|
G_GNUC_UNUSED MooEditWindow *window)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
python_plugin_attach_doc (G_GNUC_UNUSED PythonPlugin *plugin,
|
||||||
|
G_GNUC_UNUSED MooEdit *doc,
|
||||||
|
G_GNUC_UNUSED MooEditWindow *window)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
python_plugin_detach_doc (G_GNUC_UNUSED PythonPlugin *plugin,
|
||||||
|
G_GNUC_UNUSED MooEdit *doc,
|
||||||
|
G_GNUC_UNUSED MooEditWindow *window)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
MOO_PLUGIN_DEFINE_INFO (python, PYTHON_PLUGIN_ID,
|
||||||
|
"Python", "A snake",
|
||||||
|
"Yevgen Muntyan <muntyan@tamu.edu>",
|
||||||
|
MOO_VERSION);
|
||||||
|
MOO_PLUGIN_DEFINE_FULL (Python, python,
|
||||||
|
python_plugin_init, python_plugin_deinit,
|
||||||
|
python_plugin_attach_win, python_plugin_detach_win,
|
||||||
|
python_plugin_attach_doc, python_plugin_detach_doc,
|
||||||
|
NULL, 0, 0);
|
||||||
|
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
_moo_python_plugin_init (void)
|
||||||
|
{
|
||||||
|
python_plugin_params.visible = FALSE;
|
||||||
|
return moo_plugin_register (python_plugin_get_type ());
|
||||||
|
}
|
|
@ -3,7 +3,21 @@ headers
|
||||||
#include <Python.h>
|
#include <Python.h>
|
||||||
#define NO_IMPORT_PYGOBJECT
|
#define NO_IMPORT_PYGOBJECT
|
||||||
#include "pygobject.h"
|
#include "pygobject.h"
|
||||||
#include "moo.h"
|
#include "mooutils/moobigpaned.h"
|
||||||
|
#include "mooutils/moocombo.h"
|
||||||
|
#include "mooutils/moofiltermgr.h"
|
||||||
|
#include "mooutils/moofilewatch.h"
|
||||||
|
#include "mooutils/moohistorylist.h"
|
||||||
|
#include "mooutils/moomenumgr.h"
|
||||||
|
#include "mooutils/moouixml.h"
|
||||||
|
#include "mooutils/moodialogs.h"
|
||||||
|
#include "mooutils/mooutils-misc.h"
|
||||||
|
#include "mooutils/moowindow.h"
|
||||||
|
#include "mooutils/mooprefsdialog.h"
|
||||||
|
#include "mooutils/moohistoryentry.h"
|
||||||
|
#include "mooutils/mooprefs.h"
|
||||||
|
#include "mooutils/moonotebook.h"
|
||||||
|
#include "mooutils/mooentry.h"
|
||||||
|
|
||||||
|
|
||||||
void moo_utils_register_classes (PyObject *dict);
|
void moo_utils_register_classes (PyObject *dict);
|
||||||
|
|
Loading…
Reference in New Issue