Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

141 lines (120 sloc) 5.092 kB
/***********************************************************************
* 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".
***********************************************************************/
class FXShutter;
class FXScrollWindow;
/**
* A Shutter Item is a panel which is embedded inside a Shutter Widget.
* It can contain other user interface widgets which can be added under
* the content widget. The content widget is itself embedded in a scroll
* window to allow unlimited room for all the contents.
*/
class FXShutterItem : public FXVerticalFrame {
protected:
FXButton *button;
FXScrollWindow *scrollWindow;
FXVerticalFrame *content;
protected:
FXShutterItem(){}
public:
long onFocusUp(FXObject*,FXSelector,void* PTR_EVENT);
long onFocusDown(FXObject*,FXSelector,void* PTR_EVENT);
long onCmdButton(FXObject*,FXSelector,void* PTR_IGNORE);
public:
enum{
ID_SHUTTERITEM_BUTTON=FXVerticalFrame::ID_LAST,
ID_LAST
};
public:
/// Constructor
%extend {
FXShutterItem(FXShutter* p,const FXString& text=FXString::null,FXIcon* icon=NULL,FXuint opts=0,FXint x=0,FXint y=0,FXint w=0,FXint h=0,FXint pl=DEFAULT_SPACING,FXint pr=DEFAULT_SPACING,FXint pt=DEFAULT_SPACING,FXint pb=DEFAULT_SPACING,FXint hs=DEFAULT_SPACING,FXint vs=DEFAULT_SPACING){
return new FXRbShutterItem(p,text,icon,opts,x,y,w,h,pl,pr,pt,pb,hs,vs);
}
}
/// Return a pointer to the button for this item
FXButton* getButton() const;
/// Return a pointer to the contents for this item
FXVerticalFrame* getContent() const;
/// Set the status line help text for this item
void setHelpText(const FXString& text);
/// Get the status line help text for this item
FXString getHelpText() const;
/// Set the tool tip message for this item
void setTipText(const FXString& text);
/// Get the tool tip message for this item
FXString getTipText() const;
/// Destructor
virtual ~FXShutterItem();
};
DECLARE_FXOBJECT_VIRTUALS(FXShutterItem)
DECLARE_FXID_VIRTUALS(FXShutterItem)
DECLARE_FXDRAWABLE_VIRTUALS(FXShutterItem)
DECLARE_FXWINDOW_VIRTUALS(FXShutterItem)
/**
* The Shutter widget provides a set of foldable sub panels. Each subpanel
* consists of a Shutter Item which contains a button and some contents.
* A sub panel can be unfolded by pressing on that panel's button.
*/
class FXShutter : public FXVerticalFrame {
protected:
FXint current; // Item currently open
FXint closing; // Item closing down
FXint heightIncrement; // Height delta
FXint closingHeight; // Closing items current height
FXbool closingHadScrollbar; // Closing item had a scroll bar
protected:
FXShutter(){}
public:
long onFocusUp(FXObject*,FXSelector,void* PTR_EVENT);
long onFocusDown(FXObject*,FXSelector,void* PTR_EVENT);
long onTimeout(FXObject*,FXSelector,void* PTR_IGNORE);
long onOpenItem(FXObject*,FXSelector,void* PTR_IGNORE);
long onCmdSetValue(FXObject*,FXSelector,void* PTR_INT);
long onCmdSetIntValue(FXObject*,FXSelector,void* PTR_PINT);
long onCmdGetIntValue(FXObject*,FXSelector,void* PTR_IGNORE); // FIXME
long onCmdOpen(FXObject*,FXSelector,void* PTR_IGNORE);
long onUpdOpen(FXObject*,FXSelector,void* PTR_IGNORE); // FIXME
public:
enum{
ID_SHUTTER_TIMEOUT=FXVerticalFrame::ID_LAST,
ID_OPEN_SHUTTERITEM,
ID_OPEN_FIRST,
ID_OPEN_LAST=ID_OPEN_FIRST+1000,
ID_LAST
};
public:
/// Constructor
%extend {
FXShutter(FXComposite* p,FXObject* tgt=NULL,FXSelector sel=0,FXuint opts=0,FXint x=0,FXint y=0,FXint w=0,FXint h=0,FXint pl=DEFAULT_SPACING,FXint pr=DEFAULT_SPACING,FXint pt=DEFAULT_SPACING,FXint pb=DEFAULT_SPACING,FXint hs=DEFAULT_SPACING,FXint vs=DEFAULT_SPACING){
return new FXRbShutter(p,tgt,sel,opts,x,y,w,h,pl,pr,pt,pb,hs,vs);
}
}
/// Return the index of the currently displayed item
FXint getCurrent() const;
/// Destructor
virtual ~FXShutter();
};
DECLARE_FXOBJECT_VIRTUALS(FXShutter)
DECLARE_FXID_VIRTUALS(FXShutter)
DECLARE_FXDRAWABLE_VIRTUALS(FXShutter)
DECLARE_FXWINDOW_VIRTUALS(FXShutter)
DECLARE_FXSHUTTER_VIRTUALS(FXShutter)
Jump to Line
Something went wrong with that request. Please try again.