2 @Copyright Looking Glass Studios, Inc.
3 1996,1997,1998,1999,2000 Unpublished Work.
6 // $Header: r:/t2repos/thief2/libsrc/gadget/gadtext.h,v 1.4 1997/02/11 15:01:46 mahk Exp $
15 // api constants; replicated from textgadg implementation.
19 typedef enum _LGadTextBoxEvent
21 TEXTBOX_SPECKEY
= TEXTGADG_SPECKEY
, // a special key was pressed
22 TEXTBOX_SELECT
= TEXTGADG_SELECT
, // text was selected (not yet supported)
23 TEXTBOX_BUTTON
= TEXTGADG_BUTTON
, // gadget was clicked on.
26 typedef bool (*LGadTextBoxCallback
)(struct _LGadTextBox
* tbox
, LGadTextBoxEvent event
, int eventdata
, void* user_data
);
29 #define TEXTBOX_BORDER_FLAG TEXTGADG_BORDER_FLAG // should there be a border?
30 #define TEXTBOX_FOCUS_FLAG TEXTGADG_FOCUS_FLAG // should the gadget grab focus on click?
31 #define TEXTBOX_MOUSE_DOWNS TEXTGADG_MOUSE_DOWNS // should we get mouse downs?
33 // Alignment is not supported yet, so...
34 //#define TEXTBOX_ALIGN_MASK TEXTGADG_ALIGN_MASK // text alignment
35 //#define TEXTBOX_ALIGN_LEFT TEXTGADG_ALIGN_LEFT // left alignment
36 //#define TEXTBOX_ALIGN_RIGHT TEXTGADG_ALIGN_RIGHT // right alignment
37 //#define TEXTBOX_ALIGN_TOP TEXTGADG_ALIGN_TOP // top alignment
38 //#define TEXTBOX_ALIGN_BOTTOM TEXTGADG_ALIGN_BOTTOM // bottom alignment
40 #define TEXTBOX_EDIT_EDITABLE TEXTGADG_EDIT_EDITABLE // can you edit things
41 #define TEXTBOX_EDIT_OVERMODE TEXTGADG_EDIT_OVERMODE // are we in insert mode
42 #define TEXTBOX_EDIT_BRANDNEW TEXTGADG_EDIT_BRANDNEW // most keystrokes wipe initial text
43 #define TEXTBOX_EDIT_NOSPACES TEXTGADG_EDIT_NOSPACES // prohibit whitespace?
45 ////////////////////////////////////////
47 ////////////////////////////////////////
49 #define LGadTextBoxRegion(pgadg) TextGadgRegion(&(pgadg)->gadg)
50 #define LGadTextBoxEditing(pgadg) TextGadgEditing(&(pgadg)->gadg)
51 #define LGadTextBoxText(pgadg) TextGadgText(&(pgadg)->gadg)
52 #define LGadTextBoxTextLen(pgadg) TextGadgTextLen(&(pgadg)->gadg)
53 #define LGadTextBoxCursor(pgadg) TextGadgCursor(&(pgadg)->gadg)
54 #define LGadTextBoxFlags(pgadg) TextGadgFlags(&(pgadg)->gadg)
56 #define LGadTextBoxSetCursor(pgadg,intval) TextGadgSetCursor(&(pgadg)->gadg,intval)
57 #define LGadTextBoxSetFlag(pgadg,flg) TextGadgSetFlag(&(pgadg)->gadg,flg)
58 #define LGadTextBoxClrFlag(pgadg,flg) TextGadgClrFlag(&(pgadg)->gadg,flg)
59 #define LGadTextBoxSetSpecialKeys(pgadg,keys) TextGadgSetSpecialKeys(&(pgadg)->gadg,keys)
62 // Yay! A descriptor struct
65 typedef struct _LGadTextBoxDesc
71 LGadTextBoxCallback cb
;
77 // and now, the lgadgtextbox itself
80 typedef struct _LGadTextBox
83 LGadTextBoxCallback cb
;
84 void* data
; // from desc
89 // Creation and destruction
93 EXTERN LGadTextBox
* LGadCreateTextBoxDesc(LGadTextBox
* box
, LGadRoot
* root
, LGadTextBoxDesc
* desc
);
94 EXTERN
void LGadDestroyTextBox(LGadTextBox
* box
);
97 // Notify the textbox that its text has changed
100 #define LGadUpdateTextBox(box) TextGadgUpdate(&(box)->gadg)
103 // Grab/Release focus with the text box
106 #define LGadFocusTextBox(box) TextGadgFocus(&(box)->gadg)
107 #define LGadUnfocusTextBox(box) TextGadgUnfocus((box != NULL) ? &(box)->gadg: NULL)
110 #endif // __GADTEXT_H