author | francesco-ST <francesco.abbate@st.com> | 2010年08月04日 15:26:20 +0200 |
---|---|---|
committer | francesco-ST <francesco.abbate@st.com> | 2010年08月04日 15:26:20 +0200 |
commit | 544643a77a901bc27fc17b7756764c1cb8ccc2a8 (patch) | |
tree | 246e1d2896b984ea9dab3b233fcf801935edc71e /agg-plot/canvas-window.cpp | |
parent | f145fa7be5615ac2ffc15f5859e1c9290ba5b9e3 (diff) | |
download | gsl-shell-544643a77a901bc27fc17b7756764c1cb8ccc2a8.tar.gz |
-rw-r--r-- | agg-plot/canvas-window.cpp | 11 |
diff --git a/agg-plot/canvas-window.cpp b/agg-plot/canvas-window.cpp index 927a69e7..73cfb81b 100644 --- a/agg-plot/canvas-window.cpp +++ b/agg-plot/canvas-window.cpp @@ -69,6 +69,7 @@ static const struct luaL_Reg canvas_window_methods_protected[] = { {"clear", canvas_window_clear}, {"refresh", canvas_window_refresh}, {"setview", canvas_window_set_box_trans}, + {"close", canvas_window_close}, {NULL, NULL} }; @@ -144,9 +145,11 @@ canvas_thread_function (void *_win) { win->status = canvas_window::running; win->run(); + printf("window id %d terminate.\n", win->id); win->status = canvas_window::closed; GSL_SHELL_LOCK(); + printf("request reference remove window id %d\n", win->id); gsl_shell_unref_plot (win->id); GSL_SHELL_UNLOCK(); } @@ -239,6 +242,14 @@ canvas_window_refresh (lua_State *L) } int +canvas_window_close (lua_State *L) +{ + canvas_window *win = canvas_window::check (L, 1); + win->close(); + return 0; +} + +int canvas_window_index_protected (lua_State *L) { canvas_window *win = canvas_window::check(L, lua_upvalueindex(2)); |