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:
parent
8683ea2c81
commit
88c0d727aa
1
CHANGES
1
CHANGES
@ -1,5 +1,6 @@
|
||||
CHANGES IN FLTK 1.3.0
|
||||
|
||||
- changed widget coordinates to 32 bit
|
||||
- added support for shortcuts for Fl_Input_,
|
||||
Fl_Value_Input, and Fl_Text_Display derived
|
||||
widgets (STR #1770)
|
||||
|
@ -38,7 +38,7 @@ class FL_EXPORT Fl_Group : public Fl_Widget {
|
||||
Fl_Widget* savedfocus_;
|
||||
Fl_Widget* resizable_;
|
||||
int children_;
|
||||
short *sizes_; // remembered initial sizes of children
|
||||
int *sizes_; // remembered initial sizes of children
|
||||
|
||||
int navigation(int);
|
||||
static Fl_Group *current_;
|
||||
@ -58,7 +58,7 @@ protected:
|
||||
void draw_children();
|
||||
void draw_outside_label(const Fl_Widget&) const ;
|
||||
void update_child(Fl_Widget&) const;
|
||||
short* sizes();
|
||||
int *sizes();
|
||||
|
||||
public:
|
||||
|
||||
|
@ -58,7 +58,7 @@ class FL_EXPORT Fl_Widget {
|
||||
Fl_Group* parent_;
|
||||
Fl_Callback* callback_;
|
||||
void* user_data_;
|
||||
short x_,y_,w_,h_;
|
||||
int x_,y_,w_,h_;
|
||||
Fl_Label label_;
|
||||
int flags_;
|
||||
unsigned color_;
|
||||
@ -79,10 +79,10 @@ protected:
|
||||
|
||||
Fl_Widget(int,int,int,int,const char* =0);
|
||||
|
||||
void x(int v) {x_ = (short)v;}
|
||||
void y(int v) {y_ = (short)v;}
|
||||
void w(int v) {w_ = (short)v;}
|
||||
void h(int v) {h_ = (short)v;}
|
||||
void x(int v) {x_ = v;}
|
||||
void y(int v) {y_ = v;}
|
||||
void w(int v) {w_ = v;}
|
||||
void h(int v) {h_ = v;}
|
||||
|
||||
int flags() const {return flags_;}
|
||||
void set_flag(int c) {flags_ |= c;}
|
||||
|
@ -44,8 +44,9 @@ class FL_EXPORT Fl_Window : public Fl_Group {
|
||||
const char* xclass_;
|
||||
const void* icon_;
|
||||
// size_range stuff:
|
||||
short minw, minh, maxw, maxh;
|
||||
uchar dw, dh, aspect, size_range_set;
|
||||
int minw, minh, maxw, maxh;
|
||||
int dw, dh, aspect;
|
||||
uchar size_range_set;
|
||||
// cursor stuff
|
||||
Fl_Cursor cursor_default;
|
||||
Fl_Color cursor_fg, cursor_bg;
|
||||
@ -94,7 +95,7 @@ public:
|
||||
void hotspot(const Fl_Widget& p, int offscreen = 0) {hotspot(&p,offscreen);}
|
||||
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) {
|
||||
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* iconlabel() const {return iconlabel_;}
|
||||
|
@ -428,9 +428,9 @@ void Fl_Group::init_sizes() {
|
||||
delete[] sizes_; sizes_ = 0;
|
||||
}
|
||||
|
||||
short* Fl_Group::sizes() {
|
||||
int *Fl_Group::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:
|
||||
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();
|
||||
@ -477,7 +477,7 @@ void Fl_Group::resize(int X, int Y, int W, int H) {
|
||||
|
||||
} else if (children_) {
|
||||
|
||||
short* p = sizes();
|
||||
int *p = sizes();
|
||||
|
||||
// get changes in size/position from the initial size:
|
||||
int dx = X - p[0];
|
||||
|
@ -39,7 +39,7 @@
|
||||
|
||||
void Fl_Tile::position(int oix, int oiy, int newx, int newy) {
|
||||
Fl_Widget*const* a = array();
|
||||
short* p = sizes();
|
||||
int *p = sizes();
|
||||
p += 8; // skip group & resizable's saved size
|
||||
for (int i=children(); i--; p += 4) {
|
||||
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 dw = W-w();
|
||||
int dh = H-h();
|
||||
short* p = sizes();
|
||||
int *p = sizes();
|
||||
// resize this (skip the Fl_Group resize):
|
||||
Fl_Widget::resize(X,Y,W,H);
|
||||
// find bottom-right of resiable:
|
||||
@ -138,8 +138,8 @@ int Fl_Tile::handle(int event) {
|
||||
int oldx = 0;
|
||||
int oldy = 0;
|
||||
Fl_Widget*const* a = array();
|
||||
short* q = sizes();
|
||||
short* p = q+8;
|
||||
int *q = sizes();
|
||||
int *p = q+8;
|
||||
for (int i=children(); i--; p += 4) {
|
||||
Fl_Widget* o = *a++;
|
||||
if (o == resizable()) continue;
|
||||
|
Loading…
Reference in New Issue
Block a user