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 |