summaryrefslogtreecommitdiffhomepage
path: root/X-Plane-SDK/CHeaders/Widgets/XPStandardWidgets.h
diff options
context:
space:
mode:
Diffstat (limited to 'X-Plane-SDK/CHeaders/Widgets/XPStandardWidgets.h')
-rwxr-xr-xX-Plane-SDK/CHeaders/Widgets/XPStandardWidgets.h580
1 files changed, 580 insertions, 0 deletions
diff --git a/X-Plane-SDK/CHeaders/Widgets/XPStandardWidgets.h b/X-Plane-SDK/CHeaders/Widgets/XPStandardWidgets.h
new file mode 100755
index 0000000..fe5b4a8
--- /dev/null
+++ b/X-Plane-SDK/CHeaders/Widgets/XPStandardWidgets.h
@@ -0,0 +1,580 @@
+#ifndef _XPStandardWidgets_h_
+#define _XPStandardWidgets_h_
+
+/*
+ * Copyright 2005-2012 Sandy Barbour and Ben Supnik
+ *
+ * All rights reserved. See license.txt for usage.
+ *
+ * X-Plane SDK Version: 2.1.1
+ *
+ */
+
+/*
+ * XPStandardWidgets - THEORY OF OPERATION
+ *
+ * The standard widgets are widgets built into the widgets library. While you
+ * can gain access to the widget function that drives them, you generally use
+ * them by calling XPCreateWidget and then listening for special messages,
+ * etc.
+ *
+ * The standard widgets often send mesages to themselves when the user
+ * performs an event; these messages are sent up the widget hierarchy until
+ * they are handled. So you can add a widget proc directly to a push button
+ * (for example) to intercept the message when it is clicked, or you can put
+ * one widget proc on a window for all of the push buttons in the window.
+ * Most of these messages contain the original widget ID as a parameter so you
+ * can know which widget is messaging no matter who it is sent to.
+ *
+ */
+
+#include "XPWidgetDefs.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/***************************************************************************
+ * MAIN WINDOW
+ ***************************************************************************/
+/*
+ * The main window widget class provides a "window" as the user knows it.
+ * These windows are dragable and can be selected. Use them to create
+ * floating windows and non-modal dialogs.
+ *
+ */
+
+
+
+#define xpWidgetClass_MainWindow 1
+
+/*
+ * Main Window Type Values
+ *
+ * These type values are used to control the appearance of a main window.
+ *
+ */
+enum {
+ /* The standard main window; pin stripes on XP7, metal frame on XP 6. */
+ xpMainWindowStyle_MainWindow = 0
+
+ /* A translucent dark gray window, like the one ATC messages appear in. */
+ ,xpMainWindowStyle_Translucent = 1
+
+
+};
+
+/*
+ * Main Window Properties
+ *
+ *
+ */
+enum {
+ /* This property specifies the type of window. Set to one of the main window *
+ * types above. */
+ xpProperty_MainWindowType = 1100
+
+ /* This property specifies whether the main window has close boxes in its *
+ * corners. */
+ ,xpProperty_MainWindowHasCloseBoxes = 1200
+
+
+};
+
+/*
+ * MainWindow Messages
+ *
+ *
+ */
+enum {
+ /* This message is sent when the close buttons are pressed for your window. */
+ xpMessage_CloseButtonPushed = 1200
+
+
+};
+
+/***************************************************************************
+ * SUB WINDOW
+ ***************************************************************************/
+/*
+ * X-plane dialogs are divided into separate areas; the sub window widgets
+ * allow you to make these areas. Create one main window and place several
+ * subwindows inside it. Then place your controls inside the subwindows.
+ *
+ */
+
+
+
+#define xpWidgetClass_SubWindow 2
+
+/*
+ * SubWindow Type Values
+ *
+ * These values control the appearance of the subwindow.
+ *
+ */
+enum {
+ /* A panel that sits inside a main window. */
+ xpSubWindowStyle_SubWindow = 0
+
+ /* A screen that sits inside a panel for showing text information. */
+ ,xpSubWindowStyle_Screen = 2
+
+ /* A list view for scrolling lists. */
+ ,xpSubWindowStyle_ListView = 3
+
+
+};
+
+/*
+ * SubWindow Properties
+ *
+ *
+ */
+enum {
+ /* This property specifies the type of window. Set to one of the subwindow *
+ * types above. */
+ xpProperty_SubWindowType = 1200
+
+
+};
+
+/***************************************************************************
+ * BUTTON
+ ***************************************************************************/
+/*
+ * The button class provides a number of different button styles and
+ * behaviors, including push buttons, radio buttons, check boxes, etc. The
+ * button label appears on or next to the button depending on the button's
+ * appearance, or type.
+ *
+ * The button's behavior is a separate property that dictates who it hilights
+ * and what kinds of messages it sends. Since behavior and type are
+ * different, you can do strange things like make check boxes that act as push
+ * buttons or push buttons with radio button behavior.
+ *
+ * In X-Plane 6 there were no check box graphics. The result is the following
+ * behavior: in x-plane 6 all check box and radio buttons are round
+ * (radio-button style) buttons; in X-Plane 7 they are all square (check-box
+ * style) buttons. In a future version of x-plane, the xpButtonBehavior enums
+ * will provide the correct graphic (check box or radio button) giving the
+ * expected result.
+ *
+ */
+
+
+
+#define xpWidgetClass_Button 3
+
+/*
+ * Button Types
+ *
+ * These define the visual appearance of buttons but not how they respond to
+ * the mouse.
+ *
+ */
+enum {
+ /* This is a standard push button, like an "OK" or "Cancel" button in a dialog *
+ * box. */
+ xpPushButton = 0
+
+ /* A check box or radio button. Use this and the button behaviors below to *
+ * get the desired behavior. */
+ ,xpRadioButton = 1
+
+ /* A window close box. */
+ ,xpWindowCloseBox = 3
+
+ /* A small down arrow. */
+ ,xpLittleDownArrow = 5
+
+ /* A small up arrow. */
+ ,xpLittleUpArrow = 6
+
+
+};
+
+/*
+ * Button Behavior Values
+ *
+ * These define how the button responds to mouse clicks.
+ *
+ */
+enum {
+ /* Standard push button behavior. The button hilites while the mouse is *
+ * clicked over it and unhilites when the mouse is moved outside of it or *
+ * released. If the mouse is released over the button, the *
+ * xpMsg_PushButtonPressed message is sent. */
+ xpButtonBehaviorPushButton = 0
+
+ /* Check box behavior. The button immediately toggles its value when the *
+ * mouse is clicked and sends out a xpMsg_ButtonStateChanged message. */
+ ,xpButtonBehaviorCheckBox = 1
+
+ /* Radio button behavior. The button immediately sets its state to one and *
+ * sends out a xpMsg_ButtonStateChanged message if it was not already set to *
+ * one. You must turn off other radio buttons in a group in your code. */
+ ,xpButtonBehaviorRadioButton = 2
+
+
+};
+
+/*
+ * Button Properties
+ *
+ *
+ */
+enum {
+ /* This property sets the visual type of button. Use one of the button types *
+ * above. */
+ xpProperty_ButtonType = 1300
+
+ /* This property sets the button's behavior. Use one of the button behaviors *
+ * above. */
+ ,xpProperty_ButtonBehavior = 1301
+
+ /* This property tells whether a check box or radio button is "checked" or *
+ * not. Not used for push buttons. */
+ ,xpProperty_ButtonState = 1302
+
+
+};
+
+/*
+ * Button Messages
+ *
+ * These messages are sent by the button to itself and then up the widget
+ * chain when the button is clicked. (You may intercept them by providing a
+ * widget handler for the button itself or by providing a handler in a parent
+ * widget.)
+ *
+ */
+enum {
+ /* This message is sent when the user completes a click and release in a *
+ * button with push button behavior. Parameter one of the message is the *
+ * widget ID of the button. This message is dispatched up the widget *
+ * hierarchy. */
+ xpMsg_PushButtonPressed = 1300
+
+ /* This message is sent when a button is clicked that has radio button or *
+ * check box behavior and its value changes. (Note that if the value changes *
+ * by setting a property you do not receive this message!) Parameter one is *
+ * the widget ID of the button, parameter 2 is the new state value, either *
+ * zero or one. This message is dispatched up the widget hierarchy. */
+ ,xpMsg_ButtonStateChanged = 1301
+
+
+};
+
+/***************************************************************************
+ * TEXT FIELD
+ ***************************************************************************/
+/*
+ * The text field widget provides an editable text field including mouse
+ * selection and keyboard navigation. The contents of the text field are its
+ * descriptor. (The descriptor changes as the user types.)
+ *
+ * The text field can have a number of types, that effect the visual layout of
+ * the text field. The text field sends messages to itself so you may control
+ * its behavior.
+ *
+ * If you need to filter keystrokes, add a new handler and intercept the key
+ * press message. Since key presses are passed by pointer, you can modify the
+ * keystroke and pass it through to the text field widget.
+ *
+ * WARNING: in x-plane before 7.10 (including 6.70) null characters could
+ * crash x-plane. To prevent this, wrap this object with a filter function
+ * (more instructions can be found on the SDK website).
+ *
+ */
+
+
+
+#define xpWidgetClass_TextField 4
+
+/*
+ * Text Field Type Values
+ *
+ * These control the look of the text field.
+ *
+ */
+enum {
+ /* A field for text entry. */
+ xpTextEntryField = 0
+
+ /* A transparent text field. The user can type and the text is drawn, but no *
+ * background is drawn. You can draw your own background by adding a widget *
+ * handler and prehandling the draw message. */
+ ,xpTextTransparent = 3
+
+ /* A translucent edit field, dark gray. */
+ ,xpTextTranslucent = 4
+
+
+};
+
+/*
+ * Text Field Properties
+ *
+ *
+ */
+enum {
+ /* This is the character position the selection starts at, zero based. If it *
+ * is the same as the end insertion point, the insertion point is not a *
+ * selection. */
+ xpProperty_EditFieldSelStart = 1400
+
+ /* This is the character position of the end of the selection. */
+ ,xpProperty_EditFieldSelEnd = 1401
+
+ /* This is the character position a drag was started at if the user is *
+ * dragging to select text, or -1 if a drag is not in progress. */
+ ,xpProperty_EditFieldSelDragStart = 1402
+
+ /* This is the type of text field to display, from the above list. */
+ ,xpProperty_TextFieldType = 1403
+
+ /* Set this property to 1 to password protect the field. Characters will be *
+ * drawn as *s even though the descriptor will contain plain-text. */
+ ,xpProperty_PasswordMode = 1404
+
+ /* The max number of characters you can enter, if limited. Zero means *
+ * unlimited. */
+ ,xpProperty_MaxCharacters = 1405
+
+ /* The first visible character on the left. This effectively scrolls the text *
+ * field. */
+ ,xpProperty_ScrollPosition = 1406
+
+ /* The font to draw the field's text with. (An XPLMFontID.) */
+ ,xpProperty_Font = 1407
+
+ /* This is the active side of the insert selection. (Internal) */
+ ,xpProperty_ActiveEditSide = 1408
+
+
+};
+
+/*
+ * Text Field Messages
+ *
+ *
+ */
+enum {
+ /* Text Field Messages *
+ * *
+ * The text field sends this message to itself when its text changes. It *
+ * sends the message up the call chain; param1 is the text field's widget ID. */
+ xpMsg_TextFieldChanged = 1400
+
+
+};
+
+/***************************************************************************
+ * SCROLL BAR
+ ***************************************************************************/
+/*
+ * A standard scroll bar or slider control. The scroll bar has a minimum,
+ * maximum and current value that is updated when the user drags it. The
+ * scroll bar sends continuous messages as it is dragged.
+ *
+ */
+
+
+
+#define xpWidgetClass_ScrollBar 5
+
+/*
+ * Scroll Bar Type Values
+ *
+ * This defines how the scroll bar looks.
+ *
+ */
+enum {
+ /* Scroll bar types. *
+ * *
+ * A standard x-plane scroll bar (with arrows on the ends). */
+ xpScrollBarTypeScrollBar = 0
+
+ /* A slider, no arrows. */
+ ,xpScrollBarTypeSlider = 1
+
+
+};
+
+/*
+ * Scroll Bar Properties
+ *
+ *
+ */
+enum {
+ /* The current position of the thumb (in between the min and max, inclusive) */
+ xpProperty_ScrollBarSliderPosition = 1500
+
+ /* The value the scroll bar has when the thumb is in the lowest position. */
+ ,xpProperty_ScrollBarMin = 1501
+
+ /* The value the scroll bar has when the thumb is in the highest position. */
+ ,xpProperty_ScrollBarMax = 1502
+
+ /* How many units to moev the scroll bar when clicking next to the thumb. The *
+ * scroll bar always moves one unit when the arrows are clicked. */
+ ,xpProperty_ScrollBarPageAmount = 1503
+
+ /* The type of scrollbar from the enums above. */
+ ,xpProperty_ScrollBarType = 1504
+
+ /* Used internally. */
+ ,xpProperty_ScrollBarSlop = 1505
+
+
+};
+
+/*
+ * Scroll Bar Messages
+ *
+ *
+ */
+enum {
+ /* The Scroll Bar sends this message when the slider position changes. It *
+ * sends the message up the call chain; param1 is the Scroll Bar widget ID. */
+ xpMsg_ScrollBarSliderPositionChanged = 1500
+
+
+};
+
+/***************************************************************************
+ * CAPTION
+ ***************************************************************************/
+/*
+ * A caption is a simple widget that shows its descriptor as a string, useful
+ * for labeling parts of a window. It always shows its descriptor as its
+ * string and is otherwise transparent.
+ *
+ */
+
+
+
+#define xpWidgetClass_Caption 6
+
+/*
+ * Caption Properties
+ *
+ *
+ */
+enum {
+ /* This property specifies whether the caption is lit; use lit captions *
+ * against screens. */
+ xpProperty_CaptionLit = 1600
+
+
+};
+
+/***************************************************************************
+ * GENERAL GRAPHICS
+ ***************************************************************************/
+/*
+ * The general graphics widget can show one of many icons available from
+ * x-plane.
+ *
+ */
+
+
+
+#define xpWidgetClass_GeneralGraphics 7
+
+/*
+ * General Graphics Types Values
+ *
+ * These define the icon for the general graphics.
+ *
+ */
+enum {
+ xpShip = 4
+
+ ,xpILSGlideScope = 5
+
+ ,xpMarkerLeft = 6
+
+ ,xp_Airport = 7
+
+ ,xpNDB = 8
+
+ ,xpVOR = 9
+
+ ,xpRadioTower = 10
+
+ ,xpAircraftCarrier = 11
+
+ ,xpFire = 12
+
+ ,xpMarkerRight = 13
+
+ ,xpCustomObject = 14
+
+ ,xpCoolingTower = 15
+
+ ,xpSmokeStack = 16
+
+ ,xpBuilding = 17
+
+ ,xpPowerLine = 18
+
+ ,xpVORWithCompassRose = 19
+
+ ,xpOilPlatform = 21
+
+ ,xpOilPlatformSmall = 22
+
+ ,xpWayPoint = 23
+
+
+};
+
+/*
+ * General Graphics Properties
+ *
+ *
+ */
+enum {
+ /* This property controls the type of icon that is drawn. */
+ xpProperty_GeneralGraphicsType = 1700
+
+
+};
+
+/***************************************************************************
+ * PROGRESS INDICATOR
+ ***************************************************************************/
+/*
+ * This widget implements a progress indicator as seen when x-plane starts up.
+ *
+ */
+
+
+
+#define xpWidgetClass_Progress 8
+
+/*
+ * Progress Indicator Properties
+ *
+ *
+ */
+enum {
+ /* This is the current value of the progress indicator. */
+ xpProperty_ProgressPosition = 1800
+
+ /* This is the minimum value, equivalent to 0% filled. */
+ ,xpProperty_ProgressMin = 1801
+
+ /* This is the maximum value, equivalent to 100% filled. */
+ ,xpProperty_ProgressMax = 1802
+
+
+};
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif