@@ -140,12 +140,16 @@ static void _ui_m6569_draw_hwcolors(void) {
140
140
141
141
static void _ui_m6569_draw_color (const char * label , uint8_t val ) {
142
142
ImGui ::Text ("%s%X" , label , val ); ImGui ::SameLine ();
143
+ ImGui ::PushID (label );
143
144
ImGui ::ColorButton ("##regclr" , ImColor (m6569_color (val & 0xF )), ImGuiColorEditFlags_NoAlpha , ImVec2 (12 ,12 ));
145
+ ImGui ::PopID ();
144
146
}
145
147
146
148
static void _ui_m6569_draw_rgb (const char * label , uint32_t val ) {
147
149
ImGui ::Text ("%s" , label ); ImGui ::SameLine ();
150
+ ImGui ::PushID (label );
148
151
ImGui ::ColorButton ("##rgbclr" , ImColor (val | 0xFF000000 ), ImGuiColorEditFlags_NoAlpha , ImVec2 (12 ,12 ));
152
+ ImGui ::PopID ();
149
153
}
150
154
151
155
static void _ui_m6569_draw_registers (const ui_m6569_t * win ) {
@@ -275,10 +279,12 @@ static void _ui_m6569_draw_sprite_units(const ui_m6569_t* win) {
275
279
};
276
280
const m6569_sprite_unit_t * su = & win -> vic -> sunit ;
277
281
for (int i = 0 ; i < 8 ; i ++ ) {
282
+ ImGui ::PushID (i );
283
+ const uint8_t mask = 1 << i ;
278
284
if (ImGui ::CollapsingHeader (su_names [i ])) {
279
- ImGui ::Text ("dma:%s" , su -> dma_enabled [ i ]? "ON " :"OFF" ); ImGui ::SameLine ();
280
- ImGui ::Text ("display:%s" , su -> disp_enabled [ i ]? "ON " :"OFF" ); ImGui ::SameLine ();
281
- ImGui ::Text ("expand:%s" , su -> expand [ i ] ?"ON " :"OFF" );
285
+ ImGui ::Text ("dma:%s" , su -> dma_enabled & mask ? "ON " :"OFF" ); ImGui ::SameLine ();
286
+ ImGui ::Text ("display:%s" , su -> disp_enabled & mask ? "ON " :"OFF" ); ImGui ::SameLine ();
287
+ ImGui ::Text ("expand:%s" , su -> expand & mask ?"ON " :"OFF" );
282
288
ImGui ::Text ("h_first:%02X h_last:%02X h_offset:%02X" , su -> h_first [i ], su -> h_last [i ], su -> h_offset [i ]);
283
289
ImGui ::Text ("p_data:%02X mc:%02X mc_base:%02X" , su -> p_data [i ], su -> mc [i ], su -> mc_base [i ]);
284
290
ImGui ::Text ("delay_cnt:%02X outp2_cnt:%02X xexp_cnt:%02X" , su -> delay_count [i ], su -> outp2_count [i ], su -> xexp_count [i ]);
@@ -289,6 +295,7 @@ static void _ui_m6569_draw_sprite_units(const ui_m6569_t* win) {
289
295
_ui_m6569_draw_rgb ("main color: " , su -> colors [i ][2 ]);
290
296
_ui_m6569_draw_rgb ("multicolor1:" , su -> colors [i ][3 ]);
291
297
}
298
+ ImGui ::PopID ();
292
299
}
293
300
}
294
301
0 commit comments