module test.TestScales;
private import dui.Table;
class TestScales : Table
{
private import dui.VScale;
private import dui.HScale;
private import dui.MenuItem;
private import dui.Menu;
private import dui.CheckButton;
private import dui.Box;
private import dui.Button;
private import dui.Scrollbar;
private import dui.Separator;
private import dui.OptionMenu;
private import dui.Label;
private import dui.Scale;
private import dui.Adjustment;
private import dui.VBox;
private import dui.HBox;
private import dui.HScrollbar;
private import dui.Range;
VScale vscale;
HScale hscale;
this()
{
debug(1)
{
printf("instantiating TestScales\n");
}
super(1,1,0);
createRangeControls();
}
void createRangeControls()
{
Box box1,box2,box3;
Button button;
Scrollbar scrollbar;
Separator separator;
OptionMenu opt;
Menu menu;
MenuItem item;
Label label;
Scale scale;
Adjustment adj1, adj2;
box1 = new VBox(false,0);
add(box1);
box2 = new HBox(false,0);
box2.setBorderWidth(10);
box1.packStart(box2, true,true,0);
adj1 = new Adjustment(0.0, 0.0, 101.0, 0.1, 1.0, 1.0);
vscale = new VScale(adj1);
box2.packStart(vscale, true, true, 0);
box3 = new VBox(false,10);
box2.packStart(box3,true,true,0);
hscale = new HScale(adj1);
hscale.setSizeRequest(200,-1);
box3.packStart(hscale,true,true,0);
scrollbar = new HScrollbar(adj1);
scrollbar.setUpdatePolicy(cast(int)Range.CONTINUOUS);
box3.packStart(scrollbar,true,true,0);
box2 = new HBox(false,10);
box2.setBorderWidth(10);
box1.packStart(box2,true,true,0);
CheckButton cButton = new CheckButton("Display value on scale widgets");
cButton.setActive(true);
cButton.addOnButtonClicked(&displayValues);
box2.packStart(cButton,true,true,0);
box2 = new HBox(false,10);
box2.setBorderWidth(10);
label = new Label("Scale Value Position:");
box2.packStart(label,false,false,0);
opt = new OptionMenu();
menu = new Menu();
menu.append(new MenuItem("Top",&valueOnTop));
menu.append(new MenuItem("Bottom",&valueOnBottom));
menu.append(new MenuItem("Left",&valueOnLeft));
menu.append(new MenuItem("Right",&valueOnRight));
opt.setMenu(menu);
box2.packStart(opt,false,false,0);
box1.packStart(box2,false,false,0);
box2 = new HBox(false,10);
box2.setBorderWidth(10);
label = new Label("Scale Update Policy:");
box2.packStart(label,false,false,0);
opt = new OptionMenu();
menu = new Menu();
menu.append(new MenuItem("Continuous",&scaleContinuous));
menu.append(new MenuItem("Discontinuous",&scaleDiscontinuous));
menu.append(new MenuItem("Delayed",&scaleDelayed));
opt.setMenu(menu);
box2.packStart(opt,false,false,0);
box1.packStart(box2,false,false,0);
/+
box2 = gtk_hbox_new (FALSE, 10);
gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
label = gtk_label_new ("Scale Digits:");
gtk_box_pack_start (GTK_BOX (box2), label, FALSE, FALSE, 0);
gtk_widget_show (label);
adj2 = gtk_adjustment_new (1.0, 0.0, 5.0, 1.0, 1.0, 0.0);
g_signal_connect (G_OBJECT (adj2), "value_changed",
G_CALLBACK (cb_digits_scale), NULL);
scale = gtk_hscale_new (GTK_ADJUSTMENT (adj2));
gtk_scale_set_digits (GTK_SCALE (scale), 0);
gtk_box_pack_start (GTK_BOX (box2), scale, TRUE, TRUE, 0);
gtk_widget_show (scale);
gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0);
gtk_widget_show (box2);
box2 = gtk_hbox_new (FALSE, 10);
gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
label = gtk_label_new ("Scrollbar Page Size:");
gtk_box_pack_start (GTK_BOX (box2), label, FALSE, FALSE, 0);
gtk_widget_show (label);
adj2 = gtk_adjustment_new (1.0, 1.0, 101.0, 1.0, 1.0, 0.0);
g_signal_connect (G_OBJECT (adj2), "value_changed",
G_CALLBACK (cb_page_size), (gpointer) adj1);
scale = gtk_hscale_new (GTK_ADJUSTMENT (adj2));
gtk_scale_set_digits (GTK_SCALE (scale), 0);
gtk_box_pack_start (GTK_BOX (box2), scale, TRUE, TRUE, 0);
gtk_widget_show (scale);
gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0);
gtk_widget_show (box2);
separator = gtk_hseparator_new ();
gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0);
gtk_widget_show (separator);
box2 = gtk_vbox_new (FALSE, 10);
gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0);
gtk_widget_show (box2);
button = gtk_button_new_with_label ("Quit");
g_signal_connect_swapped (G_OBJECT (button), "clicked",
G_CALLBACK (gtk_main_quit),
NULL);
gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
gtk_widget_grab_default (button);
gtk_widget_show (button);
gtk_widget_show (window);
+/
}
void valueOnTop(MenuItem item)
{
vscale.setValuePos(Scale.TOP);
hscale.setValuePos(Scale.TOP);
}
void valueOnBottom(MenuItem item)
{
vscale.setValuePos(Scale.BOTTOM);
hscale.setValuePos(Scale.BOTTOM);
}
void valueOnLeft(MenuItem item)
{
vscale.setValuePos(Scale.LEFT);
hscale.setValuePos(Scale.LEFT);
}
void valueOnRight(MenuItem item)
{
vscale.setValuePos(Scale.RIGHT);
hscale.setValuePos(Scale.RIGHT);
}
void scaleContinuous(MenuItem item)
{
vscale.setUpdatePolicy(Scale.CONTINUOUS);
hscale.setUpdatePolicy(Scale.CONTINUOUS);
}
void scaleDiscontinuous(MenuItem item)
{
vscale.setUpdatePolicy(Scale.DISCONTINUOUS);
hscale.setUpdatePolicy(Scale.DISCONTINUOUS);
}
void scaleDelayed(MenuItem item)
{
vscale.setUpdatePolicy(Scale.DELAYED);
hscale.setUpdatePolicy(Scale.DELAYED);
}
void displayValues(CheckButton checkButton)
{
vscale.setDrawValue(checkButton.getActive());
hscale.setDrawValue(checkButton.getActive());
}
}