Subversion Repositories filter_foundry

Rev

Rev 193 | Rev 268 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
259 daniel-mar 1
/*
2
        This file is part of a common library for Adobe(R) plugins
3
    Copyright (C) 2002-2010 Toby Thain, toby@telegraphics.com.au
4
 
5
    This program is free software; you can redistribute it and/or modify
6
    it under the terms of the GNU General Public License as published by  
7
    the Free Software Foundation; either version 2 of the License, or
8
    (at your option) any later version.
9
 
10
    This program is distributed in the hope that it will be useful,
11
    but WITHOUT ANY WARRANTY; without even the implied warranty of
12
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
    GNU General Public License for more details.
14
 
15
    You should have received a copy of the GNU General Public License  
16
    along with this program; if not, write to the Free Software
17
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18
*/
19
 
20
/* Cross-platform user interface defines */
21
 
22
#ifndef UI_COMPAT_H_
23
#define UI_COMPAT_H_
24
 
25
#if macintosh
26
        #include <qdoffscreen.h>
27
        #include <sound.h>
28
        #include <dialogs.h>
29
        #include <controls.h>
30
 
31
        #include "dlg.h"
32
        #include "menu.h"
33
 
34
        typedef DialogRef DIALOGREF;
35
        typedef ControlRef CTLREF;
36
        typedef struct MACBITMAP {
37
                GWorldPtr gw;
38
                PixMapHandle pm;
39
        } *BITMAPREF;
40
        typedef Rect UIRECT;
41
 
42
        #define LOCKBITMAP(pb) LockPixels(pb->pm)
43
        #define UNLOCKBITMAP(pb) UnlockPixels(pb->pm)
44
        #define ROWBYTES(pb) GetPixRowBytes(pb->pm)
45
        #define BASEADDR(pb) GetPixBaseAddr(pb->pm)
46
 
47
        #define ENABLECONTROL(c) HiliteControl(c,0)
48
        #define DISABLECONTROL(c)  HiliteControl(c,255)
49
        #define ENABLEDLGITEM EnableDlgControl
50
        #define DISABLEDLGITEM DisableDlgControl
51
 
52
        #define SELECTDLGITEMTEXT SelectDialogItemText
53
        #define CHECKDLGBUTTON SetDlgControlValue
54
        #define SETBUTTONVALUE SetControlValue
55
//              ( GetDialogItem(d,i,&itemType,&itemHdl,&itemRect),
56
//                SetControlValue((ControlHandle)itemHdl,v) )
57
        #define ISDLGBUTTONCHECKED GetDlgControlValue
58
//              ( GetDialogItem(d,i,&itemType,&itemHdl,&itemRect),
59
//                GetControlValue((ControlHandle)itemHdl) )
60
 
61
        #define GETSLIDERVALUE GetDlgControlValue
62
        #define SETSLIDERVALUE SetDlgControlValue
63
        #define GETCTLTEXT getctltext
64
        #define SETCTLTEXT setctltext
65
        #define GETCTLTEXTINT getctltextint
66
        #define SETCTLTEXTINT setctltextint
67
        #define SELECTCTLTEXT selectctltext
68
 
69
/*
70
        #define ENABLECONTROL(d,i) \
71
                ( GetDialogItem(d,i,&itemType,&itemHdl,&itemRect),\
72
                  HiliteControl((ControlHandle)itemHdl,0) )
73
        #define DISABLECONTROL(d,i) \
74
                ( GetDialogItem(d,i,&itemType,&itemHdl,&itemRect),\
75
                  HiliteControl((ControlHandle)itemHdl,255) )
76
        #define SETDLGITEMINT(d,i,v,bsigned) \
77
                ( GetDialogItem(d,i,&itemType,&itemHdl,&itemRect),\
78
                  NumToString(v,itemStr),\
79
                  SetDialogItemText(itemHdl,itemStr) )
80
        #define GETDLGITEMINT(d,i,bpresult,bsigned) \
81
                ( GetDialogItem(d,i,&itemType,&itemHdl,&itemRect),\
82
                  GetDialogItemText(itemHdl,itemStr),\
83
                  StringToNum(itemStr,&itemNum),\
84
                  itemNum )
85
*/
86
 
87
/* note menu item indices are ZERO based in the following two calls (like Win32 Combo Box) */
88
        #define SETMENUCURSEL(c,v) SetControlValue(c,(v)+1)
89
        #define GETMENUCURSEL(c) (GetControlValue(c)-1)
90
        #define MENUADDCSTR menuaddcstr
91
                //(c,s) myc2pstr(s),AppendMenu(GetControlPopupMenuHandle(c),(StringPtr)s),myp2cstr((StringPtr)s)
92
        #define GETDLGCTLREF (ControlRef)get_item_handle
93
 
94
        #define INITCURSOR InitCursor
95
 
96
        #define INVALWINDOWRECT(dp,rp) InvalWindowRect(GetDialogWindow(dp),rp)
97
        #define SYSBEEP SysBeep
98
 
99
        #define ERASERECT EraseRect
100
 
101
        #if TARGET_CPU_68K
102
                // for Universal Interfaces 3.3 (CW 68K build)
103
                #define SetPortDialogPort SetGrafPortOfDialog
104
                #define GetDialogPort
105
        #endif
106
 
107
//      #define GetPixRowBytes(pm) ((*(pm))->rowBytes & 0x3fff) // "The high 2 bits of rowBytes are used as flags."
108
 
109
        #if !TARGET_CARBON
110
                #define InvalWindowRect my_InvalWindowRect
111
        #endif
112
 
113
        long GetDlgItemText(DIALOGREF d,int i,char *s,long n); // see dialog.c
114
        long SetDlgItemText(DIALOGREF d,int i,char *s);
115
        void SetDlgControlValue(DIALOGREF d,int i,int v);
116
        int GetDlgControlValue(DIALOGREF d,int i);
117
 
118
        void EnableDlgControl(DIALOGREF d,int i);
119
        void DisableDlgControl(DIALOGREF d,int i);
120
        Boolean SetDlgItemInt(DIALOGREF d,int i,long v,Boolean bsigned);
121
        long GetDlgItemInt(DIALOGREF d,int i,Boolean *presult,Boolean bsigned);
122
 
123
        OSStatus my_InvalWindowRect(WindowRef window,const Rect *bounds);
124
        pascal Boolean standardfilter(DialogRef dialog,EventRecord *event,short *item);
125
        pascal Boolean aboutfilter(DialogRef dialog,EventRecord *event,short *item);
126
        Handle get_item_handle(DIALOGREF d,int i);
127
        long getctltext(DIALOGREF d,int i,char *s,long n);
128
        long setctltext(DIALOGREF d,int i,char *s);
129
        Boolean setctltextint(DIALOGREF d,int i,long v,Boolean bsigned);
130
        long getctltextint(DIALOGREF d,int i,Boolean *presult,Boolean bsigned);
131
        long selectctltext(DIALOGREF d,int i,int start,int end);
132
 
133
        void menuaddcstr(CTLREF m,char *s);
134
 
135
        enum{IDOK = ok,IDCANCEL = cancel};
136
 
137
#else
138
        #include <windows.h>
139
        #include <windowsx.h>
140
        #include <commctrl.h> // for TBM_SETPOS, etc
141
 
142
        #include "compat_win.h"
143
 
144
        typedef HWND DIALOGREF,CTLREF;
145
        typedef struct{
146
                HBITMAP hbmp;
147
                BITMAPINFO bmi;
148
                unsigned char *pbits;
149
                long rowbytes;
150
        } *BITMAPREF;
151
        typedef RECT UIRECT;
152
 
153
        #define LOCKBITMAP(pb) true
154
        #define UNLOCKBITMAP(pb)
155
        #define ROWBYTES(pb) (pb)->rowbytes
156
        #define BASEADDR(pb) (pb)->pbits
157
 
158
        #define ENABLEDLGITEM(d,i) EnableWindow(GetDlgItem(d,i),TRUE)
159
        #define DISABLEDLGITEM(d,i) EnableWindow(GetDlgItem(d,i),FALSE) 
160
        #define ENABLECONTROL(c) EnableWindow(c,TRUE)
161
        #define DISABLECONTROL(c) EnableWindow(c,FALSE) 
162
        #define SETDLGITEMINT SetDlgItemInt
163
        #define GETDLGITEMINT GetDlgItemInt
164
        #define SELECTDLGITEMTEXT(d,i,start,end) \
165
                ( SendDlgItemMessage(d,i,EM_SETSEL,start,end), \
166
                  SendDlgItemMessage(d,i,EM_SCROLLCARET,0,0), \
167
                  SetFocus(GetDlgItem(d,i)) )
168
        #define ISDLGBUTTONCHECKED IsDlgButtonChecked
169
        #define CHECKDLGBUTTON CheckDlgButton
170
        #define SETBUTTONVALUE(c,v) SendMessage(c,BM_SETCHECK,v,0)
171
//      #define HideDialogItem SendDlgItemMessage(d,i,SW_HIDE,0,0) //ShowWindow(GetDlgItem(d,i),SW_HIDE) 
172
//      #define ShowDialogItem SendDlgItemMessage(d,i,SW_SHOW,0,0)
173
        #define HideDialogItem(d,i) ShowWindow(GetDlgItem(d,i),SW_HIDE) 
174
        #define ShowDialogItem(d,i) ShowWindow(GetDlgItem(d,i),SW_SHOW) 
175
 
176
        #define GETSLIDERVALUE(d,i) (int)SendDlgItemMessage(d,i,TBM_GETPOS,0,0)
177
        #define SETSLIDERVALUE(d,i,v) SendDlgItemMessage(d,i,TBM_SETPOS,TRUE,v)
178
        #define GETCTLTEXT GetDlgItemText
179
        #define SETCTLTEXT SetDlgItemText
180
        #define SELECTCTLTEXT SELECTDLGITEMTEXT
181
        #define GETCTLTEXTINT GetDlgItemInt
182
        #define SETCTLTEXTINT SetDlgItemInt
183
 
184
        #define SETMENUCURSEL ComboBox_SetCurSel
185
        #define GETMENUCURSEL ComboBox_GetCurSel
186
        #define MENUADDCSTR ComboBox_AddString
187
        #define GETDLGCTLREF GetDlgItem
188
 
189
        #define INITCURSOR()
190
        #define DLGVARS
191
        #define INVALWINDOWRECT(dp,rp) RedrawWindow(dp,rp,NULL,RDW_ERASE|RDW_INVALIDATE)
192
        #define SYSBEEP(x) MessageBeep(MB_ICONEXCLAMATION)
193
 
194
        void centre_window(HWND hwnd);
195
        void DebugStr(StringPtr s);
196
#endif
197
 
198
 
199
// implemented as functions on both platforms
200
#define GETDLGITEMCSTR GetDlgItemText
201
#define SETDLGITEMCSTR SetDlgItemText
202
Boolean newbitmap(BITMAPREF *pb,int depth,UIRECT *bounds);
203
void disposebitmap(BITMAPREF pb);
204
#define NEWBITMAP newbitmap
205
#define DISPOSEBITMAP disposebitmap
206
 
207
#endif