How to set anti-aliasing mode for specific gtk+ application - gtk

I trying to write simple gtk+ application with pygobject that using gtk.TextView. In stock demo code I see that font sets up with Pango, but I can't find corresponding method for set up antialiasing-mode. By default font looks little ugly for me.
Does anybody know how to set anti-aliasing in gtk+ app (with python or pure C, Pango or other way)?

Well, it's not easy. Many factors interact to get the final font glyphs on your screen.
Maybe one of the easiest ways to change antialiasing globally would be to reprogram fontconfig. This article describes how to disable anti-aliasing, but it indicates where the config item is located.
Then, on a per-application basis, the actual work of drawing the characters is in the hands of Pango, but Pango may be programmed to use Xft (fontconfig) or Cairo to do the actual drawing. In case of Cairo (which seems to gather popularity), the anti-aliasing is done there. There's an article on that here on stackoverflow. Basically there's a function in the Cairo library, called 'cairo_set_aliasing'
Edit: Have a look at the XFCE window manager. In ths Settings | Appearance tool, you can change the anti aliasing 'globally', from 'none', 'slight', 'more' to 'full', and select subpixel in color or gray, horizontal/vertical and details. The code is contained in the xfce4-appearance-settings module of XFCE.
The aliasing setup is in xfce4-settings-4.12.0.tar.bz2, in dialogs/appearance-settings/main.c. I'm not sure if it actually activated there. I've quite a lot of work at the moment, but, if necessary can lend you a hand later.

Related

How to develop transparent interface?

This is not completely a programming question. Today when I load LiLi USB creator software I saw the interfaces are transparent. Is that because they are Photoshopped or is transparency a technique of IDE? I'm using both NetbBeans and Eclipse. To be clear, I'm adding a photo too.
For transparency of the entire GUI, including controls (which doesn't seem to be the case in your screenshot), .NET includes the Form.Opacity property.
Additionally, it may be possible to use LayeredWindows to change only the opacity of the top-level component to produce the desired effect.
For Java specifically, there's an official Java tutorial for that, although it seems to set the opacity of the entire window, including all child components.

SmartGWT skinning

Some SmartGWT components are composed by a lot of small images. This is the case of IButton for example that gets rendered using images.
I want to adapt the original SmartGWT CSS to fit my needs, that are basically color changes.
This answer is not quite accurate..
If you have staff with experience with image-based skinning and appropriate tools (eg Adobe Fireworks), start from whatever skin you like.
If you don't, and you need to change the colors but don't care about niceties like rounded corners in older IE (which are impossible without images), start from Simplicity, or start from the CSS3 rendering mode provided for the 3 most popular skins (from 3.1 on):
http://blog.isomorphic.com/css3-mode/
The latter approach (CSS3 mode) is more visually rich than Simplicity.
It seems, that the best way of skinning an SmartGWT application is starting from the Simplicity theme.
Isomorphic team suggest starting from this theme, as it uses less images that the others themes.
As far as I've read, everything should be done by hand (editing images, and CSS).

How does compositor work on X?

I am trying to understand how compositors work on X (well basically because neither xcompmgr nor cairo-compmgr can draw shadow properly for my awesome wm~~~)
I have read part of the source code both xcompmgr and cairo-compmgr but I still don't really understand how they do that.
I want to know how they know where the shadow should be (well, arround the window for sure, but the shadow might be under other window and don't need to be drawn.), as well as where (on which layer/window) do they draw the shadow. Probably also how all those X extension are used (and what's for) and how cairo-compmgr use cairo to deal with low level X stuff.
It's a little hard for me to learn these from the source code because a lot of stuff (especially X extensions) is poor documented. It will also be helpful just to point out where I should look at.
The simpler you code it, the best it will work.
Get a list of the visible windows
Sort them by inverse z-order (from the bottom-most to the top-most)
Draw the shadow and then the window itself for each window
You need no black magic.
If you are wondering how it works, it's straightforward: you have to use the 'composite' X extension. It enables the overlay window, which is the only visible window on the screen once it is enabled, then you have to draw all the windows on it as you will be provided with a Pixmap for each window.
EDIT:
If you are seeking for documentation, you can use the linux manual (the man command), and the header files, they're the main (also best and perhaps the only real) source of documentation, as all the other sources/websites rely on them afaik.

Changing the GTK Scrollbar image

I would like to change the image of GTK Scrollbar,
i.e) I want to remove the standard looking scrollbar, and add my resources to it.
I dont mind touching gtk code.
I am sure that GTK will maintain all the images as a resources,
Can any one please locate me, where to change the images?
Thanks in advance
Dinesh P
The scrollbars aren't drawn in GTK; the theme engine is responsible for drawing them. In all themes that I know of, they are not drawn using image resources, but instead using GDK or Cairo.
See for example this code from the Clearlooks theme: http://git.gnome.org/browse/gtk-engines/tree/engines/clearlooks/src/clearlooks_draw_glossy.c (line 915, function clearlooks_glossy_draw_scrollbar_stepper())
If you want to use images, you will have to change a theme engine or write your own.
<standard-lecture>
It's generally frowned upon to do this sort of thing in GTK; the toolkit is all about usability. Users with particular needs may have configured their themes in a particular way, for example to be compatible with a screen reader, and drawing your own customized stuff may interfere with that. At the very least, you will piss people off by breaking their desktop themes. As an application developer, you should build your application out of the widgets that GTK and other libraries provide, and the user should be free to decide how it looks on their own desktop. </standard-lecture>

Vector drawing tool for iPhone development

This isn't strictly a programming question, but I'm asking it here because it's certainly a software development question, if you take "software development" to include all aspects of creating a software system.
I am an independent iPhone developer. Except for translations, I handle all aspects of my apps myself—graphics included. I have to create icons, buttons, and UI elements of all sorts on a regular basis. I've learned a few tricks along these lines, and while they're certainly not works of art, I can effectively use gradients, shadows, border strokes, transparency, and textures to create minimalistic, attractive effects.
So far, I've used a vector drawing tool called VectorDesigner for all of my development, with occasional raster postprocessing by Pixelmator. It's worked mostly okay so far, but VectorDesigner has a host of issues:
It uses a package format for its files, which interferes with the use of Subversion.
It is very much a print tool, and I have to be very careful not to end up with objects on fractional pixel values which cause antialiasing.
While you can take the union or intersection of shapes, or add and subtract them, curves tend to deform with repeated boolean operations, sometimes quite dramatically.
And it offers very little control over strokes, to the point where I barely use them.
So I'm looking for a better tool for this specific purpose: shape-based drawing of simple icons, buttons, and UI elements on a Mac by someone without graphic design training. Good functions for exporting would be a plus—ideally it should be almost as easy to export a PNG to the place it goes in my project as it is to save (not save as) the file.
The perfect tool for me would be one that would allow you to define an object's shape by stacking up areas and masks defined by primitive shapes (which would remain separately editable), then define properties on those objects like transforms and strokes. I have no idea if something like this exists, though.
Adobe's tools generally strike me as very heavyweight, and are usually expensive, but I suppose they're a possibility. (Fireworks, with its emphasis on screen design, seems like it might be particularly suitable, but I don't know that much about it.) But what else is out there? If you're in a position like me, what do you use? What do you recommend?
Edited to add: Of course a graphic designer could get better results from an ancient copy of MacPaint than I could from Illustrator CS5. No tool can replace skill and taste, and many programmers have little of either. I'm aware of that. But I'm fortunate enough to have at least some taste—enough that my users compliment my apps' appearance in their reviews. I'm not hugely talented, but I do know my limitations, and I don't let myself produce anything ugly. Given my budget, that will have to do for now.
Try Opacity. A little rough on the edges, but one of the coolest and most unique features they have is export as source code (in Quartz, Cocoa, Cocoa Touch, or Canvas)
I'd suggest OmniGraffle
OmniGraffle is easy to use, can save as a PNG, can create binary non-package files (it's an option in the interface). You can also set the units to pixels to ensure exact alignment. (Canvas Size -> Ruler Units)
Finally, the Graffletopia website has some nice iPhone stencils for getting it right:
http://graffletopia.com/search/iphone
I think the only acceptable answer here should be "hire a designer".
But it sounds like Pixelmator/Inkscape are your best bets.
Though if you do find something better, that'd be really cool. Like a jQueryUI but for native.