- gtk_clist_freeze(GTK_CLIST(pgmclist));
- for (row = 0; row < 24; row++) {
- InstSize = cpu8051_Disasm(Address, TextTmp);
- if (IsBreakpoint(Address))
- TextTmp[0] = '*';
- gtk_clist_set_text(GTK_CLIST(pgmclist), row, 0, TextTmp);
- DisasmAddresses[row] = Address;
- Address += InstSize;
+ store = gtk_list_store_newv(N_COLUMNS, col_types);
+
+ /* Add rows. */
+ for (row = 0; row < DATA_ROWS; row++) {
+ gtk_list_store_append(store, &iter);
+
+ /* Color first row in red (current instruction). */
+ if (row == 0)
+ gtk_list_store_set(store, &iter, COL_COLOR, "red", -1);
+ else
+ gtk_list_store_set(store, &iter, COL_COLOR, "black", -1);
+ }
+
+ return store;
+}
+
+static void
+pgmwin_init_columns(void)
+{
+ int k;
+ GtkCellRenderer *renderer;
+
+ /* Create renderer */
+ renderer = gtk_cell_renderer_text_new();
+
+ /* Add columns, except for last one (COL_COLOR). */
+ for (k = 0; k < COL_COLOR; k++) {
+ GtkTreeViewColumn *col;
+
+ /* Create tree view column */
+ col = gtk_tree_view_column_new();
+ gtk_tree_view_column_set_title(col, col_names[k]);
+ gtk_tree_view_column_set_sizing(col,
+ GTK_TREE_VIEW_COLUMN_AUTOSIZE);
+ gtk_tree_view_append_column(GTK_TREE_VIEW(pgmlist), col);
+
+ /* Pack cell renderer into column */
+ gtk_tree_view_column_pack_start(col, renderer, TRUE);
+
+ /* Establish connection between cell renderer and data store. */
+ gtk_tree_view_column_set_attributes(col, renderer, "text", k,
+ "foreground", COL_COLOR,
+ NULL);