commandline = new Gtk.Entry();
commandline.Activated += command_Activate;
commandline.KeyPressEvent += command_KeyPress;
- wt.AttachWidget(commandline, CompassDirection.S, AttachOptions.Fill, AttachOptions.Shrink);
+ wt.AttachWidget(commandline, AttachPoint.S, AttachOptions.Fill, AttachOptions.Shrink);
commandline.Hide();
+
+ ApplyOptions();
}
public override void InitWebView(WebView wv) {
wv.KeyPressEvent += WebView_KeyPress;
}
- private void Window_KeyPress(object o, KeyPressEventArgs e) {
- switch(e.Event.Key) {
- case Gdk.Key.o:
- CommandStart("open ");
- break;
- case Gdk.Key.O:
- CommandStart("open " + wt.WebView.MainFrame.Uri);
- break;
- case Gdk.Key.t:
- CommandStart("tabopen ");
- break;
- case Gdk.Key.T:
- CommandStart("tabopen " + wt.WebView.MainFrame.Uri);
- break;
- case Gdk.Key.colon:
- CommandlineShow();
- break;
- }
+ public override void Deinit(WebThing wt) {
+ SaveConfig();
}
- private void WebView_KeyPress(object o, KeyPressEventArgs e) {
- Console.WriteLine(e.Event.Key);
+ private void Window_KeyPress(object o, KeyPressEventArgs e) {
if ((Gdk.ModifierType.ControlMask & e.Event.State) != 0) {
switch(e.Event.Key) {
case Gdk.Key.n:
break;
}
} else {
+ switch(e.Event.Key) {
+ case Gdk.Key.o:
+ CommandStart("open ");
+ break;
+ case Gdk.Key.O:
+ CommandStart("open " + wt.WebView.MainFrame.Uri);
+ break;
+ case Gdk.Key.t:
+ CommandStart("tabopen ");
+ break;
+ case Gdk.Key.T:
+ CommandStart("tabopen " + wt.WebView.MainFrame.Uri);
+ break;
+ case Gdk.Key.colon:
+ CommandlineShow();
+ break;
+ }
+ }
+ }
+
+ private void WebView_KeyPress(object o, KeyPressEventArgs e) {
+ WebView wv = (WebView)o;
+
+ Console.WriteLine(e.Event.Key);
+ if (e.Event.State == Gdk.ModifierType.None) {
switch(e.Event.Key) {
case Gdk.Key.j:
wt.ScrolledWindow.Vadjustment.Value += wt.ScrolledWindow.Vadjustment.StepIncrement;
wt.ScrolledWindow.Hadjustment.Value -= wt.ScrolledWindow.Hadjustment.StepIncrement;
break;
case Gdk.Key.r:
- wt.WebView.Reload();
+ wv.Reload();
break;
case Gdk.Key.Escape:
- wt.WebView.ExecuteScript("document.activeElement.blur()");
+ wv.ExecuteScript("document.activeElement.blur()");
break;
}
}
break;
case "set":
if (args.Length == 2)
- SetVar(args[1], "");
+ Options[args[1]] = null;
else
- SetVar(args[1], args[2]);
+ Options[args[1]] = args[2];
+ ApplyOptions();
+ break;
+ default:
+ bool found;
+ if (args.Length > 1) {
+ string[] callargs = new string[args.Length - 1];
+ Array.Copy(args, 1, callargs, 0, args.Length - 1);
+ found = wt.Plugins.Call(args[0], callargs);
+ if (!found)
+ Error("No function {0}({1}) found", args[0], String.Join(", ", callargs));
+ } else {
+ found = wt.Plugins.Call(args[0]);
+ if (!found)
+ Error("No function {0}() found", args[0]);
+ }
+ if (found)
+ Console.WriteLine("Plugin function {0} called successfully", args[0]);
break;
}
CommandlineHide();
}
- public void SetVar(string key, string val) {
- switch(key) {
- case "showtabs":
- wt.Tabs.ShowTabs = true;
- break;
- case "hidetabs":
- wt.Tabs.ShowTabs = false;
- break;
- default:
- Error("No variable {0}", key);
- break;
+ private void ApplyOptions() {
+ foreach (string key in Options.Keys) {
+ switch(key) {
+ case "ShowTabs":
+ bool v = Config.ParseBool(Options[key]);
+ wt.Tabs.ShowTabs = v;
+ break;
+ default:
+ Error("No variable {0}", key);
+ break;
+ }
}
}