mirror of
https://github.com/microsoft/Microsoft-3D-Movie-Maker.git
synced 2024-11-22 02:12:33 +01:00
119 lines
2.6 KiB
C++
119 lines
2.6 KiB
C++
/* Copyright (c) Microsoft Corporation.
|
|
Licensed under the MIT License. */
|
|
|
|
/* Copyright (c) Microsoft Corporation.
|
|
Licensed under the MIT License. */
|
|
|
|
/***************************************************************************
|
|
Author: ShonK
|
|
Project: Kauai
|
|
Reviewed:
|
|
Copyright (c) Microsoft Corporation
|
|
|
|
Dialog header file.
|
|
|
|
***************************************************************************/
|
|
#ifndef DLG_H
|
|
#define DLG_H
|
|
|
|
#ifdef MAC
|
|
typedef DialogPtr HDLG;
|
|
#endif //MAC
|
|
#ifdef WIN
|
|
typedef HWND HDLG;
|
|
#endif //WIN
|
|
|
|
//type of dialog item
|
|
enum
|
|
{
|
|
ditkButton, //no value
|
|
ditkCheckBox, //long (bool)
|
|
ditkRadioGroup, //long (index)
|
|
ditkEditText, //streamed stn
|
|
ditkCombo, //streamed stn, followed by a list of streamed stn's.
|
|
ditkLim
|
|
};
|
|
|
|
|
|
//dialog item
|
|
struct DIT
|
|
{
|
|
long sitMin; //first system item number (for this DIT)
|
|
long sitLim; //lim of system item numbers (for this DIT)
|
|
long ditk; //kind of item
|
|
};
|
|
|
|
|
|
typedef class DLG *PDLG;
|
|
|
|
//callback to notify of an item change (while the dialog is active)
|
|
typedef bool (*PFNDLG)(PDLG pdlg, long *pidit, void *pv);
|
|
|
|
|
|
//dialog class - a DLG is a GG of DITs
|
|
#define DLG_PAR GG
|
|
#define kclsDLG 'DLG'
|
|
class DLG : public DLG_PAR
|
|
{
|
|
RTCLASS_DEC
|
|
|
|
private:
|
|
PGOB _pgob;
|
|
long _rid;
|
|
PFNDLG _pfn;
|
|
void *_pv;
|
|
|
|
#ifdef WIN
|
|
friend BOOL CALLBACK
|
|
_FDlgCore(HWND hdlg, UINT msg, WPARAM w, LPARAM lw);
|
|
#endif //WIN
|
|
|
|
DLG(long rid);
|
|
bool _FInit(void);
|
|
|
|
long _LwGetRadioGroup(long idit);
|
|
void _SetRadioGroup(long idit, long lw);
|
|
bool _FGetCheckBox(long idit);
|
|
void _InvertCheckBox(long idit);
|
|
void _SetCheckBox(long idit, bool fOn);
|
|
void _GetEditText(long idit, PSTN pstn);
|
|
void _SetEditText(long idit, PSTN pstn);
|
|
bool _FDitChange(long *pidit);
|
|
bool _FAddToList(long idit, PSTN pstn);
|
|
void _ClearList(long idit);
|
|
|
|
public:
|
|
static PDLG PdlgNew(long rid, PFNDLG pfn = pvNil, void *pv = pvNil);
|
|
|
|
long IditDo(long iditFocus = ivNil);
|
|
|
|
//these are only valid while the dialog is up
|
|
bool FGetValues(long iditMin, long iditLim);
|
|
void SetValues(long iditMin, long iditLim);
|
|
void SelectDit(long idit);
|
|
|
|
//argument access
|
|
long IditFromSit(long sit);
|
|
void GetDit(long idit, DIT *pdit)
|
|
{ GetFixed(idit, pdit); }
|
|
void PutDit(long idit, DIT *pdit)
|
|
{ PutFixed(idit, pdit); }
|
|
|
|
void GetStn(long idit, PSTN pstn);
|
|
bool FPutStn(long idit, PSTN pstn);
|
|
long LwGetRadio(long idit);
|
|
void PutRadio(long idit, long lw);
|
|
bool FGetCheck(long idit);
|
|
void PutCheck(long idit, bool fOn);
|
|
|
|
bool FGetLwFromEdit(long idit, long *plw, bool *pfEmpty = pvNil);
|
|
bool FPutLwInEdit(long idit, long lw);
|
|
|
|
bool FAddToList(long idit, PSTN pstn);
|
|
void ClearList(long idit);
|
|
};
|
|
|
|
|
|
#endif //!DLG_H
|
|
|