从 hasHeader 回调函数打印 HeaderEvent 参数

Print HeaderEvent parameter from hasHeader callback function

我有以下函数为 headers

准备 canvas
hasHeader(canv,cb);

cb函数结构如下

void cb(DBE el, HeaderEvent event, int hIndex, int param) {
   // do something
}

我知道该事件可以是 headerResize、headerEdit、headerSelect 或 headerReorder,但我的问题是如何打印此参数以查看其值?我想这是可能的,但我想不通...

因此,HeaderEvent 实际上最终更像是一个枚举。看看以下内容:

// Set the current module
Module m = current

// Redraw function for canvas - required (empty for this example)
void reDraw ( DBE canv ) {

}

// Header callback function
void cb ( DBE el , HeaderEvent event, int hIndex, int param ) {
    // Header Event Cases
    if ( event == headerEdit ) {
        print "HeaderEdit" "\t" hIndex "\n"
    }
    if ( event == headerResize ) {
        print "HeaderResize" "\t" param "\n"
    }
    if ( event == headerSelect ) {
        print "HeaderSelect" "\t" hIndex "\n"
    }   
    if ( event == headerReorder ) {
        print "HeaderReorder" "\t" hIndex "\t" param "\n"
    }
}

// Create the Main Window and Callbacks
DB main_DB = create ( m , "Header Test" , styleSubWindow | styleFloating )
DBE canv_DBE = canvas ( main_DB , 100 , 100 , reDraw )
// Prep for headers
hasHeader ( canv_DBE , cb )

// Realize the dialog box - required before adding columns to the canvas
realize mainDB

// Add canvas columns
headerAddColumn ( canvas_test , "Header Test 1" , 100 )
headerAddColumn ( canvas_test , "Header Test 2" , 100 )

// Show the dialog box
show mainDB

当您单击 headers 并四处拖动它们时,您将从事件案例结构中获得反馈。

我没有看到更简单的方法来实现它,但其他人可能比我更有洞察力!