[Vala] A problem in writing some ValaIde plugin..



Hello,
I'm trying to write a simple plugin for ValaIde, which is called 'Terminal',
which should display a terminal window (or maybe there will be an option to
open more then one..) inside the IDE (like in geany IDE for example..).
I took most of the code from the TODO plugin and changed it for my needs. My
problem is when I try to create a Terminal widget using -
this.terminal = new Terminal();
, it compiles fine but *when I try to run ValaIde it doesn't start and I get
this message:*
*arkadi arkadi-laptop:~/Projects/valide$ valide
valide: symbol lookup error:
/usr/local/lib/valide/plugins/terminal/libterminal.so: undefined symbol:
vte_terminal_new   *

*My plugin's code:*

using Valide;
using Vte;

public class Valide_Terminal : Plugin, Object
{
  private Gtk.ScrolledWindow scrolled_window;

  Terminal terminal; //with this line only it compiles and run fine

  public string path { get; construct set; }

  public Window window { get; construct set; }

  private bool only_load_active_tab
  {
    get
    {
      return this.window.config_manager.get_boolean ("Todo",
"only-load-active-tab");
    }
    set
    {
      this.window.config_manager.set_boolean ("Todo",
"only-load-active-tab", value);
    }
  }

  construct
  {
    this.scrolled_window = new Gtk.ScrolledWindow (null, null);

    this.scrolled_window.set_policy (Gtk.PolicyType.AUTOMATIC,
                                     Gtk.PolicyType.AUTOMATIC);

    this.terminal = new Terminal(); //with this line it compiles fine but
doesn't run...

    try
    {
      Utils.register_icon (Path.build_filename (Config.PIXMAPS_DIR,
"plugins",
                                                "terminal.png"),
"terminal-plugin-icon");
    }
    catch (Error e)
    {
      debug (e.message);
    }
    this.window.add_widget (this.scrolled_window, "terminal-plugin",
_("Terminal"),
                            Window.Placement.BOTTOM,
"terminal-plugin-icon");
  }

  ~Todo ()
  {
    this.window.remove_widget (this.scrolled_window);
  }

    public Gtk.Widget create_configure_dialog ()
    {
      Gtk.VBox vbox;
      Gtk.CheckButton check;

      vbox = new Gtk.VBox (true, 0);

      check = new Gtk.CheckButton.with_label (_("Only load symbols for
active tab"));
      check.set_active (this.only_load_active_tab);
      check.toggled.connect ((s) => {
        this.only_load_active_tab = s.get_active ();
      });
      vbox.pack_start (check, true, true, 0);

      return vbox;
  }
}

[ModuleInit]
public Type register_plugin ()
{
  return typeof (Valide_Terminal);
}

public Gtk.Widget create_configure_dialog (Valide_Terminal self)
{
  return self.create_configure_dialog ();
}

Please help..


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]