Stroika Library 3.0d18
 
Loading...
Searching...
No Matches
FilteredFilePicker.h
1/*
2 * Copyright(c) Sophist Solutions, Inc. 1990-2025. All rights reserved
3 */
4
5#ifndef __FilteredFIlePicker_h__
6#define __FilteredFIlePicker_h__ 1
7
8#include "Stroika/Foundation/StroikaPreComp.h"
9
10#include <Dialogs.h>
11#include <Navigation.h>
12#include <StandardFile.h>
13
14#include <LDocApplication.h>
15
16#include "Stroika/Frameworks/Led/Support.h"
17
18#include "LedItConfig.h"
19
20#ifndef qUseNavServices
21#if TARGET_CARBON
22#define qUseNavServices 1
23#else
24#define qUseNavServices 0
25#endif
26#endif
27
28class FilteredSFGetDLog {
29public:
30 struct TypeSpec {
31 const char* fName;
32 OSType fOSType;
33 };
34 FilteredSFGetDLog (const TypeSpec* typeNameList, size_t nTypes);
35
36 nonvirtual bool PickFile (FSSpec* result, bool* typeSpecified, size_t* typeIndex);
37
38#if qUseNavServices
39protected:
40 static pascal void StaticNavEventProc (NavEventCallbackMessage inSelector, NavCBRecPtr ioParams, NavCallBackUserData ioUserData);
41 virtual void NavEventProc (NavEventCallbackMessage inSelector, NavCBRecPtr ioParams);
42 static pascal Boolean StaticNavObjectFilterProc (AEDesc* theItem, void* info, void* callBackUD, NavFilterModes filterMode);
43 virtual bool NavObjectFilterProc (AEDesc* theItem, void* info, NavFilterModes filterMode);
44
45protected:
46 NavDialogRef fCurDialog;
47#endif
48
49protected:
50#if !qUseNavServices && !TARGET_CARBON
51 static pascal short SFGetDlgHook (short item, DialogPtr dialog, void* myData);
52 static pascal Boolean SFFilterProc (CInfoPBPtr pb, void* myData);
53#endif
54
55 const TypeSpec* fTypeSpecs;
56 size_t fTypeSpecCount;
57 size_t fCurPopupIdx;
58 size_t fPopupDLGItemNumber;
59#if !qUseNavServices && !TARGET_CARBON
60 DialogPtr fMainDialog;
61#endif
62};
63
64class FilteredSFPutDLog {
65public:
66 struct TypeSpec {
67 const char* fName;
68 OSType fOSType;
69 };
70 FilteredSFPutDLog (const TypeSpec* typeNameList, size_t nTypes);
71
72 nonvirtual bool PickFile (ConstStr255Param defaultName, FSSpec* result, bool* replacing, size_t* typeIndex);
73
74#if qUseNavServices
75protected:
76 static pascal void StaticNavEventProc (NavEventCallbackMessage inSelector, NavCBRecPtr ioParams, NavCallBackUserData ioUserData);
77 virtual void NavEventProc (NavEventCallbackMessage inSelector, NavCBRecPtr ioParams);
78
79protected:
80 NavDialogRef fCurDialog;
81#endif
82
83protected:
84#if !qUseNavServices && !TARGET_CARBON
85 static pascal short SFPutDlgHook (short item, DialogPtr dialog, void* myData);
86#endif
87
88 const TypeSpec* fTypeSpecs;
89 size_t fTypeSpecCount;
90 size_t fCurPopupIdx;
91 size_t fPopupDLGItemNumber;
92#if !qUseNavServices && !TARGET_CARBON
93 DialogPtr fMainDialog;
94#endif
95};
96
97#endif /*__FilteredFIlePicker_h__*/