documentation for Fl_Tree in FLTK 1.3.4은 말할 때 :Fl_Tree 콜백 FL_WHEN_RELEASE
콜백()가 호출 될 때()
- FL_WHEN_RELEASE의 값에 따라 - 마우스 왼쪽 버튼가에 해제 될 때 콜백이 호출 항목
- FL_WHEN_CHANGED이 - 마우스를 왼쪽 때 호출되는 콜백 변경 선택 상태
하지만 마우스를 놓으면 둘 다 차이점을 볼 수없는 콜백을받을 수 없습니다. 어떤 아이디어?
#include <FL/Fl.H>
#include <FL/Fl_Double_Window.H>
#include <FL/Fl_Tree.H>
static void cb_(Fl_Tree*, void*)
{
printf ("callback\n");
}
int main()
{
Fl_Double_Window* w = new Fl_Double_Window(325, 325);
Fl_Tree* o = new Fl_Tree(25, 25, 255, 245);
o->callback((Fl_Callback*)cb_);
o->when(FL_WHEN_RELEASE);
o->add("foo/bar");
o->add("foo/baz");
o->end();
w->show();
return Fl::run();
}
이 스 니펫은 FL_WHEN_RELEASE가 설정되어 있어도 모든 변경 사항에 대해 "콜백"을 출력합니다.
필자도 테스트/트리 예제를 사용해 보았어야합니다. 여기서 문서가 틀렸다는 말입니까? ** FL_WHEN_RELEASE - 항목에서 마우스 왼쪽 버튼을 놓을 때 호출되는 콜백 ** – Andy
둘 다 정확합니다. 단지 컨텍스트 일뿐입니다. 트리보기에서 항목을 부분적으로 선택할 수 없으므로 변경 및 릴리스는 모두 동일한 동작을 갖습니다. 편집 상자에서 부분적으로 항목을 선택하여 다른 동작을 사용할 수 있습니다. – cup
그러나 Fl_Tree에서 이미 선택된 항목을 클릭하면 실제로 차이가납니다. 다른 항목이 이전에 선택된 경우 FL_WHEN_CHANGED에 대한 콜백이 필요합니다 (선택이 변경 되었기 때문에). 하지만 이미 선택한 항목을 다시 클릭하면 FL_WHEN_RELEASE에 대한 콜백이 필요합니다. – Andy