mirror of
https://github.com/fltk/fltk.git
synced 2026-05-21 22:51:41 +08:00
Added three methods and dox to Fl_Tooltip:
margin_width() -- controls margins around tooltip's text margin_height() -- controls margins above and below tooltip's text wrap_width() -- controls maximum width of text before wordwrapping is enforced These are read-only for the current release, and read/write as an ABI feature. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9510 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
@@ -28,6 +28,10 @@
|
||||
/**
|
||||
The Fl_Tooltip class provides tooltip support for
|
||||
all FLTK widgets. It contains only static methods.
|
||||
|
||||
\image html tooltip-options.png "Fl_Tooltip Options"
|
||||
\image latex src/tooltip-options.png "Fl_Tooltip Options" width=6cm
|
||||
|
||||
*/
|
||||
class FL_EXPORT Fl_Tooltip {
|
||||
public:
|
||||
@@ -74,6 +78,25 @@ public:
|
||||
static Fl_Color textcolor() { return textcolor_; }
|
||||
/** Sets the color of the text in the tooltip. The default is black. */
|
||||
static void textcolor(Fl_Color c) { textcolor_ = c; }
|
||||
#if FLTK_ABI_VERSION >= 10302
|
||||
/** Gets the amount of extra space left/right of the tooltip's text. Default is 3. */
|
||||
static int margin_width() { return margin_width_; }
|
||||
/** Sets the amount of extra space left/right of the tooltip's text. Default is 3. */
|
||||
static void margin_width(int v) { margin_width_ = v; }
|
||||
/** Gets the amount of extra space above and below the tooltip's text. Default is 3. */
|
||||
static int margin_height() { return margin_height_; }
|
||||
/** Sets the amount of extra space above and below the tooltip's text. Default is 3. */
|
||||
static void margin_height(int v) { margin_height_ = v; }
|
||||
/** Gets the maximum width for tooltip's text before it word wraps. Default is 400. */
|
||||
static int wrap_width() { return wrap_width_; }
|
||||
/** Sets the maximum width for tooltip's text before it word wraps. Default is 400. */
|
||||
static void wrap_width(int v) { wrap_width_ = v; }
|
||||
#else
|
||||
static int margin_width() { return 3; }
|
||||
static int margin_height() { return 3; }
|
||||
static int wrap_width() { return 400; }
|
||||
#endif
|
||||
|
||||
#ifdef __APPLE__
|
||||
// the unique tooltip window
|
||||
static Fl_Window* current_window(void);
|
||||
@@ -96,6 +119,11 @@ private:
|
||||
static Fl_Font font_;
|
||||
static Fl_Fontsize size_;
|
||||
static Fl_Widget* widget_; //!< Keeps track of the current target widget
|
||||
#if FLTK_ABI_VERSION >= 10302
|
||||
static int margin_width_; //!< distance around tooltip text left+right
|
||||
static int margin_height_; //!< distance around tooltip text top+bottom
|
||||
static int wrap_width_; //!< maximum width of tooltip text before it word wraps
|
||||
#endif
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 6.5 KiB |
+14
-6
@@ -31,8 +31,11 @@ Fl_Color Fl_Tooltip::color_ = fl_color_cube(FL_NUM_RED - 1,
|
||||
Fl_Color Fl_Tooltip::textcolor_ = FL_BLACK;
|
||||
Fl_Font Fl_Tooltip::font_ = FL_HELVETICA;
|
||||
Fl_Fontsize Fl_Tooltip::size_ = -1;
|
||||
|
||||
#define MAX_WIDTH 400
|
||||
#if FLTK_ABI_VERSION >= 10302
|
||||
int Fl_Tooltip::margin_width_ = 3;
|
||||
int Fl_Tooltip::margin_height_ = 3;
|
||||
int Fl_Tooltip::wrap_width_ = 400;
|
||||
#endif
|
||||
|
||||
static const char* tip;
|
||||
/**
|
||||
@@ -70,10 +73,11 @@ Fl_Window *Fl_Tooltip::current_window(void)
|
||||
|
||||
void Fl_TooltipBox::layout() {
|
||||
fl_font(Fl_Tooltip::font(), Fl_Tooltip::size());
|
||||
int ww, hh;
|
||||
ww = MAX_WIDTH;
|
||||
int ww = Fl_Tooltip::wrap_width();
|
||||
int hh;
|
||||
fl_measure(tip, ww, hh, FL_ALIGN_LEFT|FL_ALIGN_WRAP|FL_ALIGN_INSIDE);
|
||||
ww += 6; hh += 6;
|
||||
ww += (Fl_Tooltip::margin_width() * 2);
|
||||
hh += (Fl_Tooltip::margin_height() * 2);
|
||||
|
||||
// find position on the screen of the widget:
|
||||
int ox = Fl::event_x_root();
|
||||
@@ -100,7 +104,11 @@ void Fl_TooltipBox::draw() {
|
||||
draw_box(FL_BORDER_BOX, 0, 0, w(), h(), Fl_Tooltip::color());
|
||||
fl_color(Fl_Tooltip::textcolor());
|
||||
fl_font(Fl_Tooltip::font(), Fl_Tooltip::size());
|
||||
fl_draw(tip, 3, 3, w()-6, h()-6, Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_WRAP));
|
||||
int X = Fl_Tooltip::margin_width();
|
||||
int Y = Fl_Tooltip::margin_height();
|
||||
int W = w() - (Fl_Tooltip::margin_width()*2);
|
||||
int H = h() - (Fl_Tooltip::margin_height()*2);
|
||||
fl_draw(tip, X, Y, W, H, Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_WRAP));
|
||||
}
|
||||
|
||||
static char recent_tooltip;
|
||||
|
||||
Reference in New Issue
Block a user