Rev 536 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 536 | Rev 550 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | /* |
1 | /* |
2 | This file is part of "Filter Foundry", a filter plugin for Adobe Photoshop |
2 | This file is part of "Filter Foundry", a filter plugin for Adobe Photoshop |
3 | Copyright (C) 2003-2009 Toby Thain, toby@telegraphics.net |
3 | Copyright (C) 2003-2009 Toby Thain, toby@telegraphics.net |
4 | Copyright (C) 2018-2022 Daniel Marschall, ViaThinkSoft |
4 | Copyright (C) 2018-2023 Daniel Marschall, ViaThinkSoft |
5 | 5 | ||
6 | This program is free software; you can redistribute it and/or modify |
6 | This program is free software; you can redistribute it and/or modify |
7 | it under the terms of the GNU General Public License as published by |
7 | it under the terms of the GNU General Public License as published by |
8 | the Free Software Foundation; either version 2 of the License, or |
8 | the Free Software Foundation; either version 2 of the License, or |
9 | (at your option) any later version. |
9 | (at your option) any later version. |
Line 45... | Line 45... | ||
45 | TCHAR* filters = (TCHAR*)malloc(4096); |
45 | TCHAR* filters = (TCHAR*)malloc(4096); |
46 | if (filters == NULL) return; |
46 | if (filters == NULL) return; |
47 | memset(filters, 0, 4096); |
47 | memset(filters, 0, 4096); |
48 | tmp1 = filters; |
48 | tmp1 = filters; |
49 | 49 | ||
50 | if (gdata && gdata->standalone) { |
50 | if (gdata && gdata->parm.standalone) { |
51 | // strcpy(gdata->parm.szTitle, "TestTitle"); |
51 | // strcpy(gdata->parm.szTitle, "TestTitle"); |
52 | // strcpy(gdata->parm.szAuthor, "TestAuthor"); |
52 | // strcpy(gdata->parm.szAuthor, "TestAuthor"); |
53 | // strcpy(gdata->parm.szCopyright, "TestCopyright"); |
53 | // strcpy(gdata->parm.szCopyright, "TestCopyright"); |
54 | 54 | ||
55 | strcpy_advance_a(&tmp1, gdata->parm.szTitle); |
55 | strcpy_advance_a(&tmp1, gdata->parm.szTitle); |
Line 88... | Line 88... | ||
88 | } |
88 | } |
89 | 89 | ||
90 | Boolean simplealert(TCHAR* s){ |
90 | Boolean simplealert(TCHAR* s){ |
91 | HWND hwnd; |
91 | HWND hwnd; |
92 | TCHAR title[256] = { 0 }; |
92 | TCHAR title[256] = { 0 }; |
93 | if (gdata && gdata->standalone) { |
93 | if (gdata && gdata->parm.standalone) { |
94 | #ifdef UNICODE |
94 | #ifdef UNICODE |
95 | mbstowcs(&title[0], (const char*)gdata->parm.szTitle, 256); |
95 | mbstowcs(&title[0], (const char*)gdata->parm.szTitle, 256); |
96 | #else |
96 | #else |
97 | strcpy(&title[0], gdata->parm.szTitle); |
97 | strcpy(&title[0], gdata->parm.szTitle); |
98 | #endif |
98 | #endif |
Line 105... | Line 105... | ||
105 | } |
105 | } |
106 | 106 | ||
107 | Boolean simplewarning(TCHAR* s) { |
107 | Boolean simplewarning(TCHAR* s) { |
108 | HWND hwnd; |
108 | HWND hwnd; |
109 | TCHAR title[256] = { 0 }; |
109 | TCHAR title[256] = { 0 }; |
110 | if (gdata && gdata->standalone) { |
110 | if (gdata && gdata->parm.standalone) { |
111 | #ifdef UNICODE |
111 | #ifdef UNICODE |
112 | mbstowcs(&title[0], (const char*)gdata->parm.szTitle, 256); |
112 | mbstowcs(&title[0], (const char*)gdata->parm.szTitle, 256); |
113 | #else |
113 | #else |
114 | strcpy(&title[0], gdata->parm.szTitle); |
114 | strcpy(&title[0], gdata->parm.szTitle); |
115 | #endif |
115 | #endif |
Line 121... | Line 121... | ||
121 | } |
121 | } |
122 | 122 | ||
123 | Boolean showmessage(TCHAR *s) { |
123 | Boolean showmessage(TCHAR *s) { |
124 | HWND hwnd; |
124 | HWND hwnd; |
125 | TCHAR title[256] = { 0 }; |
125 | TCHAR title[256] = { 0 }; |
126 | if (gdata && gdata->standalone) { |
126 | if (gdata && gdata->parm.standalone) { |
127 | #ifdef UNICODE |
127 | #ifdef UNICODE |
128 | mbstowcs(&title[0], (const char*)gdata->parm.szTitle, 256); |
128 | mbstowcs(&title[0], (const char*)gdata->parm.szTitle, 256); |
129 | #else |
129 | #else |
130 | strcpy(&title[0], gdata->parm.szTitle); |
130 | strcpy(&title[0], gdata->parm.szTitle); |
131 | #endif |
131 | #endif |
Line 193... | Line 193... | ||
193 | int sliderNum; |
193 | int sliderNum; |
194 | for (sliderNum = 0; sliderNum < 8; sliderNum++) { |
194 | for (sliderNum = 0; sliderNum < 8; sliderNum++) { |
195 | if (hWnd == GetDlgItem(gdata->hWndMainDlg, FIRSTCTLTEXTITEM + sliderNum)) { |
195 | if (hWnd == GetDlgItem(gdata->hWndMainDlg, FIRSTCTLTEXTITEM + sliderNum)) { |
196 | if ((uMsg == WM_KEYDOWN) && (wParam == VK_UP) && doupdates) |
196 | if ((uMsg == WM_KEYDOWN) && (wParam == VK_UP) && doupdates) |
197 | { |
197 | { |
198 | uint8_t sliderVal = slider[sliderNum] < 255 ? slider[sliderNum] + 1 : slider[sliderNum]; |
198 | uint8_t sliderVal = gdata->parm.val[sliderNum] < 255 ? gdata->parm.val[sliderNum] + 1 : gdata->parm.val[sliderNum]; |
199 | slider[sliderNum] = sliderVal; |
199 | gdata->parm.val[sliderNum] = sliderVal; |
200 | 200 | ||
201 | SETCTLTEXTINT(gdata->hWndMainDlg, FIRSTCTLTEXTITEM + sliderNum, sliderVal, false); |
201 | SETCTLTEXTINT(gdata->hWndMainDlg, FIRSTCTLTEXTITEM + sliderNum, sliderVal, false); |
202 | REPAINTCTL(gdata->hWndMainDlg, FIRSTCTLTEXTITEM + sliderNum); |
202 | REPAINTCTL(gdata->hWndMainDlg, FIRSTCTLTEXTITEM + sliderNum); |
203 | 203 | ||
204 | recalc_preview(gpb, gdata->hWndMainDlg); |
204 | recalc_preview(gpb, gdata->hWndMainDlg); |
205 | 205 | ||
206 | return 0; |
206 | return 0; |
207 | } |
207 | } |
208 | if ((uMsg == WM_KEYDOWN) && (wParam == VK_DOWN) && doupdates) |
208 | if ((uMsg == WM_KEYDOWN) && (wParam == VK_DOWN) && doupdates) |
209 | { |
209 | { |
210 | uint8_t sliderVal = slider[sliderNum] > 0 ? slider[sliderNum] - 1 : slider[sliderNum]; |
210 | uint8_t sliderVal = gdata->parm.val[sliderNum] > 0 ? gdata->parm.val[sliderNum] - 1 : gdata->parm.val[sliderNum]; |
211 | slider[sliderNum] = sliderVal; |
211 | gdata->parm.val[sliderNum] = sliderVal; |
212 | 212 | ||
213 | SETCTLTEXTINT(gdata->hWndMainDlg, FIRSTCTLTEXTITEM + sliderNum, sliderVal, false); |
213 | SETCTLTEXTINT(gdata->hWndMainDlg, FIRSTCTLTEXTITEM + sliderNum, sliderVal, false); |
214 | REPAINTCTL(gdata->hWndMainDlg, FIRSTCTLTEXTITEM + sliderNum); |
214 | REPAINTCTL(gdata->hWndMainDlg, FIRSTCTLTEXTITEM + sliderNum); |
215 | 215 | ||
216 | recalc_preview(gpb, gdata->hWndMainDlg); |
216 | recalc_preview(gpb, gdata->hWndMainDlg); |
Line 242... | Line 242... | ||
242 | if (doupdates) { |
242 | if (doupdates) { |
243 | int sliderNum = (int)wParam - FIRSTCTLITEM; |
243 | int sliderNum = (int)wParam - FIRSTCTLITEM; |
244 | int sliderVal = (lParam & 0xFFFF); |
244 | int sliderVal = (lParam & 0xFFFF); |
245 | if (sliderVal < 0) sliderVal = 0; |
245 | if (sliderVal < 0) sliderVal = 0; |
246 | else if (sliderVal > 255) sliderVal = 255; |
246 | else if (sliderVal > 255) sliderVal = 255; |
247 | slider[sliderNum] = (uint8_t)sliderVal; |
247 | gdata->parm.val[sliderNum] = (uint8_t)sliderVal; |
248 | 248 | ||
249 | SETCTLTEXTINT(hDlg, FIRSTCTLTEXTITEM + sliderNum, sliderVal, false); |
249 | SETCTLTEXTINT(hDlg, FIRSTCTLTEXTITEM + sliderNum, sliderVal, false); |
250 | REPAINTCTL(hDlg, FIRSTCTLTEXTITEM + sliderNum); |
250 | REPAINTCTL(hDlg, FIRSTCTLTEXTITEM + sliderNum); |
251 | 251 | ||
252 | recalc_preview(gpb, hDlg); |
252 | recalc_preview(gpb, hDlg); |
Line 265... | Line 265... | ||
265 | } |
265 | } |
266 | break; |
266 | break; |
267 | case WM_INITDIALOG: |
267 | case WM_INITDIALOG: |
268 | gdata->hWndMainDlg = hDlg; |
268 | gdata->hWndMainDlg = hDlg; |
269 | 269 | ||
270 | if(gdata->standalone){ |
270 | if(gdata->parm.standalone){ |
271 | SetWindowTextA(hDlg,gdata->parm.szTitle); // window title bar |
271 | SetWindowTextA(hDlg,gdata->parm.szTitle); // window title bar |
272 | } |
272 | } |
273 | centre_window(hDlg); |
273 | centre_window(hDlg); |
274 | 274 | ||
275 | hfnt = GetStockObject(ANSI_FIXED_FONT); |
275 | hfnt = GetStockObject(ANSI_FIXED_FONT); |
Line 440... | Line 440... | ||
440 | 440 | ||
441 | // Now show the dialog |
441 | // Now show the dialog |
442 | p = (PlatformData*)pb->platformData; |
442 | p = (PlatformData*)pb->platformData; |
443 | 443 | ||
444 | // Note: "Invalid Cursor Handle" is the error when an unrecognized control class is detected |
444 | // Note: "Invalid Cursor Handle" is the error when an unrecognized control class is detected |
445 | res = DialogBoxParam(hDllInstance,MAKEINTRESOURCE(gdata->standalone ? ID_PARAMDLG : ID_MAINDLG), |
445 | res = DialogBoxParam(hDllInstance,MAKEINTRESOURCE(gdata->parm.standalone ? ID_PARAMDLG : ID_MAINDLG), |
446 | (HWND)p->hwnd,maindlgproc,0); |
446 | (HWND)p->hwnd,maindlgproc,0); |
447 | if (res == 0) { |
447 | if (res == 0) { |
448 | simplealert((TCHAR*)TEXT("DialogBoxParam invalid parent window handle")); // TODO (Not so important): TRANSLATE |
448 | simplealert((TCHAR*)TEXT("DialogBoxParam invalid parent window handle")); // TODO (Not so important): TRANSLATE |
449 | } |
449 | } |
450 | if (res == -1) { |
450 | if (res == -1) { |