Subversion Repositories filter_foundry

Rev

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

Rev 106 Rev 130
Line 20... Line 20...
20
/* This is PLATFORM INDEPENDENT user interface code - mainly dialog logic */
20
/* This is PLATFORM INDEPENDENT user interface code - mainly dialog logic */
21
 
21
 
22
#include "ff.h"
22
#include "ff.h"
23
 
23
 
24
int ctls[8],maps[4];
24
int ctls[8],maps[4];
-
 
25
int checksliders_result;
25
 
26
 
26
/* one-time initialisation of dialog box */
27
/* one-time initialisation of dialog box */
27
 
28
 
28
void builddlginit(DIALOGREF dp){
29
void builddlginit(DIALOGREF dp){
29
        int i;
30
        int i;
Line 57... Line 58...
57
                        s[4] = '0'+i;
58
                        s[4] = '0'+i;
58
                        SetDlgItemText(dp,FIRSTCTLNAMEITEM+i,s);
59
                        SetDlgItemText(dp,FIRSTCTLNAMEITEM+i,s);
59
                }
60
                }
60
        }
61
        }
61
 
62
 
62
        if(!checksliders(4,ctls,maps)){
63
        checksliders_result = checksliders(4,ctls,maps);
63
                for(i = 4; i--;){
64
        for(i = 4; i--;){
64
                        DISABLEDLGITEM(dp,FIRSTMAPCHECKITEM+i);
65
                DISABLEDLGITEM(dp,FIRSTMAPCHECKITEM+i);
65
                        if(maps[i])
66
                if(maps[i] || (checksliders_result & CHECKSLIDERS_MAP_AMBIGUOUS))
66
                                CHECKDLGBUTTON(dp,FIRSTMAPCHECKITEM+i,true);
67
                        CHECKDLGBUTTON(dp,FIRSTMAPCHECKITEM+i,true);
67
                        else
68
                else
68
                                HideDialogItem(dp,FIRSTMAPNAMEITEM+i);
69
                        HideDialogItem(dp,FIRSTMAPNAMEITEM+i);
69
                }
70
        }
70
                for(i = 8; i--;){
71
        for(i = 8; i--;){
71
                        DISABLEDLGITEM(dp,FIRSTCTLCHECKITEM+i);
72
                DISABLEDLGITEM(dp,FIRSTCTLCHECKITEM+i);
-
 
73
                if((ctls[i] || (checksliders_result & CHECKSLIDERS_CTL_AMBIGUOUS)) &&
-
 
74
                   // When map() is activated, we don't need ctl labels,
-
 
75
                   // since the standalone filter will only show map labels
72
                        if(ctls[i])
76
                   !maps[i/2] &&
-
 
77
                   (!(checksliders_result & CHECKSLIDERS_MAP_AMBIGUOUS))
-
 
78
                   )
73
                                CHECKDLGBUTTON(dp,FIRSTCTLCHECKITEM+i,true);
79
                        CHECKDLGBUTTON(dp,FIRSTCTLCHECKITEM+i,true);
74
                        else
80
                else
75
                                HideDialogItem(dp,FIRSTCTLNAMEITEM+i);
81
                        HideDialogItem(dp,FIRSTCTLNAMEITEM+i);
76
                }
82
        }
77
        }
-
 
78
 
83
 
79
        SELECTDLGITEMTEXT(dp,TITLEITEM,0,-1);
84
        SELECTDLGITEMTEXT(dp,TITLEITEM,0,-1);
80
}
85
}
81
 
86
 
82
 
87
 
Line 94... Line 99...
94
                GetDlgItemText(dp,TITLEITEM,s,MAXFIELD);                myc2pstrcpy(gdata->parm.title,s);
99
                GetDlgItemText(dp,TITLEITEM,s,MAXFIELD);                myc2pstrcpy(gdata->parm.title,s);
95
                GetDlgItemText(dp,COPYRIGHTITEM,s,MAXFIELD);    myc2pstrcpy(gdata->parm.copyright,s);
100
                GetDlgItemText(dp,COPYRIGHTITEM,s,MAXFIELD);    myc2pstrcpy(gdata->parm.copyright,s);
96
                GetDlgItemText(dp,AUTHORITEM,s,MAXFIELD);               myc2pstrcpy(gdata->parm.author,s);
101
                GetDlgItemText(dp,AUTHORITEM,s,MAXFIELD);               myc2pstrcpy(gdata->parm.author,s);
97
                gdata->parm.cbSize = PARM_SIZE;
102
                gdata->parm.cbSize = PARM_SIZE;
98
                gdata->parm.nVersion = 1;  //0=original FF, 1=standalone filter
103
                gdata->parm.nVersion = 1;  //0=original FF, 1=standalone filter
-
 
104
                needui = 0;
99
                for(i = needui = 0; i < 8; ++i){
105
                for(i = 0; i < 8; ++i){
100
                        gdata->parm.val[i] = slider[i];
106
                        gdata->parm.val[i] = slider[i];
-
 
107
                        gdata->parm.ctl_used[i] = ctls[i] || (checksliders_result & CHECKSLIDERS_CTL_AMBIGUOUS);
101
                        needui |= (gdata->parm.ctl_used[i] = ctls[i]);
108
                        needui |= gdata->parm.ctl_used[i];
102
                        GetDlgItemText(dp,FIRSTCTLNAMEITEM+i,s,MAXFIELD); myc2pstrcpy(gdata->parm.ctl[i],s);
109
                        GetDlgItemText(dp,FIRSTCTLNAMEITEM+i,s,MAXFIELD); myc2pstrcpy(gdata->parm.ctl[i],s);
103
                }
110
                }
104
                for(i = 0; i < 4; ++i){
111
                for(i = 0; i < 4; ++i){
-
 
112
                        gdata->parm.map_used[i] = maps[i] || (checksliders_result & CHECKSLIDERS_MAP_AMBIGUOUS);
105
                        gdata->parm.map_used[i] = maps[i];
113
                        needui |= gdata->parm.map_used[i];
106
                        GetDlgItemText(dp,FIRSTMAPNAMEITEM+i,s,MAXFIELD); myc2pstrcpy(gdata->parm.map[i],s);
114
                        GetDlgItemText(dp,FIRSTMAPNAMEITEM+i,s,MAXFIELD); myc2pstrcpy(gdata->parm.map[i],s);
107
                        strcpy(gdata->parm.formula[i],expr[i] ? expr[i] : "bug! see builddlgitem");
115
                        strcpy(gdata->parm.formula[i],expr[i] ? expr[i] : "bug! see builddlgitem");
108
                }
116
                }
109
                gdata->parm.popDialog = needui; //true if need to pop a parameter dialog
117
                gdata->parm.popDialog = needui; //true if need to pop a parameter dialog
110
                gdata->parm.unknown1 = gdata->parm.unknown2 = gdata->parm.unknown3 = 0;
118
                gdata->parm.unknown1 = gdata->parm.unknown2 = gdata->parm.unknown3 = 0;