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 99 lines (83 sloc) 3.602 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
/***********************************************************************
 * FXRuby -- the Ruby language bindings for the FOX GUI toolkit.
 * Copyright (c) 2001 by J. 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".
 ***********************************************************************/

/**
 * The status line normally shows its permanent message; when
 * moving the mouse over a Widget which has status-line help, the status line
 * temporarily replaces its normal message with the help information; the status
 * line obtains the help message by sending the Widget a ID_QUERY_HELP message
 * with type SEL_UPDATE.
 * If this query does not result in a new status string, the target of
 * the status line is tried via an ordinary SEL_UPDATE message.
 * If none of the above work then the status line will display the normal text,
 * i.e. the string set via setNormalText().
 * If the message contains a newline (\n), then the part before the newline
 * will be displayed in the highlight color, while the part after the newline
 * is shown using the normal text color.
 */

class FXStatusLine : public FXFrame {
protected:
  FXString status; // Current status message
  FXString normal; // Normally displayed message
  FXFont *font; // Font
  FXColor textColor; // Status text color
  FXColor textHighlightColor; // Status text highlight color
protected:
  FXStatusLine();
public:
  long onPaint(FXObject*,FXSelector,void* PTR_EVENT);
  long onUpdate(FXObject*,FXSelector,void* PTR_NULL);
  long onCmdGetStringValue(FXObject*,FXSelector,void* PTR_IGNORE); // FIXME
  long onCmdSetStringValue(FXObject*,FXSelector,void* PTR_STRING);
public:

  %extend {
    /// Constructor
    FXStatusLine(FXComposite* p,FXObject* tgt=NULL,FXSelector sel=0){
      return new FXRbStatusLine(p,tgt,sel);
      }
    }

  /// Change the temporary status message
  void setText(const FXString& text);

  /// Return the temporary status message
  FXString getText() const;

  /// Change the permanent status message
  void setNormalText(const FXString& text);

  /// Return the permanent status message
  FXString getNormalText() const;

  /// Change the font
  void setFont(FXFont* fnt);

  /// Return the current font
  FXFont* getFont() const;

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

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

  /// Return the highlight text color
  FXColor getTextHighlightColor() const;

  /// Change the highlight text color
  void setTextHighlightColor(FXColor clr);

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


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