Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'examples/org.eclipse.swt.examples.controls/org/eclipse/swt/examples/controls/ShellTab.java')
-rwxr-xr-xexamples/org.eclipse.swt.examples.controls/org/eclipse/swt/examples/controls/ShellTab.java217
1 files changed, 217 insertions, 0 deletions
diff --git a/examples/org.eclipse.swt.examples.controls/org/eclipse/swt/examples/controls/ShellTab.java b/examples/org.eclipse.swt.examples.controls/org/eclipse/swt/examples/controls/ShellTab.java
new file mode 100755
index 0000000000..1eede5da1f
--- /dev/null
+++ b/examples/org.eclipse.swt.examples.controls/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<shellCount; i++) {
+ if (shells[i] != null & !shells [i].isDisposed ()) {
+ shells [i].dispose();
+ }
+ }
+ shellCount = 0;
+ }
+
+ /**
+ * Handle the Create button selection event.
+ *
+ * @param event org.eclipse.swt.events.SelectionEvent
+ */
+ public void createButtonSelected(SelectionEvent event) {
+
+ /*
+ * Remember the example shells so they
+ * can be disposed by the user.
+ */
+ if (shellCount >= 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");
+ }
+}

Back to the top