]> git.saurik.com Git - wxWidgets.git/blame - interface/wx/bitmap.h
Doc and comment cleanup, fixes, tweaks
[wxWidgets.git] / interface / wx / bitmap.h
CommitLineData
23324ae1
FM
1/////////////////////////////////////////////////////////////////////////////
2// Name: bitmap.h
698d17c3 3// Purpose: interface of wxBitmap* classes
23324ae1
FM
4// Author: wxWidgets team
5// RCS-ID: $Id$
6// Licence: wxWindows license
7/////////////////////////////////////////////////////////////////////////////
8
8024723d
FM
9
10/**
11 In wxBitmap and wxBitmapHandler context this value means: "use the screen depth".
12*/
13#define wxBITMAP_SCREEN_DEPTH (-1)
14
23324ae1
FM
15/**
16 @class wxBitmapHandler
7c913512 17
698d17c3
FM
18 This is the base class for implementing bitmap file loading/saving, and
19 bitmap creation from data.
23324ae1 20 It is used within wxBitmap and is not normally seen by the application.
7c913512 21
23324ae1 22 If you wish to extend the capabilities of wxBitmap, derive a class from
1413ac04 23 wxBitmapHandler and add the handler using wxBitmap::AddHandler() in your
23324ae1 24 application initialisation.
7c913512 25
23324ae1 26 @library{wxcore}
698d17c3 27 @category{misc}
7c913512 28
698d17c3 29 @see @ref overview_bitmap, wxBitmap, wxIcon, wxCursor
23324ae1
FM
30*/
31class wxBitmapHandler : public wxObject
32{
33public:
34 /**
698d17c3
FM
35 Default constructor.
36
37 In your own default constructor, initialise the members m_name,
38 m_extension and m_type.
23324ae1
FM
39 */
40 wxBitmapHandler();
41
42 /**
43 Destroys the wxBitmapHandler object.
44 */
d2aa927a 45 virtual ~wxBitmapHandler();
23324ae1
FM
46
47 /**
698d17c3
FM
48 Creates a bitmap from the given data, which can be of arbitrary type.
49 The wxBitmap object @a bitmap is manipulated by this function.
50
7c913512 51 @param bitmap
4cc4bfaf 52 The wxBitmap object.
7c913512 53 @param width
4cc4bfaf 54 The width of the bitmap in pixels.
7c913512 55 @param height
4cc4bfaf 56 The height of the bitmap in pixels.
7c913512 57 @param depth
8024723d
FM
58 The depth of the bitmap in pixels.
59 If this is ::wxBITMAP_SCREEN_DEPTH, the screen depth is used.
7c913512 60 @param data
4cc4bfaf 61 Data whose type depends on the value of type.
7c913512 62 @param type
698d17c3 63 A bitmap type identifier - see ::wxBitmapType for a list
4cc4bfaf 64 of possible values.
698d17c3 65
d29a9a8a 66 @return @true if the call succeeded, @false otherwise (the default).
23324ae1 67 */
8024723d 68 virtual bool Create(wxBitmap* bitmap, const void* data, wxBitmapType type,
1413ac04 69 int width, int height, int depth = 1);
23324ae1
FM
70
71 /**
72 Gets the file extension associated with this handler.
73 */
8024723d 74 const wxString& GetExtension() const;
23324ae1
FM
75
76 /**
77 Gets the name of this handler.
78 */
8024723d 79 const wxString& GetName() const;
23324ae1
FM
80
81 /**
82 Gets the bitmap type associated with this handler.
83 */
8024723d 84 wxBitmapType GetType() const;
23324ae1
FM
85
86 /**
698d17c3
FM
87 Loads a bitmap from a file or resource, putting the resulting data into
88 @a bitmap.
89
7c913512 90 @param bitmap
4cc4bfaf 91 The bitmap object which is to be affected by this operation.
7c913512 92 @param name
4cc4bfaf
FM
93 Either a filename or a Windows resource name.
94 The meaning of name is determined by the type parameter.
7c913512 95 @param type
8024723d 96 See ::wxBitmapType for values this can take.
2fd0ada5
FM
97 @param desiredWidth
98 The desired width for the loaded bitmap.
99 @param desiredHeight
100 The desired height for the loaded bitmap.
698d17c3 101
d29a9a8a 102 @return @true if the operation succeeded, @false otherwise.
698d17c3 103
4cc4bfaf 104 @see wxBitmap::LoadFile, wxBitmap::SaveFile, SaveFile()
23324ae1 105 */
1413ac04
FM
106 virtual bool LoadFile(wxBitmap* bitmap, const wxString& name, wxBitmapType type,
107 int desiredWidth, int desiredHeight);
23324ae1
FM
108
109 /**
110 Saves a bitmap in the named file.
698d17c3 111
7c913512 112 @param bitmap
4cc4bfaf 113 The bitmap object which is to be affected by this operation.
7c913512 114 @param name
4cc4bfaf 115 A filename. The meaning of name is determined by the type parameter.
7c913512 116 @param type
8024723d 117 See ::wxBitmapType for values this can take.
7c913512 118 @param palette
4cc4bfaf 119 An optional palette used for saving the bitmap.
698d17c3 120
d29a9a8a 121 @return @true if the operation succeeded, @false otherwise.
698d17c3 122
4cc4bfaf 123 @see wxBitmap::LoadFile, wxBitmap::SaveFile, LoadFile()
23324ae1 124 */
1413ac04 125 virtual bool SaveFile(const wxBitmap* bitmap, const wxString& name, wxBitmapType type,
2fd0ada5 126 const wxPalette* palette = NULL) const;
23324ae1
FM
127
128 /**
129 Sets the handler extension.
698d17c3 130
7c913512 131 @param extension
4cc4bfaf 132 Handler extension.
23324ae1
FM
133 */
134 void SetExtension(const wxString& extension);
135
136 /**
137 Sets the handler name.
698d17c3 138
7c913512 139 @param name
4cc4bfaf 140 Handler name.
23324ae1
FM
141 */
142 void SetName(const wxString& name);
143
144 /**
145 Sets the handler type.
698d17c3 146
698d17c3 147 @param type
4cc4bfaf 148 Handler type.
23324ae1 149 */
8024723d 150 void SetType(wxBitmapType type);
23324ae1
FM
151};
152
153
154/**
155 @class wxBitmap
7c913512 156
23324ae1
FM
157 This class encapsulates the concept of a platform-dependent bitmap,
158 either monochrome or colour or colour with alpha channel support.
cbea3ec6 159
de022e4f
RR
160 If you need direct access the bitmap data instead going through
161 drawing to it using wxMemoryDC you need to use the wxPixelData
162 class (either wxNativePixelData for RGB bitmaps or wxAlphaPixelData
163 for bitmaps with an additionaly alpha channel).
7c913512 164
698d17c3 165 @note
8024723d
FM
166 Many wxBitmap functions take a @e type parameter, which is a value of the
167 ::wxBitmapType enumeration.
698d17c3
FM
168 The validity of those values depends however on the platform where your program
169 is running and from the wxWidgets configuration.
170 If all possible wxWidgets settings are used, the Windows platform supports BMP file,
171 BMP resource, XPM data, and XPM.
172 Under wxGTK, the available formats are BMP file, XPM data, XPM file, and PNG file.
173 Under wxMotif, the available formats are XBM data, XBM file, XPM data, XPM file.
174 In addition, wxBitmap can load and save all formats that wxImage; see wxImage for
175 more info. Of course, you must have wxImage handlers loaded.
176
23324ae1
FM
177 @library{wxcore}
178 @category{gdi}
7c913512 179
23324ae1 180 @stdobjects
698d17c3 181 ::wxNullBitmap
7c913512 182
698d17c3 183 @see @ref overview_bitmap, @ref overview_bitmap_supportedformats,
de022e4f 184 wxDC::Blit, wxIcon, wxCursor, wxMemoryDC, wxImage, wxPixelData
23324ae1
FM
185*/
186class wxBitmap : public wxGDIObject
187{
188public:
23324ae1 189 /**
698d17c3
FM
190 Default constructor.
191
192 Constructs a bitmap object with no data; an assignment or another member
193 function such as Create() or LoadFile() must be called subsequently.
194 */
195 wxBitmap();
196
197 /**
198 Copy constructor, uses @ref overview_refcount "reference counting".
199 To make a real copy, you can use:
200
201 @code
202 wxBitmap newBitmap = oldBitmap.GetSubBitmap(
203 wxRect(0, 0, oldBitmap.GetWidth(), oldBitmap.GetHeight()));
204 @endcode
205 */
206 wxBitmap(const wxBitmap& bitmap);
207
8024723d
FM
208
209 /*
698d17c3
FM
210 Creates a bitmap from the given @a data which is interpreted in
211 platform-dependent manner.
212
213 @param data
214 Specifies the bitmap data in a platform-dependent format.
215 @param type
216 May be one of the ::wxBitmapType values and indicates which type of
217 bitmap does @a data contains. See the note in the class
218 detailed description.
219 @param width
220 Specifies the width of the bitmap.
221 @param height
222 Specifies the height of the bitmap.
223 @param depth
224 Specifies the depth of the bitmap.
225 If this is omitted, the display depth of the screen is used.
8024723d 226 wxBitmap(const void* data, int type, int width, int height, int depth = -1);
698d17c3 227
698d17c3 228
1413ac04 229 NOTE: this ctor is not implemented by all ports, is somewhat useless
8024723d
FM
230 without further description of the "data" supported formats and
231 uses 'int type' instead of wxBitmapType, so don't document it.
698d17c3 232 */
698d17c3
FM
233
234 /**
235 Creates a bitmap from the given array @a bits.
236 You should only use this function for monochrome bitmaps (depth 1) in
237 portable programs: in this case the bits parameter should contain an XBM image.
238
239 For other bit depths, the behaviour is platform dependent: under Windows,
240 the data is passed without any changes to the underlying CreateBitmap() API.
8024723d
FM
241 Under other platforms, only monochrome bitmaps may be created using this
242 constructor and wxImage should be used for creating colour bitmaps from
243 static data.
698d17c3 244
7c913512 245 @param bits
4cc4bfaf 246 Specifies an array of pixel values.
7c913512 247 @param width
4cc4bfaf 248 Specifies the width of the bitmap.
7c913512 249 @param height
4cc4bfaf 250 Specifies the height of the bitmap.
7c913512 251 @param depth
698d17c3 252 Specifies the depth of the bitmap.
8024723d 253 If this is omitted, then a value of 1 (monochrome bitmap) is used.
698d17c3
FM
254 */
255 wxBitmap(const char bits[], int width, int height, int depth = 1);
256
257 /**
8024723d
FM
258 Creates a new bitmap. A depth of ::wxBITMAP_SCREEN_DEPTH indicates the
259 depth of the current screen or visual.
1413ac04 260
8024723d 261 Some platforms only support 1 for monochrome and ::wxBITMAP_SCREEN_DEPTH for
698d17c3
FM
262 the current colour setting.
263
264 A depth of 32 including an alpha channel is supported under MSW, Mac and GTK+.
265 */
8024723d 266 wxBitmap(int width, int height, int depth = wxBITMAP_SCREEN_DEPTH);
698d17c3
FM
267
268 /**
269 Creates a bitmap from XPM data.
270 */
271 wxBitmap(const char* const* bits);
272
273 /**
274 Loads a bitmap from a file or resource.
275
7c913512 276 @param name
698d17c3
FM
277 This can refer to a resource name or a filename under MS Windows and X.
278 Its meaning is determined by the @a type parameter.
7c913512 279 @param type
698d17c3
FM
280 May be one of the ::wxBitmapType values and indicates which type of
281 bitmap should be loaded. See the note in the class detailed description.
cbea3ec6
FM
282 Note that the wxBITMAP_DEFAULT_TYPE constant has different value under
283 different wxWidgets ports. See the bitmap.h header for the value it takes
284 for a specific port.
698d17c3 285
4cc4bfaf 286 @see LoadFile()
23324ae1 287 */
cbea3ec6 288 wxBitmap(const wxString& name, wxBitmapType type = wxBITMAP_DEFAULT_TYPE);
698d17c3
FM
289
290 /**
8024723d
FM
291 Creates this bitmap object from the given image.
292 This has to be done to actually display an image as you cannot draw an
293 image directly on a window.
698d17c3
FM
294
295 The resulting bitmap will use the provided colour depth (or that of the
8024723d
FM
296 current system if depth is ::wxBITMAP_SCREEN_DEPTH) which entails that a
297 colour reduction may take place.
698d17c3
FM
298
299 When in 8-bit mode (PseudoColour mode), the GTK port will use a color cube
300 created on program start-up to look up colors. This ensures a very fast conversion,
301 but the image quality won't be perfect (and could be better for photo images using
302 more sophisticated dithering algorithms).
303
304 On Windows, if there is a palette present (set with SetPalette), it will be
305 used when creating the wxBitmap (most useful in 8-bit display mode).
306 On other platforms, the palette is currently ignored.
307
308 @param img
309 Platform-independent wxImage object.
310 @param depth
311 Specifies the depth of the bitmap.
312 If this is omitted, the display depth of the screen is used.
313 */
8024723d 314 wxBitmap(const wxImage& img, int depth = wxBITMAP_SCREEN_DEPTH);
23324ae1
FM
315
316 /**
317 Destructor.
698d17c3
FM
318 See @ref overview_refcount_destruct for more info.
319
23324ae1
FM
320 If the application omits to delete the bitmap explicitly, the bitmap will be
321 destroyed automatically by wxWidgets when the application exits.
698d17c3
FM
322
323 @warning
23324ae1
FM
324 Do not delete a bitmap that is selected into a memory device context.
325 */
d2aa927a 326 virtual ~wxBitmap();
23324ae1
FM
327
328 /**
329 Adds a handler to the end of the static list of format handlers.
698d17c3 330
7c913512 331 @param handler
4cc4bfaf
FM
332 A new bitmap format handler object. There is usually only one instance
333 of a given handler class in an application session.
698d17c3 334
4cc4bfaf 335 @see wxBitmapHandler
23324ae1
FM
336 */
337 static void AddHandler(wxBitmapHandler* handler);
338
339 /**
340 Deletes all bitmap handlers.
23324ae1
FM
341 This function is called by wxWidgets on exit.
342 */
343 static void CleanUpHandlers();
344
345 /**
346 Creates an image from a platform-dependent bitmap. This preserves
347 mask information so that bitmaps and images can be converted back
348 and forth without loss in that respect.
349 */
1413ac04 350 virtual wxImage ConvertToImage() const;
23324ae1
FM
351
352 /**
353 Creates the bitmap from an icon.
354 */
1413ac04 355 virtual bool CopyFromIcon(const wxIcon& icon);
23324ae1 356
698d17c3
FM
357 /**
358 Creates a fresh bitmap.
359 If the final argument is omitted, the display depth of the screen is used.
360
361 This overload works on all platforms.
362 */
1413ac04 363 virtual bool Create(int width, int height, int depth = wxBITMAP_SCREEN_DEPTH);
698d17c3 364
8024723d 365 /*
23324ae1 366 Creates a bitmap from the given data, which can be of arbitrary type.
698d17c3
FM
367
368 @param data
369 Data whose type depends on the value of type.
370 @param type
371 A bitmap type identifier; see ::wxBitmapType for the list of values.
372 See the note in the class detailed description for more info.
7c913512 373 @param width
4cc4bfaf 374 The width of the bitmap in pixels.
7c913512 375 @param height
4cc4bfaf 376 The height of the bitmap in pixels.
7c913512 377 @param depth
4cc4bfaf 378 The depth of the bitmap in pixels. If this is -1, the screen depth is used.
698d17c3 379
d29a9a8a 380 @return @true if the call succeeded, @false otherwise.
698d17c3
FM
381
382 This overload depends on the @a type of data.
698d17c3 383
7c913512 384 virtual bool Create(const void* data, int type, int width,
698d17c3 385 int height, int depth = -1);
23324ae1 386
8024723d
FM
387 NOTE: leave this undoc for the same reason of the relative ctor.
388 */
389
23324ae1 390 /**
698d17c3
FM
391 Finds the handler with the given @a name.
392
d29a9a8a 393 @return A pointer to the handler if found, @NULL otherwise.
698d17c3
FM
394 */
395 static wxBitmapHandler* FindHandler(const wxString& name);
396
397 /**
398 Finds the handler associated with the given @a extension and @a type.
399
7c913512 400 @param extension
698d17c3 401 The file extension, such as "bmp" (without the dot).
7c913512 402 @param bitmapType
698d17c3
FM
403 The bitmap type managed by the handler, see ::wxBitmapType.
404
d29a9a8a 405 @return A pointer to the handler if found, @NULL otherwise.
23324ae1 406 */
7c913512
FM
407 static wxBitmapHandler* FindHandler(const wxString& extension,
408 wxBitmapType bitmapType);
698d17c3
FM
409
410 /**
411 Finds the handler associated with the given bitmap type.
412
413 @param bitmapType
414 The bitmap type managed by the handler, see ::wxBitmapType.
415
d29a9a8a 416 @return A pointer to the handler if found, @NULL otherwise.
698d17c3
FM
417
418 @see wxBitmapHandler
419 */
420
7c913512 421 static wxBitmapHandler* FindHandler(wxBitmapType bitmapType);
23324ae1
FM
422
423 /**
8024723d
FM
424 Gets the colour depth of the bitmap.
425 A value of 1 indicates a monochrome bitmap.
23324ae1 426 */
1413ac04 427 virtual int GetDepth() const;
23324ae1
FM
428
429 /**
430 Returns the static list of bitmap format handlers.
698d17c3 431
4cc4bfaf 432 @see wxBitmapHandler
23324ae1
FM
433 */
434 static wxList GetHandlers();
435
436 /**
437 Gets the height of the bitmap in pixels.
438 */
1413ac04 439 virtual int GetHeight() const;
23324ae1
FM
440
441 /**
442 Gets the associated mask (if any) which may have been loaded from a file
443 or set for the bitmap.
698d17c3 444
4cc4bfaf 445 @see SetMask(), wxMask
23324ae1 446 */
1413ac04 447 virtual wxMask* GetMask() const;
23324ae1
FM
448
449 /**
450 Gets the associated palette (if any) which may have been loaded from a file
451 or set for the bitmap.
698d17c3 452
4cc4bfaf 453 @see wxPalette
23324ae1 454 */
1413ac04 455 virtual wxPalette* GetPalette() const;
23324ae1
FM
456
457 /**
458 Returns a sub bitmap of the current one as long as the rect belongs entirely to
459 the bitmap. This function preserves bit depth and mask information.
460 */
1413ac04 461 virtual wxBitmap GetSubBitmap(const wxRect& rect) const;
23324ae1
FM
462
463 /**
464 Gets the width of the bitmap in pixels.
698d17c3 465
4cc4bfaf 466 @see GetHeight()
23324ae1 467 */
1413ac04 468 virtual int GetWidth() const;
23324ae1
FM
469
470 /**
471 Adds the standard bitmap format handlers, which, depending on wxWidgets
698d17c3
FM
472 configuration, can be handlers for Windows bitmap, Windows bitmap resource,
473 and XPM.
474
23324ae1 475 This function is called by wxWidgets on startup.
698d17c3 476
4cc4bfaf 477 @see wxBitmapHandler
23324ae1
FM
478 */
479 static void InitStandardHandlers();
480
481 /**
482 Adds a handler at the start of the static list of format handlers.
698d17c3 483
7c913512 484 @param handler
4cc4bfaf
FM
485 A new bitmap format handler object. There is usually only one instance
486 of a given handler class in an application session.
698d17c3 487
4cc4bfaf 488 @see wxBitmapHandler
23324ae1
FM
489 */
490 static void InsertHandler(wxBitmapHandler* handler);
491
492 /**
493 Returns @true if bitmap data is present.
494 */
328f5751 495 bool IsOk() const;
23324ae1
FM
496
497 /**
498 Loads a bitmap from a file or resource.
698d17c3 499
7c913512 500 @param name
4cc4bfaf 501 Either a filename or a Windows resource name.
698d17c3 502 The meaning of name is determined by the @a type parameter.
7c913512 503 @param type
698d17c3
FM
504 One of the ::wxBitmapType values; see the note in the class
505 detailed description.
cbea3ec6
FM
506 Note that the wxBITMAP_DEFAULT_TYPE constant has different value under
507 different wxWidgets ports. See the bitmap.h header for the value it takes
508 for a specific port.
698d17c3 509
d29a9a8a 510 @return @true if the operation succeeded, @false otherwise.
698d17c3 511
23324ae1 512 @remarks A palette may be associated with the bitmap if one exists
4cc4bfaf
FM
513 (especially for colour Windows bitmaps), and if the
514 code supports it. You can check if one has been created
698d17c3
FM
515 by using the GetPalette() member.
516
4cc4bfaf 517 @see SaveFile()
23324ae1 518 */
cbea3ec6 519 virtual bool LoadFile(const wxString& name, wxBitmapType type = wxBITMAP_DEFAULT_TYPE);
23324ae1
FM
520
521 /**
698d17c3
FM
522 Finds the handler with the given name, and removes it.
523 The handler is not deleted.
524
7c913512 525 @param name
4cc4bfaf 526 The handler name.
698d17c3 527
d29a9a8a 528 @return @true if the handler was found and removed, @false otherwise.
698d17c3 529
4cc4bfaf 530 @see wxBitmapHandler
23324ae1
FM
531 */
532 static bool RemoveHandler(const wxString& name);
533
534 /**
535 Saves a bitmap in the named file.
698d17c3 536
7c913512 537 @param name
4cc4bfaf 538 A filename. The meaning of name is determined by the type parameter.
7c913512 539 @param type
698d17c3
FM
540 One of the ::wxBitmapType values; see the note in the class
541 detailed description.
7c913512 542 @param palette
4cc4bfaf 543 An optional palette used for saving the bitmap.
698d17c3 544
d29a9a8a 545 @return @true if the operation succeeded, @false otherwise.
698d17c3 546
23324ae1 547 @remarks Depending on how wxWidgets has been configured, not all formats
4cc4bfaf 548 may be available.
698d17c3 549
4cc4bfaf 550 @see LoadFile()
23324ae1 551 */
1413ac04
FM
552 virtual bool SaveFile(const wxString& name, wxBitmapType type,
553 const wxPalette* palette = NULL) const;
23324ae1
FM
554
555 /**
556 Sets the depth member (does not affect the bitmap data).
698d17c3
FM
557
558 @todo since these functions do not affect the bitmap data,
559 why they exist??
560
7c913512 561 @param depth
4cc4bfaf 562 Bitmap depth.
23324ae1 563 */
1413ac04 564 virtual void SetDepth(int depth);
23324ae1
FM
565
566 /**
567 Sets the height member (does not affect the bitmap data).
698d17c3 568
7c913512 569 @param height
4cc4bfaf 570 Bitmap height in pixels.
23324ae1 571 */
1413ac04 572 virtual void SetHeight(int height);
23324ae1
FM
573
574 /**
575 Sets the mask for this bitmap.
698d17c3 576
23324ae1 577 @remarks The bitmap object owns the mask once this has been called.
698d17c3 578
4cc4bfaf 579 @see GetMask(), wxMask
23324ae1 580 */
1413ac04 581 virtual void SetMask(wxMask* mask);
23324ae1
FM
582
583 /**
584 Sets the associated palette. (Not implemented under GTK+).
698d17c3 585
7c913512 586 @param palette
4cc4bfaf 587 The palette to set.
698d17c3 588
4cc4bfaf 589 @see wxPalette
23324ae1 590 */
1413ac04 591 virtual void SetPalette(const wxPalette& palette);
23324ae1
FM
592
593 /**
594 Sets the width member (does not affect the bitmap data).
698d17c3 595
7c913512 596 @param width
4cc4bfaf 597 Bitmap width in pixels.
23324ae1 598 */
1413ac04 599 virtual void SetWidth(int width);
23324ae1
FM
600};
601
e54c96f1 602/**
698d17c3 603 An empty wxBitmap object.
e54c96f1
FM
604*/
605wxBitmap wxNullBitmap;
606
607
608
609
23324ae1
FM
610/**
611 @class wxMask
7c913512 612
23324ae1 613 This class encapsulates a monochrome mask bitmap, where the masked area is
698d17c3
FM
614 black and the unmasked area is white.
615
616 When associated with a bitmap and drawn in a device context, the unmasked
617 area of the bitmap will be drawn, and the masked area will not be drawn.
7c913512 618
23324ae1
FM
619 @library{wxcore}
620 @category{gdi}
7c913512 621
e54c96f1 622 @see wxBitmap, wxDC::Blit, wxMemoryDC
23324ae1
FM
623*/
624class wxMask : public wxObject
625{
626public:
698d17c3
FM
627
628 /**
629 Default constructor.
630 */
631 wxMask();
632
23324ae1
FM
633 /**
634 Constructs a mask from a bitmap and a palette index that indicates the
698d17c3
FM
635 background.
636 Not yet implemented for GTK.
637
7c913512 638 @param bitmap
4cc4bfaf 639 A valid bitmap.
7c913512 640 @param index
4cc4bfaf 641 Index into a palette, specifying the transparency colour.
23324ae1 642 */
7c913512 643 wxMask(const wxBitmap& bitmap, int index);
698d17c3
FM
644
645 /**
646 Constructs a mask from a monochrome bitmap.
647
648 @beginWxPythonOnly
649 This is the default constructor for wxMask in wxPython.
650 @endWxPythonOnly
651 */
652 wxMask(const wxBitmap& bitmap);
653
654 /**
655 Constructs a mask from a bitmap and a colour that indicates the background.
656
657 @beginWxPythonOnly
658 wxPython has an alternate wxMask constructor matching this form called wxMaskColour.
659 @endWxPythonOnly
660 */
661 wxMask(const wxBitmap& bitmap, const wxColour& colour);
23324ae1
FM
662
663 /**
664 Destroys the wxMask object and the underlying bitmap data.
665 */
d2aa927a 666 virtual ~wxMask();
23324ae1 667
23324ae1
FM
668 /**
669 Constructs a mask from a bitmap and a palette index that indicates the
698d17c3
FM
670 background.
671 Not yet implemented for GTK.
672
7c913512 673 @param bitmap
4cc4bfaf 674 A valid bitmap.
7c913512 675 @param index
4cc4bfaf 676 Index into a palette, specifying the transparency colour.
23324ae1 677 */
698d17c3
FM
678 bool Create(const wxBitmap& bitmap, int index);
679
680 /**
681 Constructs a mask from a monochrome bitmap.
682 */
23324ae1 683 bool Create(const wxBitmap& bitmap);
698d17c3
FM
684
685 /**
686 Constructs a mask from a bitmap and a colour that indicates the background.
687 */
7c913512 688 bool Create(const wxBitmap& bitmap, const wxColour& colour);
23324ae1 689};
e54c96f1 690