Subversion Repositories filter_foundry

Rev

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) {