📄 test15.c
字号:
CHECK_PTR_CHANGED ( inner_widget ) CHECK_PTR_CHANGED ( line_table ) CHECK_INT_VALUE ( table_size ) CHECK_INT_VALUE ( table_index ) CHECK_INT_VALUE ( repaint.number ) CHECK_INT_VALUE ( repaint.maximum ) if ( widgetInitialized && textPart.repaint.number != copyOfTextInternals.repaint.number ) ShowRangeData ( toBeCompared, True, True ); CHECK_INT_VALUE ( highlight.number ) if ( widgetInitialized && textPart.highlight.number != copyOfTextInternals.highlight.number ) ShowHighlightData ( toBeCompared ); if ( ! widgetInitialized ) { CopyTextInternals ( toBeCompared ); return; }#undef COPY#define COPY copyOfRangeAtIndex0#undef COMPARE#define COMPARE textPart.repaint.range[0]#undef PART#define PART "range[0] " if ( widgetInitialized && textPart.repaint.number > 0 ) { CHECK_INT_VALUE ( from ) CHECK_INT_VALUE ( to ) }#undef COPY#define COPY copyOfTextSourceInternals#undef COMPARE#define COMPARE (*textPart.source->data)#undef PART#define PART "source " CHECK_INT_VALUE ( left ) CHECK_INT_VALUE ( right ) if ( argStringValues ) { CHECK_STRING_VALUE ( ptr ) CHECK_STRING_VALUE ( value ) CHECK_STRING_VALUE ( gap_start ) CHECK_STRING_VALUE ( gap_end ) } CHECK_INT_VALUE ( length ) CHECK_INT_VALUE ( maxlength ) CHECK_INT_VALUE ( old_length ) CHECK_INT_VALUE ( maxallowed ) CHECK_TIME ( prim_time )/* CHECK_CHAR_VALUE ( PSWC_NWLN[0] )*/ if ( copyOfTextSourceInternals.PSWC_NWLN && copyOfTextSourceInternals.PSWC_NWLN[0] != textPart.source->data->PSWC_NWLN[0] ) { PRINT_BANNER PrintDiffDesc ( PART, "PSWC_NWLN[0]" ); printf ( "( old = %i new = %i )\n", copyOfTextSourceInternals.PSWC_NWLN[0], textPart.source->data->PSWC_NWLN[0] ); } else if ( ! copyOfTextSourceInternals.PSWC_NWLN && textPart.source->data->PSWC_NWLN[0]) { PRINT_BANNER PrintDiffDesc ( PART, "PSWC_NWLN[0]" ); printf ( "( old = <> new = %i )\n", textPart.source->data->PSWC_NWLN[0] ); } CHECK_CHAR_VALUE ( hasselection ) if ( widgetInitialized && GetSrc ( toBeCompared ) -> data -> hasselection && ! copyOfTextSourceInternals . hasselection ) ShowSelectionData ( toBeCompared ); CHECK_CHAR_VALUE ( editable )#undef COPY#define COPY copyOfTextInputInternals#undef COMPARE#define COMPARE (*textPart.input->data)#undef PART#define PART "input " CHECK_INT_VALUE ( new_sel_length ) CHECK_INT_VALUE ( threshold ) CHECK_CHAR_VALUE ( selectionHint.x ) CHECK_CHAR_VALUE ( selectionHint.y ) CHECK_CHAR_VALUE ( Sel2Hint.x ) CHECK_CHAR_VALUE ( Sel2Hint.y ) CHECK_INT_VALUE (select_id ) CHECK_CHAR_VALUE ( stype ) CHECK_CHAR_VALUE ( extendDir ) CHECK_CHAR_VALUE ( Sel2ExtendDir ) CHECK_INT_VALUE ( origLeft ) CHECK_INT_VALUE ( origRight ) CHECK_INT_VALUE ( Sel2OrigLeft ) CHECK_INT_VALUE ( Sel2OrigRight ) CHECK_INT_VALUE ( stuffpos ) CHECK_INT_VALUE ( sel2Left ) CHECK_INT_VALUE ( sel2Right ) CHECK_INT_VALUE ( anchor ) CHECK_INT_VALUE ( select_pos_x ) CHECK_INT_VALUE ( select_pos_y ) CHECK_CHAR_VALUE ( pendingdelete ) CHECK_CHAR_VALUE ( syncing ) CHECK_CHAR_VALUE ( extending ) CHECK_CHAR_VALUE ( Sel2Extending ) CHECK_CHAR_VALUE ( hasSel2 ) if ( widgetInitialized && Text_InputData( toBeCompared ) -> hasSel2 && ! copyOfTextInputInternals.hasSel2 ) ShowSecondarySelectionData ( toBeCompared ); CHECK_CHAR_VALUE ( has_destination ) CHECK_CHAR_VALUE ( selectionMove ) CHECK_CHAR_VALUE ( cancel ) CHECK_CHAR_VALUE ( overstrike ) CHECK_CHAR_VALUE ( sel_start ) CHECK_TIME ( dest_time ) CHECK_TIME ( sec_time ) CHECK_TIME ( lasttime )#undef COPY#define COPY copyOfTextOutputInternals#undef COMPARE#define COMPARE (*textPart.output->data)#undef PART#define PART "output " CHECK_PTR_CHANGED ( fontlist ) CHECK_INT_VALUE ( blinkrate ) CHECK_CHAR_VALUE ( wordwrap ) CHECK_CHAR_VALUE ( cursor_position_visible ) CHECK_CHAR_VALUE ( autoshowinsertpoint ) CHECK_CHAR_VALUE ( hasfocus ) CHECK_CHAR_VALUE ( has_rect ) CHECK_CHAR_VALUE ( handlingexposures ) CHECK_CHAR_VALUE ( exposevscroll ) CHECK_CHAR_VALUE ( exposehscroll ) CHECK_CHAR_VALUE ( resizewidth ) CHECK_CHAR_VALUE ( resizeheight ) CHECK_CHAR_VALUE ( scrollvertical ) CHECK_CHAR_VALUE ( scrollhorizontal ) CHECK_CHAR_VALUE ( scrollleftside ) CHECK_CHAR_VALUE ( scrolltopside ) CHECK_CHAR_VALUE ( ignorevbar ) CHECK_CHAR_VALUE ( ignorehbar ) if ( argShowDrawCursor ) { CHECK_SHORT_VALUE ( cursor_on ) CHECK_CHAR_VALUE ( refresh_ibeam_off ) CHECK_CHAR_VALUE ( blinkstate ) } CHECK_CHAR_VALUE ( suspend_hoffset ) CHECK_CHAR_VALUE ( use_fontset ) CHECK_CHAR_VALUE ( have_inverted_image_gc ) CHECK_INT_VALUE ( insertx ) CHECK_INT_VALUE ( inserty ) CHECK_INT_VALUE ( number_lines ) CHECK_INT_VALUE ( leftmargin ) CHECK_INT_VALUE ( rightmargin ) CHECK_INT_VALUE ( topmargin ) CHECK_INT_VALUE ( bottommargin ) CHECK_INT_VALUE ( scrollwidth ) CHECK_INT_VALUE ( vsliderSize ) CHECK_INT_VALUE ( hoffset ) CHECK_INT_VALUE ( averagecharwidth ) CHECK_INT_VALUE ( tabwidth ) CHECK_CHAR_VALUE ( columns ) CHECK_CHAR_VALUE ( rows ) CHECK_INT_VALUE ( lineheight ) CHECK_INT_VALUE ( minwidth ) CHECK_INT_VALUE ( minheight ) CHECK_INT_VALUE ( prevW ) CHECK_INT_VALUE ( prevH ) CHECK_INT_VALUE ( cursorwidth ) CHECK_INT_VALUE ( cursorheight ) CHECK_INT_VALUE ( font_ascent ) CHECK_INT_VALUE ( font_descent ) CHECK_PTR_CHANGED ( timerid ) if ( argShowDrawCursor ) { CHECK_INT_VALUE ( cursor ) CHECK_INT_VALUE ( add_mode_cursor ) CHECK_INT_VALUE ( ibeam_off ) CHECK_INT_VALUE ( stipple_tile ) CHECK_PTR_VALUE ( gc ) CHECK_PTR_VALUE ( imagegc ) CHECK_PTR_CHANGED ( save_gc ) } CHECK_PTR_CHANGED ( vbar ) CHECK_PTR_CHANGED ( hbar ) CHECK_PTR_CHANGED ( font ) CHECK_CHAR_VALUE ( columns_set ) CHECK_CHAR_VALUE ( rows_set )/* what the hell is this !!! CHECK_CHAR_VALUE ( fontlist_created )*/ CopyTextInternals ( toBeCompared ); if ( ! printedBanner ) printf ( "\tNo difference between text with previous saved version:\n" );}void PrintLead(){ int i ; for ( i = 0; i < indent ; i++ ) printf ( "->" );}void ShowLine ( XmTextWidget text, LineNum lineNum, int calledFromDiff ){ Line lineData ; if ( (int)lineNum < 0 ) return; lineData = &Text_Line(text) [ lineNum ]; indent ++; if ( calledFromDiff ) printf ( "\t\t\t" ); else PrintLead(); printf ( "Line : no %i : ", lineNum ); if ( lineData -> start != PASTENDPOS ) { printf ( "start %i changed %s changed_position %i past_end %s ", (int)lineData -> start, ( lineData->changed ? "yes" : "no " ), (int)lineData->changed_position, ( lineData->past_end ? "yes" : "no " ) ); if ( lineData -> extra ) { /* printf ( "extra ( NOT-SHOWING-WIDTH " ); */ printf ( "extra ( width = %i ", (int)lineData -> extra->width ); if ( lineData -> extra -> wrappedbychar ) printf ( "wrappedByChar = %c", (int)lineData -> extra->wrappedbychar ); printf ( ")" ); } } else { printf ( "empty" ); } printf ( "\n" ); indent --;}void ShowLineTable ( XmTextWidget text, LineNum lineNum, int calledFromDiff ){ XmTextLineTableRec lineData = Text_LineTable(text) [ lineNum ]; indent ++; if ( calledFromDiff ) printf ( "\t\t\t" ); else PrintLead(); printf ( "LineTable : no %i : ", lineNum ); if ( lineData.start_pos != PASTENDPOS ) { printf ( "start %i \n", (int)lineData . start_pos ); } else { printf ( "empty\n" ); } indent --;}void ShowSecondarySelectionData ( XmTextWidget text ){ if ( Text_InputData( text ) -> hasSel2 ) { PrintLead(); printf ( " Secondary Selection : hint ( x = %i, y = %i )\n", Text_InputData( text ) -> Sel2Hint.x, Text_InputData( text ) -> Sel2Hint.y ); PrintLead(); printf ( " Secondary Selection : original ( left = %i, right = %i )\n", (int) Text_InputData( text ) -> Sel2OrigLeft, (int) Text_InputData( text ) -> Sel2OrigRight ); PrintLead(); printf ( " Secondary Selection : current ( left = %i, right = %i )\n", (int) Text_InputData( text ) -> sel2Left, (int) Text_InputData( text ) -> sel2Right ); PrintLead(); printf ( " Secondary Selection : extending = %i, time of ownership = %li\n", Text_InputData( text ) -> Sel2Extending, Text_InputData( text ) -> sec_time ); }}void ShowHighlightData ( XmTextWidget text ){ int i = 0; PrintLead(); printf ( " Selection : highlight ( number = %i, max = %i ), changed = %s\n", Text_Highlight( text ) . number, Text_Highlight( text ) . maximum, Text ( text ).highlight_changed ? "yes" : "no " ); while ( i < Text_Highlight( text ) . number ) { PrintLead(); printf ( " Selection : highlight no %i ( pos %i, mode %i ) )\n", i+1, (int)Text_Highlight( text ) . list[i].position, Text_Highlight( text ) . list[i].mode ); i++; } PrintLead(); printf ( " Selection : old highlight ( number = %i, max = %i )\n", Text_OldHighlight( text ) . number, Text_OldHighlight( text ) . maximum ); i = 0; while ( i < Text_OldHighlight( text ) . number && Text_OldHighlight( text ) . maximum ) { PrintLead(); printf ( " Selection : old highlight no %i ( pos %i, mode %i ) )\n", i+1, (int) Text_OldHighlight( text ) . list[i].position, Text_OldHighlight( text ) . list[i].mode ); i++; } }void ShowSelectionData ( XmTextWidget text ){ if ( GetSrc ( text ) -> data -> hasselection ) { PrintLead(); printf ( " Selection : length = %i, button hint ( x = %i, y = %i ), extend %s\n", Text_InputData( text ) -> new_sel_length, Text_InputData( text ) -> selectionHint.x, Text_InputData( text ) -> selectionHint.y, Text_InputData( text ) -> extending ? ( Text_InputData( text ) -> extendDir == XmsdLeft ? "left " : "right" ) : "no" ); PrintLead(); printf ( " Selection : anchor = %i, original ( left = %i, right = %i )\n", (int) Text_InputData( text ) -> anchor, (int) Text_InputData( text ) -> origLeft, (int) Text_InputData( text ) -> origRight ); ShowHighlightData ( text ); }}void ShowAllSelectionData ( XmTextWidget text ){ ShowSelectionData ( text ); ShowSecondarySelectionData ( text );}void PrintTextVerifyPtr ( Widget text, String callback, XmTextVerifyPtr data ){ PrintDiffs ( (XmTextWidget)text ); PrintLead(); printf ( "callback %s", callback ); switch ( data -> reason ) { case XmCR_LOSING_FOCUS: printf ( " : reason XmCR_LOSING_FOCUS\n"); break; case XmCR_MODIFYING_TEXT_VALUE: printf ( " : reason XmCR_MODIFYING_TEXT_VALUE\n"); break; case XmCR_MOVING_INSERT_CURSOR: printf ( " : reason XmCR_MOVING_INSERT_CURSOR\n"); break; default : printf ( "PrintTextVerifyPtr: INVALID REASON \n\n" ); } printf ( "\tcurrInsert = %i\tnewInsert = %i\n", (int) data ->currInsert, (int) data ->newInsert ); if ( data -> reason != XmCR_MOVING_INSERT_CURSOR ) printf ( "\tstartPos = %i\tendPos = %i\n", (int) data ->startPos, (int) data ->endPos ); if ( data -> reason == XmCR_MODIFYING_TEXT_VALUE ) printf ( "\ttext\n\t\tlength = %i\t\tformat = %li\n\t\tptr = %s\n", data->text->length, data->text->format, data->text->ptr ); ShowAllSelectionData ( (XmTextWidget)text ); fflush (NULL);}void ShowRangeData ( XmTextWidget text, int fromComparision, Boolean maxOrNum ){ int i; int upto = maxOrNum ? text->text.repaint.maximum : text->text.repaint.number; for ( i = 0; i < upto; i++ ) { if ( fromComparision ) printf ( "\t\t" ); else PrintLead(); printf ( " Range : no. %d from position %i to position %i\n", (int)i, (int)text->text.repaint.range[i].from, (int)text->text.repaint.range[i].to ); }}void TextActionHook ( Widget w, XtPointer clientData_unused, String actionName, XEvent* event, String* params, Cardinal* noOfParams ){ if ( ! XmIsText( w ) ) return; if ( ( strncmp ( actionName, "focus", strlen("focus")) == 0 )
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -