summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Fl_Browser_.cxx14
-rw-r--r--src/Fl_Help_Dialog.cxx103
-rw-r--r--src/Fl_Help_Dialog.fl4
-rw-r--r--src/Fl_Help_View.cxx63
-rw-r--r--src/Fl_Scroll.cxx8
-rw-r--r--src/Fl_Text_Display.cxx2
-rw-r--r--src/Fl_get_system_colors.cxx9
7 files changed, 107 insertions, 96 deletions
diff --git a/src/Fl_Browser_.cxx b/src/Fl_Browser_.cxx
index 8637e9cba..852b25431 100644
--- a/src/Fl_Browser_.cxx
+++ b/src/Fl_Browser_.cxx
@@ -3,7 +3,7 @@
//
// Base Browser widget class for the Fast Light Tool Kit (FLTK).
//
-// Copyright 1998-2005 by Bill Spitzak and others.
+// Copyright 1998-2006 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
@@ -67,8 +67,20 @@ static void hscrollbar_callback(Fl_Widget* s, void*) {
((Fl_Browser_*)(s->parent()))->hposition(int(((Fl_Scrollbar*)s)->value()));
}
+// Scrollbar size should be part of the Fl class, but is left here for
+// binary compatibility in 1.1.x - M. Sweet
int Fl_Browser_::scrollbar_width_ = 16;
+// Get the standard scrollbar size
+int Fl::scrollbar_size() {
+ return Fl_Browser_::scrollbar_width();
+}
+
+// Set the standard scrollbar size
+void Fl::scrollbar_size(int W) {
+ Fl_Browser_::scrollbar_width(W);
+}
+
// return where to draw the actual box:
void Fl_Browser_::bbox(int& X, int& Y, int& W, int& H) const {
Fl_Boxtype b = box() ? box() : FL_DOWN_BOX;
diff --git a/src/Fl_Help_Dialog.cxx b/src/Fl_Help_Dialog.cxx
index c38e7c8c0..9760cd7d7 100644
--- a/src/Fl_Help_Dialog.cxx
+++ b/src/Fl_Help_Dialog.cxx
@@ -25,7 +25,7 @@
// http://www.fltk.org/str.php
//
-// generated by Fast Light User Interface Designer (fluid) version 1.0107
+// generated by Fast Light User Interface Designer (fluid) version 1.0108
#include "../FL/Fl_Help_Dialog.H"
#include "flstring.h"
@@ -154,72 +154,61 @@ void Fl_Help_Dialog::cb_find_(Fl_Input* o, void* v) {
}
Fl_Help_Dialog::Fl_Help_Dialog() {
- Fl_Double_Window* w;
- { Fl_Double_Window* o = window_ = new Fl_Double_Window(530, 385, "Help Dialog");
- w = o;
- o->user_data((void*)(this));
- { Fl_Help_View* o = view_ = new Fl_Help_View(10, 10, 510, 330);
- o->box(FL_DOWN_BOX);
- o->color(FL_BACKGROUND_COLOR);
- o->selection_color(FL_SELECTION_COLOR);
- o->labeltype(FL_NORMAL_LABEL);
- o->labelfont(0);
- o->labelsize(14);
- o->labelcolor(FL_FOREGROUND_COLOR);
- o->callback((Fl_Callback*)cb_view_);
- o->align(FL_ALIGN_TOP);
- o->when(FL_WHEN_RELEASE);
- o->end();
- Fl_Group::current()->resizable(o);
- }
+ { window_ = new Fl_Double_Window(530, 385, "Help Dialog");
+ window_->user_data((void*)(this));
+ { view_ = new Fl_Help_View(10, 10, 510, 330);
+ view_->box(FL_DOWN_BOX);
+ view_->callback((Fl_Callback*)cb_view_);
+ Fl_Group::current()->resizable(view_);
+ } // Fl_Help_View* view_
{ Fl_Group* o = new Fl_Group(10, 348, 510, 27);
{ Fl_Button* o = new Fl_Button(456, 350, 64, 25, "Close");
o->callback((Fl_Callback*)cb_Close);
o->label(fl_close);
- }
- { Fl_Button* o = back_ = new Fl_Button(386, 350, 25, 25, "@<-");
- o->tooltip("Show the previous help page.");
- o->shortcut(0xff51);
- o->labelcolor((Fl_Color)2);
- o->callback((Fl_Callback*)cb_back_);
- }
- { Fl_Button* o = forward_ = new Fl_Button(421, 350, 25, 25, "@->");
- o->tooltip("Show the next help page.");
- o->shortcut(0xff53);
- o->labelcolor((Fl_Color)2);
- o->callback((Fl_Callback*)cb_forward_);
- }
- { Fl_Button* o = smaller_ = new Fl_Button(316, 350, 25, 25, "F");
- o->tooltip("Make the help text smaller.");
- o->labelfont(1);
- o->labelsize(10);
- o->callback((Fl_Callback*)cb_smaller_);
- }
- { Fl_Button* o = larger_ = new Fl_Button(351, 350, 25, 25, "F");
- o->tooltip("Make the help text larger.");
- o->labelfont(1);
- o->labelsize(16);
- o->callback((Fl_Callback*)cb_larger_);
- }
+ } // Fl_Button* o
+ { back_ = new Fl_Button(386, 350, 25, 25, "@<-");
+ back_->tooltip("Show the previous help page.");
+ back_->shortcut(0xff51);
+ back_->labelcolor((Fl_Color)2);
+ back_->callback((Fl_Callback*)cb_back_);
+ } // Fl_Button* back_
+ { forward_ = new Fl_Button(421, 350, 25, 25, "@->");
+ forward_->tooltip("Show the next help page.");
+ forward_->shortcut(0xff53);
+ forward_->labelcolor((Fl_Color)2);
+ forward_->callback((Fl_Callback*)cb_forward_);
+ } // Fl_Button* forward_
+ { smaller_ = new Fl_Button(316, 350, 25, 25, "F");
+ smaller_->tooltip("Make the help text smaller.");
+ smaller_->labelfont(1);
+ smaller_->labelsize(10);
+ smaller_->callback((Fl_Callback*)cb_smaller_);
+ } // Fl_Button* smaller_
+ { larger_ = new Fl_Button(351, 350, 25, 25, "F");
+ larger_->tooltip("Make the help text larger.");
+ larger_->labelfont(1);
+ larger_->labelsize(16);
+ larger_->callback((Fl_Callback*)cb_larger_);
+ } // Fl_Button* larger_
{ Fl_Group* o = new Fl_Group(10, 350, 296, 25);
o->box(FL_DOWN_BOX);
o->color(FL_BACKGROUND2_COLOR);
- { Fl_Input* o = find_ = new Fl_Input(35, 352, 268, 21, "@search");
- o->tooltip("find text in document");
- o->box(FL_FLAT_BOX);
- o->labelsize(13);
- o->callback((Fl_Callback*)cb_find_);
- o->when(FL_WHEN_ENTER_KEY_ALWAYS);
- Fl_Group::current()->resizable(o);
- }
+ { find_ = new Fl_Input(35, 352, 268, 21, "@search");
+ find_->tooltip("find text in document");
+ find_->box(FL_FLAT_BOX);
+ find_->labelsize(13);
+ find_->callback((Fl_Callback*)cb_find_);
+ find_->when(FL_WHEN_ENTER_KEY_ALWAYS);
+ Fl_Group::current()->resizable(find_);
+ } // Fl_Input* find_
o->end();
Fl_Group::current()->resizable(o);
- }
+ } // Fl_Group* o
o->end();
- }
- o->size_range(260, 150);
- o->end();
- }
+ } // Fl_Group* o
+ window_->size_range(260, 150);
+ window_->end();
+ } // Fl_Double_Window* window_
back_->deactivate();
forward_->deactivate();
diff --git a/src/Fl_Help_Dialog.fl b/src/Fl_Help_Dialog.fl
index 42f044bfe..8d013ddba 100644
--- a/src/Fl_Help_Dialog.fl
+++ b/src/Fl_Help_Dialog.fl
@@ -47,7 +47,7 @@ class FL_EXPORT Fl_Help_Dialog {open
label {Help Dialog} open
private xywh {398 65 530 385} type Double resizable size_range {260 150 0 0} visible
} {
- Fl_Group view_ {
+ Fl_Help_View view_ {
callback {if (view_->filename())
{
if (view_->changed())
@@ -87,8 +87,6 @@ class FL_EXPORT Fl_Help_Dialog {open
forward_->deactivate();
}} open
private xywh {10 10 510 330} box DOWN_BOX selection_color 15 resizable
- code0 {\#include <FL/Fl_Help_View.H>}
- class Fl_Help_View
} {}
Fl_Group {} {open
xywh {10 348 510 27}
diff --git a/src/Fl_Help_View.cxx b/src/Fl_Help_View.cxx
index 2fcc5b41a..75fffa6e6 100644
--- a/src/Fl_Help_View.cxx
+++ b/src/Fl_Help_View.cxx
@@ -434,20 +434,21 @@ Fl_Help_View::draw()
draw_box(b, x(), y(), ww, hh, bgcolor_);
+ int ss = Fl::scrollbar_size();
if (hscrollbar_.visible()) {
draw_child(hscrollbar_);
- hh -= 17;
+ hh -= ss;
i ++;
}
if (scrollbar_.visible()) {
draw_child(scrollbar_);
- ww -= 17;
+ ww -= ss;
i ++;
}
if (i == 2) {
fl_color(FL_GRAY);
fl_rectf(x() + ww - Fl::box_dw(b) + Fl::box_dx(b),
- y() + hh - Fl::box_dh(b) + Fl::box_dy(b), 17, 17);
+ y() + hh - Fl::box_dh(b) + Fl::box_dy(b), ss, ss);
}
if (!value_)
@@ -941,13 +942,6 @@ Fl_Help_View::draw()
}
fl_pop_clip();
- if (Fl::focus()==this) {
- ww = w() ;
- hh = h();
- if (hscrollbar_.visible()) hh -= 18;
- if (scrollbar_.visible()) ww -= 18;
- draw_focus(box(), x(), y(), ww, hh);
- }
}
@@ -1775,38 +1769,47 @@ Fl_Help_View::format()
int dx = Fl::box_dw(b) - Fl::box_dx(b);
int dy = Fl::box_dh(b) - Fl::box_dy(b);
+ int ss = Fl::scrollbar_size();
+ int dw = Fl::box_dw(b) + ss;
+ int dh = Fl::box_dh(b);
- if (hsize_ > (w() - 24)) {
+ if (hsize_ > (w() - dw)) {
hscrollbar_.show();
- if (size_ < (h() - 24)) {
+ dh += ss;
+
+ if (size_ < (h() - dh)) {
scrollbar_.hide();
- hscrollbar_.resize(x() + Fl::box_dx(b), y() + h() - 17 - dy, w() - Fl::box_dw(b), 17);
+ hscrollbar_.resize(x() + Fl::box_dx(b), y() + h() - ss - dy,
+ w() - Fl::box_dw(b), ss);
} else {
scrollbar_.show();
- scrollbar_.resize(x() + w() - 17 - dx, y() + Fl::box_dy(b), 17, h() - 17 - Fl::box_dh(b));
- hscrollbar_.resize(x() + Fl::box_dx(b), y() + h() - 17 - dy, w() - 17 - Fl::box_dw(b), 17);
+ scrollbar_.resize(x() + w() - ss - dx, y() + Fl::box_dy(b),
+ ss, h() - ss - Fl::box_dh(b));
+ hscrollbar_.resize(x() + Fl::box_dx(b), y() + h() - ss - dy,
+ w() - ss - Fl::box_dw(b), ss);
}
} else {
hscrollbar_.hide();
- if (size_ < (h() - 8)) scrollbar_.hide();
+ if (size_ < (h() - dh)) scrollbar_.hide();
else {
- scrollbar_.resize(x() + w() - 17 - dx, y() + Fl::box_dy(b), 17, h() - Fl::box_dh(b));
+ scrollbar_.resize(x() + w() - ss - dx, y() + Fl::box_dy(b),
+ ss, h() - Fl::box_dh(b));
scrollbar_.show();
}
}
// Reset scrolling if it needs to be...
if (scrollbar_.visible()) {
- int temph = h() - 8;
- if (hscrollbar_.visible()) temph -= 16;
+ int temph = h() - Fl::box_dh(box());
+ if (hscrollbar_.visible()) temph -= ss;
if ((topline_ + temph) > size_) topline(size_ - temph);
else topline(topline_);
} else topline(0);
if (hscrollbar_.visible()) {
- int tempw = w() - 24;
+ int tempw = w() - ss - Fl::box_dw(box());
if ((leftline_ + tempw) > hsize_) leftline(hsize_ - tempw);
else leftline(leftline_);
} else leftline(0);
@@ -2743,10 +2746,6 @@ Fl_Help_View::handle(int event) // I - Event to handle
fl_cursor(FL_CURSOR_DEFAULT);
return 1;
case FL_PUSH:
- if (Fl::focus() != this) {
- Fl::focus(this);
- handle(FL_FOCUS);
- }
if (Fl_Group::handle(event))
return 1;
linkp = find_link(xx, yy);
@@ -2814,8 +2813,10 @@ Fl_Help_View::Fl_Help_View(int xx, // I - Left position
int hh, // I - Height in pixels
const char *l)
: Fl_Group(xx, yy, ww, hh, l),
- scrollbar_(xx + ww - 17, yy, 17, hh - 17),
- hscrollbar_(xx, yy + hh - 17, ww - 17, 17)
+ scrollbar_(xx + ww - Fl::scrollbar_size(), yy,
+ Fl::scrollbar_size(), hh - Fl::scrollbar_size()),
+ hscrollbar_(xx, yy + hh - Fl::scrollbar_size(),
+ ww - Fl::scrollbar_size(), Fl::scrollbar_size())
{
color(FL_BACKGROUND2_COLOR, FL_SELECTION_COLOR);
@@ -3001,10 +3002,12 @@ Fl_Help_View::resize(int xx, // I - New left position
Fl_Widget::resize(xx, yy, ww, hh);
- scrollbar_.resize(x() + w() - 17 - Fl::box_dw(b) + Fl::box_dx(b), y() + Fl::box_dy(b),
- 17, h() - 17 - Fl::box_dh(b));
- hscrollbar_.resize(x() + Fl::box_dx(b), y() + h() - 17 - Fl::box_dh(b) + Fl::box_dy(b),
- w() - 17 - Fl::box_dw(b), 17);
+ int ss = Fl::scrollbar_size();
+ scrollbar_.resize(x() + w() - ss - Fl::box_dw(b) + Fl::box_dx(b),
+ y() + Fl::box_dy(b), ss, h() - ss - Fl::box_dh(b));
+ hscrollbar_.resize(x() + Fl::box_dx(b),
+ y() + h() - ss - Fl::box_dh(b) + Fl::box_dy(b),
+ w() - ss - Fl::box_dw(b), ss);
format();
}
diff --git a/src/Fl_Scroll.cxx b/src/Fl_Scroll.cxx
index 0053385cc..a3bc85c1b 100644
--- a/src/Fl_Scroll.cxx
+++ b/src/Fl_Scroll.cxx
@@ -273,12 +273,12 @@ void Fl_Scroll::scrollbar_cb(Fl_Widget* o, void*) {
s->position(s->xposition(), int(((Fl_Scrollbar*)o)->value()));
}
-#define SLIDER_WIDTH 16
-
Fl_Scroll::Fl_Scroll(int X,int Y,int W,int H,const char* L)
: Fl_Group(X,Y,W,H,L),
- scrollbar(X+W-SLIDER_WIDTH,Y,SLIDER_WIDTH,H-SLIDER_WIDTH),
- hscrollbar(X,Y+H-SLIDER_WIDTH,W-SLIDER_WIDTH,SLIDER_WIDTH) {
+ scrollbar(X+W-Fl::scrollbar_size(),Y,
+ Fl::scrollbar_size(),H-Fl::scrollbar_size()),
+ hscrollbar(X,Y+H-Fl::scrollbar_size(),
+ W-Fl::scrollbar_size(),Fl::scrollbar_size()) {
type(BOTH);
xposition_ = 0;
yposition_ = 0;
diff --git a/src/Fl_Text_Display.cxx b/src/Fl_Text_Display.cxx
index a74149711..efc2a5196 100644
--- a/src/Fl_Text_Display.cxx
+++ b/src/Fl_Text_Display.cxx
@@ -105,7 +105,7 @@ Fl_Text_Display::Fl_Text_Display(int X, int Y, int W, int H, const char* l)
end();
- scrollbar_width(16);
+ scrollbar_width(Fl::scrollbar_size());
scrollbar_align(FL_ALIGN_BOTTOM_RIGHT);
mCursorOn = 0;
diff --git a/src/Fl_get_system_colors.cxx b/src/Fl_get_system_colors.cxx
index 9df0b6739..753254606 100644
--- a/src/Fl_get_system_colors.cxx
+++ b/src/Fl_get_system_colors.cxx
@@ -322,6 +322,9 @@ int Fl::reload_scheme() {
set_boxtype(FL_THIN_DOWN_BOX, FL_PLASTIC_THIN_DOWN_BOX);
set_boxtype(_FL_ROUND_UP_BOX, FL_PLASTIC_ROUND_UP_BOX);
set_boxtype(_FL_ROUND_DOWN_BOX, FL_PLASTIC_ROUND_DOWN_BOX);
+
+ // Use standard size scrollbars...
+ Fl::scrollbar_size(16);
} else if (scheme_ && !strcasecmp(scheme_, "gtk+")) {
// Use a GTK+ inspired look-n-feel...
if (scheme_bg_) {
@@ -340,6 +343,9 @@ int Fl::reload_scheme() {
set_boxtype(FL_THIN_DOWN_BOX, FL_GTK_THIN_DOWN_BOX);
set_boxtype(_FL_ROUND_UP_BOX, FL_GTK_ROUND_UP_BOX);
set_boxtype(_FL_ROUND_DOWN_BOX, FL_GTK_ROUND_DOWN_BOX);
+
+ // Use slightly thinner scrollbars...
+ Fl::scrollbar_size(15);
} else {
// Use the standard FLTK look-n-feel...
if (scheme_bg_) {
@@ -358,6 +364,9 @@ int Fl::reload_scheme() {
set_boxtype(FL_THIN_DOWN_BOX, fl_thin_down_box, 1, 1, 2, 2);
set_boxtype(_FL_ROUND_UP_BOX, fl_round_up_box, 3, 3, 6, 6);
set_boxtype(_FL_ROUND_DOWN_BOX, fl_round_down_box, 3, 3, 6, 6);
+
+ // Use standard size scrollbars...
+ Fl::scrollbar_size(16);
}
// Set (or clear) the background tile for all windows...