Some people is asking where is emesene 2 code available.
well, it's not on svn like emesene 1.x, since the start of emesene 2 we are using git and the code is located at github.
what is git?
simply explained it's a distributed version control system, that means that it allows people having their own repositories.
why would you want that?
anyone that want's to start coding something new can "clone" (copy) a repository and start working on it doing local commits and pushes, people can watch the repository, get the code, test it play with it and even clone it. When it's done this user can ask other programmers to "pull" (get) his code into their repositories. That makes the main repository stable and allow people to try new things and show them.
imagine also that I go crazy and start to port emesene 2 to whitespace, people can clone the latest sane version of emesene and keep coding from there.
also, you can follow experimental branches if you want, or clone the code to play with it.
why git?
I made a poll some time ago and git won :)
so where is the code?
the main repositories are mine and the on from boyska and dxdx they are here:
http://github.com/marianoguerra/emesene
http://github.com/boyska/emesene
http://github.com/dequis/emesene
nice, how do I *really* get the code?
you can click the download button or you can clone the repository using git
firts install it:
sudo aptitude install git-core
or similar for other distros..
then clone the repo
git clone git://github.com/marianoguerra/emesene.git
you can update periodically doing
git pull
edit:
I fixed the problem appearing when papyon wasn't installed, if it's not available the papyon extension will be disabled, try cloning again my repo or updating it.
if you want the papyon extension (to see display pictures) you will have to install it from here:
http://launchpadlibrarian.net/31746931/python-papyon_0.4.2-1%7Eppa9.04%2B1_all.deb
Friday, October 09, 2009
Saturday, September 26, 2009
[OT] announcing a new project that might interest you
hi, this is a little off topic, but I want to announce my new project here because there are some of you who like to code in python.
my new project is a small python library (or framework if you like it more buzzword compliant) to make it easy to build REST APIs and websites based on REST (what some people call web 2.0 or ajax...)
the page is self hosted here:
http://a-series-of-tubes.appspot.com/
I hope you like it :)
my new project is a small python library (or framework if you like it more buzzword compliant) to make it easy to build REST APIs and websites based on REST (what some people call web 2.0 or ajax...)
the page is self hosted here:
http://a-series-of-tubes.appspot.com/
I hope you like it :)
Thursday, September 24, 2009
avatar support
thanks to the papyon backed implemented by otacon and c10ud I had to add support for display pictures on mesinyer (and e3).
I added cache support for avatars and custom emoticons and display of avatars on contact list and conversation window. All this code will work out of the box for e3.msn when p2p is implemented (dx...)
also a combo and loading gif were added to the login window by c10ud.
a screecast is worth a 1000 screenshots and 1000^2 words....
I added cache support for avatars and custom emoticons and display of avatars on contact list and conversation window. All this code will work out of the box for e3.msn when p2p is implemented (dx...)
also a combo and loading gif were added to the login window by c10ud.
a screecast is worth a 1000 screenshots and 1000^2 words....
Saturday, September 19, 2009
Refactoring and Avatar support on the gui (still no p2p!)
I'm back!
this days I made a huge refactoring moving code around to make it easier to manage and navigate, yo can check the changes on github.
since refactoring aren't cool to end users since they don't change anything on the surface (I hope), I implemented cache support for avatars and custom emoticons, and also the support for avatars on the gui, this means that once we have p2p support on e3 (dx I'm looking at you) the gui will be there to use it since day one. it also mean that other protocol back-ends can start using it right now (some people are working on a papyon back-end, isn't e3 cool? :P).
I also added two extensions, avatar chooser (to manage and change your avatar), and image chooser (to choose an image from the file system), both where forward ported from emesene 1 with some code cleanup.
I also added the code needed to update the gui in case of a avatar change.
less words and more screencasts!
this days I made a huge refactoring moving code around to make it easier to manage and navigate, yo can check the changes on github.
since refactoring aren't cool to end users since they don't change anything on the surface (I hope), I implemented cache support for avatars and custom emoticons, and also the support for avatars on the gui, this means that once we have p2p support on e3 (dx I'm looking at you) the gui will be there to use it since day one. it also mean that other protocol back-ends can start using it right now (some people are working on a papyon back-end, isn't e3 cool? :P).
I also added two extensions, avatar chooser (to manage and change your avatar), and image chooser (to choose an image from the file system), both where forward ported from emesene 1 with some code cleanup.
I also added the code needed to update the gui in case of a avatar change.
less words and more screencasts!
Etiquetas:
avatar,
dximplementp2prightnow,
notp2p,
pictures
Sunday, August 30, 2009
Plugins and extensions
Yesterday I worked to put an example together on how to use plugins and extensions together to make useful things.
you may ask what's the difference between a plugin and an extension, well:
Since I was going to code, I decided to make something useful, so I took the advice of my friend peyisar who said to me that he liked the main window of emesene 1.x over the current one. I made a plugin that register an extension to add the old status combo at the bottom of the main window.
It's really easy to make, you can look at the code here:
here is a screencast showing how to enable the new plugin and extension:
you may ask what's the difference between a plugin and an extension, well:
- plugins add functionality that wan't there before
- extensions replace functionality that was there but you may not like as it is
in emesene 2, all parts are extensions that are registered in a category, you can check which categories exist going to the extension tab on preferences, almost all of them right now come with only one implementation, except conversation output that has the webkit and the gtk output options and the session category that has msn, jabber and dummy implementations.
but since you may want to write a new extension for a given category the most common place to transport your extension and register it is a plugin.
you code a plugin that only registers an extension when it's activated, and since on emesene 2 we can code plugins in folders we can have a lot of files to implement one or multiple functionalities.
This is just one example of what can be achieved, just think on extensions as a way to change the behavior of emesene 2 without needing to understand all the code or the need to have svn access.
Thursday, August 20, 2009
emesene 1.5 - "awesome" has been released!
Oficial release notes:
And here it comes, after a lot of work, the new super one-point-five release, codename "awesome". Yes, it is real awesome, just take a look at some of the new features, in random order (screenshots here):
- Compatible with the latest Window Live Messenger(tm)
- New plugin set (Plus! colors, Notifications, Mail check, etc.)
- HTTP connection and proxy support
- @msn accounts support
- Better contact list management with Privacy Tab and ability to reject users
- Improved Offline Messaging experience
- Support for msn groups
- No more gui locks
- Experimental webcam support with a configurator
- New layout options and improved usability along with customization
- Tons of new languages supported
The fun doesn't stop here, you can check the Community for further informations or cooperate with the emesene team in any way you can:
- New features
- Translations
- Plugins
- Bug reports/fixes
- Themes
- Support to other users
- Spreading the word
Personal notes:
This release has been a pure community driven release as I've been working on emesene 2 (slowly due to personal responsibilities).
I want to thank all the community that made this possible
dequis 'dx' (emesene and emesenelib)
Horacio Duran (emesene and emesenelib)
Alberto Talavera (emesene)
Linan Wang (MsnOIM)
Roberto Salas & Jakub Steiner (tango theme)
Vinicius Depizzol (default theme)
Yguaratã C. Cavalcanti (emesene)
Roger 'roger' Duran (emesene)
Alen 'alencool' (emesene and cairo wizzard
)Mattia 'MaTz' Pini (emesene)
'mg' (emesene)
Jan 'jandem' de Mooij (emesene and emesenelib)
j0hn 'juan' (emesene)
Luis 'JoinTheHell' Nell (emesene)
nopersona (in the margins theme)
Stéphane 'kjir' Bisinger (webcam)
Kevin Campbell (pyisf)
Riccardo 'C10uD' (emesene)
Giuseppe Bagnato (proxy)
Orfeo 'Otacon' (emesene)
Davide 'Boyska' (plugins)
'x1sc0' (emesene)
Nicolas 'nicolaide' Espina Tacchetti (emesene)
Emilio 'pochu' Pozuelo Monfort (debian)
Bartłomiej Jerzy 'bjfs' Stobiecki (ppa)
Pablo 'pablo' Mazzini (emesene and emesenelib)
scyx (emesene)
arielj (emesene)
All the fantastic emesene community (all)
as you can see small collaborations can make a difference, so you are encouraged to help with anything you can.
enjoy this release and help us spread the word! (blog it, tweet it, facebook it, identi.ca it ;)
Wednesday, August 05, 2009
Initial msn+ support!
Thanks to our oficial hacker of the week a.k.a boyska we have msn plus support on the contact list!
here is a screencast of the implementation:
as you can see if you are a CPU maniatic you can select an extension to ignore the msn+ markup and print it as is or an extension to remove it and leave clean nicks (did I told you that extensions rules? :P)
show some appreciation to boyska for the work done :)
here is a screencast of the implementation:
as you can see if you are a CPU maniatic you can select an extension to ignore the msn+ markup and print it as is or an extension to remove it and leave clean nicks (did I told you that extensions rules? :P)
show some appreciation to boyska for the work done :)
Sunday, July 26, 2009
emesene 2 development snapshot .deb!
Juan Carlos Ojeda sent me a .deb of the Jul 15th snapshot of emesene 2 for all te people that want to test it without even waiting for the first alpha :D
emesene 2 packages, dependencies Python, Python-GTK
915,3 KiB (937306 bytes)
* Can be installed in parallel with emesene 1.x
* Can be installed on debian, ubuntu and debian based
* It installs on /usr/share/emesene2/ and created a launcher on /usr/bin/emesene2.sh
can be found here:
http://tecnicoslinux.com.ar/livecd/emesene2_0.0.1a_all.deb
thanks to Juan Carlos Ojeda!
PS: it's a development status, it's not even an alpha release but it may be useful if you want to test it without installing strange stuff like git-core :D
if you find some bugs report it here but expect some delay since this week is final exam week (that's why the development of emesene 2 was so quiet last 2 weeks)
emesene 2 packages, dependencies Python, Python-GTK
915,3 KiB (937306 bytes)
* Can be installed in parallel with emesene 1.x
* Can be installed on debian, ubuntu and debian based
* It installs on /usr/share/emesene2/ and created a launcher on /usr/bin/emesene2.sh
can be found here:
http://tecnicoslinux.com.ar/livecd/emesene2_0.0.1a_all.deb
thanks to Juan Carlos Ojeda!
PS: it's a development status, it's not even an alpha release but it may be useful if you want to test it without installing strange stuff like git-core :D
if you find some bugs report it here but expect some delay since this week is final exam week (that's why the development of emesene 2 was so quiet last 2 weeks)
Thursday, July 09, 2009
A commit explained
Ok, first the good news, I implemented selecting date range to view the conversation history and moved the export code to an extension, that means that anyone can implement and extension, register and select it and emesene 2 will use that extension to save the conversation history. Thanks Orfeo C for the idea.
The posibilities are endless, the most simple ones are export to different formats, more complex ones are extensions to migrate to other databases, publish the history to blogs or things like that :)
Now the experimental part of this blog.
Since I'm using git on github to code since a week I started checking some features, this time I decided to comment the changes on the commit I made today so people can read the commit diff an read comments about why I made those changes.
To read the commit explanation go to http://github.com/marianoguerra/emesene/commit/fdd8bbd35d3f8ba46eb4ebb0b9393b6e4fd4b75f and scroll down a little.
You will find labels with a "1" or a number on them if you click them you will see a comment explaining why I made that change.
I hope this is useful for some of you that want to read the code and don't know where to start.
and as on any post, something graphical to show the commit advance:
The posibilities are endless, the most simple ones are export to different formats, more complex ones are extensions to migrate to other databases, publish the history to blogs or things like that :)
Now the experimental part of this blog.
Since I'm using git on github to code since a week I started checking some features, this time I decided to comment the changes on the commit I made today so people can read the commit diff an read comments about why I made those changes.
To read the commit explanation go to http://github.com/marianoguerra/emesene/commit/fdd8bbd35d3f8ba46eb4ebb0b9393b6e4fd4b75f and scroll down a little.
You will find labels with a "1" or a number on them if you click them you will see a comment explaining why I made that change.
I hope this is useful for some of you that want to read the code and don't know where to start.
and as on any post, something graphical to show the commit advance:
Tuesday, July 07, 2009
Enhanced Contact Information window and save chat implemented
Today I had some free time so I continued working on the Contact Information window that was left behind some time ago to code some features.
I enhanced the layout, the output of the chat history and added a new feature that a lot of people requested: saving the logs to plain text.
Still needs some work to do but the basics are there, on the feature I would like to add support to save to HTML and to export logs between two dates.
here is a screencast of the features:
I enhanced the layout, the output of the chat history and added a new feature that a lot of people requested: saving the logs to plain text.
Still needs some work to do but the basics are there, on the feature I would like to add support to save to HTML and to export logs between two dates.
here is a screencast of the features:
Monday, July 06, 2009
Some requests implemented
* new features implemented
- save/restore windows position/size between sessions
- save/restore windows position/size when minified on tray icon
- select side for avatar
- select between tabs with ctrl+pgup ctrl+pgdown
- select between tabs with alt+"number"
- close tab with ctrl+w
- customizable avatar size on contact list
- customizable text format on contact list
As an important notice, the dev team of emesene 1 and 2 decided to start testing new tools, we started using git at github (here is my fork of the master branch: http://github.com/marianoguerra/emesene/) we are also looking for some tool to replace trac.
in some time I will post how to get the code, fork it and request to integrate the changes (I have to learn first! :P)
That's all for now, I will continue to implement the requested features when I have more time.
now a screencast to show the new features:
- save/restore windows position/size between sessions
- save/restore windows position/size when minified on tray icon
- select side for avatar
- select between tabs with ctrl+pgup ctrl+pgdown
- select between tabs with alt+"number"
- close tab with ctrl+w
- customizable avatar size on contact list
- customizable text format on contact list
As an important notice, the dev team of emesene 1 and 2 decided to start testing new tools, we started using git at github (here is my fork of the master branch: http://github.com/marianoguerra/emesene/) we are also looking for some tool to replace trac.
in some time I will post how to get the code, fork it and request to integrate the changes (I have to learn first! :P)
That's all for now, I will continue to implement the requested features when I have more time.
now a screencast to show the new features:
Tuesday, June 30, 2009
Results from feature requests
Things that will be implemented:
Things that won't be implemented now:
Don't understand:
Things that are related to emesene 1.x:
Save/restore windows position/size(6 july)- Personal message/current song separation on User Panel
Export logs(7 July)- Hide deleted/blocked contacts
Select side for avatars(6 july)- Block group
- Start chat with group
Switch between tabs with ctrl page up/down(6 july)Small icons in contact list(6 july)- Autologin
MSN+ support- Roaming profiles
- Global settings
- Drag'n drop contacts to invite chat
- Adium themes
- DBUS API
- Windows/Mac support (I don't have those)
- Focus on conversation entry
- Don't show notifications on login
- Compact window (still needs a shortcut)
- Hour in conversation (through conversation themes)
- Forget this account (just deselect the remember checkboxes)
- Order groups (there is no GUI for that yet but already implemented)
Things that won't be implemented now:
- Resize webcam window (we don't have p2p yet)
- Share backgrounds (no p2p)
- Multiple session support (that is what pidgin is for...)
- See friends IP address (protocol doesn't show IP addresses, only on direct connect when doing P2P)
Don't understand:
- Focus on windows/flap with unread message when click on Tray Icon? Like pidgin..
- Frames for display in conversation
- Multiple login as in WLM9
- Different notifications for different users
- Change tray on typing
- Last.fm/facebook/twitter song or personal message update (would be nice to make it into a single plugin)
- Caned responses
- Auto message
Things that are related to emesene 1.x:
- Lot of exception windows (limit the exception windows)
Monday, June 22, 2009
small feature requests here
if you tested emesene 2 and you have some small requests to make (no p2p and big stuff like that)
post a comment, I will try to implement them.
EDIT: I'm talking about emesene 2 features, not emesene 1. Also things that could be implemented as plugins are outside the scope by now since I have to finish the core first :).
post a comment, I will try to implement them.
EDIT: I'm talking about emesene 2 features, not emesene 1. Also things that could be implemented as plugins are outside the scope by now since I have to finish the core first :).
Monday, June 15, 2009
emesene ported to brainf*ck
http://en.wikipedia.org/wiki/Brainfuck
the next time I will try to work on an example that uses a plugin to register an extension that changes some widget on emesene.
to sumarize, the things left for the first alpha are (taken from the Release Schedule post):
well, as usual this post is to give an update about the development status.
This sunday I coded the extension handling on preferences and added the ability to redraw the main screen to see change the theme (also it's needed if you change an extension that is on the main screen).
This changes will allow to code extensions that change the default widgets that are used on emesene 2 by a widget that works the way you like. On a higher level extensions will allow to replace the gui with another toolkit (some work is being done on qt right now).
to show the status I recorded a screencast.
the next time I will try to work on an example that uses a plugin to register an extension that changes some widget on emesene.
to sumarize, the things left for the first alpha are (taken from the Release Schedule post):
- display emoticons on userlist/labels
- plugin preference dialog
finish emoticon handling on conversation inputtheme handling on preferencesfinish the information view for logs
Sunday, June 07, 2009
emesene 2 ported to lolcode
can I haz emesene2?
no really, we didn't ported the code to lolcode
I didn't knew what to put on the title :D
So, here is my sunday update.
This time I coded 4 things that were needed
all of this needs some testing/polishing but it's almost complete.
Finally, I added a retro theme, for the fanatics of the icons from emesene 1 :)
no really, we didn't ported the code to lolcode
I didn't knew what to put on the title :D
So, here is my sunday update.
This time I coded 4 things that were needed
- Theme handling (sound, emotes, images)
- Theme selection on preferences
- Disconnect support
- Contact added you dialog (with support to reject an invite and not see it anymore)
all of this needs some testing/polishing but it's almost complete.
Finally, I added a retro theme, for the fanatics of the icons from emesene 1 :)
Sunday, May 24, 2009
coding again
This weekend I had some time to code, so I implemented the invite dialog and finished the display of emoticons on the input field. Some modifications were made on the code to allow extensions on other toolkits too.
Dx made some small gui tweaks and worked on p2p, so we may have p2p working on some time.
With the invite dialog the conversation window is almost done, the only thing left is custom emoticon and display picture that depends on p2p.
a screenshot of the gui with the invite window:
Dx made some small gui tweaks and worked on p2p, so we may have p2p working on some time.
With the invite dialog the conversation window is almost done, the only thing left is custom emoticon and display picture that depends on p2p.
a screenshot of the gui with the invite window:
Friday, May 15, 2009
about webcam
some comments suggest that webcam is the only feature that matters, that it's not that hard to get it working, some suggest to use other implementations that doesn't support the MSN protocol.
First of all, if I implement webcam I will use farsight/farsight 2, I won't reinvent the wheel.
About using other libraries/techniques that doesn't support MSN protocol, that makes no sense, the number of emesene users is *really* small, and I think that you want to use the webcam with your WLM contacts, if your friend uses emesene, then easily you could use another protocol/client to communicate, I wont make a emesene only implementation.
Another thing that people don't seem to see is that webcam is really platform specific, linux has troubles detecting and making webcams work, there are a lot of ways to get/display video and sound, so it's not easy, also it works differently for each operating system and even between different versions. The protocol for webcam is closed, the codecs are closed and the specification changes whenerver micrsoft wants to change them, so "it works for me" is not enough here, it must be a good implementation otherwise the users will make a DDOS against the bug traking system to notify the developers that with X, Y and Z webcam doesn't works.
Last (for now) is that I don't have webcam/mic on any of my computers :)
and just to show an example on how easy is to make webcam work, talk to the pidgin team ;)
First of all, if I implement webcam I will use farsight/farsight 2, I won't reinvent the wheel.
About using other libraries/techniques that doesn't support MSN protocol, that makes no sense, the number of emesene users is *really* small, and I think that you want to use the webcam with your WLM contacts, if your friend uses emesene, then easily you could use another protocol/client to communicate, I wont make a emesene only implementation.
Another thing that people don't seem to see is that webcam is really platform specific, linux has troubles detecting and making webcams work, there are a lot of ways to get/display video and sound, so it's not easy, also it works differently for each operating system and even between different versions. The protocol for webcam is closed, the codecs are closed and the specification changes whenerver micrsoft wants to change them, so "it works for me" is not enough here, it must be a good implementation otherwise the users will make a DDOS against the bug traking system to notify the developers that with X, Y and Z webcam doesn't works.
Last (for now) is that I don't have webcam/mic on any of my computers :)
and just to show an example on how easy is to make webcam work, talk to the pidgin team ;)
Sunday, May 10, 2009
Release schedule (sort of)
some people are asking when the first alpha/beta/something will be, to answer those questions I made this post.
The idea of the first "something" officially for emesene 2 will be when I get to the following milestone:
"emesene 2 is everything I want except P2P"
what that means?
that the first public bundle to test will be made when I have emesene feature complete excluding P2P (custom emoticons, file send/receive, webcam and inks). When that release is made I will receive bug reports on some place (trac is really not used right now, at least by me), I will work to fix all the problems that appear on that release, then I will make a new release when I think that all major bugs are removed, I will make a new cycle fixing bugs.
When those two cycles are finished we should have something like:
"emesene 2 is everything people want except P2P and it's stable"
then if dx is still not working on P2P (*looks at dx*) I will start to work on that, the features will be added in this order:
why webcam at the end?
because webcam is unstable, it breaks, different distributions/operative systems handle webcam in a different ways, it breaks, it needs to compile/have a shared library, it breaks... did I said it breaks? ;)
dates for that milestones?
No idea, pretty busy right now trying to finish my engineer career and working, but I really want to get to the first milestone fast. Right now the things missing are
The idea of the first "something" officially for emesene 2 will be when I get to the following milestone:
"emesene 2 is everything I want except P2P"
what that means?
that the first public bundle to test will be made when I have emesene feature complete excluding P2P (custom emoticons, file send/receive, webcam and inks). When that release is made I will receive bug reports on some place (trac is really not used right now, at least by me), I will work to fix all the problems that appear on that release, then I will make a new release when I think that all major bugs are removed, I will make a new cycle fixing bugs.
When those two cycles are finished we should have something like:
"emesene 2 is everything people want except P2P and it's stable"
then if dx is still not working on P2P (*looks at dx*) I will start to work on that, the features will be added in this order:
- display pictures
- custom emoticons
- file send/receive
why webcam at the end?
because webcam is unstable, it breaks, different distributions/operative systems handle webcam in a different ways, it breaks, it needs to compile/have a shared library, it breaks... did I said it breaks? ;)
dates for that milestones?
No idea, pretty busy right now trying to finish my engineer career and working, but I really want to get to the first milestone fast. Right now the things missing are
- display emoticons on userlist/labels
- plugin preference dialog
- finish emoticon handling on conversation input
- theme handling on preferences
- finish the information view for logs
Friday, May 01, 2009
Worker's day update
Today I had time to code emesene 2, this are the results:
The most interesting of all the new features is the last one, using the e3 architecture that allows to add support to new protocols easily I implemented a dummy protocol that basically returns succeed events on all the requests, it contains a userlist with dummy contacts and groups and when you chat with someone some random contact replies you with the same message.
This dummy protocol is nice because of two things:
1) it let me test the gui without login in in msn or gtalk (that means no waiting for login), I can also code when I have no internet connection or I'm behind a closed network (like the one from my university).
2) it shows how easy is to start implementing a new protocol and can help people to understand e3 and make it easy to start hacking the msn or jabber implementations.
if you want to test the dummy protocol, on the login window open the preference dialog (on the bottom right corner) and select the dummy session, then login with some random user and password and start pressing all the buttons to make the bugs appear.
- fixed the problem getting notifications on login
- now all the contacts are displayed on the contact list (you don't need to refresh to make some change the status)
- the emoticon window is closed when the mouse leaves the window for more than a half second
- the tabs now have widgets that look better (check the code quiz below to help me fix the close button!)
- the input box on the conversation window is smaller now
- implemented a dummy e3 protocol to be able to test emesene 2 without the need to login and wait.
The most interesting of all the new features is the last one, using the e3 architecture that allows to add support to new protocols easily I implemented a dummy protocol that basically returns succeed events on all the requests, it contains a userlist with dummy contacts and groups and when you chat with someone some random contact replies you with the same message.
This dummy protocol is nice because of two things:
1) it let me test the gui without login in in msn or gtalk (that means no waiting for login), I can also code when I have no internet connection or I'm behind a closed network (like the one from my university).
2) it shows how easy is to start implementing a new protocol and can help people to understand e3 and make it easy to start hacking the msn or jabber implementations.
if you want to test the dummy protocol, on the login window open the preference dialog (on the bottom right corner) and select the dummy session, then login with some random user and password and start pressing all the buttons to make the bugs appear.
Code quiz
run this code:
see that the close icon has a padding on the left and the bottom?
ok, if you can remove that extra padding your name will be on this post :D
EDIT: what I need is a really small button with no margins or paddings, that's why it's called TinyButton ;)
HINT: I borrowed the code from here: http://git.gnome.org./cgit/gnome-terminal/tree/src/terminal-tab-label.c?h=gnome-2-26 but something is missing and I can't see what.
An the winner is:
Faith_Nahn
he posted the code to solve the problem that involved setting a gtk style for the button. Thanks to him and all the ones that submited code!
If you find it fun I can make more code quizes in the future.
as an extra bonus you where added to the dummy user list of the dummy protocol, now you can make girls fall inlove with you by showing them that you are on emesene code (?)*
btw, you are on the commit log too: http://emesene.svn.sourceforge.net/viewvc/emesene?view=rev&revision=1610
* to make this, login with any user and password selecting the dummy session on login preferences.
see that the close icon has a padding on the left and the bottom?
import gtk
class TinyButton(gtk.Button):
'''a simple and tiny button'''
def __init__(self, stock):
'''constructor'''
gtk.Button.__init__(self)
self.image = gtk.image_new_from_stock(stock, gtk.ICON_SIZE_MENU)
self.set_image(self.image)
width, height = gtk.icon_size_lookup(gtk.ICON_SIZE_MENU)
self.set_size_request(width + 2, height + 2)
self.image.show()
self.set_focus_on_click(False)
self.set_relief(gtk.RELIEF_NONE)
if __name__ == '__main__':
w = gtk.Window()
w.add(TinyButton(gtk.STOCK_CLOSE))
w.show_all()
gtk.main()
ok, if you can remove that extra padding your name will be on this post :D
EDIT: what I need is a really small button with no margins or paddings, that's why it's called TinyButton ;)
HINT: I borrowed the code from here: http://git.gnome.org./cgit/gnome-terminal/tree/src/terminal-tab-label.c?h=gnome-2-26 but something is missing and I can't see what.
An the winner is:
Faith_Nahn
he posted the code to solve the problem that involved setting a gtk style for the button. Thanks to him and all the ones that submited code!
If you find it fun I can make more code quizes in the future.
as an extra bonus you where added to the dummy user list of the dummy protocol, now you can make girls fall inlove with you by showing them that you are on emesene code (?)*
btw, you are on the commit log too: http://emesene.svn.sourceforge.net/viewvc/emesene?view=rev&revision=1610
* to make this, login with any user and password selecting the dummy session on login preferences.
Subscribe to:
Posts (Atom)