X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/d1582b2e76cf777e4da4e047faa5cccab135f663..2d8cd396ba55fad14d7e03ae904d9fe8fdf1b60d:/winstuff.h diff --git a/winstuff.h b/winstuff.h index 411fe171..61b34795 100644 --- a/winstuff.h +++ b/winstuff.h @@ -23,11 +23,15 @@ struct FontSpec { int charset; }; +#define BOXFLAGS DLGWINDOWEXTRA +#define BOXRESULT DLGWINDOWEXTRA + 4 +#define DF_END 0x0001 + /* * Global variables. Most modules declare these `extern', but * window.c will do `#define PUTTY_DO_GLOBALS' before including this * module, and so will get them properly defined. - */ +*/ #ifndef GLOBAL #ifdef PUTTY_DO_GLOBALS #define GLOBAL @@ -163,13 +167,15 @@ struct dlgparam { HWND hwnd; /* the hwnd of the dialog box */ struct winctrls *controltrees[8]; /* can have several of these */ int nctrltrees; + char *wintitle; /* title of actual window */ char *errtitle; /* title of error sub-messageboxes */ void *data; /* data to pass in refresh events */ union control *focused, *lastfocused; /* which ctrl has focus now/before */ + char shortcuts[128]; /* track which shortcuts in use */ int coloursel_wanted; /* has an event handler asked for * a colour selector? */ - char shortcuts[128]; /* track which shortcuts in use */ struct { unsigned char r, g, b, ok; } coloursel_result; /* 0-255 */ + tree234 *privdata; /* stores per-control private data */ int ended, endresult; /* has the dialog been ended? */ }; @@ -283,6 +289,10 @@ int winctrl_handle_command(struct dlgparam *dp, UINT msg, void winctrl_rem_shortcuts(struct dlgparam *dp, struct winctrl *c); int winctrl_context_help(struct dlgparam *dp, HWND hwnd, int id); +void dp_init(struct dlgparam *dp); +void dp_add_tree(struct dlgparam *dp, struct winctrls *tree); +void dp_cleanup(struct dlgparam *dp); + /* * Exports from wincfg.c. */ @@ -302,6 +312,20 @@ void modal_about_box(HWND hwnd); void show_help(HWND hwnd); /* + * Exports from winmisc.c. + */ + +int SaneDialogBox(HINSTANCE hinst, + LPCTSTR tmpl, + HWND hwndparent, + DLGPROC lpDialogFunc); + +void SaneEndDialog(HWND hwnd, int ret); + +extern OSVERSIONINFO osVersion; +BOOL init_winver(void); + +/* * Exports from sizetip.c. */ void UpdateSizeTip(HWND src, int cx, int cy); @@ -313,4 +337,16 @@ void EnableSizeTip(int bEnable); struct unicode_data; void init_ucs(Config *, struct unicode_data *); +/* + * pageantc.c needs to schedule callbacks for asynchronous agent + * requests. This has to be done differently in GUI and console, so + * there's an exported function used for the purpose. + * + * Also, we supply FLAG_SYNCAGENT to force agent requests to be + * synchronous in pscp and psftp. + */ +void agent_schedule_callback(void (*callback)(void *, void *, int), + void *callback_ctx, void *data, int len); +#define FLAG_SYNCAGENT 0x1000 + #endif