From 696e2d32191aee9cb0fc8d1a2d8c9f63eb3aacd2 Mon Sep 17 00:00:00 2001 From: Michael R Sweet Date: Sat, 20 Nov 2004 15:42:25 +0000 Subject: [PATCH] - Moving or resizing widgets in FLUID didn't always update the widget panel (STR #600) git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@3902 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- CHANGES | 2 ++ fluid/Fl_Window_Type.cxx | 16 ++++++++++-- fluid/widget_panel.cxx | 54 +++++++++++++++++++++++----------------- fluid/widget_panel.fl | 14 +++++------ fluid/widget_panel.h | 6 ++++- 5 files changed, 59 insertions(+), 33 deletions(-) diff --git a/CHANGES b/CHANGES index 084bece2b..1d5a85acf 100644 --- a/CHANGES +++ b/CHANGES @@ -1,5 +1,7 @@ CHANGES IN FLTK 1.1.6 + - Moving or resizing widgets in FLUID didn't always + update the widget panel (STR #600) - FLTK windows could appear off-screen on X11 (STR #586) - The configure script did not support --disable-localfoo to completely disable image file diff --git a/fluid/Fl_Window_Type.cxx b/fluid/Fl_Window_Type.cxx index 0ce220c6d..cc8415eba 100644 --- a/fluid/Fl_Window_Type.cxx +++ b/fluid/Fl_Window_Type.cxx @@ -1,5 +1,5 @@ // -// "$Id: Fl_Window_Type.cxx,v 1.13.2.10.2.9 2004/04/11 04:38:56 easysw Exp $" +// "$Id: Fl_Window_Type.cxx,v 1.13.2.10.2.10 2004/11/20 15:42:24 easysw Exp $" // // Window type code for the Fast Light Tool Kit (FLTK). // @@ -527,6 +527,16 @@ extern void fix_group_size(Fl_Type *t); extern Fl_Menu_Item Main_Menu[]; extern Fl_Menu_Item New_Menu[]; +// Update the XYWH values in the widget panel... +static void update_xywh() { + if (current_widget && current_widget->is_widget()) { + widget_x_input->value(((Fl_Widget_Type *)current_widget)->o->x()); + widget_y_input->value(((Fl_Widget_Type *)current_widget)->o->y()); + widget_w_input->value(((Fl_Widget_Type *)current_widget)->o->w()); + widget_h_input->value(((Fl_Widget_Type *)current_widget)->o->h()); + } +} + // move the selected children according to current dx,dy,drag state: void Fl_Window_Type::moveallchildren() { @@ -558,6 +568,8 @@ void Fl_Window_Type::moveallchildren() ((Overlay_Window *)(this->o))->redraw_overlay(); modflag = 1; dx = dy = 0; + + update_xywh(); } int Fl_Window_Type::handle(int event) { @@ -795,5 +807,5 @@ int Fl_Window_Type::read_fdesign(const char* propname, const char* value) { } // -// End of "$Id: Fl_Window_Type.cxx,v 1.13.2.10.2.9 2004/04/11 04:38:56 easysw Exp $". +// End of "$Id: Fl_Window_Type.cxx,v 1.13.2.10.2.10 2004/11/20 15:42:24 easysw Exp $". // diff --git a/fluid/widget_panel.cxx b/fluid/widget_panel.cxx index 4657a25f5..16d24412b 100644 --- a/fluid/widget_panel.cxx +++ b/fluid/widget_panel.cxx @@ -1,4 +1,4 @@ -// generated by Fast Light User Interface Designer (fluid) version 1.0104 +// generated by Fast Light User Interface Designer (fluid) version 1.0106 #include "widget_panel.h" @@ -6,6 +6,14 @@ static void cb_(Fl_Tabs* o, void* v) { propagate_load((Fl_Group *)o,v); } +Fl_Value_Input *widget_x_input=(Fl_Value_Input *)0; + +Fl_Value_Input *widget_y_input=(Fl_Value_Input *)0; + +Fl_Value_Input *widget_w_input=(Fl_Value_Input *)0; + +Fl_Value_Input *widget_h_input=(Fl_Value_Input *)0; + Fl_Input *v_input[4]={(Fl_Input *)0}; Fl_Double_Window* make_widget_panel() { @@ -89,31 +97,31 @@ Fl_Double_Window* make_widget_panel() { { Fl_Button* o = new Fl_Button(295, 115, 20, 20, "@-1<-"); o->tooltip("Left-align the label."); o->type(1); - o->labelcolor(8); + o->labelcolor(FL_INACTIVE_COLOR); o->callback((Fl_Callback*)align_cb, (void*)(FL_ALIGN_LEFT)); } { Fl_Button* o = new Fl_Button(315, 115, 20, 20, "@-1->"); o->tooltip("Right-align the label."); o->type(1); - o->labelcolor(8); + o->labelcolor(FL_INACTIVE_COLOR); o->callback((Fl_Callback*)align_cb, (void*)(FL_ALIGN_RIGHT)); } { Fl_Button* o = new Fl_Button(335, 115, 20, 20, "@-18"); o->tooltip("Top-align the label."); o->type(1); - o->labelcolor(8); + o->labelcolor(FL_INACTIVE_COLOR); o->callback((Fl_Callback*)align_cb, (void*)(FL_ALIGN_TOP)); } { Fl_Button* o = new Fl_Button(355, 115, 20, 20, "@-12"); o->tooltip("Bottom-align the label."); o->type(1); - o->labelcolor(8); + o->labelcolor(FL_INACTIVE_COLOR); o->callback((Fl_Callback*)align_cb, (void*)(FL_ALIGN_BOTTOM)); } { Fl_Button* o = new Fl_Button(375, 115, 20, 20, "@-3square"); o->tooltip("Show the label inside the widget."); o->type(1); - o->labelcolor(8); + o->labelcolor(FL_INACTIVE_COLOR); o->callback((Fl_Callback*)align_cb, (void*)(FL_ALIGN_INSIDE)); } { Fl_Box* o = new Fl_Box(256, 116, 20, 20); @@ -121,7 +129,7 @@ Fl_Double_Window* make_widget_panel() { } o->end(); } - { Fl_Value_Input* o = new Fl_Value_Input(95, 150, 60, 20, "X:"); + { Fl_Value_Input* o = widget_x_input = new Fl_Value_Input(95, 150, 60, 20, "X:"); o->tooltip("The X position of the widget."); o->labelsize(10); o->maximum(2048); @@ -132,7 +140,7 @@ Fl_Double_Window* make_widget_panel() { { Fl_Box* o = new Fl_Box(95, 150, 0, 20, "Position:"); o->align(FL_ALIGN_RIGHT|FL_ALIGN_INSIDE); } - { Fl_Value_Input* o = new Fl_Value_Input(155, 150, 60, 20, "Y:"); + { Fl_Value_Input* o = widget_y_input = new Fl_Value_Input(155, 150, 60, 20, "Y:"); o->tooltip("The Y position of the widget."); o->labelsize(10); o->maximum(2048); @@ -140,7 +148,7 @@ Fl_Double_Window* make_widget_panel() { o->callback((Fl_Callback*)y_cb); o->align(FL_ALIGN_TOP_LEFT); } - { Fl_Value_Input* o = new Fl_Value_Input(215, 150, 60, 20, "Width:"); + { Fl_Value_Input* o = widget_w_input = new Fl_Value_Input(215, 150, 60, 20, "Width:"); o->tooltip("The width of the widget."); o->labelsize(10); o->maximum(2048); @@ -148,7 +156,7 @@ Fl_Double_Window* make_widget_panel() { o->callback((Fl_Callback*)w_cb); o->align(FL_ALIGN_TOP_LEFT); } - { Fl_Value_Input* o = new Fl_Value_Input(275, 150, 60, 20, "Height:"); + { Fl_Value_Input* o = widget_h_input = new Fl_Value_Input(275, 150, 60, 20, "Height:"); o->tooltip("The height of the widget."); o->labelsize(10); o->maximum(2048); @@ -194,12 +202,12 @@ Fl_Double_Window* make_widget_panel() { { Shortcut_Button* o = new Shortcut_Button(95, 210, 300, 20, "Shortcut:"); o->tooltip("The shortcut key for the widget."); o->box(FL_DOWN_BOX); - o->color(7); - o->selection_color(7); + o->color(FL_BACKGROUND2_COLOR); + o->selection_color(FL_BACKGROUND2_COLOR); o->labeltype(FL_NORMAL_LABEL); o->labelfont(0); o->labelsize(14); - o->labelcolor(56); + o->labelcolor(FL_BLACK); o->callback((Fl_Callback*)shortcut_in_cb); o->align(FL_ALIGN_LEFT); o->when(FL_WHEN_RELEASE); @@ -213,19 +221,19 @@ Fl_Double_Window* make_widget_panel() { } { Fl_Light_Button* o = new Fl_Light_Button(210, 235, 60, 20, "Border"); o->tooltip("Add a border around the window."); - o->selection_color(1); + o->selection_color((Fl_Color)1); o->labelsize(10); o->callback((Fl_Callback*)border_cb); } { Fl_Light_Button* o = new Fl_Light_Button(270, 235, 55, 20, "Modal"); o->tooltip("Make the window modal."); - o->selection_color(1); + o->selection_color((Fl_Color)1); o->labelsize(10); o->callback((Fl_Callback*)modal_cb); } { Fl_Light_Button* o = new Fl_Light_Button(325, 235, 70, 20, "Nonmodal"); o->tooltip("Make the window non-modal."); - o->selection_color(1); + o->selection_color((Fl_Color)1); o->labelsize(9); o->callback((Fl_Callback*)non_modal_cb); o->align(132|FL_ALIGN_INSIDE); @@ -236,7 +244,7 @@ Fl_Double_Window* make_widget_panel() { o->callback((Fl_Callback*)propagate_load); { Fl_Light_Button* o = new Fl_Light_Button(95, 260, 70, 20, "Visible"); o->tooltip("Show the widget."); - o->selection_color(1); + o->selection_color((Fl_Color)1); o->labelsize(10); o->callback((Fl_Callback*)visible_cb); } @@ -245,20 +253,20 @@ Fl_Double_Window* make_widget_panel() { } { Fl_Light_Button* o = new Fl_Light_Button(165, 260, 70, 20, "Active"); o->tooltip("Activate the widget."); - o->selection_color(1); + o->selection_color((Fl_Color)1); o->labelsize(10); o->callback((Fl_Callback*)active_cb); } { Fl_Light_Button* o = new Fl_Light_Button(235, 260, 70, 20, "Resizable"); o->tooltip("Make the widget resizable."); - o->selection_color(1); + o->selection_color((Fl_Color)1); o->labelsize(10); o->callback((Fl_Callback*)resizable_cb); o->when(FL_WHEN_CHANGED); } { Fl_Light_Button* o = new Fl_Light_Button(305, 260, 70, 20, "Hotspot"); o->tooltip("Center the window under this widget."); - o->selection_color(1); + o->selection_color((Fl_Color)1); o->labelsize(10); o->callback((Fl_Callback*)hotspot_cb); o->when(FL_WHEN_CHANGED); @@ -411,7 +419,7 @@ Fl_Double_Window* make_widget_panel() { } { Fl_Light_Button* o = new Fl_Light_Button(330, 65, 65, 20, "public"); o->tooltip("Make the widget publicly accessible."); - o->selection_color(1); + o->selection_color((Fl_Color)1); o->labelsize(10); o->callback((Fl_Callback*)name_public_cb); o->when(FL_WHEN_CHANGED); @@ -486,7 +494,7 @@ Fl_Double_Window* make_widget_panel() { } { Fl_Light_Button* o = new Fl_Light_Button(290, 295, 105, 20, "No Change"); o->tooltip("Call the callback even if the value has not changed."); - o->selection_color(1); + o->selection_color((Fl_Color)1); o->labelsize(10); o->callback((Fl_Callback*)when_button_cb); } @@ -509,7 +517,7 @@ Fl_Double_Window* make_widget_panel() { } { Fl_Button* o = new Fl_Button(215, 335, 100, 25, "No &Overlay"); o->tooltip("Hide the widget overlay box."); - o->labelcolor(1); + o->labelcolor((Fl_Color)1); o->callback((Fl_Callback*)overlay_cb); } { Fl_Button* o = new Fl_Button(155, 335, 80, 25, "Revert"); diff --git a/fluid/widget_panel.fl b/fluid/widget_panel.fl index b935b4fc0..2313cc010 100644 --- a/fluid/widget_panel.fl +++ b/fluid/widget_panel.fl @@ -1,5 +1,5 @@ # data file for the Fltk User Interface Designer (fluid) -version 1.0104 +version 1.0106 header_name {.h} code_name {.cxx} Function {make_widget_panel()} {open @@ -124,26 +124,26 @@ image} xywh {256 116 20 20} resizable } } - Fl_Value_Input {} { + Fl_Value_Input widget_x_input { label {X:} - callback x_cb + callback x_cb selected tooltip {The X position of the widget.} xywh {95 150 60 20} labelsize 10 align 5 maximum 2048 step 1 } Fl_Box {} { label {Position:} xywh {95 150 0 20} align 24 } - Fl_Value_Input {} { + Fl_Value_Input widget_y_input { label {Y:} callback y_cb tooltip {The Y position of the widget.} xywh {155 150 60 20} labelsize 10 align 5 maximum 2048 step 1 } - Fl_Value_Input {} { + Fl_Value_Input widget_w_input { label {Width:} callback w_cb tooltip {The width of the widget.} xywh {215 150 60 20} labelsize 10 align 5 maximum 2048 step 1 } - Fl_Value_Input {} { + Fl_Value_Input widget_h_input { label {Height:} callback h_cb tooltip {The height of the widget.} xywh {275 150 60 20} labelsize 10 align 5 maximum 2048 step 1 @@ -470,7 +470,7 @@ image} } Fl_Button {} { label {No &Overlay} - callback overlay_cb selected + callback overlay_cb tooltip {Hide the widget overlay box.} xywh {215 335 100 25} labelcolor 1 } Fl_Button {} { diff --git a/fluid/widget_panel.h b/fluid/widget_panel.h index cda30f37c..d9caea5fe 100644 --- a/fluid/widget_panel.h +++ b/fluid/widget_panel.h @@ -1,4 +1,4 @@ -// generated by Fast Light User Interface Designer (fluid) version 1.0104 +// generated by Fast Light User Interface Designer (fluid) version 1.0106 #ifndef widget_panel_h #define widget_panel_h @@ -21,9 +21,13 @@ extern void align_cb(Fl_Button*, void*); #include #include extern void x_cb(Fl_Value_Input*, void*); +extern Fl_Value_Input *widget_x_input; extern void y_cb(Fl_Value_Input*, void*); +extern Fl_Value_Input *widget_y_input; extern void w_cb(Fl_Value_Input*, void*); +extern Fl_Value_Input *widget_w_input; extern void h_cb(Fl_Value_Input*, void*); +extern Fl_Value_Input *widget_h_input; extern void slider_size_cb(Fl_Value_Input*, void*); extern void min_cb(Fl_Value_Input*, void*); extern void max_cb(Fl_Value_Input*, void*);