# HG changeset patch # User Mark Doliner # Date 1174786120 0 # Node ID 6f04fe174f404af26a7b35c18144f5237169b6b2 # Parent 15cccdd323216abdf994196dc0b28fb08741752e Change some stuff from gaim to pidgin diff -r 15cccdd32321 -r 6f04fe174f40 Makefile.am --- a/Makefile.am Sun Mar 25 01:05:56 2007 +0000 +++ b/Makefile.am Sun Mar 25 01:28:40 2007 +0000 @@ -10,16 +10,16 @@ README.SVN \ README.dbus \ README.mingw \ + config.h.mingw \ gaim.pc.in \ gaim-uninstalled.pc.in \ - gaim.apspec.in \ gaim.service.in \ - pidgin.spec.in \ - pidgin.desktop.in \ intltool-extract.in \ intltool-merge.in \ intltool-update.in \ - config.h.mingw \ + pidgin.apspec.in \ + pidgin.spec.in \ + pidgin.desktop.in \ po/Makefile.mingw noinst_HEADERS = config.h diff -r 15cccdd32321 -r 6f04fe174f40 configure.ac --- a/configure.ac Sun Mar 25 01:05:56 2007 +0000 +++ b/configure.ac Sun Mar 25 01:28:40 2007 +0000 @@ -1895,12 +1895,12 @@ AC_OUTPUT([Makefile Doxyfile - gaim.apspec gaim.service doc/Makefile doc/pidgin.1 doc/finch.1 m4macros/Makefile + pidgin.apspec pidgin/Makefile pidgin/pidgin.pc pidgin/pidgin-uninstalled.pc diff -r 15cccdd32321 -r 6f04fe174f40 doc/funniest_home_convos.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/funniest_home_convos.txt Sun Mar 25 01:28:40 2007 +0000 @@ -0,0 +1,453 @@ +All IM names have been changed, so we don't get sued or nothing. We get some +interesting convos.... + +17:58:27 Luser: You do any GTK programming? +17:58:43 Zilding: You mean, work on GTK itself? +17:58:56 Luser: no program stuff using GTK +17:59:37 Zilding: Hrm. How do you know me, again? :) +17:59:54 Luser: haha.......i saw your handle in the help part of gaim +18:00:01 Zilding: yes. +18:00:05 Luser: Didnt mean to freak you out +18:00:16 Zilding: Iz okay, I figured that was the answer. +18:00:26 Zilding: Is gaim written with Athena, Motif, or Xforms? +18:00:29 Zilding: or GTK? :) +18:00:39 Luser: GTK :) +18:00:50 Zilding: I believe you have answered your own question. :) + + +15:40:14 SomeGuy: hey you there? +15:40:28 Zilding: nope +15:40:33 SomeGuy: :-) +15:40:43 SomeGuy: ah there was a little bug in my code. +15:40:46 SomeGuy: did you notice it? +15:41:28 Zilding: uh....jim ain't here...well...not at the keyboard at +least...this is alissa... +15:41:38 Zilding: and uh...i am not wearing a bra +15:41:46 SomeGuy: hi alissa +15:41:46 Zilding: i have him tied up at the moment +15:41:51 SomeGuy: ah +15:41:52 Zilding: hello +15:42:01 SomeGuy: I hope he is having fun. +15:42:05 Zilding: yeah....we're kinda busy righ tnow +15:42:09 Zilding: know..err +15:42:22 Zilding: hehe.... +15:42:24 SomeGuy: should I let you two love bird go? +15:43:09 Zilding: uh...well...yeah i guess...he really isn't in any sort of +position to help you right now... +15:43:42 Zilding: THREE CHEERS FOR A WIRELESS KEYBOARD +15:43:44 Zilding: WOOHOO +15:43:54 SomeGuy: tell him I said... compared to the current situation what +I was going to ask him is microscopic. +15:44:00 SomeGuy: have fun guys. + + +16:24:41 JailBait: Hello How are you? +16:24:48 JailBait: stats? +16:25:00 Zilding: pretty good, who is this? +16:25:54 JailBait: I got your name from the hotmail webCourier...i'm Abi 13/f +16:26:39 Zilding: Hotmail webcourier? +16:26:51 JailBait: yeah +16:26:59 Zilding: Interesting. +16:27:17 Zilding: Well, I'm 18 years old, male, and I still haven't a clue how you got my IM :) +16:28:28 JailBait: yes it was under the thing where people were asking Questions and you anwered them....someone ask if they could IM you and you put in this s/n +16:28:59 Zilding: Hmm.. what kind of questions was I answering? +16:29:38 JailBait: normal one's you were ansering holdon +16:29:54 JailBait: hey mom is home talk to you later +16:29:56 JailBait: bye bye] +16:30:02 Zilding: uh.. okay :) +16:31:58 Zilding: hey can you send me the URL to where you got my screen name? I'm just curious :) + + +19:05:45 ZFriend: waddle waddle waddle +19:15:34 ZFriend: *waddle waddle waddle* +19:15:45 ZFriend: (pssttt) +19:16:07 ZFriend: (the penguins are coming...) +19:16:12 ZFriend: (they are coming to dance with you...) +19:45:16 Zilding: Really? Coming to dance with ME? +19:45:22 ZFriend: yes! +19:45:49 Zilding: Cool! Why? +19:46:01 ZFriend: they like you +19:47:12 Zilding: wooohooo! +19:47:14 Zilding: How'd you find this out? +19:47:22 ZFriend: ...........they told me....... +19:47:58 Zilding: Do you have secret meetings with them? And what kind of dancng will we be doing? +19:48:17 ZFriend: i cannot release any more information..... they do the mambo +19:49:13 Zilding: hehe sounds like fun. When are they coming? +19:49:24 ZFriend: after their tea time +19:49:55 Zilding: Okay. Are they bringing the herring or should I make a run? +19:50:10 ZFriend: the herring is not provided +19:50:31 Zilding: Ok cool. Well thank you, Miss Mander Oracle :) +19:50:54 ZFriend: :) + + +16:57:30 L0s3R: u help write tik? +16:57:54 Zilding: No, I'm the author and maintainer of gaim, and I spell correctly. +16:58:25 L0s3R: gud gohd eyem sohry ashole +16:58:36 Zilding: Fuck off. +16:59:44 L0s3R: eheh +16:59:46 L0s3R: i bet you have awin98 box too dont you fag +16:59:46 L0s3R: tik owns +16:59:46 L0s3R: eheh +16:59:46 L0s3R: actually all this aol shit sucks +16:59:46 L0s3R: eheh +17:00:36 Zilding: Pardon me. I've written Linux device drivers, and I'm on the XFree development team. What have you given to the community? +17:01:27 L0s3R: Nothing you've heard about mr uppity. =) +17:02:17 Zilding: I'm sure not. So forgive me when I'm not in a very good mood and I have a little contempt for people who use phrases like 'owns', can't spell correctly, and feel the need to capitalize every other letter in their name. Are you a hax0r too? +17:02:26 L0s3R: you ego is taknig up alot of space btw +17:02:29 L0s3R: taking +17:02:29 L0s3R: if you will +17:02:32 L0s3R: lol +17:02:39 L0s3R: goddamn +17:02:50 L0s3R: im sure you use office software too +17:03:31 Zilding: Get outta my face, ya script kiddie, and go back to your quake game. + +13:35:35 WinFreak: could u help me out with gaim..i kno i'm retarded ROFL +13:35:54 WinFreak : after you unzip it what do u do? +13:36:36 RobFlynn: You have gaim-0.9.5.tar.gz? +13:36:40 WinFreak : yeah +13:36:43 RobFlynn: first do: tar xvzf gaim-0.9.5.tar.gz +13:36:47 RobFlynn: then go into that directory and type: +13:36:49 RobFlynn: ./configure +13:36:52 RobFlynn: then type: make +13:37:10 WinFreak : tar xvzf...is that on ur webpage? +13:40:00 RobFlynn: Umm ... +13:45:00 WinFreak : Where can I download tar xvzf gaim-0.9.5.tar.gz? Is this for windows? + + +*** This is what happens when Gaim Developers get bored. + +22:39:18 RobFlynn: Umm +22:39:19 RobFlynn: My brain is dead. +22:39:39 Flyn Orange: *hooks up electrodes to Rob's brain and connects the battery* +22:39:47 Flyn Orange: kaZAP! +22:39:53 RobFlynn: EEpepEPAPEPAEppaep BBrRERERFFFF EPEPEPPEPpeppepape +22:39:58 RobFlynn: *waddle jerk waddle waddle twitch* +22:40:14 Flyn Orange: Its alive! Its ALIIIIIIIIIIIVE!! +22:40:25 Flyn Orange: *maniacal laugh* +22:40:26 RobFlynn: *twitch twitch waddle convulse* +22:40:41 Flyn Orange: *disconnects battery* +22:40:52 RobFlynn: *** The sun slowly fades away as a giant penguin towers above the remains of a small, wooden table*** +22:41:13 Flyn Orange: ** storm clouds rise ** +22:41:25 Flyn Orange: *thunder crack* +22:41:26 RobFlynn: *** With an eerie, almost mechanical qualling, the penguin marches its way over to its creator *** +22:41:56 Flyn Orange: Well, hello lit...er...big fella. Would you like some HERRING? +22:42:19 Flyn Orange: How about some FREE BEER? +22:42:44 RobFlynn: *** A booming voice echos through the hallways *** +22:42:47 RobFlynn: *** PIPE GREP MORE *** +22:43:20 RobFlynn: *** With a low, rumbling sound the last syllable of the mysterious phrase shakes the very foundation of the decrepit laboratory*** +22:43:22 Flyn Orange: ** the mad scientists terminal suddenly crashes, and a vaguely familiar blue screen shows on it's display ** +22:44:08 Flyn Orange: Damn the fates! How can I face my peers now when I TOLD them proprietary was better! +! +22:45:19 RobFlynn: *** THE PENGUIN BALKS: CTRL-ALT-DELETE *** + + +hungryguy: Were you the one who ate the 1lbs hamburger? +Flyn Orange: hehe... Well, I tried to. I was feeling kinda sick. :) +Flyn Orange: Flyn Orange: Would've finished that sucker off if I'd have been feeling better! +hungryguy: I'm proud of you still. +Flyn Orange: PsyAssasin: That's quite impressive. +Flyn Orange: *grin* Thanks! +hungryguy: I'm motivated to have a 1lbs hamburger party here. +hungryguy: That would be sweet. +Flyn Orange: haha! That would rock! +Flyn Orange: Good idea. +Flyn Orange: Think I might do that sometime too! +Flyn Orange: There are some truly cool people out there. + +--- If you guys havent learned yet, Jer is a smartass :-) --- + +00:03:43 Flyn Orange: *shoots you with silly string* +00:03:55 RobFlynn: HELP! I AM COVERED IN NEONG REEN STRING +00:06:54 Flyn Orange: NEONG REEN, Taiwan (AP) - + Despite the recent economical collapses suffered due to + massive geological activity over the last month, the very + profitable gag-manufacturer of Silly String has + maintained production through the turmoil. Still + employing 324 workers and a management team of 15 + Slinkies, there is no risk of a price hike in cans of + Silly String over the next few months... + +--- heheh Jeramey is a jackass :-) --- + +14:44:28 Flyn Orange: You should see gimp try and swim. She goes in circles +'cause she's only got three legs. ;) +14:44:34 RobFlynn: *giggles* +14:44:39 RobFlynn: Ive seen my cars swim before +14:44:44 RobFlynn: They doggie paddle :) +14:44:51 Flyn Orange: cats you mean? :) +14:44:56 RobFlynn: Woops! +14:44:57 RobFlynn: Yeah. +14:44:59 RobFlynn: Cars sink. +14:45:01 Flyn Orange: hehe +14:45:07 Flyn Orange: Yeah. Cars suck at swimming. +14:45:15 RobFlynn: heheh + + +--- +Eric and I were a little weird this night hehe + + +03:31:43 RobFlynn: "No Bite", she rebuked. +03:31:46 RobFlynn: Rebuked is a fun word. +03:31:51 RobFlynn: I don't know if I used it properly, but it is still fun. +03:31:55 Eric Warmenhoven: i like idiosyncratic +03:32:01 RobFlynn: I like sesquipedalian +03:32:14 Eric Warmenhoven: variations on idiosyncracy are my favorite words. +03:32:20 Eric Warmenhoven: i like them. +03:32:22 RobFlynn: I like sesquipedalian because it is polysylabic by +defination and practice. +03:32:25 Eric Warmenhoven: that's one of my idiosyncracies. +03:32:40 RobFlynn: Idiosyncracy is a sesquipedalian. +03:32:48 Eric Warmenhoven: holy crap +03:33:00 RobFlynn: Sesquipedalians such as idiosyncracy are often times +considered ambiguous. Why use a large word when a dimunitve one will suffice? + + +-- + +(14:54:25) SeanEgan: are you coding now? +(14:55:33) RobFlynn: Nah I gotta go buy pants. +(14:55:37) SeanEgan: haha +(14:55:40) SeanEgan: that was so random + +--- + +(13:51:10) wizardof___: can we have a memorable conversation? +(13:51:19) RobFlynn: i think we just did + +--- + +(22:39:02) KingAnt: I'll try to find someone with ichat to test it with (ie. get one of the guys I live with to install it) +(22:48:12) Paco-Paco: KingAnt: I have iChat +(22:48:34) KingAnt: Paco-Paco: Does it suck? +(22:48:42) Paco-Paco: yes +(22:48:47) Paco-Paco: it's hard to use +(22:48:47) KingAnt: Cool + +--- + +(22:33:31) CopyMe: ok, how do I copy a file and paste into another directory +(22:33:47) Zilding: cp +(22:34:04) CopyMe: what does that do +(22:34:06) CopyMe: copy? +(22:36:05) Zilding: yeah +(22:37:27) CopyMe: then how do you paste it? + +--- + +(02:08:12) gobblegobble: whats a chicken head +(02:08:24) RobFlynn: your mom + +--- + + I dislike the random capitalization utilized by fortunes + those aren't fortunes + those are yows + I don't know why lunix fortune gives back yows + Paco-Paco: I understand everything you just said + does it scare you? + Paco-Paco: You have no idea + +--- + +(18:45:00) SuperNewbie entered the room. +(18:51:07) SuperNewbie: I'm new and I dont understand how to get into a chat. +(18:51:19) faceprint: you're in a chat now +(18:51:30) SuperNewbie: Oh OK + +--- + +23:39 <@LSchiere> try the grammer again +23:40 LSchiere, you can try the spelling again, too ;) +23:40 <@LSchiere> SeanEgan: you know by now that i'm incorigible + +--- + +(20:53:30) idiot1: im havn problems with my sound in gaim can any1 help me +(20:54:59) LSchiere2: have you read the faq? +(21:03:35) idiot1: no and im not reading it +(21:03:45) idiot1: cuz it wont help anyways +(21:03:47) LSchiere2: then you will have no help +(21:03:54) LSchiere2: because i wrote it and i know it would help +(21:04:27) LSchiere2: since you already know everything though, you obviously don't need any help idiot1 +(21:05:38) idiot1: nope +(21:05:42) idiot1: opps + + +--- + +(20:37:03) marv: nosnilmot: I can just try tweaking gtk_imhtml_get_markup_range +(20:38:28) nosnilmot: marv: I know you can, because you know what's going on in there, but is there any point in me trying?... +(20:38:57) marv: nosnilmot: I could explain it to you I guess. Sure why not. +(20:39:44) nosnilmot: marv: I'd like to know (I think?), but now probably isn't the best time, I shouldn't have asked +(20:40:11) marv: The buffer is composed to unescaped (no entities) text, with a certain unicode character representing images or smileys or widgets. +(20:40:26) marv: nosnilmot: oh. well let me know when you feel like listening +(20:41:10) nosnilmot: marv: don't worry, I will. I need to learn C first. +(20:41:27) marv: um, you don't know C? +(20:41:31) nosnilmot: no +(20:41:44) marv: then what were those patches i applied from you earlier? +(20:42:05) nosnilmot: you don't need to know C to write patches +(20:42:12) marv: oh okay + +--- + +-!- seanegan [~sean@...] has quit [Remote closed the connection] +-!- seanegan [~sean@...] has joined #gaim + Someone should fix that bug where if you click on the user list + in an IRC channel, it crashes. +-!- LSchiere2 [~luke@...] has quit [Remote closed the connection] + I guess that was "reproducing" + +--- + +18:33:26 hello there +18:34:03 I just wanted to share some bevavior that I think its kinda of + unsafe when using GAIM with yahoo messenges accounts +18:34:43 Whenever you transfer files between users, no receiving + confirmation is requested, the file gets transfered + automatically +18:37:32 surely you have to accept file transfers +18:37:57 Paco-Paco, nope, Whenever people sends me files, I get no + confirmation request +18:38:30 Paco-Paco, and the files gets right through my home directory +18:39:00 I find this a bit hard to believe since most people come in here + asking for some way to auto-accept. +18:39:48 deryni, I just installed fc3 , fully updated it, no extra + configuration was done and that's the default behavior +18:40:06 deryni, I searched the settings and there is no configuration + on this issue +18:40:29 I know there's no configuration on it, that's what everyone keeps + asking for. +18:41:08 deryni, sometimes I get pictures of naked girls in my computer + and I guess that GAIM is the one responsible for that since it + does not ask for file transfer confirmation + +--- + +(16:35:01) noname2: hello gaim is new port ? +(16:35:08) noname2: msn +(16:35:17) LSchiere2: what in the world are you trying to ask + +--- + +(00:22:45) user: hi +(00:22:47) user: can you help me? +(00:22:56) richielaager: I don't know. +(00:23:02) user: can i borrow a pencil? +(00:24:13) richielaager: Only if you're willing to pay transportation costs + to get you the pencil, plus $60/hour for the time it + takes me to transport said pencil to you, plus a pencil + rental fee of $1/day, plus a one time pencil sharpening + service charge of $5. +(00:24:37) user: I have a 100$ in paypal, where do i send it to? +(00:25:10) richielaager: I hear some guys in Nigeria are looking for account + information? +(00:25:32) user: or can you put a pencil feature into gaim? to create a + physical pencil out of a rubber reconstruction machine? +(00:25:50) user: those guys only sent wood- no lead :( +(00:26:10) user: they told me it was "invisible" lead. +(00:28:27) richielaager: Interesting... They sent me plenty of visible lead, + they said, it's just waiting for me at a holding company + in Moscow or some place like that. +(00:28:53) user: Seems you've been had. +(00:29:09) user: The invisible lead works quite well. +(00:29:28) user: Anyways, I'm here to ask a question. +(00:29:29) richielaager: Damn! +(00:29:42) richielaager: Damn to that too. :) + +21:26 I was considering just making a remote control program +21:26 where you type in a password, send it via gaim, and + gaim becomes a text terminal + [time passes ...] +21:38 I'm terribly conservative when it comes to security + +19:47 hey +19:48 how do i set aim to block all users except those on my + buddy list? +19:48 don't tell me i have to log in with the regular AIM :( +19:48 I wouldn't tell you that, because it's wrong +19:48 how about you look in privacy +19:49 where? +19:49 i can't find it +19:49 in Privacy +19:49 OH! +19:49 haha +19:49 thanks! + +14:12 Is it possible for me to see my friends webcam via + msn in gaim? +14:12 no +14:13 not voice either then i guess? +14:13 correct +14:13 ok, then not much to do. +14:13 there's always seppuku +14:14 so true +14:14 ok, is that another client? +14:14 something like that + +(17:44:15) elb: what's that one song that's always played at weddings that's not the processional or recessional +(17:44:37) tehfox: bridal choral or something? +(17:45:04) seanegan: elb: The Chicken Dance +(17:45:12) elb: seanegan: oh that's the one +(17:45:34) ***LSchiere boggles +(17:45:56) elb: it's the one that goes +(17:46:31) elb: dunnn dunnnn dunnnnn dunnnn dunnn DUUNN duun DUUUNNN, dun da-da-di da-da-di da-da-da-di-di-di dunn da-da-di dun-da-di-di-diii-di +(17:49:13) seanegan: Pachelbel's canon? +(17:49:18) elb: seanegan: YES +(17:49:25) seanegan: hell yeah! +(17:49:25) elb: awesome, thanks +(17:49:28) elb: Kanon in D + +edited for brevity, and name changed. +(13:51:31) l33t_h4x0r: Is there such thing as a gaim ip sniffer for linux? +(13:51:40) LSchiere: no +(13:51:46) l33t_h4x0r: You sure? +(13:51:50) LSchiere: though if there were, I'd still say no +(13:51:55) l33t_h4x0r: Why? +(13:52:00) LSchiere: since there's no good reason to be looking for one +(13:55:12) l33t_h4x0r: Is...this a sensitive subject? +(13:55:29) seanegan: l33t_h4x0r: not as sensitive as someone's IP address, apparently. +(13:55:31) Err: no, "needing" to know what someone's IP is without asking them is totally sane, rational, and socially normal +(13:55:42) l33t_h4x0r: I want to use it for destruive purposes? +(13:55:50) l33t_h4x0r: Morally wrong. +(13:56:01) l33t_h4x0r: I'll admit, but a valid reason. +(13:57:04) l33t_h4x0r: Asking someone would give away my position... +(13:57:33) l33t_h4x0r: Arlight, nevermind. +(13:57:36) l33t_h4x0r left the room ("Leaving"). +(13:58:58) LSchiere: *amused* that's the first time in a while that the requester has *agreed* that there is no legit reason to want the feature +(13:59:19) Err: he was not the sharpest knife in the drawer + +14:57 [blah blah blah simple question] + [other traffic] +14:57 [retransmit simple question] +14:59 itchypants: you need to chill the hell out +14:59 seanegan, ah okay thanks +15:00 no problem + +(15:57:11) sadrul: the files (at least a couple) in the tar.bz2 are different +(15:57:23) datallah: right.. that is the problem - the code in svn is fine +(15:57:31) seanegan: oh, what the hell? +(15:57:41) seanegan: don't tell me I make dist'ed the wrong tree +(15:57:46) LSchiere: how does the code in svn differ except in gaim's +funniest and the spec.in? +(15:57:50) LSchiere: seanegan: sounds like it +(15:57:53) datallah: you are such a screw up! +(15:58:12) seanegan: I sure am +(15:58:32) seanegan: Ugh! +(15:58:37) datallah: you must have been distracted by um... plugins +(15:58:45) seanegan: Don't I test these things? +(15:58:51) LSchiere: you test things? +(15:59:06) SimGuy: seanegan: by experience, I think we've determined you do +not :) + +(07:52:07 PM) clueless21: are you one of the gaim makers? +(07:52:14 PM) Nathan Walp: yes +(07:52:24 PM) clueless21: cool +(07:52:37 PM) clueless21: if your busy, i can leave you alone... +(07:53:03 PM) Nathan Walp: if you have a question I can answer it +(07:53:34 PM) clueless21: umm... well i don't exactly know what gaim does and what it's for. i don't know if i should get it +(07:53:46 PM) Nathan Walp: it is an IM client +(07:53:57 PM) clueless21: o. what's it do? +(07:54:03 PM) clueless21: what's an im client? +(07:54:25 PM) Nathan Walp: it lets you chat with other people, like we are chatting now +(07:54:45 PM) clueless21: oooooooooo... thanks diff -r 15cccdd32321 -r 6f04fe174f40 doc/gaims_funniest_home_convos.txt --- a/doc/gaims_funniest_home_convos.txt Sun Mar 25 01:05:56 2007 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,453 +0,0 @@ -All IM names have been changed, so we don't get sued or nothing. We get some -interesting convos.... - -17:58:27 Luser: You do any GTK programming? -17:58:43 Zilding: You mean, work on GTK itself? -17:58:56 Luser: no program stuff using GTK -17:59:37 Zilding: Hrm. How do you know me, again? :) -17:59:54 Luser: haha.......i saw your handle in the help part of gaim -18:00:01 Zilding: yes. -18:00:05 Luser: Didnt mean to freak you out -18:00:16 Zilding: Iz okay, I figured that was the answer. -18:00:26 Zilding: Is gaim written with Athena, Motif, or Xforms? -18:00:29 Zilding: or GTK? :) -18:00:39 Luser: GTK :) -18:00:50 Zilding: I believe you have answered your own question. :) - - -15:40:14 SomeGuy: hey you there? -15:40:28 Zilding: nope -15:40:33 SomeGuy: :-) -15:40:43 SomeGuy: ah there was a little bug in my code. -15:40:46 SomeGuy: did you notice it? -15:41:28 Zilding: uh....jim ain't here...well...not at the keyboard at -least...this is alissa... -15:41:38 Zilding: and uh...i am not wearing a bra -15:41:46 SomeGuy: hi alissa -15:41:46 Zilding: i have him tied up at the moment -15:41:51 SomeGuy: ah -15:41:52 Zilding: hello -15:42:01 SomeGuy: I hope he is having fun. -15:42:05 Zilding: yeah....we're kinda busy righ tnow -15:42:09 Zilding: know..err -15:42:22 Zilding: hehe.... -15:42:24 SomeGuy: should I let you two love bird go? -15:43:09 Zilding: uh...well...yeah i guess...he really isn't in any sort of -position to help you right now... -15:43:42 Zilding: THREE CHEERS FOR A WIRELESS KEYBOARD -15:43:44 Zilding: WOOHOO -15:43:54 SomeGuy: tell him I said... compared to the current situation what -I was going to ask him is microscopic. -15:44:00 SomeGuy: have fun guys. - - -16:24:41 JailBait: Hello How are you? -16:24:48 JailBait: stats? -16:25:00 Zilding: pretty good, who is this? -16:25:54 JailBait: I got your name from the hotmail webCourier...i'm Abi 13/f -16:26:39 Zilding: Hotmail webcourier? -16:26:51 JailBait: yeah -16:26:59 Zilding: Interesting. -16:27:17 Zilding: Well, I'm 18 years old, male, and I still haven't a clue how you got my IM :) -16:28:28 JailBait: yes it was under the thing where people were asking Questions and you anwered them....someone ask if they could IM you and you put in this s/n -16:28:59 Zilding: Hmm.. what kind of questions was I answering? -16:29:38 JailBait: normal one's you were ansering holdon -16:29:54 JailBait: hey mom is home talk to you later -16:29:56 JailBait: bye bye] -16:30:02 Zilding: uh.. okay :) -16:31:58 Zilding: hey can you send me the URL to where you got my screen name? I'm just curious :) - - -19:05:45 ZFriend: waddle waddle waddle -19:15:34 ZFriend: *waddle waddle waddle* -19:15:45 ZFriend: (pssttt) -19:16:07 ZFriend: (the penguins are coming...) -19:16:12 ZFriend: (they are coming to dance with you...) -19:45:16 Zilding: Really? Coming to dance with ME? -19:45:22 ZFriend: yes! -19:45:49 Zilding: Cool! Why? -19:46:01 ZFriend: they like you -19:47:12 Zilding: wooohooo! -19:47:14 Zilding: How'd you find this out? -19:47:22 ZFriend: ...........they told me....... -19:47:58 Zilding: Do you have secret meetings with them? And what kind of dancng will we be doing? -19:48:17 ZFriend: i cannot release any more information..... they do the mambo -19:49:13 Zilding: hehe sounds like fun. When are they coming? -19:49:24 ZFriend: after their tea time -19:49:55 Zilding: Okay. Are they bringing the herring or should I make a run? -19:50:10 ZFriend: the herring is not provided -19:50:31 Zilding: Ok cool. Well thank you, Miss Mander Oracle :) -19:50:54 ZFriend: :) - - -16:57:30 L0s3R: u help write tik? -16:57:54 Zilding: No, I'm the author and maintainer of gaim, and I spell correctly. -16:58:25 L0s3R: gud gohd eyem sohry ashole -16:58:36 Zilding: Fuck off. -16:59:44 L0s3R: eheh -16:59:46 L0s3R: i bet you have awin98 box too dont you fag -16:59:46 L0s3R: tik owns -16:59:46 L0s3R: eheh -16:59:46 L0s3R: actually all this aol shit sucks -16:59:46 L0s3R: eheh -17:00:36 Zilding: Pardon me. I've written Linux device drivers, and I'm on the XFree development team. What have you given to the community? -17:01:27 L0s3R: Nothing you've heard about mr uppity. =) -17:02:17 Zilding: I'm sure not. So forgive me when I'm not in a very good mood and I have a little contempt for people who use phrases like 'owns', can't spell correctly, and feel the need to capitalize every other letter in their name. Are you a hax0r too? -17:02:26 L0s3R: you ego is taknig up alot of space btw -17:02:29 L0s3R: taking -17:02:29 L0s3R: if you will -17:02:32 L0s3R: lol -17:02:39 L0s3R: goddamn -17:02:50 L0s3R: im sure you use office software too -17:03:31 Zilding: Get outta my face, ya script kiddie, and go back to your quake game. - -13:35:35 WinFreak: could u help me out with gaim..i kno i'm retarded ROFL -13:35:54 WinFreak : after you unzip it what do u do? -13:36:36 RobFlynn: You have gaim-0.9.5.tar.gz? -13:36:40 WinFreak : yeah -13:36:43 RobFlynn: first do: tar xvzf gaim-0.9.5.tar.gz -13:36:47 RobFlynn: then go into that directory and type: -13:36:49 RobFlynn: ./configure -13:36:52 RobFlynn: then type: make -13:37:10 WinFreak : tar xvzf...is that on ur webpage? -13:40:00 RobFlynn: Umm ... -13:45:00 WinFreak : Where can I download tar xvzf gaim-0.9.5.tar.gz? Is this for windows? - - -*** This is what happens when Gaim Developers get bored. - -22:39:18 RobFlynn: Umm -22:39:19 RobFlynn: My brain is dead. -22:39:39 Flyn Orange: *hooks up electrodes to Rob's brain and connects the battery* -22:39:47 Flyn Orange: kaZAP! -22:39:53 RobFlynn: EEpepEPAPEPAEppaep BBrRERERFFFF EPEPEPPEPpeppepape -22:39:58 RobFlynn: *waddle jerk waddle waddle twitch* -22:40:14 Flyn Orange: Its alive! Its ALIIIIIIIIIIIVE!! -22:40:25 Flyn Orange: *maniacal laugh* -22:40:26 RobFlynn: *twitch twitch waddle convulse* -22:40:41 Flyn Orange: *disconnects battery* -22:40:52 RobFlynn: *** The sun slowly fades away as a giant penguin towers above the remains of a small, wooden table*** -22:41:13 Flyn Orange: ** storm clouds rise ** -22:41:25 Flyn Orange: *thunder crack* -22:41:26 RobFlynn: *** With an eerie, almost mechanical qualling, the penguin marches its way over to its creator *** -22:41:56 Flyn Orange: Well, hello lit...er...big fella. Would you like some HERRING? -22:42:19 Flyn Orange: How about some FREE BEER? -22:42:44 RobFlynn: *** A booming voice echos through the hallways *** -22:42:47 RobFlynn: *** PIPE GREP MORE *** -22:43:20 RobFlynn: *** With a low, rumbling sound the last syllable of the mysterious phrase shakes the very foundation of the decrepit laboratory*** -22:43:22 Flyn Orange: ** the mad scientists terminal suddenly crashes, and a vaguely familiar blue screen shows on it's display ** -22:44:08 Flyn Orange: Damn the fates! How can I face my peers now when I TOLD them proprietary was better! -! -22:45:19 RobFlynn: *** THE PENGUIN BALKS: CTRL-ALT-DELETE *** - - -hungryguy: Were you the one who ate the 1lbs hamburger? -Flyn Orange: hehe... Well, I tried to. I was feeling kinda sick. :) -Flyn Orange: Flyn Orange: Would've finished that sucker off if I'd have been feeling better! -hungryguy: I'm proud of you still. -Flyn Orange: PsyAssasin: That's quite impressive. -Flyn Orange: *grin* Thanks! -hungryguy: I'm motivated to have a 1lbs hamburger party here. -hungryguy: That would be sweet. -Flyn Orange: haha! That would rock! -Flyn Orange: Good idea. -Flyn Orange: Think I might do that sometime too! -Flyn Orange: There are some truly cool people out there. - ---- If you guys havent learned yet, Jer is a smartass :-) --- - -00:03:43 Flyn Orange: *shoots you with silly string* -00:03:55 RobFlynn: HELP! I AM COVERED IN NEONG REEN STRING -00:06:54 Flyn Orange: NEONG REEN, Taiwan (AP) - - Despite the recent economical collapses suffered due to - massive geological activity over the last month, the very - profitable gag-manufacturer of Silly String has - maintained production through the turmoil. Still - employing 324 workers and a management team of 15 - Slinkies, there is no risk of a price hike in cans of - Silly String over the next few months... - ---- heheh Jeramey is a jackass :-) --- - -14:44:28 Flyn Orange: You should see gimp try and swim. She goes in circles -'cause she's only got three legs. ;) -14:44:34 RobFlynn: *giggles* -14:44:39 RobFlynn: Ive seen my cars swim before -14:44:44 RobFlynn: They doggie paddle :) -14:44:51 Flyn Orange: cats you mean? :) -14:44:56 RobFlynn: Woops! -14:44:57 RobFlynn: Yeah. -14:44:59 RobFlynn: Cars sink. -14:45:01 Flyn Orange: hehe -14:45:07 Flyn Orange: Yeah. Cars suck at swimming. -14:45:15 RobFlynn: heheh - - ---- -Eric and I were a little weird this night hehe - - -03:31:43 RobFlynn: "No Bite", she rebuked. -03:31:46 RobFlynn: Rebuked is a fun word. -03:31:51 RobFlynn: I don't know if I used it properly, but it is still fun. -03:31:55 Eric Warmenhoven: i like idiosyncratic -03:32:01 RobFlynn: I like sesquipedalian -03:32:14 Eric Warmenhoven: variations on idiosyncracy are my favorite words. -03:32:20 Eric Warmenhoven: i like them. -03:32:22 RobFlynn: I like sesquipedalian because it is polysylabic by -defination and practice. -03:32:25 Eric Warmenhoven: that's one of my idiosyncracies. -03:32:40 RobFlynn: Idiosyncracy is a sesquipedalian. -03:32:48 Eric Warmenhoven: holy crap -03:33:00 RobFlynn: Sesquipedalians such as idiosyncracy are often times -considered ambiguous. Why use a large word when a dimunitve one will suffice? - - --- - -(14:54:25) SeanEgan: are you coding now? -(14:55:33) RobFlynn: Nah I gotta go buy pants. -(14:55:37) SeanEgan: haha -(14:55:40) SeanEgan: that was so random - ---- - -(13:51:10) wizardof___: can we have a memorable conversation? -(13:51:19) RobFlynn: i think we just did - ---- - -(22:39:02) KingAnt: I'll try to find someone with ichat to test it with (ie. get one of the guys I live with to install it) -(22:48:12) Paco-Paco: KingAnt: I have iChat -(22:48:34) KingAnt: Paco-Paco: Does it suck? -(22:48:42) Paco-Paco: yes -(22:48:47) Paco-Paco: it's hard to use -(22:48:47) KingAnt: Cool - ---- - -(22:33:31) CopyMe: ok, how do I copy a file and paste into another directory -(22:33:47) Zilding: cp -(22:34:04) CopyMe: what does that do -(22:34:06) CopyMe: copy? -(22:36:05) Zilding: yeah -(22:37:27) CopyMe: then how do you paste it? - ---- - -(02:08:12) gobblegobble: whats a chicken head -(02:08:24) RobFlynn: your mom - ---- - - I dislike the random capitalization utilized by fortunes - those aren't fortunes - those are yows - I don't know why lunix fortune gives back yows - Paco-Paco: I understand everything you just said - does it scare you? - Paco-Paco: You have no idea - ---- - -(18:45:00) SuperNewbie entered the room. -(18:51:07) SuperNewbie: I'm new and I dont understand how to get into a chat. -(18:51:19) faceprint: you're in a chat now -(18:51:30) SuperNewbie: Oh OK - ---- - -23:39 <@LSchiere> try the grammer again -23:40 LSchiere, you can try the spelling again, too ;) -23:40 <@LSchiere> SeanEgan: you know by now that i'm incorigible - ---- - -(20:53:30) idiot1: im havn problems with my sound in gaim can any1 help me -(20:54:59) LSchiere2: have you read the faq? -(21:03:35) idiot1: no and im not reading it -(21:03:45) idiot1: cuz it wont help anyways -(21:03:47) LSchiere2: then you will have no help -(21:03:54) LSchiere2: because i wrote it and i know it would help -(21:04:27) LSchiere2: since you already know everything though, you obviously don't need any help idiot1 -(21:05:38) idiot1: nope -(21:05:42) idiot1: opps - - ---- - -(20:37:03) marv: nosnilmot: I can just try tweaking gtk_imhtml_get_markup_range -(20:38:28) nosnilmot: marv: I know you can, because you know what's going on in there, but is there any point in me trying?... -(20:38:57) marv: nosnilmot: I could explain it to you I guess. Sure why not. -(20:39:44) nosnilmot: marv: I'd like to know (I think?), but now probably isn't the best time, I shouldn't have asked -(20:40:11) marv: The buffer is composed to unescaped (no entities) text, with a certain unicode character representing images or smileys or widgets. -(20:40:26) marv: nosnilmot: oh. well let me know when you feel like listening -(20:41:10) nosnilmot: marv: don't worry, I will. I need to learn C first. -(20:41:27) marv: um, you don't know C? -(20:41:31) nosnilmot: no -(20:41:44) marv: then what were those patches i applied from you earlier? -(20:42:05) nosnilmot: you don't need to know C to write patches -(20:42:12) marv: oh okay - ---- - --!- seanegan [~sean@...] has quit [Remote closed the connection] --!- seanegan [~sean@...] has joined #gaim - Someone should fix that bug where if you click on the user list - in an IRC channel, it crashes. --!- LSchiere2 [~luke@...] has quit [Remote closed the connection] - I guess that was "reproducing" - ---- - -18:33:26 hello there -18:34:03 I just wanted to share some bevavior that I think its kinda of - unsafe when using GAIM with yahoo messenges accounts -18:34:43 Whenever you transfer files between users, no receiving - confirmation is requested, the file gets transfered - automatically -18:37:32 surely you have to accept file transfers -18:37:57 Paco-Paco, nope, Whenever people sends me files, I get no - confirmation request -18:38:30 Paco-Paco, and the files gets right through my home directory -18:39:00 I find this a bit hard to believe since most people come in here - asking for some way to auto-accept. -18:39:48 deryni, I just installed fc3 , fully updated it, no extra - configuration was done and that's the default behavior -18:40:06 deryni, I searched the settings and there is no configuration - on this issue -18:40:29 I know there's no configuration on it, that's what everyone keeps - asking for. -18:41:08 deryni, sometimes I get pictures of naked girls in my computer - and I guess that GAIM is the one responsible for that since it - does not ask for file transfer confirmation - ---- - -(16:35:01) noname2: hello gaim is new port ? -(16:35:08) noname2: msn -(16:35:17) LSchiere2: what in the world are you trying to ask - ---- - -(00:22:45) user: hi -(00:22:47) user: can you help me? -(00:22:56) richielaager: I don't know. -(00:23:02) user: can i borrow a pencil? -(00:24:13) richielaager: Only if you're willing to pay transportation costs - to get you the pencil, plus $60/hour for the time it - takes me to transport said pencil to you, plus a pencil - rental fee of $1/day, plus a one time pencil sharpening - service charge of $5. -(00:24:37) user: I have a 100$ in paypal, where do i send it to? -(00:25:10) richielaager: I hear some guys in Nigeria are looking for account - information? -(00:25:32) user: or can you put a pencil feature into gaim? to create a - physical pencil out of a rubber reconstruction machine? -(00:25:50) user: those guys only sent wood- no lead :( -(00:26:10) user: they told me it was "invisible" lead. -(00:28:27) richielaager: Interesting... They sent me plenty of visible lead, - they said, it's just waiting for me at a holding company - in Moscow or some place like that. -(00:28:53) user: Seems you've been had. -(00:29:09) user: The invisible lead works quite well. -(00:29:28) user: Anyways, I'm here to ask a question. -(00:29:29) richielaager: Damn! -(00:29:42) richielaager: Damn to that too. :) - -21:26 I was considering just making a remote control program -21:26 where you type in a password, send it via gaim, and - gaim becomes a text terminal - [time passes ...] -21:38 I'm terribly conservative when it comes to security - -19:47 hey -19:48 how do i set aim to block all users except those on my - buddy list? -19:48 don't tell me i have to log in with the regular AIM :( -19:48 I wouldn't tell you that, because it's wrong -19:48 how about you look in privacy -19:49 where? -19:49 i can't find it -19:49 in Privacy -19:49 OH! -19:49 haha -19:49 thanks! - -14:12 Is it possible for me to see my friends webcam via - msn in gaim? -14:12 no -14:13 not voice either then i guess? -14:13 correct -14:13 ok, then not much to do. -14:13 there's always seppuku -14:14 so true -14:14 ok, is that another client? -14:14 something like that - -(17:44:15) elb: what's that one song that's always played at weddings that's not the processional or recessional -(17:44:37) tehfox: bridal choral or something? -(17:45:04) seanegan: elb: The Chicken Dance -(17:45:12) elb: seanegan: oh that's the one -(17:45:34) ***LSchiere boggles -(17:45:56) elb: it's the one that goes -(17:46:31) elb: dunnn dunnnn dunnnnn dunnnn dunnn DUUNN duun DUUUNNN, dun da-da-di da-da-di da-da-da-di-di-di dunn da-da-di dun-da-di-di-diii-di -(17:49:13) seanegan: Pachelbel's canon? -(17:49:18) elb: seanegan: YES -(17:49:25) seanegan: hell yeah! -(17:49:25) elb: awesome, thanks -(17:49:28) elb: Kanon in D - -edited for brevity, and name changed. -(13:51:31) l33t_h4x0r: Is there such thing as a gaim ip sniffer for linux? -(13:51:40) LSchiere: no -(13:51:46) l33t_h4x0r: You sure? -(13:51:50) LSchiere: though if there were, I'd still say no -(13:51:55) l33t_h4x0r: Why? -(13:52:00) LSchiere: since there's no good reason to be looking for one -(13:55:12) l33t_h4x0r: Is...this a sensitive subject? -(13:55:29) seanegan: l33t_h4x0r: not as sensitive as someone's IP address, apparently. -(13:55:31) Err: no, "needing" to know what someone's IP is without asking them is totally sane, rational, and socially normal -(13:55:42) l33t_h4x0r: I want to use it for destruive purposes? -(13:55:50) l33t_h4x0r: Morally wrong. -(13:56:01) l33t_h4x0r: I'll admit, but a valid reason. -(13:57:04) l33t_h4x0r: Asking someone would give away my position... -(13:57:33) l33t_h4x0r: Arlight, nevermind. -(13:57:36) l33t_h4x0r left the room ("Leaving"). -(13:58:58) LSchiere: *amused* that's the first time in a while that the requester has *agreed* that there is no legit reason to want the feature -(13:59:19) Err: he was not the sharpest knife in the drawer - -14:57 [blah blah blah simple question] - [other traffic] -14:57 [retransmit simple question] -14:59 itchypants: you need to chill the hell out -14:59 seanegan, ah okay thanks -15:00 no problem - -(15:57:11) sadrul: the files (at least a couple) in the tar.bz2 are different -(15:57:23) datallah: right.. that is the problem - the code in svn is fine -(15:57:31) seanegan: oh, what the hell? -(15:57:41) seanegan: don't tell me I make dist'ed the wrong tree -(15:57:46) LSchiere: how does the code in svn differ except in gaim's -funniest and the spec.in? -(15:57:50) LSchiere: seanegan: sounds like it -(15:57:53) datallah: you are such a screw up! -(15:58:12) seanegan: I sure am -(15:58:32) seanegan: Ugh! -(15:58:37) datallah: you must have been distracted by um... plugins -(15:58:45) seanegan: Don't I test these things? -(15:58:51) LSchiere: you test things? -(15:59:06) SimGuy: seanegan: by experience, I think we've determined you do -not :) - -(07:52:07 PM) clueless21: are you one of the gaim makers? -(07:52:14 PM) Nathan Walp: yes -(07:52:24 PM) clueless21: cool -(07:52:37 PM) clueless21: if your busy, i can leave you alone... -(07:53:03 PM) Nathan Walp: if you have a question I can answer it -(07:53:34 PM) clueless21: umm... well i don't exactly know what gaim does and what it's for. i don't know if i should get it -(07:53:46 PM) Nathan Walp: it is an IM client -(07:53:57 PM) clueless21: o. what's it do? -(07:54:03 PM) clueless21: what's an im client? -(07:54:25 PM) Nathan Walp: it lets you chat with other people, like we are chatting now -(07:54:45 PM) clueless21: oooooooooo... thanks diff -r 15cccdd32321 -r 6f04fe174f40 gaim.apspec.in --- a/gaim.apspec.in Sun Mar 25 01:05:56 2007 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,69 +0,0 @@ -# -*-shell-script-*- - -[Meta] -RootName: @gaim.sourceforge.net/gaim:$SOFTWAREVERSION -DisplayName: Gaim Internet Messenger -ShortName: gaim -Maintainer: The Gaim Developers -URL: http://gaim.sourceforge.net/ -Packager: Tim Ringenbach -Summary: A GTK+ based multiprotocol instant messaging client -SoftwareVersion: @VERSION@ -InterfaceVersion: 2.0 -PackageVersion: 1 - -[Description] -Gaim allows you to talk to anyone using a variety of messaging protocols, -including AIM (Oscar and TOC), ICQ, IRC, Yahoo!, MSN Messenger, Jabber, -Gadu-Gadu, and Zephyr. These protocols are implemented using a -modular, easy to use design. To use a protocol, just add an account using the -account editor. - -Gaim supports many common features of other clients, as well as many unique -features, such as perl scripting, TCL scripting and C plugins. - -Gaim is NOT affiliated with or endorsed by America Online, Inc., Microsoft -Corporation, Yahoo! Inc., or ICQ Inc. - -[BuildPrepare] -APBUILD_STATIC="Xss startup-notification-1" prepareBuild --enable-nss --enable-gnutls --enable-binreloc --disable-perl --disable-tcl --disable-gtktest --disable-glibtest --disable-vv --disable-fortify -#APBUILD_STATIC="Xss startup-notification-1" prepareBuild --enable-nss --enable-gnutls --enable-binreloc --disable-perl --disable-tcl --disable-vv - - -[BuildUnprepare] -unprepareBuild - -[Imports] -rm -rf include -rm -rf lib/pkgconfig -find -name '*.la' | xargs rm -echo '*' | import - -[Prepare] -# Dependency checking -require @gtk.org/gtk 2.2 -require @68k.org/libaudiofile 0.0 -require @xiph.org/libao 2.0 -require @gtkspell.sourceforge.net/gtkspell 0.0 -require @gnutls.org/gnutls 11.0 || { require @mozilla.org/nspr 4 && require @mozilla.org/nss 3; } - -[Install] -# Put your installation script here -installExe ./bin/* -installLib ./lib/libgaim-remote.so.0.0.0 -# do the plugins -copyFiles ./lib/gaim "$PREFIX/lib" -installMan 1 ./man/man1/gaim.1 -installDesktop "Networking/Instant Messaging" ./share/applications/gaim.desktop -installLocale ./share/locale -copyFiles ./share/pixmaps "$PREFIX/share" -copyFiles ./share/sounds "$PREFIX/share" -installIcon ./share/pixmaps/gaim.png -# install and fix the .pc file -# move this to the -devel package when I make one -# copyFile ./lib/pkgconfig/gaim.pc "$PREFIX/lib/pkgconfig/gaim.pc" -# safeSed "$PREFIX/lib/pkgconfig/gaim.pc" "s|prefix=/usr/local|prefix=$PREFIX|" - -[Uninstall] -# Usually just the following line is enough to uninstall everything -uninstallFromLog diff -r 15cccdd32321 -r 6f04fe174f40 pidgin.apspec.in --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pidgin.apspec.in Sun Mar 25 01:28:40 2007 +0000 @@ -0,0 +1,69 @@ +# -*-shell-script-*- + +[Meta] +RootName: @pidgin.im/pidgin:$SOFTWAREVERSION +DisplayName: Pidgin Internet Messenger +ShortName: Pidgin +Maintainer: The Pidgin Developers +URL: http://pidgin.im/ +Packager: Tim Ringenbach +Summary: A GTK+ based multiprotocol instant messaging client +SoftwareVersion: @VERSION@ +InterfaceVersion: 2.0 +PackageVersion: 1 + +[Description] +Pidgin allows you to talk to anyone using a variety of messaging protocols, +including AIM (Oscar and TOC), ICQ, IRC, Yahoo!, MSN Messenger, Jabber, +Gadu-Gadu, and Zephyr. These protocols are implemented using a +modular, easy to use design. To use a protocol, just add an account using the +account editor. + +Pidgin supports many common features of other clients, as well as many unique +features, such as perl scripting, TCL scripting and C plugins. + +Pidgin is NOT affiliated with or endorsed by America Online, Inc., Microsoft +Corporation, Yahoo! Inc., or ICQ Inc. + +[BuildPrepare] +APBUILD_STATIC="Xss startup-notification-1" prepareBuild --enable-nss --enable-gnutls --enable-binreloc --disable-perl --disable-tcl --disable-gtktest --disable-glibtest --disable-vv --disable-fortify +#APBUILD_STATIC="Xss startup-notification-1" prepareBuild --enable-nss --enable-gnutls --enable-binreloc --disable-perl --disable-tcl --disable-vv + + +[BuildUnprepare] +unprepareBuild + +[Imports] +rm -rf include +rm -rf lib/pkgconfig +find -name '*.la' | xargs rm +echo '*' | import + +[Prepare] +# Dependency checking +require @gtk.org/gtk 2.2 +require @68k.org/libaudiofile 0.0 +require @xiph.org/libao 2.0 +require @gtkspell.sourceforge.net/gtkspell 0.0 +require @gnutls.org/gnutls 11.0 || { require @mozilla.org/nspr 4 && require @mozilla.org/nss 3; } + +[Install] +# Put your installation script here +installExe ./bin/* +installLib ./lib/libpurple-remote.so.0.0.0 +# do the plugins +copyFiles ./lib/pidgin "$PREFIX/lib" +installMan 1 ./man/man1/pidgin.1 +installDesktop "Networking/Instant Messaging" ./share/applications/pidgin.desktop +installLocale ./share/locale +copyFiles ./share/pixmaps "$PREFIX/share" +copyFiles ./share/sounds "$PREFIX/share" +installIcon ./share/pixmaps/pidgin.png +# install and fix the .pc file +# move this to the -devel package when I make one +# copyFile ./lib/pkgconfig/pidgin.pc "$PREFIX/lib/pkgconfig/pidgin.pc" +# safeSed "$PREFIX/lib/pkgconfig/pidgin.pc" "s|prefix=/usr/local|prefix=$PREFIX|" + +[Uninstall] +# Usually just the following line is enough to uninstall everything +uninstallFromLog diff -r 15cccdd32321 -r 6f04fe174f40 pidgin/plugins/Makefile.am --- a/pidgin/plugins/Makefile.am Sun Mar 25 01:05:56 2007 +0000 +++ b/pidgin/plugins/Makefile.am Sun Mar 25 01:28:40 2007 +0000 @@ -28,11 +28,11 @@ convcolors_la_LDFLAGS = -module -avoid-version extplacement_la_LDFLAGS = -module -avoid-version -gaimrc_la_LDFLAGS = -module -avoid-version history_la_LDFLAGS = -module -avoid-version iconaway_la_LDFLAGS = -module -avoid-version markerline_la_LDFLAGS = -module -avoid-version notify_la_LDFLAGS = -module -avoid-version +pidginrc_la_LDFLAGS = -module -avoid-version relnot_la_LDFLAGS = -module -avoid-version spellchk_la_LDFLAGS = -module -avoid-version timestamp_la_LDFLAGS = -module -avoid-version @@ -44,11 +44,11 @@ plugin_LTLIBRARIES = \ convcolors.la \ extplacement.la \ - gaimrc.la \ history.la \ iconaway.la \ markerline.la \ notify.la \ + pidginrc.la \ relnot.la \ spellchk.la \ timestamp.la \ @@ -57,11 +57,11 @@ convcolors_la_SOURCES = convcolors.c extplacement_la_SOURCES = extplacement.c -gaimrc_la_SOURCES = gaimrc.c history_la_SOURCES = history.c iconaway_la_SOURCES = iconaway.c markerline_la_SOURCES = markerline.c notify_la_SOURCES = notify.c +pidginrc_la_SOURCES = pidginrc.c relnot_la_SOURCES = relnot.c spellchk_la_SOURCES = spellchk.c timestamp_la_SOURCES = timestamp.c @@ -70,11 +70,11 @@ convcolors_la_LIBADD = $(GTK_LIBS) extplacement_la_LIBADD = $(GTK_LIBS) -gaimrc_la_LIBADD = $(GTK_LIBS) history_la_LIBADD = $(GTK_LIBS) iconaway_la_LIBADD = $(GTK_LIBS) markerline_la_LIBADD = $(GTK_LIBS) notify_la_LIBADD = $(GTK_LIBS) +pidginrc_la_LIBADD = $(GTK_LIBS) relnot_la_LIBADD = $(GLIB_LIBS) spellchk_la_LIBADD = $(GTK_LIBS) timestamp_la_LIBADD = $(GTK_LIBS) diff -r 15cccdd32321 -r 6f04fe174f40 pidgin/plugins/gaimrc.c --- a/pidgin/plugins/gaimrc.c Sun Mar 25 01:05:56 2007 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,676 +0,0 @@ -/** - * @file purplerc.c Purple gtk resource control plugin. - * - * Copyright (C) 2005 Etan Reisner - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#include "internal.h" -#include "gtkplugin.h" -#include "gtkprefs.h" -#include "gtkutils.h" -#include "util.h" -#include "version.h" - -static guint pref_callback; - -static const char *color_prefs[] = { - "/plugins/gtk/purplerc/color/GtkWidget::cursor-color", - "/plugins/gtk/purplerc/color/GtkWidget::secondary-cursor-color", - "/plugins/gtk/purplerc/color/GtkIMHtml::hyperlink-color" -}; -static const char *color_prefs_set[] = { - "/plugins/gtk/purplerc/set/color/GtkWidget::cursor-color", - "/plugins/gtk/purplerc/set/color/GtkWidget::secondary-cursor-color", - "/plugins/gtk/purplerc/set/color/GtkIMHtml::hyperlink-color" -}; -static const char *color_names[] = { - N_("Cursor Color"), - N_("Secondary Cursor Color"), - N_("Hyperlink Color") -}; -static GtkWidget *color_widgets[G_N_ELEMENTS(color_prefs)]; - -static const char *widget_size_prefs[] = { - "/plugins/gtk/purplerc/size/GtkTreeView::expander_size", - "/plugins/gtk/purplerc/size/GtkTreeView::horizontal_separator" -}; -static const char *widget_size_prefs_set[] = { - "/plugins/gtk/purplerc/set/size/GtkTreeView::expander_size", - "/plugins/gtk/purplerc/set/size/GtkTreeView::horizontal_separator" -}; -static const char *widget_size_names[] = { - N_("GtkTreeView Expander Size"), - N_("GtkTreeView Horizontal Separation") -}; -static GtkWidget *widget_size_widgets[G_N_ELEMENTS(widget_size_prefs)]; - -static const char *font_prefs[] = { - "/plugins/gtk/purplerc/font/*pidgin_conv_entry", - "/plugins/gtk/purplerc/font/*pidgin_conv_imhtml", - "/plugins/gtk/purplerc/font/*pidginlog_imhtml", - "/plugins/gtk/purplerc/font/*pidginrequest_imhtml", - "/plugins/gtk/purplerc/font/*pidginnotify_imhtml", -}; -static const char *font_prefs_set[] = { - "/plugins/gtk/purplerc/set/font/*pidgin_conv_entry", - "/plugins/gtk/purplerc/set/font/*pidgin_conv_imhtml", - "/plugins/gtk/purplerc/set/font/*pidginlog_imhtml", - "/plugins/gtk/purplerc/set/font/*pidginrequest_imhtml", - "/plugins/gtk/purplerc/set/font/*pidginnotify_imhtml", -}; -static const char *font_names[] = { - N_("Conversation Entry"), - N_("Conversation History"), - N_("Log Viewer"), - N_("Request Dialog"), - N_("Notify Dialog") -}; -static GtkWidget *font_widgets[G_N_ELEMENTS(font_prefs)]; - -static const char *widget_bool_prefs[] = { - "/plugins/gtk/purplerc/bool/GtkTreeView::indent_expanders", -}; -static const char *widget_bool_prefs_set[] = { - "/plugins/gtk/purplerc/set/bool/GtkTreeView::indent_expanders", -}; -static const char *widget_bool_names[] = { - N_("GtkTreeView Indent Expanders"), -}; -static GtkWidget *widget_bool_widgets[G_N_ELEMENTS(widget_bool_prefs)]; - -static void -purplerc_make_changes() -{ - int i; - char *prefbase = NULL; -#if GTK_CHECK_VERSION(2,4,0) - GtkSettings *setting = NULL; -#endif - GString *style_string = g_string_new(""); - - if (purple_prefs_get_bool("/plugins/gtk/purplerc/set/gtk-font-name")) { - const char *pref = purple_prefs_get_string("/plugins/gtk/purplerc/gtk-font-name"); - - if (pref != NULL && strcmp(pref, "")) - g_string_append_printf(style_string, "gtk-font-name = \"%s\"\n", pref); - } - - if (purple_prefs_get_bool("/plugins/gtk/purplerc/set/gtk-key-theme-name")) { - const char *pref = purple_prefs_get_string("/plugins/gtk/purplerc/gtk-key-theme-name"); - - if (pref != NULL && strcmp(pref, "")) - g_string_append_printf(style_string, "gtk-key-theme-name = \"%s\"\n", pref); - } - - g_string_append(style_string, "style \"purplerc_style\" {\n"); - - for (i = 0; i < G_N_ELEMENTS(color_prefs); i++) { - if (purple_prefs_get_bool(color_prefs_set[i])) { - const char *pref; - - prefbase = g_path_get_basename(color_prefs[i]); - pref = purple_prefs_get_string(color_prefs[i]); - - if (pref != NULL && strcmp(pref, "")) - g_string_append_printf(style_string, - "%s = \"%s\"\n", - prefbase, pref); - g_free(prefbase); - } - } - - for (i = 0; i < G_N_ELEMENTS(widget_size_prefs); i++) { - if (purple_prefs_get_bool(widget_size_prefs_set[i])) { - prefbase = g_path_get_basename(widget_size_prefs[i]); - g_string_append_printf(style_string, - "%s = %d\n", prefbase, - purple_prefs_get_int(widget_size_prefs[i])); - g_free(prefbase); - } - } - - for (i = 0; i < G_N_ELEMENTS(widget_bool_prefs); i++) { - if (purple_prefs_get_bool(widget_bool_prefs_set[i])) { - prefbase = g_path_get_basename(widget_bool_prefs[i]); - g_string_append_printf(style_string, - "%s = %d\n", prefbase, - purple_prefs_get_bool(widget_bool_prefs[i])); - g_free(prefbase); - } - } - - g_string_append(style_string, "}"); - g_string_append(style_string, "widget_class \"*\" style \"purplerc_style\"\n"); - - for (i = 0; i < G_N_ELEMENTS(font_prefs); i++) { - if (purple_prefs_get_bool(font_prefs_set[i])) { - const char *pref; - - prefbase = g_path_get_basename(font_prefs[i]); - pref = purple_prefs_get_string(font_prefs[i]); - - if (pref != NULL && strcmp(pref, "")) - g_string_append_printf(style_string, - "style \"%s_style\"\n" - "{font_name = \"%s\"}\n" - "widget \"%s\"" - "style \"%s_style\"\n", - prefbase, pref, - prefbase, prefbase); - g_free(prefbase); - } - } - - gtk_rc_parse_string(style_string->str); - g_string_free(style_string, TRUE); - -#if GTK_CHECK_VERSION(2,4,0) - setting = gtk_settings_get_default(); - gtk_rc_reset_styles(setting); -#endif -} - -static void -purplerc_write(GtkWidget *widget, gpointer data) -{ - int i; - GString *style_string = g_string_new(""); - char *prefbase = NULL; - - if (purple_prefs_get_bool("/plugins/gtk/purplerc/set/gtk-font-name")) { - const char *pref = purple_prefs_get_string("/plugins/gtk/purplerc/gtk-font-name"); - - if (pref != NULL && strcmp(pref, "")) - g_string_append_printf(style_string, - "gtk-font-name = \"%s\"\n", - pref); - } - - if (purple_prefs_get_bool("/plugins/gtk/purplerc/set/gtk-key-theme-name")) { - const char *pref = purple_prefs_get_string("/plugins/gtk/purplerc/gtk-key-theme-name"); - - if (pref != NULL && strcmp(pref, "")) - g_string_append_printf(style_string, - "gtk-key-theme-name = \"%s\"\n", - pref); - } - - g_string_append(style_string, "style \"purplerc_style\" {\n"); - - for (i = 0; i < G_N_ELEMENTS(color_prefs); i++) { - if (purple_prefs_get_bool(color_prefs_set[i])) { - const char *pref; - - prefbase = g_path_get_basename(color_prefs[i]); - pref = purple_prefs_get_string(color_prefs[i]); - - if (pref != NULL && strcmp(pref, "")) - g_string_append_printf(style_string, - "%s = \"%s\"\n", - prefbase, pref); - g_free(prefbase); - } - } - - for (i = 0; i < G_N_ELEMENTS(widget_size_prefs); i++) { - if (purple_prefs_get_bool(widget_size_prefs_set[i])) { - prefbase = g_path_get_basename(widget_size_prefs[i]); - g_string_append_printf(style_string, - "%s = %d\n", prefbase, - purple_prefs_get_int(widget_size_prefs[i])); - g_free(prefbase); - } - } - - for (i = 0; i < G_N_ELEMENTS(widget_bool_prefs); i++) { - if (purple_prefs_get_bool(widget_bool_prefs_set[i])) { - prefbase = g_path_get_basename(widget_bool_prefs[i]); - g_string_append_printf(style_string, - "%s = %d\n", prefbase, - purple_prefs_get_bool(widget_bool_prefs[i])); - g_free(prefbase); - } - } - - g_string_append(style_string, "}"); - g_string_append(style_string, "widget_class \"*\" style \"purplerc_style\"\n"); - - for (i = 0; i < G_N_ELEMENTS(font_prefs); i++) { - if (purple_prefs_get_bool(font_prefs_set[i])) { - const char *pref; - - prefbase = g_path_get_basename(font_prefs[i]); - pref = purple_prefs_get_string(font_prefs[i]); - - if (pref != NULL && strcmp(pref, "")) - g_string_append_printf(style_string, - "style \"%s_style\"\n" - "{font_name = \"%s\"}\n" - "widget \"%s\"" - "style \"%s_style\"\n", - prefbase, pref, - prefbase, prefbase); - g_free(prefbase); - } - } - - purple_util_write_data_to_file("gtkrc-2.0", style_string->str, -1); - - g_string_free(style_string, TRUE); -} - -static void -purplerc_reread(GtkWidget *widget, gpointer data) -{ - gtk_rc_reparse_all(); - /* I don't know if this is necessary but if not it shouldn't hurt. */ - purplerc_make_changes(); -} - -static void -purplerc_pref_changed_cb(const char *name, PurplePrefType type, - gconstpointer value, gpointer data) -{ - purplerc_make_changes(); -} - -static void -purplerc_color_response(GtkDialog *color_dialog, gint response, gpointer data) -{ - int subscript = GPOINTER_TO_INT(data); - - if (response == GTK_RESPONSE_OK) { - GtkWidget *colorsel = GTK_COLOR_SELECTION_DIALOG(color_dialog)->colorsel; - GdkColor color; - char colorstr[8]; - - gtk_color_selection_get_current_color(GTK_COLOR_SELECTION(colorsel), &color); - - g_snprintf(colorstr, sizeof(colorstr), "#%02X%02X%02X", - color.red/256, color.green/256, color.blue/256); - - purple_prefs_set_string(color_prefs[subscript], colorstr); - } - gtk_widget_destroy(GTK_WIDGET(color_dialog)); -} - -static void -purplerc_set_color(GtkWidget *widget, gpointer data) -{ - GtkWidget *color_dialog = NULL; - GdkColor color; - char title[128]; - const char *pref = NULL; - int subscript = GPOINTER_TO_INT(data); - - g_snprintf(title, sizeof(title), _("Select Color for %s"), - _(color_names[GPOINTER_TO_INT(data)])); - color_dialog = gtk_color_selection_dialog_new(_("Select Color")); - g_signal_connect(G_OBJECT(color_dialog), "response", - G_CALLBACK(purplerc_color_response), data); - - pref = purple_prefs_get_string(color_prefs[subscript]); - - if (pref != NULL && strcmp(pref, "")) { - if (gdk_color_parse(pref, &color)) { - gtk_color_selection_set_current_color(GTK_COLOR_SELECTION(GTK_COLOR_SELECTION_DIALOG(color_dialog)->colorsel), &color); - } - } - - gtk_window_present(GTK_WINDOW(color_dialog)); -} - -static void -purplerc_font_response(GtkDialog *font_dialog, gint response, gpointer data) -{ - int subscript = GPOINTER_TO_INT(data); - - if (response == GTK_RESPONSE_OK) { - char *fontname = NULL; - - fontname = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(font_dialog)); - - purple_prefs_set_string(font_prefs[subscript], fontname); - g_free(fontname); - } - gtk_widget_destroy(GTK_WIDGET(font_dialog)); -} - -static void -purplerc_set_font(GtkWidget *widget, gpointer data) -{ - GtkWidget *font_dialog = NULL; - char title[128]; - const char *pref = NULL; - int subscript = GPOINTER_TO_INT(data); - - g_snprintf(title, sizeof(title), _("Select Font for %s"), - _(font_names[subscript])); - font_dialog = gtk_font_selection_dialog_new(title); - g_signal_connect(G_OBJECT(font_dialog), "response", - G_CALLBACK(purplerc_font_response), data); - - pref = purple_prefs_get_string(font_prefs[subscript]); - - if (pref != NULL && strcmp(pref, "")) { - gtk_font_selection_set_font_name(GTK_FONT_SELECTION(GTK_FONT_SELECTION_DIALOG(font_dialog)->fontsel), pref); - } - - gtk_window_present(GTK_WINDOW(font_dialog)); -} - -static void -purplerc_font_response_special(GtkDialog *font_dialog, gint response, - gpointer data) -{ - if (response == GTK_RESPONSE_OK) { - char *fontname = NULL; - - fontname = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(font_dialog)); - - purple_prefs_set_string("/plugins/gtk/purplerc/gtk-font-name", - fontname); - g_free(fontname); - } - gtk_widget_destroy(GTK_WIDGET(font_dialog)); -} - -static void -purplerc_set_font_special(GtkWidget *widget, gpointer data) -{ - GtkWidget *font_dialog = NULL; - const char *pref = NULL; - - font_dialog = gtk_font_selection_dialog_new(_("Select Interface Font")); - g_signal_connect(G_OBJECT(font_dialog), "response", - G_CALLBACK(purplerc_font_response_special), NULL); - - pref = purple_prefs_get_string("/plugins/gtk/purplerc/gtk-font-name"); - - if (pref != NULL && strcmp(pref, "")) { - gtk_font_selection_set_font_name(GTK_FONT_SELECTION(GTK_FONT_SELECTION_DIALOG(font_dialog)->fontsel), pref); - } - - gtk_window_present(GTK_WINDOW(font_dialog)); -} - -static gboolean -purplerc_plugin_load(PurplePlugin *plugin) -{ - purplerc_make_changes(); - - pref_callback = purple_prefs_connect_callback(plugin, "/plugins/gtk/purplerc", - purplerc_pref_changed_cb, NULL); - - return TRUE; -} - -static gboolean -purplerc_plugin_unload(PurplePlugin *plugin) -{ - purple_prefs_disconnect_callback(pref_callback); - - return TRUE; -} - -static GtkWidget * -purplerc_get_config_frame(PurplePlugin *plugin) -{ - /* Note: Intentionally not using the size group argument to the - * pidgin_prefs_labeled_* functions they only add the text label to - * the size group not the whole thing, which isn't what I want. */ - int i; - char *tmp; - GtkWidget *check = NULL, *widget = NULL; - GtkSizeGroup *labelsg = NULL, *widgetsg = NULL; - GtkWidget *ret = NULL, *frame = NULL, *hbox = NULL, *vbox = NULL; - - ret = gtk_vbox_new(FALSE, PIDGIN_HIG_CAT_SPACE); - gtk_container_set_border_width(GTK_CONTAINER(ret), PIDGIN_HIG_BORDER); - - labelsg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); - widgetsg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); - - frame = pidgin_make_frame(ret, _("General")); - /* interface font */ - hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE); - gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0); - - check = pidgin_prefs_checkbox(_("GTK+ Interface Font"), - "/plugins/gtk/purplerc/set/gtk-font-name", - hbox); - gtk_size_group_add_widget(labelsg, check); - - widget = pidgin_pixbuf_button_from_stock("", GTK_STOCK_SELECT_FONT, - PIDGIN_BUTTON_HORIZONTAL); - gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, FALSE, 0); - gtk_size_group_add_widget(widgetsg, widget); - gtk_widget_set_sensitive(widget, - purple_prefs_get_bool("/plugins/gtk/purplerc/set/gtk-font-name")); - g_signal_connect(G_OBJECT(check), "toggled", - G_CALLBACK(pidgin_toggle_sensitive), widget); - g_signal_connect(G_OBJECT(widget), "clicked", - G_CALLBACK(purplerc_set_font_special), NULL); - - /* key theme name */ - hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE); - gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0); - - check = pidgin_prefs_checkbox(_("GTK+ Text Shortcut Theme"), - "/plugins/gtk/purplerc/set/gtk-key-theme-name", - hbox); - gtk_size_group_add_widget(labelsg, check); - - widget = pidgin_prefs_labeled_entry(hbox, "", - "/plugins/gtk/purplerc/gtk-key-theme-name", - NULL); - /* - gtk_size_group_add_widget(widgetsg, widget); - */ - gtk_widget_set_sensitive(widget, - purple_prefs_get_bool("/plugins/gtk/purplerc/set/gtk-key-theme-name")); - g_signal_connect(G_OBJECT(check), "toggled", - G_CALLBACK(pidgin_toggle_sensitive), widget); - - for (i = 0; i < G_N_ELEMENTS(widget_bool_prefs); i++) { - hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE); - gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0); - - check = pidgin_prefs_checkbox(_(widget_bool_names[i]), - widget_bool_prefs_set[i], hbox); - gtk_size_group_add_widget(labelsg, check); - - widget_bool_widgets[i] = pidgin_prefs_checkbox("", widget_bool_prefs[i], hbox); - /* - gtk_size_group_add_widget(widgetsb, widget_bool_widgets[i]); - */ - gtk_widget_set_sensitive(widget_bool_widgets[i], - purple_prefs_get_bool(widget_bool_prefs_set[i])); - g_signal_connect(G_OBJECT(check), "toggled", - G_CALLBACK(pidgin_toggle_sensitive), - widget_bool_widgets[i]); - } - - frame = pidgin_make_frame(ret, _("Interface colors")); - /* imhtml stuff */ - for (i = 0; i < G_N_ELEMENTS(color_prefs); i++) { - hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE); - gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0); - - check = pidgin_prefs_checkbox(_(color_names[i]), - color_prefs_set[i], hbox); - gtk_size_group_add_widget(labelsg, check); - - color_widgets[i] = pidgin_pixbuf_button_from_stock("", GTK_STOCK_SELECT_COLOR, PIDGIN_BUTTON_HORIZONTAL); - gtk_size_group_add_widget(widgetsg, color_widgets[i]); - gtk_box_pack_start(GTK_BOX(hbox), color_widgets[i], FALSE, - FALSE, 0); - gtk_widget_set_sensitive(color_widgets[i], - purple_prefs_get_bool(color_prefs_set[i])); - g_signal_connect(G_OBJECT(check), "toggled", - G_CALLBACK(pidgin_toggle_sensitive), - color_widgets[i]); - g_signal_connect(G_OBJECT(color_widgets[i]), "clicked", - G_CALLBACK(purplerc_set_color), - GINT_TO_POINTER(i)); - } - - frame = pidgin_make_frame(ret, _("Widget Sizes")); - /* widget size stuff */ - for (i = 0; i < G_N_ELEMENTS(widget_size_prefs); i++) { - hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE); - gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0); - - check = pidgin_prefs_checkbox(_(widget_size_names[i]), - widget_size_prefs_set[i], hbox); - gtk_size_group_add_widget(labelsg, check); - - widget_size_widgets[i] = pidgin_prefs_labeled_spin_button(hbox, "", widget_size_prefs[i], 0, 50, NULL); - /* - gtk_size_group_add_widget(widgetsg, widget_size_widgets[i]); - */ - gtk_widget_set_sensitive(widget_size_widgets[i], - purple_prefs_get_bool(widget_size_prefs_set[i])); - g_signal_connect(G_OBJECT(check), "toggled", - G_CALLBACK(pidgin_toggle_sensitive), - widget_size_widgets[i]); - } - - frame = pidgin_make_frame(ret, _("Fonts")); - /* imhtml font stuff */ - for (i = 0; i < G_N_ELEMENTS(font_prefs); i++) { - hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE); - gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0); - - check = pidgin_prefs_checkbox(_(font_names[i]), - font_prefs_set[i], hbox); - gtk_size_group_add_widget(labelsg, check); - - font_widgets[i] = pidgin_pixbuf_button_from_stock("", GTK_STOCK_SELECT_FONT, PIDGIN_BUTTON_HORIZONTAL); - gtk_size_group_add_widget(widgetsg, font_widgets[i]); - gtk_box_pack_start(GTK_BOX(hbox), font_widgets[i], FALSE, - FALSE, 0); - gtk_widget_set_sensitive(font_widgets[i], - purple_prefs_get_bool(font_prefs_set[i])); - g_signal_connect(G_OBJECT(check), "toggled", - G_CALLBACK(pidgin_toggle_sensitive), - font_widgets[i]); - g_signal_connect(G_OBJECT(font_widgets[i]), "clicked", - G_CALLBACK(purplerc_set_font), GINT_TO_POINTER(i)); - } - - frame = pidgin_make_frame(ret, _("Tools")); - - vbox = gtk_vbox_new(FALSE, PIDGIN_HIG_CAT_SPACE); - gtk_box_pack_start(GTK_BOX(frame), vbox, FALSE, FALSE, 0); - - tmp = g_strdup_printf(_("Write settings to %s%sgtkrc-2.0"), purple_user_dir(), G_DIR_SEPARATOR_S); - check = gtk_button_new_with_label(tmp); - g_free(tmp); - gtk_box_pack_start(GTK_BOX(vbox), check, FALSE, FALSE, 0); - gtk_size_group_add_widget(labelsg, check); - g_signal_connect(G_OBJECT(check), "clicked", G_CALLBACK(purplerc_write), - NULL); - - check = gtk_button_new_with_label(_("Re-read gtkrc files")); - gtk_box_pack_start(GTK_BOX(vbox), check, FALSE, FALSE, 0); - gtk_size_group_add_widget(labelsg, check); - g_signal_connect(G_OBJECT(check), "clicked", G_CALLBACK(purplerc_reread), - NULL); - - gtk_widget_show_all(ret); - return ret; -} - -static PidginPluginUiInfo purplerc_ui_info = -{ - purplerc_get_config_frame, - 0 /* page_num (Reserved) */ -}; - -static PurplePluginInfo purplerc_info = -{ - PURPLE_PLUGIN_MAGIC, - PURPLE_MAJOR_VERSION, - PURPLE_MINOR_VERSION, - PURPLE_PLUGIN_STANDARD, - PIDGIN_PLUGIN_TYPE, - 0, - NULL, - PURPLE_PRIORITY_DEFAULT, - "purplerc", - N_(PIDGIN_NAME " GTK+ Theme Control"), - VERSION, - N_("Provides access to commonly used gtkrc settings."), - N_("Provides access to commonly used gtkrc settings."), - "Etan Reisner ", - PURPLE_WEBSITE, - purplerc_plugin_load, - purplerc_plugin_unload, - NULL, - &purplerc_ui_info, - NULL, - NULL, - NULL -}; - -static void -purplerc_init(PurplePlugin *plugin) -{ - int i; - - purple_prefs_add_none("/plugins"); - purple_prefs_add_none("/plugins/gtk"); - purple_prefs_add_none("/plugins/gtk/purplerc"); - purple_prefs_add_none("/plugins/gtk/purplerc/set"); - - purple_prefs_add_string("/plugins/gtk/purplerc/gtk-font-name", ""); - purple_prefs_add_bool("/plugins/gtk/purplerc/set/gtk-font-name", FALSE); - - purple_prefs_add_string("/plugins/gtk/purplerc/gtk-key-theme-name", ""); - purple_prefs_add_bool("/plugins/gtk/purplerc/set/gtk-key-theme-name", FALSE); - - purple_prefs_add_none("/plugins/gtk/purplerc/color"); - purple_prefs_add_none("/plugins/gtk/purplerc/set/color"); - for (i = 0; i < G_N_ELEMENTS(color_prefs); i++) { - purple_prefs_add_string(color_prefs[i], ""); - purple_prefs_add_bool(color_prefs_set[i], FALSE); - } - - purple_prefs_add_none("/plugins/gtk/purplerc/size"); - purple_prefs_add_none("/plugins/gtk/purplerc/set/size"); - for (i = 0; i < G_N_ELEMENTS(widget_size_prefs); i++) { - purple_prefs_add_int(widget_size_prefs[i], 0); - purple_prefs_add_bool(widget_size_prefs_set[i], FALSE); - } - - purple_prefs_add_none("/plugins/gtk/purplerc/font"); - purple_prefs_add_none("/plugins/gtk/purplerc/set/font"); - for (i = 0; i < G_N_ELEMENTS(font_prefs); i++) { - purple_prefs_add_string(font_prefs[i], ""); - purple_prefs_add_bool(font_prefs_set[i], FALSE); - } - - purple_prefs_add_none("/plugins/gtk/purplerc/bool"); - purple_prefs_add_none("/plugins/gtk/purplerc/set/bool"); - for (i = 0; i < G_N_ELEMENTS(widget_bool_prefs); i++) { - purple_prefs_add_bool(widget_bool_prefs[i], TRUE); - purple_prefs_add_bool(widget_bool_prefs_set[i], FALSE); - } -} - -PURPLE_INIT_PLUGIN(purplerc, purplerc_init, purplerc_info) diff -r 15cccdd32321 -r 6f04fe174f40 pidgin/plugins/pidginrc.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pidgin/plugins/pidginrc.c Sun Mar 25 01:28:40 2007 +0000 @@ -0,0 +1,676 @@ +/** + * @file purplerc.c Purple gtk resource control plugin. + * + * Copyright (C) 2005 Etan Reisner + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include "internal.h" +#include "gtkplugin.h" +#include "gtkprefs.h" +#include "gtkutils.h" +#include "util.h" +#include "version.h" + +static guint pref_callback; + +static const char *color_prefs[] = { + "/plugins/gtk/purplerc/color/GtkWidget::cursor-color", + "/plugins/gtk/purplerc/color/GtkWidget::secondary-cursor-color", + "/plugins/gtk/purplerc/color/GtkIMHtml::hyperlink-color" +}; +static const char *color_prefs_set[] = { + "/plugins/gtk/purplerc/set/color/GtkWidget::cursor-color", + "/plugins/gtk/purplerc/set/color/GtkWidget::secondary-cursor-color", + "/plugins/gtk/purplerc/set/color/GtkIMHtml::hyperlink-color" +}; +static const char *color_names[] = { + N_("Cursor Color"), + N_("Secondary Cursor Color"), + N_("Hyperlink Color") +}; +static GtkWidget *color_widgets[G_N_ELEMENTS(color_prefs)]; + +static const char *widget_size_prefs[] = { + "/plugins/gtk/purplerc/size/GtkTreeView::expander_size", + "/plugins/gtk/purplerc/size/GtkTreeView::horizontal_separator" +}; +static const char *widget_size_prefs_set[] = { + "/plugins/gtk/purplerc/set/size/GtkTreeView::expander_size", + "/plugins/gtk/purplerc/set/size/GtkTreeView::horizontal_separator" +}; +static const char *widget_size_names[] = { + N_("GtkTreeView Expander Size"), + N_("GtkTreeView Horizontal Separation") +}; +static GtkWidget *widget_size_widgets[G_N_ELEMENTS(widget_size_prefs)]; + +static const char *font_prefs[] = { + "/plugins/gtk/purplerc/font/*pidgin_conv_entry", + "/plugins/gtk/purplerc/font/*pidgin_conv_imhtml", + "/plugins/gtk/purplerc/font/*pidginlog_imhtml", + "/plugins/gtk/purplerc/font/*pidginrequest_imhtml", + "/plugins/gtk/purplerc/font/*pidginnotify_imhtml", +}; +static const char *font_prefs_set[] = { + "/plugins/gtk/purplerc/set/font/*pidgin_conv_entry", + "/plugins/gtk/purplerc/set/font/*pidgin_conv_imhtml", + "/plugins/gtk/purplerc/set/font/*pidginlog_imhtml", + "/plugins/gtk/purplerc/set/font/*pidginrequest_imhtml", + "/plugins/gtk/purplerc/set/font/*pidginnotify_imhtml", +}; +static const char *font_names[] = { + N_("Conversation Entry"), + N_("Conversation History"), + N_("Log Viewer"), + N_("Request Dialog"), + N_("Notify Dialog") +}; +static GtkWidget *font_widgets[G_N_ELEMENTS(font_prefs)]; + +static const char *widget_bool_prefs[] = { + "/plugins/gtk/purplerc/bool/GtkTreeView::indent_expanders", +}; +static const char *widget_bool_prefs_set[] = { + "/plugins/gtk/purplerc/set/bool/GtkTreeView::indent_expanders", +}; +static const char *widget_bool_names[] = { + N_("GtkTreeView Indent Expanders"), +}; +static GtkWidget *widget_bool_widgets[G_N_ELEMENTS(widget_bool_prefs)]; + +static void +purplerc_make_changes() +{ + int i; + char *prefbase = NULL; +#if GTK_CHECK_VERSION(2,4,0) + GtkSettings *setting = NULL; +#endif + GString *style_string = g_string_new(""); + + if (purple_prefs_get_bool("/plugins/gtk/purplerc/set/gtk-font-name")) { + const char *pref = purple_prefs_get_string("/plugins/gtk/purplerc/gtk-font-name"); + + if (pref != NULL && strcmp(pref, "")) + g_string_append_printf(style_string, "gtk-font-name = \"%s\"\n", pref); + } + + if (purple_prefs_get_bool("/plugins/gtk/purplerc/set/gtk-key-theme-name")) { + const char *pref = purple_prefs_get_string("/plugins/gtk/purplerc/gtk-key-theme-name"); + + if (pref != NULL && strcmp(pref, "")) + g_string_append_printf(style_string, "gtk-key-theme-name = \"%s\"\n", pref); + } + + g_string_append(style_string, "style \"purplerc_style\" {\n"); + + for (i = 0; i < G_N_ELEMENTS(color_prefs); i++) { + if (purple_prefs_get_bool(color_prefs_set[i])) { + const char *pref; + + prefbase = g_path_get_basename(color_prefs[i]); + pref = purple_prefs_get_string(color_prefs[i]); + + if (pref != NULL && strcmp(pref, "")) + g_string_append_printf(style_string, + "%s = \"%s\"\n", + prefbase, pref); + g_free(prefbase); + } + } + + for (i = 0; i < G_N_ELEMENTS(widget_size_prefs); i++) { + if (purple_prefs_get_bool(widget_size_prefs_set[i])) { + prefbase = g_path_get_basename(widget_size_prefs[i]); + g_string_append_printf(style_string, + "%s = %d\n", prefbase, + purple_prefs_get_int(widget_size_prefs[i])); + g_free(prefbase); + } + } + + for (i = 0; i < G_N_ELEMENTS(widget_bool_prefs); i++) { + if (purple_prefs_get_bool(widget_bool_prefs_set[i])) { + prefbase = g_path_get_basename(widget_bool_prefs[i]); + g_string_append_printf(style_string, + "%s = %d\n", prefbase, + purple_prefs_get_bool(widget_bool_prefs[i])); + g_free(prefbase); + } + } + + g_string_append(style_string, "}"); + g_string_append(style_string, "widget_class \"*\" style \"purplerc_style\"\n"); + + for (i = 0; i < G_N_ELEMENTS(font_prefs); i++) { + if (purple_prefs_get_bool(font_prefs_set[i])) { + const char *pref; + + prefbase = g_path_get_basename(font_prefs[i]); + pref = purple_prefs_get_string(font_prefs[i]); + + if (pref != NULL && strcmp(pref, "")) + g_string_append_printf(style_string, + "style \"%s_style\"\n" + "{font_name = \"%s\"}\n" + "widget \"%s\"" + "style \"%s_style\"\n", + prefbase, pref, + prefbase, prefbase); + g_free(prefbase); + } + } + + gtk_rc_parse_string(style_string->str); + g_string_free(style_string, TRUE); + +#if GTK_CHECK_VERSION(2,4,0) + setting = gtk_settings_get_default(); + gtk_rc_reset_styles(setting); +#endif +} + +static void +purplerc_write(GtkWidget *widget, gpointer data) +{ + int i; + GString *style_string = g_string_new(""); + char *prefbase = NULL; + + if (purple_prefs_get_bool("/plugins/gtk/purplerc/set/gtk-font-name")) { + const char *pref = purple_prefs_get_string("/plugins/gtk/purplerc/gtk-font-name"); + + if (pref != NULL && strcmp(pref, "")) + g_string_append_printf(style_string, + "gtk-font-name = \"%s\"\n", + pref); + } + + if (purple_prefs_get_bool("/plugins/gtk/purplerc/set/gtk-key-theme-name")) { + const char *pref = purple_prefs_get_string("/plugins/gtk/purplerc/gtk-key-theme-name"); + + if (pref != NULL && strcmp(pref, "")) + g_string_append_printf(style_string, + "gtk-key-theme-name = \"%s\"\n", + pref); + } + + g_string_append(style_string, "style \"purplerc_style\" {\n"); + + for (i = 0; i < G_N_ELEMENTS(color_prefs); i++) { + if (purple_prefs_get_bool(color_prefs_set[i])) { + const char *pref; + + prefbase = g_path_get_basename(color_prefs[i]); + pref = purple_prefs_get_string(color_prefs[i]); + + if (pref != NULL && strcmp(pref, "")) + g_string_append_printf(style_string, + "%s = \"%s\"\n", + prefbase, pref); + g_free(prefbase); + } + } + + for (i = 0; i < G_N_ELEMENTS(widget_size_prefs); i++) { + if (purple_prefs_get_bool(widget_size_prefs_set[i])) { + prefbase = g_path_get_basename(widget_size_prefs[i]); + g_string_append_printf(style_string, + "%s = %d\n", prefbase, + purple_prefs_get_int(widget_size_prefs[i])); + g_free(prefbase); + } + } + + for (i = 0; i < G_N_ELEMENTS(widget_bool_prefs); i++) { + if (purple_prefs_get_bool(widget_bool_prefs_set[i])) { + prefbase = g_path_get_basename(widget_bool_prefs[i]); + g_string_append_printf(style_string, + "%s = %d\n", prefbase, + purple_prefs_get_bool(widget_bool_prefs[i])); + g_free(prefbase); + } + } + + g_string_append(style_string, "}"); + g_string_append(style_string, "widget_class \"*\" style \"purplerc_style\"\n"); + + for (i = 0; i < G_N_ELEMENTS(font_prefs); i++) { + if (purple_prefs_get_bool(font_prefs_set[i])) { + const char *pref; + + prefbase = g_path_get_basename(font_prefs[i]); + pref = purple_prefs_get_string(font_prefs[i]); + + if (pref != NULL && strcmp(pref, "")) + g_string_append_printf(style_string, + "style \"%s_style\"\n" + "{font_name = \"%s\"}\n" + "widget \"%s\"" + "style \"%s_style\"\n", + prefbase, pref, + prefbase, prefbase); + g_free(prefbase); + } + } + + purple_util_write_data_to_file("gtkrc-2.0", style_string->str, -1); + + g_string_free(style_string, TRUE); +} + +static void +purplerc_reread(GtkWidget *widget, gpointer data) +{ + gtk_rc_reparse_all(); + /* I don't know if this is necessary but if not it shouldn't hurt. */ + purplerc_make_changes(); +} + +static void +purplerc_pref_changed_cb(const char *name, PurplePrefType type, + gconstpointer value, gpointer data) +{ + purplerc_make_changes(); +} + +static void +purplerc_color_response(GtkDialog *color_dialog, gint response, gpointer data) +{ + int subscript = GPOINTER_TO_INT(data); + + if (response == GTK_RESPONSE_OK) { + GtkWidget *colorsel = GTK_COLOR_SELECTION_DIALOG(color_dialog)->colorsel; + GdkColor color; + char colorstr[8]; + + gtk_color_selection_get_current_color(GTK_COLOR_SELECTION(colorsel), &color); + + g_snprintf(colorstr, sizeof(colorstr), "#%02X%02X%02X", + color.red/256, color.green/256, color.blue/256); + + purple_prefs_set_string(color_prefs[subscript], colorstr); + } + gtk_widget_destroy(GTK_WIDGET(color_dialog)); +} + +static void +purplerc_set_color(GtkWidget *widget, gpointer data) +{ + GtkWidget *color_dialog = NULL; + GdkColor color; + char title[128]; + const char *pref = NULL; + int subscript = GPOINTER_TO_INT(data); + + g_snprintf(title, sizeof(title), _("Select Color for %s"), + _(color_names[GPOINTER_TO_INT(data)])); + color_dialog = gtk_color_selection_dialog_new(_("Select Color")); + g_signal_connect(G_OBJECT(color_dialog), "response", + G_CALLBACK(purplerc_color_response), data); + + pref = purple_prefs_get_string(color_prefs[subscript]); + + if (pref != NULL && strcmp(pref, "")) { + if (gdk_color_parse(pref, &color)) { + gtk_color_selection_set_current_color(GTK_COLOR_SELECTION(GTK_COLOR_SELECTION_DIALOG(color_dialog)->colorsel), &color); + } + } + + gtk_window_present(GTK_WINDOW(color_dialog)); +} + +static void +purplerc_font_response(GtkDialog *font_dialog, gint response, gpointer data) +{ + int subscript = GPOINTER_TO_INT(data); + + if (response == GTK_RESPONSE_OK) { + char *fontname = NULL; + + fontname = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(font_dialog)); + + purple_prefs_set_string(font_prefs[subscript], fontname); + g_free(fontname); + } + gtk_widget_destroy(GTK_WIDGET(font_dialog)); +} + +static void +purplerc_set_font(GtkWidget *widget, gpointer data) +{ + GtkWidget *font_dialog = NULL; + char title[128]; + const char *pref = NULL; + int subscript = GPOINTER_TO_INT(data); + + g_snprintf(title, sizeof(title), _("Select Font for %s"), + _(font_names[subscript])); + font_dialog = gtk_font_selection_dialog_new(title); + g_signal_connect(G_OBJECT(font_dialog), "response", + G_CALLBACK(purplerc_font_response), data); + + pref = purple_prefs_get_string(font_prefs[subscript]); + + if (pref != NULL && strcmp(pref, "")) { + gtk_font_selection_set_font_name(GTK_FONT_SELECTION(GTK_FONT_SELECTION_DIALOG(font_dialog)->fontsel), pref); + } + + gtk_window_present(GTK_WINDOW(font_dialog)); +} + +static void +purplerc_font_response_special(GtkDialog *font_dialog, gint response, + gpointer data) +{ + if (response == GTK_RESPONSE_OK) { + char *fontname = NULL; + + fontname = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(font_dialog)); + + purple_prefs_set_string("/plugins/gtk/purplerc/gtk-font-name", + fontname); + g_free(fontname); + } + gtk_widget_destroy(GTK_WIDGET(font_dialog)); +} + +static void +purplerc_set_font_special(GtkWidget *widget, gpointer data) +{ + GtkWidget *font_dialog = NULL; + const char *pref = NULL; + + font_dialog = gtk_font_selection_dialog_new(_("Select Interface Font")); + g_signal_connect(G_OBJECT(font_dialog), "response", + G_CALLBACK(purplerc_font_response_special), NULL); + + pref = purple_prefs_get_string("/plugins/gtk/purplerc/gtk-font-name"); + + if (pref != NULL && strcmp(pref, "")) { + gtk_font_selection_set_font_name(GTK_FONT_SELECTION(GTK_FONT_SELECTION_DIALOG(font_dialog)->fontsel), pref); + } + + gtk_window_present(GTK_WINDOW(font_dialog)); +} + +static gboolean +purplerc_plugin_load(PurplePlugin *plugin) +{ + purplerc_make_changes(); + + pref_callback = purple_prefs_connect_callback(plugin, "/plugins/gtk/purplerc", + purplerc_pref_changed_cb, NULL); + + return TRUE; +} + +static gboolean +purplerc_plugin_unload(PurplePlugin *plugin) +{ + purple_prefs_disconnect_callback(pref_callback); + + return TRUE; +} + +static GtkWidget * +purplerc_get_config_frame(PurplePlugin *plugin) +{ + /* Note: Intentionally not using the size group argument to the + * pidgin_prefs_labeled_* functions they only add the text label to + * the size group not the whole thing, which isn't what I want. */ + int i; + char *tmp; + GtkWidget *check = NULL, *widget = NULL; + GtkSizeGroup *labelsg = NULL, *widgetsg = NULL; + GtkWidget *ret = NULL, *frame = NULL, *hbox = NULL, *vbox = NULL; + + ret = gtk_vbox_new(FALSE, PIDGIN_HIG_CAT_SPACE); + gtk_container_set_border_width(GTK_CONTAINER(ret), PIDGIN_HIG_BORDER); + + labelsg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); + widgetsg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); + + frame = pidgin_make_frame(ret, _("General")); + /* interface font */ + hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE); + gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0); + + check = pidgin_prefs_checkbox(_("GTK+ Interface Font"), + "/plugins/gtk/purplerc/set/gtk-font-name", + hbox); + gtk_size_group_add_widget(labelsg, check); + + widget = pidgin_pixbuf_button_from_stock("", GTK_STOCK_SELECT_FONT, + PIDGIN_BUTTON_HORIZONTAL); + gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, FALSE, 0); + gtk_size_group_add_widget(widgetsg, widget); + gtk_widget_set_sensitive(widget, + purple_prefs_get_bool("/plugins/gtk/purplerc/set/gtk-font-name")); + g_signal_connect(G_OBJECT(check), "toggled", + G_CALLBACK(pidgin_toggle_sensitive), widget); + g_signal_connect(G_OBJECT(widget), "clicked", + G_CALLBACK(purplerc_set_font_special), NULL); + + /* key theme name */ + hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE); + gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0); + + check = pidgin_prefs_checkbox(_("GTK+ Text Shortcut Theme"), + "/plugins/gtk/purplerc/set/gtk-key-theme-name", + hbox); + gtk_size_group_add_widget(labelsg, check); + + widget = pidgin_prefs_labeled_entry(hbox, "", + "/plugins/gtk/purplerc/gtk-key-theme-name", + NULL); + /* + gtk_size_group_add_widget(widgetsg, widget); + */ + gtk_widget_set_sensitive(widget, + purple_prefs_get_bool("/plugins/gtk/purplerc/set/gtk-key-theme-name")); + g_signal_connect(G_OBJECT(check), "toggled", + G_CALLBACK(pidgin_toggle_sensitive), widget); + + for (i = 0; i < G_N_ELEMENTS(widget_bool_prefs); i++) { + hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE); + gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0); + + check = pidgin_prefs_checkbox(_(widget_bool_names[i]), + widget_bool_prefs_set[i], hbox); + gtk_size_group_add_widget(labelsg, check); + + widget_bool_widgets[i] = pidgin_prefs_checkbox("", widget_bool_prefs[i], hbox); + /* + gtk_size_group_add_widget(widgetsb, widget_bool_widgets[i]); + */ + gtk_widget_set_sensitive(widget_bool_widgets[i], + purple_prefs_get_bool(widget_bool_prefs_set[i])); + g_signal_connect(G_OBJECT(check), "toggled", + G_CALLBACK(pidgin_toggle_sensitive), + widget_bool_widgets[i]); + } + + frame = pidgin_make_frame(ret, _("Interface colors")); + /* imhtml stuff */ + for (i = 0; i < G_N_ELEMENTS(color_prefs); i++) { + hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE); + gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0); + + check = pidgin_prefs_checkbox(_(color_names[i]), + color_prefs_set[i], hbox); + gtk_size_group_add_widget(labelsg, check); + + color_widgets[i] = pidgin_pixbuf_button_from_stock("", GTK_STOCK_SELECT_COLOR, PIDGIN_BUTTON_HORIZONTAL); + gtk_size_group_add_widget(widgetsg, color_widgets[i]); + gtk_box_pack_start(GTK_BOX(hbox), color_widgets[i], FALSE, + FALSE, 0); + gtk_widget_set_sensitive(color_widgets[i], + purple_prefs_get_bool(color_prefs_set[i])); + g_signal_connect(G_OBJECT(check), "toggled", + G_CALLBACK(pidgin_toggle_sensitive), + color_widgets[i]); + g_signal_connect(G_OBJECT(color_widgets[i]), "clicked", + G_CALLBACK(purplerc_set_color), + GINT_TO_POINTER(i)); + } + + frame = pidgin_make_frame(ret, _("Widget Sizes")); + /* widget size stuff */ + for (i = 0; i < G_N_ELEMENTS(widget_size_prefs); i++) { + hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE); + gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0); + + check = pidgin_prefs_checkbox(_(widget_size_names[i]), + widget_size_prefs_set[i], hbox); + gtk_size_group_add_widget(labelsg, check); + + widget_size_widgets[i] = pidgin_prefs_labeled_spin_button(hbox, "", widget_size_prefs[i], 0, 50, NULL); + /* + gtk_size_group_add_widget(widgetsg, widget_size_widgets[i]); + */ + gtk_widget_set_sensitive(widget_size_widgets[i], + purple_prefs_get_bool(widget_size_prefs_set[i])); + g_signal_connect(G_OBJECT(check), "toggled", + G_CALLBACK(pidgin_toggle_sensitive), + widget_size_widgets[i]); + } + + frame = pidgin_make_frame(ret, _("Fonts")); + /* imhtml font stuff */ + for (i = 0; i < G_N_ELEMENTS(font_prefs); i++) { + hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE); + gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0); + + check = pidgin_prefs_checkbox(_(font_names[i]), + font_prefs_set[i], hbox); + gtk_size_group_add_widget(labelsg, check); + + font_widgets[i] = pidgin_pixbuf_button_from_stock("", GTK_STOCK_SELECT_FONT, PIDGIN_BUTTON_HORIZONTAL); + gtk_size_group_add_widget(widgetsg, font_widgets[i]); + gtk_box_pack_start(GTK_BOX(hbox), font_widgets[i], FALSE, + FALSE, 0); + gtk_widget_set_sensitive(font_widgets[i], + purple_prefs_get_bool(font_prefs_set[i])); + g_signal_connect(G_OBJECT(check), "toggled", + G_CALLBACK(pidgin_toggle_sensitive), + font_widgets[i]); + g_signal_connect(G_OBJECT(font_widgets[i]), "clicked", + G_CALLBACK(purplerc_set_font), GINT_TO_POINTER(i)); + } + + frame = pidgin_make_frame(ret, _("Tools")); + + vbox = gtk_vbox_new(FALSE, PIDGIN_HIG_CAT_SPACE); + gtk_box_pack_start(GTK_BOX(frame), vbox, FALSE, FALSE, 0); + + tmp = g_strdup_printf(_("Write settings to %s%sgtkrc-2.0"), purple_user_dir(), G_DIR_SEPARATOR_S); + check = gtk_button_new_with_label(tmp); + g_free(tmp); + gtk_box_pack_start(GTK_BOX(vbox), check, FALSE, FALSE, 0); + gtk_size_group_add_widget(labelsg, check); + g_signal_connect(G_OBJECT(check), "clicked", G_CALLBACK(purplerc_write), + NULL); + + check = gtk_button_new_with_label(_("Re-read gtkrc files")); + gtk_box_pack_start(GTK_BOX(vbox), check, FALSE, FALSE, 0); + gtk_size_group_add_widget(labelsg, check); + g_signal_connect(G_OBJECT(check), "clicked", G_CALLBACK(purplerc_reread), + NULL); + + gtk_widget_show_all(ret); + return ret; +} + +static PidginPluginUiInfo purplerc_ui_info = +{ + purplerc_get_config_frame, + 0 /* page_num (Reserved) */ +}; + +static PurplePluginInfo purplerc_info = +{ + PURPLE_PLUGIN_MAGIC, + PURPLE_MAJOR_VERSION, + PURPLE_MINOR_VERSION, + PURPLE_PLUGIN_STANDARD, + PIDGIN_PLUGIN_TYPE, + 0, + NULL, + PURPLE_PRIORITY_DEFAULT, + "purplerc", + N_(PIDGIN_NAME " GTK+ Theme Control"), + VERSION, + N_("Provides access to commonly used gtkrc settings."), + N_("Provides access to commonly used gtkrc settings."), + "Etan Reisner ", + PURPLE_WEBSITE, + purplerc_plugin_load, + purplerc_plugin_unload, + NULL, + &purplerc_ui_info, + NULL, + NULL, + NULL +}; + +static void +purplerc_init(PurplePlugin *plugin) +{ + int i; + + purple_prefs_add_none("/plugins"); + purple_prefs_add_none("/plugins/gtk"); + purple_prefs_add_none("/plugins/gtk/purplerc"); + purple_prefs_add_none("/plugins/gtk/purplerc/set"); + + purple_prefs_add_string("/plugins/gtk/purplerc/gtk-font-name", ""); + purple_prefs_add_bool("/plugins/gtk/purplerc/set/gtk-font-name", FALSE); + + purple_prefs_add_string("/plugins/gtk/purplerc/gtk-key-theme-name", ""); + purple_prefs_add_bool("/plugins/gtk/purplerc/set/gtk-key-theme-name", FALSE); + + purple_prefs_add_none("/plugins/gtk/purplerc/color"); + purple_prefs_add_none("/plugins/gtk/purplerc/set/color"); + for (i = 0; i < G_N_ELEMENTS(color_prefs); i++) { + purple_prefs_add_string(color_prefs[i], ""); + purple_prefs_add_bool(color_prefs_set[i], FALSE); + } + + purple_prefs_add_none("/plugins/gtk/purplerc/size"); + purple_prefs_add_none("/plugins/gtk/purplerc/set/size"); + for (i = 0; i < G_N_ELEMENTS(widget_size_prefs); i++) { + purple_prefs_add_int(widget_size_prefs[i], 0); + purple_prefs_add_bool(widget_size_prefs_set[i], FALSE); + } + + purple_prefs_add_none("/plugins/gtk/purplerc/font"); + purple_prefs_add_none("/plugins/gtk/purplerc/set/font"); + for (i = 0; i < G_N_ELEMENTS(font_prefs); i++) { + purple_prefs_add_string(font_prefs[i], ""); + purple_prefs_add_bool(font_prefs_set[i], FALSE); + } + + purple_prefs_add_none("/plugins/gtk/purplerc/bool"); + purple_prefs_add_none("/plugins/gtk/purplerc/set/bool"); + for (i = 0; i < G_N_ELEMENTS(widget_bool_prefs); i++) { + purple_prefs_add_bool(widget_bool_prefs[i], TRUE); + purple_prefs_add_bool(widget_bool_prefs_set[i], FALSE); + } +} + +PURPLE_INIT_PLUGIN(purplerc, purplerc_init, purplerc_info) diff -r 15cccdd32321 -r 6f04fe174f40 po/POTFILES.in --- a/po/POTFILES.in Sun Mar 25 01:05:56 2007 +0000 +++ b/po/POTFILES.in Sun Mar 25 01:28:40 2007 +0000 @@ -181,7 +181,6 @@ pidgin/plugins/convcolors.c pidgin/plugins/extplacement.c pidgin/plugins/gaiminc.c -pidgin/plugins/gaimrc.c pidgin/plugins/gestures/gestures.c pidgin/plugins/gevolution/add_buddy_dialog.c pidgin/plugins/gevolution/assoc-buddy.c @@ -196,6 +195,7 @@ pidgin/plugins/markerline.c pidgin/plugins/musicmessaging/musicmessaging.c pidgin/plugins/notify.c +pidgin/plugins/pidginrc.c pidgin/plugins/raw.c pidgin/plugins/relnot.c pidgin/plugins/spellchk.c