~ubuntu-branches/ubuntu/gutsy/zynaddsubfx/gutsy

« back to all changes in this revision

Viewing changes to ExternalPrograms/Controller/ControllerUI.fl

  • Committer: Bazaar Package Importer
  • Author(s): Junichi Uekawa
  • Date: 2004-01-28 06:50:09 UTC
  • Revision ID: james.westby@ubuntu.com-20040128065009-w6g7i8c9vilm32ii
Tags: upstream-1.4.3
ImportĀ upstreamĀ versionĀ 1.4.3

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# data file for the Fltk User Interface Designer (fluid)
 
2
version 1.0103 
 
3
header_name {.h} 
 
4
code_name {.cxx}
 
5
decl {\#include <FL/Fl_Box.h>} {public
 
6
 
7
 
 
8
decl {\#include <stdlib.h>} {public
 
9
 
10
 
 
11
decl {\#include "Controller.h"} {public
 
12
 
13
 
 
14
decl {Controller *controller;} {} 
 
15
 
 
16
class Pad {: {public Fl_Box}
 
17
} {
 
18
  Function {Pad(int x,int y, int w, int h, const char *label=0):Fl_Box(x,y,w,h,label)} {} {
 
19
    code {} {}
 
20
  }
 
21
  Function {temp_draw()} {} {
 
22
    code {/*int ox=x(),oy=y(),lx=w(),ly=h(),i,ix,iy,oiy;
 
23
REALTYPE freqx;
 
24
 
 
25
fl_color(FL_BLACK);
 
26
fl_rectf(ox,oy,lx,ly);
 
27
 
 
28
 
 
29
 
 
30
fl_color(FL_GRAY);
 
31
 
 
32
fl_line_style(FL_SOLID);
 
33
fl_line(ox+2,oy+ly/2,ox+lx-2,oy+ly/2);
 
34
*/} {}
 
35
  }
 
36
  Function {sendmidi(int button,float datax,float datay)} {} {
 
37
    code {controller->send(button,datax);
 
38
controller->send(button+1,datay);} {}
 
39
  }
 
40
  Function {handle(int event)} {return_type int
 
41
  } {
 
42
    code {int x_=Fl::event_x()-x();
 
43
int y_=Fl::event_y()-y();
 
44
 
 
45
if ((event==FL_PUSH)||(event==FL_DRAG)){
 
46
  if (x_<0) x_=0;if (y_<0) y_=0;
 
47
  if (x_>=w()) x_=w();if (y_>=h()-1) y_=h()-1;
 
48
 
 
49
  float tmpx=(float) x_/(w());
 
50
  float tmpy=1.0-(float) y_/h();
 
51
 
 
52
  int b=Fl::event_buttons()>>24;
 
53
 
 
54
  if (b&1) sendmidi(0,tmpx,tmpy);
 
55
  if (b&2) sendmidi(2,tmpx,tmpy);
 
56
  if (b&4) sendmidi(4,tmpx,tmpy);
 
57
 
 
58
};
 
59
 
 
60
return(1);} {}
 
61
  }
 
62
  decl {int oldx,oldy;} {}
 
63
 
64
 
 
65
class ControllerUI {} {
 
66
  Function {make_window()} {} {
 
67
    Fl_Window controlleruiwindow {
 
68
      label {Midi Controller}
 
69
      callback {o->hide();
 
70
exit(0);}
 
71
      xywh {210 213 340 410} hide
 
72
    } {
 
73
      Fl_Counter {} {
 
74
        label {Output Channel}
 
75
        callback {controller->Pchout=(int) o->value();}
 
76
        xywh {10 13 75 22} type Simple labelsize 10 align 5 minimum 0 maximum 15 step 1 textfont 1
 
77
        code0 {o->value(controller->Pchout);}
 
78
      }
 
79
      Fl_Box {} {
 
80
        xywh {10 80 320 320} box ENGRAVED_BOX color 176
 
81
        class Pad
 
82
      }
 
83
      Fl_Choice {} {
 
84
        callback {nbut=(int) o->value();
 
85
refreshvalues();}
 
86
        xywh {10 50 75 20} down_box BORDER_BOX
 
87
      } {
 
88
        menuitem {} {
 
89
          label {But.1 X}
 
90
          xywh {0 0 100 20} labelfont 1 labelsize 12
 
91
        }
 
92
        menuitem {} {
 
93
          label {But.1 Y}
 
94
          xywh {10 10 100 20} labelfont 1 labelsize 12 divider
 
95
        }
 
96
        menuitem {} {
 
97
          label {But.2 X}
 
98
          xywh {10 10 100 20} labelfont 1 labelsize 12
 
99
        }
 
100
        menuitem {} {
 
101
          label {But.2 Y}
 
102
          xywh {20 20 100 20} labelfont 1 labelsize 12 divider
 
103
        }
 
104
        menuitem {} {
 
105
          label {But.3 X}
 
106
          xywh {20 20 100 20} labelfont 1 labelsize 12
 
107
        }
 
108
        menuitem {} {
 
109
          label {But.3 Y}
 
110
          xywh {30 30 100 20} labelfont 1 labelsize 12
 
111
        }
 
112
      }
 
113
      Fl_Group ctlgroup {
 
114
        xywh {95 35 60 40} box ENGRAVED_BOX
 
115
      } {
 
116
        Fl_Counter ctlcounter {
 
117
          label Controller
 
118
          callback {controller->pars[nbut].ctl.par=(int) o->value();}
 
119
          xywh {100 50 50 15} type Simple labelsize 10 align 1 minimum 0 maximum 127 step 1 textfont 1 textsize 12
 
120
        }
 
121
      }
 
122
      Fl_Choice modechoice {
 
123
        label Mode
 
124
        callback {controller->pars[nbut].mode=(int) o->value();
 
125
refreshvalues();}
 
126
        xywh {95 13 60 20} down_box BORDER_BOX labelsize 10 align 5
 
127
      } {
 
128
        menuitem {} {
 
129
          label OFF
 
130
          xywh {30 30 100 20} labelfont 1 labelsize 12
 
131
        }
 
132
        menuitem {} {
 
133
          label {Ctl.}
 
134
          xywh {20 20 100 20} labelfont 1 labelsize 12
 
135
        }
 
136
        menuitem {} {
 
137
          label RPN
 
138
          xywh {30 30 100 20} labelfont 1 labelsize 12 deactivate
 
139
        }
 
140
        menuitem {} {
 
141
          label NRPN
 
142
          xywh {40 40 100 20} labelfont 1 labelsize 12
 
143
        }
 
144
      }
 
145
      Fl_Group nrpngroup {
 
146
        xywh {160 35 170 40} box ENGRAVED_BOX
 
147
      } {
 
148
        Fl_Counter cparcounter {
 
149
          label {CoarseP.}
 
150
          callback {controller->pars[nbut].nrpn.cpar=(int) o->value();}
 
151
          xywh {165 50 50 15} type Simple labelsize 10 align 1 minimum 0 maximum 127 step 1 textfont 1 textsize 12
 
152
        }
 
153
        Fl_Counter fparcounter {
 
154
          label {FineP.}
 
155
          callback {controller->pars[nbut].nrpn.fpar=(int) o->value();}
 
156
          xywh {220 50 50 15} type Simple labelsize 10 align 1 minimum 0 maximum 127 step 1 textfont 1 textsize 12
 
157
        }
 
158
        Fl_Counter cvalcounter {
 
159
          label {CoarseV.}
 
160
          callback {controller->pars[nbut].nrpn.cval=(int) o->value();}
 
161
          xywh {275 50 50 15} type Simple labelsize 10 align 1 minimum 0 maximum 127 step 1 textfont 1 textsize 12
 
162
        }
 
163
      }
 
164
      Fl_Counter val1counter {
 
165
        label {Val.1}
 
166
        callback {controller->pars[nbut].val1=(int) o->value();}
 
167
        xywh {190 15 50 15} type Simple labelsize 10 align 5 minimum 0 maximum 127 step 1 textfont 1 textsize 12
 
168
      }
 
169
      Fl_Counter val2counter {
 
170
        label {Val.2}
 
171
        callback {controller->pars[nbut].val2=(int) o->value();}
 
172
        xywh {275 15 50 15} type Simple labelsize 10 align 5 minimum 0 maximum 127 step 1 value 127 textfont 1 textsize 12
 
173
      }
 
174
      Fl_Button exchangebutton {
 
175
        label {<->}
 
176
        callback {unsigned char tmp=controller->pars[nbut].val2;
 
177
controller->pars[nbut].val2=controller->pars[nbut].val1;
 
178
controller->pars[nbut].val1=tmp;
 
179
refreshvalues();}
 
180
        xywh {245 15 25 15} box THIN_UP_BOX
 
181
      }
 
182
    }
 
183
  }
 
184
  Function {refreshvalues()} {} {
 
185
    code {modechoice->value(controller->pars[nbut].mode);
 
186
val1counter->value(controller->pars[nbut].val1);
 
187
val2counter->value(controller->pars[nbut].val2);
 
188
ctlcounter->value(controller->pars[nbut].ctl.par);
 
189
cparcounter->value(controller->pars[nbut].nrpn.cpar);
 
190
fparcounter->value(controller->pars[nbut].nrpn.fpar);
 
191
cvalcounter->value(controller->pars[nbut].nrpn.cval);
 
192
 
 
193
if (controller->pars[nbut].mode!=0){
 
194
  val1counter->activate();
 
195
  val2counter->activate();
 
196
  exchangebutton->activate();
 
197
}else{
 
198
  val1counter->deactivate();
 
199
  val2counter->deactivate();
 
200
  exchangebutton->deactivate();
 
201
};
 
202
 
 
203
if (controller->pars[nbut].mode==1) ctlgroup->activate();
 
204
   else ctlgroup->deactivate();
 
205
 
 
206
if (controller->pars[nbut].mode==3) nrpngroup->activate();
 
207
   else nrpngroup->deactivate();} {selected
 
208
    }
 
209
  }
 
210
  Function {ControllerUI(Controller *controller_)} {} {
 
211
    code {nbut=0;
 
212
controller=controller_;
 
213
make_window();
 
214
refreshvalues();
 
215
controlleruiwindow->show();} {}
 
216
  }
 
217
  decl {int nbut;} {}
 
218