Files
Aerofoil/PortabilityLayer/PLDialogs.h

56 lines
1.4 KiB
C
Raw Normal View History

2019-11-11 00:11:59 -05:00
#pragma once
#ifndef __PL_DIALOGS_H__
#define __PL_DIALOGS_H__
#include "PLCore.h"
2019-12-31 02:42:20 -05:00
template<class T>
class ArrayView;
2019-11-11 00:11:59 -05:00
class PLPasStr;
2019-12-29 23:14:37 -05:00
struct Control;
2019-11-11 00:11:59 -05:00
2019-12-31 02:42:20 -05:00
struct DialogItem
2019-11-11 00:11:59 -05:00
{
2019-12-31 02:42:20 -05:00
virtual Rect GetRect() const = 0;
2019-11-11 00:11:59 -05:00
};
2019-12-31 02:42:20 -05:00
struct Dialog
2019-11-11 00:11:59 -05:00
{
2019-12-31 02:42:20 -05:00
virtual void Destroy() = 0;
virtual Window *GetWindow() const = 0;
virtual ArrayView<DialogItem*const> GetItems() const = 0;
2019-11-11 00:11:59 -05:00
};
enum TEMode
{
teCenter
};
2019-12-31 02:42:20 -05:00
typedef Boolean(*ModalFilterUPP)(Dialog *dial, EventRecord *event, short *item);
2019-11-11 00:11:59 -05:00
2019-12-31 02:42:20 -05:00
void DrawDialog(Dialog *dialog);
DrawSurface *GetDialogPort(Dialog *dialog);
2019-11-11 00:11:59 -05:00
2019-12-31 02:42:20 -05:00
void GetDialogItem(Dialog *dialog, int index, short *itemType, THandle<Control> *itemHandle, Rect *itemRect);
2019-12-29 23:14:37 -05:00
void GetDialogItemText(THandle<Control> handle, StringPtr str);
2019-11-11 00:11:59 -05:00
2019-12-31 02:42:20 -05:00
void SetDialogItem(Dialog *dialog, int index, short itemType, THandle<Control> itemHandle, const Rect *itemRect);
2019-12-29 23:14:37 -05:00
void SetDialogItemText(THandle<Control> handle, const PLPasStr &str);
2019-11-11 00:11:59 -05:00
2019-12-31 02:42:20 -05:00
void SelectDialogItemText(Dialog *dialog, int item, int firstSelChar, int lastSelCharExclusive);
2019-11-11 00:11:59 -05:00
ModalFilterUPP NewModalFilterUPP(ModalFilterUPP func);
void ModalDialog(ModalFilterUPP filter, short *item);
2019-12-31 02:42:20 -05:00
void DisposeDialog(Dialog *dialog);
2019-11-11 00:11:59 -05:00
void DisposeModalFilterUPP(ModalFilterUPP upp);
2019-12-31 02:42:20 -05:00
void ShowDialogItem(Dialog *dialog, int item);
void HideDialogItem(Dialog *dialog, int item);
2019-11-11 00:11:59 -05:00
void TETextBox(const PLPasStr &str, short len, const Rect *rect, TEMode teMode);
#endif