![]() |
Main Page
Class Hierarchy
Alphabetical List
Compound List
File List
Compound Members
![]() |
00001 /******************************************************************************** 00002 * * 00003 * Device Context (DC) helper routines * 00004 * * 00005 ********************************************************************************* 00006 * Copyright (C) 2003 by Mathew Robertson. All Rights Reserved. * 00007 ********************************************************************************* 00008 * This library is free software; you can redistribute it and/or * 00009 * modify it under the terms of the GNU Lesser General Public * 00010 * License as published by the Free Software Foundation; either * 00011 * version 2.1 of the License, or (at your option) any later version. * 00012 * * 00013 * This library is distributed in the hope that it will be useful, * 00014 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 00015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * 00016 * Lesser General Public License for more details. * 00017 * * 00018 * You should have received a copy of the GNU Lesser General Public * 00019 * License along with this library; if not, write to the Free Software * 00020 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * 00021 ********************************************************************************/ 00022 #ifndef FXDCHELPER_H 00023 #define FXDCHELPER_H 00024 00025 namespace FXEX { 00026 00027 /** 00028 * FXDCHelper provides drawing support routines which can be used in your custom widgets. 00029 * eg drawing various styles of rectangles. 00030 * 00031 * It takes frame style options (FRAME_*) for specifying the specific types of frame styles 00032 */ 00033 class FXAPI FXDCHelper { 00034 00035 protected: 00036 FXApp *app; // application 00037 FXuint options; // options 00038 FXDC *device; // the device to be drawn into 00039 FXColor baseColor; // Base color 00040 FXColor hiliteColor; // Highlight color 00041 FXColor shadowColor; // Shadow color 00042 FXColor borderColor; // Border color 00043 FXint border; // Border width 00044 00045 public: // we can draw these routines 00046 00047 /// various rectangles that can be drawn 00048 void drawBorderRectangle(FXint x,FXint y,FXint w,FXint h); 00049 void drawRaisedRectangle(FXint x,FXint y,FXint w,FXint h); 00050 void drawSunkenRectangle(FXint x,FXint y,FXint w,FXint h); 00051 void drawRidgeRectangle(FXint x,FXint y,FXint w,FXint h); 00052 void drawGrooveRectangle(FXint x,FXint y,FXint w,FXint h); 00053 void drawDoubleRaisedRectangle(FXint x,FXint y,FXint w,FXint h); 00054 void drawDoubleSunkenRectangle(FXint x,FXint y,FXint w,FXint h); 00055 void drawFocusRectangle(FXint x,FXint y,FXint w,FXint h); 00056 void drawFrame(FXint x,FXint y,FXint w,FXint h); 00057 00058 /// fill region 00059 void fillRegion(const FXRegion& region); 00060 00061 /// fill an arc centered at x,y 00062 /// width,height from center 00063 /// start-angle,end-angle in degrees from 12 oclock, clockwise 00064 void fillArc(FXint x,FXint y,FXint w,FXint h,FXfloat start,FXfloat end); 00065 00066 public: 00067 /// Construct packer layout manager 00068 FXDCHelper(FXApp *a,FXDC *dc=NULL,FXuint opts=0); 00069 00070 /// Construct based on existing helper 00071 FXDCHelper(const FXDCHelper& h); 00072 00073 /// assign from other DC helper 00074 FXDCHelper &operator=(const FXDCHelper& h); 00075 00076 /// get application 00077 FXApp* getApp() { return app; } 00078 00079 /// set's the current DC 00080 void setDC(FXDC *dc) { device=dc; } 00081 00082 /// get the curretn DC 00083 FXDC *getDC() const { return device; } 00084 00085 /// Change frame style 00086 void setFrameStyle(FXuint style); 00087 00088 /// Get current frame style 00089 FXuint getFrameStyle() const; 00090 00091 /// Get border width 00092 FXint getBorderWidth() const { return border; } 00093 00094 /// Change highlight color 00095 void setHiliteColor(FXColor clr); 00096 00097 /// Get highlight color 00098 FXColor getHiliteColor() const { return hiliteColor; } 00099 00100 /// Change shadow color 00101 void setShadowColor(FXColor clr); 00102 00103 /// Get shadow color 00104 FXColor getShadowColor() const { return shadowColor; } 00105 00106 /// Change border color 00107 void setBorderColor(FXColor clr); 00108 00109 /// Get border color 00110 FXColor getBorderColor() const { return borderColor; } 00111 00112 /// Change base gui color 00113 void setBaseColor(FXColor clr); 00114 00115 /// Get base gui color 00116 FXColor getBaseColor() const { return baseColor; } 00117 00118 /// dtor 00119 virtual ~FXDCHelper(); 00120 }; 00121 00122 } // namespace FXEX 00123 #endif // FXDCHELPER_H 00124