Previous: Other Popup Routines, Up: Part III Popups [Contents][Index]
void fl_popup_set_title(FL_POPUP *popup, const char *title); void fl_popup_set_title_f(FL_POPUP *popup, const char *fmt, ...); const char *fl_popup_set_title(FL_POPUP *popup);
the title of a popup can be changed or the currently set title
determined. (The two functions for setting the title are just
different in the way the title is passed: the first one receives
a simple string while the second one assembles the title from a
format string just like the one used with printf()
etc.
and an appropriate number of following arguments.)
To query or set the font the popups title is drawn in use
void fl_popup_get_title_font(FL_POPUP *popup, int *size, int *style); void fl_popup_set_title_font(FL_POPUP *popup, int size, int style);
See Label Attributes and Fonts, for details about the sizes and
styles that should be used. The default size and style are
FL_NORMAL_SIZE
and FL_EMBOSSED_STYLE
. This
setting also applies to sub-popups of the popup, thus setting a title
font for sub-popups is useless.
When called with the popup
argument set to NULL
the
default settings for popups generated later are returned or set.
Also the font for the entries of a popup can be queried or and set via
void fl_popup_entry_get_font(FL_POPUP *popup, int *style, int *size); void fl_popup_entry_set_font(FL_POPUP *popup, int style, int size);
The defalt size is FL_NORMAL_SIZE
and the default style
is FL_NORMAL_STYLE
. Again, the returned or set values
also apply to all sub-popups, so calling the function for sub-popups
doesn’t make sense.
When called with popup
set to NULL
the default settings
for popups are returned or changed.
The width of a popup is calculated using the widths of the title and the entries. You can influence this width by setting a minimum width a popup should have. There are two functions for the minimum width:
int fl_popup_get_min_width(FL_POPUP *popup); int fl_popup_set_min_width(FL_POPUP *popup, int min_width);
The first one returns the currently set minimum width (a negative return value indicates an error). The second allows sets a new minimum width. Setting the minimum width to 0 or a negative value switches the use of the minimum width off. It returns the previous value (or a negative value on error).
You can query or set the border width popups are drawn width (per
default it’s set to 1
). To this purpose call
int fl_popup_get_bw(FL_POPUP *popup); int fl_popup_set_bw(FL_POPUP *popup, int bw);
Please note that the border width setting is automatically applied also to sub-popups, so there’s no good reason to call these functions for sub-popups. The default border width is the same as that for objects.
The functions can also be called with popup
set to NULL
in which case the default setting for the border width is returned or
set, respectively.
To change the cursor that is displayed when a popup is shown use
void fl_popup_set_cursor(FL_POPUP *popup, int cursor_name);
Use one of the symbolic cursor names (shapes) defined by standard X or
the integer value returned by fl_create_bitmap_cursor()
or one of the Forms Library’s pre-defined symbolic names for the
cursor_name
argument.
Per default the cursor named "XC_sb_right_arrow"
is used. If
the function is called with popup
set to NULL
the
default cursor for popups generated afterwards is changed.
There are several colors used in drawing a popup. These can be set or queried with the functions
FL_COLOR fl_popup_set_color(FL_POPUP *popup, int type, FL_COLOR color); FL_COLOR fl_popup_get_color(FL_POPUP *popup, int type);
where type
can be one of the following values:
FL_POPUP_BACKGROUND_COLOR
FL_POPUP_HIGHLIGHT_COLOR
Backgroud color an entry is drawn with when it’s selectable and the
mouse is on top of it, default is FL_BOTTOM_BCOL
.
FL_POPUP_TITLE_COLOR
Color used for the title text of a popup, default is FL_BLACK
.
FL_POPUP_TEXT_COLOR
FL_POPUP_HIGHLIGHT_TEXT_COLOR
Color of the entry text when it’s selectable and the mouse is on top
of it, default is FL_WHITE
.
FL_POPUP_DISABLED_TEXT_COLOR
Color for drawing the text of disabled entries, default is
FL_INACTIVE_COL
.
FL_POPUP_RADIO_COLOR
Color the circle drawn for radio entris in "on" state is drawn in.
When setting a new color the color previously used is returned by
fl_popup_set_color()
. Calling these functions for
sub-popups doesn’t make sense since sub-popups are always drawn in the
colors set for the parent popup.
When called with popup
set to NULL
the functions return
or set the default colors of popups created afterwards.
To change the text of a popup entry call
int fl_popup_entry_set_text(FL_POPUP_ENTRY *entry, const char *text);
Please note that in the text no special sequences except "%S"
(at which place the text is split to make up the left- and
right-flushed part of the label drawn) are recognized.
The shortcut keys for a popup label can be changed using
void fl_popup_entry_set_shortcut(FL_POPUP_ENTRY *entry, const char *shortcuts);
See Shortcuts, for details on how such a string has to look like.
The value assigned to a popup entry can be changed via
long fl_popup_entry_set_value(FL_POPUP_ENTRY *entry, long value);
The function returns the previous value.
Also the user data pointer associated with a popup entry can be modified by calling
void *fl_popup_entry_set_user_data(FL_POPUP_ENTRY *entry, void *user_data);
The function returns the previous setting of user_data
.
To determine to which group a radio entry belongs call
int fl_popup_entry_get_group(FL_POPUP_ENTRY *entry);
Obviously, this function only makes much sense when applied to radio
entries. It returns the group number on success and INT_MAX
on
failure (that’s why INT_MAX
shouldn’t be used for group
numbers).
To assign a radio entry to a different group call
int fl_popup_entry_set_group(FL_POPUP_ENTRY *entry, int group);
Again, for obvious reasons, the function should normally only be
called for radio entries. It returns the previous group number on
success and INT_MAX
on failure. If one of the entries of the new
group was in "on" state the entries state will be reset to "off" if
necessary.
For entries other than radio entries the group isn’t used at all. So, theoretically, it could be used to store a bit of additional information. If that would be good programming practice is another question...
Finally, the sub-popup associated with a sub-popup-entry can be queried or changed using the functions
FL_POPUP *fl_popup_entry_get_subpopup(FL_POPUP_ENTRY *entry); FL_POPUP *fl_popup_entry_get_subpopup(FL_POPUP_ENTRY *entry, FL_POPUP *subpopup);
Obviously, calling these functions only makes sense for sub-popup entries.
fl_popup_entry_get_subpopup()
returns the address of the
sub-popup associated with the entry or NULL
on failure.
To change the sub-popup of an entry a valid sub-popup must be passed
to fl_popup_entry_set_subpopup()
, i.e., the sub-popup
must not already be a sub-popup of another entry or the popup the
entry belongs to itself. You also can’t set a new sub-popup while the
old sub-popup associated with the entry or the popup to become the new
sub-popup is shown. On success the address of the new sub-popup is
returned, on failure NULL
.
Note that this function deletes the old sub-popup that was associated with the popup.
Previous: Other Popup Routines, Up: Part III Popups [Contents][Index]