Subversion Repositories filter_foundry

Rev

Rev 102 | Rev 107 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 102 Rev 106
Line 29... Line 29...
29
#include "ff.h"
29
#include "ff.h"
30
 
30
 
31
#include "version.h"
31
#include "version.h"
32
 
32
 
33
HWND preview_hwnd;
33
HWND preview_hwnd;
-
 
34
HCURSOR hCurHandOpen;
-
 
35
HCURSOR hCurHandGrab;
34
 
36
 
35
extern HANDLE hDllInstance;
37
extern HANDLE hDllInstance;
36
 
38
 
37
void DoAbout(AboutRecordPtr pb){
39
void DoAbout(AboutRecordPtr pb){
38
        char s[0x200];
40
        char s[0x200];
Line 76... Line 78...
76
        extern Boolean doupdates;
78
        extern Boolean doupdates;
77
        extern Handle preview_handle;
79
        extern Handle preview_handle;
78
 
80
 
79
        switch(wMsg){
81
        switch(wMsg){
80
        case WM_INITDIALOG:
82
        case WM_INITDIALOG:
-
 
83
                gdata->hWndMainDlg = hDlg;
-
 
84
 
81
                if(gdata->standalone){
85
                if(gdata->standalone){
82
                        myp2cstrcpy(s,gdata->parm.title);
86
                        myp2cstrcpy(s,gdata->parm.title);
83
                        SetWindowText(hDlg,s); // window title bar
87
                        SetWindowText(hDlg,s); // window title bar
84
                }
88
                }
85
                centre_window(hDlg);
89
                centre_window(hDlg);
86
 
90
 
87
                // see http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/fontext_3pbo.asp
91
                // see http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/fontext_3pbo.asp
88
                hfnt = GetStockObject(ANSI_FIXED_FONT);
92
                hfnt = GetStockObject(ANSI_FIXED_FONT);
89
       
93
 
-
 
94
                hCurHandOpen = LoadCursor(hDllInstance, MAKEINTRESOURCE(IDC_FF_HAND_OPEN));
-
 
95
                hCurHandGrab = LoadCursor(hDllInstance, MAKEINTRESOURCE(IDC_FF_HAND_GRAB));
-
 
96
 
90
                preview_hwnd = GetDlgItem(hDlg, PREVIEWITEM);
97
                preview_hwnd = GetDlgItem(hDlg, PREVIEWITEM);
91
                GetClientRect(preview_hwnd, &preview_rect);
98
                GetClientRect(preview_hwnd, &preview_rect);
-
 
99
                SetClassLongPtr(preview_hwnd, GCL_HCURSOR, (LONG_PTR)hCurHandOpen);
92
 
100
 
93
                for(i = 0; i < 8; ++i){
101
                for(i = 0; i < 8; ++i){
94
                        SendDlgItemMessage(hDlg,FIRSTCTLITEM+i,         TBM_SETRANGE,TRUE,MAKELONG(0,255));
102
                        SendDlgItemMessage(hDlg,FIRSTCTLITEM+i,         TBM_SETRANGE,TRUE,MAKELONG(0,255));
95
                        SendDlgItemMessage(hDlg,FIRSTCTLITEM+i,         TBM_SETTICFREQ,SLIDERPAGE,0);
103
                        SendDlgItemMessage(hDlg,FIRSTCTLITEM+i,         TBM_SETTICFREQ,SLIDERPAGE,0);
96
                        SendDlgItemMessage(hDlg,FIRSTCTLITEM+i,         TBM_SETPAGESIZE,0,SLIDERPAGE);
104
                        SendDlgItemMessage(hDlg,FIRSTCTLITEM+i,         TBM_SETPAGESIZE,0,SLIDERPAGE);
97
                        SendDlgItemMessage(hDlg,FIRSTCTLTEXTITEM+i,     EM_SETLIMITTEXT,3,0);
105
                        SendDlgItemMessage(hDlg,FIRSTCTLTEXTITEM+i,     EM_SETLIMITTEXT,3,0);
98
                }
106
                }
99
                for(i = 0; i < 4; ++i){
107
                for(i = 0; i < 4; ++i){
100
                        SendDlgItemMessage(hDlg,FIRSTEXPRITEM+i,        EM_SETLIMITTEXT,MAXEXPR,0);
108
                        SendDlgItemMessage(hDlg,FIRSTEXPRITEM+i,        EM_SETLIMITTEXT,MAXEXPR-1,0); // we need 1 byte as NUL terminator, so our formula can be max 1023
101
                        SendDlgItemMessage(hDlg,FIRSTEXPRITEM+i,        WM_SETFONT,(WPARAM)hfnt,false);
109
                        SendDlgItemMessage(hDlg,FIRSTEXPRITEM+i,        WM_SETFONT,(WPARAM)hfnt,false);
102
                }
110
                }
103
 
111
 
104
                maindlginit(hDlg);
112
                maindlginit(hDlg);
105
                break;
113
                break;
-
 
114
        case WM_DESTROY:
-
 
115
                gdata->hWndMainDlg = 0;
-
 
116
                break;
106
        case WM_DRAWITEM:
117
        case WM_DRAWITEM:
107
                pdi = (DRAWITEMSTRUCT*)lParam;
118
                pdi = (DRAWITEMSTRUCT*)lParam;
108
                if(pdi->itemAction == ODA_DRAWENTIRE){
119
                if(pdi->itemAction == ODA_DRAWENTIRE){
109
                        switch(pdi->CtlID){
120
                        switch(pdi->CtlID){
110
                        case PREVIEWITEM:
121
                        case PREVIEWITEM:
Line 122... Line 133...
122
                switch(HIWORD(wParam)){
133
                switch(HIWORD(wParam)){
123
                case BN_CLICKED: //case STN_CLICKED:
134
                case BN_CLICKED: //case STN_CLICKED:
124
                        if(item==PREVIEWITEM && GetCursorPos(&origpos)){
135
                        if(item==PREVIEWITEM && GetCursorPos(&origpos)){
125
                                panning = true;
136
                                panning = true;
126
                                origscroll = preview_scroll;
137
                                origscroll = preview_scroll;
-
 
138
                                SetCursor(hCurHandGrab);
127
                                SetCapture(hDlg);
139
                                SetCapture(hDlg);
128
                                break;
140
                                break;
129
                        }
141
                        }
130
                case EN_CHANGE:
142
                case EN_CHANGE:
131
                        if(doupdates && !maindlgitem(hDlg,item))
143
                        if(doupdates && !maindlgitem(hDlg,item))
Line 158... Line 170...
158
 
170
 
159
        return true;
171
        return true;
160
}
172
}
161
 
173
 
162
Boolean maindialog(FilterRecordPtr pb){
174
Boolean maindialog(FilterRecordPtr pb){
-
 
175
 
-
 
176
        // For the preview image, we register a class, so that we can assign a mouse cursor to this class.
-
 
177
        WNDCLASSEX clx;
-
 
178
        clx.cbSize = sizeof(WNDCLASSEX);
-
 
179
        GetClassInfoEx(hDllInstance, "Static", &clx);
-
 
180
        clx.lpszClassName = "Preview";
-
 
181
        RegisterClassEx(&clx);
-
 
182
 
-
 
183
        // Now show the dialog
163
        PlatformData *p = pb->platformData;
184
        PlatformData *p = pb->platformData;
164
        return DialogBoxParam(hDllInstance,MAKEINTRESOURCE(gdata->standalone ? ID_PARAMDLG : ID_MAINDLG),
185
        return DialogBoxParam(hDllInstance,MAKEINTRESOURCE(gdata->standalone ? ID_PARAMDLG : ID_MAINDLG),
165
                                                  (HWND)p->hwnd,maindlgproc,0) == IDOK;
186
                                                  (HWND)p->hwnd,maindlgproc,0) == IDOK;
166
}
187
}
167
 
188