- public void OpenUri(string Uri) {
- if (!Regex.IsMatch(Uri, @"://")) {
- Uri = String.Format("http://{0}", Uri);
+ // Tab management
+ public WebThingView NewTab() {
+ WebThingView newview = NewWebThingView();
+ Plugins.WebViewSetup(newview.WebView);
+ return newview;
+ }
+
+ private WebThingView NewWebThingView() {
+ WebThingView newview = new WebThingView();
+ Tabs.AppendPage(newview, new Label("Blank"));
+ newview.WebView.TitleChanged += delegate(object o, TitleChangedArgs e) {
+ Tabs.SetTabLabelText((Gtk.Widget) newview, e.Title);
+ if (newview == Tabs.CurrentPageWidget)
+ _Window.Title = e.Title + " - WebThing";
+ };
+ newview.Show();
+ return newview;
+ }
+
+ public void CloseTab() {
+ CloseTab(_Tabs.Page);
+ }
+
+ public void CloseTab(int tab) {
+ if (_Tabs.NPages > 1) {
+ try {
+ WebThingView view = _Tabs.GetNthPage(tab) as WebThingView;
+ _Tabs.RemovePage(tab);
+ view.Dispose();
+ } catch (ArgumentOutOfRangeException) {
+ Console.WriteLine("Attempted to close tab out of range: {0}", tab);
+ }