00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00023 #ifndef __vtkKWIcon_h
00024 #define __vtkKWIcon_h
00025
00026 #include "vtkObject.h"
00027 #include "vtkKWWidgets.h"
00028
00029 class vtkColorTransferFunction;
00030 class vtkImageData;
00031
00032 class KWWidgets_EXPORT vtkKWIcon : public vtkObject
00033 {
00034
00035 public:
00036 static vtkKWIcon* New();
00037 vtkTypeRevisionMacro(vtkKWIcon,vtkObject);
00038 void PrintSelf(ostream& os, vtkIndent indent);
00039 void DeepCopy(vtkKWIcon *p);
00040
00041
00043
00044 enum {
00045 IconAngleTool = 14,
00046 IconBiDimensionalTool = 34,
00047 IconBoundingBox = 13,
00048 IconBrowserBack = 71,
00049 IconBrowserForward = 72,
00050 IconBrowserUp = 70,
00051 IconBugMini = 200,
00052 IconCalculator = 79,
00053 IconCamera = 19,
00054 IconCameraMini = 175,
00055 IconCdRom = 75,
00056 IconColorAlphaSquares = 216,
00057 IconColorBarAnnotation = 12,
00058 IconColorSquares = 18,
00059 IconColumns = 220,
00060 IconCompress = 211,
00061 IconConnection = 1,
00062 IconContourSegment = 33,
00063 IconContourTool = 16,
00064 IconContrast = 212,
00065 IconCornerAnnotation = 11,
00066 IconCropTool = 22,
00067 IconDistanceTool = 15,
00068 IconDocument = 9,
00069 IconDocumentRGBColor = 209,
00070 IconDocumentVolumeProperty = 177,
00071 IconDocumentWindowLevel = 176,
00072 IconEditContrast = 225,
00073 IconEditVolumeProperties = 226,
00074 IconEmpty16x16 = 6,
00075 IconEmpty1x1 = 10,
00076 IconError = 2,
00077 IconErrorMini = 3,
00078 IconErrorRedMini = 4,
00079 IconExpand = 5,
00080 IconExpandLeftMini = 180,
00081 IconExpandMini = 23,
00082 IconExpandRightMini = 178,
00083 IconExpandUpMini = 179,
00084 IconEye = 17,
00085 IconFavorites = 67,
00086 IconFileDelete = 73,
00087 IconFileOpen = 8,
00088 IconFloppy = 7,
00089 IconFloppyDrive = 77,
00090 IconFolder = 20,
00091 IconFolder32 = 65,
00092 IconFolderNew = 74,
00093 IconFolderOpen = 21,
00094 IconFolderXP = 66,
00095 IconGrayscaleSquares = 218,
00096 IconGridLinear = 40,
00097 IconGridLog = 41,
00098 IconHSVDiagram = 207,
00099 IconHardDrive = 76,
00100 IconHeaderAnnotation = 50,
00101 IconHelpBubble = 60,
00102 IconInfoMini = 61,
00103 IconInterpolationBilinear = 215,
00104 IconInterpolationNearest = 217,
00105 IconLock = 62,
00106 IconMagGlass = 63,
00107 IconMinus = 64,
00108 IconMove = 80,
00109 IconMoveH = 81,
00110 IconMoveV = 82,
00111 IconNetDrive = 78,
00112 IconNoIcon = 0,
00113 IconObliqueProbe = 133,
00114 IconOrientationCubeAnnotation = 83,
00115 IconPanHand = 84,
00116 IconParallelProjection = 213,
00117 IconPerspectiveProjection = 214,
00118 IconPlus = 100,
00119 IconPointFinger = 90,
00120 IconPresetAdd = 94,
00121 IconPresetApply = 95,
00122 IconPresetDelete = 96,
00123 IconPresetEmail = 97,
00124 IconPresetFilter = 237,
00125 IconPresetLoad = 210,
00126 IconPresetLocate = 98,
00127 IconPresetNext = 173,
00128 IconPresetPrevious = 174,
00129 IconPresetRewind = 238,
00130 IconPresetUpdate = 99,
00131 IconQuestion = 101,
00132 IconReload = 102,
00133 IconResetCamera = 222,
00134 IconResetContrast = 223,
00135 IconRotate = 105,
00136 IconRows = 219,
00137 IconScaleBarAnnotation = 106,
00138 IconSeedTool = 107,
00139 IconShrink = 103,
00140 IconSideAnnotation = 110,
00141 IconSmallCounterBlue1 = 227,
00142 IconSmallCounterBlue2 = 228,
00143 IconSmallCounterBlue3 = 229,
00144 IconSmallCounterBlue4 = 230,
00145 IconSmallCounterBlue5 = 231,
00146 IconSmallCounterBlue6 = 232,
00147 IconSmallCounterBlue7 = 233,
00148 IconSmallCounterBlue8 = 234,
00149 IconSmallCounterBlue9 = 235,
00150 IconSmallCounterBlue9Plus = 236,
00151 IconSpinDown = 111,
00152 IconSpinLeft = 112,
00153 IconSpinRight = 113,
00154 IconSpinUp = 114,
00155 IconStandardView = 224,
00156 IconStopwatch = 104,
00157 IconTestTube = 190,
00158 IconTime = 208,
00159 IconTransportBeginning = 120,
00160 IconTransportEnd = 121,
00161 IconTransportFastForward = 122,
00162 IconTransportFastForwardToKey = 123,
00163 IconTransportLoop = 124,
00164 IconTransportPause = 125,
00165 IconTransportPlay = 126,
00166 IconTransportPlayBackward = 201,
00167 IconTransportPlayToKey = 127,
00168 IconTransportRewind = 128,
00169 IconTransportRewindToKey = 129,
00170 IconTransportStop = 130,
00171 IconTrashcan = 131,
00172 IconTreeClose = 150,
00173 IconTreeOpen = 151,
00174 IconWarning = 170,
00175 IconWarningMini = 171,
00176 IconWindowLevel = 172,
00178
00179 IconNuvola16x16ActionsColorPicker = 1022,
00180 IconNuvola16x16ActionsConfigure = 1000,
00181 IconNuvola16x16ActionsDecrypted = 1001,
00182 IconNuvola16x16ActionsEditCopy = 1023,
00183 IconNuvola16x16ActionsEditCut = 1024,
00184 IconNuvola16x16ActionsEditPaste = 1025,
00185 IconNuvola16x16ActionsEncrypted = 1019,
00186 IconNuvola16x16ActionsExit = 1002,
00187 IconNuvola16x16ActionsFileClose = 1003,
00188 IconNuvola16x16ActionsFileOpen = 1004,
00189 IconNuvola16x16ActionsFilePrint = 1005,
00190 IconNuvola16x16ActionsFileSave = 1006,
00191 IconNuvola16x16ActionsHelp = 1007,
00192 IconNuvola16x16ActionsHistory = 1026,
00193 IconNuvola16x16ActionsKAlarm = 1027,
00194 IconNuvola16x16ActionsLedBlue = 1031,
00195 IconNuvola16x16ActionsLedGreen = 1032,
00196 IconNuvola16x16ActionsLedLightBlue = 1033,
00197 IconNuvola16x16ActionsLedLightGreen = 1034,
00198 IconNuvola16x16ActionsLedOrange = 1035,
00199 IconNuvola16x16ActionsLedPurple = 1036,
00200 IconNuvola16x16ActionsLedRed = 1037,
00201 IconNuvola16x16ActionsLedYellow = 1038,
00202 IconNuvola16x16ActionsMailGeneric = 1008,
00203 IconNuvola16x16ActionsMessage = 1009,
00204 IconNuvola16x16ActionsMessageBoxCritical = 1010,
00205 IconNuvola16x16ActionsMessageBoxInfo = 1011,
00206 IconNuvola16x16ActionsMessageBoxWarning = 1012,
00207 IconNuvola16x16ActionsNo = 1013,
00208 IconNuvola16x16ActionsRotate = 1014,
00209 IconNuvola16x16ActionsStop = 1015,
00210 IconNuvola16x16ActionsThumbnail = 1016,
00211 IconNuvola16x16ActionsViewBottom = 1018,
00212 IconNuvola16x16ActionsViewFullScreen = 1020,
00213 IconNuvola16x16ActionsViewLeftRight = 1028,
00214 IconNuvola16x16ActionsViewMag = 1017,
00215 IconNuvola16x16ActionsViewRight = 1021,
00216 IconNuvola16x16ActionsViewTopBottom = 1029,
00217 IconNuvola16x16ActionsWindowNew = 1030,
00218 IconNuvola16x16AppsArk = 1300,
00219 IconNuvola16x16AppsBug = 1301,
00220 IconNuvola16x16AppsEmail = 1302,
00221 IconNuvola16x16AppsError = 1303,
00222 IconNuvola16x16AppsKeyboard = 1304,
00223 IconNuvola16x16AppsKTimer = 1305,
00224 IconNuvola16x16DevicesCamera = 1600,
00225 IconNuvola16x16FilesystemsFolderInbox = 1903,
00226 IconNuvola16x16FilesystemsFolderOutbox = 1904,
00227 IconNuvola16x16FilesystemsTrashcanEmpty = 1901,
00228 IconNuvola16x16FilesystemsTrashcanFull = 1902,
00229
00230 IconNuvola22x22ActionsHelp = 3000,
00231 IconNuvola22x22ActionsMessageBoxInfo = 3001,
00232 IconNuvola22x22ActionsMisc = 3002,
00233 IconNuvola22x22ActionsWizard = 3003,
00234 IconNuvola22x22AppsDesigner = 3300,
00235 IconNuvola22x22DevicesCamera = 3600,
00236 IconNuvola22x22FilesystemsFolderBlue = 3900,
00237
00238 IconNuvola48x48ActionsMessageBoxCritical = 5001,
00239 IconNuvola48x48ActionsMessageBoxInfo = 5002,
00240 IconNuvola48x48ActionsMessageBoxWarning = 5003,
00241 IconNuvola48x48ActionsHelp = 5004,
00242 IconNuvola48x48ActionsHistory = 5000,
00243 IconNuvola48x48AppsDownloadManager = 5300,
00244 IconNuvola48x48DevicesMouse = 5600,
00245 IconNuvola48x48FilesystemsFolderBlue = 5900,
00246
00247 IconCrystalProject16x16Actions14LayerDeletelayer = 10000,
00248 IconCrystalProject16x16Actions14LayerNovisible = 10001,
00249 IconCrystalProject16x16Actions14LayerVisible = 10002,
00250 IconCrystalProject16x16ActionsJabberOnline = 10003,
00251 IconCrystalProject16x16ActionsRotate = 10004,
00252 IconCrystalProject16x16AppsCookie = 10300,
00253 IconCrystalProject16x16AppsTutorials = 10301,
00254
00255 IconSilkAccept = 20044,
00256 IconSilkAdd = 20045,
00257 IconSilkApplicationXpTerminal = 20000,
00258 IconSilkArrowRefresh = 20001,
00259 IconSilkAttach = 20002,
00260 IconSilkBinClosed = 20003,
00261 IconSilkBug = 20004,
00262 IconSilkBulletToggleMinus = 20056,
00263 IconSilkBulletTogglePlus = 20057,
00264 IconSilkCamera = 20005,
00265 IconSilkCancel = 20046,
00266 IconSilkChartCurve = 20006,
00267 IconSilkChartLine = 20007,
00268 IconSilkChartOrganisation = 20008,
00269 IconSilkChartPie = 20009,
00270 IconSilkClock = 20010,
00271 IconSilkCog = 20011,
00272 IconSilkColorSwatch = 20012,
00273 IconSilkColorWheel = 20013,
00274 IconSilkCompress = 20014,
00275 IconSilkCross = 20047,
00276 IconSilkCut = 20048,
00277 IconSilkDate = 20015,
00278 IconSilkDelete = 20049,
00279 IconSilkDisk = 20016,
00280 IconSilkDoorIn = 20017,
00281 IconSilkDoorOut = 20018,
00282 IconSilkEmail = 20019,
00283 IconSilkExclamation = 20020,
00284 IconSilkEye = 20021,
00285 IconSilkFilm = 20022,
00286 IconSilkHelp = 20023,
00287 IconSilkHourglass = 20024,
00288 IconSilkInformation = 20025,
00289 IconSilkKey = 20026,
00290 IconSilkLink = 20027,
00291 IconSilkLock = 20028,
00292 IconSilkMagnifier = 20029,
00293 IconSilkPaintCan = 20031,
00294 IconSilkPaintbrush = 20030,
00295 IconSilkPastePlain = 20050,
00296 IconSilkPill = 20032,
00297 IconSilkPlugin = 20033,
00298 IconSilkStar = 20034,
00299 IconSilkStop = 20035,
00300 IconSilkTelephone = 20051,
00301 IconSilkTextAllCaps = 20052,
00302 IconSilkTextBold = 20053,
00303 IconSilkTextItalic = 20054,
00304 IconSilkTextUnderline = 20055,
00305 IconSilkThumbDown = 20036,
00306 IconSilkThumbUp = 20037,
00307 IconSilkTick = 20038,
00308 IconSilkTime = 20039,
00309 IconSilkWrench = 20040,
00310 IconSilkZoom = 20041,
00311 IconSilkZoomIn = 20042,
00312 IconSilkZoomOut = 20043,
00313
00314 LastIcon
00315 };
00316
00317
00319 virtual void SetImage(int predefined_icon_index);
00320
00322 virtual void SetImage(vtkKWIcon*);
00323
00326 virtual void SetImage(vtkImageData*);
00327
00329
00334 enum
00335 {
00336 ImageOptionFlipVertical = 1
00337 };
00338
00339 void SetImage(const unsigned char* data,
00340 int width, int height,
00341 int pixel_size,
00342 unsigned long buffer_length = 0,
00343 int options = 0);
00345
00347
00350 enum
00351 {
00352 ImageOptionDrawBorder = 1,
00353 ImageOptionDrawDoubleBorder = 2,
00354 ImageOptionDrawVertically = 4
00355 };
00356
00357 virtual int SetImageToGradient(vtkColorTransferFunction *ctf,
00358 int width, int height,
00359 int options = 0);
00360 virtual int SetImageToRGBGradient(double r1, double g1, double b1,
00361 double r2, double g2, double b2,
00362 int width, int height,
00363 int options = 0);
00364 virtual int SetImageToSolidRGBColor(double r, double g, double b,
00365 int width, int height,
00366 int options = 0);
00368
00370 virtual const unsigned char* GetData();
00371
00373
00374 vtkGetMacro(Width, int);
00376
00378
00379 vtkGetMacro(Height, int);
00381
00383
00384 vtkGetMacro(PixelSize, int);
00386
00389 virtual void Fade(double factor);
00390
00392 virtual void SetHue(double hue);
00393
00395
00398 virtual void Flatten(double r, double g, double b);
00399 virtual void Flatten(double rgb[3])
00400 { this->Flatten(rgb[0], rgb[1], rgb[2]); };
00402
00404
00407 virtual int Compose(vtkKWIcon *icon);
00408 virtual int Compose(int icon_index);
00410
00412
00415 virtual int TrimTop();
00416 virtual int TrimRight();
00418
00420
00425 enum
00426 {
00427 PositionInCanvasCenter = 0,
00428 PositionInCanvasNorthWest = 9,
00429 PositionInCanvasNorth = 1,
00430 PositionInCanvasNorthEast = 3,
00431 PositionInCanvasEast = 2,
00432 PositionInCanvasSouthEast = 6,
00433 PositionInCanvasSouth = 4,
00434 PositionInCanvasSouthWest = 12,
00435 PositionInCanvasWest = 8
00436 };
00437
00438 virtual int ResizeCanvas(
00439 int resized_width, int resized_height, int position);
00441
00446 virtual int ResampleCanvas(int resampled_width, int resampled_height);
00447
00451 virtual int FitCanvas(int fit_width, int fit_height);
00452
00453
00454
00455 protected:
00456 vtkKWIcon();
00457 ~vtkKWIcon();
00458
00460
00461 void SetData(const unsigned char* data,
00462 int width, int height,
00463 int pixel_size,
00464 int options = 0);
00466
00467 unsigned char* Data;
00468 int Width;
00469 int Height;
00470 int PixelSize;
00471
00472
00473
00474 private:
00475 vtkKWIcon(const vtkKWIcon&);
00476 void operator=(const vtkKWIcon&);
00477 };
00478
00479 #endif
00480
00481
00482
00483