From a69b71b480495a134732d5bf957cfb436d9f13d0 Mon Sep 17 00:00:00 2001 From: Jeff Brown Date: Thu, 31 May 2001 14:31:15 +0000 Subject: freeze --- .../org.eclipse.swt.examples.controls/.classpath | 13 + .../org.eclipse.swt.examples.controls/.cvsignore | 1 + .../org.eclipse.swt.examples.controls/.vcm_meta | 12 + .../org.eclipse.swt.examples.controls/plugin.jars | 3 + .../plugin.properties | 179 +++++++++ .../org.eclipse.swt.examples.controls/plugin.xml | 56 +++ .../swt/examples/controls/AlignableTab.java | 76 ++++ .../eclipse/swt/examples/controls/ButtonTab.java | 181 +++++++++ .../eclipse/swt/examples/controls/ComboTab.java | 107 ++++++ .../eclipse/swt/examples/controls/DialogTab.java | 424 +++++++++++++++++++++ .../eclipse/swt/examples/controls/LabelTab.java | 158 ++++++++ .../org/eclipse/swt/examples/controls/ListTab.java | 74 ++++ .../swt/examples/controls/ProgressBarTab.java | 107 ++++++ .../eclipse/swt/examples/controls/RangeTab.java | 161 ++++++++ .../org/eclipse/swt/examples/controls/SashTab.java | 158 ++++++++ .../swt/examples/controls/ScrollableTab.java | 48 +++ .../eclipse/swt/examples/controls/ShellTab.java | 217 +++++++++++ .../eclipse/swt/examples/controls/SliderTab.java | 226 +++++++++++ .../src/org/eclipse/swt/examples/controls/Tab.java | 364 ++++++++++++++++++ .../eclipse/swt/examples/controls/TableTab.java | 172 +++++++++ .../org/eclipse/swt/examples/controls/TextTab.java | 100 +++++ .../eclipse/swt/examples/controls/ToolBarTab.java | 268 +++++++++++++ .../org/eclipse/swt/examples/controls/TreeTab.java | 113 ++++++ .../eclipse/swt/examples/controls/closedFolder.gif | Bin 0 -> 906 bytes .../eclipse/swt/examples/controls/openFolder.gif | Bin 0 -> 184 bytes .../org/eclipse/swt/examples/controls/target.gif | Bin 0 -> 917 bytes .../org.eclipse.swt.examples.launcher/.classpath | 15 + .../org.eclipse.swt.examples.launcher/.cvsignore | 1 + .../org.eclipse.swt.examples.launcher/.vcm_meta | 11 + ....eclipse.swt.examples.launcher.launchItems.html | 48 +++ .../org.eclipse.swt.examples.launcher/plugin.jars | 1 + .../plugin.properties | 42 ++ .../org.eclipse.swt.examples.launcher/plugin.xml | 58 +++ ...g.eclipse.swt.examples.launcher.launchItems.xsd | 181 +++++++++ .../swt/examples/launcher/LaunchDelegate.java | 9 + .../examples/launcher/ProgramLaunchDelegate.java | 89 +++++ .../examples/launcher/URLAsFileInputAdapter.java | 42 ++ .../swt/examples/launcher/ViewLaunchDelegate.java | 23 ++ .../org.eclipse.swt.examples.ole.win32/.classpath | 13 + .../org.eclipse.swt.examples.ole.win32/.cvsignore | 1 + .../org.eclipse.swt.examples.ole.win32/.vcm_meta | 12 + .../org.eclipse.swt.examples.ole.win32/plugin.jars | 1 + .../plugin.properties | 39 ++ .../org.eclipse.swt.examples.ole.win32/plugin.xml | 58 +++ .../swt/examples/ole/win32/backward_nav.gif | Bin 0 -> 881 bytes .../eclipse/swt/examples/ole/win32/forward_nav.gif | Bin 0 -> 883 bytes .../eclipse/swt/examples/ole/win32/home_nav.gif | Bin 0 -> 928 bytes .../eclipse/swt/examples/ole/win32/refresh_nav.gif | Bin 0 -> 160 bytes .../eclipse/swt/examples/ole/win32/search_nav.gif | Bin 0 -> 245 bytes .../eclipse/swt/examples/ole/win32/stop_nav.gif | Bin 0 -> 174 bytes examples/org.eclipse.swt.examples.paint/.classpath | 14 + examples/org.eclipse.swt.examples.paint/.cvsignore | 1 + examples/org.eclipse.swt.examples.paint/.vcm_meta | 12 + .../icons/airbrush_tool.gif | Bin 0 -> 890 bytes .../icons/ellipse_tool.gif | Bin 0 -> 872 bytes .../icons/filledrectangle_tool.gif | Bin 0 -> 872 bytes .../icons/line_tool.gif | Bin 0 -> 860 bytes .../icons/pencil_tool.gif | Bin 0 -> 874 bytes .../icons/polyline_tool.gif | Bin 0 -> 879 bytes .../icons/rectangle_tool.gif | Bin 0 -> 865 bytes .../org.eclipse.swt.examples.paint/paintsrc.zip | Bin 0 -> 28703 bytes .../org.eclipse.swt.examples.paint/plugin.jars | 1 + .../plugin.properties | 50 +++ examples/org.eclipse.swt.examples.paint/plugin.xml | 148 +++++++ .../src/org/eclipse/swt/examples/paint/Assert.java | 42 ++ .../paint/DragInteractivePaintSession.java | 170 +++++++++ .../swt/examples/paint/FilledRectangleTool.java | 86 +++++ .../eclipse/swt/examples/paint/PaintRenderer.java | 19 + .../eclipse/swt/examples/paint/PaintStatus.java | 99 +++++ .../swt/examples/paint/PaintViewAction.java | 78 ++++ .../paint/SegmentedInteractivePaintSession.java | 192 ++++++++++ .../swt/examples/paint/SimplePaintSession.java | 87 +++++ 72 files changed, 4861 insertions(+) create mode 100755 examples/org.eclipse.swt.examples.controls/.classpath create mode 100755 examples/org.eclipse.swt.examples.controls/.cvsignore create mode 100755 examples/org.eclipse.swt.examples.controls/.vcm_meta create mode 100755 examples/org.eclipse.swt.examples.controls/plugin.jars create mode 100755 examples/org.eclipse.swt.examples.controls/plugin.properties create mode 100755 examples/org.eclipse.swt.examples.controls/plugin.xml create mode 100755 examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/AlignableTab.java create mode 100755 examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/ButtonTab.java create mode 100755 examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/ComboTab.java create mode 100755 examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/DialogTab.java create mode 100755 examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/LabelTab.java create mode 100755 examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/ListTab.java create mode 100755 examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/ProgressBarTab.java create mode 100755 examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/RangeTab.java create mode 100755 examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/SashTab.java create mode 100755 examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/ScrollableTab.java create mode 100755 examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/ShellTab.java create mode 100755 examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/SliderTab.java create mode 100755 examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/Tab.java create mode 100755 examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/TableTab.java create mode 100755 examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/TextTab.java create mode 100755 examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/ToolBarTab.java create mode 100755 examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/TreeTab.java create mode 100755 examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/closedFolder.gif create mode 100755 examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/openFolder.gif create mode 100755 examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/target.gif create mode 100755 examples/org.eclipse.swt.examples.launcher/.classpath create mode 100755 examples/org.eclipse.swt.examples.launcher/.cvsignore create mode 100755 examples/org.eclipse.swt.examples.launcher/.vcm_meta create mode 100755 examples/org.eclipse.swt.examples.launcher/doc/org.eclipse.swt.examples.launcher.launchItems.html create mode 100755 examples/org.eclipse.swt.examples.launcher/plugin.jars create mode 100755 examples/org.eclipse.swt.examples.launcher/plugin.properties create mode 100755 examples/org.eclipse.swt.examples.launcher/plugin.xml create mode 100755 examples/org.eclipse.swt.examples.launcher/schema/org.eclipse.swt.examples.launcher.launchItems.xsd create mode 100755 examples/org.eclipse.swt.examples.launcher/src/org/eclipse/swt/examples/launcher/LaunchDelegate.java create mode 100755 examples/org.eclipse.swt.examples.launcher/src/org/eclipse/swt/examples/launcher/ProgramLaunchDelegate.java create mode 100755 examples/org.eclipse.swt.examples.launcher/src/org/eclipse/swt/examples/launcher/URLAsFileInputAdapter.java create mode 100755 examples/org.eclipse.swt.examples.launcher/src/org/eclipse/swt/examples/launcher/ViewLaunchDelegate.java create mode 100755 examples/org.eclipse.swt.examples.ole.win32/.classpath create mode 100755 examples/org.eclipse.swt.examples.ole.win32/.cvsignore create mode 100755 examples/org.eclipse.swt.examples.ole.win32/.vcm_meta create mode 100755 examples/org.eclipse.swt.examples.ole.win32/plugin.jars create mode 100755 examples/org.eclipse.swt.examples.ole.win32/plugin.properties create mode 100755 examples/org.eclipse.swt.examples.ole.win32/plugin.xml create mode 100755 examples/org.eclipse.swt.examples.ole.win32/src/org/eclipse/swt/examples/ole/win32/backward_nav.gif create mode 100755 examples/org.eclipse.swt.examples.ole.win32/src/org/eclipse/swt/examples/ole/win32/forward_nav.gif create mode 100755 examples/org.eclipse.swt.examples.ole.win32/src/org/eclipse/swt/examples/ole/win32/home_nav.gif create mode 100755 examples/org.eclipse.swt.examples.ole.win32/src/org/eclipse/swt/examples/ole/win32/refresh_nav.gif create mode 100755 examples/org.eclipse.swt.examples.ole.win32/src/org/eclipse/swt/examples/ole/win32/search_nav.gif create mode 100755 examples/org.eclipse.swt.examples.ole.win32/src/org/eclipse/swt/examples/ole/win32/stop_nav.gif create mode 100755 examples/org.eclipse.swt.examples.paint/.classpath create mode 100755 examples/org.eclipse.swt.examples.paint/.cvsignore create mode 100755 examples/org.eclipse.swt.examples.paint/.vcm_meta create mode 100755 examples/org.eclipse.swt.examples.paint/icons/airbrush_tool.gif create mode 100755 examples/org.eclipse.swt.examples.paint/icons/ellipse_tool.gif create mode 100755 examples/org.eclipse.swt.examples.paint/icons/filledrectangle_tool.gif create mode 100755 examples/org.eclipse.swt.examples.paint/icons/line_tool.gif create mode 100755 examples/org.eclipse.swt.examples.paint/icons/pencil_tool.gif create mode 100755 examples/org.eclipse.swt.examples.paint/icons/polyline_tool.gif create mode 100755 examples/org.eclipse.swt.examples.paint/icons/rectangle_tool.gif create mode 100755 examples/org.eclipse.swt.examples.paint/paintsrc.zip create mode 100755 examples/org.eclipse.swt.examples.paint/plugin.jars create mode 100755 examples/org.eclipse.swt.examples.paint/plugin.properties create mode 100755 examples/org.eclipse.swt.examples.paint/plugin.xml create mode 100755 examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/Assert.java create mode 100755 examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/DragInteractivePaintSession.java create mode 100755 examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/FilledRectangleTool.java create mode 100755 examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PaintRenderer.java create mode 100755 examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PaintStatus.java create mode 100755 examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PaintViewAction.java create mode 100755 examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/SegmentedInteractivePaintSession.java create mode 100755 examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/SimplePaintSession.java diff --git a/examples/org.eclipse.swt.examples.controls/.classpath b/examples/org.eclipse.swt.examples.controls/.classpath new file mode 100755 index 0000000000..2057dc6610 --- /dev/null +++ b/examples/org.eclipse.swt.examples.controls/.classpath @@ -0,0 +1,13 @@ + + + + + + + + + + diff --git a/examples/org.eclipse.swt.examples.controls/.cvsignore b/examples/org.eclipse.swt.examples.controls/.cvsignore new file mode 100755 index 0000000000..c5e82d7458 --- /dev/null +++ b/examples/org.eclipse.swt.examples.controls/.cvsignore @@ -0,0 +1 @@ +bin \ No newline at end of file diff --git a/examples/org.eclipse.swt.examples.controls/.vcm_meta b/examples/org.eclipse.swt.examples.controls/.vcm_meta new file mode 100755 index 0000000000..e9dbb98bc0 --- /dev/null +++ b/examples/org.eclipse.swt.examples.controls/.vcm_meta @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/examples/org.eclipse.swt.examples.controls/plugin.jars b/examples/org.eclipse.swt.examples.controls/plugin.jars new file mode 100755 index 0000000000..493bce128f --- /dev/null +++ b/examples/org.eclipse.swt.examples.controls/plugin.jars @@ -0,0 +1,3 @@ +controls.jar =\ + src, \ + icons diff --git a/examples/org.eclipse.swt.examples.controls/plugin.properties b/examples/org.eclipse.swt.examples.controls/plugin.properties new file mode 100755 index 0000000000..287b5c13bc --- /dev/null +++ b/examples/org.eclipse.swt.examples.controls/plugin.properties @@ -0,0 +1,179 @@ +plugin.SWTControlsExample.name = SWT Controls Example Plugin +category.SWTExamples.name = SWT Examples +view.ControlsExample.name = Controls + +launchcategory.SWTExamples.name = SWT Examples +launchitem.ControlsExample.name = Controls +launchitem.ControlsExample.description = This example is a simple demonstration of common Standard Widget Toolkip (SWT) UI controls. It consists of a shell and tab folder where each tab in the folder allows the user to interact with a control. + +error.CouldNotLoadResources = Unable to load resources : {0} + +Text_Buttons = Text Buttons +Size = Size +Alignment = Alignment +Left = Left +Right = Right +Up = Up +Down = Down +Center = Center +One = One +Two = Two +Three = Three +Image_Buttons = Image Buttons +Control_Example = Control Example +Parameters = Parameters +State = State +Enabled = Enabled +Visible = Visible +Preferred = Preferred +Styles = Styles +Text_Labels = Text Labels +Image_Labels = Image Labels +One_Two_Three = One Two Three +Text_ToolBar = Text ToolBar +Image_ToolBar = Image ToolBar +Maximum = Maximum +Minimum = Minimum +Selection = Selection +Increment = Increment +Page_Increment = Page Increment +Thumb = Thumb +Tree_With_Images = Tree With Images +Dialog_Type = Dialog Type +Create_Dialog = Create Dialog +Button_Styles = Button Styles +Icon_Styles = Icon Styles +Modal_Styles = Modal Styles +File_Dialog_Styles = File Dialog Styles +Dialog_Result = Dialog Result +ColorDialog = ColorDialog +DirectoryDialog = DirectoryDialog +FileDialog = FileDialog +FontDialog = FontDialog +MessageBox = MessageBox +Multi_line = A multi line text widget. +Example_string = The quick brown fox jumped over the lazy dogs. +Header_Visible = Header Visible +Lines_Visible = Lines Visible +Node_1 = Node 1 +Node_2 = Node 2 +Node_3 = Node 3 +Node_4 = Node 4 +Node_1_1 = Node 1.1 +Node_2_1 = Node 2.1 +Node_3_1 = Node 3.1 +Node_2_2 = Node 2.2 +Node_2_2_1 = Node 2.2.1 +Parent = Parent +No_Parent = No Parent +Decoration_Styles = Decoration Styles +Create_Shell = Create Shell +Close_All_Shells = Close All Shells +Push = Push +Radio = Radio +Check = Check +Drop_Down = Drop Down +Images_failed = Warning: Failed to load images +readme_txt = readme.txt +Index = Index: +Title = Title: +Result = Result: +FilterName_0 = Text Files +FilterName_1 = Batch Files +FilterName_2 = Doc Files +TableTitle_0 = Name +TableTitle_1 = Type +TableTitle_2 = Size +TableTitle_3 = Modified +TableLine0_0 = +TableLine0_1 = classes +TableLine0_2 = 0 +TableLine0_3 = today +TableLine1_0 = +TableLine1_1 = databases +TableLine1_2 = 2556 +TableLine1_3 = +TableLine2_0 = +TableLine2_1 = images +TableLine2_2 = 91571 +TableLine2_3 = yesterday +ListData0_0 = Line 1 +ListData0_1 = Line 2 +ListData0_2 = Line 3 +ListData0_3 = Line 4 +ListData0_4 = Line 5 +ListData0_5 = Line 6 +ListData0_6 = Line 7 +ListData0_7 = Line 8 +ListData0_8 = Longest Line In List +ListData1_0 = Apples +ListData1_1 = Oranges +ListData1_2 = Bananas +ListData1_3 = Grapefruit +ListData1_4 = Peaches +ListData1_5 = Kiwi +ListData1_6 = Apricots +ListData1_7 = Strawberries +ListData1_8 = The Longest String +Button = Button +Combo = Combo +Dialog = Dialog +Label = Label +List = List +ProgressBar = ProgressBar +Sash = Sash +Shell = Shell +Slider_and_Scale = Slider and Scale +Table = Table +Text = Text +ToolBar = ToolBar +Tree = Tree +RichText = RichText +Slider = Slider +Scale = Scale +SWT_PUSH = SWT.PUSH +SWT_CHECK = SWT.CHECK +SWT_RADIO = SWT.RADIO +SWT_TOGGLE = SWT.TOGGLE +SWT_ARROW = SWT.ARROW +SWT_BORDER = SWT.BORDER +SWT_DROP_DOWN = SWT.DROP_DOWN +SWT_READ_ONLY = SWT.READ_ONLY +SWT_SIMPLE = SWT.SIMPLE +SWT_SEPARATOR = SWT.SEPARATOR +SWT_HORIZONTAL = SWT.HORIZONTAL +SWT_VERTICAL = SWT.VERTICAL +SWT_SHADOW_IN = SWT.SHADOW_IN +SWT_SHADOW_OUT = SWT.SHADOW_OUT +SWT_SINGLE = SWT.SINGLE +SWT_MULTI = SWT.MULTI +SWT_H_SCROLL = SWT.H_SCROLL +SWT_V_SCROLL = SWT.V_SCROLL +SWT_FLAT = SWT.FLAT +SWT_WRAP = SWT.WRAP +SWT_SAVE = SWT.SAVE +SWT_OPEN = SWT.OPEN +SWT_PRIMARY_MODAL = SWT.PRIMARY_MODAL +SWT_APPLICATION_MODAL = SWT.APPLICATION_MODAL +SWT_SYSTEM_MODAL = SWT.SYSTEM_MODAL +SWT_MODELESS = SWT.MODELESS +SWT_ICON_ERROR = SWT.ICON_ERROR +SWT_ICON_INFORMATION = SWT.ICON_INFORMATION +SWT_ICON_QUESTION = SWT.ICON_QUESTION +SWT_ICON_WARNING = SWT.ICON_WARNING +SWT_ICON_WORKING = SWT.ICON_WORKING +SWT_OK = SWT.OK +SWT_CANCEL = SWT.CANCEL +SWT_YES = SWT.YES +SWT_NO = SWT.NO +SWT_RETRY = SWT.RETRY +SWT_ABORT = SWT.ABORT +SWT_IGNORE = SWT.IGNORE +SWT_NO_TRIM = SWT.NO_TRIM +SWT_CLOSE = SWT.CLOSE +SWT_TITLE = SWT.TITLE +SWT_MIN = SWT.MIN +SWT_MAX = SWT.MAX +SWT_RESIZE = SWT.RESIZE +SWT_FULL_SELECTION = SWT.FULL_SELECTION +SWT_SMOOTH = SWT.SMOOTH \ No newline at end of file diff --git a/examples/org.eclipse.swt.examples.controls/plugin.xml b/examples/org.eclipse.swt.examples.controls/plugin.xml new file mode 100755 index 0000000000..79a4749e1d --- /dev/null +++ b/examples/org.eclipse.swt.examples.controls/plugin.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/AlignableTab.java b/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/AlignableTab.java new file mode 100755 index 0000000000..82f7df5948 --- /dev/null +++ b/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/AlignableTab.java @@ -0,0 +1,76 @@ +package org.eclipse.swt.examples.controls; + +/* + * (c) Copyright IBM Corp. 2000, 2001. + * All Rights Reserved + */ + +import org.eclipse.swt.*; +import org.eclipse.swt.widgets.*; +import org.eclipse.swt.layout.*; +import org.eclipse.swt.events.*; + +/** + * AlignableTab is the abstract + * superclass of example controls that can be + * aligned. + */ +abstract class AlignableTab extends Tab { + + /* Allignment Controls */ + Button leftButton, rightButton, centerButton; + + /* Alignment Group */ + Group allignmentGroup; + + /** + * Creates the "Control" group. + */ + void createControlGroup () { + super.createControlGroup (); + + /* Create the group */ + allignmentGroup = new Group (controlGroup, SWT.NULL); + allignmentGroup.setLayout (new GridLayout ()); + allignmentGroup.setLayoutData (new GridData(GridData.HORIZONTAL_ALIGN_FILL | + GridData.VERTICAL_ALIGN_FILL)); + allignmentGroup.setText (ControlPlugin.getResourceString("Alignment")); + + /* Create the controls */ + leftButton = new Button (allignmentGroup, SWT.RADIO); + leftButton.setText (ControlPlugin.getResourceString("Left")); + centerButton = new Button (allignmentGroup, SWT.RADIO); + centerButton.setText(ControlPlugin.getResourceString("Center")); + rightButton = new Button (allignmentGroup, SWT.RADIO); + rightButton.setText (ControlPlugin.getResourceString("Right")); + + /* Add the listeners */ + SelectionListener selectionListener = new SelectionAdapter () { + public void widgetSelected(SelectionEvent event) { + if (!((Button) event.widget).getSelection ()) return; + setExampleWidgetAlignment (); + }; + }; + leftButton.addSelectionListener (selectionListener); + centerButton.addSelectionListener (selectionListener); + rightButton.addSelectionListener (selectionListener); + } + + /** + * Sets the alignment of the "Example" widgets. + */ + abstract void setExampleWidgetAlignment (); + + /** + * Sets the state of the "Example" widgets. + */ + void setExampleWidgetState () { + super.setExampleWidgetState (); + Control [] controls = getExampleWidgets (); + if (controls.length != 0) { + leftButton.setSelection ((controls [0].getStyle () & SWT.LEFT) != 0); + centerButton.setSelection ((controls [0].getStyle () & SWT.CENTER) != 0); + rightButton.setSelection ((controls [0].getStyle () & SWT.RIGHT) != 0); + } + } +} diff --git a/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/ButtonTab.java b/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/ButtonTab.java new file mode 100755 index 0000000000..036842b1b3 --- /dev/null +++ b/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/ButtonTab.java @@ -0,0 +1,181 @@ +package org.eclipse.swt.examples.controls; + +/* + * (c) Copyright IBM Corp. 2000, 2001. + * All Rights Reserved + */ + +import org.eclipse.swt.*; +import org.eclipse.swt.graphics.*; +import org.eclipse.swt.widgets.*; +import org.eclipse.swt.layout.*; +import org.eclipse.swt.events.*; + +/** + * ButtonTab is the class that + * demonstrates SWT buttons. + */ +class ButtonTab extends AlignableTab { + + /* Example widgets and groups that contain them */ + Button button1, button2, button3, button4, button5, button6; + Group textButtonGroup, imageButtonGroup; + + /* Allignment widgets added to the "Control" group */ + Button upButton, downButton; + + /* Style widgets added to the "Style" group */ + Button pushButton, checkButton, radioButton, toggleButton, arrowButton; + + /** + * Creates the "Control" group. + */ + void createControlGroup () { + super.createControlGroup (); + + /* Create the controls */ + upButton = new Button (allignmentGroup, SWT.RADIO); + upButton.setText (ControlPlugin.getResourceString("Up")); + downButton = new Button (allignmentGroup, SWT.RADIO); + downButton.setText (ControlPlugin.getResourceString("Down")); + + /* Add the listeners */ + SelectionListener selectionListener = new SelectionAdapter() { + public void widgetSelected(SelectionEvent event) { + if (!((Button) event.widget).getSelection()) return; + setExampleWidgetAlignment (); + }; + }; + upButton.addSelectionListener(selectionListener); + downButton.addSelectionListener(selectionListener); + } + + /** + * Creates the "Example" group. + */ + void createExampleGroup () { + super.createExampleGroup (); + + /* Create a group for text buttons */ + textButtonGroup = new Group(exampleGroup, SWT.NONE); + GridLayout gridLayout = new GridLayout (); + textButtonGroup.setLayout(gridLayout); + gridLayout.numColumns = 3; + textButtonGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); + textButtonGroup.setText (ControlPlugin.getResourceString("Text_Buttons")); + + /* Create a group for the image buttons */ + imageButtonGroup = new Group(exampleGroup, SWT.NONE); + gridLayout = new GridLayout(); + imageButtonGroup.setLayout(gridLayout); + gridLayout.numColumns = 3; + imageButtonGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); + imageButtonGroup.setText (ControlPlugin.getResourceString("Image_Buttons")); + } + + /** + * Creates the "Example" widgets. + */ + void createExampleWidgets () { + + /* Compute the widget style */ + int style = SWT.NONE; + if (pushButton.getSelection()) style |= SWT.PUSH; + if (checkButton.getSelection()) style |= SWT.CHECK; + if (radioButton.getSelection()) style |= SWT.RADIO; + if (toggleButton.getSelection()) style |= SWT.TOGGLE; + if (arrowButton.getSelection()) style |= SWT.ARROW; + if (borderButton.getSelection()) style |= SWT.BORDER; + + /* Create the example widgets */ + button1 = new Button(textButtonGroup, style); + button1.setText(ControlPlugin.getResourceString("One")); + button2 = new Button(textButtonGroup, style); + button2.setText(ControlPlugin.getResourceString("Two")); + button3 = new Button(textButtonGroup, style); + button3.setText(ControlPlugin.getResourceString("Three")); + button4 = new Button(imageButtonGroup, style); + button4.setImage(ControlPlugin.images[ControlPlugin.ciClosedFolder]); + button5 = new Button(imageButtonGroup, style); + button5.setImage(ControlPlugin.images[ControlPlugin.ciOpenFolder]); + button6 = new Button(imageButtonGroup, style); + button6.setImage(ControlPlugin.images[ControlPlugin.ciTarget]); + } + + /** + * Creates the "Style" group. + */ + void createStyleGroup() { + super.createStyleGroup (); + + /* Create the extra widgets */ + pushButton = new Button (styleGroup, SWT.RADIO); + pushButton.setText(ControlPlugin.getResourceString("SWT_PUSH")); + checkButton = new Button (styleGroup, SWT.RADIO); + checkButton.setText (ControlPlugin.getResourceString("SWT_CHECK")); + radioButton = new Button (styleGroup, SWT.RADIO); + radioButton.setText (ControlPlugin.getResourceString("SWT_RADIO")); + toggleButton = new Button (styleGroup, SWT.RADIO); + toggleButton.setText (ControlPlugin.getResourceString("SWT_TOGGLE")); + arrowButton = new Button (styleGroup, SWT.RADIO); + arrowButton.setText (ControlPlugin.getResourceString("SWT_ARROW")); + borderButton = new Button (styleGroup, SWT.CHECK); + borderButton.setText (ControlPlugin.getResourceString("SWT_BORDER")); + } + + /** + * Gets the "Example" widget children. + */ + Control [] getExampleWidgets () { + return new Control [] {button1, button2, button3, button4, button5, button6}; + } + + /** + * Gets the text for the tab folder item. + */ + String getTabText () { + return ControlPlugin.getResourceString("Button"); + } + + /** + * Sets the alignment of the "Example" widgets. + */ + void setExampleWidgetAlignment () { + int allignment = 0; + if (leftButton.getSelection ()) allignment = SWT.LEFT; + if (centerButton.getSelection ()) allignment = SWT.CENTER; + if (rightButton.getSelection ()) allignment = SWT.RIGHT; + if (upButton.getSelection ()) allignment = SWT.UP; + if (downButton.getSelection ()) allignment = SWT.DOWN; + button1.setAlignment (allignment); + button2.setAlignment (allignment); + button3.setAlignment (allignment); + button4.setAlignment (allignment); + button5.setAlignment (allignment); + button6.setAlignment (allignment); + } + + /** + * Sets the state of the "Example" widgets. + */ + void setExampleWidgetState () { + super.setExampleWidgetState (); + if (arrowButton.getSelection ()) { + upButton.setEnabled (true); + centerButton.setEnabled (false); + downButton.setEnabled (true); + } else { + upButton.setEnabled (false); + centerButton.setEnabled (true); + downButton.setEnabled (false); + } + upButton.setSelection ((button1.getStyle () & SWT.UP) != 0); + downButton.setSelection ((button1.getStyle () & SWT.DOWN) != 0); + pushButton.setSelection ((button1.getStyle () & SWT.PUSH) != 0); + checkButton.setSelection ((button1.getStyle () & SWT.CHECK) != 0); + radioButton.setSelection ((button1.getStyle () & SWT.RADIO) != 0); + toggleButton.setSelection ((button1.getStyle () & SWT.TOGGLE) != 0); + arrowButton.setSelection ((button1.getStyle () & SWT.ARROW) != 0); + borderButton.setSelection ((button1.getStyle () & SWT.BORDER) != 0); + } +} diff --git a/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/ComboTab.java b/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/ComboTab.java new file mode 100755 index 0000000000..37ef288ece --- /dev/null +++ b/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/ComboTab.java @@ -0,0 +1,107 @@ +package org.eclipse.swt.examples.controls; + +/* + * (c) Copyright IBM Corp. 2000, 2001. + * All Rights Reserved + */ + +import org.eclipse.swt.*; +import org.eclipse.swt.graphics.*; +import org.eclipse.swt.widgets.*; +import org.eclipse.swt.layout.*; +import org.eclipse.swt.events.*; + +class ComboTab extends Tab { + + /* Example widgets and groups that contain them */ + Combo combo1; + Group comboGroup; + + /* Style widgets added to the "Style" group */ + Button dropDownButton, readOnlyButton, simpleButton; + + static String [] ListData = {ControlPlugin.getResourceString("ListData0_0"), + ControlPlugin.getResourceString("ListData0_1"), + ControlPlugin.getResourceString("ListData0_2"), + ControlPlugin.getResourceString("ListData0_3"), + ControlPlugin.getResourceString("ListData0_4"), + ControlPlugin.getResourceString("ListData0_5"), + ControlPlugin.getResourceString("ListData0_6"), + ControlPlugin.getResourceString("ListData0_7"), + ControlPlugin.getResourceString("ListData0_8")}; + + /** + * Creates the "Example" group. + */ + void createExampleGroup () { + super.createExampleGroup (); + + /* Create a group for the combo box */ + comboGroup = new Group (exampleGroup, SWT.NULL); + comboGroup.setLayout (new GridLayout ()); + comboGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); + comboGroup.setText (ControlPlugin.getResourceString("Combo")); + } + + /** + * Creates the "Example" widgets. + */ + void createExampleWidgets () { + + /* Compute the widget style */ + int style = SWT.NONE; + if (dropDownButton.getSelection ()) style |= SWT.DROP_DOWN; + if (readOnlyButton.getSelection ()) style |= SWT.READ_ONLY; + if (simpleButton.getSelection ()) style |= SWT.SIMPLE; + if (borderButton.getSelection ()) style |= SWT.BORDER; + + /* Create the example widgets */ + combo1 = new Combo (comboGroup, style); + combo1.setItems (ListData); + if (ListData.length >= 3) { + combo1.setText(ListData [2]); + } + } + + /** + * Creates the "Style" group. + */ + void createStyleGroup () { + super.createStyleGroup (); + + /* Create the extra widgets */ + dropDownButton = new Button (styleGroup, SWT.RADIO); + dropDownButton.setText (ControlPlugin.getResourceString("SWT_DROP_DOWN")); + simpleButton = new Button (styleGroup, SWT.RADIO); + simpleButton.setText(ControlPlugin.getResourceString("SWT_SIMPLE")); + readOnlyButton = new Button (styleGroup, SWT.CHECK); + readOnlyButton.setText (ControlPlugin.getResourceString("SWT_READ_ONLY")); + borderButton = new Button (styleGroup, SWT.CHECK); + borderButton.setText (ControlPlugin.getResourceString("SWT_BORDER")); + } + + /** + * Gets the "Example" widget children. + */ + Control [] getExampleWidgets () { + return new Control [] {combo1}; + } + + /** + * Gets the text for the tab folder item. + */ + String getTabText () { + return ControlPlugin.getResourceString("Combo"); + } + + /** + * Sets the state of the "Example" widgets. + */ + void setExampleWidgetState () { + super.setExampleWidgetState (); + dropDownButton.setSelection ((combo1.getStyle () & SWT.DROP_DOWN) != 0); + simpleButton.setSelection ((combo1.getStyle () & SWT.SIMPLE) != 0); + readOnlyButton.setSelection ((combo1.getStyle () & SWT.READ_ONLY) != 0); + borderButton.setSelection ((combo1.getStyle () & SWT.BORDER) != 0); + } +} diff --git a/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/DialogTab.java b/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/DialogTab.java new file mode 100755 index 0000000000..14a9f7e301 --- /dev/null +++ b/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/DialogTab.java @@ -0,0 +1,424 @@ +package org.eclipse.swt.examples.controls; + +/* + * (c) Copyright IBM Corp. 2000, 2001. + * All Rights Reserved + */ + +import org.eclipse.swt.*; +import org.eclipse.swt.graphics.*; +import org.eclipse.swt.widgets.*; +import org.eclipse.swt.layout.*; +import org.eclipse.swt.events.*; + +class DialogTab extends Tab { + /* Example widgets and groups that contain them */ + Group dialogStyleGroup, resultGroup; + Text textWidget; + + /* Style widgets added to the "Style" group */ + Combo dialogCombo; + Button okButton, cancelButton; + Button yesButton, noButton; + Button retryButton; + Button abortButton, ignoreButton; + Button iconErrorButton, iconInformationButton, iconQuestionButton; + Button iconWarningButton, iconWorkingButton; + Button modelessButton, primaryModalButton, applicationModalButton, systemModalButton; + Button saveButton, openButton; + + static String [] FilterExtensions = {".txt.", ".bat", ".doc"}; + static String [] FilterNames = {ControlPlugin.getResourceString("FilterName_0"), + ControlPlugin.getResourceString("FilterName_1"), + ControlPlugin.getResourceString("FilterName_2")}; + + /** + * Handle a button style selection event. + * + * @param event the selection event + */ + void buttonStyleSelected(SelectionEvent event) { + /* + * Only certain combinations of button styles are + * supported for various dialogs. Make sure the + * control widget reflects only valid combinations. + */ + okButton.setEnabled ( + !(yesButton.getSelection () || noButton.getSelection () || + retryButton.getSelection () || abortButton.getSelection () || + ignoreButton.getSelection ())); + cancelButton.setEnabled ( + !(abortButton.getSelection () || ignoreButton.getSelection ())); + yesButton.setEnabled ( + !(okButton.getSelection () || retryButton.getSelection () || + abortButton.getSelection () || ignoreButton.getSelection ())); + noButton.setEnabled ( + !(okButton.getSelection () || retryButton.getSelection () || + abortButton.getSelection () || ignoreButton.getSelection ())); + retryButton.setEnabled ( + !(okButton.getSelection() || yesButton.getSelection() || noButton.getSelection ())); + abortButton.setEnabled ( + !(okButton.getSelection () || cancelButton.getSelection () || + yesButton.getSelection () || noButton.getSelection ())); + ignoreButton.setEnabled ( + !(okButton.getSelection () || cancelButton.getSelection () | + yesButton.getSelection () || noButton.getSelection ())); + } + + /** + * Handle the create button selection event. + * + * @param event org.eclipse.swt.events.SelectionEvent + */ + void createButtonSelected(SelectionEvent event) { + + /* Compute the appropriate dialog style */ + int style = SWT.NULL; + if (okButton.getEnabled () && okButton.getSelection ()) style |= SWT.OK; + if (cancelButton.getEnabled () && cancelButton.getSelection ()) style |= SWT.CANCEL; + if (yesButton.getEnabled () && yesButton.getSelection ()) style |= SWT.YES; + if (noButton.getEnabled () && noButton.getSelection ()) style |= SWT.NO; + if (retryButton.getEnabled () && retryButton.getSelection ()) style |= SWT.RETRY; + if (abortButton.getEnabled () && abortButton.getSelection ()) style |= SWT.ABORT; + if (ignoreButton.getEnabled () && ignoreButton.getSelection ()) style |= SWT.IGNORE; + if (iconErrorButton.getEnabled () && iconErrorButton.getSelection ()) style |= SWT.ICON_ERROR; + if (iconInformationButton.getEnabled () && iconInformationButton.getSelection ()) style |= SWT.ICON_INFORMATION; + if (iconQuestionButton.getEnabled () && iconQuestionButton.getSelection ()) style |= SWT.ICON_QUESTION; + if (iconWarningButton.getEnabled () && iconWarningButton.getSelection ()) style |= SWT.ICON_WARNING; + if (iconWorkingButton.getEnabled () && iconWorkingButton.getSelection ()) style |= SWT.ICON_WORKING; + if (primaryModalButton.getEnabled () && primaryModalButton.getSelection ()) style |= SWT.PRIMARY_MODAL; + if (applicationModalButton.getEnabled () && applicationModalButton.getSelection ()) style |= SWT.APPLICATION_MODAL; + if (systemModalButton.getEnabled () && systemModalButton.getSelection ()) style |= SWT.SYSTEM_MODAL; + if (saveButton.getEnabled () && saveButton.getSelection ()) style |= SWT.SAVE; + if (openButton.getEnabled () && openButton.getSelection ()) style |= SWT.OPEN; + + /* Open the appropriate dialog type */ + String name = dialogCombo.getText (); + Shell shell = tabFolderPage.getShell (); + + if (name.equals (ControlPlugin.getResourceString("ColorDialog"))) { + ColorDialog dialog = new ColorDialog (shell ,style); + dialog.setRGB (new RGB (100, 100, 100)); + dialog.setText (ControlPlugin.getResourceString("Title")); + RGB result = dialog.open (); + textWidget.append (ControlPlugin.getResourceString("ColorDialog") + Text.DELIMITER); + textWidget.append (ControlPlugin.getResourceString("Result") + " " + result + Text.DELIMITER + Text.DELIMITER); + return; + } + + if (name.equals (ControlPlugin.getResourceString("DirectoryDialog"))) { + DirectoryDialog dialog = new DirectoryDialog (shell, style); + dialog.setMessage (ControlPlugin.getResourceString("Example_string")); + dialog.setText (ControlPlugin.getResourceString("Title")); + String result = dialog.open (); + textWidget.append (ControlPlugin.getResourceString("DirectoryDialog") + Text.DELIMITER); + textWidget.append (ControlPlugin.getResourceString("Result") + " " + result + Text.DELIMITER + Text.DELIMITER); + return; + } + + if (name.equals (ControlPlugin.getResourceString("FileDialog"))) { + FileDialog dialog = new FileDialog (shell, style); + dialog.setFileName (ControlPlugin.getResourceString("readme_txt")); + dialog.setFilterNames (FilterNames); + dialog.setFilterExtensions (FilterExtensions); + dialog.setText (ControlPlugin.getResourceString("Title")); + String result = dialog.open(); + textWidget.append (ControlPlugin.getResourceString("FileDialog") + Text.DELIMITER); + textWidget.append (ControlPlugin.getResourceString("Result") + " " + result + Text.DELIMITER + Text.DELIMITER); + return; + } + + if (name.equals (ControlPlugin.getResourceString("FontDialog"))) { + FontDialog dialog = new FontDialog (shell, style); + dialog.setText (ControlPlugin.getResourceString("Title")); + FontData result = dialog.open (); + textWidget.append (ControlPlugin.getResourceString("FontDialog") + Text.DELIMITER); + textWidget.append (ControlPlugin.getResourceString("Result") + " " + result + Text.DELIMITER + Text.DELIMITER); + return; + } + + if (name.equals(ControlPlugin.getResourceString("MessageBox"))) { + MessageBox dialog = new MessageBox (shell, style); + dialog.setMessage (ControlPlugin.getResourceString("Example_string")); + dialog.setText (ControlPlugin.getResourceString("Title")); + int result = dialog.open (); + textWidget.append (ControlPlugin.getResourceString("MessageBox") + Text.DELIMITER); + /* + * The resulting integer depends on the original + * dialog style. Decode the result and display it. + */ + switch (result) { + case SWT.OK: + textWidget.append (ControlPlugin.getResourceString("Result") + ControlPlugin.getResourceString("SWT_OK")); + break; + case SWT.YES: + textWidget.append (ControlPlugin.getResourceString("Result") + ControlPlugin.getResourceString("SWT_YES")); + break; + case SWT.NO: + textWidget.append (ControlPlugin.getResourceString("Result") + ControlPlugin.getResourceString("SWT_NO")); + break; + case SWT.CANCEL: + textWidget.append (ControlPlugin.getResourceString("Result") + ControlPlugin.getResourceString("SWT_CANCEL")); + break; + case SWT.ABORT: + textWidget.append (ControlPlugin.getResourceString("Result") + ControlPlugin.getResourceString("SWT_ABORT")); + break; + case SWT.RETRY: + textWidget.append (ControlPlugin.getResourceString("Result") + ControlPlugin.getResourceString("SWT_RETRY")); + break; + case SWT.IGNORE: + textWidget.append (ControlPlugin.getResourceString("Result") + ControlPlugin.getResourceString("SWT_IGNORE")); + break; + default: + textWidget.append(ControlPlugin.getResourceString("Result") + result); + break; + } + textWidget.append (Text.DELIMITER + Text.DELIMITER); + } + } + + /** + * Creates the "Control" group. + */ + void createControlGroup () { + /* + * Create the "Control" group. This is the group on the + * left half of each example tab. It consists of the + * style group, the display group and the size group. + */ + controlGroup = new Group (tabFolderPage, SWT.NULL); + GridLayout gridLayout= new GridLayout (); + controlGroup.setLayout(gridLayout); + gridLayout.numColumns = 2; + gridLayout.makeColumnsEqualWidth = true; + controlGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); + controlGroup.setText (ControlPlugin.getResourceString("Parameters")); + + /* + * Create a group to hold the dialog style combo box and + * create dialog button. + */ + dialogStyleGroup = new Group (controlGroup, SWT.NULL); + dialogStyleGroup.setLayout (new GridLayout ()); + GridData gridData = new GridData (GridData.HORIZONTAL_ALIGN_CENTER); + gridData.horizontalSpan = 2; + dialogStyleGroup.setLayoutData (gridData); + dialogStyleGroup.setText (ControlPlugin.getResourceString("Dialog_Type")); + } + + /** + * Creates the "Control" widget children. + */ + void createControlWidgets () { + + /* Create the combo */ + String [] strings = { + ControlPlugin.getResourceString("ColorDialog"), + ControlPlugin.getResourceString("DirectoryDialog"), + ControlPlugin.getResourceString("FileDialog"), + ControlPlugin.getResourceString("FontDialog"), + ControlPlugin.getResourceString("MessageBox"), + }; + dialogCombo = new Combo (dialogStyleGroup, SWT.READ_ONLY); + dialogCombo.setItems (strings); + dialogCombo.setText (strings [0]); + + /* Create the create dialog button */ + Button createButton = new Button(dialogStyleGroup, SWT.NULL); + createButton.setText (ControlPlugin.getResourceString("Create_Dialog")); + createButton.setLayoutData (new GridData(GridData.HORIZONTAL_ALIGN_CENTER)); + + /* Create a group for the various dialog button style controls */ + Group buttonStyleGroup = new Group (controlGroup, SWT.NULL); + buttonStyleGroup.setLayout (new GridLayout ()); + buttonStyleGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); + buttonStyleGroup.setText (ControlPlugin.getResourceString("Button_Styles")); + + /* Create the button style buttons */ + okButton = new Button (buttonStyleGroup, SWT.CHECK); + okButton.setText (ControlPlugin.getResourceString("SWT_OK")); + cancelButton = new Button (buttonStyleGroup, SWT.CHECK); + cancelButton.setText (ControlPlugin.getResourceString("SWT_CANCEL")); + yesButton = new Button (buttonStyleGroup, SWT.CHECK); + yesButton.setText (ControlPlugin.getResourceString("SWT_YES")); + noButton = new Button (buttonStyleGroup, SWT.CHECK); + noButton.setText (ControlPlugin.getResourceString("SWT_NO")); + retryButton = new Button (buttonStyleGroup, SWT.CHECK); + retryButton.setText (ControlPlugin.getResourceString("SWT_RETRY")); + abortButton = new Button (buttonStyleGroup, SWT.CHECK); + abortButton.setText (ControlPlugin.getResourceString("SWT_ABORT")); + ignoreButton = new Button (buttonStyleGroup, SWT.CHECK); + ignoreButton.setText (ControlPlugin.getResourceString("SWT_IGNORE")); + + /* Create a group for the icon style controls */ + Group iconStyleGroup = new Group (controlGroup, SWT.NULL); + iconStyleGroup.setLayout (new GridLayout ()); + iconStyleGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); + iconStyleGroup.setText (ControlPlugin.getResourceString("Icon_Styles")); + + /* Create the icon style buttons */ + iconErrorButton = new Button (iconStyleGroup, SWT.RADIO); + iconErrorButton.setText (ControlPlugin.getResourceString("SWT_ICON_ERROR")); + iconInformationButton = new Button (iconStyleGroup, SWT.RADIO); + iconInformationButton.setText (ControlPlugin.getResourceString("SWT_ICON_INFORMATION")); + iconQuestionButton = new Button (iconStyleGroup, SWT.RADIO); + iconQuestionButton.setText (ControlPlugin.getResourceString("SWT_ICON_QUESTION")); + iconWarningButton = new Button (iconStyleGroup, SWT.RADIO); + iconWarningButton.setText (ControlPlugin.getResourceString("SWT_ICON_WARNING")); + iconWorkingButton = new Button (iconStyleGroup, SWT.RADIO); + iconWorkingButton.setText (ControlPlugin.getResourceString("SWT_ICON_WORKING")); + + /* Create a group for the modal style controls */ + Group modalStyleGroup = new Group (controlGroup, SWT.NULL); + modalStyleGroup.setLayout (new GridLayout ()); + modalStyleGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); + modalStyleGroup.setText (ControlPlugin.getResourceString("Modal_Styles")); + + /* Create the modal style buttons */ + modelessButton = new Button (modalStyleGroup, SWT.RADIO); + modelessButton.setText (ControlPlugin.getResourceString("SWT_MODELESS")); + primaryModalButton = new Button (modalStyleGroup, SWT.RADIO); + primaryModalButton.setText (ControlPlugin.getResourceString("SWT_PRIMARY_MODAL")); + applicationModalButton = new Button (modalStyleGroup, SWT.RADIO); + applicationModalButton.setText (ControlPlugin.getResourceString("SWT_APPLICATION_MODAL")); + systemModalButton = new Button (modalStyleGroup, SWT.RADIO); + systemModalButton.setText (ControlPlugin.getResourceString("SWT_SYSTEM_MODAL")); + + /* Create a group for the file dialog style controls */ + Group fileDialogStyleGroup = new Group (controlGroup, SWT.NULL); + fileDialogStyleGroup.setLayout (new GridLayout ()); + fileDialogStyleGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); + fileDialogStyleGroup.setText (ControlPlugin.getResourceString("File_Dialog_Styles")); + + /* Create the file dialog style buttons */ + saveButton = new Button (fileDialogStyleGroup, SWT.RADIO); + saveButton.setText (ControlPlugin.getResourceString("SWT_SAVE")); + openButton = new Button(fileDialogStyleGroup, SWT.RADIO); + openButton.setText(ControlPlugin.getResourceString("SWT_OPEN")); + + /* Add the listeners */ + dialogCombo.addSelectionListener (new SelectionAdapter () { + public void widgetSelected (SelectionEvent event) { + dialogSelected (event); + }; + }); + createButton.addSelectionListener (new SelectionAdapter () { + public void widgetSelected (SelectionEvent event) { + createButtonSelected (event); + }; + }); + SelectionListener buttonStyleListener = new SelectionAdapter () { + public void widgetSelected (SelectionEvent event) { + buttonStyleSelected (event); + }; + }; + okButton.addSelectionListener (buttonStyleListener); + cancelButton.addSelectionListener (buttonStyleListener); + yesButton.addSelectionListener (buttonStyleListener); + noButton.addSelectionListener (buttonStyleListener); + retryButton.addSelectionListener (buttonStyleListener); + abortButton.addSelectionListener (buttonStyleListener); + ignoreButton.addSelectionListener (buttonStyleListener); + + /* Set default values for style buttons */ + okButton.setEnabled (false); + cancelButton.setEnabled (false); + yesButton.setEnabled (false); + noButton.setEnabled (false); + retryButton.setEnabled (false); + abortButton.setEnabled (false); + ignoreButton.setEnabled (false); + iconErrorButton.setEnabled (false); + iconInformationButton.setEnabled (false); + iconQuestionButton.setEnabled (false); + iconWarningButton.setEnabled (false); + iconWorkingButton.setEnabled (false); + saveButton.setEnabled (false); + openButton.setEnabled (false); + openButton.setSelection (true); + iconInformationButton.setSelection (true); + modelessButton.setSelection (true); + } + + /** + * Creates the "Example" group. + */ + void createExampleGroup () { + super.createExampleGroup (); + + /* + * Create a group for the text widget to display + * the results returned by the example dialogs. + */ + resultGroup = new Group (exampleGroup, SWT.NULL); + resultGroup.setLayout (new GridLayout ()); + resultGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); + resultGroup.setText (ControlPlugin.getResourceString("Dialog_Result")); + } + + /** + * Creates the "Example" widgets. + */ + void createExampleWidgets () { + /* + * Create a multi lined, scrolled text widget for output. + */ + textWidget = new Text(resultGroup, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER); + GridData gridData = new GridData (); + gridData.widthHint = 300; + gridData.heightHint = 400; + textWidget.setLayoutData (gridData); + } + + /** + * Handle a dialog type combo selection event. + * + * @param event the selection event + */ + void dialogSelected (SelectionEvent event) { + + /* Enable/Disable the buttons */ + String name = dialogCombo.getText (); + boolean isMessageBox = name.equals (ControlPlugin.getResourceString("MessageBox")); + boolean isFileDialog = name.equals (ControlPlugin.getResourceString("FileDialog")); + okButton.setEnabled (isMessageBox); + cancelButton.setEnabled (isMessageBox); + yesButton.setEnabled (isMessageBox); + noButton.setEnabled (isMessageBox); + retryButton.setEnabled (isMessageBox); + abortButton.setEnabled (isMessageBox); + ignoreButton.setEnabled (isMessageBox); + iconErrorButton.setEnabled (isMessageBox); + iconInformationButton.setEnabled (isMessageBox); + iconQuestionButton.setEnabled (isMessageBox); + iconWarningButton.setEnabled (isMessageBox); + iconWorkingButton.setEnabled (isMessageBox); + saveButton.setEnabled (isFileDialog); + openButton.setEnabled (isFileDialog); + + /* Unselect the buttons */ + if (!isMessageBox) { + okButton.setSelection (false); + cancelButton.setSelection (false); + yesButton.setSelection (false); + noButton.setSelection (false); + retryButton.setSelection (false); + abortButton.setSelection (false); + ignoreButton.setSelection (false); + } + } + + /** + * Gets the "Example" widget children. + */ + Control [] getExampleWidgets () { + return new Control [0]; + } + + /** + * Gets the text for the tab folder item. + */ + String getTabText () { + return ControlPlugin.getResourceString("Dialog"); + } +} diff --git a/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/LabelTab.java b/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/LabelTab.java new file mode 100755 index 0000000000..3df4a386dd --- /dev/null +++ b/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/LabelTab.java @@ -0,0 +1,158 @@ +package org.eclipse.swt.examples.controls; + +/* + * (c) Copyright IBM Corp. 2000, 2001. + * All Rights Reserved + */ + +import org.eclipse.swt.*; +import org.eclipse.swt.graphics.*; +import org.eclipse.swt.widgets.*; +import org.eclipse.swt.layout.*; +import org.eclipse.swt.events.*; + +class LabelTab extends AlignableTab { + /* Example widgets and groups that contain them */ + Label label1, label2, label3, label4, label5, label6; + Group textLabelGroup, imageLabelGroup; + + /* Style widgets added to the "Style" group */ + Button separatorButton, horizontalButton, verticalButton, shadowInButton, shadowOutButton; + + /** + * Creates the "Example" group. + */ + void createExampleGroup () { + super.createExampleGroup (); + + /* Create a group for the text labels */ + textLabelGroup = new Group(exampleGroup, SWT.NULL); + GridLayout gridLayout = new GridLayout (); + textLabelGroup.setLayout (gridLayout); + gridLayout.numColumns = 3; + textLabelGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); + textLabelGroup.setText (ControlPlugin.getResourceString("Text_Labels")); + + /* Create a group for the image labels */ + imageLabelGroup = new Group (exampleGroup, SWT.SHADOW_NONE); + gridLayout = new GridLayout (); + imageLabelGroup.setLayout (gridLayout); + gridLayout.numColumns = 3; + imageLabelGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); + imageLabelGroup.setText (ControlPlugin.getResourceString("Image_Labels")); + } + + /** + * Creates the "Example" widgets. + */ + void createExampleWidgets () { + + /* Compute the widget style */ + int style = SWT.NONE; + if (separatorButton.getSelection ()) style |= SWT.SEPARATOR; + if (horizontalButton.getSelection ()) style |= SWT.HORIZONTAL; + if (verticalButton.getSelection ()) style |= SWT.VERTICAL; + if (shadowInButton.getSelection ()) style |= SWT.SHADOW_IN; + if (shadowOutButton.getSelection ()) style |= SWT.SHADOW_OUT; + if (borderButton.getSelection ()) style |= SWT.BORDER; + + /* Create the example widgets */ + label1 = new Label (textLabelGroup, style); + label1.setText(ControlPlugin.getResourceString("One")); + label2 = new Label (textLabelGroup, style); + label2.setText(ControlPlugin.getResourceString("Two")); + label3 = new Label (textLabelGroup, style); + label3.setText (ControlPlugin.getResourceString("Three")); + label4 = new Label (imageLabelGroup, style); + label4.setImage (ControlPlugin.images[ControlPlugin.ciClosedFolder]); + label5 = new Label (imageLabelGroup, style); + label5.setImage (ControlPlugin.images[ControlPlugin.ciOpenFolder]); + label6 = new Label(imageLabelGroup, style); + label6.setImage (ControlPlugin.images[ControlPlugin.ciTarget]); + } + + /** + * Creates the "Style" group. + */ + void createStyleGroup() { + super.createStyleGroup (); + + /* Create the extra widgets */ + separatorButton = new Button (styleGroup, SWT.CHECK); + separatorButton.setText (ControlPlugin.getResourceString("SWT_SEPARATOR")); + horizontalButton = new Button (styleGroup, SWT.RADIO); + horizontalButton.setText (ControlPlugin.getResourceString("SWT_HORIZONTAL")); + verticalButton = new Button (styleGroup, SWT.RADIO); + verticalButton.setText (ControlPlugin.getResourceString("SWT_VERTICAL")); + Group styleSubGroup = new Group (styleGroup, SWT.NULL); + styleSubGroup.setLayout (new GridLayout ()); + shadowInButton = new Button (styleSubGroup, SWT.RADIO); + shadowInButton.setText (ControlPlugin.getResourceString("SWT_SHADOW_IN")); + shadowOutButton = new Button (styleSubGroup, SWT.RADIO); + shadowOutButton.setText (ControlPlugin.getResourceString("SWT_SHADOW_OUT")); + borderButton = new Button(styleGroup, SWT.CHECK); + borderButton.setText(ControlPlugin.getResourceString("SWT_BORDER")); + + /* Add the listeners */ + SelectionListener selectionListener = new SelectionAdapter () { + public void widgetSelected(SelectionEvent event) { + if ((event.widget.getStyle() & SWT.RADIO) != 0) { + if (!((Button) event.widget).getSelection ()) return; + } + recreateExampleWidgets (); + }; + }; + shadowInButton.addSelectionListener (selectionListener); + shadowOutButton.addSelectionListener (selectionListener); + } + + /** + * Gets the "Example" widget children. + */ + Control [] getExampleWidgets () { + return new Control [] {label1, label2, label3, label4, label5, label6}; + } + + /** + * Gets the text for the tab folder item. + */ + String getTabText () { + return ControlPlugin.getResourceString("Label"); + } + + /** + * Sets the alignment of the "Example" widgets. + */ + void setExampleWidgetAlignment () { + int allignment = 0; + if (leftButton.getSelection ()) allignment = SWT.LEFT; + if (centerButton.getSelection ()) allignment = SWT.CENTER; + if (rightButton.getSelection ()) allignment = SWT.RIGHT; + label1.setAlignment (allignment); + label2.setAlignment (allignment); + label3.setAlignment (allignment); + label4.setAlignment (allignment); + label5.setAlignment (allignment); + label6.setAlignment (allignment); + } + + /** + * Sets the state of the "Example" widgets. + */ + void setExampleWidgetState () { + super.setExampleWidgetState (); + boolean isSeparator = (label1.getStyle () & SWT.SEPARATOR) != 0; + leftButton.setSelection (!isSeparator && (label1.getStyle () & SWT.LEFT) != 0); + centerButton.setSelection (!isSeparator && (label1.getStyle () & SWT.CENTER) != 0); + rightButton.setSelection (!isSeparator && (label1.getStyle () & SWT.RIGHT) != 0); + shadowInButton.setSelection (isSeparator && (label1.getStyle () & SWT.SHADOW_IN) != 0); + shadowOutButton.setSelection (isSeparator && (label1.getStyle () & SWT.SHADOW_OUT) != 0); + leftButton.setEnabled (!isSeparator); + centerButton.setEnabled (!isSeparator); + rightButton.setEnabled (!isSeparator); + shadowInButton.setEnabled (isSeparator); + shadowOutButton.setEnabled (isSeparator); + horizontalButton.setEnabled (isSeparator); + verticalButton.setEnabled (isSeparator); + } +} diff --git a/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/ListTab.java b/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/ListTab.java new file mode 100755 index 0000000000..d55f05b839 --- /dev/null +++ b/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/ListTab.java @@ -0,0 +1,74 @@ +package org.eclipse.swt.examples.controls; + +/* + * (c) Copyright IBM Corp. 2000, 2001. + * All Rights Reserved + */ + +import org.eclipse.swt.*; +import org.eclipse.swt.graphics.*; +import org.eclipse.swt.widgets.*; +import org.eclipse.swt.layout.*; +import org.eclipse.swt.events.*; + +class ListTab extends ScrollableTab { + + /* Example widgets and groups that contain them */ + List list1; + Group listGroup; + + static String [] ListData1 = {ControlPlugin.getResourceString("ListData1_0"), + ControlPlugin.getResourceString("ListData1_1"), + ControlPlugin.getResourceString("ListData1_2"), + ControlPlugin.getResourceString("ListData1_3"), + ControlPlugin.getResourceString("ListData1_4"), + ControlPlugin.getResourceString("ListData1_5"), + ControlPlugin.getResourceString("ListData1_6"), + ControlPlugin.getResourceString("ListData1_7"), + ControlPlugin.getResourceString("ListData1_8")}; + + /** + * Creates the "Example" group. + */ + void createExampleGroup () { + super.createExampleGroup (); + + /* Create a group for the list */ + listGroup = new Group (exampleGroup, SWT.NULL); + listGroup.setLayout (new GridLayout ()); + listGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); + listGroup.setText (ControlPlugin.getResourceString("List")); + } + + /** + * Creates the "Example" widgets. + */ + void createExampleWidgets () { + + /* Compute the widget style */ + int style = SWT.NONE; + if (singleButton.getSelection ()) style |= SWT.SINGLE; + if (multiButton.getSelection ()) style |= SWT.MULTI; + if (horizontalButton.getSelection ()) style |= SWT.H_SCROLL; + if (verticalButton.getSelection ()) style |= SWT.V_SCROLL; + if (borderButton.getSelection ()) style |= SWT.BORDER; + + /* Create the example widgets */ + list1 = new List (listGroup, style); + list1.setItems (ListData1); + } + + /** + * Gets the "Example" widget children. + */ + Control [] getExampleWidgets () { + return new Control [] {list1}; + } + + /** + * Gets the text for the tab folder item. + */ + String getTabText () { + return ControlPlugin.getResourceString("List"); + } +} diff --git a/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/ProgressBarTab.java b/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/ProgressBarTab.java new file mode 100755 index 0000000000..6c98778d26 --- /dev/null +++ b/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/ProgressBarTab.java @@ -0,0 +1,107 @@ +package org.eclipse.swt.examples.controls; + +/* + * (c) Copyright IBM Corp. 2000, 2001. + * All Rights Reserved + */ + +import org.eclipse.swt.*; +import org.eclipse.swt.graphics.*; +import org.eclipse.swt.widgets.*; +import org.eclipse.swt.layout.*; +import org.eclipse.swt.events.*; + +class ProgressBarTab extends RangeTab { + /* Example widgets and groups that contain them */ + ProgressBar progressBar1; + Group progressBarGroup; + + /* Style widgets added to the "Style" group */ + Button smoothButton; + + /** + * Creates the "Example" group. + */ + void createExampleGroup() { + super.createExampleGroup (); + + /* Create a group for the progress bar */ + progressBarGroup = new Group (exampleGroup, SWT.NULL); + progressBarGroup.setLayout (new GridLayout ()); + progressBarGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); + progressBarGroup.setText (ControlPlugin.getResourceString("ProgressBar")); + } + + /** + * Creates the "Example" widgets. + */ + void createExampleWidgets () { + + /* Compute the widget style */ + int style = SWT.NONE; + if (horizontalButton.getSelection ()) style |= SWT.HORIZONTAL; + if (verticalButton.getSelection ()) style |= SWT.VERTICAL; + if (smoothButton.getSelection ()) style |= SWT.SMOOTH; + if (borderButton.getSelection ()) style |= SWT.BORDER; + + /* Create the example widgets */ + progressBar1 = new ProgressBar (progressBarGroup, style); + progressBar1.setMaximum (100); + progressBar1.setSelection (50); + } + + /** + * Creates the "Style" group. + */ + void createStyleGroup () { + super.createStyleGroup (); + + /* Create the extra widgets */ + smoothButton = new Button (styleGroup, SWT.CHECK); + smoothButton.setText (ControlPlugin.getResourceString("SWT_SMOOTH")); + } + + /** + * Gets the "Example" widget children. + */ + Control [] getExampleWidgets () { + return new Control [] {progressBar1}; + } + + /** + * Gets the text for the tab folder item. + */ + String getTabText () { + return ControlPlugin.getResourceString("ProgressBar"); + } + + /** + * Sets the state of the "Example" widgets. + */ + void setExampleWidgetState () { + super.setExampleWidgetState (); + maximumScale.setMaximum (progressBar1.getMaximum ()); + smoothButton.setSelection ((progressBar1.getStyle () & SWT.SMOOTH) != 0); + } + + /** + * Sets the maximum of the "Example" widgets. + */ + void setWidgetMaximum () { + progressBar1.setMaximum (maximumScale.getSelection ()); + } + + /** + * Sets the minimim of the "Example" widgets. + */ + void setWidgetMinimum () { + progressBar1.setMinimum (minimumScale.getSelection ()); + } + + /** + * Sets the selection of the "Example" widgets. + */ + void setWidgetSelection () { + progressBar1.setSelection (selectionScale.getSelection ()); + } +} diff --git a/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/RangeTab.java b/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/RangeTab.java new file mode 100755 index 0000000000..3e39268a0b --- /dev/null +++ b/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/RangeTab.java @@ -0,0 +1,161 @@ +package org.eclipse.swt.examples.controls; + +/* + * (c) Copyright IBM Corp. 2000, 2001. + * All Rights Reserved + */ + +import org.eclipse.swt.*; +import org.eclipse.swt.widgets.*; +import org.eclipse.swt.layout.*; +import org.eclipse.swt.events.*; + +abstract class RangeTab extends Tab { + /* Style widgets added to the "Style" group */ + Button horizontalButton, verticalButton; + + /* Scale widgets added to the "Control" group */ + Scale minimumScale, selectionScale, maximumScale; + + /** + * Creates the "Control" widget children. + */ + void createControlWidgets () { + + /* Leave an empty cell */ + new Composite (controlGroup, SWT.NULL); + + /* Create controls specific to this example */ + createMinimumGroup (); + createMaximumGroup (); + createSelectionGroup (); + } + + /** + * Create a group of widgets to control the maximum + * attribute of the example widget. + */ + void createMaximumGroup() { + + /* Create the group */ + Group maximumGroup = new Group (controlGroup, SWT.NULL); + maximumGroup.setLayout (new GridLayout ()); + maximumGroup.setText (ControlPlugin.getResourceString("Maximum")); + + /* Create a scale widget */ + maximumScale = new Scale (maximumGroup, SWT.NULL); + maximumScale.setMaximum (100); + maximumScale.setSelection (100); + maximumScale.setPageIncrement (10); + maximumScale.setIncrement (5); + + /* Add the listeners */ + maximumScale.addSelectionListener(new SelectionAdapter () { + public void widgetSelected (SelectionEvent event) { + setWidgetMaximum (); + }; + }); + } + + /** + * Create a group of widgets to control the minimum + * attribute of the example widget. + */ + void createMinimumGroup() { + + /* Create the group */ + Group minimumGroup = new Group (controlGroup, SWT.NULL); + minimumGroup.setLayout (new GridLayout ()); + minimumGroup.setText (ControlPlugin.getResourceString("Minimum")); + + /* Create a scale widget */ + minimumScale = new Scale (minimumGroup, SWT.NULL); + minimumScale.setMaximum (100); + minimumScale.setPageIncrement (10); + minimumScale.setIncrement (5); + + /* Add the listeners */ + minimumScale.addSelectionListener (new SelectionAdapter () { + public void widgetSelected (SelectionEvent event) { + setWidgetMinimum (); + }; + }); + + } + + /** + * Create a group of widgets to control the selection + * attribute of the example widget. + */ + void createSelectionGroup() { + + /* Create the group */ + Group selectionGroup = new Group(controlGroup, SWT.NULL); + selectionGroup.setLayout(new GridLayout()); + GridData gridData = new GridData(GridData.HORIZONTAL_ALIGN_CENTER); + gridData.horizontalSpan = 2; + selectionGroup.setLayoutData(gridData); + selectionGroup.setText(ControlPlugin.getResourceString("Selection")); + + /* Create a scale widget */ + selectionScale = new Scale (selectionGroup, SWT.NULL); + selectionScale.setMaximum (100); + selectionScale.setSelection (50); + selectionScale.setPageIncrement (10); + selectionScale.setIncrement (5); + + /* Add the listeners */ + selectionScale.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent event) { + setWidgetSelection (); + }; + }); + + } + + /** + * Creates the "Style" group. + */ + void createStyleGroup () { + super.createStyleGroup (); + + /* Create the extra widgets */ + horizontalButton = new Button (styleGroup, SWT.RADIO); + horizontalButton.setText (ControlPlugin.getResourceString("SWT_HORIZONTAL")); + verticalButton = new Button (styleGroup, SWT.RADIO); + verticalButton.setText (ControlPlugin.getResourceString("SWT_VERTICAL")); + borderButton = new Button (styleGroup, SWT.CHECK); + borderButton.setText (ControlPlugin.getResourceString("SWT_BORDER")); + } + + /** + * Sets the state of the "Example" widgets. + */ + void setExampleWidgetState () { + super.setExampleWidgetState (); + setWidgetMinimum (); + setWidgetMaximum (); + setWidgetSelection (); + Control [] controls = getExampleWidgets (); + if (controls.length != 0){ + horizontalButton.setSelection ((controls [0].getStyle () & SWT.HORIZONTAL) != 0); + verticalButton.setSelection ((controls [0].getStyle () & SWT.VERTICAL) != 0); + borderButton.setSelection ((controls [0].getStyle () & SWT.BORDER) != 0); + } + } + + /** + * Sets the maximum of the "Example" widgets. + */ + abstract void setWidgetMaximum (); + + /** + * Sets the minimim of the "Example" widgets. + */ + abstract void setWidgetMinimum (); + + /** + * Sets the selection of the "Example" widgets. + */ + abstract void setWidgetSelection (); +} diff --git a/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/SashTab.java b/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/SashTab.java new file mode 100755 index 0000000000..013cf3487f --- /dev/null +++ b/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/SashTab.java @@ -0,0 +1,158 @@ +package org.eclipse.swt.examples.controls; + +/* + * (c) Copyright IBM Corp. 2000, 2001. + * All Rights Reserved + */ + +import org.eclipse.swt.*; +import org.eclipse.swt.graphics.*; +import org.eclipse.swt.widgets.*; +import org.eclipse.swt.layout.*; +import org.eclipse.swt.events.*; + +class SashTab extends Tab { + /* Example widgets and groups that contain them */ + Sash hSash, vSash; + List list1, list2, list3; + Text text; + + static String [] ListData0 = {ControlPlugin.getResourceString("ListData0_0"), + ControlPlugin.getResourceString("ListData0_1"), + ControlPlugin.getResourceString("ListData0_2"), + ControlPlugin.getResourceString("ListData0_3"), + ControlPlugin.getResourceString("ListData0_4"), + ControlPlugin.getResourceString("ListData0_5"), + ControlPlugin.getResourceString("ListData0_6"), + ControlPlugin.getResourceString("ListData0_7"), + ControlPlugin.getResourceString("ListData0_8")}; + + static String [] ListData1 = {ControlPlugin.getResourceString("ListData1_0"), + ControlPlugin.getResourceString("ListData1_1"), + ControlPlugin.getResourceString("ListData1_2"), + ControlPlugin.getResourceString("ListData1_3"), + ControlPlugin.getResourceString("ListData1_4"), + ControlPlugin.getResourceString("ListData1_5"), + ControlPlugin.getResourceString("ListData1_6"), + ControlPlugin.getResourceString("ListData1_7"), + ControlPlugin.getResourceString("ListData1_8")}; + + /* Constants */ + static final int SASH_WIDTH = 3; + + /** + * Creates the tab folder page. + */ + Composite createTabFolderPage (TabFolder tabFolder) { + /* + * Create the page. This example does not use layouts. + */ + tabFolderPage = new Composite(tabFolder, SWT.BORDER); + + /* Create the list and text widgets */ + list1 = new List (tabFolderPage, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER); + list1.setItems (ListData0); + list2 = new List (tabFolderPage, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER); + list2.setItems (ListData1); + text = new Text (tabFolderPage, SWT.MULTI | SWT.BORDER); + text.setText (ControlPlugin.getResourceString("Multi_line")); + + /* Create the sashes */ + vSash = new Sash (tabFolderPage, SWT.VERTICAL); + hSash = new Sash (tabFolderPage, SWT.HORIZONTAL); + + /* Add the listeners */ + hSash.addSelectionListener (new SelectionAdapter () { + public void widgetSelected (SelectionEvent event) { + if (event.detail != SWT.DRAG) { + hSash.setBounds (event.x, event.y, event.width, event.height); + layout (); + } + } + }); + vSash.addSelectionListener (new SelectionAdapter () { + public void widgetSelected (SelectionEvent event) { + if (event.detail != SWT.DRAG) { + vSash.setBounds(event.x, event.y, event.width, event.height); + layout (); + } + } + }); + tabFolderPage.addControlListener (new ControlAdapter () { + public void controlResized (ControlEvent event) { + shellResized (); + } + }); + + /* + * Do not set the bounds of the lists, text and sashes here + * because this method is run before the widget is opened + * so we do not know how big the tabComposite is going to be. + * When the widget is opened a resize event will occur + * and the contained widgets can be sized accordingly. + */ + return tabFolderPage; + } + + /** + * Gets the text for the tab folder item. + */ + String getTabText () { + return ControlPlugin.getResourceString("Sash"); + } + + /** + * Layout the list and text widgets according to the new + * positions of the sashes..events.SelectionEvent + */ + void layout () { + + Rectangle tabCompositeBounds = tabFolderPage.getClientArea (); + Rectangle hSashBounds = hSash.getBounds (); + Rectangle vSashBounds = vSash.getBounds (); + + list1.setBounds (0, 0, vSashBounds.x, hSashBounds.y); + list2.setBounds (vSashBounds.x + vSashBounds.width, 0, tabCompositeBounds.width - (vSashBounds.x + vSashBounds.width), hSashBounds.y); + text.setBounds (0, hSashBounds.y + hSashBounds.height, tabCompositeBounds.width, tabCompositeBounds.height - (hSashBounds.y + hSashBounds.height)); + + /** + * If the horizontal sash has been moved then the vertical + * sash is either too long or too short and its size must + * be adjusted. + */ + vSashBounds.height = hSashBounds.y; + vSash.setBounds (vSashBounds); + } + + /** + * Handle the shell resized event. + */ + void shellResized () { + + /* Get the client area for the shell */ + Rectangle tabFolderPageBounds = tabFolderPage.getClientArea (); + + /* + * Make list 1 half the width and half the height of the tab leaving room for the sash. + * Place list 1 in the top left quadrant of the tab. + */ + Rectangle list1Bounds = new Rectangle (0, 0, (tabFolderPageBounds.width - SASH_WIDTH) / 2, (tabFolderPageBounds.height - SASH_WIDTH) / 2); + list1.setBounds (list1Bounds); + + /* + * Make list 2 half the width and half the height of the tab leaving room for the sash. + * Place list 2 in the top right quadrant of the tab. + */ + list2.setBounds (list1Bounds.width + SASH_WIDTH, 0, tabFolderPageBounds.width - (list1Bounds.width + SASH_WIDTH), list1Bounds.height); + + /* + * Make the text area the full width and half the height of the tab leaving room for the sash. + * Place the text area in the bottom half of the tab. + */ + text.setBounds (0, list1Bounds.height + SASH_WIDTH, tabFolderPageBounds.width, tabFolderPageBounds.height - (list1Bounds.height + SASH_WIDTH)); + + /* Position the sashes */ + vSash.setBounds (list1Bounds.width, 0, SASH_WIDTH, list1Bounds.height); + hSash.setBounds (0, list1Bounds.height, tabFolderPageBounds.width, SASH_WIDTH); + } +} diff --git a/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/ScrollableTab.java b/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/ScrollableTab.java new file mode 100755 index 0000000000..8695173478 --- /dev/null +++ b/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/ScrollableTab.java @@ -0,0 +1,48 @@ +package org.eclipse.swt.examples.controls; + +/* + * (c) Copyright IBM Corp. 2000, 2001. + * All Rights Reserved + */ + +import org.eclipse.swt.*; +import org.eclipse.swt.widgets.*; + +abstract class ScrollableTab extends Tab { + /* Style widgets added to the "Style" group */ + Button singleButton, multiButton, horizontalButton, verticalButton, borderButton; + + /** + * Creates the "Style" group. + */ + void createStyleGroup () { + super.createStyleGroup (); + + /* Create the extra widgets */ + singleButton = new Button (styleGroup, SWT.RADIO); + singleButton.setText (ControlPlugin.getResourceString("SWT_SINGLE")); + multiButton = new Button (styleGroup, SWT.RADIO); + multiButton.setText (ControlPlugin.getResourceString("SWT_MULTI")); + horizontalButton = new Button (styleGroup, SWT.CHECK); + horizontalButton.setText (ControlPlugin.getResourceString("SWT_H_SCROLL")); + verticalButton = new Button (styleGroup, SWT.CHECK); + verticalButton.setText (ControlPlugin.getResourceString("SWT_V_SCROLL")); + borderButton = new Button (styleGroup, SWT.CHECK); + borderButton.setText (ControlPlugin.getResourceString("SWT_BORDER")); + } + + /** + * Sets the state of the "Example" widgets. + */ + void setExampleWidgetState () { + super.setExampleWidgetState (); + Control [] controls = getExampleWidgets (); + if (controls.length != 0){ + singleButton.setSelection ((controls [0].getStyle () & SWT.SINGLE) != 0); + multiButton.setSelection ((controls [0].getStyle () & SWT.MULTI) != 0); + horizontalButton.setSelection ((controls [0].getStyle () & SWT.H_SCROLL) != 0); + verticalButton.setSelection ((controls [0].getStyle () & SWT.V_SCROLL) != 0); + borderButton.setSelection ((controls [0].getStyle () & SWT.BORDER) != 0); + } + } +} diff --git a/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/ShellTab.java b/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/ShellTab.java new file mode 100755 index 0000000000..1eede5da1f --- /dev/null +++ b/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/ShellTab.java @@ -0,0 +1,217 @@ +package org.eclipse.swt.examples.controls; + +/* + * (c) Copyright IBM Corp. 2000, 2001. + * All Rights Reserved + */ + +import org.eclipse.swt.*; +import org.eclipse.swt.graphics.*; +import org.eclipse.swt.widgets.*; +import org.eclipse.swt.layout.*; +import org.eclipse.swt.events.*; + +class ShellTab extends Tab { + /* Style widgets added to the "Style" group */ + Button noParentButton, parentButton; + Button noTrimButton, closeButton, titleButton, minButton, maxButton, borderButton, resizeButton; + Button createButton, closeAllButton; + Group parentStyleGroup; + + /* Variables used to track the open shells */ + int shellCount = 0; + Shell [] shells = new Shell [4]; + + /** + * Close all the example shells. + */ + void closeAllShells() { + for (int i = 0; i= shells.length) { + Shell [] newShells = new Shell [shells.length + 4]; + System.arraycopy (shells, 0, newShells, 0, shells.length); + shells = newShells; + } + + /* Compute the shell style */ + int style = SWT.NONE; + if (noTrimButton.getSelection()) style |= SWT.NO_TRIM; + if (closeButton.getSelection()) style |= SWT.CLOSE; + if (titleButton.getSelection()) style |= SWT.TITLE; + if (minButton.getSelection()) style |= SWT.MIN; + if (maxButton.getSelection()) style |= SWT.MAX; + if (borderButton.getSelection()) style |= SWT.BORDER; + if (resizeButton.getSelection()) style |= SWT.RESIZE; + + /* Create the shell with or without a parent */ + if (noParentButton.getSelection ()) { + shells [shellCount] = new Shell (style); + } else { + Shell shell = tabFolderPage.getShell (); + shells [shellCount] = new Shell (shell, style); + } + + /* Set the size, title and open the shell */ + shells [shellCount].setSize (300, 100); + shells [shellCount].setText (ControlPlugin.getResourceString("Title") + shellCount); + shells [shellCount++].open (); + } + + /** + * Creates the "Control" group. + */ + void createControlGroup () { + /* + * Create the "Control" group. This is the group on the + * left half of each example tab. It consists of the + * style group, the display group and the size group. + */ + controlGroup = new Group (tabFolderPage, SWT.NULL); + GridLayout gridLayout= new GridLayout (); + controlGroup.setLayout (gridLayout); + gridLayout.numColumns = 1; + gridLayout.makeColumnsEqualWidth = true; + controlGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); + controlGroup.setText (ControlPlugin.getResourceString("Parameters")); + + /* Create individual groups inside the "Control" group */ + styleGroup = new Group (controlGroup, SWT.NULL); + gridLayout = new GridLayout (); + styleGroup.setLayout (gridLayout); + gridLayout.numColumns = 2; + styleGroup.setLayoutData (new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); + styleGroup.setText (ControlPlugin.getResourceString("Styles")); + + /* Create a group for the parent sytle controls */ + parentStyleGroup = new Group (styleGroup, SWT.NULL); + parentStyleGroup.setLayout (new GridLayout ()); + GridData gridData = new GridData(GridData.HORIZONTAL_ALIGN_CENTER); + gridData.horizontalSpan = 2; + parentStyleGroup.setLayoutData (gridData); + parentStyleGroup.setText (ControlPlugin.getResourceString("Parent")); + } + + /** + * Creates the "Control" widget children. + */ + void createControlWidgets () { + + /* Create the parent style buttons */ + noParentButton = new Button (parentStyleGroup, SWT.RADIO); + noParentButton.setText (ControlPlugin.getResourceString("No_Parent")); + parentButton = new Button (parentStyleGroup, SWT.RADIO); + parentButton.setText (ControlPlugin.getResourceString("Parent")); + + /* Create a group for the decoration style controls */ + Group decorationStyleGroup = new Group(styleGroup, SWT.NULL); + decorationStyleGroup.setLayout (new GridLayout ()); + GridData gridData = new GridData (GridData.HORIZONTAL_ALIGN_CENTER); + gridData.horizontalSpan = 2; + decorationStyleGroup.setLayoutData (gridData); + decorationStyleGroup.setText (ControlPlugin.getResourceString("Decoration_Styles")); + + /* Create the decoration style buttons */ + noTrimButton = new Button (decorationStyleGroup, SWT.CHECK); + noTrimButton.setText (ControlPlugin.getResourceString("SWT_NO_TRIM")); + closeButton = new Button (decorationStyleGroup, SWT.CHECK); + closeButton.setText (ControlPlugin.getResourceString("SWT_CLOSE")); + titleButton = new Button (decorationStyleGroup, SWT.CHECK); + titleButton.setText (ControlPlugin.getResourceString("SWT_TITLE")); + minButton = new Button (decorationStyleGroup, SWT.CHECK); + minButton.setText (ControlPlugin.getResourceString("SWT_MIN")); + maxButton = new Button (decorationStyleGroup, SWT.CHECK); + maxButton.setText (ControlPlugin.getResourceString("SWT_MAX")); + borderButton = new Button (decorationStyleGroup, SWT.CHECK); + borderButton.setText (ControlPlugin.getResourceString("SWT_BORDER")); + resizeButton = new Button (decorationStyleGroup, SWT.CHECK); + resizeButton.setText (ControlPlugin.getResourceString("SWT_RESIZE")); + + /* Create the "create" and "closeAll" buttons */ + createButton = new Button (styleGroup, SWT.NULL); + gridData = new GridData (GridData.HORIZONTAL_ALIGN_CENTER); + createButton.setLayoutData (gridData); + createButton.setText (ControlPlugin.getResourceString("Create_Shell")); + closeAllButton = new Button (styleGroup, SWT.NULL); + closeAllButton.setText (ControlPlugin.getResourceString("Close_All_Shells")); + closeAllButton.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_CENTER)); + + /* Add the listeners */ + createButton.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent e) { + createButtonSelected(e); + }; + }); + closeAllButton.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent e) { + closeAllShells (); + }; + }); + SelectionListener decorationButtonListener = new SelectionAdapter() { + public void widgetSelected(SelectionEvent event) { + decorationButtonSelected(event); + }; + }; + noTrimButton.addSelectionListener (decorationButtonListener); + closeButton.addSelectionListener (decorationButtonListener); + titleButton.addSelectionListener (decorationButtonListener); + minButton.addSelectionListener (decorationButtonListener); + maxButton.addSelectionListener (decorationButtonListener); + borderButton.addSelectionListener (decorationButtonListener); + resizeButton.addSelectionListener (decorationButtonListener); + + /* Set the default state */ + noParentButton.setSelection (true); + } + + /** + * Handle a decoration button selection event. + * + * @param event org.eclipse.swt.events.SelectionEvent + */ + public void decorationButtonSelected(SelectionEvent event) { + + /* + * Make sure if the No Trim button is selected then + * all other decoration buttons are deselected. + */ + Button widget = (Button) event.widget; + if (widget.getSelection() && widget != noTrimButton) { + noTrimButton.setSelection (false); + return; + } + if (widget.getSelection() && widget == noTrimButton) { + closeButton.setSelection (false); + titleButton.setSelection (false); + minButton.setSelection (false); + maxButton.setSelection (false); + borderButton.setSelection (false); + resizeButton.setSelection (false); + return; + } + } + + /** + * Gets the text for the tab folder item. + */ + String getTabText () { + return ControlPlugin.getResourceString("Shell"); + } +} diff --git a/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/SliderTab.java b/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/SliderTab.java new file mode 100755 index 0000000000..3058d09ca5 --- /dev/null +++ b/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/SliderTab.java @@ -0,0 +1,226 @@ +package org.eclipse.swt.examples.controls; + +/* + * (c) Copyright IBM Corp. 2000, 2001. + * All Rights Reserved + */ + +import org.eclipse.swt.*; +import org.eclipse.swt.graphics.*; +import org.eclipse.swt.widgets.*; +import org.eclipse.swt.layout.*; +import org.eclipse.swt.events.*; + +class SliderTab extends RangeTab { + /* Example widgets and groups that contain them */ + Scale scale1; + Slider slider1; + Group sliderGroup, scaleGroup; + + /* Scale widgets added to the "Control" group */ + Scale incrementScale, pageIncrementScale, thumbScale; + + /** + * Creates the "Control" widget children. + */ + void createControlWidgets () { + super.createControlWidgets (); + createThumbGroup (); + createIncrementGroup (); + createPageIncrementGroup (); + } + + /** + * Creates the "Example" group. + */ + void createExampleGroup () { + super.createExampleGroup (); + + /* Create a group for the slider */ + sliderGroup = new Group (exampleGroup, SWT.NULL); + sliderGroup.setLayout (new GridLayout ()); + sliderGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); + sliderGroup.setText (ControlPlugin.getResourceString("Slider")); + + /* Create a group for the scale */ + scaleGroup = new Group (exampleGroup, SWT.NULL); + scaleGroup.setLayout (new GridLayout ()); + scaleGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); + scaleGroup.setText (ControlPlugin.getResourceString("Scale")); + + } + + /** + * Creates the "Example" widgets. + */ + void createExampleWidgets () { + + /* Compute the widget style */ + int style = SWT.NONE; + if (horizontalButton.getSelection ()) style |= SWT.HORIZONTAL; + if (verticalButton.getSelection ()) style |= SWT.VERTICAL; + if (borderButton.getSelection ()) style |= SWT.BORDER; + + /* Create the example widgets */ + scale1 = new Scale (scaleGroup, style); + scale1.setMaximum (100); + scale1.setSelection (50); + scale1.setIncrement (5); + scale1.setPageIncrement (10); + slider1 = new Slider(sliderGroup, style); + slider1.setMaximum (100); + slider1.setSelection (50); + slider1.setIncrement(5); + slider1.setPageIncrement (10); + slider1.setThumb (10); + } + + /** + * Create a group of widgets to control the increment + * attribute of the example widget. + */ + void createIncrementGroup() { + + /* Create the group */ + Group incrementGroup = new Group (controlGroup, SWT.NULL); + incrementGroup.setLayout (new GridLayout ()); + incrementGroup.setText (ControlPlugin.getResourceString("Increment")); + + /* Create the scale widget */ + incrementScale = new Scale (incrementGroup, SWT.NULL); + incrementScale.setMaximum (100); + incrementScale.setSelection (5); + incrementScale.setPageIncrement (10); + incrementScale.setIncrement (5); + + /* Add the listeners */ + incrementScale.addSelectionListener (new SelectionAdapter () { + public void widgetSelected (SelectionEvent e) { + setWidgetIncrement (); + }; + }); + } + + /** + * Create a group of widgets to control the page increment + * attribute of the example widget. + */ + void createPageIncrementGroup() { + + /* Create the group */ + Group pageIncrementGroup = new Group (controlGroup, SWT.NULL); + pageIncrementGroup.setLayout (new GridLayout ()); + pageIncrementGroup.setText (ControlPlugin.getResourceString("Page_Increment")); + + /* Create the scale widget */ + pageIncrementScale = new Scale (pageIncrementGroup, SWT.NULL); + pageIncrementScale.setMaximum (100); + pageIncrementScale.setSelection (10); + pageIncrementScale.setPageIncrement (10); + pageIncrementScale.setIncrement (5); + + /* Add the listeners */ + pageIncrementScale.addSelectionListener (new SelectionAdapter () { + public void widgetSelected (SelectionEvent event) { + setWidgetIncrement (); + } + }); + } + + /** + * Create a group of widgets to control the thumb + * attribute of the example widget. + */ + void createThumbGroup() { + + /* Create the group */ + Group thumbGroup = new Group (controlGroup, SWT.NULL); + thumbGroup.setLayout (new GridLayout ()); + thumbGroup.setText (ControlPlugin.getResourceString("Thumb")); + + /* Create the scale widget */ + thumbScale = new Scale (thumbGroup, SWT.NULL); + thumbScale.setMaximum (100); + thumbScale.setSelection (10); + thumbScale.setPageIncrement (10); + thumbScale.setIncrement (5); + + /* Add the listeners */ + thumbScale.addSelectionListener (new SelectionAdapter () { + public void widgetSelected (SelectionEvent event) { + setWidgetThumb (); + }; + }); + } + + /** + * Gets the "Example" widget children. + */ + Control [] getExampleWidgets () { + return new Control [] {scale1, slider1}; + } + + /** + * Gets the text for the tab folder item. + */ + String getTabText () { + return ControlPlugin.getResourceString("Slider_and_Scale"); + } + + /** + * Sets the state of the "Example" widgets. + */ + void setExampleWidgetState () { + super.setExampleWidgetState (); + setWidgetIncrement (); + setWidgetPageIncrement (); + setWidgetThumb (); + } + + /** + * Sets the increment of the "Example" widgets. + */ + void setWidgetIncrement () { + slider1.setIncrement (incrementScale.getSelection ()); + scale1.setIncrement (incrementScale.getSelection ()); + } + + /** + * Sets the minimim of the "Example" widgets. + */ + void setWidgetMaximum () { + slider1.setMaximum (maximumScale.getSelection ()); + scale1.setMaximum (maximumScale.getSelection ()); + } + + /** + * Sets the minimim of the "Example" widgets. + */ + void setWidgetMinimum () { + slider1.setMinimum (minimumScale.getSelection ()); + scale1.setMinimum (minimumScale.getSelection ()); + } + + /** + * Sets the page increment of the "Example" widgets. + */ + void setWidgetPageIncrement () { + slider1.setPageIncrement (pageIncrementScale.getSelection ()); + scale1.setPageIncrement (pageIncrementScale.getSelection ()); + } + + /** + * Sets the selection of the "Example" widgets. + */ + void setWidgetSelection () { + slider1.setSelection (selectionScale.getSelection ()); + scale1.setSelection (selectionScale.getSelection ()); + } + + /** + * Sets the thumb of the "Example" widgets. + */ + void setWidgetThumb () { + slider1.setThumb (thumbScale.getSelection ()); + } +} diff --git a/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/Tab.java b/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/Tab.java new file mode 100755 index 0000000000..a28d88aae0 --- /dev/null +++ b/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/Tab.java @@ -0,0 +1,364 @@ +package org.eclipse.swt.examples.controls; + +/* + * (c) Copyright IBM Corp. 2000, 2001. + * All Rights Reserved + */ + +import org.eclipse.swt.*; +import org.eclipse.swt.graphics.*; +import org.eclipse.swt.widgets.*; +import org.eclipse.swt.layout.*; +import org.eclipse.swt.events.*; +import java.util.ResourceBundle; + +/** + * Tab is the abstract superclass of every page + * in the example's tab folder. Each page in the tab folder + * describes a control. + * + * A Tab itself is not a control but instead provides a + * hierarchy with which to share code that is common to + * every page in the folder. + * + * A typical page in a Tab contains a two column composite. + * The left column contains the "Example" group. The right + * column contains "Control" group. The "Control" group + * contains controls that allow the user to interact with + * the example control. The "Control" group typically + * contains a "Style", "Display" and "Size" group. Subclasses + * can override these defaults to augment a group or stop + * a group from being created. + */ +abstract class Tab { + /* Common control buttons */ + Button borderButton, enabledButton, visibleButton; + Button preferredButton, tooSmallButton, smallButton, largeButton; + + /* Common groups and composites */ + Composite tabFolderPage; + Group exampleGroup, controlGroup, displayGroup, sizeGroup, styleGroup; + + /* Sizing constants for the "Size" group */ + static final int TOO_SMALL_SIZE = 10; + static final int SMALL_SIZE = 50; + static final int LARGE_SIZE = 100; + + /** + * Creates the "Control" group. The "Control" group + * is typically the right hand column in the tab. + */ + void createControlGroup () { + + /* + * Create the "Control" group. This is the group on the + * left half of each example tab. It consists of the + * style group, the display group and the size group. + */ + controlGroup = new Group (tabFolderPage, SWT.NONE); + GridLayout gridLayout= new GridLayout (); + controlGroup.setLayout (gridLayout); + gridLayout.numColumns = 2; + gridLayout.makeColumnsEqualWidth = true; + controlGroup.setLayoutData (new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); + controlGroup.setText (ControlPlugin.getResourceString("Parameters")); + + /* Create individual groups inside the "Control" group */ + createStyleGroup (); + createDisplayGroup (); + createSizeGroup (); + + /* + * For each Button child in the style group, add a selection + * listener that will recreate the example controls. If the + * style group button is a RADIO button, ensure that the radio + * button is selected before recreating the example controls. + * When the user selects a RADIO button, the curreont RADIO + * button in the group is deselected and the new RADIO button + * is selected automatically. The listeners are notified for + * both these operations but typically only do work when a RADIO + * button is selected. + */ + SelectionListener selectionListener = new SelectionAdapter () { + public void widgetSelected (SelectionEvent event) { + if ((event.widget.getStyle () & SWT.RADIO) != 0) { + if (!((Button) event.widget).getSelection ()) return; + } + recreateExampleWidgets (); + }; + }; + Control [] children = styleGroup.getChildren (); + for (int i=0; i