static gint EntryVarSpy_activate_event(GtkWidget *widget, int NumSpy) { int NewVarType,NewVarOffset; int * NumVarSpy = &VarSpy[NumSpy][0]; char BufferVar[30]; strcpy(BufferVar, gtk_entry_get_text((GtkEntry *)widget) ); if (TextParserForAVar(BufferVar , &NewVarType, &NewVarOffset, NULL, FALSE/*PartialNames*/)) { char * OtherVarName = NULL; *NumVarSpy++ = NewVarType; *NumVarSpy = NewVarOffset; if ( BufferVar[ 0 ]=='%' ) { OtherVarName = ConvVarNameToSymbol( BufferVar ); }else{ OtherVarName = ConvSymbolToVarName( BufferVar ); } if ( OtherVarName ) { gtk_tooltips_set_tip ( TooltipsEntryVarSpy[ NumSpy ], widget, OtherVarName, NULL ); } }else{ int OldType,OldOffset; /* Error Message */ if (ErrorMessageVarParser) { ShowMessageBox("Error",ErrorMessageVarParser,"Ok"); }else{ ShowMessageBox( "Error", "Unknown variable...", "Ok" ); } OldType = *NumVarSpy++; OldOffset = *NumVarSpy; /* put back old correct var */ gtk_entry_set_text((GtkEntry *)widget,CreateVarName(OldType,OldOffset)); } return TRUE; }
// added a call to DisplaySymbols() so window updates right away void Callback_TextEdited(GtkCellRendererText *cell, gchar *path_string, gchar *new_text, gpointer data) { int OffsetArray = -999; StrSymbol * pSymbol; GtkTreeModel *treemodel = (GtkTreeModel *)ListStore; GtkTreeIter iter; /* Convert the string path to the row that has changed to a GtkIter */ gtk_tree_model_get_iter (treemodel, &iter, gtk_tree_path_new_from_string (path_string)); /* Update the GtkTreeModel with the new value */ gtk_tree_model_get (treemodel, &iter, NUM_ARRAY, &OffsetArray, -1); gtk_list_store_set( ListStore, &iter, data, new_text, -1); //printf( "path=%s, new_text=%s, data_column=%d, offset_array=%d\n",path_string, new_text, (int)data, OffsetArray ); pSymbol = &SymbolArray[ OffsetArray ]; switch( (long)data ) { case VAR_NAME: if ( new_text[ 0 ]!='%' ) { ShowMessageBox(_("Error"),_("A variable name always start with '%' character !"),_("Ok")); } else { if (TextParserForAVar( new_text, NULL, NULL, NULL, TRUE/*PartialNames*/ ) ) { strncpy( pSymbol->VarName, new_text, LGT_VAR_NAME-1 ); pSymbol->VarName[ LGT_VAR_NAME-1 ] = '\0'; gtk_list_store_set( ListStore, &iter, data, pSymbol->VarName, -1); if ( pSymbol->Symbol[0]=='\0' ) strcpy( pSymbol->Symbol, "***" ); InfosGene->AskConfirmationToQuit = TRUE; } else { if (ErrorMessageVarParser) ShowMessageBox( _("Error"), ErrorMessageVarParser, _("Ok") ); else ShowMessageBox( _("Error"), _("Unknown variable..."), _("Ok") ); } } break; case SYMBOL: strncpy( pSymbol->Symbol, new_text, LGT_SYMBOL_STRING-1 ); pSymbol->Symbol[ LGT_SYMBOL_STRING-1 ] = '\0'; gtk_list_store_set( ListStore, &iter, data, pSymbol->Symbol, -1); InfosGene->AskConfirmationToQuit = TRUE; break; case COMMENT: strncpy( pSymbol->Comment, new_text, LGT_SYMBOL_COMMENT-1 ); pSymbol->Comment[ LGT_SYMBOL_COMMENT-1 ] = '\0'; gtk_list_store_set( ListStore, &iter, data, pSymbol->Comment, -1); InfosGene->AskConfirmationToQuit = TRUE; break; } DisplaySymbols(); }