icon.h
上传用户:hzhsqp
上传日期:2007-01-06
资源大小:1600k
文件大小:4k
源码类别:

IP电话/视频会议

开发平台:

Visual C++

  1. /*
  2.  * icon.h
  3.  *
  4.  * Standard icon class.
  5.  *
  6.  * Portable Windows Library
  7.  *
  8.  * Copyright (c) 1993-1998 Equivalence Pty. Ltd.
  9.  *
  10.  * The contents of this file are subject to the Mozilla Public License
  11.  * Version 1.0 (the "License"); you may not use this file except in
  12.  * compliance with the License. You may obtain a copy of the License at
  13.  * http://www.mozilla.org/MPL/
  14.  *
  15.  * Software distributed under the License is distributed on an "AS IS"
  16.  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
  17.  * the License for the specific language governing rights and limitations
  18.  * under the License.
  19.  *
  20.  * The Original Code is Portable Windows Library.
  21.  *
  22.  * The Initial Developer of the Original Code is Equivalence Pty. Ltd.
  23.  *
  24.  * Portions are Copyright (C) 1993 Free Software Foundation, Inc.
  25.  * All Rights Reserved.
  26.  *
  27.  * Contributor(s): ______________________________________.
  28.  *
  29.  * $Log: icon.h,v $
  30.  * Revision 1.16  1999/03/10 03:49:51  robertj
  31.  * More documentation adjustments.
  32.  *
  33.  * Revision 1.15  1999/03/09 08:01:48  robertj
  34.  * Changed comments for doc++ support (more to come).
  35.  *
  36.  * Revision 1.14  1998/09/23 06:23:48  robertj
  37.  * Added open source copyright license.
  38.  *
  39.  * Revision 1.13  1995/03/14 12:41:31  robertj
  40.  * Updated documentation to use HTML codes.
  41.  *
  42.  * Revision 1.12  1995/01/10  11:42:58  robertj
  43.  * Stuffed up constructor name.
  44.  *
  45.  * Revision 1.11  1994/12/21  11:53:04  robertj
  46.  * Documentation and variable normalisation.
  47.  *
  48.  * Revision 1.10  1994/09/25  10:38:28  robertj
  49.  * Moved GetDimensions() to platform dependent code.
  50.  *
  51.  * Revision 1.9  1994/08/23  11:32:52  robertj
  52.  * Oops
  53.  *
  54.  * Revision 1.8  1994/08/22  00:46:48  robertj
  55.  * Added pragma fro GNU C++ compiler.
  56.  *
  57.  * Revision 1.7  1994/06/25  11:55:15  robertj
  58.  * Unix version synchronisation.
  59.  *
  60.  * Revision 1.6  1994/01/03  04:42:23  robertj
  61.  * Mass changes to common container classes and interactors etc etc etc.
  62.  *
  63.  * Revision 1.5  1993/12/31  06:42:49  robertj
  64.  * Made inlines optional for debugging purposes.
  65.  * Added ImgIcon class.
  66.  *
  67.  * Revision 1.4  1993/12/01  16:09:05  robertj
  68.  * Windows NT port.
  69.  *
  70.  * Revision 1.3  1993/08/21  01:50:33  robertj
  71.  * Made Clone() function optional, default will assert if called.
  72.  *
  73.  * Revision 1.2  1993/07/14  12:49:16  robertj
  74.  * Fixed RCS keywords.
  75.  *
  76.  */
  77. #define _PICON
  78. #ifdef __GNUC__
  79. #pragma interface
  80. #endif
  81. /**This class represents the sepcification for a platform specific icon. This
  82.    is typically used to indicate the presence of some modal object in the
  83.    user interface. For instance, an instance of an icon is attached to every
  84.    Ref{PTitledWindow} class and is used whenever the that interactor is made
  85.    iconic.
  86.    An icon consists of a small pixel image that interacts with the screen to
  87.    yield transparent parts and or inverted parts as well as fixed colour
  88.    image parts.
  89.  */
  90. class PIcon : public PImgIcon
  91. {
  92.   PCONTAINERINFO(PIcon, PImgIcon);
  93.   public:
  94.     /** Create icon. */
  95.     PIcon(
  96.       PRESOURCE_ID resID    /// Resource identifier constant.
  97.     );
  98.       
  99.    /**Create a cursor from the raw pixel images. The dimensions of the pixel
  100.        images must be the same as determined by the
  101.        Ref{PApplication::GetIconSize()} function. The and mask must also have
  102.        a depth of 1 bit per pixel. If the xor mask is also 1 bit per pixel then
  103.        it operates as a logical xor on data. If it is a colour pix map then
  104.        the actual colour is placed at that location.
  105.        Pixels on the screen are determined by applying the and mask to it, then
  106.        the xor mask. Thus pixels can be transparent, inverted, cleared or set
  107.        as required.
  108.      */
  109.     PIcon(
  110.       const PPixelImage & andMask,  /// Mask for pixels in the icon.
  111.       const PPixelImage & xorMask   /// Value for pixels in the icon.
  112.     );
  113.     /**@name Overrides from class PObject */
  114.    /**Determine if the two icons are the same. Note that this is different
  115.        from having two icons that merely {bf look} the same. They must be
  116.        references to the same icon or if loaded from resources, the same
  117.        resource ID.
  118.        @return
  119.        #EqualTo# if reference the same icon,
  120.        #GreaterThan# if different.
  121.      */
  122.     virtual Comparison Compare(
  123.       const PObject & obj   /// Other icon to compare against.
  124.     ) const;
  125. #ifdef DOC_PLUS_PLUS
  126. };
  127. #endif
  128. // Class declaration continued in platform specific header file ///////////////