mirror of
https://github.com/fltk/fltk.git
synced 2026-06-04 23:42:15 +08:00
All widget coordinates are now 32 bit. Beware though, on a 16 bit graphics system, line drawing and window positioning is still messed up for coordinates beyond 16 bit. See STR #1929.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6112 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
CHANGES IN FLTK 1.3.0
|
CHANGES IN FLTK 1.3.0
|
||||||
|
|
||||||
|
- changed widget coordinates to 32 bit
|
||||||
- added support for shortcuts for Fl_Input_,
|
- added support for shortcuts for Fl_Input_,
|
||||||
Fl_Value_Input, and Fl_Text_Display derived
|
Fl_Value_Input, and Fl_Text_Display derived
|
||||||
widgets (STR #1770)
|
widgets (STR #1770)
|
||||||
|
|||||||
+2
-2
@@ -38,7 +38,7 @@ class FL_EXPORT Fl_Group : public Fl_Widget {
|
|||||||
Fl_Widget* savedfocus_;
|
Fl_Widget* savedfocus_;
|
||||||
Fl_Widget* resizable_;
|
Fl_Widget* resizable_;
|
||||||
int children_;
|
int children_;
|
||||||
short *sizes_; // remembered initial sizes of children
|
int *sizes_; // remembered initial sizes of children
|
||||||
|
|
||||||
int navigation(int);
|
int navigation(int);
|
||||||
static Fl_Group *current_;
|
static Fl_Group *current_;
|
||||||
@@ -58,7 +58,7 @@ protected:
|
|||||||
void draw_children();
|
void draw_children();
|
||||||
void draw_outside_label(const Fl_Widget&) const ;
|
void draw_outside_label(const Fl_Widget&) const ;
|
||||||
void update_child(Fl_Widget&) const;
|
void update_child(Fl_Widget&) const;
|
||||||
short* sizes();
|
int *sizes();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
|||||||
+5
-5
@@ -58,7 +58,7 @@ class FL_EXPORT Fl_Widget {
|
|||||||
Fl_Group* parent_;
|
Fl_Group* parent_;
|
||||||
Fl_Callback* callback_;
|
Fl_Callback* callback_;
|
||||||
void* user_data_;
|
void* user_data_;
|
||||||
short x_,y_,w_,h_;
|
int x_,y_,w_,h_;
|
||||||
Fl_Label label_;
|
Fl_Label label_;
|
||||||
int flags_;
|
int flags_;
|
||||||
unsigned color_;
|
unsigned color_;
|
||||||
@@ -79,10 +79,10 @@ protected:
|
|||||||
|
|
||||||
Fl_Widget(int,int,int,int,const char* =0);
|
Fl_Widget(int,int,int,int,const char* =0);
|
||||||
|
|
||||||
void x(int v) {x_ = (short)v;}
|
void x(int v) {x_ = v;}
|
||||||
void y(int v) {y_ = (short)v;}
|
void y(int v) {y_ = v;}
|
||||||
void w(int v) {w_ = (short)v;}
|
void w(int v) {w_ = v;}
|
||||||
void h(int v) {h_ = (short)v;}
|
void h(int v) {h_ = v;}
|
||||||
|
|
||||||
int flags() const {return flags_;}
|
int flags() const {return flags_;}
|
||||||
void set_flag(int c) {flags_ |= c;}
|
void set_flag(int c) {flags_ |= c;}
|
||||||
|
|||||||
+4
-3
@@ -44,8 +44,9 @@ class FL_EXPORT Fl_Window : public Fl_Group {
|
|||||||
const char* xclass_;
|
const char* xclass_;
|
||||||
const void* icon_;
|
const void* icon_;
|
||||||
// size_range stuff:
|
// size_range stuff:
|
||||||
short minw, minh, maxw, maxh;
|
int minw, minh, maxw, maxh;
|
||||||
uchar dw, dh, aspect, size_range_set;
|
int dw, dh, aspect;
|
||||||
|
uchar size_range_set;
|
||||||
// cursor stuff
|
// cursor stuff
|
||||||
Fl_Cursor cursor_default;
|
Fl_Cursor cursor_default;
|
||||||
Fl_Color cursor_fg, cursor_bg;
|
Fl_Color cursor_fg, cursor_bg;
|
||||||
@@ -94,7 +95,7 @@ public:
|
|||||||
void hotspot(const Fl_Widget& p, int offscreen = 0) {hotspot(&p,offscreen);}
|
void hotspot(const Fl_Widget& p, int offscreen = 0) {hotspot(&p,offscreen);}
|
||||||
void free_position() {clear_flag(FL_FORCE_POSITION);}
|
void free_position() {clear_flag(FL_FORCE_POSITION);}
|
||||||
void size_range(int a, int b, int c=0, int d=0, int e=0, int f=0, int g=0) {
|
void size_range(int a, int b, int c=0, int d=0, int e=0, int f=0, int g=0) {
|
||||||
minw=(short)a; minh=(short)b; maxw=(short)c; maxh=(short)d; dw=(uchar)e; dh=(uchar)f; aspect=(uchar)g; size_range_();}
|
minw=a; minh=b; maxw=c; maxh=d; dw=e; dh=f; aspect=g; size_range_();}
|
||||||
|
|
||||||
const char* label() const {return Fl_Widget::label();}
|
const char* label() const {return Fl_Widget::label();}
|
||||||
const char* iconlabel() const {return iconlabel_;}
|
const char* iconlabel() const {return iconlabel_;}
|
||||||
|
|||||||
+3
-3
@@ -428,9 +428,9 @@ void Fl_Group::init_sizes() {
|
|||||||
delete[] sizes_; sizes_ = 0;
|
delete[] sizes_; sizes_ = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
short* Fl_Group::sizes() {
|
int *Fl_Group::sizes() {
|
||||||
if (!sizes_) {
|
if (!sizes_) {
|
||||||
short* p = sizes_ = new short[4*(children_+2)];
|
int *p = sizes_ = new int[4*(children_+2)];
|
||||||
// first thing in sizes array is the group's size:
|
// first thing in sizes array is the group's size:
|
||||||
if (type() < FL_WINDOW) {p[0] = x(); p[2] = y();} else {p[0] = p[2] = 0;}
|
if (type() < FL_WINDOW) {p[0] = x(); p[2] = y();} else {p[0] = p[2] = 0;}
|
||||||
p[1] = p[0]+w(); p[3] = p[2]+h();
|
p[1] = p[0]+w(); p[3] = p[2]+h();
|
||||||
@@ -477,7 +477,7 @@ void Fl_Group::resize(int X, int Y, int W, int H) {
|
|||||||
|
|
||||||
} else if (children_) {
|
} else if (children_) {
|
||||||
|
|
||||||
short* p = sizes();
|
int *p = sizes();
|
||||||
|
|
||||||
// get changes in size/position from the initial size:
|
// get changes in size/position from the initial size:
|
||||||
int dx = X - p[0];
|
int dx = X - p[0];
|
||||||
|
|||||||
+4
-4
@@ -39,7 +39,7 @@
|
|||||||
|
|
||||||
void Fl_Tile::position(int oix, int oiy, int newx, int newy) {
|
void Fl_Tile::position(int oix, int oiy, int newx, int newy) {
|
||||||
Fl_Widget*const* a = array();
|
Fl_Widget*const* a = array();
|
||||||
short* p = sizes();
|
int *p = sizes();
|
||||||
p += 8; // skip group & resizable's saved size
|
p += 8; // skip group & resizable's saved size
|
||||||
for (int i=children(); i--; p += 4) {
|
for (int i=children(); i--; p += 4) {
|
||||||
Fl_Widget* o = *a++;
|
Fl_Widget* o = *a++;
|
||||||
@@ -73,7 +73,7 @@ void Fl_Tile::resize(int X,int Y,int W,int H) {
|
|||||||
int dy = Y-y();
|
int dy = Y-y();
|
||||||
int dw = W-w();
|
int dw = W-w();
|
||||||
int dh = H-h();
|
int dh = H-h();
|
||||||
short* p = sizes();
|
int *p = sizes();
|
||||||
// resize this (skip the Fl_Group resize):
|
// resize this (skip the Fl_Group resize):
|
||||||
Fl_Widget::resize(X,Y,W,H);
|
Fl_Widget::resize(X,Y,W,H);
|
||||||
// find bottom-right of resiable:
|
// find bottom-right of resiable:
|
||||||
@@ -138,8 +138,8 @@ int Fl_Tile::handle(int event) {
|
|||||||
int oldx = 0;
|
int oldx = 0;
|
||||||
int oldy = 0;
|
int oldy = 0;
|
||||||
Fl_Widget*const* a = array();
|
Fl_Widget*const* a = array();
|
||||||
short* q = sizes();
|
int *q = sizes();
|
||||||
short* p = q+8;
|
int *p = q+8;
|
||||||
for (int i=children(); i--; p += 4) {
|
for (int i=children(); i--; p += 4) {
|
||||||
Fl_Widget* o = *a++;
|
Fl_Widget* o = *a++;
|
||||||
if (o == resizable()) continue;
|
if (o == resizable()) continue;
|
||||||
|
|||||||
Reference in New Issue
Block a user