關於系統托盤

來源:互聯網
上載者:User

簡介:
  "系統托盤"是一個運行在指定的 X 螢幕上的應用程式,它顯示由其它正在啟動並執行應用程式提供的小表徵圖,以此來提供通知功能。在 Windows XP 裡稱之為"通知區域"。在 GNOME 案頭系統中,系統托盤顯示在案頭上的功能表列(gnome-panel)上,如果你的功能表列上預設沒有"系統托盤",那麼可以通過右鍵點功能表列->添 加到功能表列...,然後選擇"系統通知區域“來添加。

前言:
  在 GNOME 系統中,系統通知功能分兩部分實現:
  1)系統功能表欄的上的通知區域,這個是在 gnome-panel/applets/notification_area , 這相當於系統通知的服務端,所有通知表徵圖都會顯示在這塊地區裡
  2)應用程式端,GNOME 環境中所有使用了系統通知功能的程式,都自己包含了來自 libegg 中的兩個實現系統通知功能應用程式端介面的庫:eggtrayicon.c, eggtrayicon.h。 libegg 是一個包含了許多沒有納入但可能在末來某個時候被納入到 GNOME 正式發行的包裡的功能庫。(eggtrayicon.c和eggtrayicon.h見附件)

實現你自己的通知功能表徵圖
  現在就需要在咱們已經的代碼裡調用 eggtrayicon.h 裡的函數來實現我們的通知功能了。
  1. 首先在你的源碼裡引用標頭檔 eggtrayicon.h
  2. 調用 GtkWidget *egg_tray_icon_new(void) 來建立一個通知表徵圖控制項,如 tray_icon.
  3. 在 tray_icon 加入自己的控制項
CODE: [Copy to clipboard]
  #include "eggtrayicon.h"

  void
  create_tray (tray_demo * tray)
  {
      GtkWidget *image;
      GtkWidget *event_box;
      GtkTooltips *tooltips;
      EggTrayIcon *tray_icon;

      tooltips = gtk_tooltips_new ();
      tray_icon = egg_tray_icon_new ("Tray icon demo");
      event_box = gtk_event_box_new ();
      gtk_container_add (GTK_CONTAINER (tray_icon), event_box);
      g_signal_connect (G_OBJECT (event_box), "button-press-event",
                  G_CALLBACK (tray_button_press_event_cb), tray);
      gtk_tooltips_set_tip (GTK_TOOLTIPS(tooltips), event_box, _("Try a left/right click"),NULL);

      image = load_image (GCN_ICON);
      gtk_container_add (GTK_CONTAINER (event_box), image);

      gtk_widget_show_all (GTK_WIDGET (tray_icon));

      return;
  } 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.