void HelpWriterContext::enterSubSection(const std::string &title) { GMX_RELEASE_ASSERT(impl_->sectionDepth_ - 1 < static_cast<int>(std::strlen(g_titleChars)), "Too deeply nested subsections"); writeTitle(title); ++impl_->sectionDepth_; }
void TabWriter::writeProductEntry(const ProductEntry& entry) { writeBarCode(entry.barcode()); out_ << '\t'; writeAmount(entry.amount()); out_ << '\t'; writeTitle(entry.title()); out_ << '\t'; writePrice(entry.price()); out_ << '\n'; };
// ### Haupt-Einstiegspunkt int main() { // ### Setze Fenster-Titel SetConsoleTitle( TEXT("Ligaverwaltung v0.1") ); // ### Schreibe ein kleines Logo writeTitle(); // ### Rufe das Hauptmenü auf mainMenu(); // ### Beende ohne Fehler-Code return 0; }
int spadAction (void) { int code, viewCommand; float f1, f2, f3; int i1, i2, i3; if (viewAloned==yes) { close(0); return(-1); } readViewman(&viewCommand, intSize); switch (viewCommand) { case rotate: readViewman(&f1, floatSize); readViewman(&f2, floatSize); viewport->theta = f1; viewport->phi = f2; while (viewport->theta >= two_pi) viewport->theta -= two_pi; while (viewport->theta < 0.0) viewport->theta += two_pi; while (viewport->phi > pi) viewport->phi -= two_pi; while (viewport->phi <= -pi) viewport->phi += two_pi; viewport->axestheta = viewport->theta; viewport->axesphi = viewport->phi; spadDraw=yes; rotated=yes; viewport->yzOn = viewport->xzOn = viewport->xyOn = no; break; case zoom: readViewman(&f1, floatSize); viewport->scale = f1; if (viewport->scale > maxScale) viewport->scale = maxScale; else if (viewport->scale < minScale) viewport->scale = minScale; spadDraw=yes; zoomed = yes; break; case zoomx: readViewman(&f1, floatSize); readViewman(&f2, floatSize); readViewman(&f3, floatSize); viewport->scaleX = f1; viewport->scaleY = f2; viewport->scaleZ = f3; if ((viewport->scaleX == 1.0) && (viewport->scaleY == 1.0) && (viewport->scaleZ == 1.0)) { viewport->zoomXOn = viewport->zoomYOn = viewport->zoomZOn = yes; } else { if (viewport->scaleX == 1.0) viewport->zoomXOn = no; else { if (viewport->scaleX > maxScale) viewport->scaleX = maxScale; else if (viewport->scaleX < minScale) viewport->scaleX = minScale; } if (viewport->scaleY == 1.0) viewport->zoomYOn = no; else { if (viewport->scaleY > maxScale) viewport->scaleY = maxScale; else if (viewport->scaleY < minScale) viewport->scaleY = minScale; } if (viewport->scaleZ == 1.0) viewport->zoomZOn = no; else { if (viewport->scaleZ > maxScale) viewport->scaleZ = maxScale; else if (viewport->scaleZ < minScale) viewport->scaleZ = minScale; } } spadDraw=yes; zoomed = yes; break; case translate: readViewman(&(viewport->deltaX),floatSize); readViewman(&(viewport->deltaY),floatSize); if (viewport->deltaX > maxDeltaX) viewport->deltaX = maxDeltaX; else if (viewport->deltaX < -maxDeltaX) viewport->deltaX = -maxDeltaX; if (viewport->deltaY > maxDeltaY) viewport->deltaY = maxDeltaY; else if (viewport->deltaY < -maxDeltaY) viewport->deltaY = -maxDeltaY; spadDraw=yes; translated = yes; break; case modifyPOINT: readViewman(&i1,intSize); i1--; readViewman(&(refPt3D(viewData,i1)->x),floatSize); readViewman(&(refPt3D(viewData,i1)->y),floatSize); readViewman(&(refPt3D(viewData,i1)->z),floatSize); readViewman(&(refPt3D(viewData,i1)->c),floatSize); scalePoint(refPt3D(viewData,i1)); spadDraw=yes; break; case hideControl: readViewman(&i1,intSize); if (i1) { /* show control panel */ if (viewport->haveControl) XUnmapWindow(dsply,control->controlWindow); putControlPanelSomewhere(someInt); } else { /* turn off control panel */ if (viewport->haveControl) { viewport->haveControl = no; XUnmapWindow(dsply,control->controlWindow); } } break; case axesOnOff: readViewman(&i1,intSize); viewport->axesOn = i1; spadDraw=yes; if (viewData.style == smooth) { if (multiColorFlag) redoDither = yes; else redoColor = yes; } if (viewport->haveControl) drawControlPanel(); break; /* Non-uniform scaling is not in AXIOM yet. */ /* Neither is object or origin rotation. */ case perspectiveOnOff: readViewman(&i1,intSize); viewData.perspective = i1; switchedPerspective = yes; spadDraw=yes; break; case region3D: readViewman(&i1,intSize); viewport->regionOn = i1; viewData.box = i1; spadDraw=yes; if (viewport->haveControl) drawControlPanel(); redoSmooth = yes; break; case clipRegionOnOff: readViewman(&i1,intSize); viewData.clipbox = i1; spadDraw=yes; break; case clipSurfaceOnOff: readViewman(&i1,intSize); viewData.clipStuff = i1; spadDraw=yes; break; case eyeDistanceData: readViewman(&f1,floatSize); viewData.eyeDistance = f1; if (viewData.eyeDistance > maxEyeDistance) viewData.eyeDistance = maxEyeDistance; else if (viewData.eyeDistance < minEyeDistance) viewData.eyeDistance = minEyeDistance; spadDraw=yes; changedEyeDistance = yes; break; case hitherPlaneData: readViewman(&f1,floatSize); viewData.clipPlane = f1; spadDraw=yes; changedEyeDistance = yes; break; case queryVIEWPOINT: f1 = viewport->deltaX; code = check(write(Socket, &f1, floatSize)); f1 = viewport->deltaY; code = check(write(Socket, &f1, floatSize)); f1 = viewport->scale; code = check(write(Socket, &f1, floatSize)); f1 = viewport->scaleX; code = check(write(Socket, &f1, floatSize)); f1 = viewport->scaleY; code = check(write(Socket, &f1, floatSize)); f1 = viewport->scaleZ; code = check(write(Socket, &f1, floatSize)); f1 = viewport->theta; code = check(write(Socket, &f1, floatSize)); f1 = viewport->phi; code = check(write(Socket, &f1, floatSize)); break; case changeVIEWPOINT: readViewman(&f1, floatSize); readViewman(&f2, floatSize); viewport->deltaX = f1; viewport->deltaY = f2; if (viewport->deltaX > maxDeltaX) viewport->deltaX = maxDeltaX; else if (viewport->deltaX < -maxDeltaX) viewport->deltaX = -maxDeltaX; if (viewport->deltaY > maxDeltaY) viewport->deltaY = maxDeltaY; else if (viewport->deltaY < -maxDeltaY) viewport->deltaY = -maxDeltaY; translated = yes; readViewman(&f1, floatSize); viewport->scale = f1; if (viewport->scale > maxScale) viewport->scale = maxScale; else if (viewport->scale < minScale) viewport->scale = minScale; zoomed = yes; readViewman(&f1, floatSize); readViewman(&f2, floatSize); readViewman(&f3, floatSize); viewport->scaleX = f1; viewport->scaleY = f2; viewport->scaleZ = f3; if ((viewport->scaleX == 1.0) && (viewport->scaleY == 1.0) && (viewport->scaleZ == 1.0)) { viewport->zoomXOn = viewport->zoomYOn = viewport->zoomZOn = yes; } else { if (viewport->scaleX == 1.0) viewport->zoomXOn = no; else { if (viewport->scaleX > maxScale) viewport->scaleX = maxScale; else if (viewport->scaleX < minScale) viewport->scaleX = minScale; } if (viewport->scaleY == 1.0) viewport->zoomYOn = no; else { if (viewport->scaleY > maxScale) viewport->scaleY = maxScale; else if (viewport->scaleY < minScale) viewport->scaleY = minScale; } if (viewport->scaleZ == 1.0) viewport->zoomZOn = no; else { if (viewport->scaleZ > maxScale) viewport->scaleZ = maxScale; else if (viewport->scaleZ < minScale) viewport->scaleZ = minScale; } } readViewman(&f1, floatSize); readViewman(&f2, floatSize); viewData.theta = f1; viewData.phi = f2; while (viewport->theta >= two_pi) viewport->theta -= two_pi; while (viewport->theta < 0.0) viewport->theta += two_pi; while (viewport->phi > pi) viewport->phi -= two_pi; while (viewport->phi <= -pi) viewport->phi += two_pi; viewport->axestheta = viewport->theta; viewport->axesphi = viewport->phi; spadDraw=yes; rotated=yes; break; case colorDef: readViewman(&(viewport->hueOffset),intSize); readViewman(&(viewport->numberOfHues),intSize); /* spadcolors is indexed by 0 */ viewport->hueOffset --; viewport->numberOfHues --; viewport->hueTop = viewport->numberOfHues; if (viewport->hueOffset < 0) viewport->hueOffset = 0; if (viewport->hueTop < 0) viewport->hueTop = 0; if (viewport->hueOffset >= totalHues) viewport->hueOffset = totalHues-1; if (viewport->hueTop >= totalHues) viewport->hueTop = totalHues-1; viewport->numberOfHues = viewport->hueTop - viewport->hueOffset; if ((viewport->hueTop == viewport->hueOffset) && (!viewport->monoOn)) redoColor = yes; else { redoColor = no; redoDither = yes; } if (viewport->haveControl) drawColorMap(); break; case closeAll: code = check(write(Socket,&ack,intSize)); goodbye(-1); case moveViewport: readViewman(&i1,intSize); readViewman(&i2,intSize); XMoveWindow(dsply,viewport->titleWindow,i1,i2); XSync(dsply,0); break; case resizeViewport: readViewman(&i1,intSize); readViewman(&i2,intSize); XResizeWindow(dsply,viewport->titleWindow,i1,i2+titleHeight); XResizeWindow(dsply,viewport->viewWindow,i1,i2); spadDraw=yes; redoSmooth =yes; break; case transparent: case opaqueMesh: case render: case smooth: viewData.style = viewCommand; spadDraw=yes; redoSmooth =yes; break; case lightDef: readViewman(&(viewport->lightVector[0]),floatSize); readViewman(&(viewport->lightVector[1]),floatSize); readViewman(&(viewport->lightVector[2]),floatSize); normalizeVector(viewport->lightVector); movingLight = yes; drawLightingAxes(); XSync(dsply,0); break; case translucenceDef: readViewman(&backLightIntensity,floatSize); tempLightIntensity = backLightIntensity; lightIntensity = tempLightIntensity; changedIntensity = yes; drawLightTransArrow(); XSync(dsply,0); break; case changeTitle: readViewman(&i1,intSize); readViewman(viewport->title,i1); viewport->title[i1] = '\0'; writeTitle(); switch (doingPanel) { case CONTROLpanel: case CONTOURpanel: writeControlTitle(control->controlWindow); break; case VOLUMEpanel: writeControlTitle(volumeWindow); break; case LIGHTpanel: writeControlTitle(lightingWindow); break; } /* switch */ XFlush(dsply); break; case writeView: readViewman(&i1,intSize); readViewman(filename,i1); filename[i1] = '\0'; sprintf(errorStr,"writing of viewport data"); i3 = 0; readViewman(&i2,intSize); while (i2) { i3 = i3 | (1<<i2); readViewman(&i2,intSize); } if (writeViewport(i3) < 0) fprintf(stderr," Nothing was written\n"); break; case diagOnOff: readViewman(&i1,intSize); if (viewData.outlineRenderOn) { viewport->diagonals = i1; spadDraw=yes; } else { strcpy(control->message," Use this option with Outline "); writeControlMessage(); } break; case outlineOnOff: readViewman(&i1,intSize); if (viewData.style == render) { viewData.outlineRenderOn = i1; spadDraw=yes; if (viewport->haveControl) drawControlPanel(); } else { strcpy(control->message," Use this option in Shaded mode "); writeControlMessage(); } break; case spadPressedAButton: readViewman(&i1,intSize); buttonAction(i1); break; default: return(-1); } /* switch */ ack++; code = check(write(Socket,&ack,intSize)); return(0); }
/* * GenerateConfiguration - write out a config file */ vi_rc GenerateConfiguration( const char *fname, bool is_cmdline ) { FILE *fp; int i; char token[128]; const char *str; char *buff; int num; rgb c; const char *res; char tmpstr[MAX_STR]; if( fname == NULL ) { fname = CFG_NAME; } fp = fopen( fname, "w" ); if( fp == NULL ) { return( ERR_FILE_OPEN ); } isCmdLine = is_cmdline; buff = MemAllocUnsafe( VBUF_SIZE ); if( buff != NULL ) { setvbuf( fp, buff, _IOFBF, VBUF_SIZE ); } MyFprintf( fp, "#\n# %s configuration file\n# %s\n#\n", #if defined( __WIN__ ) banner1w1( "Text Editor for Windows" ), banner1w2( _VI_VERSION_ ) ); #else banner1w1( "Vi Text Editor" ), banner1w2( _VI_VERSION_ ) ); #endif if( is_cmdline ) { GetDateTimeString( token ); MyFprintf( fp, "# File generated on %s\n#\n", token ); } writeTitle( fp, "Hook script assignments" ); doHookAssign( fp, SRC_HOOK_WRITE ); doHookAssign( fp, SRC_HOOK_READ ); doHookAssign( fp, SRC_HOOK_BUFFIN ); doHookAssign( fp, SRC_HOOK_BUFFOUT ); doHookAssign( fp, SRC_HOOK_COMMAND ); doHookAssign( fp, SRC_HOOK_MODIFIED ); doHookAssign( fp, SRC_HOOK_MENU ); doHookAssign( fp, SRC_HOOK_MOUSE_LINESEL ); doHookAssign( fp, SRC_HOOK_MOUSE_CHARSEL ); writeTitle( fp, "General Settings" ); num = GetNumberOfTokens( SetVarTokens ); for( i = 0; i < num; i++ ) { if( i == SETVAR_T_TILECOLOR || i == SETVAR_T_FIGNORE || i == SETVAR_T_FILENAME ) { continue; } res = GetASetVal( GetTokenStringCVT( SetVarTokens, i, token, true ), tmpstr ); switch( i ) { case SETVAR_T_STATUSSTRING: case SETVAR_T_FILEENDSTRING: case SETVAR_T_HISTORYFILE: case SETVAR_T_TMPDIR: /* strings with possible spaces */ MyFprintf( fp, "set %s = \"%s\"\n", token, res ); break; case SETVAR_T_GADGETSTRING: if( !IsGadgetStringChanged( res ) ) break; // fall through default: MyFprintf( fp, "set %s = %s\n", token, res ); break; } } writeTitle( fp, "Boolean Settings" ); num = GetNumberOfTokens( SetFlagTokens ); for( i = 0; i < num; i++ ) { str = GetASetVal( GetTokenStringCVT( SetFlagTokens, i, token, true ), tmpstr ); MyFprintf( fp, "set %s%s\n", (*str == '0') ? "no" : "", token ); } writeTitle( fp, "Match pairs" ); for( i = INITIAL_MATCH_COUNT; i < MatchCount; i += 2 ) { MyFprintf( fp, "match /" ); outputMatchData( fp, MatchData[i] ); outputMatchData( fp, MatchData[i + 1] ); MyFprintf( fp, "\n" ); } writeTitle( fp, "Command Mode Mappings" ); doMaps( fp, KeyMaps, "" ); writeTitle( fp, "Insert Mode Mappings" ); doMaps( fp, InputKeyMaps, "!" ); writeTitle( fp, "Color Settings" ); for( i = 0; i < GetNumColors(); i++ ) { if( GetColorSetting( i, &c ) ) { MyFprintf( fp, "setcolor %d %d %d %d\n", i, c.red, c.green, c.blue ); } } #ifdef __WIN__ writeTitle( fp, "Font Settings" ); BarfFontData( fp ); #endif writeTitle( fp, "Window Configuration" ); doWindow( fp, PCL_T_COMMANDWINDOW, &cmdlinew_info, false ); doWindow( fp, PCL_T_STATUSWINDOW, &statusw_info, false ); doWindow( fp, PCL_T_COUNTWINDOW, &repcntw_info, false ); doWindow( fp, PCL_T_EDITWINDOW, &editw_info, false ); doWindow( fp, PCL_T_FILECWINDOW, &filecw_info, false ); doWindow( fp, PCL_T_DIRWINDOW, &dirw_info, false ); doWindow( fp, PCL_T_FILEWINDOW, &filelistw_info, false ); doWindow( fp, PCL_T_MESSAGEWINDOW, &messagew_info, false ); #ifndef __WIN__ doWindow( fp, PCL_T_SETWINDOW, &setw_info, false ); doWindow( fp, PCL_T_LINENUMBERWINDOW, &linenumw_info, false ); doWindow( fp, PCL_T_EXTRAINFOWINDOW, &extraw_info, false ); doWindow( fp, PCL_T_SETVALWINDOW, &setvalw_info, false ); doWindow( fp, PCL_T_MENUWINDOW, &menuw_info, false ); doWindow( fp, PCL_T_MENUBARWINDOW, &menubarw_info, true ); doWindow( fp, PCL_T_ACTIVEMENUWINDOW, &activemenu_info, true ); doWindow( fp, PCL_T_GREYEDMENUWINDOW, &greyedmenu_info, true ); doWindow( fp, PCL_T_ACTIVEGREYEDMENUWINDOW, &activegreyedmenu_info, true ); #endif writeTitle( fp, "Menu Configuration" ); BarfMenuData( fp ); #ifdef __WIN__ writeTitle( fp, "ToolBar Configuration" ); BarfToolBarData( fp ); #endif writeTitle( fp, "File Type Source" ); FTSBarfData( fp ); fclose( fp ); if( is_cmdline ) { Message1( "Configuration file \"%s\" generated", fname ); } MemFree( buff ); return( DO_NOT_CLEAR_MESSAGE_WINDOW ); } /* GenerateConfiguration */
int writeViewport (int thingsToWrite) { int i, j, k, ii, code, *anIndex; LLPoint *anLLPoint; LPoint *anLPoint; viewTriple *aPt; XWindowAttributes vwInfo; FILE *viewDataFile; char viewDirName[80], viewDataFilename[80], viewBitmapFilename[80], viewPixmapFilename[80], command[80]; XGetWindowAttributes(dsply,viewport->titleWindow,&vwInfo); sprintf(viewDirName,"%s%s",filename,".VIEW"); sprintf(command,"%s%s%s","rm -r ",viewDirName," > /dev/null 2>&1"); code = system(command); sprintf(command,"%s%s%s","mkdir ",viewDirName," > /dev/null 2>&1"); system(command); if (0) { fprintf(stderr," Error: Cannot create %s\n",viewDirName); return(-1); } else { /*** Create the data file ***/ sprintf(viewDataFilename,"%s%s",viewDirName,"/data"); if ((viewDataFile = fopen(viewDataFilename,"w")) == NULL) { fprintf(stderr," Error: Cannot create %s\n",viewDataFilename); perror("fopen"); return(-1); } else { /*** write out the view3DStruct stuff ***/ fprintf(viewDataFile,"%d\n",viewData.typeOf3D); fprintf(viewDataFile,"%g %g %g %g %g %g\n", viewData.xmin,viewData.xmax,viewData.ymin,viewData.ymax, viewData.zmin,viewData.zmax); fprintf(viewDataFile,"%s\n",viewport->title); fprintf(viewDataFile,"%g %g %g %g %g %g %g %g\n",viewport->deltaX, viewport->deltaY,viewport->scale, viewport->scaleX,viewport->scaleY,viewport->scaleZ, viewport->theta,viewport->phi); fprintf(viewDataFile,"%d %d %d %d\n",vwInfo.x,vwInfo.y,vwInfo.width, vwInfo.height); fprintf(viewDataFile,"%d %d %d %d %d %d %d\n",viewport->haveControl, viewData.style, viewport->axesOn, viewport->hueOffset,viewport->numberOfHues, viewport->diagonals, viewData.outlineRenderOn); fprintf(viewDataFile,"%g %g %g %g\n",viewport->lightVector[0], viewport->lightVector[1], viewport->lightVector[2], viewport->translucency); fprintf(viewDataFile,"%d %g\n",viewData.perspective, viewData.eyeDistance); /* write out the generalized 3D components */ fprintf(viewDataFile,"%d\n",viewData.numOfPoints); for (i=0; i<viewData.numOfPoints; i++) { aPt = refPt3D(viewData,i); fprintf(viewDataFile,"%g %g %g %g\n",aPt->x, aPt->y, aPt->z, aPt->c); } fprintf(viewDataFile,"%d\n",viewData.lllp.numOfComponents); anLLPoint = viewData.lllp.llp; for (i=0; i<viewData.lllp.numOfComponents; i++,anLLPoint++) { fprintf(viewDataFile,"%d %d\n",anLLPoint->prop.closed, anLLPoint->prop.solid); fprintf(viewDataFile,"%d\n",anLLPoint->numOfLists); anLPoint = anLLPoint->lp; for (j=0; j<anLLPoint->numOfLists; j++,anLPoint++) { fprintf(viewDataFile,"%d %d\n",anLPoint->prop.closed, anLPoint->prop.solid); fprintf(viewDataFile,"%d\n",anLPoint->numOfPoints); anIndex = anLPoint->indices; for (k=0; k<anLPoint->numOfPoints; k++,anIndex++) { fprintf(viewDataFile,"%d\n",*anIndex); } /* for points in LPoints (k) */ } /* for LPoints in LLPoints (j) */ } /* for LLPoints in LLLPoints (i) */ fclose(viewDataFile); } /* else was able to open file under the given filename */ /* write out special files */ for (ii=1; ii<numBits; ii++) { /* write.h is one-based */ if (thingsToWrite & (1<<ii)) { switch (ii) { case Bitmap: /*** Create the pixmap (bitmaps need leaf name) ***/ sprintf(viewBitmapFilename,"%s%s%s",viewDirName,"/","image.bm"); XGetWindowAttributes(dsply,viewport->viewWindow,&vwInfo); code = XWriteBitmapFile(dsply,viewBitmapFilename, viewport->titleWindow,vwInfo.width, vwInfo.height+vwInfo.border_width+20,-1,-1); break; case Pixmap: /*** Create the pixmap (bitmaps need leaf name) ***/ sprintf(viewPixmapFilename,"%s%s%s",viewDirName,"/","image.xpm"); XGetWindowAttributes(dsply,viewport->viewWindow,&vwInfo); write_pixmap_file(dsply,scrn,viewPixmapFilename, viewport->titleWindow,0,0,vwInfo.width, vwInfo.height+titleHeight); break; case Image: /*** Create the image (bitmaps need leaf name) ***/ writeImage = yes; sprintf(viewPixmapFilename,"%s%s%s",viewDirName,"/","image.xpm"); XResizeWindow(dsply,viewport->titleWindow,300,300+titleHeight); XResizeWindow(dsply,viewport->viewWindow,300,300); viewport->hueTop = totalHues-1; viewport->hueOffset = 0; viewport->numberOfHues = viewport->hueTop - viewport->hueOffset; firstTime = 1; if (viewData.style == transparent) { viewData.style = render; viewData.outlineRenderOn = 1; } else { if (viewData.style == render) viewData.outlineRenderOn = 1; } drawViewport(Xoption); writeTitle(); XGetWindowAttributes(dsply,viewport->viewWindow,&vwInfo); write_pixmap_file(dsply,scrn,viewPixmapFilename, viewport->titleWindow,0,0,vwInfo.width, vwInfo.height+titleHeight); viewport->monoOn = 1; maxGreyShade = XInitShades(dsply,scrn); firstTime = 1; drawViewport(Xoption); writeTitle(); sprintf(viewBitmapFilename,"%s%s%s",viewDirName,"/","image.bm"); code = XWriteBitmapFile(dsply,viewBitmapFilename, viewport->titleWindow,vwInfo.width, vwInfo.height+vwInfo.border_width+20,-1,-1); writeImage = no; break; case Postscript: /*** Create postscript output for viewport (in axiom3D.ps) ***/ sprintf(PSfilename,"%s%s",viewDirName,"/axiom3D.ps"); if (PSInit(viewport->viewWindow,viewport->titleWindow) == psError) return(-1); drawViewport(PSoption); /* write new script file in /tmp */ if (PSCreateFile(viewBorderWidth,viewport->viewWindow, viewport->titleWindow, viewport->title) == psError) return(-1); /* concat script & proc into axiom3D.ps */ break; } /* switch on ii */ } /* if thingsToWrite >> ii */ } /* for ii */ return(0); } /* else create directory okay */ }
/* * GenerateConfiguration - write out a config file */ vi_rc GenerateConfiguration( char *fname, bool is_cmdline ) { FILE *f; int i; char token[128]; char *str; char boolstr[3]; char *buff; int num; rgb c; char *fmt; char *res; if( fname == NULL ) { fname = CFG_NAME; } f = fopen( fname, "w" ); if( f == NULL ) { return( ERR_FILE_OPEN ); } isCmdLine = is_cmdline; buff = MemAllocUnsafe( VBUF_SIZE ); if( buff != NULL ) { setvbuf( f, buff, _IOFBF, VBUF_SIZE ); } MyFprintf( f, "#\n# WATCOM %s %s configuration file\n# %s\n#\n", TITLE, VERSIONT, AUTHOR ); if( is_cmdline ) { GetDateTimeString( token ); MyFprintf( f, "# File generated on %s\n#\n", token ); } writeTitle( f, "Hook script assignments" ); doHookAssign( f, SRC_HOOK_WRITE ); doHookAssign( f, SRC_HOOK_READ ); doHookAssign( f, SRC_HOOK_BUFFIN ); doHookAssign( f, SRC_HOOK_BUFFOUT ); doHookAssign( f, SRC_HOOK_COMMAND ); doHookAssign( f, SRC_HOOK_MODIFIED ); doHookAssign( f, SRC_HOOK_MENU ); doHookAssign( f, SRC_HOOK_MOUSE_LINESEL ); doHookAssign( f, SRC_HOOK_MOUSE_CHARSEL ); writeTitle( f, "General Settings" ); num = GetNumberOfTokens( SetTokens1 ); for( i = 0; i < num; i++ ) { if( i == SET1_T_TILECOLOR || i == SET1_T_FIGNORE || i == SET1_T_FILENAME ) { continue; } strcpy( token, GetTokenString( SetTokens1, i ) ); strlwr( token ); res = GetASetVal( token ); if( i == SET1_T_STATUSSTRING || i == SET1_T_FILEENDSTRING || i == SET1_T_HISTORYFILE || i == SET1_T_TMPDIR ) { /* strings with possible spaces */ fmt = "set %s = \"%s\"\n"; } else { fmt = "set %s = %s\n"; } MyFprintf( f, fmt, token, res ); } writeTitle( f, "Boolean Settings" ); num = GetNumberOfTokens( SetTokens2 ); for( i = 0; i < num; i++ ) { strcpy( token, GetTokenString( SetTokens2, i ) ); strlwr( token ); str = GetASetVal( token ); boolstr[0] = 0; if( str[0] == '0' ) { boolstr[0] = 'n'; boolstr[1] = 'o'; boolstr[2] = 0; } MyFprintf( f, "set %s%s\n", boolstr, token ); } writeTitle( f, "Match pairs" ); for( i = INITIAL_MATCH_COUNT; i < MatchCount; i += 2 ) { MyFprintf( f, "match /" ); outputMatchData( f, MatchData[i] ); outputMatchData( f, MatchData[i + 1] ); MyFprintf( f, "\n" ); } writeTitle( f, "Command Mode Mappings" ); doMaps( f, KeyMaps, "" ); writeTitle( f, "Insert Mode Mappings" ); doMaps( f, InputKeyMaps, "!" ); writeTitle( f, "Color Settings" ); for( i = 0; i < GetNumColors(); i++ ) { if( GetColorSetting( i, &c ) ) { MyFprintf( f, "setcolor %d %d %d %d\n", i, c.red, c.green, c.blue ); } } #ifdef __WIN__ writeTitle( f, "Font Settings" ); BarfFontData( f ); #endif writeTitle( f, "Window Configuration" ); doWindow( f, PCL_T_COMMANDWINDOW, &cmdlinew_info, FALSE ); doWindow( f, PCL_T_STATUSWINDOW, &statusw_info, FALSE ); doWindow( f, PCL_T_COUNTWINDOW, &repcntw_info, FALSE ); doWindow( f, PCL_T_EDITWINDOW, &editw_info, FALSE ); doWindow( f, PCL_T_FILECWINDOW, &filecw_info, FALSE ); doWindow( f, PCL_T_DIRWINDOW, &dirw_info, FALSE ); doWindow( f, PCL_T_FILEWINDOW, &filelistw_info, FALSE ); doWindow( f, PCL_T_MESSAGEWINDOW, &messagew_info, FALSE ); #ifndef __WIN__ doWindow( f, PCL_T_SETWINDOW, &setw_info, FALSE ); doWindow( f, PCL_T_LINENUMBERWINDOW, &linenumw_info, FALSE ); doWindow( f, PCL_T_EXTRAINFOWINDOW, &extraw_info, FALSE ); doWindow( f, PCL_T_SETVALWINDOW, &setvalw_info, FALSE ); doWindow( f, PCL_T_MENUWINDOW, &menuw_info, FALSE ); doWindow( f, PCL_T_MENUBARWINDOW, &menubarw_info, TRUE ); doWindow( f, PCL_T_ACTIVEMENUWINDOW, &activemenu_info, TRUE ); doWindow( f, PCL_T_GREYEDMENUWINDOW, &greyedmenu_info, TRUE ); doWindow( f, PCL_T_ACTIVEGREYEDMENUWINDOW, &activegreyedmenu_info, TRUE ); #endif writeTitle( f, "Menu Configuration" ); BarfMenuData( f ); #ifdef __WIN__ writeTitle( f, "ToolBar Configuration" ); BarfToolBarData( f ); #endif writeTitle( f, "File Type Source" ); FTSBarfData( f ); fclose( f ); if( is_cmdline ) { Message1( "Configuration file \"%s\" generated", fname ); } MemFree( buff ); return( DO_NOT_CLEAR_MESSAGE_WINDOW ); } /* GenerateConfiguration */
int spadAction(void) { int code,viewCommand; float f1,f2; int i1,i2,i3,viewGoAhead; static int ack = 1; if (viewAloned==yes) { close(0); return(-1); } readViewman(&viewCommand,intSize); switch (viewCommand) { case hideControl2D: readViewman(&i1,intSize); if (i1) { /* show control panel */ if (viewport->haveControl) XUnmapWindow(dsply,control->controlWindow); putControlPanelSomewhere(someInt); } else { /* turn off control panel */ if (viewport->haveControl) { viewport->haveControl = no; XUnmapWindow(dsply,control->controlWindow); } } break; case changeTitle: readViewman(&i1,intSize); readViewman(viewport->title,i1); viewport->title[i1] = '\0'; writeTitle(); writeControlTitle(); XFlush(dsply); spadDraw=no; break; case writeView: readViewman(&i1,intSize); readViewman(filename,i1); filename[i1] = '\0'; sprintf(errorStr,"writing of viewport data"); i3 = 0; readViewman(&i2,intSize); while (i2) { i3 = i3 | (1<<i2); readViewman(&i2,intSize); } if (writeViewport(i3) < 0) fprintf(stderr," Nothing was written\n"); break; case closeAll2D: code = check(write(Socket,&ack,intSize)); goodbye(-1); case ps2D: readViewman(&i1,intSize); buttonAction(viewCommand); break; case axesOnOff2D: readViewman(&i1,intSize); i1--; readViewman(&i2,intSize); graphStateArray[i1].axesOn = i2; if (graphStateArray[i1].showing) spadDraw=yes; break; case axesColor2D: readViewman(&i1,intSize); i1--; readViewman(&i2,intSize); graphStateArray[i1].axesColor = i2; if (graphStateArray[i1].showing) spadDraw=yes; break; case unitsOnOff2D: readViewman(&i1,intSize); i1--; readViewman(&i2,intSize); graphStateArray[i1].unitsOn = i2; if (graphStateArray[i1].showing) spadDraw=yes; break; case unitsColor2D: readViewman(&i1,intSize); i1--; readViewman(&i2,intSize); graphStateArray[i1].unitsColor = i2; if (graphStateArray[i1].showing) spadDraw=yes; break; case connectOnOff: readViewman(&i1,intSize); i1--; readViewman(&i2,intSize); graphStateArray[i1].connectOn = i2; if (graphStateArray[i1].showing) spadDraw=yes; break; case pointsOnOff: readViewman(&i1,intSize); i1--; readViewman(&i2,intSize); graphStateArray[i1].pointsOn = i2; if (graphStateArray[i1].showing) spadDraw=yes; break; case spline2D: readViewman(&i1,intSize); i1--; readViewman(&i2,intSize); graphStateArray[i1].splineOn = i2; if (graphStateArray[i1].showing) spadDraw=yes; break; case showing2D: readViewman(&i1,intSize); i1--; readViewman(&i2,intSize); /* simulate a button press to turn display number on/off */ graphStateArray[i1].showing = !i2; clickedOnGraph(i1,i1+graphStart); break; case scale2D: readViewman(&i1,intSize); i1--; /* passed index is [1..9] but internal representation is [0..8] */ readViewman(&f1,floatSize); readViewman(&f2,floatSize); graphStateArray[i1].scaleX = f1; graphStateArray[i1].scaleY = f2; if (graphStateArray[i1].scaleX > maxScale) graphStateArray[i1].scaleX = maxScale; else if (graphStateArray[i1].scaleX < minScale) graphStateArray[i1].scaleX = minScale; if (graphStateArray[i1].scaleY > maxScale) graphStateArray[i1].scaleY = maxScale; else if (graphStateArray[i1].scaleY < minScale) graphStateArray[i1].scaleY = minScale; if (graphStateArray[i1].showing) spadDraw=yes; break; /* scale2D */ case translate2D: readViewman(&i1,intSize); i1--; /* passed index is [1..9] but internal representation is [0..8] */ readViewman(&f1,floatSize); readViewman(&f2,floatSize); graphStateArray[i1].centerX = f1; graphStateArray[i1].centerY = f2; if (graphStateArray[i1].centerX > maxDelta) graphStateArray[i1].centerX = maxDelta; else if (graphStateArray[i1].centerX < -maxDelta) graphStateArray[i1].centerX = maxDelta; if (graphStateArray[i1].centerY > maxDelta) graphStateArray[i1].centerY = maxDelta; else if (graphStateArray[i1].centerY < -maxDelta) graphStateArray[i1].centerY = maxDelta; if (graphStateArray[i1].showing) spadDraw=yes; break; /* translate2D */ case moveViewport: readViewman(&i1,intSize); readViewman(&i2,intSize); XMoveWindow(dsply,viewport->titleWindow,i1,i2); XSync(dsply,False); break; case resizeViewport: readViewman(&i1,intSize); readViewman(&i2,intSize); XResizeWindow(dsply,viewport->titleWindow,i1,i2+titleHeight); XResizeWindow(dsply,viewport->viewWindow,i1,i2); spadDraw=yes; break; case putGraph: readViewman(&i1,intSize); /* key of graph to get */ readViewman(&i2,intSize); /* slot to drop graph onto 0..8*/ readViewman(&viewGoAhead,intSize); if (viewGoAhead < 0) { sprintf(control->message,"%s%d","Couldn't put into graph ",i2+1); writeControlMessage(); } else { sprintf(control->message,"%s%d","Dropped onto graph ",i2+1); writeControlMessage(); freeGraph(i2); graphArray[i2].key = i1; getGraphFromViewman(i2); /* simulate a button press to turn display number on and select on */ /* need !yes since it will be inverted */ graphStateArray[i2].selected = no; graphStateArray[i2].connectOn = yes; graphStateArray[i2].showing = !(graphStateArray[i2].showing); clickedOnGraph(i2,i2+graphStart); clickedOnGraphSelect(i2,i2+graphSelectStart); } break; case spadPressedAButton: readViewman(&i1,intSize); buttonAction(i1); break; default: return(-1); } /* switch */ ack++; code = check(write(Socket,&ack,intSize)); return(0); }
int writeViewport(int thingsToWrite) { FILE *viewDataFile; char viewDirName[80], viewBitmapFilename[80],viewDataFilename[80],command[80]; int i,j,k,code,ii; pointListStruct *aList; pointStruct *aPoint; XWindowAttributes vwInfo; XGetWindowAttributes(dsply,viewport->titleWindow,&vwInfo); sprintf(viewDirName,"%s%s",filename,".VIEW"); sprintf(command,"%s%s%s","rm -r ",viewDirName," > /dev/null 2>&1"); code = system(command); sprintf(command,"%s%s%s","mkdir ",viewDirName," > /dev/null 2>&1"); if (system(command)) { fprintf(stderr," Error: Cannot create %s\n",viewDirName); return(-1); } else { /*** Create the data file ***/ sprintf(viewDataFilename,"%s%s",viewDirName,"/data"); if ((viewDataFile = fopen(viewDataFilename,"w")) == NULL) { fprintf(stderr," Error: Cannot create %s\n",viewDataFilename); perror("fopen"); return(-1); } else { /*** write out the view2DStruct stuff ***/ fprintf(viewDataFile,"%d\n",view2DType); fprintf(viewDataFile,"%s\n",viewport->title); fprintf(viewDataFile,"%d %d %d %d\n",vwInfo.x,vwInfo.y, vwInfo.width,vwInfo.height); for (i=0; i<maxGraphs; i++) { fprintf(viewDataFile,"%d\n",graphArray[i].key); fprintf(viewDataFile,"%g %g\n", graphStateArray[i].scaleX,graphStateArray[i].scaleY); fprintf(viewDataFile,"%g %g\n", graphStateArray[i].deltaX,graphStateArray[i].deltaY); fprintf(viewDataFile,"%g %g\n", graphStateArray[i].centerX,graphStateArray[i].centerY); fprintf(viewDataFile,"%d %d %d %d %d %d %d\n", graphStateArray[i].pointsOn,graphStateArray[i].connectOn, graphStateArray[i].splineOn, graphStateArray[i].axesOn, graphStateArray[i].axesColor, graphStateArray[i].unitsOn, graphStateArray[i].unitsColor); fprintf(viewDataFile,"%d %d\n", graphStateArray[i].showing,graphStateArray[i].selected); } fclose(viewDataFile); for (i=0; i<maxGraphs; i++) { if (graphArray[i].key) { sprintf(viewDataFilename,"%s%s%d",viewDirName,"/graph",i); if ((viewDataFile = fopen(viewDataFilename,"w")) == NULL) { fprintf(stderr," Error: Cannot create %s\n",viewDataFilename); perror("fopen"); return(-1); } else { fprintf(viewDataFile,"%g %g %g %g\n", graphArray[i].xmin,graphArray[i].ymin, graphArray[i].xmax,graphArray[i].ymax); fprintf(viewDataFile,"%g %g\n", graphArray[i].xNorm,graphArray[i].yNorm); fprintf(viewDataFile,"%g %g\n", graphArray[i].originX,graphArray[i].originY); fprintf(viewDataFile,"%g %g\n", graphArray[i].spadUnitX,graphArray[i].spadUnitY); fprintf(viewDataFile,"%g %g\n", graphArray[i].unitX,graphArray[i].unitY); fprintf(viewDataFile,"%d\n",graphArray[i].numberOfLists); for (j=0,aList=graphArray[i].listOfListsOfPoints; j<graphArray[i].numberOfLists; j++, aList++) { fprintf(viewDataFile,"%d\n",aList->numberOfPoints); fprintf(viewDataFile,"%d %d %d\n", aList->pointColor,aList->lineColor,aList->pointSize); for (k=0,aPoint=aList->listOfPoints; k<aList->numberOfPoints; k++,aPoint++) fprintf(viewDataFile,"%g %g %g %g\n", aPoint->x,aPoint->y,aPoint->hue,aPoint->shade); } /* for j, aList */ fclose(viewDataFile); } /* else graph i */ } /* if */ } /* for */ } /* else */ /* write out special files */ for (ii=1; ii<numBits; ii++) { /* write.h is one-based */ if (thingsToWrite & (1<<ii)) { switch (ii) { case Pixmap: /*** Create the pixmap (bitmaps need leaf name) ***/ sprintf(viewBitmapFilename,"%s%s",viewDirName,"/image.xpm"); XGetWindowAttributes(dsply,viewport->viewWindow,&vwInfo); write_pixmap_file(dsply,scrn,viewBitmapFilename, viewport->titleWindow,0,0,vwInfo.width, vwInfo.height+titleHeight); break; case Bitmap: /*** Create the bitmap (bitmaps need leaf name) ***/ sprintf(viewBitmapFilename,"%s%s",viewDirName,"/image.bm"); XGetWindowAttributes(dsply,viewport->viewWindow,&vwInfo); code = XWriteBitmapFile(dsply,viewBitmapFilename, viewport->titleWindow,vwInfo.width, vwInfo.height+vwInfo.border_width+20,-1,-1); break; case Image: /*** Create the pixmap (bitmaps need leaf name) ***/ sprintf(viewBitmapFilename,"%s%s",viewDirName,"/image.xpm"); XResizeWindow(dsply,viewport->titleWindow,300,300+titleHeight); XResizeWindow(dsply,viewport->viewWindow,300,300); XGetWindowAttributes(dsply,viewport->viewWindow,&vwInfo); drawViewport(Xoption); writeTitle(); write_pixmap_file(dsply,scrn,viewBitmapFilename, viewport->titleWindow,0,0,vwInfo.width, vwInfo.height+titleHeight); /*** Create the bitmap (bitmaps need leaf name) ***/ mono = 1; drawViewport(Xoption); writeTitle(); sprintf(viewBitmapFilename,"%s%s%s",viewDirName,"/","image.bm"); code = XWriteBitmapFile(dsply,viewBitmapFilename, viewport->titleWindow,vwInfo.width, vwInfo.height+vwInfo.border_width+20,-1,-1); mono = 0; break; case Postscript: /*** Create postscript output for viewport (in axiom2D.ps) ***/ sprintf(PSfilename,"%s%s",viewDirName,"/axiom2D.ps"); if (PSInit(viewport->viewWindow,viewport->titleWindow) == psError) return (-1); drawViewport(PSoption); /* write new script file in /tmp */ if (PSCreateFile(viewBorderWidth,viewport->viewWindow, viewport->titleWindow, viewport->title) == psError) return(-1); /* concat script & proc into axiom2D.ps */ break; } /* switch on ii */ } /* if thingsToWrite >> ii */ } /* for ii */ return(0); } /* else create directory okay */ }
Book::Book(string title, string author, string year) //overloaded constructor for loading the book collection from a file into memory { writeTitle(title); writeAuthor(author); writeCopyYear(year); } // constructor for loading from memory