Lines 11-30
Link Here
|
11 |
|
11 |
|
12 |
//////////////////////////////////////////////////////////////// |
12 |
//////////////////////////////////////////////////////////////// |
13 |
|
13 |
|
14 |
#include "Rotated.H" |
14 |
#include "Rotated_xft.H" |
15 |
|
15 |
|
16 |
class RotText : public Fl_Box { |
16 |
class RotText : public Fl_Box { |
17 |
void draw(); |
17 |
void draw(); |
18 |
public: |
18 |
public: |
|
|
19 |
int angle; |
20 |
int aligned; |
19 |
RotText(int X, int Y, int W, int H, const char* L = 0) : |
21 |
RotText(int X, int Y, int W, int H, const char* L = 0) : |
20 |
Fl_Box(X,Y,W,H,L) {} |
22 |
Fl_Box(X,Y,W,H,L),angle(90){} |
21 |
}; |
23 |
}; |
22 |
|
24 |
|
23 |
void RotText::draw() { |
25 |
void RotText::draw() { |
24 |
draw_box(); |
26 |
draw_box(); |
25 |
fl_color(FL_BLACK); |
27 |
fl_color(FL_BLACK); |
26 |
fl_font(labelfont(), labelsize()); |
28 |
fl_font(labelfont(), labelsize()); |
27 |
draw_rotated90(label(), x(), y(), w(), h(), align()); |
29 |
if(aligned){ |
|
|
30 |
if(angle%360==0)fl_draw(label(), x(), y(), w(), h(), align()); |
31 |
else if(angle%360==90)draw_rotated90(label(), x(), y(), w(), h(), align()); |
32 |
else if(angle%360==180)draw_rotated180(label(), x(), y(), w(), h(), align()); |
33 |
else if(angle%360==270)draw_rotated270(label(), x(), y(), w(), h(), align()); |
34 |
} |
35 |
else draw_rotated(label(), x()+w()/2, y()+h()/2,angle); |
28 |
} |
36 |
} |
29 |
|
37 |
|
30 |
//////////////////////////////////////////////////////////////// |
38 |
//////////////////////////////////////////////////////////////// |
Lines 34-39
Link Here
|
34 |
Fl_Input *input; |
42 |
Fl_Input *input; |
35 |
Fl_Hor_Value_Slider *fonts; |
43 |
Fl_Hor_Value_Slider *fonts; |
36 |
Fl_Hor_Value_Slider *sizes; |
44 |
Fl_Hor_Value_Slider *sizes; |
|
|
45 |
Fl_Hor_Value_Slider *angle; |
37 |
Fl_Double_Window *window; |
46 |
Fl_Double_Window *window; |
38 |
|
47 |
|
39 |
void button_cb(Fl_Widget *,void *) { |
48 |
void button_cb(Fl_Widget *,void *) { |
Lines 59-106
Link Here
|
59 |
window->redraw(); |
68 |
window->redraw(); |
60 |
} |
69 |
} |
61 |
|
70 |
|
|
|
71 |
void cb_aligned(Fl_Button *o,void *) { |
72 |
text->aligned=o->value(); |
73 |
if(text->aligned){ |
74 |
angle->value(text->angle-text->angle%90); |
75 |
angle->step(90); |
76 |
}else{ |
77 |
angle->step(1); |
78 |
} |
79 |
window->redraw(); |
80 |
} |
81 |
|
82 |
void angle_cb(Fl_Widget *,void *) { |
83 |
text->angle=(int(angle->value())); |
84 |
window->redraw(); |
85 |
} |
86 |
|
62 |
void input_cb(Fl_Widget *,void *) { |
87 |
void input_cb(Fl_Widget *,void *) { |
63 |
text->label(input->value()); |
88 |
text->label(input->value()); |
64 |
window->redraw(); |
89 |
window->redraw(); |
65 |
} |
90 |
} |
66 |
|
91 |
|
67 |
int main(int argc, char **argv) { |
92 |
int main(int argc, char **argv) { |
68 |
window = new Fl_Double_Window(400,400); |
93 |
window = new Fl_Double_Window(450,425); |
69 |
|
94 |
|
70 |
input = new Fl_Input(50,0,350,25); |
95 |
input = new Fl_Input(50,0,375,25); |
71 |
input->static_value("The quick brown fox jumped over the lazy dog."); |
96 |
input->static_value("The quick brown fox jumped over the lazy dog."); |
72 |
input->when(FL_WHEN_CHANGED); |
97 |
input->when(FL_WHEN_CHANGED); |
73 |
input->callback(input_cb); |
98 |
input->callback(input_cb); |
74 |
|
99 |
|
75 |
sizes= new Fl_Hor_Value_Slider(50,25,350,25,"Size:"); |
100 |
angle = new Fl_Hor_Value_Slider(50,25,400,25,"Angle:"); |
|
|
101 |
angle->align(FL_ALIGN_LEFT); |
102 |
angle->bounds(0,360); |
103 |
angle->step(1); |
104 |
angle->value(90); |
105 |
angle->callback(angle_cb); |
106 |
|
107 |
sizes= new Fl_Hor_Value_Slider(50,50,400,25,"Size:"); |
76 |
sizes->align(FL_ALIGN_LEFT); |
108 |
sizes->align(FL_ALIGN_LEFT); |
77 |
sizes->bounds(1,64); |
109 |
sizes->bounds(1,64); |
78 |
sizes->step(1); |
110 |
sizes->step(1); |
79 |
sizes->value(14); |
111 |
sizes->value(14); |
80 |
sizes->callback(size_cb); |
112 |
sizes->callback(size_cb); |
81 |
|
113 |
|
82 |
fonts=new Fl_Hor_Value_Slider(50,50,350,25,"Font:"); |
114 |
fonts=new Fl_Hor_Value_Slider(50,75,400,25,"Font:"); |
83 |
fonts->align(FL_ALIGN_LEFT); |
115 |
fonts->align(FL_ALIGN_LEFT); |
84 |
fonts->bounds(0,15); |
116 |
fonts->bounds(0,15); |
85 |
fonts->step(1); |
117 |
fonts->step(1); |
86 |
fonts->value(0); |
118 |
fonts->value(0); |
87 |
fonts->callback(font_cb); |
119 |
fonts->callback(font_cb); |
88 |
|
120 |
|
|
|
121 |
|
89 |
Fl_Group *g = new Fl_Group(0,0,0,0); |
122 |
Fl_Group *g = new Fl_Group(0,0,0,0); |
90 |
leftb = new Fl_Toggle_Button(50,75,50,25,"left"); |
123 |
leftb = new Fl_Toggle_Button(50,100,50,25,"left"); |
91 |
leftb->callback(button_cb); |
124 |
leftb->callback(button_cb); |
92 |
rightb = new Fl_Toggle_Button(100,75,50,25,"right"); |
125 |
rightb = new Fl_Toggle_Button(100,100,50,25,"right"); |
93 |
rightb->callback(button_cb); |
126 |
rightb->callback(button_cb); |
94 |
topb = new Fl_Toggle_Button(150,75,50,25,"top"); |
127 |
topb = new Fl_Toggle_Button(150,100,50,25,"top"); |
95 |
topb->callback(button_cb); |
128 |
topb->callback(button_cb); |
96 |
bottomb = new Fl_Toggle_Button(200,75,50,25,"bottom"); |
129 |
bottomb = new Fl_Toggle_Button(200,100,50,25,"bottom"); |
97 |
bottomb->callback(button_cb); |
130 |
bottomb->callback(button_cb); |
98 |
insideb = new Fl_Toggle_Button(250,75,50,25,"inside"); |
131 |
insideb = new Fl_Toggle_Button(250,100,50,25,"inside"); |
99 |
insideb->callback(button_cb); |
132 |
insideb->callback(button_cb); |
100 |
wrapb = new Fl_Toggle_Button(300,75,50,25,"wrap"); |
133 |
wrapb = new Fl_Toggle_Button(300,100,50,25,"wrap"); |
101 |
wrapb->callback(button_cb); |
134 |
wrapb->callback(button_cb); |
102 |
clipb = new Fl_Toggle_Button(350,75,50,25,"clip"); |
135 |
clipb = new Fl_Toggle_Button(350,100,50,25,"clip"); |
103 |
clipb->callback(button_cb); |
136 |
clipb->callback(button_cb); |
|
|
137 |
Fl_Toggle_Button* bt_align=new Fl_Toggle_Button(400,100,50,25,"by 90"); |
138 |
bt_align->callback((Fl_Callback*)cb_aligned); |
139 |
bt_align->value(0); |
104 |
g->resizable(insideb); |
140 |
g->resizable(insideb); |
105 |
g->forms_end(); |
141 |
g->forms_end(); |
106 |
|
142 |
|