зеркало из https://github.com/mozilla/gecko-dev.git
Bug 504822 - Remove XBM support from Mozilla. r=joe sr=vladimir
This commit is contained in:
Родитель
daf767aa3c
Коммит
cd0b27cceb
|
@ -909,7 +909,6 @@ var Module = {
|
|||
registerType("image/bmp");
|
||||
registerType("image/x-icon");
|
||||
registerType("image/vnd.microsoft.icon");
|
||||
registerType("image/x-xbitmap");
|
||||
registerType("application/http-index-format");
|
||||
|
||||
var catMan = Components.classes["@mozilla.org/categorymanager;1"]
|
||||
|
|
|
@ -4508,7 +4508,7 @@ MOZ_DBGRINFO_MODULES=
|
|||
MOZ_ENABLE_CANVAS=1
|
||||
MOZ_ENABLE_CANVAS3D=
|
||||
MOZ_FEEDS=1
|
||||
MOZ_IMG_DECODERS_DEFAULT="png gif jpeg bmp xbm icon"
|
||||
MOZ_IMG_DECODERS_DEFAULT="png gif jpeg bmp icon"
|
||||
MOZ_IMG_ENCODERS_DEFAULT="png jpeg"
|
||||
MOZ_JAVAXPCOM=
|
||||
MOZ_JSDEBUGGER=1
|
||||
|
|
|
@ -38,7 +38,6 @@ components\htmlparser.xpt
|
|||
; imagelib
|
||||
;
|
||||
components\imgbmp.dll
|
||||
components\imgxbm.dll
|
||||
components\imgicon.dll
|
||||
components\imgicon.xpt
|
||||
components\imglib2.xpt
|
||||
|
|
|
@ -26,7 +26,6 @@ components\htmlparser.xpt
|
|||
; imagelib
|
||||
;
|
||||
components\imgbmp.dll
|
||||
components\imgxbm.dll
|
||||
components\imgicon.dll
|
||||
components\imgicon.xpt
|
||||
components\imglib2.xpt
|
||||
|
|
|
@ -44,7 +44,6 @@
|
|||
#define IMG_BUILD_bmp 1
|
||||
#define IMG_BUILD_png 1
|
||||
#define IMG_BUILD_jpeg 1
|
||||
#define IMG_BUILD_xbm 1
|
||||
#endif
|
||||
|
||||
#include "nsIDeviceContext.h"
|
||||
|
@ -81,12 +80,6 @@
|
|||
#include "nsJPEGDecoder.h"
|
||||
#endif
|
||||
|
||||
#ifdef IMG_BUILD_DECODER_xbm
|
||||
// xbm
|
||||
#include "nsXBMDecoder.h"
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef IMG_BUILD_ENCODER_png
|
||||
// png
|
||||
#include "nsPNGEncoder.h"
|
||||
|
@ -133,11 +126,6 @@ NS_GENERIC_FACTORY_CONSTRUCTOR(nsPNGDecoder)
|
|||
NS_GENERIC_FACTORY_CONSTRUCTOR(nsPNGEncoder)
|
||||
#endif
|
||||
|
||||
#ifdef IMG_BUILD_DECODER_xbm
|
||||
// xbm
|
||||
NS_GENERIC_FACTORY_CONSTRUCTOR(nsXBMDecoder)
|
||||
#endif
|
||||
|
||||
static const char* gImageMimeTypes[] = {
|
||||
#ifdef IMG_BUILD_DECODER_gif
|
||||
"image/gif",
|
||||
|
@ -157,11 +145,6 @@ static const char* gImageMimeTypes[] = {
|
|||
"image/png",
|
||||
"image/x-png",
|
||||
#endif
|
||||
#ifdef IMG_BUILD_DECODER_xbm
|
||||
"image/x-xbitmap",
|
||||
"image/x-xbm",
|
||||
"image/xbm"
|
||||
#endif
|
||||
};
|
||||
|
||||
static NS_METHOD ImageRegisterProc(nsIComponentManager *aCompMgr,
|
||||
|
@ -293,22 +276,6 @@ static const nsModuleComponentInfo components[] =
|
|||
"@mozilla.org/image/encoder;2?type=image/png",
|
||||
nsPNGEncoderConstructor, },
|
||||
#endif
|
||||
|
||||
#ifdef IMG_BUILD_DECODER_xbm
|
||||
// xbm
|
||||
{ "XBM Decoder",
|
||||
NS_XBMDECODER_CID,
|
||||
"@mozilla.org/image/decoder;2?type=image/x-xbitmap",
|
||||
nsXBMDecoderConstructor, },
|
||||
{ "XBM Decoder",
|
||||
NS_XBMDECODER_CID,
|
||||
"@mozilla.org/image/decoder;2?type=image/x-xbm",
|
||||
nsXBMDecoderConstructor, },
|
||||
{ "XBM Decoder",
|
||||
NS_XBMDECODER_CID,
|
||||
"@mozilla.org/image/decoder;2?type=image/xbm",
|
||||
nsXBMDecoderConstructor, },
|
||||
#endif
|
||||
};
|
||||
|
||||
static nsresult
|
||||
|
|
|
@ -1,61 +0,0 @@
|
|||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 2001
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
# Christian Biesinger <cbiesinger@web.de>
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
DEPTH = ../../../..
|
||||
topsrcdir = @top_srcdir@
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
||||
include $(DEPTH)/config/autoconf.mk
|
||||
|
||||
MODULE = imgxbm
|
||||
LIBRARY_NAME = imgxbm_s
|
||||
FORCE_STATIC_LIB = 1
|
||||
MODULE_NAME = nsXBMModule
|
||||
LIBXUL_LIBRARY = 1
|
||||
|
||||
REQUIRES = xpcom \
|
||||
string \
|
||||
gfx \
|
||||
thebes \
|
||||
imglib2 \
|
||||
$(NULL)
|
||||
|
||||
CPPSRCS = nsXBMDecoder.cpp
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
|
@ -1,292 +0,0 @@
|
|||
/* vim:set tw=80 expandtab softtabstop=4 ts=4 sw=4: */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is the Mozilla XBM Decoder.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Christian Biesinger <cbiesinger@web.de>.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2001
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Aaron Kaluszka <ask@swva.net>
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
/* KNOWN BUGS:
|
||||
* o first #define line is assumed to be width, second height */
|
||||
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <ctype.h>
|
||||
|
||||
#include "nsXBMDecoder.h"
|
||||
|
||||
#include "nsIInputStream.h"
|
||||
#include "nsIComponentManager.h"
|
||||
#include "nsIInterfaceRequestorUtils.h"
|
||||
|
||||
#include "imgILoad.h"
|
||||
|
||||
#include "nsIProperties.h"
|
||||
#include "nsISupportsPrimitives.h"
|
||||
|
||||
#include "gfxColor.h"
|
||||
#include "nsIInterfaceRequestorUtils.h"
|
||||
|
||||
// Static colormap
|
||||
static const PRUint32 kColors[2] = {
|
||||
GFX_PACKED_PIXEL(0, 0, 0, 0), // Transparent
|
||||
GFX_PACKED_PIXEL(255, 0, 0, 0) // Black
|
||||
};
|
||||
|
||||
NS_IMPL_ISUPPORTS1(nsXBMDecoder, imgIDecoder)
|
||||
|
||||
nsXBMDecoder::nsXBMDecoder() : mBuf(nsnull), mPos(nsnull), mImageData(nsnull)
|
||||
{
|
||||
}
|
||||
|
||||
nsXBMDecoder::~nsXBMDecoder()
|
||||
{
|
||||
if (mBuf)
|
||||
free(mBuf);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsXBMDecoder::Init(imgILoad *aLoad)
|
||||
{
|
||||
nsresult rv;
|
||||
mObserver = do_QueryInterface(aLoad);
|
||||
|
||||
mImage = do_CreateInstance("@mozilla.org/image/container;2", &rv);
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
aLoad->SetImage(mImage);
|
||||
|
||||
mCurRow = mBufSize = mWidth = mHeight = 0;
|
||||
mState = RECV_HEADER;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsXBMDecoder::Close()
|
||||
{
|
||||
mImage->DecodingComplete();
|
||||
|
||||
mObserver->OnStopContainer(nsnull, mImage);
|
||||
mObserver->OnStopDecode(nsnull, NS_OK, nsnull);
|
||||
mObserver = nsnull;
|
||||
mImage = nsnull;
|
||||
mImageData = nsnull;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsXBMDecoder::Flush()
|
||||
{
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_METHOD nsXBMDecoder::ReadSegCb(nsIInputStream* aIn, void* aClosure,
|
||||
const char* aFromRawSegment, PRUint32 aToOffset,
|
||||
PRUint32 aCount, PRUint32 *aWriteCount) {
|
||||
nsXBMDecoder *decoder = reinterpret_cast<nsXBMDecoder*>(aClosure);
|
||||
*aWriteCount = aCount;
|
||||
|
||||
nsresult rv = decoder->ProcessData(aFromRawSegment, aCount);
|
||||
|
||||
if (NS_FAILED(rv)) {
|
||||
*aWriteCount = 0;
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsXBMDecoder::WriteFrom(nsIInputStream *aInStr, PRUint32 aCount, PRUint32 *aRetval)
|
||||
{
|
||||
nsresult rv = aInStr->ReadSegments(ReadSegCb, this, aCount, aRetval);
|
||||
|
||||
if (aCount != *aRetval) {
|
||||
*aRetval = aCount;
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
nsresult nsXBMDecoder::ProcessData(const char* aData, PRUint32 aCount) {
|
||||
char *endPtr;
|
||||
// calculate the offset since the absolute position might no longer
|
||||
// be valid after realloc
|
||||
const PRPtrdiff posOffset = mPos ? (mPos - mBuf) : 0;
|
||||
|
||||
// expand the buffer to hold the new data
|
||||
char* oldbuf = mBuf;
|
||||
PRUint32 newbufsize = mBufSize + aCount + 1;
|
||||
if (newbufsize < mBufSize)
|
||||
mBuf = nsnull; // size wrapped around, give up
|
||||
else
|
||||
mBuf = (char*)realloc(mBuf, newbufsize);
|
||||
|
||||
if (!mBuf) {
|
||||
mState = RECV_DONE;
|
||||
if (oldbuf)
|
||||
free(oldbuf);
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
memcpy(mBuf + mBufSize, aData, aCount);
|
||||
mBufSize += aCount;
|
||||
mBuf[mBufSize] = 0;
|
||||
mPos = mBuf + posOffset;
|
||||
|
||||
// process latest data according to current state
|
||||
if (mState == RECV_HEADER) {
|
||||
mPos = strstr(mBuf, "#define");
|
||||
if (!mPos)
|
||||
// #define not found. return for now, waiting for more data.
|
||||
return NS_OK;
|
||||
|
||||
// Convert width and height to numbers. Convert hotspot for cursor functionality, if present
|
||||
if (sscanf(mPos, "#define %*s %u #define %*s %u #define %*s %u #define %*s %u unsigned", &mWidth, &mHeight, &mXHotspot, &mYHotspot) == 4)
|
||||
mIsCursor = PR_TRUE;
|
||||
else if (sscanf(mPos, "#define %*s %u #define %*s %u unsigned", &mWidth, &mHeight) == 2)
|
||||
mIsCursor = PR_FALSE;
|
||||
else
|
||||
// No identifiers found. Return for now, waiting for more data.
|
||||
return NS_OK;
|
||||
|
||||
// Check for X11 flavor
|
||||
if (strstr(mPos, " char "))
|
||||
mIsX10 = PR_FALSE;
|
||||
// Check for X10 flavor
|
||||
else if (strstr(mPos, " short "))
|
||||
mIsX10 = PR_TRUE;
|
||||
else
|
||||
// Neither identifier found. Return for now, waiting for more data.
|
||||
return NS_OK;
|
||||
|
||||
mImage->Init(mWidth, mHeight, mObserver);
|
||||
mObserver->OnStartContainer(nsnull, mImage);
|
||||
|
||||
PRUint32 imageLen;
|
||||
nsresult rv = mImage->AppendFrame(0, 0, mWidth, mHeight, gfxASurface::ImageFormatARGB32,
|
||||
(PRUint8**)&mImageData, &imageLen);
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
if (mIsCursor) {
|
||||
nsCOMPtr<nsIProperties> props(do_QueryInterface(mImage));
|
||||
if (props) {
|
||||
nsCOMPtr<nsISupportsPRUint32> intwrapx = do_CreateInstance("@mozilla.org/supports-PRUint32;1");
|
||||
nsCOMPtr<nsISupportsPRUint32> intwrapy = do_CreateInstance("@mozilla.org/supports-PRUint32;1");
|
||||
|
||||
if (intwrapx && intwrapy) {
|
||||
intwrapx->SetData(mXHotspot);
|
||||
intwrapy->SetData(mYHotspot);
|
||||
|
||||
props->Set("hotspotX", intwrapx);
|
||||
props->Set("hotspotY", intwrapy);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
mObserver->OnStartFrame(nsnull, 0);
|
||||
|
||||
mState = RECV_SEEK;
|
||||
|
||||
mCurRow = 0;
|
||||
mCurCol = 0;
|
||||
|
||||
}
|
||||
if (mState == RECV_SEEK) {
|
||||
if ((endPtr = strchr(mPos, '{')) != NULL) {
|
||||
mPos = endPtr+1;
|
||||
mState = RECV_DATA;
|
||||
} else {
|
||||
mPos = mBuf + mBufSize;
|
||||
return NS_OK;
|
||||
}
|
||||
}
|
||||
if (mState == RECV_DATA) {
|
||||
PRUint32 *ar = mImageData + mCurRow * mWidth + mCurCol;
|
||||
|
||||
do {
|
||||
PRUint32 pixel = strtoul(mPos, &endPtr, 0);
|
||||
if (endPtr == mPos)
|
||||
return NS_OK; // no number to be found - need more data
|
||||
if (!*endPtr)
|
||||
return NS_OK; // number at the end - might be missing a digit
|
||||
if (pixel == 0 && *endPtr == 'x')
|
||||
return NS_OK; // 0x at the end, actual number is missing
|
||||
while (*endPtr && isspace(*endPtr))
|
||||
endPtr++; // skip whitespace looking for comma
|
||||
|
||||
if (!*endPtr) {
|
||||
// Need more data
|
||||
return NS_OK;
|
||||
}
|
||||
if (*endPtr != ',') {
|
||||
*endPtr = '\0';
|
||||
mState = RECV_DONE; // strange character (or ending '}')
|
||||
} else {
|
||||
// Skip the comma
|
||||
endPtr++;
|
||||
}
|
||||
mPos = endPtr;
|
||||
PRUint32 numPixels = 8;
|
||||
if (mIsX10) { // X10 use 16bits values, but bytes are swapped
|
||||
pixel = (pixel >> 8) | ((pixel&0xFF) << 8);
|
||||
numPixels = 16;
|
||||
}
|
||||
numPixels = PR_MIN(numPixels, mWidth - mCurCol);
|
||||
for (PRUint32 i = numPixels; i > 0; --i) {
|
||||
*ar++ = kColors[pixel & 1];
|
||||
pixel >>= 1;
|
||||
}
|
||||
mCurCol += numPixels;
|
||||
if (mCurCol == mWidth || mState == RECV_DONE) {
|
||||
nsIntRect r(0, mCurRow, mWidth, 1);
|
||||
nsresult rv = mImage->FrameUpdated(0, r);
|
||||
if (NS_FAILED(rv)) {
|
||||
return rv;
|
||||
}
|
||||
|
||||
mObserver->OnDataAvailable(nsnull, PR_TRUE, &r);
|
||||
|
||||
mCurRow++;
|
||||
if (mCurRow == mHeight) {
|
||||
mState = RECV_DONE;
|
||||
return mObserver->OnStopFrame(nsnull, 0);
|
||||
}
|
||||
mCurCol = 0;
|
||||
}
|
||||
} while ((mState == RECV_DATA) && *mPos);
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
|
@ -1,101 +0,0 @@
|
|||
/* vim:set tw=80 expandtab softtabstop=4 ts=4 sw=4: */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is the Mozilla XBM Decoder.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Christian Biesinger <cbiesinger@web.de>.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2001
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Aaron Kaluszka <ask@swva.net>
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
|
||||
#ifndef _nsXBMDecoder_h
|
||||
#define _nsXBMDecoder_h
|
||||
|
||||
#include "nsCOMPtr.h"
|
||||
#include "imgIDecoder.h"
|
||||
#include "imgIContainer.h"
|
||||
#include "imgIDecoderObserver.h"
|
||||
|
||||
#define NS_XBMDECODER_CID \
|
||||
{ /* {dbfd145d-3298-4f3c-902f-2c5e1a1494ce} */ \
|
||||
0xdbfd145d, \
|
||||
0x3298, \
|
||||
0x4f3c, \
|
||||
{ 0x90, 0x2f, 0x2c, 0x5e, 0x1a, 0x14, 0x94, 0xce } \
|
||||
}
|
||||
|
||||
class nsXBMDecoder : public imgIDecoder
|
||||
{
|
||||
public:
|
||||
NS_DECL_ISUPPORTS
|
||||
NS_DECL_IMGIDECODER
|
||||
|
||||
nsXBMDecoder();
|
||||
virtual ~nsXBMDecoder();
|
||||
|
||||
nsresult ProcessData(const char* aData, PRUint32 aCount);
|
||||
private:
|
||||
static NS_METHOD ReadSegCb(nsIInputStream* aIn, void* aClosure,
|
||||
const char* aFromRawSegment, PRUint32 aToOffset,
|
||||
PRUint32 aCount, PRUint32 *aWriteCount);
|
||||
|
||||
nsCOMPtr<imgIDecoderObserver> mObserver;
|
||||
|
||||
nsCOMPtr<imgIContainer> mImage;
|
||||
|
||||
PRUint32 mCurRow;
|
||||
PRUint32 mCurCol;
|
||||
|
||||
char* mBuf; // Holds the received data
|
||||
char* mPos;
|
||||
PRUint32 mBufSize; // number of bytes in mBuf
|
||||
|
||||
PRUint32 mWidth;
|
||||
PRUint32 mHeight;
|
||||
PRUint32 mXHotspot;
|
||||
PRUint32 mYHotspot;
|
||||
|
||||
PRUint32* mImageData; // Pointer into the Cairo image data
|
||||
|
||||
PRPackedBool mIsCursor;
|
||||
PRPackedBool mIsX10; // X10 flavor XBM?
|
||||
|
||||
enum {
|
||||
RECV_HEADER,
|
||||
RECV_SEEK,
|
||||
RECV_DATA,
|
||||
RECV_DONE
|
||||
} mState;
|
||||
};
|
||||
|
||||
|
||||
#endif
|
|
@ -1681,9 +1681,6 @@ nsresult imgLoader::GetMimeTypeFromContent(const char* aContents, PRUint32 aLeng
|
|||
aContentType.AssignLiteral("image/x-icon");
|
||||
}
|
||||
|
||||
else if (aLength >= 8 && !nsCRT::strncmp(aContents, "#define ", 8)) {
|
||||
aContentType.AssignLiteral("image/x-xbitmap");
|
||||
}
|
||||
else {
|
||||
/* none of the above? I give up */
|
||||
return NS_ERROR_NOT_AVAILABLE;
|
||||
|
|
|
@ -7,7 +7,6 @@ htmlFilter=*.html; *.htm; *.shtml; *.xhtml
|
|||
textTitle=Text Files
|
||||
textFilter=*.txt; *.text
|
||||
imageTitle=Image Files
|
||||
imageFilter=*.jpg; *.jpeg; *.gif; *.png; *.bmp; *.xbm; *.ico
|
||||
xmlTitle=XML Files
|
||||
xmlFilter=*.xml
|
||||
xulTitle=XUL Files
|
||||
|
|
|
@ -809,7 +809,6 @@ MAKEFILES_libpr0n="
|
|||
modules/libpr0n/decoders/icon/win/Makefile
|
||||
modules/libpr0n/decoders/icon/gtk/Makefile
|
||||
modules/libpr0n/decoders/icon/beos/Makefile
|
||||
modules/libpr0n/decoders/xbm/Makefile
|
||||
modules/libpr0n/encoders/Makefile
|
||||
modules/libpr0n/encoders/png/Makefile
|
||||
modules/libpr0n/encoders/jpeg/Makefile
|
||||
|
|
|
@ -153,8 +153,7 @@ nsBaseFilePicker::AppendFilters(PRInt32 aFilterMask)
|
|||
}
|
||||
if (aFilterMask & filterImages) {
|
||||
stringBundle->GetStringFromName(NS_LITERAL_STRING("imageTitle").get(), getter_Copies(title));
|
||||
stringBundle->GetStringFromName(NS_LITERAL_STRING("imageFilter").get(), getter_Copies(filter));
|
||||
AppendFilter(title,filter);
|
||||
AppendFilter(title,NS_LITERAL_STRING("*.jpg; *.jpeg; *.gif; *.png; *.bmp; *.ico"));
|
||||
}
|
||||
if (aFilterMask & filterXML) {
|
||||
stringBundle->GetStringFromName(NS_LITERAL_STRING("xmlTitle").get(), getter_Copies(title));
|
||||
|
|
Загрузка…
Ссылка в новой задаче