免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2246 | 回复: 0
打印 上一主题 下一主题

linux下的应用程序嵌入gecko内核 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-03-07 09:22 |只看该作者 |倒序浏览
mono里有个Gecko.WebControl ClassEmbed a Mozilla browser window into your Gtk# application.
C# Example
[color="blue"]using System;
[color="blue"]using Gtk;
[color="blue"]using Gecko;
[color="blue"]namespace GeckoTest
{
     [color="blue"]class GeckoTest
     {
          WebControl moz;
          Entry entry;
          [color="blue"]string currentUrl;
          Statusbar sb;
          ProgressBar pb;
         
          [color="blue"]static [color="blue"]void Main ([color="blue"]string[] args)
          {
               [color="blue"]new GeckoTest ();
          }
         
          GeckoTest ()
          {
               Application.Init ();
               
               Window win = [color="blue"]new Window ([color="purple"]"GeckoTest");
               win.SetDefaultSize (800, 600);
               win.DeleteEvent += [color="blue"]new DeleteEventHandler (window_delete);
               
               VBox vbox = [color="blue"]new VBox ([color="blue"]false, 1);
               win.Add (vbox);
               
               HBox tb = [color="blue"]new HBox ([color="blue"]true, 1);
               Button btnBack = [color="blue"]new Button (Gtk.Stock.GoBack);
               btnBack.Clicked += [color="blue"]new EventHandler (on_btnBack_clicked);
               Button btnForward = [color="blue"]new Button (Gtk.Stock.GoForward);
               btnForward.Clicked += [color="blue"]new EventHandler (on_btnForward_clicked);
               Button btnStop = [color="blue"]new Button (Gtk.Stock.Stop);
               btnStop.Clicked += [color="blue"]new EventHandler (on_btnStop_clicked);
               Button btnRefresh = [color="blue"]new Button (Gtk.Stock.Refresh);
               btnRefresh.Clicked += [color="blue"]new EventHandler (on_btnRefresh_clicked);
               tb.Add (btnBack);
               tb.Add (btnForward);
               tb.Add (btnStop);
               tb.Add (btnRefresh);
               
               vbox.PackStart (tb, [color="blue"]false, [color="blue"]false, 1);
               
               HBox hbox = [color="blue"]new HBox ([color="blue"]false, 1);
               
               Label label = [color="blue"]new Label ([color="purple"]"Address:");
               
               entry = [color="blue"]new Entry ([color="purple"]"URL");
               entry.Activated += [color="blue"]new EventHandler (entry_activated);
               
               Button button = [color="blue"]new Button ([color="purple"]"GO!");
               button.Clicked += [color="blue"]new EventHandler (button_clicked);
               
               hbox.PackStart (label, [color="blue"]false, [color="blue"]false, 1);
               hbox.PackStart (entry, [color="blue"]true, [color="blue"]true, 1);
               hbox.PackStart (button, [color="blue"]false, [color="blue"]false, 1);
               
               vbox.PackStart (hbox, [color="blue"]false, [color="blue"]false, 1);
               
               moz = [color="blue"]new WebControl ([color="purple"]"/tmp/csharp", [color="purple"]"GeckoTest");
               moz.LinkMsg += [color="blue"]new EventHandler(on_moz_linkmessage);
               vbox.PackStart(moz, [color="blue"]true, [color="blue"]true, 1);
               
               HBox hbox2 = [color="blue"]new HBox ([color="blue"]false, 1);
               vbox.PackStart (hbox2, [color="blue"]false, [color="blue"]false, 1);
               
               sb = [color="blue"]new Statusbar ();
               sb.Push (1, [color="purple"]"Welcome!");
               hbox2.Add (sb);
               
               pb = [color="blue"]new ProgressBar ();
               pb.Orientation = ProgressBarOrientation.LeftToRight;
               hbox2.Add (pb);
               
               win.ShowAll ();
               
               Application.Run ();
          }
         
          [color="blue"]void window_delete ([color="blue"]object obj, DeleteEventArgs args)
          {
               Application.Quit();
          }
         
          [color="blue"]void button_clicked ([color="blue"]object obj, EventArgs args)
          {
               LoadHtml (entry.Text.Trim());
          }
         
          [color="blue"]void on_moz_linkmessage ([color="blue"]object obj, EventArgs args)
          {
               sb.Pop (1);
               sb.Push (1, moz.LinkMessage);
          }
         
          [color="blue"]void entry_activated ([color="blue"]object obj, EventArgs args)
          {
               button_clicked (obj, args);
          }
         
          [color="blue"]void LoadHtml ([color="blue"]string URL)
          {
               moz.LoadUrl (URL);
          }
         
          [color="blue"]void on_btnBack_clicked ([color="blue"]object obj, EventArgs args)
          {
               moz.GoBack();
          }
          [color="blue"]void on_btnStop_clicked ([color="blue"]object obj, EventArgs args)
          {
               moz.StopLoad();
          }
          [color="blue"]void on_btnForward_clicked ([color="blue"]object obj, EventArgs args)
          {
               moz.GoForward();
          }
          [color="blue"]void on_btnRefresh_clicked ([color="blue"]object obj, EventArgs args)
          {
               moz.Reload(0);
          }     
     }
}
Namespace: Gecko
Assembly: gecko-sharp 2.0.0.0 (in gecko-sharp.dll)
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/809/showart_82002.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP