Modified file emc2/src/hal/classicladder/spy_vars_gtk.c
Full file:
<http://cvs.linuxcnc.org/cvs/emc2/src/hal/classicladder/spy_vars_gtk.c?rev=1.4>
Difference:
<http://cvs.linuxcnc.org/cvs/emc2/src/hal/classicladder/spy_vars_gtk.c.diff?r1=1.3;r2=1.4>
Branch: TRUNK
Log:
revision 1.4
date: 2008/03/16 07:38:55; author: cmorley; state: Exp; lines: +79 -30
chanages so var window changes symbol names when section window button toggles plus more...
--- spy_vars_gtk.c 2008/03/13 02:01:17 1.3
+++ spy_vars_gtk.c 2008/03/16 07:38:55 1.4
@@ -42,7 +42,8 @@
#define NBR_BOOLS_VAR_SPY 15
#define NBR_TYPE_BOOLS_SPY 3
-#define NBR_FREE_VAR_SPY 10
+#define NBR_FREE_VAR_SPY 15
+
static int toggle=0;
GtkWidget *SpyBoolVarsWindow;
GtkWidget *SpyFreeVarsWindow;
@@ -51,10 +52,11 @@
int ValOffsetBoolVar[ NBR_TYPE_BOOLS_SPY ] = { 0, 0, 0 };
GtkWidget *chkvar[ NBR_TYPE_BOOLS_SPY ][ NBR_BOOLS_VAR_SPY ];
-GtkWidget *EntryVarSpy[NBR_FREE_VAR_SPY*2];
+GtkWidget *EntryVarSpy[NBR_FREE_VAR_SPY*3], *LabelFreeVars[ NBR_FREE_VAR_SPY];
+
GtkTooltips * TooltipsEntryVarSpy[ NBR_FREE_VAR_SPY ];
/* defaults vars to spy list */
-int VarSpy[NBR_FREE_VAR_SPY][2] = { {VAR_MEM_WORD,0}, {VAR_MEM_WORD,1}, {VAR_MEM_WORD,2}, {VAR_MEM_WORD,3}, {VAR_MEM_WORD,4}, {VAR_MEM_WORD,5}, {VAR_MEM_WORD,6}, {VAR_MEM_WORD,7}, {VAR_MEM_WORD,8}, {VAR_MEM_WORD,9} };
+int VarSpy[NBR_FREE_VAR_SPY][2] = { {VAR_MEM_WORD,0}, {VAR_MEM_WORD,1}, {VAR_MEM_WORD,2}, {VAR_MEM_WORD,3}, {VAR_MEM_WORD,4}, {VAR_MEM_WORD,5}, {VAR_MEM_WORD,6}, {VAR_MEM_WORD,7}, {VAR_MEM_WORD,8}, {VAR_MEM_WORD,9}, {VAR_MEM_WORD,10}, {VAR_MEM_WORD,11}, {VAR_MEM_WORD,12}, {VAR_MEM_WORD,13}, {VAR_MEM_WORD,14} };
GtkWidget *DisplayFormatVarSpy[NBR_FREE_VAR_SPY];
static gint chkvar_press_event( GtkWidget *widget, void * numcheck )
@@ -112,14 +114,15 @@
{
for(OffVar=0; OffVar<NBR_BOOLS_VAR_SPY; OffVar++)
{
- char BufNumVar[20];
+ char BufNumVar[40];
switch( ColumnVar )
{
- case 0: sprintf(BufNumVar, "%cB%d",'%', OffVar+ValOffsetBoolVar[ ColumnVar ]); break;
- case 1: sprintf(BufNumVar, "%cI%d",'%', OffVar+ValOffsetBoolVar[ ColumnVar ]); break;
- case 2: sprintf(BufNumVar, "%cQ%d",'%', OffVar+ValOffsetBoolVar[ ColumnVar ]); break;
+ case 0: sprintf(BufNumVar, "<span foreground=\"black\" weight=\"bold\">%cB%d</span>",'%', OffVar+ValOffsetBoolVar[ ColumnVar ]); break;
+ case 1: sprintf(BufNumVar, "<span foreground=\"red\" weight=\"bold\">%cI%d</span>",'%', OffVar+ValOffsetBoolVar[ ColumnVar ]); break;
+ case 2: sprintf(BufNumVar, "<span foreground=\"blue\" weight=\"bold\">%cQ%d</span>",'%', OffVar+ValOffsetBoolVar[ ColumnVar ]); break;
}
- gtk_label_set_text(GTK_LABEL(GTK_BIN( chkvar[ ColumnVar ][ OffVar ] )->child),BufNumVar);
+ gtk_label_set_markup (GTK_LABEL (GTK_BIN( chkvar[ ColumnVar ][ OffVar ] )->child),BufNumVar);
+ //gtk_label_set_text(GTK_LABEL(GTK_BIN( chkvar[ ColumnVar ][ OffVar ] )->child),BufNumVar);
}
}
}
@@ -163,7 +166,7 @@
GtkTooltips * WidgetTooltips[ NBR_TYPE_BOOLS_SPY ];
SpyBoolVarsWindow = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- gtk_window_set_title ((GtkWindow *)SpyBoolVarsWindow, "Bool (on/off) vars");
+ gtk_window_set_title ((GtkWindow *)SpyBoolVarsWindow, "Spy bools vars");
vboxmain = gtk_vbox_new (FALSE, 0);
gtk_container_add (GTK_CONTAINER (SpyBoolVarsWindow), vboxmain);
gtk_widget_show (vboxmain);
@@ -185,7 +188,7 @@
offsetboolvar[ ColumnVar ] = gtk_entry_new();
WidgetTooltips[ ColumnVar ] = gtk_tooltips_new();
gtk_tooltips_set_tip ( WidgetTooltips[ ColumnVar ], offsetboolvar[ ColumnVar ], "Offset for vars displayed below (return to apply)", NULL );
- gtk_widget_set_usize((GtkWidget *)offsetboolvar[ ColumnVar ],75,0);
+ gtk_widget_set_usize((GtkWidget *)offsetboolvar[ ColumnVar ],40,0);
gtk_box_pack_start (GTK_BOX(vboxboolvars[ ColumnVar ]), offsetboolvar[ ColumnVar ] , FALSE, FALSE, 0);
gtk_widget_show( offsetboolvar[ ColumnVar ] );
gtk_entry_set_text((GtkEntry *)offsetboolvar[ ColumnVar ],"0");
@@ -236,14 +239,20 @@
strcpy( TabBin,"0" );
return TabBin;
}
-
+// This function updates the signed Integer window
+// It checks the display format and displays the number in hex,binary or decimal
+// It checks to see what type of word variable it represents (Hal s32 pin in or out or an internal memory variable) and displays that label with colour
+// If Displays variable names or symbol names depending on the check box in the section display window
void DisplayFreeVarSpy()
{
- int NumVarSpy;
- int Value;
+ static int LastTime;
+ int NumVarSpy,i=NBR_FREE_VAR_SPY;
+ int Value,NumEntry;
char BufferValue[50];
char DisplayFormat[10];
- for (NumVarSpy=0; NumVarSpy<NBR_FREE_VAR_SPY; NumVarSpy++)
+ char * VarName;
+ if ( NBR_WORDS < NBR_FREE_VAR_SPY) { i=NBR_WORDS ;}
+ for (NumVarSpy=0; NumVarSpy<i; NumVarSpy++)
{
Value = ReadVar(VarSpy[NumVarSpy][0],VarSpy[NumVarSpy][1]);
strcpy( DisplayFormat , (char *)gtk_entry_get_text((GtkEntry *)((GtkCombo *)DisplayFormatVarSpy[NumVarSpy])->entry) );
@@ -254,8 +263,26 @@
sprintf(BufferValue,"%X",Value);
if (strcmp( DisplayFormat,"Bin" )==0 )
strcpy( BufferValue, ConvToBin( Value ) );
- gtk_entry_set_text((GtkEntry *)EntryVarSpy[NBR_FREE_VAR_SPY+NumVarSpy],BufferValue);
+ gtk_entry_set_text((GtkEntry *)EntryVarSpy[NumVarSpy+(2*NBR_FREE_VAR_SPY)],BufferValue);
+
|