Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

file 140 lines (118 sloc) 5.15 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
/***********************************************************************
 * FXRuby -- the Ruby language bindings for the FOX GUI toolkit.
 * Copyright (c) 2001-2009 by Lyle Johnson. All Rights Reserved.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 *
 * For further information please contact the author by e-mail
 * at "lyle@lylejohnson.name".
 ***********************************************************************/


/// 7 Segment styles
enum {
  SEVENSEGMENT_NORMAL = 0, /// Draw segments normally
  SEVENSEGMENT_SHADOW = 0x00080000 /// Draw shadow under the segments
  };

%rename("text=") FX7Segment::setText(const FXString&);
%rename("text") FX7Segment::getText() const;
%rename("textColor=") FX7Segment::setTextColor(FXColor);
%rename("textColor") FX7Segment::getTextColor() const;
%rename("cellWidth=") FX7Segment::setCellWidth(FXint);
%rename("cellWidth") FX7Segment::getCellWidth() const;
%rename("cellHeight=") FX7Segment::setCellHeight(FXint);
%rename("cellHeight") FX7Segment::getCellHeight() const;
%rename("thickness=") FX7Segment::setThickness(FXint);
%rename("thickness") FX7Segment::getThickness() const;
%rename("justify=") FX7Segment::setJustify(FXuint);
%rename("justify") FX7Segment::getJustify() const;
%rename("helpText=") FX7Segment::setHelpText(const FXString&);
%rename("helpText") FX7Segment::getHelpText() const;
%rename("tipText=") FX7Segment::setTipText(const FXString&);
%rename("tipText") FX7Segment::getTipText() const;

/**
* Seven-segment (eg LCD/watch style) widget, useful for making
* indicators and timers. Besides numbers, the seven-segment
* display widget can also display some letters and punctuations.
*/
class FX7Segment : public FXFrame {
protected:
  FXString label; // Text being shown
  FXColor textColor; // Text color
  FXint thickness; // Segment thickness
  FXint cellwidth; // Width of cell
  FXint cellheight; // height of cell
protected:
  FX7Segment();
public:
  long onPaint(FXObject*,FXSelector,void* PTR_EVENT);
  long onCmdSetValue(FXObject*,FXSelector,void*); // FIXME
  long onCmdSetIntValue(FXObject*,FXSelector,void*); // FIXME
  long onCmdSetRealValue(FXObject*,FXSelector,void*); // FIXME
  long onCmdSetStringValue(FXObject*,FXSelector,void*); // FIXME
  long onCmdGetIntValue(FXObject*,FXSelector,void*); // FIXME
  long onCmdGetRealValue(FXObject*,FXSelector,void*); // FIXME
  long onCmdGetStringValue(FXObject*,FXSelector,void*); // FIXME
  long onCmdSetHelp(FXObject*,FXSelector,void*); // FIXME
  long onCmdGetHelp(FXObject*,FXSelector,void*); // FIXME
  long onCmdSetTip(FXObject*,FXSelector,void*); // FIXME
  long onCmdGetTip(FXObject*,FXSelector,void*); // FIXME
  long onQueryHelp(FXObject*,FXSelector,void*); // FIXME
  long onQueryTip(FXObject*,FXSelector,void*); // FIXME
public:

  %extend {
    /// Create a seven segment display
    FX7Segment(FXComposite* p,const FXString& text,FXuint opts=SEVENSEGMENT_NORMAL,FXint x=0,FXint y=0,FXint w=0,FXint h=0,FXint pl=DEFAULT_PAD,FXint pr=DEFAULT_PAD,FXint pt=DEFAULT_PAD,FXint pb=DEFAULT_PAD){
      return new FXRb7Segment(p,text,opts,x,y,w,h,pl,pr,pt,pb);
      }
  }

  /// Set the text for this label
  void setText(const FXString& text);

  /// Get the text for this label
  FXString getText() const;

  /// Change text color
  void setTextColor(FXColor clr);

  /// Return text color
  FXColor getTextColor() const;

  /// Get/set cell width
  void setCellWidth(FXint w);
  FXint getCellWidth() const;

  /// Get/set cell height
  void setCellHeight(FXint h);
  FXint getCellHeight() const;

  /// Get/set segment thickness
  void setThickness(FXint t);
  FXint getThickness() const;

  /// Change 7 segment style
  void set7SegmentStyle(FXuint style);

  /// Get current 7 segment style
  FXuint get7SegmentStyle() const;

  /// Set the current text-justification mode.
  void setJustify(FXuint mode);

  /// Get the current text-justification mode.
  FXuint getJustify() const;

  /// Set the status line help text
  void setHelpText(const FXString& text);

  /// Get the status line help text
  const FXString& getHelpText() const;

  /// Set the tool tip message
  void setTipText(const FXString& text);

  /// Get the tool tip message
  const FXString& getTipText() const;

  /// Destroy
  virtual ~FX7Segment();
  };

DECLARE_FXOBJECT_VIRTUALS(FX7Segment)
DECLARE_FXID_VIRTUALS(FX7Segment)
DECLARE_FXDRAWABLE_VIRTUALS(FX7Segment)
DECLARE_FXWINDOW_VIRTUALS(FX7Segment)
Something went wrong with that request. Please try again.