|
Main Page
Class Hierarchy
Alphabetical List
Compound List
File List
Compound Members
|
00001 /********************************************************************************
00002 * *
00003 * LCD symbol objects *
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 FXLCDMARK_H
00023 #define FXLCDMARK_H
00024
00025 #ifndef FXFRAME_H
00026 #include <fox/FXFrame.h>
00027 using namespace FX;
00028 #endif
00029 namespace FXEX {
00030
00031 /**
00032 * Implements a decimalpoint, full-stop or colon as used by the LCD clock
00033 */
00034 class FXAPI FXLCDSymbol : public FXFrame{
00035 FXDECLARE(FXLCDSymbol)
00036
00037 private:
00038 FXchar value; // The currently shown character
00039 FXColor fgcolor; // The color of the LCD text
00040 FXColor bgcolor; // The color of the LCD background
00041 FXint hsl; // This is horizontal pixel length of a segment
00042 FXint vsl; // This is vertical pixel length of a segment (ie between the dots)
00043 FXint st; // This is segment thickness, in pixels
00044 FXint groove; // Groove between segments
00045
00046 protected:
00047 FXLCDSymbol () {}
00048
00049 // helper routine
00050 void calcLayout();
00051
00052 // Draws the individual segment types
00053 void drawSegment(FXDCWindow &dc,FXshort x,FXshort y);
00054
00055 // Draw a unit (each segment can be set indepentantly)
00056 void drawSegments (FXDCWindow &dc,FXbool s1,FXbool s2);
00057
00058 // Draw appropriate symbol
00059 void drawAMsymbol (FXDCWindow &dc);
00060 void drawPMsymbol (FXDCWindow &dc);
00061
00062 // Draw an alphanumeric figure (consisting of seven segments)
00063 virtual void drawFigure (FXDCWindow &dc, FXchar figure);
00064
00065 public:
00066 long onPaint(FXObject*,FXSelector,void*);
00067 long onQueryTip(FXObject*,FXSelector,void*);
00068 long onQueryHelp(FXObject*,FXSelector,void*);
00069
00070 public:
00071 virtual FXint getDefaultWidth(); // Return minimum width
00072 virtual FXint getDefaultHeight(); // Return minimum height
00073
00074 public:
00075 /// create symbol/marker
00076 FXLCDSymbol (FXComposite* p,FXObject *tgt=NULL,FXSelector sel=0,FXuint opts=FRAME_NONE,FXint pl=DEFAULT_PAD,FXint pr=DEFAULT_PAD,FXint pt=DEFAULT_PAD,FXint pb=DEFAULT_PAD);
00077
00078 /// choose character
00079 void setText(const FXchar val);
00080
00081 /// return chose character
00082 FXchar getText() const {return value;};
00083
00084 /// set foreground color
00085 void setFgColor(const FXColor clr);
00086
00087 /// get foreground color
00088 FXColor getFgColor() const { return fgcolor; }
00089
00090 /// set background color
00091 void setBgColor(const FXColor clr);
00092
00093 /// get background color
00094 FXColor getBgColor() const { return bgcolor; }
00095
00096 /// set segment vertical length (ie the distance between dots)
00097 void setHorizontal(const FXint len);
00098
00099 FXint getHorizontal() const { return hsl; }
00100
00101 /// set segment vertical length (ie the distance between dots)
00102 void setVertical(const FXint len);
00103
00104 /// get segment vertical length
00105 FXint getVertical() const { return vsl; }
00106
00107 /// set segment thickness
00108 void setThickness(const FXint width);
00109
00110 /// get segment thickness
00111 FXint getThickness() const { return st; }
00112
00113 /// set groove width
00114 void setGroove(const FXint width);
00115
00116 /// get groove width
00117 FXint getGroove() const { return groove; }
00118
00119 // dtor
00120 virtual ~FXLCDSymbol() {}
00121 };
00122
00123 } // namespace FXEX
00124 #endif // FXLCDSYMBOL