📄 newt-module.c
字号:
/* This module implements and interface to the Newt library */#include <stdio.h>#include <slang.h>#include <newt.h>SLANG_MODULE(newt);static int Ok_To_Draw;static void init (void){ newtInit (); Ok_To_Draw = 1;}static void cls (void){ if (Ok_To_Draw) newtCls ();}static void draw_root_text (int *c, int *r, char *s){ if (Ok_To_Draw) newtDrawRootText (*c, *r, s);}static void open_window (int *c, int *r, int *dc, int *dr, char *title){ if (Ok_To_Draw) newtOpenWindow (*c, *r, *dc, *dr, title);}static void refresh (void){ if (Ok_To_Draw) newtRefresh ();}static void finished (void){ if (Ok_To_Draw) newtFinished (); Ok_To_Draw = 0;}#define I SLANG_INT_TYPE#define S SLANG_STRING_TYPEstatic SLang_Intrin_Fun_Type Module_Funs [] ={ MAKE_INTRINSIC_0("newtInit", init, SLANG_VOID_TYPE), MAKE_INTRINSIC_0("newtCls", cls, SLANG_VOID_TYPE), MAKE_INTRINSIC_IIS("newtDrawRootText", draw_root_text, SLANG_VOID_TYPE), MAKE_INTRINSIC_5("newtOpenWindow", open_window, SLANG_VOID_TYPE, I,I,I,I,S), MAKE_INTRINSIC_0("newtRefresh", refresh, SLANG_VOID_TYPE), MAKE_INTRINSIC_0("NewtFinished", finished, SLANG_VOID_TYPE), SLANG_END_TABLE};static SLang_Intrin_Var_Type Module_Variables [] ={ SLANG_END_TABLE};static SLang_IConstant_Type Module_Constants [] ={ SLANG_END_TABLE};int init_newt_module_ns (char *ns){ if ((-1 == SLns_add_intrin_fun_table (ns, Module_Funs, "__NEWT__")) || (-1 == SLns_add_intrin_var_table (ns, Module_Variables, NULL)) || (-1 == SLns_add_iconstant_table (ns, Module_Constants, NULL))) return -1; Ok_To_Draw = 0; (void) SLang_add_cleanup_function (finished); return 0;}/* This function is optional */void deinit_newt_module (void){ finished ();}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -