From e0e0cc81a55caf72c05a96c6d7e7f4e154a8279d Mon Sep 17 00:00:00 2001 From: foudfou Date: Mon, 4 Jul 2011 14:31:56 +0200 Subject: [PATCH] first working version (firefox tray icon) --- src/chrome/content/overlay.js | 12 +++--------- src/chrome/skin/firefox32.png | Bin 0 -> 2912 bytes src/modules/LibGtkStatusIcon.js | 15 ++++----------- testing/firefox32.png | Bin 0 -> 2912 bytes testing/gkt_icon_example.c | 9 ++++++--- testing/gtk_icon_example | Bin 67281 -> 66933 bytes 6 files changed, 13 insertions(+), 23 deletions(-) create mode 100644 src/chrome/skin/firefox32.png create mode 100644 testing/firefox32.png diff --git a/src/chrome/content/overlay.js b/src/chrome/content/overlay.js index a767eb1..770e755 100644 --- a/src/chrome/content/overlay.js +++ b/src/chrome/content/overlay.js @@ -21,17 +21,11 @@ mozt.Main = { return false; } - LibGtkStatusIcon.init(); -/* - GtkStatusIcon *tray_icon = gtk_status_icon_new(); - GdkPixbuf *default_icon = gdk_pixbuf_new_from_xpm_data(firefox_xpm); - gtk_status_icon_set_from_pixbuf(GTK_STATUS_ICON(tray_icon), - GDK_PIXBUF(default_icon)); -*/ this.tray_icon = LibGtkStatusIcon.gtk_status_icon_new(); - // var pixmap = "hi"; // TODO: read pixmap from file - // LibGtkStatusIcon.gdk_pixbuf_new_from_xpm_data(pixmap); + var icon_filename = "chrome/skin/firefox32.png"; + LibGtkStatusIcon.gtk_status_icon_set_from_file(this.tray_icon, + icon_filename); mozt.Debug.dump('Moztray LOADED !'); this.initialized = true; diff --git a/src/chrome/skin/firefox32.png b/src/chrome/skin/firefox32.png new file mode 100644 index 0000000000000000000000000000000000000000..0c4f6818bd8a200f5eb2b00949b9345af0d1a71b GIT binary patch literal 2912 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 KMNUMnLSTZ0oLOuD literal 0 HcmV?d00001 diff --git a/src/modules/LibGtkStatusIcon.js b/src/modules/LibGtkStatusIcon.js index cd30195..af27979 100644 --- a/src/modules/LibGtkStatusIcon.js +++ b/src/modules/LibGtkStatusIcon.js @@ -49,7 +49,6 @@ var LibGtkStatusIcon = { this.GtkStatusIconRef = ctypes.PointerType(this.GtkStatusIcon); this.GdkPixbuf = ctypes.StructType("GdkPixbuf"); this.GdkPixbufRef = ctypes.PointerType(this.GdkPixbuf); - this.Pixbuf = ctypes.PointerType(ctypes.char.ptr); // Consts this.INDICATOR_MESSAGES_SERVER_TYPE = "message"; @@ -62,18 +61,12 @@ var LibGtkStatusIcon = { this.GtkStatusIconRef ); - this.gdk_pixbuf_new_from_xpm_data = this._lib.declare( - "gdk_pixbuf_new_from_xpm_data", - ctypes.default_abi, - this.GdkPixbufRef, - this.Pixbuf - ); - - this.gtk_status_icon_set_from_pixbuf = this._lib.declare( - "gtk_status_icon_set_from_pixbuf", + this.gtk_status_icon_set_from_file = this._lib.declare( + "gtk_status_icon_set_from_file", ctypes.default_abi, + ctypes.void_t, this.GtkStatusIconRef, - this.GdkPixbufRef + ctypes.char.ptr ); } diff --git a/testing/firefox32.png b/testing/firefox32.png new file mode 100644 index 0000000000000000000000000000000000000000..0c4f6818bd8a200f5eb2b00949b9345af0d1a71b GIT binary patch literal 2912 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 KMNUMnLSTZ0oLOuD literal 0 HcmV?d00001 diff --git a/testing/gkt_icon_example.c b/testing/gkt_icon_example.c index 0e0e1ef..b9e3d18 100644 --- a/testing/gkt_icon_example.c +++ b/testing/gkt_icon_example.c @@ -23,10 +23,13 @@ static GtkStatusIcon *create_tray_icon() { "popup-menu", G_CALLBACK(tray_icon_on_menu), NULL); - GdkPixbuf *default_icon = gdk_pixbuf_new_from_xpm_data(firefox_xpm); + /* GdkPixbuf *default_icon = gdk_pixbuf_new_from_xpm_data(firefox_xpm); */ - gtk_status_icon_set_from_pixbuf(GTK_STATUS_ICON(tray_icon), - GDK_PIXBUF(default_icon)); + /* gtk_status_icon_set_from_pixbuf(GTK_STATUS_ICON(tray_icon), */ + /* GDK_PIXBUF(default_icon)); */ + const gchar *default_icon_filename = "firefox32.png"; + gtk_status_icon_set_from_file(tray_icon, + default_icon_filename); gtk_status_icon_set_tooltip(tray_icon, "Example Tray Icon"); gtk_status_icon_set_visible(tray_icon, TRUE); diff --git a/testing/gtk_icon_example b/testing/gtk_icon_example index 6c755383f8e615a811a06b14da2154bd5cd838f4..a57224faa9468f66a45cddfa4b475662b64747f5 100755 GIT binary patch delta 15258 zcmZYGXOtAx8ZO|TVPB01S0AVE+-kRU+; z$&!&EQ4s?{fgxwf%zbK*dtKgM>)Exx>YnbZ+Ep+9@Y^{w?((3x5gF3l*FP>?D&#dX zd+W-h)`voY_+ZCVt`q;R!zhi`9wH`DCyeYPB4Hv8d<4^A(T${*bm9U1drntROt!voPdF$JSZ zG1;o!6MW;}uLo?Cf+P6*71TBU^?uyH>a8)+S7Nh7$Hv|l9l(s(``T6c*GD?25B84_ z2j6;M=zMZx^}c`9#nj6O#)ad&f4{?f@n7$!R%iGyF6HkZ2&D@(_qhoJ7iLNIZA>(K ze1^Do9Xhs+R*7F6y&ivWG;PAYk>E1Mg!1?^S2X2yUxyA(JvP+IzTg#Z5+6=*rWtHg z+hz{7E>pH(>o{@+TWgXp*t+(Gf^F(hs93OdAfS6(*RO+4jS zcS7%z6BmSPM@yL{_Vm4nC1Vj27$;p*$JK6^K+w0Nu>+{BJiaxTTVC>E6(OMg_ z#2kvY-LN?FU(Zf(%)xWz4o`U`gFKmFeJ|fm?mVP-TsVlat9|0aL0oN8do)5lecq#y z@+>}V8@y6}*!>ecj!k)p`}rTM`^ANW`4Zb8fr5Mf!B8kVeq)-4#@gosbqoNX6% zwD_i?(H$G(%LSQef6A+cyy(RH3}X^=S;=;O=M1;``wQ-gtaBzi`Gut5tcV>H7yb{K z$xj)oQ;!#Ug*W+tkxXJ1OIXh?4seQVBn*xVKS(wTQ-LRFI5;j6Ze`MmcNoBEKI1Ev zvzZ_HgLB*>?U1M#|(`N-%BR)QJQKz zOLIEVgT9PlB44tYb?oGKPI8s_Vb+kW6rwz}Xh2I|<8AsgDq@(zT$Ztky&UE&H%T)* zF8p6|QjEuViYBz-b>3$%W0}SRR zYuUkXoZt#^Bi*@Vp&;d`$#c9!N8aK?qD*EEOW8Qm`tLD0#2Ic7{wOZ|FgYknC7z@) zt?9yh3}OsZna@hLu#Y2LAer>hxbP$7p(ItQ%L}xRTK{e)y&1-MX7CMb_<>(J&R?V& z6&JpbM=3yAYEYjRyh=~{@e!Xgn{U~`ZVqyq>!gm1jtf6Tc8XAu+BD*2I`b|A`Iyg{ z#|pmZC;sF-w@LSLTsQ-{DM1zL@I38!gI)~f6Cz(2zUDi&^9xB_CU%S*AT#+XLv`x$ zBCqf!A25I42gpP|N>hzzX-)@v(3cTR zCjDeNKpsj`mAaE7g21Fb-RR9Q#xsL&Si=we%5nZ8)f73vqZFVlHK zJKmrdk)ei9_=2zbj_v$H5|@dcDhJ3+e#%gtdc4RhyvYZQWD>Jj!g_XbfKyx}VVWEu z+cfK6*rWna(2!Pi;vEJsn$P%(L{Y)^y=L1~G=I%x5KA*vAnrkWBhHa)3OPoMZi~n$+b5+S85R3}ZYq z_=Yw7z^@$VFH+5w13XFr%2I>+wBS{G(vOe$l-YdC26jgb2RY4kQhy}}$W9R|QkzD+ zOlRI@ARqHN^H{<6{KTJ}=Qio)$pLaxf-2PEdD;p>eS;!Ug1qXU?h{6#S+%DivyhE8VL)m|APwz0fni+6Evh1op^@&Oyr|9)p(ZXbf5=) z8No!pWHIa5$?u%xD)HaQ0kTqv^3;kL8qkv0c$@x=VhVFv#wPZ1n6um@%_2EKPKxmu zPtk-nyw3X!W-QZKz$&)#Gm)c)i-Z=-0Wy-8QasKxG$WDj^kFy?n8_m6vV-3^!4=|` z$N{oYkaE=IIbNb8Z!NL@ADTp&%p8`okv$yZ3^xdWD+kCyQ7Z8yjcH96-eVABn96)s zvW0yd;R4B|Un&QdTK_yIC8w*asDFJGC9Db6re0Ms80)C zr6>LPh)`Wnx##0Wy=HGE}D?FY*d+@&O~6#4MJuo?RT^ z)Jp4r%_L!!{~#b6g{i<3G^7=sc!vRu<}ReKo$y8j+#8jOY5zFN0YbskSLRx z!%{Y~heMp<2H_2IfE*O15>L{Y)^y=L1~G=I%x5KA*vAnrki5bAr{5?D$U{l0QkNHK zPd9oqjPcCi8`kgxzjB-HDKR)8qh+#J0vVq+keHhLJX0nL2 z?BF*}aD}*Ca)2xpq#QMOS^wuuUZNv!@gY$rGl!*YWDkcp!wtf_Q<=|7wy=*QyRH8PlVsBGkptwRBvq-)3$&*jy&1-MX7CMb_<>(J&R?Y3D+hR# z0+gi&^=ZMY^rT!kis4v?K9RHQbIc$v<;%RoNnbLO#v@A-*8 zInQm<{Uis7R(2rn8XMY-2yixJ1k^a)3)6TfoaAc6 z5dW(nAS;C^Pc0hIlGk{f{)}P@b6LhF_HvlB+$7C!a)6u^<1wD132k_t_ZduNtYI1p zSjAR;<|r2l{VoT{NM1_uIM2|GM7q<5;Y?sAi&)DJe&YmJh&vz$$U?yb*1w!dO`hW= zI`S4D5@j-TSjtBBaELS9Abd~`kb|OB;z=6Qnl8M@AjUA2`K)Bi!H6I*Il={!Nq}|Ye&slSk?OD<;86-tmKxNj1+PX7J?Y0se9COTWdpl8 z$Z4*V`VTokc8XAu+BD*2I`b|A`Iyg{#|pmZC;sF-w~3_tQxK4w5>%lM&(n@K=*3Vz z;S0XzJGS!+Nn9rOh#Vj@`6)wn>hU74@FpKHl1WFb|16UwtY;SoIK?#*j>-YDQJ4xm zK|@;6iFX*lXg=dBma~~3`Ga%ZBJD9bKrV_?`Iz;8+N3FM=}LqljAJ?rSMq4~a6FIV@!(dpN`yZV)~#2gpHD zD)A(ZX-ya2V-RDQ%KX#Tf2GM5_Hl#@B$NJ(93T%RsY+d5pgrB_%`nC@gKt>F5B$n; z{vy>`Il!Y7pe!}0A2GDxReI8okNA|?e9H!QbCAhL`6c!ORH`H??3$1T!c zk^|(rWc`bqROV@#(w4477{WNFvyjznV?W2ZM9gJ5Kqm50nrb{tb2`w2zKmcZU$U5W z5yMV?=OkB&|4R;#l|q!K77b|0YrIW=MlprCEMpUUIm}sZlIDsWAScCmjHhTqq>bTq z-e)jlnZ^QEv6Y`W%0)s~YuUkXoZ!k;>mPSb5Rip} zl%pok@e&<*iw}u1nK>+FBYQZ+8Ez21E(gd#Q7Z8yjcH96-eVABu3P`9Ci7Xz7WQ$3 z3nY{Nh8!RdC8w*asDFJO*z1$6rgOxP=ork;8l9kkB|72 z*?h|ec5{%^TqpG{IY4%bP?6d+;$=GXE(7_P&zZ*xz9;gN;ZM$Un{>D30J$ka73%Oj z?RbM;4CNEP;A_5PJHL>`Wnz=%0GY{88LCr{7kMSw`oC%N0VA2jES9jIT^!&P*GLG( zhaV&xg{i<3G^7=sc!vRu<}{LV?P5}ztQ`~X=gM0sk_ zfR?<*+w^A?Q<%##HnEq(oaH8I;^M>qB`3vrjL1`lCbZ#o-e)jlnZ^QEv6Y`W%0)u) z@!@;ONM1_uIM2|GM7q<5;Y?sAi&)DJev6Nfgin}UAub_4d_P$zNI7cq952z4xA>4K zlbOR(HnN99oZ$xkU)J!$=dCQwQ0o5bmm0e925ap>w16uMLZ_}Sq zOkpm|*u-8AbC#Q=xnB;DlSnbcV?0F@+VDE>GnlbVV*#t!%Fi6-BB2N502#?kDIVt; znvqC%`Y@ac%w!R3AF%#AOn&18SBQI14v>X{l%pok@e&<*iw}u1nK>+FBYQZ+8Ez1M zNDh#LqEzBZ8q@kA>)*xXJq9s`smy03TiC}DE|5(6hvfiyC`nc7@&fJYMsJ2Oo*8_@ z8h+qcj`J6(BL5WxJW2t|QiJ-m;8l9kkB|72*?h|ec5{%^TqpJa^cNoBEKI1EvvzZ?= zTK_*x&T)&hndAVuC{AUbrYUXdN`xVdV>%02%{KOPj7!91mIGuWAEl|rvoxmzJtBs_ zj9?;PvY2)3H09h$Sd1}#smb}K>^k)=Pn9DLYv6sV~n=pE=4!LRsYi8Ocj29_JaFkw|y?Fq{d@%xe7?nXF|8zj1;q z#ATBMWT7DCsL6A@L`UA@L!wM(4olg{9u9Ga8-%mV0di23N<5i8A_z=c(}njK#2BVB zpOtK3A4j-AGU;>30rF6is?_BL+S85R3}ZYq_=Yw7z^@#S82%zvPC3A%6re0Ms80)C zr6>LPh{@#2NrsMvJpptp z;zr}$qSmvR$B=MwcRTl$a8r??q_rbkDOZSmr3Dhj%6RT6SJvZ2)pBlPYL|DfP_Kd| zp=m{DPRmMirc!*_aN=X0XS!7O*wC|zyOUm3-2;z%c1d5&6T(B)-H2qav2fAVgxHv3 z(G}OTrU{xauIj4j89ky3+9SH?$;cDE=SJ3qpm}0!e6+-k90@^h#gh2w3paA43EC}I z`%KelzZ+TOgFdSa(U~`Lrm1aKTOY^j=-wMyQ<~Q9(*QLjddoKjEguuoM04ECk!FeM z5}i=xqjhg)O-N}(TNmwmGe>-enl4au+|8T`L3_%m_0csqb0h?fJrmYPPnZUsJ5$$3 zAGnnxA*GpZeYCsUy-^vqf z6MH*POk6bo?Ys%|ZiPZS;-Zaj=Sb)k8xy)58-4$Fk4SJqf{u_>cUtH|!6ms;F8|i@!wz*3NGxOI_S0ug@Q|ar_PX4@9RH0PfU@Q@BVH~=z&m1 zZ`}Re7|l5O)OUY3#_yI^SN;3MV?+0Zo>m9T6twBYgdPb6O-n&*SJ2@X)QPr}`;T4} zlcmJizYjn7ncjAf`1|x@^aBl7|MO?YtGf&wlMoY=CDO}LH`Tos6Uq?UVgD&Vf50~Q z`9rpM&oV|&(G~UG)6x4F3Xbcabtd)Q=AoF-!=YU2yH_Qf?=KqEmM!RRdcgNri3xT3 zzY87gsO1B9U)f9={j2Vv4%Yo{hhvw2ydSLUTk7DM3clk3_etbm?~fmIe{9Tyk>&sR zij6*U_ZaVUjC<5Un_AFG6&%u0_3FRB^8VQWgf9N;D{rcU{=48O?~i>jlqP7!^7&w? zg1>(xsQ-Qihgdo`G)9Bz{hBN9yn>zW|Mj8w)G5t<-U~WC2mb5*sp_EP?(RV@R{ygz zboswNzg7Lu@7o<4$`NXN_d>otXHNp-|}P znCz`9_ShH-1!AoTr3;0kERxqXh>h<-wc?>rE#m &I_){zGjW+F;Du(y8}u2!-}m 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