//Update Dictionary void updatedictionary(struttura *str) { int retval; char query[200]; //Check if the word is present on the global dictionary sprintf (query, " select parola from globale where parola like \'%s\';",intToChar(str->ins.new_word)); //printf("\n%s\n",query); if(sqlite3_prepare_v2(str->tp.db,query,-1,&str->tp.stmt,0)) { fprintf(stderr,"error : programm %s ,function updatedictionary(..) sqlite3_prepare_v2 return error\n ",NameProgramm); return; } retval = sqlite3_step(str->tp.stmt); if(retval != SQLITE_ROW) { sprintf (query, "insert into globale (codice,parola,frequenza) values (\'%s\',\'%s\',3);",str->ins.key_numbers,intToChar(str->ins.new_word)); if (sqlite3_exec(str->tp.db,query,0,0,0)) fprintf(stderr,"error : programm %s ,function updatedictionary(..) sqlite3_exec return error\n ",NameProgramm); } gdk_window_process_all_updates (); }
void aktualizuj_plansze(GtkWidget *widget, gpointer data) { GdkRegion *region = gdk_drawable_get_clip_region (widget->window); gdk_window_invalidate_region (widget->window, region, TRUE); gdk_window_process_all_updates(); //usleep(150000); }
void movetoright(struttura *str) { if(str->position==2) { gtk_window_set_gravity(GTK_WINDOW(str->window),GDK_GRAVITY_SOUTH_EAST); gtk_window_move(GTK_WINDOW(str->window),str->s_width-185,str->s_height-WINDOW_HEIGHT); str->position=3; gdk_window_process_all_updates (); } if(str->position==1) { gtk_window_set_gravity(GTK_WINDOW(str->window),GDK_GRAVITY_SOUTH); gtk_window_move(GTK_WINDOW(str->window),(str->s_width/2)-WINDOW_WIDTH,str->s_height-WINDOW_HEIGHT); str->position=2; gdk_window_process_all_updates (); } }
void sigh_print_selection(GtkWidget *gtklist, struttura *str) { int revert,keycode; if (str->tp.luncodicet9==0) return; XGetInputFocus(str->display, &str->win,&revert); GList *dlist; GtkWidget *child; gtk_widget_set_usize(str->tp.scrolled_window, 0,S_W_MAIN); // Fetch the doubly linked list of selected items of the List, remember to treat this as read-only! //g_print("Selection\n"); dlist=GTK_LIST(gtklist)->selection; //g_print("Selection 1\n"); // Individuiamo l'elemento che ha emesso il segnale e calcoliamo la sua posizione all'interno della lista child=gtk_container_get_focus_child(GTK_CONTAINER(gtklist)); str->tp.indice=gtk_list_child_position((GtkList *)gtklist,child); //g_print("Selection 2\n"); int dim_parola = strlen(str->tp.vetparole[str->tp.indice].parola); //g_print("Selection 3\n"); // If there are no selected items there is nothing more to do than just telling the user so if(!dlist){ //g_print("Selection cleared\n"); return; } //g_print("Selection 4\n"); // Ok, we got a selection and so we print itbacca for (int kk=0,i=0; kk < dim_parola;i++, kk++) { if(strncmp(&str->tp.vetparole[str->tp.indice].parola[i],"à",2)==0) sendtofocus(str,XK_agrave); else if(strncmp(&str->tp.vetparole[str->tp.indice].parola[i],"è",2)==0) sendtofocus(str,XK_egrave); else if(strncmp(&str->tp.vetparole[str->tp.indice].parola[i],"ì",2)==0) sendtofocus(str,XK_igrave); else if(strncmp(&str->tp.vetparole[str->tp.indice].parola[i],"ò",2)==0) sendtofocus(str,XK_ograve); else if(strncmp(&str->tp.vetparole[str->tp.indice].parola[i],"ù",2)==0) sendtofocus(str,XK_ugrave); sendtofocus(str,(int)str->tp.vetparole[str->tp.indice].parola[i]); } char query[200]; bzero (query,200); sprintf (query, "update globale set frequenza=frequenza+1 where parola =\'%s\';",str->tp.vetparole[str->tp.indice].parola); //printf("\n%s\n",query); if (sqlite3_exec(str->tp.db,query,0,0,0)) fprintf(stderr,"error : programm %s ,function sigh_print_selection(..) sqlite3_exec return error\n ",NameProgramm); gtk_list_clear_items ((GtkList *) gtklist,0,N); str->tp.luncodicet9 = 0; bzero(str->tp.codicet9,LEN_WORD_DB+1); gdk_window_process_all_updates (); //XCloseDisplay(display); }
bool Ctrl::ProcessEvents0(bool *quit, bool fetch) { bool r = false; while(IsWaitingEvent0(fetch) && (!LoopCtrl || LoopCtrl->InLoop())) r = ProcessEvent0(quit, fetch) || r; TimerProc(GetTickCount()); AnimateCaret(); if(quit) *quit = IsEndSession(); for(int i = 0; i < wins.GetCount(); i++) if(wins[i].ctrl) wins[i].ctrl->SyncScroll(); gdk_window_process_all_updates(); FetchEvents(FALSE); // To perform any pending GDK_EXPOSE gdk_flush(); return r; }
static VALUE gdkwin_s_process_all_updates(VALUE self) { gdk_window_process_all_updates(); return self; }
void button_clicked2(GtkWidget *widget, struttura *str) { const gchar* buttonow=gtk_button_get_label(GTK_BUTTON(widget)); int keycode; if(strcmp(buttonow,"z")==0) { keycode = XK_z; if(modifier==0){ printOnFocus(str,keycode,0); } else{ if(modifier==XK_Control_R){ system("xdotool key ctrl+z"); } } } if(strcmp(buttonow,"r")==0) { keycode = XK_r; if(modifier==0){ printOnFocus(str,keycode,0); } else{ if(modifier==XK_Control_R){ system("xdotool key ctrl+r"); } } } if(strcmp(buttonow,"x")==0) { keycode = XK_x; if(modifier==0){ printOnFocus(str,keycode,0); } else{ if(modifier==XK_Control_R){ system("xdotool key ctrl+x"); } } } if(strcmp(buttonow,"c")==0) { keycode = XK_c; if(modifier==0){ printOnFocus(str,keycode,0); } else{ if(modifier==XK_Control_R){ system("xdotool key ctrl+c"); } } } if(strcmp(buttonow,"v")==0) { keycode = XK_v; if(modifier==0){ printOnFocus(str,keycode,0); } else{ if(modifier==XK_Control_R){ system("xdotool key ctrl+v"); } } } if(strcmp(buttonow,"+")==0) { keycode = XK_plus; if(modifier==0){ printOnFocus(str,keycode,0); } else{ if(modifier==XK_Control_R){ system("xdotool key ctrl+plus"); } } } if(strcmp(buttonow,"-")==0) { keycode = XK_minus; if(modifier==0){ printOnFocus(str,keycode,0); } else{ if(modifier==XK_Control_R){ system("xdotool key ctrl+minus"); } } } if(strcmp(buttonow,"f")==0) { keycode = XK_f; if(modifier==0){ printOnFocus(str,keycode,0); } else{ if(modifier==XK_Control_R){ system("xdotool key ctrl+f"); } if(modifier==XK_Alt_L){ system("xdotool key alt+f"); } } } if(strcmp(buttonow,"a")==0) { keycode = XK_a; if(modifier==0){ printOnFocus(str,keycode,0); } else{ if(modifier==XK_Control_R){ system("xdotool key ctrl+a"); } } } if(strcmp(buttonow,"m")==0) { keycode = XK_m; if(modifier==0){ printOnFocus(str,keycode,0); } else{ if(modifier==XK_Alt_L){ system("xdotool key alt+m"); } } } if(strcmp(buttonow,"f1")==0) { keycode = XK_F1; if(modifier==0){ printOnFocus(str,keycode,0); } else{ if(modifier==XK_Alt_L){ system("xdotool key alt+F1"); } } } if(strcmp(buttonow,"f2")==0) { keycode = XK_F2; if(modifier==0){ printOnFocus(str,keycode,0); } else{ if(modifier==XK_Alt_L){ system("xdotool key alt+F2"); } } } if(strcmp(buttonow,"f3")==0) { keycode = XK_F3; if(modifier==0){ printOnFocus(str,keycode,0); } else{ if(modifier==XK_Alt_L){ system("xdotool key alt+F3"); } } } if(strcmp(buttonow,"f4")==0) { keycode = XK_F4; if(modifier==0){ printOnFocus(str,keycode,0); } else{ if(modifier==XK_Alt_L){ system("xdotool key alt+F4"); } } } if(strcmp(buttonow,"f5")==0) { keycode = XK_F5; if(modifier==0){ printOnFocus(str,keycode,0); } else{ if(modifier==XK_Alt_L){ system("xdotool key alt+F5"); } } } if(strcmp(buttonow,"f9")==0) { keycode = XK_F9; if(modifier==0){ printOnFocus(str,keycode,0); } else{ if(modifier==XK_Alt_L){ system("xdotool key alt+F9"); } } } if(strcmp(buttonow,"f10")==0) { keycode = XK_F10; if(modifier==0){ printOnFocus(str,keycode,0); } else{ if(modifier==XK_Alt_L){ system("xdotool key alt+F10"); } } } if(strcmp(buttonow,"ctrl")==0) { if(modifier==XK_Control_R){ modifier=0; gtk_container_remove(GTK_CONTAINER(box), mylabel); mylabel = gtk_label_new ("Ctrl and Alt off"); gtk_container_add(GTK_CONTAINER(box), mylabel); gtk_widget_show (mylabel); } else{ modifier=XK_Control_R; gtk_container_remove(GTK_CONTAINER(box), mylabel); mylabel = gtk_label_new (NULL); gtk_label_set_text (GTK_LABEL (mylabel),"activated Ctrl"); gtk_container_add(GTK_CONTAINER(box), mylabel); gtk_widget_show (mylabel); } gdk_window_process_all_updates(); } if(strcmp(buttonow,"alt")==0) { if(modifier==XK_Alt_L){ modifier=0; gtk_container_remove(GTK_CONTAINER(box), mylabel); mylabel = gtk_label_new ("Ctrl and Alt off"); gtk_container_add(GTK_CONTAINER(box), mylabel); gtk_widget_show (mylabel); } else{ modifier=XK_Alt_L; gtk_container_remove(GTK_CONTAINER(box), mylabel); mylabel = gtk_label_new (NULL); gtk_label_set_text (GTK_LABEL (mylabel),"activated Alt"); gtk_container_add(GTK_CONTAINER(box), mylabel); gtk_widget_show (mylabel); } gdk_window_process_all_updates(); } else if(strcmp(buttonow,"close")==0) gtk_main_quit(); else if(strcmp(buttonow,".")==0) { gtk_status_icon_set_visible(str->tray_icon, TRUE); gtk_widget_hide(window); } else if(strcmp(buttonow,"→")==0) movetoright(str,window); else if(strcmp(buttonow,"↓")==0) movetodown(str,window); else if(strcmp(buttonow,"nf")==0) { setMove(str,str->window); gtk_widget_show(str->window); gtk_widget_hide(window); } }
//Algoritmo T9 di predizione del testo basato su liste void gestionet9 (struttura *str) { gtk_list_clear_items ((GtkList *) str->tp.gtklist,0,N); if (str->tp.luncodicet9==-1) /*possibile solo se provenienti da un delete*/ { gtk_widget_set_usize(str->tp.scrolled_window, 0,S_W_MAIN); str->tp.luncodicet9=0; return; } //fase inizializzazione str->tp.numparoletrovate=0; int i=0; for (i=0; i<N;i++) { bzero(str->tp.vetparole[i].parola,LEN_WORD_DB+1); } //aggiornamento str->tp.luncodicet9++; str->tp.codicet9[str->tp.luncodicet9]=0; //printf("\nTasti premuti: %s\tlunghezza:%d\n",str->tp.codicet9,str->tp.luncodicet9); char query[200]; bzero (query,200); //se freq0 globale, se 1 pers sprintf (query, " select parola,codice,frequenza from globale where codice like \'%s%%\' order by codice,frequenza desc limit 0,%d;",str->tp.codicet9,N); //GtkWidget *list_item; GList *dlist=NULL; gchar *s; s = (gchar*)malloc(sizeof(gchar)); *s=0;//equals sprintf(s,""); //printf("\n%s\n",query); int retval = sqlite3_prepare_v2(str->tp.db,query,-1,&str->tp.stmt,0); if(retval) { return; } // Read the number of rows fetched int cols = sqlite3_column_count(str->tp.stmt); while(1) { // fetch a row's status retval = sqlite3_step(str->tp.stmt); if(retval == SQLITE_DONE) break; else if(retval == SQLITE_ROW) { // SQLITE_ROW means fetched a row str->tp.numparoletrovate=str->tp.numparoletrovate+1; //printf ("\n"); // sqlite3_column_text returns a const void* , typecast it to const char* for(int col=0 ; col<cols;col++) { char *val = (char *)sqlite3_column_text(str->tp.stmt,col); //printf("%s = %s\t",sqlite3_column_name(str->tp.stmt,col),val); if (col==0) { sprintf(str->tp.vetparole[str->tp.numparoletrovate-1].parola,"%s",val); str->tp.list_item=gtk_list_item_new_with_label(val); dlist=g_list_append(dlist, str->tp.list_item); gtk_widget_set_usize(str->tp.list_item,0,25); gtk_widget_show(str->tp.list_item); gtk_object_set_data(GTK_OBJECT(str->tp.list_item), list_item_data_key,s); } else strcpy(str->tp.vetparole[str->tp.numparoletrovate-1].keyparola,val); } } else { // Some error encountered return; } } str->tp.indice=0; if(str->tp.numparoletrovate> 0) gtk_list_append_items((GtkList*)(str->tp.gtklist), dlist); else{ ins(str); fButtonTP(str); } gdk_window_process_all_updates (); //printf ("\n"); }
void setMove(struttura *str,GtkWidget *win) /*funzione di semplice supporto alle funzioni move*/ { gtk_window_move(GTK_WINDOW(win),str->move.position_width,str->move.position_height); gdk_window_process_all_updates(); }
void sigh_print_selection(GtkWidget *gtklist, struttura *str) { if (str->tp.luncodicet9==0) return; GList *dlist; GtkWidget *child; // Fetch the doubly linked list of selected items of the List, remember to treat this as read-only! g_print("Selection\n"); dlist=GTK_LIST(gtklist)->selection; g_print("Selection 1\n"); // Individuiamo l'elemento che ha emesso il segnale e calcoliamo la sua posizione all'interno della lista child=gtk_container_get_focus_child(GTK_CONTAINER(gtklist)); str->tp.indice=gtk_list_child_position((GtkList *)gtklist,child); g_print("Selection 2\n"); int dim_parola = strlen(str->tp.vetparole[str->tp.indice].parola); g_print("Selection 3\n"); // If there are no selected items there is nothing more to do than just telling the user so if(!dlist){ g_print("Selection cleared\n"); return; } g_print("Selection 4\n"); // Ok, we got a selection and so we print it for (int kk=0; kk < dim_parola; kk++) { gchar word[dim_parola]; sprintf(word,"%s",str->tp.vetparole[str->tp.indice].parola); gchar *let; let = (gchar*)malloc(sizeof(gchar)); sprintf(let,""); sprintf(let,"%c",word[kk]); //sendKey(str->display,str->win,str->winRoot,XStringToKeysym(let),str->modifier); sendtofocus(str,XStringToKeysym(let)); } printf("\n"); g_print("Selection 5\n"); sendtofocus(str,XK_space); str->tp.vetparole[str->tp.indice].frequenza=str->tp.vetparole[str->tp.indice].frequenza+1; printf("\nNuova frequenza parola selezionata: %d\n",str->tp.vetparole[str->tp.indice].frequenza); char query[200]; bzero (query,200); if (str->tp.vetparole[str->tp.indice].frequenza>1) sprintf (query, "update personale set frequenza =%d where parola =\'%s\';",str->tp.vetparole[str->tp.indice].frequenza,str->tp.vetparole[str->tp.indice].parola); else sprintf (query, "insert into personale (codice,parola,frequenza) values (\'%s\',\'%s\',1);",str->tp.codicet9,str->tp.vetparole[str->tp.indice].parola); printf("\n%s\n",query); int retval = retval = sqlite3_exec(str->tp.db,query,0,0,0); gtk_list_clear_items ((GtkList *) gtklist,0,N); str->tp.luncodicet9 = 0; bzero(str->tp.codicet9,30); //XWarpPointer(display, None, None, 0, 0, 0, 0, -10000,-10000); //XWarpPointer(display, None, None, 0, 0, 0, 0, 90, 1); gdk_window_process_all_updates (); //XCloseDisplay(display); }
//Algoritmo T9 di predizione del testo basato su liste void gestionet9 (struttura *str,int tasto) { //fase inizializzazione str->tp.numparoletrovate=0; int i=0; for (i=0; i<N;i++) { str->tp.vetparole[i].frequenza=0; bzero(str->tp.vetparole[i].parola,30); } gtk_list_clear_items ((GtkList *) str->tp.gtklist,0,N); //aggiornamento str->tp.luncodicet9=str->tp.luncodicet9+1; sprintf(str->tp.codicet9,"%s%d",str->tp.codicet9,tasto); //printf("\nTasti premuti: %s\tlunghezza:%d\n",str->tp.codicet9,str->tp.luncodicet9); char query[200]; bzero (query,200); //se freq0 globale, se 1 pers sprintf (query, " select parola dist,frequenza from personale where codice like \'%s%%\' union select parola dist,frequenza from globale where codice like \'%s%%\' order by 2 desc, 1 asc limit 0,5;",str->tp.codicet9,str->tp.codicet9); //GtkWidget *list_item; GList *dlist=NULL; gchar *s; s = (gchar*)malloc(sizeof(gchar)); sprintf(s,""); printf("\n%s\n",query); int retval = sqlite3_prepare_v2(str->tp.db,query,-1,&str->tp.stmt,0); if(retval) { printf("\nerrore database\n"); return; } // Read the number of rows fetched int cols = sqlite3_column_count(str->tp.stmt); while(1) { // fetch a row's status retval = sqlite3_step(str->tp.stmt); if(retval == SQLITE_DONE) break; else if(retval == SQLITE_ROW) { // SQLITE_ROW means fetched a row str->tp.numparoletrovate=str->tp.numparoletrovate+1; printf ("\n"); // sqlite3_column_text returns a const void* , typecast it to const char* for(int col=0 ; col<cols;col++) { const char *val = (const char*)sqlite3_column_text(str->tp.stmt,col); //printf("%s = %s\t",sqlite3_column_name(str->tp.stmt,col),val); if (col==0) { printf ("%s",val); sprintf(str->tp.vetparole[str->tp.numparoletrovate-1].parola,"%s",val); str->tp.list_item=gtk_list_item_new_with_label(val); dlist=g_list_append(dlist, str->tp.list_item); gtk_widget_show(str->tp.list_item); gtk_object_set_data(GTK_OBJECT(str->tp.list_item), list_item_data_key,s); } else { printf ("\tfr=%s",val); str->tp.vetparole[str->tp.numparoletrovate-1].frequenza=atoi(val); } } } else { // Some error encountered printf("errori query\n"); return; } } str->tp.indice=0; Display *display = XOpenDisplay(0); if(str->tp.numparoletrovate> 0) { gtk_list_append_items((GtkList*)(str->tp.gtklist), dlist); } gdk_window_process_all_updates (); XCloseDisplay(display); printf ("\n"); }