MCPcopy Create free account
hub / github.com/Tablecruncher/tablecruncher / event_callback2

Method event_callback2

src/csvgrid.cpp:352–414  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

350
351
352void CsvGrid::event_callback2() {
353 DEBUG_PRINTF("#### CsvGrid::event_callback2\n");
354 if( !areEventsAllowed() )
355 return;
356 int R = callback_row(); // returns the row the event occured on
357 int C = callback_col();
358 TableContext context = callback_context();
359 int event = Fl::event();
360 int row_top, col_left, row_bot, col_right; // the previous selection
361
362 DEBUG_PRINTF(".... 20\n");
363 get_selection(row_top, col_left, row_bot, col_right);
364 DEBUG_PRINTF(".... 30\n");
365 int topwin = app.getTopWindow();
366 DEBUG_PRINTF(".... topwin=%d\n", topwin);
367 windows[topwin].showDefaultStatus();
368 DEBUG_PRINTF(".... 40\n");
369
370 // Debug only!
371 // #include <FL/names.h>
372 // printf(">>> grid > event_callback2: event = %s (%d) | context = %d\n", fl_eventnames[event], event, context);
373 // printf("... selection = %d,%d %d,%d\n", row_top, col_left, row_bot, col_right);
374 // End debug
375
376 switch ( context ) {
377 case CONTEXT_COL_HEADER:
378 switch(event) {
379 case FL_RELEASE:
380 DEBUG_PRINTF(".... CONTEXT_COL_HEADER > FL_RELEASE\n");
381 if( Fl::event_button() == FL_RIGHT_MOUSE && !Fl::event_command() && !Fl::event_shift() && !Fl::event_ctrl() && !Fl::event_alt() ) {
382 // Col Header Right_Click
383 app.sort(C);
384 }
385 if( Fl::event_button() == FL_LEFT_MOUSE && Fl::event_shift() && !Fl::event_command() && !Fl::event_ctrl() && !Fl::event_alt() ) {
386 // Col Header Shift-Left_Click
387 updateSelection(0, std::min(mouse_push_left,C), rows()-1, std::max(mouse_push_left,C));
388 }
389 break;
390 }
391 break; // case CONTEXT_COL_HEADER
392 case CONTEXT_ROW_HEADER:
393 switch(event) {
394 case FL_RELEASE:
395 DEBUG_PRINTF(".... CONTEXT_ROW_HEADER > FL_RELEASE\n");
396 if( Fl::event_button() == FL_LEFT_MOUSE && Fl::event_alt() && !Fl::event_command() && !Fl::event_ctrl() && !Fl::event_shift() ) {
397 // Row Header Alt-Left_Click
398 if( windows[app.getTopWindow()].table->isFlagged(R) ) {
399 windows[app.getTopWindow()].table->flagRow(R, false);
400 } else {
401 windows[app.getTopWindow()].table->flagRow(R, true);
402 }
403 Fl::redraw();
404 }
405 break;
406 }
407 break; // case CONTEXT_ROW_HEADER
408 default:
409 break;

Callers 1

event_callbackMethod · 0.80

Calls 5

getTopWindowMethod · 0.80
showDefaultStatusMethod · 0.80
isFlaggedMethod · 0.80
flagRowMethod · 0.80
sortMethod · 0.45

Tested by

no test coverage detected