9 #include "../X11Controller.hpp"
19 for(
unsigned int i=0; i<alphabet.size();i++)
21 char letter = char(i+0x41);
24 punctuation.resize(5);
29 punctuation[4] =
"\"";
32 special[0] =
"[BACKSPACE]";
33 special_keys[special[0]] =
"BackSpace";
34 special[1] =
"[ENTER]";
35 special_keys[special[1]] =
"Return";
36 special[2] =
"[SPACE]";
37 special_keys[special[2]] =
"space";
40 back_level[0] =
"BACK";
51 GtkWidget *hbox_type = gtk_hbox_new(
false,0);
52 typing_box = gtk_entry_new();
53 check_send_keys = gtk_check_button_new_with_label(
"Send Keyboard Events?");
54 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_send_keys),
true);
57 gtk_widget_set_size_request(typing_box,300,20);
58 gtk_box_pack_start(GTK_BOX(hbox_type),gtk_label_new(
"Typed Characters: "),
false,
false, 0);
59 gtk_box_pack_start(GTK_BOX(hbox_type),typing_box,
false,
false, 0);
60 gtk_box_pack_end(GTK_BOX(hbox_type),check_send_keys,
false,
false, 0);
64 void KeyboardPie::init()
79 void KeyboardPie::updateNames()
94 current_labels[0] = special;
106 current_labels[0] = back_level;
115 vector<string> labels;
117 for(
unsigned int i=0; i<unsigned(
num_classes); i++)
120 if(current_labels[i].size() > 8)
122 labels[i] = current_labels[i][0] +
" - "
123 +current_labels[i][current_labels[i].size()-1];
127 for(
unsigned int j=0; j<current_labels[i].size(); j++)
131 && !(i==0 && mode!=
SELECT_MODE && use_special==
false)
132 && (j+1) != current_labels[i].size())
133 labels[i] += current_labels[i][j] +
", ";
135 labels[i] += current_labels[i][j] +
" ";
142 void KeyboardPie::split(vector<string> keys,
int start,
int end)
150 for(
int cls=start; cls < end; cls++)
152 current_labels[cls].clear();
153 current_labels[cls].resize(0);
155 for(
unsigned int key=count; key<keys.size(); key++)
157 if(count >=
int(i * keys.size()/num))
159 current_labels[cls].push_back(keys[key]);
179 if(mode!=
SELECT_MODE && current_labels[c].size() < 1)
189 void KeyboardPie::selectPie(
int c)
192 if(
unsigned(index) >= classes.size())
211 key_pool = current_labels[c];
225 key_pool = current_labels[c];
231 if(c!=0 && current_labels[c].size() == 1)
233 send_keys = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(check_send_keys));
234 string key = current_labels[c][0];
237 key = special_keys[current_labels[c][0]];
241 cout <<
"sending " << key <<
"\n";
249 while(!key_pool_stack.empty())
250 key_pool_stack.pop();
259 if(key_pool_stack.empty())
265 key_pool = key_pool_stack.top();
266 key_pool_stack.pop();
272 key_pool_stack.push(key_pool);
273 key_pool = current_labels[c];
285 std::map<std::string, CEBL::Param> params;