mirror of
https://github.com/fltk/fltk.git
synced 2026-05-27 10:57:58 +08:00
Reordered widgets for proper keyboard navigation.
(in progress: adding keyboard nav to Fl_Tree) git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7639 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
+22
-22
@@ -100,8 +100,6 @@ if ( item ) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
Fl_Box *docallback_box=(Fl_Box *)0;
|
|
||||||
|
|
||||||
Fl_Value_Slider *margintop_slider=(Fl_Value_Slider *)0;
|
Fl_Value_Slider *margintop_slider=(Fl_Value_Slider *)0;
|
||||||
|
|
||||||
static void cb_margintop_slider(Fl_Value_Slider*, void*) {
|
static void cb_margintop_slider(Fl_Value_Slider*, void*) {
|
||||||
@@ -373,6 +371,8 @@ Fl_Menu_Item menu_whenmode_chooser[] = {
|
|||||||
{0,0,0,0,0,0,0,0,0}
|
{0,0,0,0,0,0,0,0,0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Fl_Box *docallback_box=(Fl_Box *)0;
|
||||||
|
|
||||||
Fl_Check_Button *docallback_radio=(Fl_Check_Button *)0;
|
Fl_Check_Button *docallback_radio=(Fl_Check_Button *)0;
|
||||||
|
|
||||||
Fl_Button *selectall_button=(Fl_Button *)0;
|
Fl_Button *selectall_button=(Fl_Button *)0;
|
||||||
@@ -417,6 +417,17 @@ tree->redraw();
|
|||||||
//tree->redraw();
|
//tree->redraw();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Fl_Light_Button *bbbchild02select_toggle=(Fl_Light_Button *)0;
|
||||||
|
|
||||||
|
static void cb_bbbchild02select_toggle(Fl_Light_Button*, void*) {
|
||||||
|
// Toggle select of just the /Bbb/child-02 item
|
||||||
|
int docallback = docallback_radio->value() ? 1 : 0;
|
||||||
|
int onoff = bbbchild02select_toggle->value();
|
||||||
|
if ( onoff ) tree->select("/Bbb/child-02", docallback);
|
||||||
|
else tree->deselect("/Bbb/child-02", docallback);
|
||||||
|
tree->redraw();
|
||||||
|
}
|
||||||
|
|
||||||
Fl_Light_Button *deactivate_toggle=(Fl_Light_Button *)0;
|
Fl_Light_Button *deactivate_toggle=(Fl_Light_Button *)0;
|
||||||
|
|
||||||
static void cb_deactivate_toggle(Fl_Light_Button*, void*) {
|
static void cb_deactivate_toggle(Fl_Light_Button*, void*) {
|
||||||
@@ -508,17 +519,6 @@ static void cb_clearall_button(Fl_Button*, void*) {
|
|||||||
tree->redraw();
|
tree->redraw();
|
||||||
}
|
}
|
||||||
|
|
||||||
Fl_Light_Button *bbbchild02select_toggle=(Fl_Light_Button *)0;
|
|
||||||
|
|
||||||
static void cb_bbbchild02select_toggle(Fl_Light_Button*, void*) {
|
|
||||||
// Toggle select of just the /Bbb/child-02 item
|
|
||||||
int docallback = docallback_radio->value() ? 1 : 0;
|
|
||||||
int onoff = bbbchild02select_toggle->value();
|
|
||||||
if ( onoff ) tree->select("/Bbb/child-02", docallback);
|
|
||||||
else tree->deselect("/Bbb/child-02", docallback);
|
|
||||||
tree->redraw();
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(int argc, char **argv) {
|
int main(int argc, char **argv) {
|
||||||
{ window = new Fl_Double_Window(580, 695, "tree");
|
{ window = new Fl_Double_Window(580, 695, "tree");
|
||||||
{ tree = new Fl_Tree(15, 15, 550, 390);
|
{ tree = new Fl_Tree(15, 15, 550, 390);
|
||||||
@@ -534,10 +534,6 @@ int main(int argc, char **argv) {
|
|||||||
tree->when(FL_WHEN_RELEASE);
|
tree->when(FL_WHEN_RELEASE);
|
||||||
tree->end();
|
tree->end();
|
||||||
} // Fl_Tree* tree
|
} // Fl_Tree* tree
|
||||||
{ docallback_box = new Fl_Box(280, 521, 285, 81);
|
|
||||||
docallback_box->box(FL_GTK_DOWN_BOX);
|
|
||||||
docallback_box->color(FL_DARK1);
|
|
||||||
} // Fl_Box* docallback_box
|
|
||||||
{ Fl_Value_Slider* o = margintop_slider = new Fl_Value_Slider(190, 414, 240, 16, "margintop()");
|
{ Fl_Value_Slider* o = margintop_slider = new Fl_Value_Slider(190, 414, 240, 16, "margintop()");
|
||||||
margintop_slider->tooltip("Changes the top margin for the tree widget");
|
margintop_slider->tooltip("Changes the top margin for the tree widget");
|
||||||
margintop_slider->type(1);
|
margintop_slider->type(1);
|
||||||
@@ -663,6 +659,10 @@ d");
|
|||||||
whenmode_chooser->value(1);
|
whenmode_chooser->value(1);
|
||||||
cb_whenmode_chooser(whenmode_chooser, (void*)0);
|
cb_whenmode_chooser(whenmode_chooser, (void*)0);
|
||||||
} // Fl_Choice* whenmode_chooser
|
} // Fl_Choice* whenmode_chooser
|
||||||
|
{ docallback_box = new Fl_Box(280, 521, 285, 81);
|
||||||
|
docallback_box->box(FL_GTK_DOWN_BOX);
|
||||||
|
docallback_box->color(FL_DARK1);
|
||||||
|
} // Fl_Box* docallback_box
|
||||||
{ docallback_radio = new Fl_Check_Button(310, 529, 230, 16, "Invoke callback on select changes?");
|
{ docallback_radio = new Fl_Check_Button(310, 529, 230, 16, "Invoke callback on select changes?");
|
||||||
docallback_radio->tooltip("Invokes the callback when one or more item\'s state changes.");
|
docallback_radio->tooltip("Invokes the callback when one or more item\'s state changes.");
|
||||||
docallback_radio->down_box(FL_DOWN_BOX);
|
docallback_radio->down_box(FL_DOWN_BOX);
|
||||||
@@ -683,6 +683,11 @@ d");
|
|||||||
bbbselect_toggle->labelsize(11);
|
bbbselect_toggle->labelsize(11);
|
||||||
bbbselect_toggle->callback((Fl_Callback*)cb_bbbselect_toggle);
|
bbbselect_toggle->callback((Fl_Callback*)cb_bbbselect_toggle);
|
||||||
} // Fl_Light_Button* bbbselect_toggle
|
} // Fl_Light_Button* bbbselect_toggle
|
||||||
|
{ bbbchild02select_toggle = new Fl_Light_Button(430, 571, 115, 16, " Toggle child-02");
|
||||||
|
bbbchild02select_toggle->tooltip("Toggle the single item /Bbb/child-02");
|
||||||
|
bbbchild02select_toggle->labelsize(11);
|
||||||
|
bbbchild02select_toggle->callback((Fl_Callback*)cb_bbbchild02select_toggle);
|
||||||
|
} // Fl_Light_Button* bbbchild02select_toggle
|
||||||
{ deactivate_toggle = new Fl_Light_Button(280, 625, 90, 16, " Deactivate");
|
{ deactivate_toggle = new Fl_Light_Button(280, 625, 90, 16, " Deactivate");
|
||||||
deactivate_toggle->tooltip("Toggle the deactivation state of the selected items.\nIf none are selected, a\
|
deactivate_toggle->tooltip("Toggle the deactivation state of the selected items.\nIf none are selected, a\
|
||||||
ll are set.");
|
ll are set.");
|
||||||
@@ -714,11 +719,6 @@ ll are set.");
|
|||||||
clearall_button->labelsize(11);
|
clearall_button->labelsize(11);
|
||||||
clearall_button->callback((Fl_Callback*)cb_clearall_button);
|
clearall_button->callback((Fl_Callback*)cb_clearall_button);
|
||||||
} // Fl_Button* clearall_button
|
} // Fl_Button* clearall_button
|
||||||
{ bbbchild02select_toggle = new Fl_Light_Button(430, 571, 115, 16, " Toggle child-02");
|
|
||||||
bbbchild02select_toggle->tooltip("Toggle the single item /Bbb/child-02");
|
|
||||||
bbbchild02select_toggle->labelsize(11);
|
|
||||||
bbbchild02select_toggle->callback((Fl_Callback*)cb_bbbchild02select_toggle);
|
|
||||||
} // Fl_Light_Button* bbbchild02select_toggle
|
|
||||||
window->end();
|
window->end();
|
||||||
} // Fl_Double_Window* window
|
} // Fl_Double_Window* window
|
||||||
// Initialize Tree
|
// Initialize Tree
|
||||||
|
|||||||
+15
-16
@@ -124,9 +124,6 @@ if ( item ) {
|
|||||||
xywh {15 15 550 390} box DOWN_BOX color 55
|
xywh {15 15 550 390} box DOWN_BOX color 55
|
||||||
class Fl_Tree
|
class Fl_Tree
|
||||||
} {}
|
} {}
|
||||||
Fl_Box docallback_box {
|
|
||||||
xywh {280 521 285 81} box GTK_DOWN_BOX color 47
|
|
||||||
}
|
|
||||||
Fl_Value_Slider margintop_slider {
|
Fl_Value_Slider margintop_slider {
|
||||||
label {margintop()}
|
label {margintop()}
|
||||||
user_data tree
|
user_data tree
|
||||||
@@ -454,6 +451,9 @@ switch ( whenmode_chooser->value() ) {
|
|||||||
xywh {60 60 36 21} labelsize 11
|
xywh {60 60 36 21} labelsize 11
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Fl_Box docallback_box {
|
||||||
|
xywh {280 521 285 81} box GTK_DOWN_BOX color 47
|
||||||
|
}
|
||||||
Fl_Check_Button docallback_radio {
|
Fl_Check_Button docallback_radio {
|
||||||
label {Invoke callback on select changes?} user_data_type {void*}
|
label {Invoke callback on select changes?} user_data_type {void*}
|
||||||
tooltip {Invokes the callback when one or more item's state changes.} xywh {310 529 230 16} down_box DOWN_BOX labelsize 11
|
tooltip {Invokes the callback when one or more item's state changes.} xywh {310 529 230 16} down_box DOWN_BOX labelsize 11
|
||||||
@@ -497,6 +497,16 @@ tree->redraw();
|
|||||||
//tree->redraw();}
|
//tree->redraw();}
|
||||||
tooltip {Toggle selection of the /Bbb item and its children} xywh {430 552 115 15} labelsize 11
|
tooltip {Toggle selection of the /Bbb item and its children} xywh {430 552 115 15} labelsize 11
|
||||||
}
|
}
|
||||||
|
Fl_Light_Button bbbchild02select_toggle {
|
||||||
|
label { Toggle child-02}
|
||||||
|
callback {// Toggle select of just the /Bbb/child-02 item
|
||||||
|
int docallback = docallback_radio->value() ? 1 : 0;
|
||||||
|
int onoff = bbbchild02select_toggle->value();
|
||||||
|
if ( onoff ) tree->select("/Bbb/child-02", docallback);
|
||||||
|
else tree->deselect("/Bbb/child-02", docallback);
|
||||||
|
tree->redraw();}
|
||||||
|
tooltip {Toggle the single item /Bbb/child-02} xywh {430 571 115 16} labelsize 11
|
||||||
|
}
|
||||||
Fl_Light_Button deactivate_toggle {
|
Fl_Light_Button deactivate_toggle {
|
||||||
label { Deactivate}
|
label { Deactivate}
|
||||||
callback {int onoff = deactivate_toggle->value() ? 0 : 1;
|
callback {int onoff = deactivate_toggle->value() ? 0 : 1;
|
||||||
@@ -581,27 +591,16 @@ tree->redraw();}
|
|||||||
Fl_Button clearall_button {
|
Fl_Button clearall_button {
|
||||||
label {Clear All}
|
label {Clear All}
|
||||||
callback {tree->clear();
|
callback {tree->clear();
|
||||||
tree->redraw();}
|
tree->redraw();} selected
|
||||||
tooltip {Clears all items
|
tooltip {Clears all items
|
||||||
Tests Fl_Tree::clear()} xywh {475 644 90 16} labelsize 11
|
Tests Fl_Tree::clear()} xywh {475 644 90 16} labelsize 11
|
||||||
}
|
}
|
||||||
Fl_Light_Button bbbchild02select_toggle {
|
|
||||||
label { Toggle child-02}
|
|
||||||
callback {// Toggle select of just the /Bbb/child-02 item
|
|
||||||
int docallback = docallback_radio->value() ? 1 : 0;
|
|
||||||
int onoff = bbbchild02select_toggle->value();
|
|
||||||
if ( onoff ) tree->select("/Bbb/child-02", docallback);
|
|
||||||
else tree->deselect("/Bbb/child-02", docallback);
|
|
||||||
tree->redraw();}
|
|
||||||
tooltip {Toggle the single item /Bbb/child-02} xywh {430 571 115 16} labelsize 11
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
code {// Initialize Tree
|
code {// Initialize Tree
|
||||||
tree->root_label("ROOT");
|
tree->root_label("ROOT");
|
||||||
docallback_radio->value(1); // enable docallbacks radio button
|
docallback_radio->value(1); // enable docallbacks radio button
|
||||||
RebuildTree();
|
RebuildTree();
|
||||||
tree->show_self();} {selected
|
tree->show_self();} {}
|
||||||
}
|
|
||||||
code {// FLTK stuff
|
code {// FLTK stuff
|
||||||
Fl::scheme("gtk+");
|
Fl::scheme("gtk+");
|
||||||
window->resizable(window);
|
window->resizable(window);
|
||||||
|
|||||||
+4
-4
@@ -9,13 +9,11 @@
|
|||||||
#include <FL/Fl_Group.H>
|
#include <FL/Fl_Group.H>
|
||||||
#include <FL/Fl_Tree.H>
|
#include <FL/Fl_Tree.H>
|
||||||
#include <FL/fl_ask.H>
|
#include <FL/fl_ask.H>
|
||||||
void CccButton_CB(Fl_Widget*, void*data);
|
void Button_CB(Fl_Widget*w, void*data);
|
||||||
void RebuildTree();
|
void RebuildTree();
|
||||||
#include <FL/Fl_Double_Window.H>
|
#include <FL/Fl_Double_Window.H>
|
||||||
extern Fl_Double_Window *window;
|
extern Fl_Double_Window *window;
|
||||||
extern Fl_Tree *tree;
|
extern Fl_Tree *tree;
|
||||||
#include <FL/Fl_Box.H>
|
|
||||||
extern Fl_Box *docallback_box;
|
|
||||||
#include <FL/Fl_Value_Slider.H>
|
#include <FL/Fl_Value_Slider.H>
|
||||||
extern Fl_Value_Slider *margintop_slider;
|
extern Fl_Value_Slider *margintop_slider;
|
||||||
extern Fl_Value_Slider *marginleft_slider;
|
extern Fl_Value_Slider *marginleft_slider;
|
||||||
@@ -31,19 +29,21 @@ extern Fl_Choice *connectorstyle_chooser;
|
|||||||
extern Fl_Choice *labelcolor_chooser;
|
extern Fl_Choice *labelcolor_chooser;
|
||||||
extern Fl_Choice *selectmode_chooser;
|
extern Fl_Choice *selectmode_chooser;
|
||||||
extern Fl_Choice *whenmode_chooser;
|
extern Fl_Choice *whenmode_chooser;
|
||||||
|
#include <FL/Fl_Box.H>
|
||||||
|
extern Fl_Box *docallback_box;
|
||||||
extern Fl_Check_Button *docallback_radio;
|
extern Fl_Check_Button *docallback_radio;
|
||||||
#include <FL/Fl_Button.H>
|
#include <FL/Fl_Button.H>
|
||||||
extern Fl_Button *selectall_button;
|
extern Fl_Button *selectall_button;
|
||||||
extern Fl_Button *deselectall_button;
|
extern Fl_Button *deselectall_button;
|
||||||
#include <FL/Fl_Light_Button.H>
|
#include <FL/Fl_Light_Button.H>
|
||||||
extern Fl_Light_Button *bbbselect_toggle;
|
extern Fl_Light_Button *bbbselect_toggle;
|
||||||
|
extern Fl_Light_Button *bbbchild02select_toggle;
|
||||||
extern Fl_Light_Button *deactivate_toggle;
|
extern Fl_Light_Button *deactivate_toggle;
|
||||||
extern Fl_Light_Button *bold_toggle;
|
extern Fl_Light_Button *bold_toggle;
|
||||||
extern Fl_Button *insertabove_button;
|
extern Fl_Button *insertabove_button;
|
||||||
extern Fl_Button *rebuildtree_button;
|
extern Fl_Button *rebuildtree_button;
|
||||||
extern Fl_Button *clearselected_button;
|
extern Fl_Button *clearselected_button;
|
||||||
extern Fl_Button *clearall_button;
|
extern Fl_Button *clearall_button;
|
||||||
extern Fl_Light_Button *bbbchild02select_toggle;
|
|
||||||
extern Fl_Menu_Item menu_collapseicons_chooser[];
|
extern Fl_Menu_Item menu_collapseicons_chooser[];
|
||||||
extern Fl_Menu_Item menu_connectorstyle_chooser[];
|
extern Fl_Menu_Item menu_connectorstyle_chooser[];
|
||||||
extern Fl_Menu_Item menu_labelcolor_chooser[];
|
extern Fl_Menu_Item menu_labelcolor_chooser[];
|
||||||
|
|||||||
Reference in New Issue
Block a user