Namespaces
Variants
Actions
Revision as of 13:57, 13 June 2012 by hamishwillee (Talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Using bitmaps with Symbian and Maemo Platforms

Jump to: navigation, search

This article compares the task of using bitmaps on Symbian and Maemo/MeeGo platforms. It is part of the series Comparing S60 and Maemo Platforms.

Article Metadata

Article
Created: ebra (19 Nov 2007)
Last edited: hamishwillee (13 Jun 2012)
Tip.png
Tip: Application developers should use Qt rather than the native APIs listed below.
Needs-update.png
This article needs to be updated: If you found this article useful, please fix the problems below then delete the {{ArticleNeedsUpdate}} template from the article to remove this warning.

Reasons: hamishwillee (17 Nov 2011)
Article incomplete - the description of MeeGo has no comments, and the explanation for Symbian is empty. Also Qt is the application development framework for both platforms, and this should also be demonstrated.

S60 Platform

Maemo Platform

/* create image */
GdkImage* create_image(GdkPixmap* pixmap,GdkDrawable* drawable,gint W,gint H,gint X,gint Y)
{
GdkImage* image1 = NULL;
GdkImage* image2 = NULL;
guint32 ref, pixel;
gint i,j;
 
image1 = gdk_drawable_copy_to_image(pixmap,NULL,0,0,0,0,W,H);
image2 = gdk_drawable_copy_to_image(drawable,NULL,X,Y,0,0,W,H);
 
ref = gdk_image_get_pixel(image1,0,0);
 
for ( i=0; i<W; i++ )
for ( j=1; j<H; j++ )
{
pixel = gdk_image_get_pixel(image1,i,j);
if ( pixel != ref ) gdk_image_put_pixel(image2,i,j,pixel);
}
g_object_unref(image1);
return image2;
}
/* redraw */
void callback_redraw (GtkWidget *widget, GdkEventExpose *event, gpointer data)
{
...
GdkPixmap* pixmap = NULL;
...
 
pixmap = mainview->pixmaps[index].pixmap;
if ( pixmap!=NULL )
{
gdk_drawable_get_size(pixmap, &width, &height);
if ( spacing(mainview->pixmaps[index].utf_category) )
{
total_width += width;
}
else
{
X = mainview->drawing_area->allocation.width - total_width +
mainview->X + mainview->pixmaps[index].X;
Y = mainview->Y + i * ROW_HEIGHT + mainview->pixmaps[index].Y;
 
image = create_image(pixmap,widget->window,width,height,X,Y);
 
gdk_draw_image(widget->window,gc,image,0,0,X,Y,-1,-1);
 
g_object_unref(image);
}
}
...
}
110 page views in the last 30 days.
Nokia Developer aims to help you create apps and publish them so you can connect with users around the world.

京ICP备05048969号  © Copyright Nokia 2013 All rights reserved