コード例 #1
0
ファイル: CutPaste.c プロジェクト: Bluerise/bitrig-xenocara
/* ARGSUSED */
static Boolean
ConvertSelection(Widget w, Atom *selection, Atom *target, Atom *type,
		 XtPointer *val_ret, unsigned long *length, int *format)
{
    XPointer *value = (XPointer *)val_ret;
    BitmapWidget BW = (BitmapWidget) w;
    Pixmap *pixmap;
    char *data;
    XImage *image;
    Dimension width, height;

    switch (*target) {

/*  XA_TARGETS undefined ?!?

    case XA_TARGETS:
	*type = XA_ATOM;
	*value = (XPointer) bitmapClassRec.bitmap_class.targets;
	*length = bitmapClassRec.bitmap_class.num_targets;
	*format = 32;
	return True;

*/

    case XA_BITMAP:
    case XA_PIXMAP:
	if (BWQueryMarked(w)) {
	  width = BW->bitmap.mark.to_x - BW->bitmap.mark.from_x + 1;
	  height = BW->bitmap.mark.to_y - BW->bitmap.mark.from_y + 1;
	  data = CreateCleanData(Length(width, height));
	  image = CreateBitmapImage(BW, data, width, height);
	  CopyImageData(BW->bitmap.image, image,
			BW->bitmap.mark.from_x, BW->bitmap.mark.from_y,
			BW->bitmap.mark.to_x, BW->bitmap.mark.to_y, 0, 0);
	  pixmap = (Pixmap *) XtMalloc(sizeof(Pixmap));
	  *pixmap = GetPixmap(BW, image);
	  DestroyBitmapImage(&image);
	}
	else if (BWQueryStored(w)) {
	  pixmap = (Pixmap *) XtMalloc(sizeof(Pixmap));
	  *pixmap = GetPixmap(BW, BW->bitmap.storage);
	}
	else return False;
	*type = XA_PIXMAP;
	*value = (XPointer) pixmap;
	*length = 1;
	*format = 32;
	return True;

    default:
	return False;
    }
}
コード例 #2
0
ファイル: waveexplorerui.cpp プロジェクト: liye0005/QT_POJ
void WaveExplorerUi::UpdateItemWave()
{
    ClearItemsData();

    if (style_changed_)
    {
        DeleteDataSet();
    }

    int width = SetItemWidth();
    QPixmap pixmap(width, PIXMPA_HEIGHT);

    MDataBase *db = MDataBase::GetInstance();
    QList<int> sid_list = db->RawWaveInfoIdList();

    for (int i = 0; i < sid_list.count(); i++)
    {
        int sid = sid_list.at(i);

        MISEIS_F_CONTINUE(GetPixmap(sid, i, &pixmap));

        QListWidgetItem *item = new QListWidgetItem;
        item->setIcon(QIcon(pixmap));
        item->setFlags(Qt::ItemIsEnabled);

        this->addItem(item);

        wave_list_.append(sid);
    }
    style_changed_ = false;
}
コード例 #3
0
void TextureDrop::SetTexture(Render::TextureInterface* p_texture)
{
	if(p_texture != nullptr)
	{
		QPixmap pm = GetPixmap(p_texture);			
		ui.label_2->setPixmap(pm.scaled(ui.label_2->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation));
	}
}
コード例 #4
0
ファイル: ImageLoader.cpp プロジェクト: cancamilo/amarok
QImage PlainImageLoader::loadAndResize( Meta::AlbumPtr iAlbum, QSize size )
{
    //qDebug() <<  <<"ImageLoader::loadAndresize()";
    QImage image;
    QPixmap pixmap = GetPixmap(iAlbum);
    image = pixmap.toImage();
    image = image.scaled( size, Qt::KeepAspectRatio, Qt::SmoothTransformation );
    return image;
}
コード例 #5
0
ファイル: auscrie.cpp プロジェクト: Akon32/leechcraft
	void Plugin::shoot ()
	{
		ShotAction_->setEnabled (true);

		qDebug () << Q_FUNC_INFO << Dialog_->isVisible ();

		auto mw = Proxy_->GetMainWindow ();

		const QPixmap& pm = GetPixmap ();
		int quality = Dialog_->GetQuality ();
		switch (Dialog_->GetAction ())
		{
		case ShooterDialog::Action::Save:
			{
				QString path = Proxy_->GetSettingsManager ()->
					Property ("PluginsStorage/Auscrie/SavePath",
							QDir::currentPath () + "01." + Dialog_->GetFormat ())
					.toString ();

				QString filename = QFileDialog::getSaveFileName (mw,
						tr ("Save as"),
						path,
						tr ("%1 files (*.%1);;All files (*.*)")
							.arg (Dialog_->GetFormat ()));

				if (!filename.isEmpty ())
				{
					pm.save (filename,
							qPrintable (Dialog_->GetFormat ()),
							quality);
					Proxy_->GetSettingsManager ()->
						setProperty ("PluginsStorage/Auscrie/SavePath",
								filename);
				}
			}
			break;
		case ShooterDialog::Action::Upload:
			{
				QByteArray bytes;
				QBuffer buf (&bytes);
				buf.open (QIODevice::ReadWrite);
				if (!pm.save (&buf,
							qPrintable (Dialog_->GetFormat ()),
							quality))
					qWarning () << Q_FUNC_INFO
						<< "save failed"
						<< qPrintable (Dialog_->GetFormat ())
						<< quality;
				Post (bytes);
				break;
			}
		}
	}
コード例 #6
0
ファイル: bitmap.cpp プロジェクト: gitrider/wxsj2
wxBitmap wxBitmap::Rescale( int clipx, int clipy, int clipwidth, int clipheight, int newx, int newy )
{
    wxCHECK_MSG( Ok(), wxNullBitmap, wxT("invalid bitmap") );

    if (newy==M_BMPDATA->m_width && newy==M_BMPDATA->m_height)
        return *this;
    
    int width = wxMax(newx, 1);
    int height = wxMax(newy, 1);
    width = wxMin(width, clipwidth);
    height = wxMin(height, clipheight);
        
    wxBitmap bmp;

#ifdef __WXGTK20__
    if (HasPixbuf())
    {
        bmp.SetWidth(width);
        bmp.SetHeight(height);
        bmp.SetDepth(GetDepth());
        bmp.SetPixbuf(gdk_pixbuf_new(GDK_COLORSPACE_RGB,
                                     gdk_pixbuf_get_has_alpha(GetPixbuf()),
                                     8, width, height));
        gdk_pixbuf_scale(GetPixbuf(), bmp.GetPixbuf(),
                         0, 0, width, height,
                         clipx, clipy, 
                         (double)newx/GetWidth(), (double)newy/GetHeight(),
                         GDK_INTERP_BILINEAR);
    }
    else
#endif // __WXGTK20__
    {
        GdkImage *img = (GdkImage*) NULL;
        if (GetPixmap())
            img = gdk_image_get( GetPixmap(), 0, 0, GetWidth(), GetHeight() );
        else if (GetBitmap())
            img = gdk_image_get( GetBitmap(), 0, 0, GetWidth(), GetHeight() );
        else
            wxFAIL_MSG( wxT("Ill-formed bitmap") );

        wxCHECK_MSG( img, wxNullBitmap, wxT("couldn't create image") );

        int bpp = -1;

        
        GdkGC *gc = NULL;
        GdkPixmap *dstpix = NULL;
        if (GetPixmap())
        {
            GdkVisual *visual = gdk_window_get_visual( GetPixmap() );
            if (visual == NULL)
                visual = wxTheApp->GetGdkVisual();

            bpp = visual->depth;
            bmp = wxBitmap(width,height,bpp);
            dstpix = bmp.GetPixmap();
            gc = gdk_gc_new( dstpix );
        }

        char *dst = NULL;
        long dstbyteperline = 0;
        
        if (GetBitmap())
        {
            bpp = 1;
            dstbyteperline = width/8*M_BMPDATA->m_bpp;
            if (width*M_BMPDATA->m_bpp % 8 != 0)
                dstbyteperline++;
            dst = (char*) malloc(dstbyteperline*height);
        }
                 
        // be careful to use the right scaling factor
        float scx = (float)M_BMPDATA->m_width/(float)newx;
        float scy = (float)M_BMPDATA->m_height/(float)newy;
        // prepare accel-tables
        int *tablex = (int *)calloc(width,sizeof(int));
        int *tabley = (int *)calloc(height,sizeof(int));

        // accel table filled with clipped values
        for (int x = 0; x < width; x++)
            tablex[x] = (int) (scx * (x+clipx));
        for (int y = 0; y < height; y++)
            tabley[y] = (int) (scy * (y+clipy));

        // Main rescaling routine starts here
        for (int h = 0; h < height; h++)
        {
            char outbyte = 0;
            int old_x = -1;
            guint32 old_pixval = 0;

            for (int w = 0; w < width; w++)
            {
                guint32 pixval;
                int x = tablex[w];
                if (x == old_x)
                    pixval = old_pixval;
                else
                {
                    pixval = gdk_image_get_pixel( img, x, tabley[h] );
                    old_pixval = pixval;
                    old_x = x;
                }
                    
                if (bpp == 1)
                {
                    if (!pixval)
                    {
                        char bit=1;
                        char shift = bit << w % 8;
                        outbyte |= shift;
                    }
                    
                    if ((w+1)%8==0)
                    {
                        dst[h*dstbyteperline+w/8] = outbyte;
                        outbyte = 0;
                    }
                }
                else
                {
                    GdkColor col;
                    col.pixel = pixval;
                    gdk_gc_set_foreground( gc, &col );
                    gdk_draw_point( dstpix, gc, w, h);
                }
            }
        
            // do not forget the last byte
            if ((bpp == 1) && (width % 8 != 0))
                dst[h*dstbyteperline+width/8] = outbyte;
        }
        
        gdk_image_destroy( img );
        if (gc) gdk_gc_unref( gc );

        if (bpp == 1)
        {
            bmp = wxBitmap( (const char *)dst, width, height, 1 );
            free( dst );
        }
        
        if (GetMask())
        {
            dstbyteperline = width/8;
            if (width % 8 != 0)
                dstbyteperline++;
            dst = (char*) malloc(dstbyteperline*height);
            img = gdk_image_get( GetMask()->GetBitmap(), 0, 0, GetWidth(), GetHeight() );

            for (int h = 0; h < height; h++)
            {
                char outbyte = 0;
                int old_x = -1;
                guint32 old_pixval = 0;
        
                for (int w = 0; w < width; w++)
                {
                    guint32 pixval;
                    int x = tablex[w];
                    if (x == old_x)
                        pixval = old_pixval;
                    else
                    {
                        pixval = gdk_image_get_pixel( img, x, tabley[h] );
                        old_pixval = pixval;
                        old_x = x;
                    }
                    
                    if (pixval)
                    {
                        char bit=1;
                        char shift = bit << w % 8;
                        outbyte |= shift;
                    }
                    
                    if ((w+1)%8 == 0)
                    {
                        dst[h*dstbyteperline+w/8] = outbyte;
                        outbyte = 0;
                    }
                }
            
                // do not forget the last byte
                if (width % 8 != 0)
                    dst[h*dstbyteperline+width/8] = outbyte;
            }
            wxMask* mask = new wxMask;
            mask->m_bitmap = gdk_bitmap_create_from_data( wxGetRootWindow()->window, (gchar *) dst, width, height );
            bmp.SetMask(mask);

            free( dst );
            gdk_image_destroy( img );
        }

        free( tablex );
        free( tabley );
    }
    
    return bmp; 
}
コード例 #7
0
ファイル: Resources.cpp プロジェクト: FenrisulfrX/dolphin
QIcon Resources::GetIcon(int id)
{
	return QIcon(GetPixmap(id));
}