Initial commit of Command & Conquer Generals and Command & Conquer Generals Zero Hour source code.
This commit is contained in:
parent
2e338c00cb
commit
3d0ee53a05
6072 changed files with 2283311 additions and 0 deletions
541
GeneralsMD/Code/GameEngine/Include/GameClient/Gadget.h
Normal file
541
GeneralsMD/Code/GameEngine/Include/GameClient/Gadget.h
Normal file
|
@ -0,0 +1,541 @@
|
|||
/*
|
||||
** Command & Conquer Generals Zero Hour(tm)
|
||||
** Copyright 2025 Electronic Arts Inc.
|
||||
**
|
||||
** This program is free software: you can redistribute it and/or modify
|
||||
** it under the terms of the GNU General Public License as published by
|
||||
** the Free Software Foundation, either version 3 of the License, or
|
||||
** (at your option) any later version.
|
||||
**
|
||||
** This program is distributed in the hope that it will be useful,
|
||||
** but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
** GNU General Public License for more details.
|
||||
**
|
||||
** You should have received a copy of the GNU General Public License
|
||||
** along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// (c) 2001-2003 Electronic Arts Inc. //
|
||||
// //
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// FILE: Gadget.h /////////////////////////////////////////////////////////////
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// Westwood Studios Pacific.
|
||||
//
|
||||
// Confidential Information
|
||||
// Copyright (C) 2001 - All Rights Reserved
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// Project: RTS3
|
||||
//
|
||||
// File name: Gadget.h
|
||||
//
|
||||
// Created: Colin Day, June 2001
|
||||
//
|
||||
// Desc: Game GUI user interface gadget controls
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef __GADGET_H_
|
||||
#define __GADGET_H_
|
||||
|
||||
// SYSTEM INCLUDES ////////////////////////////////////////////////////////////
|
||||
|
||||
// USER INCLUDES //////////////////////////////////////////////////////////////
|
||||
#include "GameClient/GameWindow.h"
|
||||
#include "GameClient/Image.h"
|
||||
|
||||
// FORWARD REFERENCES /////////////////////////////////////////////////////////
|
||||
|
||||
// TYPE DEFINES ///////////////////////////////////////////////////////////////
|
||||
|
||||
enum
|
||||
{
|
||||
|
||||
GADGET_SIZE = 16,
|
||||
HORIZONTAL_SLIDER_THUMB_WIDTH = 13,
|
||||
HORIZONTAL_SLIDER_THUMB_HEIGHT = 16,
|
||||
ENTRY_TEXT_LEN = 256,
|
||||
STATIC_TEXT_LEN = 256,
|
||||
|
||||
};
|
||||
|
||||
// for listboxes
|
||||
enum
|
||||
{
|
||||
|
||||
TEXT_X_OFFSET = 5,
|
||||
TEXT_Y_OFFSET = 2,
|
||||
TEXT_WIDTH_OFFSET = 7,
|
||||
|
||||
TOTAL_OUTLINE_HEIGHT = 2 // Sum of heights of tom and bottom outline
|
||||
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
LISTBOX_TEXT = 1,
|
||||
LISTBOX_IMAGE = 2
|
||||
};
|
||||
|
||||
// Gadget window styles, keep in same order as WindowStyleNames[]
|
||||
enum
|
||||
{
|
||||
|
||||
GWS_PUSH_BUTTON = 0x00000001,
|
||||
GWS_RADIO_BUTTON = 0x00000002,
|
||||
GWS_CHECK_BOX = 0x00000004,
|
||||
GWS_VERT_SLIDER = 0x00000008,
|
||||
GWS_HORZ_SLIDER = 0x00000010,
|
||||
GWS_SCROLL_LISTBOX = 0x00000020,
|
||||
GWS_ENTRY_FIELD = 0x00000040,
|
||||
GWS_STATIC_TEXT = 0x00000080,
|
||||
GWS_PROGRESS_BAR = 0x00000100,
|
||||
GWS_USER_WINDOW = 0x00000200,
|
||||
GWS_MOUSE_TRACK = 0x00000400,
|
||||
GWS_ANIMATED = 0x00000800,
|
||||
GWS_TAB_STOP = 0x00001000,
|
||||
GWS_TAB_CONTROL = 0x00002000,
|
||||
GWS_TAB_PANE = 0x00004000,
|
||||
GWS_COMBO_BOX = 0x00008000,
|
||||
|
||||
|
||||
GWS_ALL_SLIDER = GWS_VERT_SLIDER | GWS_HORZ_SLIDER, // for convenience
|
||||
|
||||
GWS_GADGET_WINDOW = GWS_PUSH_BUTTON |
|
||||
GWS_RADIO_BUTTON |
|
||||
GWS_TAB_CONTROL |
|
||||
GWS_CHECK_BOX |
|
||||
GWS_VERT_SLIDER |
|
||||
GWS_HORZ_SLIDER |
|
||||
GWS_SCROLL_LISTBOX |
|
||||
GWS_ENTRY_FIELD |
|
||||
GWS_STATIC_TEXT |
|
||||
GWS_COMBO_BOX |
|
||||
GWS_PROGRESS_BAR,
|
||||
};
|
||||
|
||||
// Gadget paramaters
|
||||
enum
|
||||
{
|
||||
|
||||
GP_DONT_UPDATE = 0x00000001,
|
||||
|
||||
};
|
||||
|
||||
// Gadget game messages (sent to their owners)
|
||||
enum GadgetGameMessage
|
||||
{
|
||||
|
||||
// Generic messages supported by all gadgets
|
||||
GGM_LEFT_DRAG = 16384,
|
||||
GGM_SET_LABEL,
|
||||
GGM_GET_LABEL,
|
||||
GGM_FOCUS_CHANGE,
|
||||
GGM_RESIZED,
|
||||
GGM_CLOSE, // This is the message that's passed to a window if it's registered as a"right Click Menu"
|
||||
|
||||
// Button messages
|
||||
GBM_MOUSE_ENTERING,
|
||||
GBM_MOUSE_LEAVING,
|
||||
GBM_SELECTED,
|
||||
GBM_SELECTED_RIGHT, // Right click selection
|
||||
GBM_SET_SELECTION,
|
||||
|
||||
// Slider messages
|
||||
GSM_SLIDER_TRACK,
|
||||
GSM_SET_SLIDER,
|
||||
GSM_SET_MIN_MAX,
|
||||
GSM_SLIDER_DONE,
|
||||
|
||||
// Listbox messages
|
||||
GLM_ADD_ENTRY,
|
||||
GLM_DEL_ENTRY,
|
||||
GLM_DEL_ALL,
|
||||
GLM_SELECTED,
|
||||
GLM_DOUBLE_CLICKED,
|
||||
GLM_RIGHT_CLICKED,
|
||||
// GLM_SET_INSERTPOS, // Not used since we now use multi column listboxes
|
||||
GLM_SET_SELECTION,
|
||||
GLM_GET_SELECTION,
|
||||
GLM_TOGGLE_MULTI_SELECTION,
|
||||
GLM_GET_TEXT,
|
||||
// GLM_SET_TEXT, // Not used Removed just to make sure
|
||||
GLM_SET_UP_BUTTON,
|
||||
GLM_SET_DOWN_BUTTON,
|
||||
GLM_SET_SLIDER,
|
||||
GLM_SCROLL_BUFFER,
|
||||
GLM_UPDATE_DISPLAY,
|
||||
GLM_GET_ITEM_DATA,
|
||||
GLM_SET_ITEM_DATA,
|
||||
|
||||
//ComboBox Messages
|
||||
GCM_ADD_ENTRY,
|
||||
GCM_DEL_ENTRY,
|
||||
GCM_DEL_ALL,
|
||||
GCM_SELECTED,
|
||||
GCM_GET_TEXT,
|
||||
GCM_SET_TEXT,
|
||||
GCM_EDIT_DONE,
|
||||
GCM_GET_ITEM_DATA,
|
||||
GCM_SET_ITEM_DATA,
|
||||
GCM_GET_SELECTION,
|
||||
GCM_SET_SELECTION,
|
||||
GCM_UPDATE_TEXT,
|
||||
|
||||
// Entry field messages
|
||||
GEM_GET_TEXT,
|
||||
GEM_SET_TEXT,
|
||||
GEM_EDIT_DONE,
|
||||
GEM_UPDATE_TEXT, //added so the parent will maintain real life status of the edit box.
|
||||
|
||||
// Slider messages
|
||||
GPM_SET_PROGRESS,
|
||||
|
||||
};
|
||||
|
||||
// border types
|
||||
enum
|
||||
{
|
||||
|
||||
BORDER_CORNER_UL = 0,
|
||||
BORDER_CORNER_UR,
|
||||
BORDER_CORNER_LL,
|
||||
BORDER_CORNER_LR,
|
||||
BORDER_VERTICAL_LEFT,
|
||||
BORDER_VERTICAL_LEFT_SHORT,
|
||||
BORDER_VERTICAL_RIGHT,
|
||||
BORDER_VERTICAL_RIGHT_SHORT,
|
||||
BORDER_HORIZONTAL_TOP,
|
||||
BORDER_HORIZONTAL_TOP_SHORT,
|
||||
BORDER_HORIZONTAL_BOTTOM,
|
||||
BORDER_HORIZONTAL_BOTTOM_SHORT,
|
||||
|
||||
NUM_BORDER_PIECES
|
||||
|
||||
};
|
||||
|
||||
// GadgetMsg ------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------------
|
||||
typedef struct _GadgetMsg
|
||||
{
|
||||
|
||||
GameWindow *window; // Originator of message
|
||||
Int data; // Data field
|
||||
Int data2; // Data field
|
||||
|
||||
} GadgetMsgStruct, *GadgetMsg;
|
||||
|
||||
// SliderMsg ------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------------
|
||||
typedef struct _SliderMsg
|
||||
{
|
||||
|
||||
GameWindow *window; // Originator of message
|
||||
Int minVal; // Minimum slider value
|
||||
Int maxVal; // Maximum slider value
|
||||
Int position; // Current position of the slider
|
||||
|
||||
} SliderMsgStruct, *SliderMsg;
|
||||
|
||||
// ListboxMsg -----------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------------
|
||||
typedef struct _ListboxMsg
|
||||
{
|
||||
|
||||
GameWindow *window; // Originator of message
|
||||
Int position; // Position of the entry
|
||||
|
||||
} ListboxMsgStruct, *ListboxMsg;
|
||||
|
||||
// SliderData -----------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------------
|
||||
typedef struct _SliderData
|
||||
{
|
||||
|
||||
Int minVal; // Minimum slider value
|
||||
Int maxVal; // Maximum slider value
|
||||
|
||||
// The following fields are for internal use and
|
||||
// should not be initialized by the user
|
||||
Real numTicks; // Number of ticks between min and max
|
||||
Int position; // Current position of the slider
|
||||
|
||||
} SliderData;
|
||||
|
||||
// EntryData ------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------------
|
||||
typedef struct _EntryData
|
||||
{
|
||||
|
||||
DisplayString *text; ///< the entry text
|
||||
DisplayString *sText; ///< for displaying 'secret' text
|
||||
DisplayString *constructText; ///< for foriegn text construction
|
||||
Bool secretText; ///< If TRUE text appears as astericks
|
||||
Bool numericalOnly; ///< If TRUE only numbers are allowed as input
|
||||
Bool alphaNumericalOnly; ///< If TRUE only numbers and letters are allowed as input
|
||||
Bool aSCIIOnly; ///< If TRUE ascii allowed as input
|
||||
Short maxTextLen; ///< Max length of edit text
|
||||
|
||||
// Colin: The very notion of entry width makes no sense to me since
|
||||
// we already have a gadget width, and the max characters for
|
||||
// an entry box so I am removing this.
|
||||
// Short entryWidth; ///< Width, in pixels, of the entry box
|
||||
|
||||
// The following fields are for internal use and
|
||||
// should not be initialized by the user
|
||||
Bool receivedUnichar; // If TRUE system just processed a UniChar
|
||||
|
||||
Bool drawTextFromStart; // if FALSE, make sure end of text is visible
|
||||
|
||||
GameWindow *constructList; // Listbox for construct list.
|
||||
UnsignedShort charPos; // Position of current character
|
||||
UnsignedShort conCharPos; // Position of current contruct character
|
||||
|
||||
} EntryData;
|
||||
|
||||
// TextData -------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------------
|
||||
typedef struct _TextData
|
||||
{
|
||||
|
||||
DisplayString *text; ///< the text data
|
||||
Bool centered; ///< horizontal
|
||||
Bool centeredVertically; ///< vertical
|
||||
Int leftMargin; ///< left justification margin width
|
||||
Int topMargin; ///< top justification margin width
|
||||
|
||||
} TextData;
|
||||
|
||||
// ListEntryCell --------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------------
|
||||
typedef struct _ListEntryCell
|
||||
{
|
||||
Int cellType; // Holds either LISTBOX_TEXT or LISTBOX_IMAGE
|
||||
Color color; // use this color
|
||||
void *data; // pointer to either a DisplayString or an image
|
||||
void *userData; // Attach user data to the cell
|
||||
Int width; // Used if this is an image and we don't want to use the default
|
||||
Int height; // used if this is an image and we don't want ot use the default
|
||||
} ListEntryCell;
|
||||
|
||||
// ListEntryRow ---------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------------
|
||||
typedef struct _ListEntryRow
|
||||
{
|
||||
|
||||
// The following fields are for internal use and
|
||||
// should not be initialized by the user
|
||||
Int listHeight; // calculated total Height at the bottom of this entry
|
||||
Byte height; // Maintain the height of the row
|
||||
ListEntryCell *cell; // Holds the array of ListEntry Cells
|
||||
|
||||
} ListEntryRow;
|
||||
|
||||
// ListboxData ----------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------------
|
||||
typedef struct _ListboxData
|
||||
{
|
||||
|
||||
Short listLength; // Max Number of entries in the list
|
||||
Short columns; // Number of Columns each line has
|
||||
Int *columnWidthPercentage; // Holds the percentage value of each column in an Int array;
|
||||
Bool autoScroll; // If add exceeds number of lines in display
|
||||
// scroll up automatically
|
||||
Bool autoPurge; // If add exceeds number of entries in list
|
||||
// delete top entry automatically
|
||||
Bool scrollBar; // Automatically create the up/down/slider buttons
|
||||
Bool multiSelect; // Allow for multiple selections
|
||||
Bool forceSelect; // Do not allow users to unselect from a listbox
|
||||
Bool scrollIfAtEnd; // If we're looking at the bottom of the listbox when a new entry is added,
|
||||
// scroll up automatically
|
||||
|
||||
Bool audioFeedback; // Audio click feedback?
|
||||
|
||||
//
|
||||
// The following fields are for internal use and should not be initialized
|
||||
// by the user
|
||||
//
|
||||
Int *columnWidth; // Pointer to array of column widths based off of user input
|
||||
ListEntryRow *listData; // Pointer to an array of ListEntryRows that we create when we first create the List
|
||||
GameWindow *upButton; // Child window for up arrow
|
||||
GameWindow *downButton; // Child window for down arrow
|
||||
GameWindow *slider; // Child window for slider bar
|
||||
Int totalHeight; // total height of all entries
|
||||
Short endPos; // End Insertion position
|
||||
Short insertPos; // Insertion position
|
||||
|
||||
Int selectPos; // Position of current selected entry (for SINGLE select)
|
||||
Int *selections; // Pointer to array of selections (for MULTI select)
|
||||
|
||||
Short displayHeight; // Height in pixels of listbox display region
|
||||
// this is computed based on the existance
|
||||
// of a title or not.
|
||||
UnsignedInt doubleClickTime; //
|
||||
Short displayPos; // Position of current display entry in pixels
|
||||
|
||||
} ListboxData;
|
||||
|
||||
// ComboBoxData ---------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------------
|
||||
typedef struct _ComboBoxData
|
||||
{
|
||||
Bool isEditable; // Determines if the Combo box is a combo box or a dropdown box
|
||||
Int maxDisplay; // Holds the count for the maximum displayed in the lisbox before the slider appears
|
||||
Int maxChars; // Holds how many characters can be in the listbox/edit box.
|
||||
Bool asciiOnly; // Used to notify the Text Entry box if it is suppose to allow only ascii characters
|
||||
Bool lettersAndNumbersOnly; // Used to notify the Text Entry Box if it is to only allow letters and numbers
|
||||
ListboxData *listboxData; // Needed for the listbox component of the combo box
|
||||
EntryData *entryData; // Needed for the text entry component of the combo box
|
||||
//
|
||||
// The following fields are for internal use and should not be initialized
|
||||
// by the user
|
||||
//
|
||||
Bool dontHide; // A flag we'll use that'll determine if we hide the listbox or not when selected
|
||||
Int entryCount; // Current number of entries.
|
||||
GameWindow *dropDownButton; // Child window for drop down button
|
||||
GameWindow *editBox; // Child window for edit box
|
||||
GameWindow *listBox; // Child window for list box
|
||||
} ComboBoxData;
|
||||
|
||||
// RadioButtonData ------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------------
|
||||
typedef struct _RadioButtonData
|
||||
{
|
||||
|
||||
Int screen; ///< screen identifier
|
||||
Int group; ///< group identifier
|
||||
|
||||
} RadioButtonData;
|
||||
|
||||
// PushButtonData -------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#define NO_CLOCK 0
|
||||
#define NORMAL_CLOCK 1
|
||||
#define INVERSE_CLOCK 2
|
||||
|
||||
typedef struct _PushButtonData
|
||||
{
|
||||
UnsignedByte drawClock; ///< We only want to draw the clock if, well, we want to
|
||||
Int percentClock; ///< The percentage of the clock we want to draw
|
||||
Color colorClock; ///< The color to display the clock at
|
||||
Bool drawBorder; ///< We only want to draw the border if we want to
|
||||
Color colorBorder; ///< The color for the border around the button
|
||||
void *userData; ///< random additional data we can set
|
||||
const Image *overlayImage; ///< An overlay image (like a veterancy symbol)
|
||||
AsciiString altSound; ///< use an alternitive sound if one is set
|
||||
} PushButtonData;
|
||||
|
||||
// TabControlData ------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------------
|
||||
enum //Tab Position
|
||||
{
|
||||
TP_CENTER,//Orientation
|
||||
TP_TOPLEFT,
|
||||
TP_BOTTOMRIGHT,
|
||||
|
||||
TP_TOP_SIDE,//... on which side
|
||||
TP_RIGHT_SIDE,
|
||||
TP_LEFT_SIDE,
|
||||
TP_BOTTOM_SIDE
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
NUM_TAB_PANES = 8,//(MAX_DRAW_DATA - 1)
|
||||
};
|
||||
|
||||
typedef struct _TabControlData
|
||||
{
|
||||
//Set in editor
|
||||
Int tabOrientation;
|
||||
Int tabEdge;
|
||||
|
||||
Int tabWidth;
|
||||
Int tabHeight;
|
||||
Int tabCount;
|
||||
|
||||
GameWindow *subPanes[NUM_TAB_PANES];
|
||||
Bool subPaneDisabled[NUM_TAB_PANES];//tabCount will control how many even exist. Individual ones can be disabled
|
||||
Int paneBorder;
|
||||
|
||||
//Working computations
|
||||
Int activeTab;
|
||||
|
||||
Int tabsLeftLimit;
|
||||
Int tabsRightLimit;
|
||||
Int tabsTopLimit;
|
||||
Int tabsBottomLimit;
|
||||
|
||||
} TabControlData;
|
||||
|
||||
// INLINING ///////////////////////////////////////////////////////////////////
|
||||
|
||||
// EXTERNALS //////////////////////////////////////////////////////////////////
|
||||
extern WindowMsgHandledType GadgetPushButtonSystem( GameWindow *window, UnsignedInt msg,
|
||||
WindowMsgData mData1, WindowMsgData mData2 );
|
||||
extern WindowMsgHandledType GadgetPushButtonInput( GameWindow *window, UnsignedInt msg,
|
||||
WindowMsgData mData1, WindowMsgData mData2 );
|
||||
extern WindowMsgHandledType GadgetCheckBoxInput( GameWindow *window, UnsignedInt msg,
|
||||
WindowMsgData mData1, WindowMsgData mData2 );
|
||||
extern WindowMsgHandledType GadgetCheckBoxSystem( GameWindow *window, UnsignedInt msg,
|
||||
WindowMsgData mData1, WindowMsgData mData2 );
|
||||
extern WindowMsgHandledType GadgetRadioButtonInput( GameWindow *window, UnsignedInt msg,
|
||||
WindowMsgData mData1, WindowMsgData mData2 );
|
||||
extern WindowMsgHandledType GadgetRadioButtonSystem( GameWindow *window, UnsignedInt msg,
|
||||
WindowMsgData mData1, WindowMsgData mData2 );
|
||||
extern WindowMsgHandledType GadgetTabControlInput( GameWindow *window, UnsignedInt msg,
|
||||
WindowMsgData mData1, WindowMsgData mData2 );
|
||||
extern WindowMsgHandledType GadgetTabControlSystem( GameWindow *window, UnsignedInt msg,
|
||||
WindowMsgData mData1, WindowMsgData mData2 );
|
||||
extern WindowMsgHandledType GadgetListBoxInput( GameWindow *window, UnsignedInt msg,
|
||||
WindowMsgData mData1, WindowMsgData mData2 );
|
||||
extern WindowMsgHandledType GadgetListBoxMultiInput( GameWindow *window, UnsignedInt msg,
|
||||
WindowMsgData mData1, WindowMsgData mData2 );
|
||||
extern WindowMsgHandledType GadgetListBoxSystem( GameWindow *window, UnsignedInt msg,
|
||||
WindowMsgData mData1, WindowMsgData mData2 );
|
||||
extern WindowMsgHandledType GadgetHorizontalSliderInput( GameWindow *window, UnsignedInt msg,
|
||||
WindowMsgData mData1, WindowMsgData mData2 );
|
||||
extern WindowMsgHandledType GadgetHorizontalSliderSystem( GameWindow *window, UnsignedInt msg,
|
||||
WindowMsgData mData1, WindowMsgData mData2 );
|
||||
extern WindowMsgHandledType GadgetVerticalSliderInput( GameWindow *window, UnsignedInt msg,
|
||||
WindowMsgData mData1, WindowMsgData mData2 );
|
||||
extern WindowMsgHandledType GadgetVerticalSliderSystem( GameWindow *window, UnsignedInt msg,
|
||||
WindowMsgData mData1, WindowMsgData mData2 );
|
||||
extern WindowMsgHandledType GadgetProgressBarSystem( GameWindow *window, UnsignedInt msg,
|
||||
WindowMsgData mData1, WindowMsgData mData2 );
|
||||
extern WindowMsgHandledType GadgetStaticTextInput( GameWindow *window, UnsignedInt msg,
|
||||
WindowMsgData mData1, WindowMsgData mData2 );
|
||||
extern WindowMsgHandledType GadgetStaticTextSystem( GameWindow *window, UnsignedInt msg,
|
||||
WindowMsgData mData1, WindowMsgData mData2 );
|
||||
extern WindowMsgHandledType GadgetTextEntryInput( GameWindow *window, UnsignedInt msg,
|
||||
WindowMsgData mData1, WindowMsgData mData2 );
|
||||
extern WindowMsgHandledType GadgetTextEntrySystem( GameWindow *window, UnsignedInt msg,
|
||||
WindowMsgData mData1, WindowMsgData mData2 );
|
||||
extern WindowMsgHandledType GadgetComboBoxInput( GameWindow *window, UnsignedInt msg,
|
||||
WindowMsgData mData1, WindowMsgData mData2 );
|
||||
extern WindowMsgHandledType GadgetComboBoxSystem( GameWindow *window, UnsignedInt msg,
|
||||
WindowMsgData mData1, WindowMsgData mData2 );
|
||||
|
||||
|
||||
extern Bool InitializeEntryGadget( void );
|
||||
|
||||
extern Bool ShutdownEntryGadget( void );
|
||||
|
||||
// Entry Gadget Functions
|
||||
extern void InformEntry( WideChar c );
|
||||
|
||||
// list box stuff
|
||||
extern Int GetListboxTopEntry( ListboxData list );
|
||||
|
||||
#endif // __GADGET_H_
|
Reference in a new issue