public int pos_root_x;
public int pos_root_y;
public string ptype;
+ public int last_search_end;
public string key;
+ public Gtk.SourceSearchContext searchcontext;
public JsRender.JsRender file;
public bool pos;
public bool dirty;
this.window = null;
this.activeEditor = "";
this.ptype = "";
+ this.last_search_end = 0;
this.key = "";
+ this.searchcontext = null;
this.file = null;
this.pos = false;
this.dirty = false;
}
public void scroll_to_line (int line) {
- GLib.Timeout.add(100, () => {
+ GLib.Timeout.add(500, () => {
var buf = this.view.el.get_buffer();
this.view.el.scroll_to_iter(iter, 0.1f, true, 0.0f, 0.5f);
return false;
});
+ }
+ public int search (string txt) {
+
+ var s = new Gtk.SourceSearchSettings();
+
+ this.searchcontext = new Gtk.SourceSearchContext(this.buffer.el,s);
+ this.searchcontext .set_highlight(true);
+ s.set_search_text(txt);
+ Gtk.TextIter beg, st,en;
+
+ this.buffer.el.get_start_iter(out beg);
+ this.searchcontext.forward(beg, out st, out en);
+ this.last_search_end = 0;
+
+ return this.searchcontext.get_occurrences_count();
+
+
+
+
}
public void show (JsRender.JsRender file, JsRender.Node? node, string ptype, string key)
{
this.ptype = "";
this.key = "";
this.node = null;
-
+ this.searchcontext = null;
if (file.xtype != "PlainFile") {
}
+ }
+ public void forwardSearch (bool change_focus) {
+
+ if (this.searchcontext == null) {
+ return;
+ }
+
+ Gtk.TextIter beg, st,en;
+
+ this.buffer.el.get_iter_at_offset(out beg, this.last_search_end);
+ if (!this.searchcontext.forward(beg, out st, out en)) {
+
+ this.last_search_end = 0;
+ } else {
+ this.last_search_end = en.get_offset();
+ if (change_focus) {
+ this.view.el.grab_focus();
+ }
+ this.buffer.el.place_cursor(st);
+ this.view.el.scroll_to_iter(st, 0.1f, true, 0.0f, 0.5f);
+ }
+
}
public class Xcls_Box2 : Object
{
var description = Pango.FontDescription.from_string("monospace");
description.set_size(8000);
+
this.el.override_font(description);
+
+ try {
+ this.el.completion.add_provider(new Palete.CompletionProvider(_this));
+ } catch (GLib.Error e) {}
-
- this.el.completion.add_provider(new Palete.CompletionProvider(_this));
this.el.completion.unblock_interactive();
this.el.completion.select_on_show = true; // select
this.el.completion.show_headers = false;