📄 textsw_impl.h
字号:
#define TXTSW_MISC_UNUSED 0x8000000c /* Bit flags for Textsw_handle->caret_state */#define TXTSW_CARET_FLASHING 0x0001#define TXTSW_CARET_ON 0x0002#define TXTSW_CARET_MUST_SHOW 0x0004#define TXTSW_CARET_UNUSED 0xfff8 /* Bit flags for Textsw_handle->func_state */#define TXTSW_FUNC_AGAIN 0x00000001#define TXTSW_FUNC_DELETE 0x00000002#define TXTSW_FUNC_FIELD 0x00000004#define TXTSW_FUNC_FILTER 0x00000008#define TXTSW_FUNC_FIND 0x00000010#define TXTSW_FUNC_GET 0x00000020#define TXTSW_FUNC_PUT 0x00000040#define TXTSW_FUNC_UNDO 0x00000080#define TXTSW_FUNC_ALL (TXTSW_FUNC_AGAIN | TXTSW_FUNC_DELETE | \ TXTSW_FUNC_FIELD | TXTSW_FUNC_FILTER | \ TXTSW_FUNC_FIND | TXTSW_FUNC_GET | \ TXTSW_FUNC_PUT | TXTSW_FUNC_UNDO)#define TXTSW_FUNC_SVC_SAW(flags) \ ((flags) << 8)#define TXTSW_FUNC_SVC_SAW_ALL TXTSW_FUNC_SVC_SAW(TXTSW_FUNC_ALL)#define TXTSW_FUNC_EXECUTE 0x01000000#define TXTSW_FUNC_SVC_REQUEST 0x10000000#define TXTSW_FUNC_SVC_ALL (TXTSW_FUNC_SVC_SAW_ALL | \ TXTSW_FUNC_SVC_REQUEST)#define TXTSW_FUNCTION_UNUSED 0xeeff8080 /* Bit flags for Textsw_handle->holder_state */#define TXTSW_HOLDER_OF_CARET 0x0001#define TXTSW_HOLDER_OF_PSEL 0x0002#define TXTSW_HOLDER_OF_SSEL 0x0004#define TXTSW_HOLDER_OF_SHELF 0x0008#define TXTSW_HOLDER_OF_ALL (TXTSW_HOLDER_OF_CARET | \ TXTSW_HOLDER_OF_PSEL | \ TXTSW_HOLDER_OF_SSEL | \ TXTSW_HOLDER_OF_SHELF)#define TXTSW_HOLDER_UNUSED 0xfff0 /* Bit flags for Textsw_handle->track_state */#define TXTSW_TRACK_ADJUST 0x0001#define TXTSW_TRACK_ADJUST_END 0x0002#define TXTSW_TRACK_POINT 0x0004#define TXTSW_TRACK_SECONDARY 0x0008#define TXTSW_TRACK_ALL (TXTSW_TRACK_ADJUST|TXTSW_TRACK_ADJUST_END|\ TXTSW_TRACK_POINT|TXTSW_TRACK_SECONDARY)#define TXTSW_TRACK_UNUSED 0xfff0#define TXTSW_IS_BUSY(textsw) \ ((textsw->state & TXTSW_PENDING_DELETE) || \ (textsw->func_state & TXTSW_FUNC_ALL) || \ (textsw->track_state & TXTSW_TRACK_ALL))#define TXTSW_IS_READ_ONLY(textsw) \ (textsw->state & (TXTSW_READ_ONLY_ESH | TXTSW_READ_ONLY_SW)) /* Flags for textsw_flush_caches */#define TFC_INSERT 0x01#define TFC_DO_PD 0x02#define TFC_SEL 0x04#define TFC_PD_SEL (TFC_DO_PD|TFC_SEL)#define TFC_PD_IFF_INSERT 0x08 /* Delete selection iff chars will be inserted. */#define TFC_SEL_IFF_INSERT 0x10 /* Clear selection iff chars will be inserted. */#define TFC_IFF_INSERTING (TFC_PD_IFF_INSERT | TFC_SEL_IFF_INSERT | \ TFC_INSERT)#define TFC_ALL (TFC_IFF_INSERTING|TFC_PD_SEL)#define TFC_STD TFC_ALL /* Flags for textsw_find_selection_and_normalize *//* These flags potentially include an EV_SEL_BASE_TYPE */#define TFSAN_BACKWARD EV_SEL_CLIENT_FLAG(0x0001)#define TFSAN_REG_EXP EV_SEL_CLIENT_FLAG(0x0002)#define TFSAN_SHELF_ALSO EV_SEL_CLIENT_FLAG(0x0004)#define TFSAN_TAG EV_SEL_CLIENT_FLAG(0x0008)#define SET_TEXTSW_TIMER(_timer_h) \ (_timer_h)->tv_sec = 0; (_timer_h)->tv_usec = 500000;#define TIMER_EXPIRED(timer) \ (*timer && ((*timer)->tv_sec == 0) && ((*timer)->tv_usec == 0))#define SCROLLBAR_ENTER_FEEDBACK 1/* For caret motion */typedef enum { TXTSW_CHAR_BACKWARD, TXTSW_CHAR_FORWARD, TXTSW_DOCUMENT_END, TXTSW_DOCUMENT_START, TXTSW_LINE_END, TXTSW_LINE_START, TXTSW_NEXT_LINE_START, TXTSW_NEXT_LINE, TXTSW_PREVIOUS_LINE, TXTSW_WORD_BACKWARD, TXTSW_WORD_FORWARD, TXTSW_WORD_END} Textsw_Caret_Direction;pkg_private voidtextsw_begin_function( /* textsw, function */ );# ifdef notdef register Textsw_handle textsw; unsigned function;# endifpkg_private voidtextsw_end_function( /* textsw, function */ );# ifdef notdef register Textsw_handle textsw; unsigned function;# endifpkg_private inttextsw_adjust_delete_span( /* folio, first, last_plus_one */ );# ifdef notdef Textsw_folio folio; Es_index *first, *last_plus_one;# endif#define TXTSW_PE_ADJUSTED 0x10000#define TXTSW_PE_EMPTY_INTERVAL 0x20000pkg_private Es_indextextsw_delete_span( /* folio, first, last_plus_one, flags */ );# ifdef notdef register Textsw_folio folio; Es_index first, last_plus_one; unsigned flags;# endif#define TXTSW_DS_DEFAULT EV_SEL_CLIENT_FLAG(0x0)#define TXTSW_DS_ADJUST EV_SEL_CLIENT_FLAG(0x1)#define TXTSW_DS_CLEAR_IF_ADJUST(sel) (EV_SEL_CLIENT_FLAG(0x2)|(sel))#define TXTSW_DS_SHELVE EV_SEL_CLIENT_FLAG(0x4)#define TXTSW_DS_RECORD EV_SEL_CLIENT_FLAG(0x8)pkg_private Es_indextextsw_do_input( /* view, buf, buf_len, flag */ );# ifdef notdef Textsw_view view; char *buf; long int buf_len; unsigned flag;# endifpkg_private Es_indextextsw_input_after( /* view, old_insert_pos, old_length, record */ );# ifdef notdef Textsw_view view; Es_index old_insert_pos, old_length; int record;# endifpkg_private Es_indextextsw_do_pending_delete( /* view, type, flags */ );# ifdef notdef Textsw_view view; unsigned type; int flags;# endifpkg_private inttextsw_normalize_internal( /* view, first, last_plus_one, upper_context, lower_context, flags */ );# ifdef notdef register Textsw_view view; Es_index first, last_plus_one; int upper_context, lower_context; register unsigned flags;# endif#define TXTSW_NI_DEFAULT EV_SEL_CLIENT_FLAG(0x0)#define TXTSW_NI_AT_BOTTOM EV_SEL_CLIENT_FLAG(0x1)#define TXTSW_NI_MARK EV_SEL_CLIENT_FLAG(0x2)#define TXTSW_NI_NOT_IF_IN_VIEW EV_SEL_CLIENT_FLAG(0x4)#define TXTSW_NI_SELECT(sel) (EV_SEL_CLIENT_FLAG(0x8)|(sel))pkg_private Es_indextextsw_set_insert( /* textsw, pos */ );# ifdef notdef Textsw_folio textsw; Es_index pos;# endifpkg_private voidtextsw_add_timer( /* textsw, timeout */ );# ifdef notdef register Textsw_folio textsw; register struct timeval *timeout;# endifpkg_private Notify_valuetextsw_timer_expired( /* textsw, which */ );# ifdef notdef register Textsw_folio textsw; int which;# endifpkg_private voidtextsw_remove_timer( /* textsw */ );# ifdef notdef register Textsw_handle textsw;# endifpkg_private voidtextsw_invert_caret( /* textsw */ );# ifdef notdef register Textsw_handle textsw;# endifpkg_private voidtextsw_take_down_caret( /* textsw */ );# ifdef notdef register Textsw_handle textsw;# endifpkg_private voidtextsw_may_win_exit( /* textsw */ );# ifdef notdef Textsw_handle textsw;# endifpkg_private voidtextsw_notify( /* folio_or_view, attributes */ );# ifdef notdef Textsw_opaque folio_or_view; Attr_avlist attributes;# endifpkg_private voidtextsw_read_only_msg( /* textsw, locx, locy */ );# ifdef notdef Textsw_folio textsw; int locx, locy;# endifpkg_private Textsw_statustextsw_set_internal( /* view, attrs */ );# ifdef notdef Textsw_view view; Attr_avlist attrs;# endif#define TEXTSW_CONSUME_ATTRS TEXTSW_ATTR(ATTR_BOOLEAN, 240)pkg_private Es_statustextsw_checkpoint( /* folio */ );# ifdef notdef Text_folio folio;# endifextern caddr_ttextsw_checkpoint_undo( /* abstract, undo_mark */ );# ifdef notdef Textsw abstract; caddr_t undo_mark;# endifextern voidtextsw_display( /* abstract */ );# ifdef notdef Textsw abstract;# endifextern voidtextsw_display_view( /* abstract, rect */ );# ifdef notdef Textsw abstract; register Rect *rect;# endifpkg_private voidtextsw_display_view_margins( /* abstract, rect */ );# ifdef notdef Textsw abstract; register Rect *rect;# endifpkg_private inttextsw_is_seln_nonzero( /* textsw, type */ );# ifdef notdef register Text_folio textsw; unsigned type;# endifpkg_private Es_indextextsw_find_mark_internal( /* textsw, mark */ );# ifdef notdef Textsw_folio textsw; Ev_mark_object mark;# endifpkg_private Es_indextextsw_get_saved_insert( /* textsw */ );# ifdef notdef register Textsw_folio textsw;# endifpkg_private Es_indextextsw_read_only_boundary_is_at( /* folio */ );# ifdef notdef register Textsw_folio folio;# endifpkg_private Es_indextextsw_insert_pieces( /* view, pos, pieces */ );# ifdef notdef Textsw_view view; register Es_index pos; Es_handle pieces;# endifextern unsignedtextsw_save( /* abstract, locx, locy */ );# ifdef notdef Textsw abstract; int locx, locy;# endifextern unsignedtextsw_store_file( /* abstract, filename, locx, locy */ );# ifdef notdef Textsw abstract; char *filename; int locx, locy;# endifpkg_private Es_statustextsw_store_to_selection( /* textsw, locx, locy */ );# ifdef notdef Textsw_folio textsw; int locx, locy;# endifextern caddr_ttextsw_get( /* textsw, attributes */ );# ifdef notdef Textsw textsw; char **attributes;# endifextern Textsw_status textsw_set();pkg_private unsigned textsw_determine_selection_type();pkg_private void textsw_clear_secondary_selection();pkg_private void textsw_init_selection_object();pkg_private void textsw_update_scrollbars();pkg_private void textsw_display_view_margins();pkg_private void textsw_give_shelf_to_svc();pkg_private Seln_rank seln_rank_from_textsw_info();pkg_private void textsw_set_scroll_mark();pkg_private void textsw_input_before();pkg_private Key_map_handle textsw_do_filter();pkg_private Seln_rank textsw_acquire_seln();pkg_private void textsw_notify_replaced();pkg_private void textsw_remove_mark_internal();#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -