*** align.c.orig Tue Nov 16 09:07:09 1999 --- align.c Tue Nov 16 09:07:09 1999 *************** *** 674,677 **** --- 674,678 ---- char *GetDistrDirectMenuStr(i) int i; + /* returned string has been translated */ { char *psz=NULL, *msg=NULL; *************** *** 1504,1507 **** --- 1505,1509 ---- char *GetAlignDirectMenuStr(i) int i; + /* returned string has been translated */ { char *psz=NULL, *msg=NULL; *** arc.c.orig Tue Nov 16 09:07:10 1999 --- arc.c Tue Nov 16 09:07:10 1999 *************** *** 113,171 **** } } - - void PointsToShearScale(Corner, x_pivot, y_pivot, x_move, y_move, - x_current, y_current, x_shear, y_shear, x_scale, y_scale) - int Corner, x_pivot, y_pivot, x_move, y_move, x_current, y_current; - int *x_shear, *y_shear, *x_scale, *y_scale; - /* the returned shear value is 1000*arctan() */ - /* the returned scale value is 1000*scaling */ - { - int dx=x_current-x_move, dy=y_current-y_move; - - switch (Corner) { - case CORNER_TOP: - case CORNER_BOTTOM: - if (x_scale != NULL) *x_scale = 1000; - if (y_scale != NULL) { - *y_scale = (dy == 0 ? 1000 : - (int)(((float)(y_current-y_pivot)) / - ((float)(y_move-y_pivot))*1000.0)); - } - if (x_shear != NULL) { - *x_shear = (dx == 0 ? 0 : - (int)(atan2((double)dx,(double)y_current-y_pivot)*1000.0)); - } - if (y_shear != NULL) *y_shear = 0; - break; - case CORNER_RIGHT: - case CORNER_LEFT: - if (x_scale != NULL) { - *x_scale = (dx == 0 ? 1000 : - (int)(((float)(x_current-x_pivot)) / - ((float)(x_move-x_pivot))*1000.0)); - } - if (y_scale != NULL) *y_scale = 1000; - if (x_shear != NULL) *x_shear = 0; - if (y_shear != NULL) { - *y_shear = (dy == 0 ? 0 : - (int)(atan2((double)dy,(double)x_current-x_pivot)*1000.0)); - } - break; - default: /* scaling only, no shearing */ - if (x_scale != NULL) { - *x_scale = (dx == 0 ? 1000 : - (int)(((float)(x_current-x_pivot)) / - ((float)(x_move-x_pivot))*1000.0)); - } - if (y_scale != NULL) { - *y_scale = (dy == 0 ? 1000 : - (int)(((float)(y_current-y_pivot)) / - ((float)(y_move-y_pivot))*1000.0)); - } - if (x_shear != NULL) *x_shear = 0; - if (y_shear != NULL) *y_shear = 0; - break; - } - } void PointsToArc(xc, yc, x1, y1, x2, y2, dir, int_degree, ltx, lty, w, h, --- 113,116 ---- *** choice.c.orig Tue Nov 16 09:07:12 1999 --- choice.c Tue Nov 16 09:07:12 1999 *************** *** 2053,2057 **** TgMenuItemInfo *menu_iteminfos=modeMenuInfo.items; ! SetStringStatus(menu_iteminfos[mode].status_str); } else { SetStringStatus(""); --- 2053,2058 ---- TgMenuItemInfo *menu_iteminfos=modeMenuInfo.items; ! /* the raw status_str is English */ ! SetStringStatus(_(menu_iteminfos[mode].status_str)); } else { SetStringStatus(""); *************** *** 2064,2068 **** SetCurChoice(mode); ! SetStringStatus(menu_iteminfos[mode].status_str); } } --- 2065,2070 ---- SetCurChoice(mode); ! /* the raw status_str is English */ ! SetStringStatus(_(menu_iteminfos[mode].status_str)); } } *** drawing.c.orig Tue Nov 16 09:07:13 1999 --- drawing.c Tue Nov 16 09:07:13 1999 *************** *** 2007,2010 **** --- 2007,2011 ---- case '-': /*^#-*/ ToggleGridSystem(); break; case '=': /*^#=*/ FindAgain(); break; + case '5': /*^#5*/ InsertRightSubscript(); break; case '6': /*^#6*/ InsertRightSuperscript(); break; case '7': /*^#7*/ ToggleEqAttrShown(); break; *************** *** 2362,2367 **** } else if (strcmp(name, "RemoveVerticalOffset()") == 0) { RemoveVerticalOffset(); - } else if (strcmp(name, "InsertRightSubscript()") == 0) { - InsertRightSubscript(); } else if (strcmp(name, "InsertLeftSuperscript()") == 0) { InsertLeftSuperscript(); --- 2363,2366 ---- *** file.c.orig Tue Nov 16 09:07:15 1999 --- file.c Tue Nov 16 09:07:15 1999 *************** *** 4413,4419 **** char *FileName; { ! register int i; ! int len; ! char s[MAXPATHLENGTH+1]; if (*outputDir == '\0') return; --- 4413,4417 ---- char *FileName; { ! char *psz=NULL, s[MAXPATHLENGTH<<1]; if (*outputDir == '\0') return; *************** *** 4420,4427 **** strcpy(s, FileName); ! len = strlen(s); ! for (i=len-1; i >= 0 && s[i] != DIR_SEP; i--) ; ! if (i >= 0) { ! sprintf(FileName, "%s%c%s", outputDir, DIR_SEP, &s[i+1]); } else { sprintf(FileName, "%s%c%s", outputDir, DIR_SEP, s); --- 4418,4424 ---- strcpy(s, FileName); ! psz = UtilStrRChr(s, DIR_SEP); ! if (psz != NULL) { ! sprintf(FileName, "%s%c%s", outputDir, DIR_SEP, ++psz); } else { sprintf(FileName, "%s%c%s", outputDir, DIR_SEP, s); *************** *** 5738,5743 **** } } ! if (printingPageNum != printingLastPageNum) return TRUE; ! if (whereToPrint < MAXDEFWHERETOPRINT && whereToPrint != TEXT_FILE) { if ((whereToPrint != LATEX_FIG && whereToPrint != EPSI_FILE) || --- 5735,5745 ---- } } ! if (dumpPages) { ! if (dumpPageNum != gPagesToPrintSpec.num_pages_specified) { ! return TRUE; ! } ! } else if (printingPageNum != printingLastPageNum) { ! return TRUE; ! } if (whereToPrint < MAXDEFWHERETOPRINT && whereToPrint != TEXT_FILE) { if ((whereToPrint != LATEX_FIG && whereToPrint != EPSI_FILE) || *** menu.c.orig Tue Nov 16 09:07:18 1999 --- menu.c Tue Nov 16 09:07:18 1999 *************** *** 109,112 **** --- 109,116 ---- static int gnNumMenubarItems=0; + /* + * gpMenubarItemInfos[i].menu_str and gpMenubarItemInfos[i].status_str + * are raw English strings + */ static TgMenuItemInfo *gpMenubarItemInfos=NULL; *************** *** 1891,1894 **** --- 1895,1899 ---- TgDrawMenuItem(menu, &menuitems[new_selected]); if (menuitems[new_selected].status_str != NULL) { + /* the status_str has been translated */ SetStringStatus(menuitems[new_selected].status_str); } *************** *** 2110,2113 **** --- 2115,2119 ---- UtilFree(to_menu_item->status_str); + /* the from_menu_item->status_str has been translated */ to_menu_item->status_str = UtilStrDup(from_menu_item->status_str); if (to_menu_item->status_str == NULL) FailAllocMessage(); *************** *** 2271,2274 **** --- 2277,2281 ---- stMenuItem.cmdid = item_info->cmdid; stMenuItem.menu_str = item_info->menu_str; + /* the from_menu_item->status_str has been translated */ stMenuItem.status_str = item_info->status_str; flags |= TGMU_MASK_LTXY | TGMU_MASK_STATE | TGMU_MASK_CMDID | *************** *** 2370,2373 **** --- 2377,2381 ---- stMenuItem.cmdid = item_info->cmdid; stMenuItem.menu_str = item_info->menu_str; + /* the from_menu_item->status_str has been translated */ stMenuItem.status_str = item_info->status_str; flags |= TGMU_MASK_LTXY | TGMU_MASK_STATE | TGMU_MASK_CMDID | *************** *** 3347,3351 **** SetMouseStatusToAllNone(); } else { ! SetMouseStatus("", gpMenubarItemInfos[index].status_str, ""); } if (threeDLook) { --- 3355,3359 ---- SetMouseStatusToAllNone(); } else { ! SetMouseStatus("", _(gpMenubarItemInfos[index].status_str), ""); } if (threeDLook) { *** menuinfo.c.orig Tue Nov 16 09:07:20 1999 --- menuinfo.c Tue Nov 16 09:07:20 1999 *************** *** 68,98 **** static TgMenuItemInfo modeMenuItemInfo[] = { { (char*)(&choicePixmap[NOTHING]), NULL, ! "Enter select/move/resize object mode", NULL, CMDID_SELECTMODE }, { (char*)(&choicePixmap[DRAWTEXT]), NULL, ! "Enter draw text mode", NULL, CMDID_DRAWTEXT }, { (char*)(&choicePixmap[DRAWBOX]), NULL, ! "Enter draw rectangle mode", NULL, CMDID_DRAWBOX }, { (char*)(&choicePixmap[DRAWCORNEROVAL]), NULL, ! "Enter draw corner oval mode", NULL, CMDID_DRAWCORNEROVAL }, { (char*)(&choicePixmap[DRAWCENTEROVAL]), NULL, ! "Enter draw center oval mode", NULL, CMDID_DRAWCENTEROVAL }, { (char*)(&choicePixmap[DRAWEDGECIRCLE]), NULL, ! "Enter draw edge circle mode", NULL, CMDID_DRAWEDGEOVAL }, { (char*)(&choicePixmap[DRAWPOLY]), NULL, ! "Enter draw poly/open spline mode", NULL, CMDID_DRAWPOLY }, { (char*)(&choicePixmap[DRAWPOLYGON]), NULL, ! "Enter draw polygon/close spline mode", NULL, CMDID_DRAWPOLYGON }, { (char*)(&choicePixmap[DRAWARC]), NULL, ! "Enter draw arc mode (specify center first)", NULL, CMDID_DRAWARC }, { (char*)(&choicePixmap[DRAWEDGEARC]), NULL, ! "Enter draw arc mode (specify endpoints first)", NULL, CMDID_DRAWEDGEARC }, { (char*)(&choicePixmap[DRAWRCBOX]), NULL, ! "Enter draw rcbox mode", NULL, CMDID_DRAWRCBOX }, { (char*)(&choicePixmap[FREEHAND]), NULL, ! "Enter draw freehand poly/open spline mode", NULL, CMDID_FREEHANDMODE }, { (char*)(&choicePixmap[VERTEXMODE]), NULL, ! "Enter select/move vertices mode", NULL, CMDID_SELECTVERTEXMODE }, { (char*)(&choicePixmap[ROTATEMODE]), NULL, ! "Enter rotate/shear object mode", NULL, CMDID_ROTATESHEARMODE }, { NULL, NULL, NULL, NULL, INVALID } }; --- 68,98 ---- static TgMenuItemInfo modeMenuItemInfo[] = { { (char*)(&choicePixmap[NOTHING]), NULL, ! N_("Enter select/move/resize object mode"), NULL, CMDID_SELECTMODE }, { (char*)(&choicePixmap[DRAWTEXT]), NULL, ! N_("Enter draw text mode"), NULL, CMDID_DRAWTEXT }, { (char*)(&choicePixmap[DRAWBOX]), NULL, ! N_("Enter draw rectangle mode"), NULL, CMDID_DRAWBOX }, { (char*)(&choicePixmap[DRAWCORNEROVAL]), NULL, ! N_("Enter draw corner oval mode"), NULL, CMDID_DRAWCORNEROVAL }, { (char*)(&choicePixmap[DRAWCENTEROVAL]), NULL, ! N_("Enter draw center oval mode"), NULL, CMDID_DRAWCENTEROVAL }, { (char*)(&choicePixmap[DRAWEDGECIRCLE]), NULL, ! N_("Enter draw edge circle mode"), NULL, CMDID_DRAWEDGEOVAL }, { (char*)(&choicePixmap[DRAWPOLY]), NULL, ! N_("Enter draw poly/open spline mode"), NULL, CMDID_DRAWPOLY }, { (char*)(&choicePixmap[DRAWPOLYGON]), NULL, ! N_("Enter draw polygon/close spline mode"), NULL, CMDID_DRAWPOLYGON }, { (char*)(&choicePixmap[DRAWARC]), NULL, ! N_("Enter draw arc mode (specify center first)"), NULL, CMDID_DRAWARC }, { (char*)(&choicePixmap[DRAWEDGEARC]), NULL, ! N_("Enter draw arc mode (specify endpoints first)"), NULL, CMDID_DRAWEDGEARC }, { (char*)(&choicePixmap[DRAWRCBOX]), NULL, ! N_("Enter draw rcbox mode"), NULL, CMDID_DRAWRCBOX }, { (char*)(&choicePixmap[FREEHAND]), NULL, ! N_("Enter draw freehand poly/open spline mode"), NULL, CMDID_FREEHANDMODE }, { (char*)(&choicePixmap[VERTEXMODE]), NULL, ! N_("Enter select/move vertices mode"), NULL, CMDID_SELECTVERTEXMODE }, { (char*)(&choicePixmap[ROTATEMODE]), NULL, ! N_("Enter rotate/shear object mode"), NULL, CMDID_ROTATESHEARMODE }, { NULL, NULL, NULL, NULL, INVALID } }; *************** *** 105,117 **** static TgMenuItemInfo lineStyleMenuItemInfo[] = { { (char*)(&lineStylePixmap[LS_PLAIN]), NULL, ! "No arrows for a poly/open spline", NULL, CMDID_CHANGEALLSELLINESTYLE }, { (char*)(&lineStylePixmap[LS_RIGHT]), NULL, ! "An arrow at the end of a poly/open spline", NULL, CMDID_CHANGEALLSELLINESTYLE }, { (char*)(&lineStylePixmap[LS_LEFT]), NULL, ! "An arrow at the beginning of a poly/open spline", NULL, CMDID_CHANGEALLSELLINESTYLE }, { (char*)(&lineStylePixmap[LS_DOUBLE]), NULL, ! "Arrows at both ends of a poly/open spline", NULL, CMDID_CHANGEALLSELLINESTYLE }, { NULL, NULL, NULL, NULL, INVALID } --- 105,117 ---- static TgMenuItemInfo lineStyleMenuItemInfo[] = { { (char*)(&lineStylePixmap[LS_PLAIN]), NULL, ! N_("No arrows for a poly/open spline"), NULL, CMDID_CHANGEALLSELLINESTYLE }, { (char*)(&lineStylePixmap[LS_RIGHT]), NULL, ! N_("An arrow at the end of a poly/open spline"), NULL, CMDID_CHANGEALLSELLINESTYLE }, { (char*)(&lineStylePixmap[LS_LEFT]), NULL, ! N_("An arrow at the beginning of a poly/open spline"), NULL, CMDID_CHANGEALLSELLINESTYLE }, { (char*)(&lineStylePixmap[LS_DOUBLE]), NULL, ! N_("Arrows at both ends of a poly/open spline"), NULL, CMDID_CHANGEALLSELLINESTYLE }, { NULL, NULL, NULL, NULL, INVALID } *************** *** 122,130 **** static TgMenuItemInfo lineTypeMenuItemInfo[] = { { (char*)(&lineTypePixmap[LT_STRAIGHT]), NULL, ! "Straight line segments", NULL, CMDID_CHANGEALLSELLINETYPE }, { (char*)(&lineTypePixmap[LT_SPLINE]), NULL, ! "Open/closed splines", NULL, CMDID_CHANGEALLSELLINETYPE }, { (char*)(&lineTypePixmap[LT_INTSPLINE]), NULL, ! "Interpolated splines", NULL, CMDID_CHANGEALLSELLINETYPE }, { NULL, NULL, NULL, NULL, INVALID } }; --- 122,130 ---- static TgMenuItemInfo lineTypeMenuItemInfo[] = { { (char*)(&lineTypePixmap[LT_STRAIGHT]), NULL, ! N_("Straight line segments"), NULL, CMDID_CHANGEALLSELLINETYPE }, { (char*)(&lineTypePixmap[LT_SPLINE]), NULL, ! N_("Open/closed splines"), NULL, CMDID_CHANGEALLSELLINETYPE }, { (char*)(&lineTypePixmap[LT_INTSPLINE]), NULL, ! N_("Interpolated splines"), NULL, CMDID_CHANGEALLSELLINETYPE }, { NULL, NULL, NULL, NULL, INVALID } }; *************** *** 136,152 **** static TgMenuItemInfo horiAlignMenuItemInfo[] = { { (char*)(&alignHoriPixmap[ALIGN_N]), NULL, ! "Set horizontal alignment to none", NULL, CMDID_SETHORIZONTALALIGN }, { (char*)(&alignHoriPixmap[ALIGN_L]), NULL, ! "Set horizontal alignment to left aligned", NULL, CMDID_SETHORIZONTALALIGN }, { (char*)(&alignHoriPixmap[ALIGN_C]), NULL, ! "Set horizontal alignment to center aligned", NULL, CMDID_SETHORIZONTALALIGN }, { (char*)(&alignHoriPixmap[ALIGN_R]), NULL, ! "Set horizontal alignment to right aligned", NULL, CMDID_SETHORIZONTALALIGN }, { (char*)(&alignHoriPixmap[ALIGN_S]), NULL, ! "Set horizontal distribution to equal-spacing", NULL, CMDID_SETHORIZONTALALIGN }, { NULL, NULL, NULL, NULL, INVALID } --- 136,152 ---- static TgMenuItemInfo horiAlignMenuItemInfo[] = { { (char*)(&alignHoriPixmap[ALIGN_N]), NULL, ! N_("Set horizontal alignment to none"), NULL, CMDID_SETHORIZONTALALIGN }, { (char*)(&alignHoriPixmap[ALIGN_L]), NULL, ! N_("Set horizontal alignment to left aligned"), NULL, CMDID_SETHORIZONTALALIGN }, { (char*)(&alignHoriPixmap[ALIGN_C]), NULL, ! N_("Set horizontal alignment to center aligned"), NULL, CMDID_SETHORIZONTALALIGN }, { (char*)(&alignHoriPixmap[ALIGN_R]), NULL, ! N_("Set horizontal alignment to right aligned"), NULL, CMDID_SETHORIZONTALALIGN }, { (char*)(&alignHoriPixmap[ALIGN_S]), NULL, ! N_("Set horizontal distribution to equal-spacing"), NULL, CMDID_SETHORIZONTALALIGN }, { NULL, NULL, NULL, NULL, INVALID } *************** *** 157,173 **** static TgMenuItemInfo vertAlignMenuItemInfo[] = { { (char*)(&alignVertPixmap[ALIGN_N]), NULL, ! "Set vertical alignment to none", NULL, CMDID_SETVERTICALALIGN }, { (char*)(&alignVertPixmap[ALIGN_T]), NULL, ! "Set vertical alignment to top aligned", NULL, CMDID_SETVERTICALALIGN }, { (char*)(&alignVertPixmap[ALIGN_M]), NULL, ! "Set vertical alignment to middle aligned", NULL, CMDID_SETVERTICALALIGN }, { (char*)(&alignVertPixmap[ALIGN_B]), NULL, ! "Set vertical alignment to bottom aligned", NULL, CMDID_SETVERTICALALIGN }, { (char*)(&alignVertPixmap[ALIGN_S]), NULL, ! "Set vertical distribution to equal-spacing", NULL, CMDID_SETVERTICALALIGN }, { NULL, NULL, NULL, NULL, INVALID } --- 157,173 ---- static TgMenuItemInfo vertAlignMenuItemInfo[] = { { (char*)(&alignVertPixmap[ALIGN_N]), NULL, ! N_("Set vertical alignment to none"), NULL, CMDID_SETVERTICALALIGN }, { (char*)(&alignVertPixmap[ALIGN_T]), NULL, ! N_("Set vertical alignment to top aligned"), NULL, CMDID_SETVERTICALALIGN }, { (char*)(&alignVertPixmap[ALIGN_M]), NULL, ! N_("Set vertical alignment to middle aligned"), NULL, CMDID_SETVERTICALALIGN }, { (char*)(&alignVertPixmap[ALIGN_B]), NULL, ! N_("Set vertical alignment to bottom aligned"), NULL, CMDID_SETVERTICALALIGN }, { (char*)(&alignVertPixmap[ALIGN_S]), NULL, ! N_("Set vertical distribution to equal-spacing"), NULL, CMDID_SETVERTICALALIGN }, { NULL, NULL, NULL, NULL, INVALID } *************** *** 178,184 **** static TgMenuItemInfo moveModeMenuItemInfo[] = { { (char*)(&moveModePixmap[CONST_MOVE]), NULL, ! "Set constrained move mode", NULL, CMDID_SETMOVEMODE }, { (char*)(&moveModePixmap[UNCONST_MOVE]), NULL, ! "Set unconstrained move mode", NULL, CMDID_SETMOVEMODE }, { NULL, NULL, NULL, NULL, INVALID } }; --- 178,184 ---- static TgMenuItemInfo moveModeMenuItemInfo[] = { { (char*)(&moveModePixmap[CONST_MOVE]), NULL, ! N_("Set constrained move mode"), NULL, CMDID_SETMOVEMODE }, { (char*)(&moveModePixmap[UNCONST_MOVE]), NULL, ! N_("Set unconstrained move mode"), NULL, CMDID_SETMOVEMODE }, { NULL, NULL, NULL, NULL, INVALID } }; *************** *** 188,194 **** static TgMenuItemInfo stretchableTextModeMenuItemInfo[] = { { (char*)(&stretchableModePixmap[NO_STRETCHABLE_TEXT]), NULL, ! "Make text objects not stretchable", NULL, CMDID_SETSTRETCHTEXTMODE }, { (char*)(&stretchableModePixmap[STRETCHABLE_TEXT]), NULL, ! "Make text objects stretchable", NULL, CMDID_SETSTRETCHTEXTMODE }, { NULL, NULL, NULL, NULL, INVALID } }; --- 188,194 ---- static TgMenuItemInfo stretchableTextModeMenuItemInfo[] = { { (char*)(&stretchableModePixmap[NO_STRETCHABLE_TEXT]), NULL, ! N_("Make text objects not stretchable"), NULL, CMDID_SETSTRETCHTEXTMODE }, { (char*)(&stretchableModePixmap[STRETCHABLE_TEXT]), NULL, ! N_("Make text objects stretchable"), NULL, CMDID_SETSTRETCHTEXTMODE }, { NULL, NULL, NULL, NULL, INVALID } }; *************** *** 201,207 **** static TgMenuItemInfo pageLayoutMenuItemInfo[] = { { (char*)(&pageLayoutPixmap[PAGE_STACK]), NULL, ! "Stacked page mode", NULL, CMDID_SETPAGELAYOUTMODE }, { (char*)(&pageLayoutPixmap[PAGE_TILE]), NULL, ! "Tiled page mode", NULL, CMDID_SETPAGELAYOUTMODE }, { NULL, NULL, NULL, NULL, INVALID } }; --- 201,207 ---- static TgMenuItemInfo pageLayoutMenuItemInfo[] = { { (char*)(&pageLayoutPixmap[PAGE_STACK]), NULL, ! N_("Stacked page mode"), NULL, CMDID_SETPAGELAYOUTMODE }, { (char*)(&pageLayoutPixmap[PAGE_TILE]), NULL, ! N_("Tiled page mode"), NULL, CMDID_SETPAGELAYOUTMODE }, { NULL, NULL, NULL, NULL, INVALID } }; *************** *** 211,217 **** static TgMenuItemInfo transPatModeMenuItemInfo[] = { { (char*)(&transPatPixmap[NO_TRANSPAT_MODE]), NULL, ! "Make fill and pen patterns opaque", NULL, CMDID_SETTRANSPATMODE }, { (char*)(&transPatPixmap[TRANSPAT_MODE]), NULL, ! "Make fill and pen patterns transparent", NULL, CMDID_SETTRANSPATMODE }, { NULL, NULL, NULL, NULL, INVALID } }; --- 211,217 ---- static TgMenuItemInfo transPatModeMenuItemInfo[] = { { (char*)(&transPatPixmap[NO_TRANSPAT_MODE]), NULL, ! N_("Make fill and pen patterns opaque"), NULL, CMDID_SETTRANSPATMODE }, { (char*)(&transPatPixmap[TRANSPAT_MODE]), NULL, ! N_("Make fill and pen patterns transparent"), NULL, CMDID_SETTRANSPATMODE }, { NULL, NULL, NULL, NULL, INVALID } }; *************** *** 220,225 **** static TgMenuItemInfo pageStyleMenuItemInfo[] = { ! { N_("Portrait"), NULL, "Portrait page style", NULL, CMDID_PORTRAITMODE }, ! { N_("Landscape"), NULL, "Lanscape page style", NULL, CMDID_LANDSCAPEMODE }, { NULL, NULL, NULL, NULL, INVALID } --- 220,225 ---- static TgMenuItemInfo pageStyleMenuItemInfo[] = { ! { N_("Portrait"), NULL, N_("Portrait page style"), NULL, CMDID_PORTRAITMODE }, ! { N_("Landscape"), NULL, N_("Lanscape page style"), NULL, CMDID_LANDSCAPEMODE }, { NULL, NULL, NULL, NULL, INVALID } *************** *** 233,255 **** static TgMenuItemInfo fontStyleMenuItemInfo[] = { ! { N_("Roman"), "Alt+Cntrl+o", "Roman text style", NULL, CMDID_CHANGEALLSELFONTSTYLE }, ! { N_("Bold"), "Alt+Cntrl+b", "Bold text style", NULL, CMDID_CHANGEALLSELFONTSTYLE }, ! { N_("Italic"), "Alt+Cntrl+t", "Italic text style", NULL, CMDID_CHANGEALLSELFONTSTYLE }, ! { N_("BoldItalic"), "Alt+Cntrl+p", "Bold-italic text style", NULL, CMDID_CHANGEALLSELFONTSTYLE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Left"), "Alt+Cntrl+l", "Left justified text", NULL, CMDID_CHANGEALLSELFONTJUST }, ! { N_("Center"), "Alt+Cntrl+c", "Center justified text", NULL, CMDID_CHANGEALLSELFONTJUST }, ! { N_("Right"), "Alt+Cntrl+r", "Right justified text", NULL, CMDID_CHANGEALLSELFONTJUST }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("No Underlined"), NULL, "No underlined text", NULL, CMDID_CHANGEALLSELFONTUNDERLINE }, ! { N_("Underlined"), NULL, "Underlined text", NULL, CMDID_CHANGEALLSELFONTUNDERLINE }, { NULL, NULL, NULL, NULL, INVALID } --- 233,255 ---- static TgMenuItemInfo fontStyleMenuItemInfo[] = { ! { N_("Roman"), "Alt+Cntrl+o", N_("Roman text style"), NULL, CMDID_CHANGEALLSELFONTSTYLE }, ! { N_("Bold"), "Alt+Cntrl+b", N_("Bold text style"), NULL, CMDID_CHANGEALLSELFONTSTYLE }, ! { N_("Italic"), "Alt+Cntrl+t", N_("Italic text style"), NULL, CMDID_CHANGEALLSELFONTSTYLE }, ! { N_("BoldItalic"), "Alt+Cntrl+p", N_("Bold-italic text style"), NULL, CMDID_CHANGEALLSELFONTSTYLE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Left"), "Alt+Cntrl+l", N_("Left justified text"), NULL, CMDID_CHANGEALLSELFONTJUST }, ! { N_("Center"), "Alt+Cntrl+c", N_("Center justified text"), NULL, CMDID_CHANGEALLSELFONTJUST }, ! { N_("Right"), "Alt+Cntrl+r", N_("Right justified text"), NULL, CMDID_CHANGEALLSELFONTJUST }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("No Underlined"), NULL, N_("No underlined text"), NULL, CMDID_CHANGEALLSELFONTUNDERLINE }, ! { N_("Underlined"), NULL, N_("Underlined text"), NULL, CMDID_CHANGEALLSELFONTUNDERLINE }, { NULL, NULL, NULL, NULL, INVALID } *************** *** 261,293 **** static TgMenuItemInfo stackedPageMenuItemInfo[] = { ! { N_("Next Page"), NULL, "Go to next page", NULL, CMDID_NEXTPAGE }, ! { N_("Prev Page"), NULL, "Go to previous page", NULL, CMDID_PREVPAGE }, ! { N_("Goto Page..."), NULL, "Go to a specified page", NULL, CMDID_GOTOPAGE }, ! { N_("Name Pages..."), NULL, "Assign names to pages", NULL, CMDID_NAMEPAGES }, { N_("Edit Page File Names..."), NULL, ! "Assign file names to pages to be used for PrintOneFilePerPage()", NULL, CMDID_EDITPAGEFILENAMES }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Add Page Before..."), NULL, "Add a page before the current page", NULL, CMDID_ADDPAGEBEFORE }, ! { N_("Add Page After..."), NULL, "Add a page after the current page", NULL, CMDID_ADDPAGEAFTER }, ! { N_("Delete Current Page"), NULL, "Delete the current page", NULL, CMDID_DELETECURPAGE }, ! { N_("Delete Pages..."), NULL, "Delete user-specified pages", NULL, CMDID_DELETEPAGES }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Print One Page"), NULL, "Print the curret page", NULL, CMDID_PRINTONEPAGE }, ! { N_("Print Pages..."), NULL, "Print user-specified pages", NULL, CMDID_PRINTPAGES }, { N_("Print One File Per Page..."), NULL, ! "Print into a separate file for each page", NULL, CMDID_PRINTONEFILEPERPAGE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Specify Paper Size..."), NULL, "Set the physical size of the paper", NULL, CMDID_SPECIFYPAPERSIZE }, ! { N_("Set Paper Color..."), NULL, "Set the color of the paper", NULL, CMDID_SETPAPERCOLOR }, { NULL, NULL, NULL, NULL, INVALID } --- 261,293 ---- static TgMenuItemInfo stackedPageMenuItemInfo[] = { ! { N_("Next Page"), NULL, N_("Go to next page"), NULL, CMDID_NEXTPAGE }, ! { N_("Prev Page"), NULL, N_("Go to previous page"), NULL, CMDID_PREVPAGE }, ! { N_("Goto Page..."), NULL, N_("Go to a specified page"), NULL, CMDID_GOTOPAGE }, ! { N_("Name Pages..."), NULL, N_("Assign names to pages"), NULL, CMDID_NAMEPAGES }, { N_("Edit Page File Names..."), NULL, ! N_("Assign file names to pages to be used for PrintOneFilePerPage()"), NULL, CMDID_EDITPAGEFILENAMES }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Add Page Before..."), NULL, N_("Add a page before the current page"), NULL, CMDID_ADDPAGEBEFORE }, ! { N_("Add Page After..."), NULL, N_("Add a page after the current page"), NULL, CMDID_ADDPAGEAFTER }, ! { N_("Delete Current Page"), NULL, N_("Delete the current page"), NULL, CMDID_DELETECURPAGE }, ! { N_("Delete Pages..."), NULL, N_("Delete user-specified pages"), NULL, CMDID_DELETEPAGES }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Print One Page"), NULL, N_("Print the curret page"), NULL, CMDID_PRINTONEPAGE }, ! { N_("Print Pages..."), NULL, N_("Print user-specified pages"), NULL, CMDID_PRINTPAGES }, { N_("Print One File Per Page..."), NULL, ! N_("Print into a separate file for each page"), NULL, CMDID_PRINTONEFILEPERPAGE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Specify Paper Size..."), NULL, N_("Set the physical size of the paper"), NULL, CMDID_SPECIFYPAPERSIZE }, ! { N_("Set Paper Color..."), NULL, N_("Set the color of the paper"), NULL, CMDID_SETPAPERCOLOR }, { NULL, NULL, NULL, NULL, INVALID } *************** *** 298,310 **** static TgMenuItemInfo tiledPageMenuItemInfo[] = { { N_("Toggle Page Line Shown"), NULL, ! "Toggle the showing of page boundaries", NULL, CMDID_TOGGLEPAGELINESHOWN }, ! { N_("Specify Drawing Size..."), NULL, "Change the drawing size", NULL, CMDID_SPECIFYDRAWINGSIZE }, ! { N_("Print One Page"), NULL, "Select and print one of the pages", NULL, CMDID_PRINTONEPAGE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Specify Paper Size..."), NULL, "Set the physical size of the paper", NULL, CMDID_SPECIFYPAPERSIZE }, ! { N_("Set Paper Color..."), NULL, "Set the color of the paper", NULL, CMDID_SETPAPERCOLOR }, { NULL, NULL, NULL, NULL, INVALID } --- 298,310 ---- static TgMenuItemInfo tiledPageMenuItemInfo[] = { { N_("Toggle Page Line Shown"), NULL, ! N_("Toggle the showing of page boundaries"), NULL, CMDID_TOGGLEPAGELINESHOWN }, ! { N_("Specify Drawing Size..."), NULL, N_("Change the drawing size"), NULL, CMDID_SPECIFYDRAWINGSIZE }, ! { N_("Print One Page"), NULL, N_("Select and print one of the pages"), NULL, CMDID_PRINTONEPAGE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Specify Paper Size..."), NULL, N_("Set the physical size of the paper"), NULL, CMDID_SPECIFYPAPERSIZE }, ! { N_("Set Paper Color..."), NULL, N_("Set the color of the paper"), NULL, CMDID_SETPAPERCOLOR }, { NULL, NULL, NULL, NULL, INVALID } *************** *** 315,321 **** static TgMenuItemInfo pageMenuItemInfo[] = { { N_("Stacked Page"), TGMUITEM_PINNABLESUBMENU, ! "StackedPage Menu", &stackedPageMenuInfo, MENU_STACKEDPAGE }, { N_("Tiled Page"), TGMUITEM_PINNABLESUBMENU, ! "TiledPage Menu", &tiledPageMenuInfo, MENU_TILEDPAGE }, { NULL, NULL, NULL, NULL, INVALID } }; --- 315,321 ---- static TgMenuItemInfo pageMenuItemInfo[] = { { N_("Stacked Page"), TGMUITEM_PINNABLESUBMENU, ! N_("StackedPage Menu"), &stackedPageMenuInfo, MENU_STACKEDPAGE }, { N_("Tiled Page"), TGMUITEM_PINNABLESUBMENU, ! N_("TiledPage Menu"), &tiledPageMenuInfo, MENU_TILEDPAGE }, { NULL, NULL, NULL, NULL, INVALID } }; *************** *** 324,341 **** static TgMenuItemInfo reduceColorMenuItemInfo[] = { { N_("Reduce Colors..."), NULL, ! "Reduce the number of colors of a selected image", NULL, CMDID_REDUCECOLORS }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Set Default Color Levels..."), NULL, ! "Set the number of R G B color levels for the ``standard colors''", NULL, CMDID_SETDEFAULTCOLORLEVELS }, { N_("Reduce To Pixmap Colors..."), NULL, ! "Reduce the colors of a selected image to a the colors in an XPM file", NULL, CMDID_REDUCETOPIXMAPCOLORS }, { N_("Reduce To Default Colors"), NULL, ! "Reduce the colors of a selected image to standard colors", NULL, CMDID_REDUCETODEFAULTCOLORs }, { N_("Default Error Diffuse"), NULL, ! "Error diffuse to reduce colors of a selected image to standard colors", NULL, CMDID_DEFAULTERRORDIFFUSE }, { NULL, NULL, NULL, NULL, INVALID } --- 324,341 ---- static TgMenuItemInfo reduceColorMenuItemInfo[] = { { N_("Reduce Colors..."), NULL, ! N_("Reduce the number of colors of a selected image"), NULL, CMDID_REDUCECOLORS }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Set Default Color Levels..."), NULL, ! N_("Set the number of R G B color levels for the ``standard colors''"), NULL, CMDID_SETDEFAULTCOLORLEVELS }, { N_("Reduce To Pixmap Colors..."), NULL, ! N_("Reduce the colors of a selected image to a the colors in an XPM file"), NULL, CMDID_REDUCETOPIXMAPCOLORS }, { N_("Reduce To Default Colors"), NULL, ! N_("Reduce the colors of a selected image to standard colors"), NULL, CMDID_REDUCETODEFAULTCOLORs }, { N_("Default Error Diffuse"), NULL, ! N_("Error diffuse to reduce colors of a selected image to standard colors"), NULL, CMDID_DEFAULTERRORDIFFUSE }, { NULL, NULL, NULL, NULL, INVALID } *************** *** 345,362 **** static TgMenuItemInfo effectsMenuItemInfo[] = { ! { N_("Edge Detect"), NULL, "Perform edge-detection on a selected image", NULL, CMDID_EDGEDETECT }, ! { N_("Emboss"), NULL, "Convert a selected image to gray and then emboss", NULL, CMDID_EMBOSS }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Spread..."), NULL, "Spread the pixels of a selected image around", NULL, CMDID_SPREAD }, ! { N_("Sharpen"), NULL, "Sharpen a selected image", NULL, CMDID_SHARPEN }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Blur (3x3)"), NULL, "Blur a selected image using a 3 by 3 filter", NULL, CMDID_BLUR3 }, ! { N_("Blur (5x5)"), NULL, "Blur a selected image using a 5 by 5 filter", NULL, CMDID_BLUR5 }, ! { N_("Blur (7x7)"), NULL, "Blur a selected image using a 7 by 7 filter", NULL, CMDID_BLUR7 }, { NULL, NULL, NULL, NULL, INVALID } --- 345,362 ---- static TgMenuItemInfo effectsMenuItemInfo[] = { ! { N_("Edge Detect"), NULL, N_("Perform edge-detection on a selected image"), NULL, CMDID_EDGEDETECT }, ! { N_("Emboss"), NULL, N_("Convert a selected image to gray and then emboss"), NULL, CMDID_EMBOSS }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Spread..."), NULL, N_("Spread the pixels of a selected image around"), NULL, CMDID_SPREAD }, ! { N_("Sharpen"), NULL, N_("Sharpen a selected image"), NULL, CMDID_SHARPEN }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Blur (3x3)"), NULL, N_("Blur a selected image using a 3 by 3 filter"), NULL, CMDID_BLUR3 }, ! { N_("Blur (5x5)"), NULL, N_("Blur a selected image using a 5 by 5 filter"), NULL, CMDID_BLUR5 }, ! { N_("Blur (7x7)"), NULL, N_("Blur a selected image using a 7 by 7 filter"), NULL, CMDID_BLUR7 }, { NULL, NULL, NULL, NULL, INVALID } *************** *** 367,377 **** static TgMenuItemInfo generateMenuItemInfo[] = { { N_("Run Bggen..."), NULL, ! "Run 'bggen' to create an image using the size of a selected image", NULL, CMDID_RUNBGGEN }, { N_("Circular Bggen..."), NULL, ! "Create a gray circular image using the size of a selected image", NULL, CMDID_CIRCULARBGGEN }, { N_("Simple Rect Bggen..."), NULL, ! "Create a single-color rectanglar image using the size of selected image", NULL, CMDID_SIMPLERECTBGGEN }, { NULL, NULL, NULL, NULL, INVALID } --- 367,377 ---- static TgMenuItemInfo generateMenuItemInfo[] = { { N_("Run Bggen..."), NULL, ! N_("Run 'bggen' to create an image using the size of a selected image"), NULL, CMDID_RUNBGGEN }, { N_("Circular Bggen..."), NULL, ! N_("Create a gray circular image using the size of a selected image"), NULL, CMDID_CIRCULARBGGEN }, { N_("Simple Rect Bggen..."), NULL, ! N_("Create a single-color rectanglar image using the size of selected image"), NULL, CMDID_SIMPLERECTBGGEN }, { NULL, NULL, NULL, NULL, INVALID } *************** *** 381,441 **** static TgMenuItemInfo imageProcMenuItemInfo[] = { ! { N_("Make Gray"), NULL, "Convert a selected image into gray-scale", NULL, CMDID_MAKEGRAY }, ! { N_("Brighten/Darken..."), NULL, "Brighten or darken a selected image", NULL, CMDID_BRIGHTENDARKEN }, ! { N_("Contrast Enhance..."), NULL, "Adjust contrast of a selected image", NULL, CMDID_CONTRASTENHANCE }, ! { N_("Gamma Correct..."), NULL, "Apply gamma correction a selected image", NULL, CMDID_GAMMA }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Change Saturation..."), NULL, "Change saturation of a selected image", NULL, CMDID_CHANGESATURATION }, ! { N_("Change Hue..."), NULL, "Change hue of a selected image", NULL, CMDID_CHANGEHUE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Invert Color"), NULL, ! "Subtract every pixel of a selected image from White (in RGB-model)", NULL, CMDID_INVERTCOLOR }, { N_("Interpolate Color..."), NULL, ! "Map pixel intensities of a selected image between two specified colors", NULL, CMDID_INTERPOLATECOLOR }, { N_("Color Balance..."), NULL, ! "Balance the RGB components of a selected image", NULL, CMDID_COLORBALANCE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Reduce Number Of Colors"), TGMUITEM_SUBMENU, ! "Reduce number of colors submenu >>>", &reduceColorMenuInfo, INVALID }, { N_("Effects"), TGMUITEM_SUBMENU, ! "Effects submenu >>>", &effectsMenuInfo, INVALID }, { N_("Generate"), TGMUITEM_SUBMENU, ! "Generate submenu >>>", &generateMenuInfo, INVALID }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Regenerate Image"), NULL, ! "Regenerated a selected image", NULL, CMDID_REGENERATEIMAGE }, ! { N_("Crop Image"), NULL, "Crop a selected image", NULL, CMDID_CROPIMAGE }, { N_("Get Color"), NULL, ! "Pick a color from a selected image to be the current color", NULL, CMDID_GETCOLOR }, { N_("Replace Color"), NULL, ! "Replace a color in a selected image with the current color", NULL, CMDID_REPLACECOLOR }, { N_("Flood Fill"), NULL, ! "Flood-filling a selected image with the current color", NULL, CMDID_FLOODFILL }, { N_("Create Contour"), NULL, ! "Generate a contour from a point in a selected image", NULL, CMDID_CREATECONTOUR }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Subtract"), NULL, ! "Subtract one image from another", NULL, CMDID_SUBTRACT }, { N_("Alpha Combine"), NULL, ! "Combine 2 images using another image as the alpha channel", NULL, CMDID_ALPHACOMBINE }, ! { N_("Xor Color"), NULL, "XOR the colors of one image into another", NULL, CMDID_XORCOLORS }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Vector Warp"), NULL, ! "Warp selected image in a specified direction for a specified amount", NULL, CMDID_VECTORWARP }, { NULL, NULL, NULL, NULL, INVALID } --- 381,441 ---- static TgMenuItemInfo imageProcMenuItemInfo[] = { ! { N_("Make Gray"), NULL, N_("Convert a selected image into gray-scale"), NULL, CMDID_MAKEGRAY }, ! { N_("Brighten/Darken..."), NULL, N_("Brighten or darken a selected image"), NULL, CMDID_BRIGHTENDARKEN }, ! { N_("Contrast Enhance..."), NULL, N_("Adjust contrast of a selected image"), NULL, CMDID_CONTRASTENHANCE }, ! { N_("Gamma Correct..."), NULL, N_("Apply gamma correction a selected image"), NULL, CMDID_GAMMA }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Change Saturation..."), NULL, N_("Change saturation of a selected image"), NULL, CMDID_CHANGESATURATION }, ! { N_("Change Hue..."), NULL, N_("Change hue of a selected image"), NULL, CMDID_CHANGEHUE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Invert Color"), NULL, ! N_("Subtract every pixel of a selected image from White (in RGB-model)"), NULL, CMDID_INVERTCOLOR }, { N_("Interpolate Color..."), NULL, ! N_("Map pixel intensities of a selected image between two specified colors"), NULL, CMDID_INTERPOLATECOLOR }, { N_("Color Balance..."), NULL, ! N_("Balance the RGB components of a selected image"), NULL, CMDID_COLORBALANCE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Reduce Number Of Colors"), TGMUITEM_SUBMENU, ! N_("Reduce number of colors submenu >>>"), &reduceColorMenuInfo, INVALID }, { N_("Effects"), TGMUITEM_SUBMENU, ! N_("Effects submenu >>>"), &effectsMenuInfo, INVALID }, { N_("Generate"), TGMUITEM_SUBMENU, ! N_("Generate submenu >>>"), &generateMenuInfo, INVALID }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Regenerate Image"), NULL, ! N_("Regenerated a selected image"), NULL, CMDID_REGENERATEIMAGE }, ! { N_("Crop Image"), NULL, N_("Crop a selected image"), NULL, CMDID_CROPIMAGE }, { N_("Get Color"), NULL, ! N_("Pick a color from a selected image to be the current color"), NULL, CMDID_GETCOLOR }, { N_("Replace Color"), NULL, ! N_("Replace a color in a selected image with the current color"), NULL, CMDID_REPLACECOLOR }, { N_("Flood Fill"), NULL, ! N_("Flood-filling a selected image with the current color"), NULL, CMDID_FLOODFILL }, { N_("Create Contour"), NULL, ! N_("Generate a contour from a point in a selected image"), NULL, CMDID_CREATECONTOUR }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Subtract"), NULL, ! N_("Subtract one image from another"), NULL, CMDID_SUBTRACT }, { N_("Alpha Combine"), NULL, ! N_("Combine 2 images using another image as the alpha channel"), NULL, CMDID_ALPHACOMBINE }, ! { N_("Xor Color"), NULL, N_("XOR the colors of one image into another"), NULL, CMDID_XORCOLORS }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Vector Warp"), NULL, ! N_("Warp selected image in a specified direction for a specified amount"), NULL, CMDID_VECTORWARP }, { NULL, NULL, NULL, NULL, INVALID } *************** *** 445,453 **** static TgMenuItemInfo driverMenuItemInfo[] = { ! { N_("Solve"), "Alt+s", "Escape to driver", NULL, CMDID_SOLVE }, ! { N_("Simulate"), "Alt+y", "Escape to driver", NULL, CMDID_SIMULATE }, ! { N_("Probe"), "Alt+b", "Escape to driver", NULL, CMDID_PROBE }, ! { N_("Animate"), "Alt+u", "Escape to driver", NULL, CMDID_ANIMATE }, ! { N_("Escape"), "Alt+x", "Escape to driver", NULL, CMDID_ESCAPE }, { NULL, NULL, NULL, NULL, INVALID } }; --- 445,453 ---- static TgMenuItemInfo driverMenuItemInfo[] = { ! { N_("Solve"), "Alt+s", N_("Escape to driver"), NULL, CMDID_SOLVE }, ! { N_("Simulate"), "Alt+y", N_("Escape to driver"), NULL, CMDID_SIMULATE }, ! { N_("Probe"), "Alt+b", N_("Escape to driver"), NULL, CMDID_PROBE }, ! { N_("Animate"), "Alt+u", N_("Escape to driver"), NULL, CMDID_ANIMATE }, ! { N_("Escape"), "Alt+x", N_("Escape to driver"), NULL, CMDID_ESCAPE }, { NULL, NULL, NULL, NULL, INVALID } }; *************** *** 456,465 **** static TgMenuItemInfo browseMenuItemInfo[] = { ! { N_("Browse X Bitmap"), NULL, "Recursively read in all X11 bitmap files", NULL, CMDID_BROWSEXBITMAP }, ! { N_("Browse X Pixmap"), NULL, "Recursively read in all X11 pixmap files", NULL, CMDID_BROWSEXPIXMAP }, { N_("Browse Other..."), NULL, ! "Recursively read in all another type of files", NULL, CMDID_BROWSEOTHER }, { NULL, NULL, NULL, NULL, INVALID } }; --- 456,465 ---- static TgMenuItemInfo browseMenuItemInfo[] = { ! { N_("Browse X Bitmap"), NULL, N_("Recursively read in all X11 bitmap files"), NULL, CMDID_BROWSEXBITMAP }, ! { N_("Browse X Pixmap"), NULL, N_("Recursively read in all X11 pixmap files"), NULL, CMDID_BROWSEXPIXMAP }, { N_("Browse Other..."), NULL, ! N_("Recursively read in all another type of files"), NULL, CMDID_BROWSEOTHER }, { NULL, NULL, NULL, NULL, INVALID } }; *************** *** 468,481 **** static TgMenuItemInfo captureMenuItemInfo[] = { ! { N_("Screen Capture"), NULL, "Capture a rectangular area of the screen", NULL, CMDID_SCREENCAPTURE }, ! { N_("Full Screen Capture"), NULL, "Capture the whole screen", NULL, CMDID_FULLSCREENCAPTURE }, { N_("Delayed Full Screen Capture..."), NULL, ! "Capture the whole screen after a specified delay", NULL, CMDID_DELAYEDFULLSCREENCAPTURE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Hide During Capture"), NULL, ! "Toggle between hiding and showing tgif during capture", NULL, CMDID_TOGGLEHIDEDURINGCAPTURE }, { NULL, NULL, NULL, NULL, INVALID } --- 468,481 ---- static TgMenuItemInfo captureMenuItemInfo[] = { ! { N_("Screen Capture"), NULL, N_("Capture a rectangular area of the screen"), NULL, CMDID_SCREENCAPTURE }, ! { N_("Full Screen Capture"), NULL, N_("Capture the whole screen"), NULL, CMDID_FULLSCREENCAPTURE }, { N_("Delayed Full Screen Capture..."), NULL, ! N_("Capture the whole screen after a specified delay"), NULL, CMDID_DELAYEDFULLSCREENCAPTURE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Hide During Capture"), NULL, ! N_("Toggle between hiding and showing tgif during capture"), NULL, CMDID_TOGGLEHIDEDURINGCAPTURE }, { NULL, NULL, NULL, NULL, INVALID } *************** *** 485,510 **** static TgMenuItemInfo importMenuItemInfo[] = { ! { N_("Import..."), "Alt+p", "Embed/Import another drawing", NULL, CMDID_IMPORT }, ! { N_("Import X Bitmap..."), "Alt+Cntrl+.", "Embed/Import an X11 bitmap file", NULL, CMDID_IMPORTXBITMAP }, ! { N_("Import X Pixmap..."), "Alt+Cntrl+,", "Embed/Import an X11 pixmap file", NULL, CMDID_IMPORTXPIXMAP }, ! { N_("Import EPS File..."), "Alt+(", "Link to an PS/EPS file", NULL, CMDID_IMPORTEPSFILE }, ! { N_("Import GIF File..."), NULL, "Embed/Import a GIF file", NULL, CMDID_IMPORTGIFFILE }, ! { N_("Import PNG File..."), NULL, "Embed/Import a PNG file", NULL, CMDID_IMPORTPNGFILE }, ! { N_("Import Other File..."), NULL, "Embed/Import another type of file", NULL, CMDID_IMPORTOTHERFILE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Embed EPS File..."), NULL, "Embed/Import an PS/EPS file", NULL, CMDID_EMBEDEPSFILE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Browse"), TGMUITEM_SUBMENU, ! "Browse submenu >>>", &browseMenuInfo, INVALID }, { N_("Screen Capture"), TGMUITEM_SUBMENU, ! "Screen Capture submenu >>>", &captureMenuInfo, INVALID }, { NULL, NULL, NULL, NULL, INVALID } }; --- 485,510 ---- static TgMenuItemInfo importMenuItemInfo[] = { ! { N_("Import..."), "Alt+p", N_("Embed/Import another drawing"), NULL, CMDID_IMPORT }, ! { N_("Import X Bitmap..."), "Alt+Cntrl+.", N_("Embed/Import an X11 bitmap file"), NULL, CMDID_IMPORTXBITMAP }, ! { N_("Import X Pixmap..."), "Alt+Cntrl+,", N_("Embed/Import an X11 pixmap file"), NULL, CMDID_IMPORTXPIXMAP }, ! { N_("Import EPS File..."), "Alt+(", N_("Link to an PS/EPS file"), NULL, CMDID_IMPORTEPSFILE }, ! { N_("Import GIF File..."), NULL, N_("Embed/Import a GIF file"), NULL, CMDID_IMPORTGIFFILE }, ! { N_("Import PNG File..."), NULL, N_("Embed/Import a PNG file"), NULL, CMDID_IMPORTPNGFILE }, ! { N_("Import Other File..."), NULL, N_("Embed/Import another type of file"), NULL, CMDID_IMPORTOTHERFILE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Embed EPS File..."), NULL, N_("Embed/Import an PS/EPS file"), NULL, CMDID_EMBEDEPSFILE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Browse"), TGMUITEM_SUBMENU, ! N_("Browse submenu >>>"), &browseMenuInfo, INVALID }, { N_("Screen Capture"), TGMUITEM_SUBMENU, ! N_("Screen Capture submenu >>>"), &captureMenuInfo, INVALID }, { NULL, NULL, NULL, NULL, INVALID } }; *************** *** 513,530 **** static TgMenuItemInfo domainMenuItemInfo[] = { ! { N_("Change Domain..."), "Alt+*", "Change to a different domain", NULL, CMDID_CHANGEDOMAIN }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Edit Domain Paths..."), NULL, "Edit domain paths", NULL, CMDID_EDITDOMAINPATHS }, ! { N_("Select Default Domain..."), NULL, "Select the default domain", NULL, CMDID_SELECTDEFAULTDOMAIN }, ! { N_("Add A Domain..."), NULL, "Add a new domain", NULL, CMDID_ADDADOMAIN }, ! { N_("Delete A Domain..."), NULL, "Delete an existing domain", NULL, CMDID_DELETEADOMAIN }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Reload Domain Info From X..."), NULL, ! "Reload domain information from X defaults", NULL, CMDID_RELOADDOMAININFOFROMX }, { NULL, NULL, NULL, NULL, INVALID } --- 513,530 ---- static TgMenuItemInfo domainMenuItemInfo[] = { ! { N_("Change Domain..."), "Alt+*", N_("Change to a different domain"), NULL, CMDID_CHANGEDOMAIN }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Edit Domain Paths..."), NULL, N_("Edit domain paths"), NULL, CMDID_EDITDOMAINPATHS }, ! { N_("Select Default Domain..."), NULL, N_("Select the default domain"), NULL, CMDID_SELECTDEFAULTDOMAIN }, ! { N_("Add A Domain..."), NULL, N_("Add a new domain"), NULL, CMDID_ADDADOMAIN }, ! { N_("Delete A Domain..."), NULL, N_("Delete an existing domain"), NULL, CMDID_DELETEADOMAIN }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Reload Domain Info From X..."), NULL, ! N_("Reload domain information from X defaults"), NULL, CMDID_RELOADDOMAININFOFROMX }, { NULL, NULL, NULL, NULL, INVALID } *************** *** 538,545 **** static TgMenuItemInfo gifAnimateMenuItemInfo[] = { { N_("Export X Pixmap Deck To GIF"), NULL, ! "Export a deck of X11 pixmap images to an animated GIF file", NULL, CMDID_EXPORTXPMDECKTOGIF }, { N_("Import GIF To X Pixmap Deck..."), NULL, ! "Import an animated GIF file into a deck of X11 pixmap images", NULL, CMDID_IMPORTGIFTOXPMDECK }, { NULL, NULL, NULL, NULL, INVALID } --- 538,545 ---- static TgMenuItemInfo gifAnimateMenuItemInfo[] = { { N_("Export X Pixmap Deck To GIF"), NULL, ! N_("Export a deck of X11 pixmap images to an animated GIF file"), NULL, CMDID_EXPORTXPMDECKTOGIF }, { N_("Import GIF To X Pixmap Deck..."), NULL, ! N_("Import an animated GIF file into a deck of X11 pixmap images"), NULL, CMDID_IMPORTGIFTOXPMDECK }, { NULL, NULL, NULL, NULL, INVALID } *************** *** 551,561 **** static TgMenuItemInfo mimeMenuItemInfo[] = { { N_("Fake User Agent..."), NULL, ! "Set 'UserAgent' to be used when making an HTTP request", NULL, CMDID_FAKEUSERAGENT }, { N_("Fake Referer..."), NULL, ! "Set 'Referer' to be used when making an HTTP request", NULL, CMDID_FAKEREFERER }, { N_("Toggle Keep Alive"), NULL, ! "Toggle between using Keep-Alive and non-Keep-Alive HTTP connections", NULL, CMDID_TOGGLEKEEPALIVE }, { NULL, NULL, NULL, NULL, INVALID } --- 551,561 ---- static TgMenuItemInfo mimeMenuItemInfo[] = { { N_("Fake User Agent..."), NULL, ! N_("Set 'UserAgent' to be used when making an HTTP request"), NULL, CMDID_FAKEUSERAGENT }, { N_("Fake Referer..."), NULL, ! N_("Set 'Referer' to be used when making an HTTP request"), NULL, CMDID_FAKEREFERER }, { N_("Toggle Keep Alive"), NULL, ! N_("Toggle between using Keep-Alive and non-Keep-Alive HTTP connections"), NULL, CMDID_TOGGLEKEEPALIVE }, { NULL, NULL, NULL, NULL, INVALID } *************** *** 566,607 **** static TgMenuItemInfo fileMenuItemInfo[] = { ! { N_("New"), "Cntrl+n", "Start with a blank/new drawing", NULL, CMDID_NEW }, ! { N_("Open..."), "Cntrl+o", "Open an existing drawing", NULL, CMDID_OPEN }, { N_("Import"), TGMUITEM_SUBMENU, "Import submenu >>>", &importMenuInfo, INVALID }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Save"), "Cntrl+s", "Save current drawing", NULL, CMDID_SAVE }, { N_("Save New..."), "Alt+Cntrl+s", ! "Save current drawing in a different file", NULL, CMDID_SAVENEW }, { N_("Save Selected As..."), "Alt+~", ! "Save selected objects in a different file", NULL, CMDID_SAVESELECTEDAS }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Print"), "Cntrl+p", "Print/export current drawing", NULL, CMDID_PRINT }, { N_("Print/Export Format"), TGMUITEM_SUBMENU, ! "Select print/export format submenu >>>", &exportFormatMenuInfo, INVALID }, { N_("Set HTML Export Template..."), NULL, ! "Specify a file to be used as a template for genearting HTML files", NULL, CMDID_SETHTMLEXPORTTEMPLATE }, { N_("Print/Export In Color"), "Alt+Cntrl+k", ! "Toggle between color and black & white printing modes", NULL, CMDID_TOGGLEBWCOLORPS }, { N_("Print With Cmd..."), "Cntrl+-", ! "Print/export current drawing with a specific command", NULL, CMDID_PRINTWITHCMD }, ! { N_("Print Selected Objects"), NULL, "Print/export only selected objects", NULL, CMDID_PRINTSELECTEDOBJS }, ! { N_("Print One Page"), NULL, "Print a page in a multipage drawing", NULL, CMDID_PRINTONEPAGE }, ! { N_("Print Pages..."), NULL, "Print user-specified pages", NULL, CMDID_PRINTPAGES }, { N_("Print One File Per Page..."), NULL, ! "Print into a separate file for each page", NULL, CMDID_PRINTONEFILEPERPAGE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("GIF Animation"), TGMUITEM_SUBMENU, ! "GIFAnimation submenu >>>", &gifAnimateMenuInfo, INVALID }, #ifdef _TGIF_DBG ! { N_("Mime"), TGMUITEM_SUBMENU, "Mime submenu >>>", &mimeMenuInfo, INVALID }, #endif /* _TGIF_DBG */ --- 566,607 ---- static TgMenuItemInfo fileMenuItemInfo[] = { ! { N_("New"), "Cntrl+n", N_("Start with a blank/new drawing"), NULL, CMDID_NEW }, ! { N_("Open..."), "Cntrl+o", N_("Open an existing drawing"), NULL, CMDID_OPEN }, { N_("Import"), TGMUITEM_SUBMENU, "Import submenu >>>", &importMenuInfo, INVALID }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Save"), "Cntrl+s", N_("Save current drawing"), NULL, CMDID_SAVE }, { N_("Save New..."), "Alt+Cntrl+s", ! N_("Save current drawing in a different file"), NULL, CMDID_SAVENEW }, { N_("Save Selected As..."), "Alt+~", ! N_("Save selected objects in a different file"), NULL, CMDID_SAVESELECTEDAS }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Print"), "Cntrl+p", N_("Print/export current drawing"), NULL, CMDID_PRINT }, { N_("Print/Export Format"), TGMUITEM_SUBMENU, ! N_("Select print/export format submenu >>>"), &exportFormatMenuInfo, INVALID }, { N_("Set HTML Export Template..."), NULL, ! N_("Specify a file to be used as a template for genearting HTML files"), NULL, CMDID_SETHTMLEXPORTTEMPLATE }, { N_("Print/Export In Color"), "Alt+Cntrl+k", ! N_("Toggle between color and black & white printing modes"), NULL, CMDID_TOGGLEBWCOLORPS }, { N_("Print With Cmd..."), "Cntrl+-", ! N_("Print/export current drawing with a specific command"), NULL, CMDID_PRINTWITHCMD }, ! { N_("Print Selected Objects"), NULL, N_("Print/export only selected objects"), NULL, CMDID_PRINTSELECTEDOBJS }, ! { N_("Print One Page"), NULL, N_("Print a page in a multipage drawing"), NULL, CMDID_PRINTONEPAGE }, ! { N_("Print Pages..."), NULL, N_("Print user-specified pages"), NULL, CMDID_PRINTPAGES }, { N_("Print One File Per Page..."), NULL, ! N_("Print into a separate file for each page"), NULL, CMDID_PRINTONEFILEPERPAGE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("GIF Animation"), TGMUITEM_SUBMENU, ! N_("GIFAnimation submenu >>>"), &gifAnimateMenuInfo, INVALID }, #ifdef _TGIF_DBG ! { N_("Mime"), TGMUITEM_SUBMENU, N_("Mime submenu >>>"), &mimeMenuInfo, INVALID }, #endif /* _TGIF_DBG */ *************** *** 608,622 **** { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Print Msg Buffer..."), NULL, ! "Display/save the contents of the message window", NULL, CMDID_PRINTMSGBUFFER }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Set Export Pixel Trim..."), NULL, ! "Specify the number of pixels to trim when exporting", NULL, CMDID_SETEXPORTPIXELTRIM }, { N_("Set Template..."), NULL, ! "Select a template file be used in STACKED page mode", NULL, CMDID_SETTEMPLATE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Quit"), "Cntrl+q", "Exit <>", NULL, CMDID_QUIT }, { NULL, NULL, NULL, NULL, INVALID } }; --- 608,622 ---- { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Print Msg Buffer..."), NULL, ! N_("Display/save the contents of the message window"), NULL, CMDID_PRINTMSGBUFFER }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Set Export Pixel Trim..."), NULL, ! N_("Specify the number of pixels to trim when exporting"), NULL, CMDID_SETEXPORTPIXELTRIM }, { N_("Set Template..."), NULL, ! N_("Select a template file be used in STACKED page mode"), NULL, CMDID_SETTEMPLATE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Quit"), "Cntrl+q", N_("Exit <>"), NULL, CMDID_QUIT }, { NULL, NULL, NULL, NULL, INVALID } }; *************** *** 624,640 **** static TgMenuItemInfo transformMenuItemInfo[] = { ! { N_("Precise Scale..."), "Alt+)", "Scale selected objects", NULL, CMDID_PRECISESCALE }, ! { "Precise Scale Everything...", NULL, "Scale everything", NULL, CMDID_PRECISESCALEEVERYTHING }, { N_("Precise Rotate..."), NULL, ! "Rotate selected objects by a specified number of degrees", NULL, CMDID_PRECISEROTATE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Restore Image Width & Height"), NULL, ! "Restore a seleted bitmap/pixmap/EPS object to its original dimension", NULL, CMDID_RESTOREIMAGEWH }, { N_("No Transform"), NULL, ! "Get rid of transformations on selected simple objects", NULL, CMDID_NOTRANSFORM }, { NULL, NULL, NULL, NULL, INVALID } --- 624,640 ---- static TgMenuItemInfo transformMenuItemInfo[] = { ! { N_("Precise Scale..."), "Alt+)", N_("Scale selected objects"), NULL, CMDID_PRECISESCALE }, ! { "Precise Scale Everything...", NULL, N_("Scale everything"), NULL, CMDID_PRECISESCALEEVERYTHING }, { N_("Precise Rotate..."), NULL, ! N_("Rotate selected objects by a specified number of degrees"), NULL, CMDID_PRECISEROTATE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Restore Image Width & Height"), NULL, ! N_("Restore a seleted bitmap/pixmap/EPS object to its original dimension"), NULL, CMDID_RESTOREIMAGEWH }, { N_("No Transform"), NULL, ! N_("Get rid of transformations on selected simple objects"), NULL, CMDID_NOTRANSFORM }, { NULL, NULL, NULL, NULL, INVALID } *************** *** 645,667 **** static TgMenuItemInfo bitPixmapMenuItemInfo[] = { { N_("Invert X Bitmap"), "Alt+Cntrl+f", ! "Invert pixels for selected bitmap objects", NULL, CMDID_INVERTXBITMAP }, { N_("Cut Bit/Pixmap..."), "Alt+;", ! "Trim/scale a selected bitmap/pixmap object", NULL, CMDID_CUTBITPIXMAP }, { N_("Break Up Bit/Pixmap..."), NULL, ! "Break selected bitmap/pixmap object into smaller objects", NULL, CMDID_BREAKUPBITPIXMAP }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Export Half Tone Bitmap"), NULL, ! "Use Floyd-Steinberg half-tone method when exporting an X11 bitmap file", NULL, CMDID_EXPORTHALFTONEBITMAP }, { N_("Export Threshold Bitmap"), NULL, ! "Use simple thresholding method when exporting an X11 bitmap file", NULL, CMDID_EXPORTTHRESHOLDBITMAP }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Set Export Bitmap Threshold..."), NULL, ! "Set bitmap threshold value for the simple thresholding method", NULL, CMDID_SETEXPORTBITMAPTHRESHOLD }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Update EPS"), NULL, "Refresh a selected EPS object", NULL, CMDID_UPDATEEPS }, { NULL, NULL, NULL, NULL, INVALID } --- 645,667 ---- static TgMenuItemInfo bitPixmapMenuItemInfo[] = { { N_("Invert X Bitmap"), "Alt+Cntrl+f", ! N_("Invert pixels for selected bitmap objects"), NULL, CMDID_INVERTXBITMAP }, { N_("Cut Bit/Pixmap..."), "Alt+;", ! N_("Trim/scale a selected bitmap/pixmap object"), NULL, CMDID_CUTBITPIXMAP }, { N_("Break Up Bit/Pixmap..."), NULL, ! N_("Break selected bitmap/pixmap object into smaller objects"), NULL, CMDID_BREAKUPBITPIXMAP }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Export Half Tone Bitmap"), NULL, ! N_("Use Floyd-Steinberg half-tone method when exporting an X11 bitmap file"), NULL, CMDID_EXPORTHALFTONEBITMAP }, { N_("Export Threshold Bitmap"), NULL, ! N_("Use simple thresholding method when exporting an X11 bitmap file"), NULL, CMDID_EXPORTTHRESHOLDBITMAP }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Set Export Bitmap Threshold..."), NULL, ! N_("Set bitmap threshold value for the simple thresholding method"), NULL, CMDID_SETEXPORTBITMAPTHRESHOLD }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Update EPS"), NULL, N_("Refresh a selected EPS object"), NULL, CMDID_UPDATEEPS }, { NULL, NULL, NULL, NULL, INVALID } *************** *** 672,693 **** static TgMenuItemInfo polyMenuItemInfo[] = { { N_("Delete Point"), "Alt+Cntrl+d", ! "Delete vertices from a poly/polygon/spline", NULL, CMDID_DELETEPOINT }, ! { N_("Add Point"), "Alt+Cntrl+a", "Add vertices to a polygon/polygon/spline", NULL, CMDID_ADDPOINT }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Convert Interpolated Spline"), NULL, ! "Convert selected interpolated splines to regular splines", NULL, CMDID_CONVERTINTSPLINE }, { N_("Smooth<->Hinge"), NULL, ! "Toggle smooth/hinge vertices for a selected poly/polygon/spline", NULL, CMDID_TOGGLESMOOTHHINGE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Join Poly"), NULL, "Join polylines or open-splines at endpoints", NULL, CMDID_JOINPOLY }, { N_("Cut Poly"), NULL, ! "Cut a poly/polygon at a vertex into two pieces", NULL, CMDID_CUTPOLY }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Make Regular Polygon..."), "Alt+\"", ! "Make a selected polygon/closed spline into a regular one", NULL, CMDID_MAKEREGPOLYGON }, { NULL, NULL, NULL, NULL, INVALID } --- 672,693 ---- static TgMenuItemInfo polyMenuItemInfo[] = { { N_("Delete Point"), "Alt+Cntrl+d", ! N_("Delete vertices from a poly/polygon/spline"), NULL, CMDID_DELETEPOINT }, ! { N_("Add Point"), "Alt+Cntrl+a", N_("Add vertices to a polygon/polygon/spline"), NULL, CMDID_ADDPOINT }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Convert Interpolated Spline"), NULL, ! N_("Convert selected interpolated splines to regular splines"), NULL, CMDID_CONVERTINTSPLINE }, { N_("Smooth<->Hinge"), NULL, ! N_("Toggle smooth/hinge vertices for a selected poly/polygon/spline"), NULL, CMDID_TOGGLESMOOTHHINGE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Join Poly"), NULL, N_("Join polylines or open-splines at endpoints"), NULL, CMDID_JOINPOLY }, { N_("Cut Poly"), NULL, ! N_("Cut a poly/polygon at a vertex into two pieces"), NULL, CMDID_CUTPOLY }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Make Regular Polygon..."), "Alt+\"", ! N_("Make a selected polygon/closed spline into a regular one"), NULL, CMDID_MAKEREGPOLYGON }, { NULL, NULL, NULL, NULL, INVALID } *************** *** 698,739 **** static TgMenuItemInfo textMenuItemInfo[] = { { N_("Break Up Text"), "Alt+#", ! "Break up selected text objects into one-character text objects", NULL, CMDID_BREAKUPTEXT }, { N_("Set Text Fill Pattern Color"), NULL, ! "Set the fill pattern color of a text object to be the current color", NULL, CMDID_SETTEXTFILLPATTERNCOLOR }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Insert Right Superscript"), "Alt+Cntrl+6", ! "Insert superscript to the right of the text cursor", NULL, CMDID_INSERTRIGHTSUPERSCRIPT }, ! { N_("Insert Right Subscript"), NULL, ! "Insert subscript to the right of the text cursor", NULL, CMDID_INSERTRIGHTSUBSCRIPT }, { N_("Insert Left Superscript"), NULL, ! "Insert superscript to the left of the text cursor", NULL, CMDID_INSERTLEFTSUPERSCRIPT }, { N_("Insert Left Subscript"), NULL, ! "Insert subscript to the left of the text cursor", NULL, CMDID_INSERTLEFTSUBSCRIPT }, { N_("Insert Center Superscript"), NULL, ! "Insert superscript above the text cursor", NULL, CMDID_INSERTCENTERSUPERSCRIPT }, { N_("Insert Center Subscript"), NULL, ! "Insert subscript below the text cursor", NULL, CMDID_INSERTCENTERSUBSCRIPT }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Insert Thin Space..."), NULL, ! "Insert a think space at the text cursor", NULL, CMDID_INSERTTHINSPACE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Insert Vertical Offset..."), NULL, ! "Insert a vertical offset at the text cursor", NULL, CMDID_INSERTVERTICALOFFSET }, { N_("Remove Vertical Offset..."), NULL, ! "Remove any vertical offset at the text cursor", NULL, CMDID_REMOVEVERTICALOFFSET }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Set Script Fraction"), NULL, ! "Set the relative size of super/subscript text", NULL, CMDID_SETSCRIPTFRACTION }, { NULL, NULL, NULL, NULL, INVALID } --- 698,739 ---- static TgMenuItemInfo textMenuItemInfo[] = { { N_("Break Up Text"), "Alt+#", ! N_("Break up selected text objects into one-character text objects"), NULL, CMDID_BREAKUPTEXT }, { N_("Set Text Fill Pattern Color"), NULL, ! N_("Set the fill pattern color of a text object to be the current color"), NULL, CMDID_SETTEXTFILLPATTERNCOLOR }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Insert Right Superscript"), "Alt+Cntrl+6", ! N_("Insert superscript to the right of the text cursor"), NULL, CMDID_INSERTRIGHTSUPERSCRIPT }, ! { N_("Insert Right Subscript"), "Alt+Cntrl+5", ! N_("Insert subscript to the right of the text cursor"), NULL, CMDID_INSERTRIGHTSUBSCRIPT }, { N_("Insert Left Superscript"), NULL, ! N_("Insert superscript to the left of the text cursor"), NULL, CMDID_INSERTLEFTSUPERSCRIPT }, { N_("Insert Left Subscript"), NULL, ! N_("Insert subscript to the left of the text cursor"), NULL, CMDID_INSERTLEFTSUBSCRIPT }, { N_("Insert Center Superscript"), NULL, ! N_("Insert superscript above the text cursor"), NULL, CMDID_INSERTCENTERSUPERSCRIPT }, { N_("Insert Center Subscript"), NULL, ! N_("Insert subscript below the text cursor"), NULL, CMDID_INSERTCENTERSUBSCRIPT }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Insert Thin Space..."), NULL, ! N_("Insert a think space at the text cursor"), NULL, CMDID_INSERTTHINSPACE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Insert Vertical Offset..."), NULL, ! N_("Insert a vertical offset at the text cursor"), NULL, CMDID_INSERTVERTICALOFFSET }, { N_("Remove Vertical Offset..."), NULL, ! N_("Remove any vertical offset at the text cursor"), NULL, CMDID_REMOVEVERTICALOFFSET }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Set Script Fraction"), NULL, ! N_("Set the relative size of super/subscript text"), NULL, CMDID_SETSCRIPTFRACTION }, { NULL, NULL, NULL, NULL, INVALID } *************** *** 743,756 **** static TgMenuItemInfo createObjectMenuItemInfo[] = { ! { N_("Input Poly Pts"), NULL, "Read points from terminal and create a poly", NULL, CMDID_INPUTPOLYPTS }, { N_("Input Polygon Pts"), NULL, ! "Read points from terminal and create a polygon", NULL, CMDID_INPUTPOLYGONPTS }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Specify An Arc..."), "Alt+9", "Create and specify an arc", NULL, CMDID_SPECIFYANARC }, { N_("Get Bounding Box"), NULL, ! "Get rectangular bounding boxes of selected objects", NULL, CMDID_GETBOUNDINGBOX }, { NULL, NULL, NULL, NULL, INVALID } --- 743,756 ---- static TgMenuItemInfo createObjectMenuItemInfo[] = { ! { N_("Input Poly Pts"), NULL, N_("Read points from terminal and create a poly"), NULL, CMDID_INPUTPOLYPTS }, { N_("Input Polygon Pts"), NULL, ! N_("Read points from terminal and create a polygon"), NULL, CMDID_INPUTPOLYGONPTS }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Specify An Arc..."), "Alt+9", N_("Create and specify an arc"), NULL, CMDID_SPECIFYANARC }, { N_("Get Bounding Box"), NULL, ! N_("Get rectangular bounding boxes of selected objects"), NULL, CMDID_GETBOUNDINGBOX }, { NULL, NULL, NULL, NULL, INVALID } *************** *** 761,823 **** static TgMenuItemInfo editMenuItemInfo[] = { ! { N_("Redraw"), "Cntrl+r", "Redraw canvas window", NULL, CMDID_REDRAW }, ! { N_("Duplicate"), "Cntrl+d", "Duplicate selected objects", NULL, CMDID_DUPLICATE }, ! { N_("Delete"), "Cntrl+x", "Delete selected objects", NULL, CMDID_DELETE }, ! { N_("Select All"), "Cntrl+a", "Select all objects on the current page", NULL, CMDID_SELECTALL }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Undo"), "Cntrl+z", "Undo the most recent command", NULL, CMDID_UNDO }, ! { N_("Redo"), "Cntrl+y", "Redo the most undone command", NULL, CMDID_REDO }, ! { N_("Flush Undo Buffer"), NULL, "Flush undo buffer and unused colors", NULL, CMDID_FLUSHUNDOBUFFER }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Copy"), "Cntrl+c", "Copy selected objects into the cut buffer", NULL, CMDID_COPY }, { N_("Copy Plain Text As Object"), NULL, ! "Copy highlighted plain text as an object into the cut buffer", NULL, CMDID_COPYPLAINTEXTASOBJECT }, ! { N_("Cut"), NULL, "Cut selected objects into the cut buffer", NULL, CMDID_CUT }, ! { N_("Paste"), "Cntrl+v", "Paste from the cut buffer", NULL, CMDID_PASTE }, { N_("Paste From File..."), NULL, ! "Select a file and paste the content as text", NULL, CMDID_PASTEFROMFILE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Shape"), TGMUITEM_PINNABLESUBMENU, ! "Shape submenu >>>", &shapeMenuInfo, MENU_SHAPE }, ! { N_("Set Shape Shadow..."), NULL, "Specify the shadow for shapes", NULL, CMDID_SETSHAPESHADOW }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Image Proc"), TGMUITEM_PINNABLESUBMENU, ! "ImageProc submenu >>>", &imageProcMenuInfo, MENU_IMAGEPROC }, { N_("Properties"), TGMUITEM_PINNABLESUBMENU, ! "Properties submenu >>>", &propertiesMenuInfo, MENU_PROPERTIES }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Transformation"), TGMUITEM_SUBMENU, ! "Transformation submenu >>>", &transformMenuInfo, INVALID }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Bitmap/Pixmap/EPS"), TGMUITEM_SUBMENU, ! "Bitmap/Pixmap/EPS submenu >>>", &bitPixmapMenuInfo, INVALID }, { N_("Poly/Polygon"), TGMUITEM_SUBMENU, ! "Poly/Polygon submenu >>>", &polyMenuInfo, INVALID }, ! { N_("Text"), TGMUITEM_SUBMENU, "Text submenu >>>", &textMenuInfo, INVALID }, { N_("Create Object"), TGMUITEM_SUBMENU, ! "Create object submenu >>>", &createObjectMenuInfo, INVALID }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Push Current Choice"), "Cntrl+e", "Save/restore current drawing mode", NULL, CMDID_PUSHCURCHOICE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Find Case Sensitive..."), "Alt+Cntrl+0", ! "Find string in visible text objects (case sensitive)", NULL, CMDID_FINDCASESENSITIVE }, { N_("Find No Case..."), "Alt+Cntrl+9", ! "Find string in visible text objects (case insensitive)", NULL, CMDID_FINDNOCASE }, ! { N_("Find Again"), "Alt+Cntrl+=", "Repeat the last Find command", NULL, CMDID_FINDAGAIN }, /* { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { "ConnectPins", NULL, "Connect pins", NULL, CMDID_CONNECTPINS }, */ { NULL, NULL, NULL, NULL, INVALID } --- 761,823 ---- static TgMenuItemInfo editMenuItemInfo[] = { ! { N_("Redraw"), "Cntrl+r", N_("Redraw canvas window"), NULL, CMDID_REDRAW }, ! { N_("Duplicate"), "Cntrl+d", N_("Duplicate selected objects"), NULL, CMDID_DUPLICATE }, ! { N_("Delete"), "Cntrl+x", N_("Delete selected objects"), NULL, CMDID_DELETE }, ! { N_("Select All"), "Cntrl+a", N_("Select all objects on the current page"), NULL, CMDID_SELECTALL }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Undo"), "Cntrl+z", N_("Undo the most recent command"), NULL, CMDID_UNDO }, ! { N_("Redo"), "Cntrl+y", N_("Redo the most undone command"), NULL, CMDID_REDO }, ! { N_("Flush Undo Buffer"), NULL, N_("Flush undo buffer and unused colors"), NULL, CMDID_FLUSHUNDOBUFFER }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Copy"), "Cntrl+c", N_("Copy selected objects into the cut buffer"), NULL, CMDID_COPY }, { N_("Copy Plain Text As Object"), NULL, ! N_("Copy highlighted plain text as an object into the cut buffer"), NULL, CMDID_COPYPLAINTEXTASOBJECT }, ! { N_("Cut"), NULL, N_("Cut selected objects into the cut buffer"), NULL, CMDID_CUT }, ! { N_("Paste"), "Cntrl+v", N_("Paste from the cut buffer"), NULL, CMDID_PASTE }, { N_("Paste From File..."), NULL, ! N_("Select a file and paste the content as text"), NULL, CMDID_PASTEFROMFILE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Shape"), TGMUITEM_PINNABLESUBMENU, ! N_("Shape submenu >>>"), &shapeMenuInfo, MENU_SHAPE }, ! { N_("Set Shape Shadow..."), NULL, N_("Specify the shadow for shapes"), NULL, CMDID_SETSHAPESHADOW }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Image Proc"), TGMUITEM_PINNABLESUBMENU, ! N_("ImageProc submenu >>>"), &imageProcMenuInfo, MENU_IMAGEPROC }, { N_("Properties"), TGMUITEM_PINNABLESUBMENU, ! N_("Properties submenu >>>"), &propertiesMenuInfo, MENU_PROPERTIES }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Transformation"), TGMUITEM_SUBMENU, ! N_("Transformation submenu >>>"), &transformMenuInfo, INVALID }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Bitmap/Pixmap/EPS"), TGMUITEM_SUBMENU, ! N_("Bitmap/Pixmap/EPS submenu >>>"), &bitPixmapMenuInfo, INVALID }, { N_("Poly/Polygon"), TGMUITEM_SUBMENU, ! N_("Poly/Polygon submenu >>>"), &polyMenuInfo, INVALID }, ! { N_("Text"), TGMUITEM_SUBMENU, N_("Text submenu >>>"), &textMenuInfo, INVALID }, { N_("Create Object"), TGMUITEM_SUBMENU, ! N_("Create object submenu >>>"), &createObjectMenuInfo, INVALID }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Push Current Choice"), "Cntrl+e", N_("Save/restore current drawing mode"), NULL, CMDID_PUSHCURCHOICE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Find Case Sensitive..."), "Alt+Cntrl+0", ! N_("Find string in visible text objects (case sensitive)"), NULL, CMDID_FINDCASESENSITIVE }, { N_("Find No Case..."), "Alt+Cntrl+9", ! N_("Find string in visible text objects (case insensitive)"), NULL, CMDID_FINDNOCASE }, ! { N_("Find Again"), "Alt+Cntrl+=", N_("Repeat the last Find command"), NULL, CMDID_FINDAGAIN }, /* { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("ConnectPins", NULL, "Connect pins", NULL, CMDID_CONNECTPINS }, */ { NULL, NULL, NULL, NULL, INVALID } *************** *** 826,846 **** static TgMenuItemInfo alignMenuItemInfo[] = { ! { N_("Align Objects Top"), "Alt+{", "Align top sides of selected objects", NULL, CMDID_ALIGNOBJSTOP }, { N_("Align Objects Middle"), "Alt++", ! "Align vertical centers of selected objects", NULL, CMDID_ALIGNOBJSMIDDLE }, { N_("Align Objects Bottom"), "Alt+}", ! "Align bottom sides of selected objects", NULL, CMDID_ALIGNOBJSBOTTOM }, ! { N_("Align Objects Left"), "Alt+[", "Align left sides of selected objects", NULL, CMDID_ALIGNOBJSLEFT }, { N_("Align Objects Center"), "Alt+=", ! "Align horizontal centers of selected objects", NULL, CMDID_ALIGNOBJSCENTER }, { N_("Align Objects Right"), "Alt+]", ! "Align right sides of selected objects", NULL, CMDID_ALIGNOBJSRIGHT }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Center An End Point"), NULL, ! "Move an endpoint of a selected poly to the center of another object", NULL, CMDID_CENTERANENDPOINT }, { NULL, NULL, NULL, NULL, INVALID } --- 826,846 ---- static TgMenuItemInfo alignMenuItemInfo[] = { ! { N_("Align Objects Top"), "Alt+{", N_("Align top sides of selected objects"), NULL, CMDID_ALIGNOBJSTOP }, { N_("Align Objects Middle"), "Alt++", ! N_("Align vertical centers of selected objects"), NULL, CMDID_ALIGNOBJSMIDDLE }, { N_("Align Objects Bottom"), "Alt+}", ! N_("Align bottom sides of selected objects"), NULL, CMDID_ALIGNOBJSBOTTOM }, ! { N_("Align Objects Left"), "Alt+[", N_("Align left sides of selected objects"), NULL, CMDID_ALIGNOBJSLEFT }, { N_("Align Objects Center"), "Alt+=", ! N_("Align horizontal centers of selected objects"), NULL, CMDID_ALIGNOBJSCENTER }, { N_("Align Objects Right"), "Alt+]", ! N_("Align right sides of selected objects"), NULL, CMDID_ALIGNOBJSRIGHT }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Center An End Point"), NULL, ! N_("Move an endpoint of a selected poly to the center of another object"), NULL, CMDID_CENTERANENDPOINT }, { NULL, NULL, NULL, NULL, INVALID } *************** *** 851,874 **** static TgMenuItemInfo sizeMenuItemInfo[] = { { N_("Size To Widest"), NULL, ! "Resize all selected objects to be as wide as the widest one", NULL, CMDID_SIZETOWIDEST }, { N_("Size To Narrowest"), NULL, ! "Resize all selected objects to be as narrow as the narrowest one", NULL, CMDID_SIZETONARROWEST }, { N_("Size To Tallest"), NULL, ! "Resize all selected objects to be as tall as the tallest one", NULL, CMDID_SIZETOTALLEST }, { N_("Size To Shortest"), NULL, ! "Resize all selected objects to be as short as the shortest one", NULL, CMDID_SIZETOSHORTEST }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Size To Given Width & Height..."), NULL, ! "Resize all selected objects to a specified width and height", NULL, CMDID_SIZETOGIVENWIDTHHEIGHT }, { N_("Size To Given Width..."), NULL, ! "Resize all selected objects to a specified width", NULL, CMDID_SIZETOGIVENWIDTH }, { N_("Size To Given Height..."), NULL, ! "Resize all selected objects to a specified height", NULL, CMDID_SIZETOGIVENHEIGHT }, { NULL, NULL, NULL, NULL, INVALID } --- 851,874 ---- static TgMenuItemInfo sizeMenuItemInfo[] = { { N_("Size To Widest"), NULL, ! N_("Resize all selected objects to be as wide as the widest one"), NULL, CMDID_SIZETOWIDEST }, { N_("Size To Narrowest"), NULL, ! N_("Resize all selected objects to be as narrow as the narrowest one"), NULL, CMDID_SIZETONARROWEST }, { N_("Size To Tallest"), NULL, ! N_("Resize all selected objects to be as tall as the tallest one"), NULL, CMDID_SIZETOTALLEST }, { N_("Size To Shortest"), NULL, ! N_("Resize all selected objects to be as short as the shortest one"), NULL, CMDID_SIZETOSHORTEST }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Size To Given Width & Height..."), NULL, ! N_("Resize all selected objects to a specified width and height"), NULL, CMDID_SIZETOGIVENWIDTHHEIGHT }, { N_("Size To Given Width..."), NULL, ! N_("Resize all selected objects to a specified width"), NULL, CMDID_SIZETOGIVENWIDTH }, { N_("Size To Given Height..."), NULL, ! N_("Resize all selected objects to a specified height"), NULL, CMDID_SIZETOGIVENHEIGHT }, { NULL, NULL, NULL, NULL, INVALID } *************** *** 888,904 **** static TgMenuItemInfo flipRotateMenuItemInfo[] = { ! { N_("Flip Horizontal"), "Alt+h", "Flip selected objects horizontally", NULL, CMDID_FLIPHORIZONTAL }, ! { N_("Flip Vertical"), "Alt+v", "Flip selected objects vertically", NULL, CMDID_FLIPVERTICAL }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Rotate Clock-Wise"), "Alt+w", "Rotate selected objects clockwise", NULL, CMDID_ROTATECLOCKWISE }, ! { N_("Rotate Counter"), "Alt+c", "Rotate selected objects counter-clockwise", NULL, CMDID_ROTATECOUNTER }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Set Text Rotation..."), NULL, "Set text rotation in degrees", NULL, CMDID_SETTEXTROTATION }, ! { N_("Set Rotation Increment..."), NULL, "Set rotation increment in degrees", NULL, CMDID_SETROTATIONINCREMENT }, { NULL, NULL, NULL, NULL, INVALID } --- 888,904 ---- static TgMenuItemInfo flipRotateMenuItemInfo[] = { ! { N_("Flip Horizontal"), "Alt+h", N_("Flip selected objects horizontally"), NULL, CMDID_FLIPHORIZONTAL }, ! { N_("Flip Vertical"), "Alt+v", N_("Flip selected objects vertically"), NULL, CMDID_FLIPVERTICAL }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Rotate Clock-Wise"), "Alt+w", N_("Rotate selected objects clockwise"), NULL, CMDID_ROTATECLOCKWISE }, ! { N_("Rotate Counter"), "Alt+c", N_("Rotate selected objects counter-clockwise"), NULL, CMDID_ROTATECOUNTER }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Set Text Rotation..."), NULL, N_("Set text rotation in degrees"), NULL, CMDID_SETTEXTROTATION }, ! { N_("Set Rotation Increment..."), NULL, N_("Set rotation increment in degrees"), NULL, CMDID_SETROTATIONINCREMENT }, { NULL, NULL, NULL, NULL, INVALID } *************** *** 908,970 **** static TgMenuItemInfo arrangeMenuItemInfo[] = { ! { N_("Front"), "Cntrl+f", "Bring selected objects to the front", NULL, CMDID_FRONT }, ! { N_("Back"), "Cntrl+b", "Send selected objects to the back", NULL, CMDID_BACK }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Group"), "Cntrl+g", "Group selected objects into a compound object", NULL, CMDID_GROUP }, { N_("UnGroup"), "Cntrl+u", ! "Break up selected grouped objects into its components", NULL, CMDID_UNGROUP }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Lock"), "Alt+<", "Lock the positions of selected objects", NULL, CMDID_LOCK }, ! { N_("UnLock"), "Alt+>", "UnLock the positions of selected objects", NULL, CMDID_UNLOCK }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Horizontal Align"), TGMUITEM_PINNABLESUBMENU, ! "HoriAlign submenu >>>", &horiAlignMenuInfo, MENU_HORIALIGN }, { N_("Vertical Align"), TGMUITEM_PINNABLESUBMENU, ! "VertAlign submenu >>>", &vertAlignMenuInfo, MENU_VERTALIGN }, { N_("Align Objects"), "Cntrl+l", ! "Align selected objects with each other using the current alignments", NULL, CMDID_ALIGNOBJS }, { N_("Align Objects Direct"), TGMUITEM_SUBMENU, ! "Align objects direct submenu >>>", &alignObjsDirectMenuInfo, INVALID }, { N_("Align To Grid"), "Cntrl+t", ! "Align selected objects to grid points using the current alignments", NULL, CMDID_ALIGNTOGRID }, { N_("Align To Grid Direct"), TGMUITEM_SUBMENU, ! "Align to grid direct submenu >>>", &alignToGridDirectMenuInfo, INVALID }, { N_("Align To Page"), "Alt+&", ! "Align selected objects to the page using the current alignments", NULL, CMDID_ALIGNTOPAGE }, { N_("Align To Page Direct"), TGMUITEM_SUBMENU, ! "Align to page direct submenu >>>", &alignToPageDirectMenuInfo, INVALID }, { N_("More Object Alignments"), TGMUITEM_SUBMENU, ! "Align objects submenu >>>", &alignMenuInfo, INVALID }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Size Objects"), TGMUITEM_SUBMENU, ! "Size objects submenu >>>", &sizeMenuInfo, INVALID }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Distribute Objects"), "Alt+l", ! "Distribute selected objects using the current alignments", NULL, CMDID_DISTRIBUTEOBJS }, { N_("Distribute Objects Direct"), TGMUITEM_SUBMENU, ! "Distribute objects direct submenu >>>", &distrObjsDirectMenuInfo, INVALID }, ! { N_("Layout On Arc"), NULL, "Layout objects on an arc", NULL, CMDID_LAYOUTONARC }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Abut Horizontal"), "Alt+_", ! "Squish selected objects together horizontally", NULL, CMDID_ABUTHORIZONTAL }, { N_("Abut Vertical"), "Alt+|", ! "Squish selected objects together vertically", NULL, CMDID_ABUTVERTICAL }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Flip/Rotate"), TGMUITEM_SUBMENU, ! "Flip and rotate submenu >>>", &flipRotateMenuInfo, INVALID }, { NULL, NULL, NULL, NULL, INVALID } }; --- 908,970 ---- static TgMenuItemInfo arrangeMenuItemInfo[] = { ! { N_("Front"), "Cntrl+f", N_("Bring selected objects to the front"), NULL, CMDID_FRONT }, ! { N_("Back"), "Cntrl+b", N_("Send selected objects to the back"), NULL, CMDID_BACK }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Group"), "Cntrl+g", N_("Group selected objects into a compound object"), NULL, CMDID_GROUP }, { N_("UnGroup"), "Cntrl+u", ! N_("Break up selected grouped objects into its components"), NULL, CMDID_UNGROUP }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Lock"), "Alt+<", N_("Lock the positions of selected objects"), NULL, CMDID_LOCK }, ! { N_("UnLock"), "Alt+>", N_("UnLock the positions of selected objects"), NULL, CMDID_UNLOCK }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Horizontal Align"), TGMUITEM_PINNABLESUBMENU, ! N_("HoriAlign submenu >>>"), &horiAlignMenuInfo, MENU_HORIALIGN }, { N_("Vertical Align"), TGMUITEM_PINNABLESUBMENU, ! N_("VertAlign submenu >>>"), &vertAlignMenuInfo, MENU_VERTALIGN }, { N_("Align Objects"), "Cntrl+l", ! N_("Align selected objects with each other using the current alignments"), NULL, CMDID_ALIGNOBJS }, { N_("Align Objects Direct"), TGMUITEM_SUBMENU, ! N_("Align objects direct submenu >>>"), &alignObjsDirectMenuInfo, INVALID }, { N_("Align To Grid"), "Cntrl+t", ! N_("Align selected objects to grid points using the current alignments"), NULL, CMDID_ALIGNTOGRID }, { N_("Align To Grid Direct"), TGMUITEM_SUBMENU, ! N_("Align to grid direct submenu >>>"), &alignToGridDirectMenuInfo, INVALID }, { N_("Align To Page"), "Alt+&", ! N_("Align selected objects to the page using the current alignments"), NULL, CMDID_ALIGNTOPAGE }, { N_("Align To Page Direct"), TGMUITEM_SUBMENU, ! N_("Align to page direct submenu >>>"), &alignToPageDirectMenuInfo, INVALID }, { N_("More Object Alignments"), TGMUITEM_SUBMENU, ! N_("Align objects submenu >>>"), &alignMenuInfo, INVALID }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Size Objects"), TGMUITEM_SUBMENU, ! N_("Size objects submenu >>>"), &sizeMenuInfo, INVALID }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Distribute Objects"), "Alt+l", ! N_("Distribute selected objects using the current alignments"), NULL, CMDID_DISTRIBUTEOBJS }, { N_("Distribute Objects Direct"), TGMUITEM_SUBMENU, ! N_("Distribute objects direct submenu >>>"), &distrObjsDirectMenuInfo, INVALID }, ! { N_("Layout On Arc"), NULL, N_("Layout objects on an arc"), NULL, CMDID_LAYOUTONARC }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Abut Horizontal"), "Alt+_", ! N_("Squish selected objects together horizontally"), NULL, CMDID_ABUTHORIZONTAL }, { N_("Abut Vertical"), "Alt+|", ! N_("Squish selected objects together vertically"), NULL, CMDID_ABUTVERTICAL }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Flip/Rotate"), TGMUITEM_SUBMENU, ! N_("Flip and rotate submenu >>>"), &flipRotateMenuInfo, INVALID }, { NULL, NULL, NULL, NULL, INVALID } }; *************** *** 973,981 **** static TgMenuItemInfo scrollModeMenuItemInfo[] = { ! { N_("Off"), NULL, "Do not update canvas window while scrolling", NULL, CMDID_CHANGESCROLLMODE }, ! { N_("Jump"), NULL, "Jump update canvas window while scrolling", NULL, CMDID_CHANGESCROLLMODE }, ! { N_("Smooth"), NULL, "Update canvas window smoothly while scrolling", NULL, CMDID_CHANGESCROLLMODE }, { NULL, NULL, NULL, NULL, INVALID } --- 973,981 ---- static TgMenuItemInfo scrollModeMenuItemInfo[] = { ! { N_("Off"), NULL, N_("Do not update canvas window while scrolling"), NULL, CMDID_CHANGESCROLLMODE }, ! { N_("Jump"), NULL, N_("Jump update canvas window while scrolling"), NULL, CMDID_CHANGESCROLLMODE }, ! { N_("Smooth"), NULL, N_("Update canvas window smoothly while scrolling"), NULL, CMDID_CHANGESCROLLMODE }, { NULL, NULL, NULL, NULL, INVALID } *************** *** 986,1000 **** static TgMenuItemInfo showHideMenuItemInfo[] = { { N_("Show Bit/Pixmap"), NULL, ! "Toggle between hiding and showing detailed bitmap/pixmap objects", NULL, CMDID_TOGGLEMAPSHOWN }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Show Measurement"), NULL, ! "Show cursor measurements", NULL, CMDID_TOGGLESHOWMEASUREMENT }, ! { N_("Set Measure Unit..."), NULL, "Set the unit of measurements", NULL, CMDID_SETMEASUREUNIT }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Show Menubar"), NULL, "Show menubar window", NULL, CMDID_TOGGLESHOWMENUBAR }, ! { N_("Show Status"), NULL, "Show status window", NULL, CMDID_TOGGLESHOWSTATUS }, { NULL, NULL, NULL, NULL, INVALID } --- 986,1000 ---- static TgMenuItemInfo showHideMenuItemInfo[] = { { N_("Show Bit/Pixmap"), NULL, ! N_("Toggle between hiding and showing detailed bitmap/pixmap objects"), NULL, CMDID_TOGGLEMAPSHOWN }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Show Measurement"), NULL, ! N_("Show cursor measurements"), NULL, CMDID_TOGGLESHOWMEASUREMENT }, ! { N_("Set Measure Unit..."), NULL, N_("Set the unit of measurements"), NULL, CMDID_SETMEASUREUNIT }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Show Menubar"), NULL, N_("Show menubar window"), NULL, CMDID_TOGGLESHOWMENUBAR }, ! { N_("Show Status"), NULL, N_("Show status window"), NULL, CMDID_TOGGLESHOWSTATUS }, { NULL, NULL, NULL, NULL, INVALID } *************** *** 1004,1017 **** static TgMenuItemInfo slideShowMenuItemInfo[] = { ! { N_("Slide Show"), "Alt+Cntrl+8", "Toggle SlideShow mode", NULL, CMDID_TOGGLESLIDESHOW }, { N_("Set Slide Show Border Color..."), NULL, ! "Set the color of the slideshow border", NULL, CMDID_SETSLIDESHOWBRDRCOLOR }, { N_("Set Slide Show Window Offsets..."), NULL, ! "Set the offsets of the slideshow window", NULL, CMDID_SETSLIDESHOWWINOFFSETS }, { N_("Visible Grid In Slide Show"), NULL, ! "Toggle visible grid in slideshow mode", NULL, CMDID_VISIBLEGRIDINSLIDESHOW }, { NULL, NULL, NULL, NULL, INVALID } --- 1004,1017 ---- static TgMenuItemInfo slideShowMenuItemInfo[] = { ! { N_("Slide Show"), "Alt+Cntrl+8", N_("Toggle SlideShow mode"), NULL, CMDID_TOGGLESLIDESHOW }, { N_("Set Slide Show Border Color..."), NULL, ! N_("Set the color of the slideshow border"), NULL, CMDID_SETSLIDESHOWBRDRCOLOR }, { N_("Set Slide Show Window Offsets..."), NULL, ! N_("Set the offsets of the slideshow window"), NULL, CMDID_SETSLIDESHOWWINOFFSETS }, { N_("Visible Grid In Slide Show"), NULL, ! N_("Toggle visible grid in slideshow mode"), NULL, CMDID_VISIBLEGRIDINSLIDESHOW }, { NULL, NULL, NULL, NULL, INVALID } *************** *** 1021,1028 **** static TgMenuItemInfo zoomMenuItemInfo[] = { ! { N_("Zoom In"), "Alt+z", "Zoom in", NULL, CMDID_ZOOMIN }, ! { N_("Zoom Out"), "Alt+o", "Zoom out", NULL, CMDID_ZOOMOUT }, ! { N_("Default Zoom"), "Alt+:", "No zoom", NULL, CMDID_DEFAULTZOOM }, ! { N_("Zoom Way Out"), "Alt+`", "Zoom way out to see the whole drawing", NULL, CMDID_ZOOMWAYOUT }, { NULL, NULL, NULL, NULL, INVALID } --- 1021,1028 ---- static TgMenuItemInfo zoomMenuItemInfo[] = { ! { N_("Zoom In"), "Alt+z", N_("Zoom in"), NULL, CMDID_ZOOMIN }, ! { N_("Zoom Out"), "Alt+o", N_("Zoom out"), NULL, CMDID_ZOOMOUT }, ! { N_("Default Zoom"), "Alt+:", N_("No zoom"), NULL, CMDID_DEFAULTZOOM }, ! { N_("Zoom Way Out"), "Alt+`", N_("Zoom way out to see the whole drawing"), NULL, CMDID_ZOOMWAYOUT }, { NULL, NULL, NULL, NULL, INVALID } *************** *** 1032,1088 **** static TgMenuItemInfo layoutMenuItemInfo[] = { ! { N_("+Grid"), "Alt+i", "Increment grid size", NULL, CMDID_INCGRID }, ! { N_("-Grid"), "Alt+d", "Decrement grid size", NULL, CMDID_DECGRID }, ! { N_("Visible Grid"), "Alt+g", "Hide/show grid lines", NULL, CMDID_TOGGLEGRID }, { N_("Snap To Grid"), "Alt+Cntrl+g", ! "Toggle the snapping to grid points effect", NULL, CMDID_TOGGLESNAP }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Save Origin"), NULL, ! "Save current location as the 'origin' of the drawing", NULL, CMDID_SAVEORIGIN }, ! { N_("Scroll To Origin"), "Alt+^", "Scroll to the 'origin' of the drawing", NULL, CMDID_SCROLLTOORIG }, { N_("Scroll Mode"), TGMUITEM_SUBMENU, ! "ScrollMode submenu >>>", &scrollModeMenuInfo, INVALID }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Zoom"), TGMUITEM_SUBMENU, "Zoom submenu >>>", &zoomMenuInfo, INVALID }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Portrait"), NULL, "Portrait page style", NULL, CMDID_PORTRAITMODE }, ! { N_("Landscape"), NULL, "Lanscape page style", NULL, CMDID_LANDSCAPEMODE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Stacked Page"), TGMUITEM_PINNABLESUBMENU, ! "StackedPage submenu >>>", &stackedPageMenuInfo, MENU_STACKEDPAGE }, { N_("Tiled Page"), TGMUITEM_PINNABLESUBMENU, ! "TiledPage submenu >>>", &tiledPageMenuInfo, MENU_TILEDPAGE }, { N_("Page Layout"), TGMUITEM_PINNABLESUBMENU, ! "PageLayout submenu >>>", &pageLayoutMenuInfo, MENU_PAGELAYOUT }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Print/Export Format"), TGMUITEM_SUBMENU, ! "Select print/export format submenu >>>", &exportFormatMenuInfo, INVALID }, { N_("Print/Export In Color"), "Alt+Cntrl+k", ! "Toggle between color and black & white printing modes", NULL, CMDID_TOGGLEBWCOLORPS }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Set Reduction..."), "Alt+%", ! "Specify reduction/magnification of the whole drawing", NULL, CMDID_SETREDUCTION }, { N_("Metric Grid"), "Alt+Cntrl+-", ! "Toggle between English and Metric grid systems", NULL, CMDID_TOGGLEGRIDSYSTEM }, { N_("One Motion Select Move"), NULL, ! "Toggle between click-select-move and click-select-click-move modes", NULL, CMDID_TOGGLEONEMOTIONSELMOVE }, { N_("Use Gray Scale"), NULL, ! "Toggle between using gray scales to tile patterns to speed up printing", NULL, CMDID_TOGGLEUSEGRAYSCALE }, ! { N_("Use Color Layers"), NULL, "Toggle color layers", NULL, CMDID_TOGGLECOLORLAYERS }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Show/Hide"), TGMUITEM_SUBMENU, ! "Show/Hide submenu >>>", &showHideMenuInfo, INVALID }, { N_("Slide Show"), TGMUITEM_SUBMENU, ! "SlideShow submenu >>>", &slideShowMenuInfo, INVALID }, { NULL, NULL, NULL, NULL, INVALID } }; --- 1032,1088 ---- static TgMenuItemInfo layoutMenuItemInfo[] = { ! { N_("+Grid"), "Alt+i", N_("Increment grid size"), NULL, CMDID_INCGRID }, ! { N_("-Grid"), "Alt+d", N_("Decrement grid size"), NULL, CMDID_DECGRID }, ! { N_("Visible Grid"), "Alt+g", N_("Hide/show grid lines"), NULL, CMDID_TOGGLEGRID }, { N_("Snap To Grid"), "Alt+Cntrl+g", ! N_("Toggle the snapping to grid points effect"), NULL, CMDID_TOGGLESNAP }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Save Origin"), NULL, ! N_("Save current location as the 'origin' of the drawing"), NULL, CMDID_SAVEORIGIN }, ! { N_("Scroll To Origin"), "Alt+^", N_("Scroll to the 'origin' of the drawing"), NULL, CMDID_SCROLLTOORIG }, { N_("Scroll Mode"), TGMUITEM_SUBMENU, ! N_("ScrollMode submenu >>>"), &scrollModeMenuInfo, INVALID }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Zoom"), TGMUITEM_SUBMENU, N_("Zoom submenu >>>"), &zoomMenuInfo, INVALID }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Portrait"), NULL, N_("Portrait page style"), NULL, CMDID_PORTRAITMODE }, ! { N_("Landscape"), NULL, N_("Lanscape page style"), NULL, CMDID_LANDSCAPEMODE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Stacked Page"), TGMUITEM_PINNABLESUBMENU, ! N_("StackedPage submenu >>>"), &stackedPageMenuInfo, MENU_STACKEDPAGE }, { N_("Tiled Page"), TGMUITEM_PINNABLESUBMENU, ! N_("TiledPage submenu >>>"), &tiledPageMenuInfo, MENU_TILEDPAGE }, { N_("Page Layout"), TGMUITEM_PINNABLESUBMENU, ! N_("PageLayout submenu >>>"), &pageLayoutMenuInfo, MENU_PAGELAYOUT }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Print/Export Format"), TGMUITEM_SUBMENU, ! N_("Select print/export format submenu >>>"), &exportFormatMenuInfo, INVALID }, { N_("Print/Export In Color"), "Alt+Cntrl+k", ! N_("Toggle between color and black & white printing modes"), NULL, CMDID_TOGGLEBWCOLORPS }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Set Reduction..."), "Alt+%", ! N_("Specify reduction/magnification of the whole drawing"), NULL, CMDID_SETREDUCTION }, { N_("Metric Grid"), "Alt+Cntrl+-", ! N_("Toggle between English and Metric grid systems"), NULL, CMDID_TOGGLEGRIDSYSTEM }, { N_("One Motion Select Move"), NULL, ! N_("Toggle between click-select-move and click-select-click-move modes"), NULL, CMDID_TOGGLEONEMOTIONSELMOVE }, { N_("Use Gray Scale"), NULL, ! N_("Toggle between using gray scales to tile patterns to speed up printing"), NULL, CMDID_TOGGLEUSEGRAYSCALE }, ! { N_("Use Color Layers"), NULL, N_("Toggle color layers"), NULL, CMDID_TOGGLECOLORLAYERS }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Show/Hide"), TGMUITEM_SUBMENU, ! N_("Show/Hide submenu >>>"), &showHideMenuInfo, INVALID }, { N_("Slide Show"), TGMUITEM_SUBMENU, ! N_("SlideShow submenu >>>"), &slideShowMenuInfo, INVALID }, { NULL, NULL, NULL, NULL, INVALID } }; *************** *** 1092,1105 **** static TgMenuItemInfo propertiesMenuItemInfo[] = { { N_("Copy Properties..."), NULL, ! "Copy properties (e.g., color, fill, etc.) into the cut buffer", NULL, CMDID_COPYPROPERTIES }, { N_("Paste Properties..."), NULL, ! "Paste properties (e.g., color, fill, etc.) from the cut buffer", NULL, CMDID_PASTEPROPERTIES }, { N_("Save Properties..."), NULL, ! "Save and name a property (e.g., color, fill, etc.) set", NULL, CMDID_SAVEPROPERTIES }, { N_("Restore Properties..."), NULL, ! "Restore a named property (e.g., color, fill, etc.) set", NULL, CMDID_RESTOREPROPERTIES }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, --- 1092,1105 ---- static TgMenuItemInfo propertiesMenuItemInfo[] = { { N_("Copy Properties..."), NULL, ! N_("Copy properties (e.g., color, fill, etc.) into the cut buffer"), NULL, CMDID_COPYPROPERTIES }, { N_("Paste Properties..."), NULL, ! N_("Paste properties (e.g., color, fill, etc.) from the cut buffer"), NULL, CMDID_PASTEPROPERTIES }, { N_("Save Properties..."), NULL, ! N_("Save and name a property (e.g., color, fill, etc.) set"), NULL, CMDID_SAVEPROPERTIES }, { N_("Restore Properties..."), NULL, ! N_("Restore a named property (e.g., color, fill, etc.) set"), NULL, CMDID_RESTOREPROPERTIES }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, *************** *** 1106,1110 **** /* * { N_("Update Objects"), "Alt+0", ! * "Update selected objects to have current drawing properties", NULL, * CMDID_UPDATE }, * { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, --- 1106,1110 ---- /* * { N_("Update Objects"), "Alt+0", ! * N_("Update selected objects to have current drawing properties"), NULL, * CMDID_UPDATE }, * { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, *************** *** 1111,1160 **** */ { N_("Set Selected Line Width..."), NULL, ! "Change the line width (and arrow width/height) of selected objects", NULL, CMDID_SETSELLINEWIDTH }, { N_("Set Selected Font Size..."), NULL, ! "Change the font size of selected objects", NULL, CMDID_SETSELFONTSIZE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Add Color..."), NULL, "Add colors to the current palette", NULL, CMDID_ADDCOLOR }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Set Edit Text Size..."), NULL, ! "Set the text size to be used in editing existing text objects", NULL, CMDID_SETEDITTEXTSIZE }, { N_("Set Alt Edit Text BgColor..."), NULL, ! "Set the background color to be used in editing existing text objects", NULL, CMDID_SETALTEDITTEXTBGCOLOR }, { N_("Set Alt Edit Text Highlight Color..."), NULL, ! "Set the highlight color to be used in editing existing text objects", NULL, CMDID_SETALTEDITTEXTHIGHLIGHTCOLOR }, { N_("Use Alt Edit Text BgColor"), NULL, ! "Toggles the background color to be used in editing existing text objects", NULL, CMDID_TOGGLEALTEDITTEXTBGCOLOR }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Font"), TGMUITEM_PINNABLESUBMENU, ! "Font submenu >>>", &fontMenuInfo, MENU_FONT }, { N_("Text Style"), TGMUITEM_PINNABLESUBMENU, ! "TextStyle submenu >>>", &fontStyleMenuInfo, MENU_STYLE }, { N_("Text Size"), TGMUITEM_PINNABLESUBMENU, ! "TextSize submenu >>>", &fontSizeMenuInfo, MENU_SIZE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Line Dash"), TGMUITEM_PINNABLESUBMENU, ! "LineDash submenu >>>", &lineDashMenuInfo, MENU_LINEDASH }, { N_("Line Style"), TGMUITEM_PINNABLESUBMENU, ! "LineStyle submenu >>>", &lineStyleMenuInfo, MENU_LINESTYLE }, { N_("Line Type"), TGMUITEM_PINNABLESUBMENU, ! "LineType submenu >>>", &lineTypeMenuInfo, MENU_LINETYPE }, { N_("Line Width"), TGMUITEM_PINNABLESUBMENU, ! "LineWidth submenu >>>", &lineWidthMenuInfo, MENU_LINEWIDTH }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Fill"), TGMUITEM_PINNABLESUBMENU, ! "Fill submenu >>>", &fillMenuInfo, MENU_FILL }, { N_("Pen"), TGMUITEM_PINNABLESUBMENU, ! "Pen submenu >>>", &penMenuInfo, MENU_PEN }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Color"), TGMUITEM_PINNABLESUBMENU, "Color submenu >>>", &colorMenuInfo, MENU_COLOR }, { N_("Transparent Pattern"), TGMUITEM_PINNABLESUBMENU, ! "TransPattern submenu >>>", &transPatModeMenuInfo, MENU_TRANSPAT }, { NULL, NULL, NULL, NULL, INVALID } }; --- 1111,1160 ---- */ { N_("Set Selected Line Width..."), NULL, ! N_("Change the line width (and arrow width/height) of selected objects"), NULL, CMDID_SETSELLINEWIDTH }, { N_("Set Selected Font Size..."), NULL, ! N_("Change the font size of selected objects"), NULL, CMDID_SETSELFONTSIZE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Add Color..."), NULL, N_("Add colors to the current palette"), NULL, CMDID_ADDCOLOR }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Set Edit Text Size..."), NULL, ! N_("Set the text size to be used in editing existing text objects"), NULL, CMDID_SETEDITTEXTSIZE }, { N_("Set Alt Edit Text BgColor..."), NULL, ! N_("Set the background color to be used in editing existing text objects"), NULL, CMDID_SETALTEDITTEXTBGCOLOR }, { N_("Set Alt Edit Text Highlight Color..."), NULL, ! N_("Set the highlight color to be used in editing existing text objects"), NULL, CMDID_SETALTEDITTEXTHIGHLIGHTCOLOR }, { N_("Use Alt Edit Text BgColor"), NULL, ! N_("Toggles the background color to be used in editing existing text objects"), NULL, CMDID_TOGGLEALTEDITTEXTBGCOLOR }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Font"), TGMUITEM_PINNABLESUBMENU, ! N_("Font submenu >>>"), &fontMenuInfo, MENU_FONT }, { N_("Text Style"), TGMUITEM_PINNABLESUBMENU, ! N_("TextStyle submenu >>>"), &fontStyleMenuInfo, MENU_STYLE }, { N_("Text Size"), TGMUITEM_PINNABLESUBMENU, ! N_("TextSize submenu >>>"), &fontSizeMenuInfo, MENU_SIZE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Line Dash"), TGMUITEM_PINNABLESUBMENU, ! N_("LineDash submenu >>>"), &lineDashMenuInfo, MENU_LINEDASH }, { N_("Line Style"), TGMUITEM_PINNABLESUBMENU, ! N_("LineStyle submenu >>>"), &lineStyleMenuInfo, MENU_LINESTYLE }, { N_("Line Type"), TGMUITEM_PINNABLESUBMENU, ! N_("LineType submenu >>>"), &lineTypeMenuInfo, MENU_LINETYPE }, { N_("Line Width"), TGMUITEM_PINNABLESUBMENU, ! N_("LineWidth submenu >>>"), &lineWidthMenuInfo, MENU_LINEWIDTH }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Fill"), TGMUITEM_PINNABLESUBMENU, ! N_("Fill submenu >>>"), &fillMenuInfo, MENU_FILL }, { N_("Pen"), TGMUITEM_PINNABLESUBMENU, ! N_("Pen submenu >>>"), &penMenuInfo, MENU_PEN }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Color"), TGMUITEM_PINNABLESUBMENU, N_("Color submenu >>>"), &colorMenuInfo, MENU_COLOR }, { N_("Transparent Pattern"), TGMUITEM_PINNABLESUBMENU, ! N_("TransPattern submenu >>>"), &transPatModeMenuInfo, MENU_TRANSPAT }, { NULL, NULL, NULL, NULL, INVALID } }; *************** *** 1163,1181 **** static TgMenuItemInfo navigateMenuItemInfo[] = { ! { N_("Go Back"), NULL, "Go back one file", NULL, CMDID_GOBACK }, ! { N_("Go Forward"), NULL, "Go forward one file", NULL, CMDID_GOFORWARD }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Refresh Current"), NULL, "Reload the current file", NULL, CMDID_REFRESHCURRENT }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Hot List..."), NULL, "Navigate using the hot-list", NULL, CMDID_HOTLIST }, { N_("Add Current To Hot List"), NULL, ! "Add the current file to the hot-list", NULL, CMDID_ADDCURRENTTOHOTLIST }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Session History..."), NULL, "Go to a file visited during this session", NULL, CMDID_SESSIONHISTORY }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Hyper Space"), NULL, "Toggle HyperSpace mode", NULL, CMDID_TOGGLEHYPERSPACE }, { NULL, NULL, NULL, NULL, INVALID } --- 1163,1181 ---- static TgMenuItemInfo navigateMenuItemInfo[] = { ! { N_("Go Back"), NULL, N_("Go back one file"), NULL, CMDID_GOBACK }, ! { N_("Go Forward"), NULL, N_("Go forward one file"), NULL, CMDID_GOFORWARD }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Refresh Current"), NULL, N_("Reload the current file"), NULL, CMDID_REFRESHCURRENT }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Hot List..."), NULL, N_("Navigate using the hot-list"), NULL, CMDID_HOTLIST }, { N_("Add Current To Hot List"), NULL, ! N_("Add the current file to the hot-list"), NULL, CMDID_ADDCURRENTTOHOTLIST }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Session History..."), NULL, N_("Go to a file visited during this session"), NULL, CMDID_SESSIONHISTORY }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Hyper Space"), NULL, N_("Toggle HyperSpace mode"), NULL, CMDID_TOGGLEHYPERSPACE }, { NULL, NULL, NULL, NULL, INVALID } *************** *** 1186,1224 **** static TgMenuItemInfo attrMenuItemInfo[] = { { N_("Attach Attributes"), "Alt+a", ! "Attach selected text objects as attributes for the non-text object", NULL, CMDID_ATTACHATTRS }, { N_("Detach Attributes"), "Alt+t", ! "Detach all attributes of selected objects", NULL, CMDID_DETACHATTRS }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Edit Attributes..."), NULL, ! "Edit attributes of a selected object", NULL, CMDID_EDITATTRS }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Show Attributes"), "Alt+-", ! "Make all attributes of selected objects visible", NULL, CMDID_SHOWATTR }, { N_("Show Attribute Names"), "Alt+n", ! "Make all attribute names of selected objects visible", NULL, CMDID_SHOWATTRNAME }, { N_("Hide Attributes"), "Alt+Cntrl+h", ! "Hide all attributes for selected objects", NULL, CMDID_HIDEATTR }, { N_("Hide Attribute Names"), "Alt+j", ! "Hide all attribute names for selected objects", NULL, CMDID_HIDEATTRNAME }, { N_("Toggle Eq Attribute Shown..."), "Alt+Cntrl+7", ! "Showing/hiding the 'eq=' attibute (for a LaTeX equation object)", NULL, CMDID_TOGGLEEQATTRSHOWN }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Move/Justfy An Attribute"), "Alt+m", ! "Move/justify an attribute for a selected object", NULL, CMDID_MOVEJUSTIFYATTR }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Import Attributes..."), NULL, ! "Import attributes of a selected object from a text file", NULL, CMDID_IMPORTATTRS }, { N_("Export Attributes..."), NULL, ! "Export attributes of a selected object to a text file", NULL, CMDID_EXPORTATTRS }, { NULL, NULL, NULL, NULL, INVALID } --- 1186,1224 ---- static TgMenuItemInfo attrMenuItemInfo[] = { { N_("Attach Attributes"), "Alt+a", ! N_("Attach selected text objects as attributes for the non-text object"), NULL, CMDID_ATTACHATTRS }, { N_("Detach Attributes"), "Alt+t", ! N_("Detach all attributes of selected objects"), NULL, CMDID_DETACHATTRS }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Edit Attributes..."), NULL, ! N_("Edit attributes of a selected object"), NULL, CMDID_EDITATTRS }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Show Attributes"), "Alt+-", ! N_("Make all attributes of selected objects visible"), NULL, CMDID_SHOWATTR }, { N_("Show Attribute Names"), "Alt+n", ! N_("Make all attribute names of selected objects visible"), NULL, CMDID_SHOWATTRNAME }, { N_("Hide Attributes"), "Alt+Cntrl+h", ! N_("Hide all attributes for selected objects"), NULL, CMDID_HIDEATTR }, { N_("Hide Attribute Names"), "Alt+j", ! N_("Hide all attribute names for selected objects"), NULL, CMDID_HIDEATTRNAME }, { N_("Toggle Eq Attribute Shown..."), "Alt+Cntrl+7", ! N_("Showing/hiding the 'eq=' attibute (for a LaTeX equation object)"), NULL, CMDID_TOGGLEEQATTRSHOWN }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Move/Justfy An Attribute"), "Alt+m", ! N_("Move/justify an attribute for a selected object"), NULL, CMDID_MOVEJUSTIFYATTR }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Import Attributes..."), NULL, ! N_("Import attributes of a selected object from a text file"), NULL, CMDID_IMPORTATTRS }, { N_("Export Attributes..."), NULL, ! N_("Export attributes of a selected object to a text file"), NULL, CMDID_EXPORTATTRS }, { NULL, NULL, NULL, NULL, INVALID } *************** *** 1229,1240 **** static TgMenuItemInfo fileAttrMenuItemInfo[] = { { N_("Attach File Attributes"), NULL, ! "Attach selected text objects as file attributes", NULL, CMDID_ATTACHFILEATTRS }, { N_("Detach File Attributes"), NULL, ! "Detach all file attributes", NULL, CMDID_DETACHFILEATTRS }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Edit File Attributes..."), NULL, ! "Edit file attributes", NULL, CMDID_EDITFILEATTRS }, { NULL, NULL, NULL, NULL, INVALID } --- 1229,1240 ---- static TgMenuItemInfo fileAttrMenuItemInfo[] = { { N_("Attach File Attributes"), NULL, ! N_("Attach selected text objects as file attributes"), NULL, CMDID_ATTACHFILEATTRS }, { N_("Detach File Attributes"), NULL, ! N_("Detach all file attributes"), NULL, CMDID_DETACHFILEATTRS }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Edit File Attributes..."), NULL, ! N_("Edit file attributes"), NULL, CMDID_EDITFILEATTRS }, { NULL, NULL, NULL, NULL, INVALID } *************** *** 1245,1252 **** static TgMenuItemInfo animateMenuItemInfo[] = { { N_("Animate Send"), "Alt+e", ! "Animate a little token on a selected poly (not very useful)", NULL, CMDID_ANIMATESEND }, { N_("Animate Flash"), "Alt+f", ! "Flash a selected poly (not very useful)", NULL, CMDID_ANIMATEFLASH }, { NULL, NULL, NULL, NULL, INVALID } --- 1245,1252 ---- static TgMenuItemInfo animateMenuItemInfo[] = { { N_("Animate Send"), "Alt+e", ! N_("Animate a little token on a selected poly (not very useful)"), NULL, CMDID_ANIMATESEND }, { N_("Animate Flash"), "Alt+f", ! N_("Flash a selected poly (not very useful)"), NULL, CMDID_ANIMATEFLASH }, { NULL, NULL, NULL, NULL, INVALID } *************** *** 1257,1300 **** static TgMenuItemInfo specialMenuItemInfo[] = { { N_("Make Symbolic"), "Alt+Cntrl+m", ! "Turn a selected grouped/icon object into a symbol object", NULL, CMDID_MAKESYMBOLIC }, { N_("UnMake Symbolic"), "Alt+Cntrl+n", ! "Turn a selected symbol object into a grouped object", NULL, CMDID_UNMAKESYMBOLIC }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Instantiate..."), "Cntrl+i", ! "Instantiate a building-block object from the current domain", NULL, CMDID_INSTANTIATE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Make Iconic..."), "Alt+Cntrl+i", ! "Turn a selected grouped/symbol object into an icon object", NULL, CMDID_MAKEICONIC }, { N_("UnMake Iconic"), "Alt+Cntrl+j", ! "Turn an icon object into a grouped object", NULL, CMDID_UNMAKEICONIC }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Push"), "Alt+Cntrl+y", ! "Push into (edit) the symbol file which defines the selected icon object", NULL, CMDID_PUSH }, { N_("Pop"), "Cntrl+k", ! "Pop back to a high lever (reverse of Push)", NULL, CMDID_POP }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Attribute"), TGMUITEM_SUBMENU, ! "Attribute submenu >>>", &attrMenuInfo, INVALID }, { N_("File Attribute"), TGMUITEM_SUBMENU, ! "File attribute submenu >>>", &fileAttrMenuInfo, INVALID }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Update Symbols"), "Alt+Cntrl+u", ! "Refresh selected icon objects from their definition files", NULL, CMDID_UPDATESYMBOLS }, { N_("Save Sym In Library..."), NULL, ! "Save symbol file in a library path within the current domain", NULL, CMDID_SAVESYMINLIBRARY }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Domain"), TGMUITEM_SUBMENU, ! "Domain submenu >>>", &domainMenuInfo, INVALID }, { N_("Misc"), TGMUITEM_SUBMENU, ! "Misc submenu >>>", &animateMenuInfo, INVALID }, { N_("Return"), TGMUITEM_SUBMENU, N_("Return submenu >>>"), &driverMenuInfo, INVALID }, --- 1257,1300 ---- static TgMenuItemInfo specialMenuItemInfo[] = { { N_("Make Symbolic"), "Alt+Cntrl+m", ! N_("Turn a selected grouped/icon object into a symbol object"), NULL, CMDID_MAKESYMBOLIC }, { N_("UnMake Symbolic"), "Alt+Cntrl+n", ! N_("Turn a selected symbol object into a grouped object"), NULL, CMDID_UNMAKESYMBOLIC }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Instantiate..."), "Cntrl+i", ! N_("Instantiate a building-block object from the current domain"), NULL, CMDID_INSTANTIATE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Make Iconic..."), "Alt+Cntrl+i", ! N_("Turn a selected grouped/symbol object into an icon object"), NULL, CMDID_MAKEICONIC }, { N_("UnMake Iconic"), "Alt+Cntrl+j", ! N_("Turn an icon object into a grouped object"), NULL, CMDID_UNMAKEICONIC }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Push"), "Alt+Cntrl+y", ! N_("Push into (edit) the symbol file which defines the selected icon object"), NULL, CMDID_PUSH }, { N_("Pop"), "Cntrl+k", ! N_("Pop back to a high lever (reverse of Push)"), NULL, CMDID_POP }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Attribute"), TGMUITEM_SUBMENU, ! N_("Attribute submenu >>>"), &attrMenuInfo, INVALID }, { N_("File Attribute"), TGMUITEM_SUBMENU, ! N_("File attribute submenu >>>"), &fileAttrMenuInfo, INVALID }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Update Symbols"), "Alt+Cntrl+u", ! N_("Refresh selected icon objects from their definition files"), NULL, CMDID_UPDATESYMBOLS }, { N_("Save Sym In Library..."), NULL, ! N_("Save symbol file in a library path within the current domain"), NULL, CMDID_SAVESYMINLIBRARY }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Domain"), TGMUITEM_SUBMENU, ! N_("Domain submenu >>>"), &domainMenuInfo, INVALID }, { N_("Misc"), TGMUITEM_SUBMENU, ! N_("Misc submenu >>>"), &animateMenuInfo, INVALID }, { N_("Return"), TGMUITEM_SUBMENU, N_("Return submenu >>>"), &driverMenuInfo, INVALID }, *************** *** 1301,1312 **** { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Merge With Table..."), NULL, ! "Merge selected object with a table file", NULL, CMDID_MERGEWITHTABLE }, { N_("Export To Table..."), NULL, ! "Export attributes of selected objects to a table file", NULL, CMDID_EXPORTTOTABLE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Exec Cmds From File..."), NULL, ! "Execute internal commands from a file", NULL, CMDID_EXECCMDSFROMFILE }, { NULL, NULL, NULL, NULL, INVALID } }; --- 1301,1312 ---- { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Merge With Table..."), NULL, ! N_("Merge selected object with a table file"), NULL, CMDID_MERGEWITHTABLE }, { N_("Export To Table..."), NULL, ! N_("Export attributes of selected objects to a table file"), NULL, CMDID_EXPORTTOTABLE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Exec Cmds From File..."), NULL, ! N_("Execute internal commands from a file"), NULL, CMDID_EXECCMDSFROMFILE }, { NULL, NULL, NULL, NULL, INVALID } }; *************** *** 1316,1326 **** static TgMenuItemInfo helpMenuItemInfo[] = { { N_("Latest Release Info"), NULL, ! "Find out what is the version number of the most recently released tgif", NULL, CMDID_LATESTRELEASEINFO }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Copyright"), NULL, "Copyright information", NULL, CMDID_COPYRIGHT }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("About"), NULL, ! "Version information, where to send bug reports, etc.", NULL, CMDID_ABOUT }, { NULL, NULL, NULL, NULL, INVALID } --- 1316,1326 ---- static TgMenuItemInfo helpMenuItemInfo[] = { { N_("Latest Release Info"), NULL, ! N_("Find out what is the version number of the most recently released tgif"), NULL, CMDID_LATESTRELEASEINFO }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Copyright"), NULL, N_("Copyright information"), NULL, CMDID_COPYRIGHT }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("About"), NULL, ! N_("Version information, where to send bug reports, etc."), NULL, CMDID_ABOUT }, { NULL, NULL, NULL, NULL, INVALID } *************** *** 1335,1352 **** static TgMenuItemInfo baseContextMenuItemInfo[] = { ! { N_("Mode"), TGMUITEM_PINNABLESUBMENU, "Mode Menu", &modeMenuInfo, MENU_MODE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Copy"), "Cntrl+c", "Copy selected objects into the cut buffer", NULL, CMDID_COPY }, ! { N_("Duplicate"), "Cntrl+d", "Duplicate selected objects", NULL, CMDID_DUPLICATE }, ! { N_("Delete"), "Cntrl+x", "Delete selected objects", NULL, CMDID_DELETE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Properties"), TGMUITEM_PINNABLESUBMENU, ! "Properties Menu", &propertiesMenuInfo, MENU_PROPERTIES }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Edit Attribute In Editor"), TGMUITEM_SUBMENU, ! "Edit attribute in editor submenu >>>", &editAttrInEditorMenuInfo, INVALID }, { NULL, NULL, NULL, NULL, INVALID } --- 1335,1352 ---- static TgMenuItemInfo baseContextMenuItemInfo[] = { ! { N_("Mode"), TGMUITEM_PINNABLESUBMENU, N_("Mode Menu"), &modeMenuInfo, MENU_MODE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Copy"), "Cntrl+c", N_("Copy selected objects into the cut buffer"), NULL, CMDID_COPY }, ! { N_("Duplicate"), "Cntrl+d", N_("Duplicate selected objects"), NULL, CMDID_DUPLICATE }, ! { N_("Delete"), "Cntrl+x", N_("Delete selected objects"), NULL, CMDID_DELETE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Properties"), TGMUITEM_PINNABLESUBMENU, ! N_("Properties Menu"), &propertiesMenuInfo, MENU_PROPERTIES }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Edit Attribute In Editor"), TGMUITEM_SUBMENU, ! N_("Edit attribute in editor submenu >>>"), &editAttrInEditorMenuInfo, INVALID }, { NULL, NULL, NULL, NULL, INVALID } *************** *** 1358,1428 **** static TgMenuItemInfo mainMenuItemInfo[] = { ! { N_("File"), TGMUITEM_PINNABLESUBMENU, "File Menu", &fileMenuInfo, MENU_FILE }, ! { N_("Edit"), TGMUITEM_PINNABLESUBMENU, "Edit Menu", &editMenuInfo, MENU_EDIT }, { N_("Layout"), TGMUITEM_PINNABLESUBMENU, ! "Layout Menu", &layoutMenuInfo, MENU_LAYOUT }, { N_("Arrange"), TGMUITEM_PINNABLESUBMENU, ! "Arrange Menu", &arrangeMenuInfo, MENU_ARRANGE }, { N_("Properties"), TGMUITEM_PINNABLESUBMENU, ! "Properties Menu", &propertiesMenuInfo, MENU_PROPERTIES }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Stacked Page"), TGMUITEM_PINNABLESUBMENU, ! "StackedPage Menu", &stackedPageMenuInfo, MENU_STACKEDPAGE }, { N_("Tiled Page"), TGMUITEM_PINNABLESUBMENU, ! "TiledPage Menu", &tiledPageMenuInfo, MENU_TILEDPAGE }, { N_("Page Layout"), TGMUITEM_PINNABLESUBMENU, ! "PageLayout Menu", &pageLayoutMenuInfo, MENU_PAGELAYOUT }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Horizontal Align"), TGMUITEM_PINNABLESUBMENU, ! "HoriAlign Menu", &horiAlignMenuInfo, MENU_HORIALIGN }, { N_("Vertical Align"), TGMUITEM_PINNABLESUBMENU, ! "VertAlign Menu", &vertAlignMenuInfo, MENU_VERTALIGN }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Font"), TGMUITEM_PINNABLESUBMENU, "Font Menu", &fontMenuInfo, MENU_FONT }, { N_("Text Style"), TGMUITEM_PINNABLESUBMENU, ! "TextStyle Menu", &fontStyleMenuInfo, MENU_STYLE }, { N_("Text Size"), TGMUITEM_PINNABLESUBMENU, ! "TextSize Menu", &fontSizeMenuInfo, MENU_SIZE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Line Dash"), TGMUITEM_PINNABLESUBMENU, ! "LineDash Menu", &lineDashMenuInfo, MENU_LINEDASH }, { N_("Line Style"), TGMUITEM_PINNABLESUBMENU, ! "LineStyle Menu", &lineStyleMenuInfo, MENU_LINESTYLE }, { N_("Line Type"), TGMUITEM_PINNABLESUBMENU, ! "LineType Menu", &lineTypeMenuInfo, MENU_LINETYPE }, { N_("Line Width"), TGMUITEM_PINNABLESUBMENU, ! "LineWidth Menu", &lineWidthMenuInfo, MENU_LINEWIDTH }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Fill"), TGMUITEM_PINNABLESUBMENU, "Fill Menu", &fillMenuInfo, MENU_FILL }, ! { N_("Pen"), TGMUITEM_PINNABLESUBMENU, "Pen Menu", &penMenuInfo, MENU_PEN }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Move Mode"), TGMUITEM_PINNABLESUBMENU, ! "MoveMode Menu", &moveModeMenuInfo, MENU_MOVEMODE }, { N_("Shape"), TGMUITEM_PINNABLESUBMENU, ! "Shape Menu", &shapeMenuInfo, MENU_SHAPE }, { N_("Stretchable Text"), TGMUITEM_PINNABLESUBMENU, ! "StretchText Menu", &stretchableTextModeMenuInfo, MENU_STRETCHTEXT }, { N_("Transparent Pattern"), TGMUITEM_PINNABLESUBMENU, ! "TransPattern Menu", &transPatModeMenuInfo, MENU_TRANSPAT }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Image Proc"), TGMUITEM_PINNABLESUBMENU, ! "ImageProc Menu", &imageProcMenuInfo, MENU_IMAGEPROC }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Color"), TGMUITEM_PINNABLESUBMENU, ! "Color Menu", &colorMenuInfo, MENU_COLOR }, { N_("Navigate"), TGMUITEM_PINNABLESUBMENU, ! "Navigate Menu", &navigateMenuInfo, MENU_NAVIGATE }, { N_("Special"), TGMUITEM_PINNABLESUBMENU, ! "Special Menu", &specialMenuInfo, MENU_SPECIAL }, #ifdef _TANGRAM_II { N_("Tangram-II"), TGMUITEM_PINNABLESUBMENU, ! "Tangram-II Menu", &tangram2MenuInfo, MENU_TANGRAM2 }, #endif /* _TANGRAM_II */ ! { N_("Help"), TGMUITEM_PINNABLESUBMENU, "Help Menu", &helpMenuInfo, MENU_HELP }, { NULL, NULL, NULL, NULL, INVALID } --- 1358,1428 ---- static TgMenuItemInfo mainMenuItemInfo[] = { ! { N_("File"), TGMUITEM_PINNABLESUBMENU, N_("File Menu"), &fileMenuInfo, MENU_FILE }, ! { N_("Edit"), TGMUITEM_PINNABLESUBMENU, N_("Edit Menu"), &editMenuInfo, MENU_EDIT }, { N_("Layout"), TGMUITEM_PINNABLESUBMENU, ! N_("Layout Menu"), &layoutMenuInfo, MENU_LAYOUT }, { N_("Arrange"), TGMUITEM_PINNABLESUBMENU, ! N_("Arrange Menu"), &arrangeMenuInfo, MENU_ARRANGE }, { N_("Properties"), TGMUITEM_PINNABLESUBMENU, ! N_("Properties Menu"), &propertiesMenuInfo, MENU_PROPERTIES }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Stacked Page"), TGMUITEM_PINNABLESUBMENU, ! N_("StackedPage Menu"), &stackedPageMenuInfo, MENU_STACKEDPAGE }, { N_("Tiled Page"), TGMUITEM_PINNABLESUBMENU, ! N_("TiledPage Menu"), &tiledPageMenuInfo, MENU_TILEDPAGE }, { N_("Page Layout"), TGMUITEM_PINNABLESUBMENU, ! N_("PageLayout Menu"), &pageLayoutMenuInfo, MENU_PAGELAYOUT }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Horizontal Align"), TGMUITEM_PINNABLESUBMENU, ! N_("HoriAlign Menu"), &horiAlignMenuInfo, MENU_HORIALIGN }, { N_("Vertical Align"), TGMUITEM_PINNABLESUBMENU, ! N_("VertAlign Menu"), &vertAlignMenuInfo, MENU_VERTALIGN }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Font"), TGMUITEM_PINNABLESUBMENU, N_("Font Menu"), &fontMenuInfo, MENU_FONT }, { N_("Text Style"), TGMUITEM_PINNABLESUBMENU, ! N_("TextStyle Menu"), &fontStyleMenuInfo, MENU_STYLE }, { N_("Text Size"), TGMUITEM_PINNABLESUBMENU, ! N_("TextSize Menu"), &fontSizeMenuInfo, MENU_SIZE }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Line Dash"), TGMUITEM_PINNABLESUBMENU, ! N_("LineDash Menu"), &lineDashMenuInfo, MENU_LINEDASH }, { N_("Line Style"), TGMUITEM_PINNABLESUBMENU, ! N_("LineStyle Menu"), &lineStyleMenuInfo, MENU_LINESTYLE }, { N_("Line Type"), TGMUITEM_PINNABLESUBMENU, ! N_("LineType Menu"), &lineTypeMenuInfo, MENU_LINETYPE }, { N_("Line Width"), TGMUITEM_PINNABLESUBMENU, ! N_("LineWidth Menu"), &lineWidthMenuInfo, MENU_LINEWIDTH }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, ! { N_("Fill"), TGMUITEM_PINNABLESUBMENU, N_("Fill Menu"), &fillMenuInfo, MENU_FILL }, ! { N_("Pen"), TGMUITEM_PINNABLESUBMENU, N_("Pen Menu"), &penMenuInfo, MENU_PEN }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Move Mode"), TGMUITEM_PINNABLESUBMENU, ! N_("MoveMode Menu"), &moveModeMenuInfo, MENU_MOVEMODE }, { N_("Shape"), TGMUITEM_PINNABLESUBMENU, ! N_("Shape Menu"), &shapeMenuInfo, MENU_SHAPE }, { N_("Stretchable Text"), TGMUITEM_PINNABLESUBMENU, ! N_("StretchText Menu"), &stretchableTextModeMenuInfo, MENU_STRETCHTEXT }, { N_("Transparent Pattern"), TGMUITEM_PINNABLESUBMENU, ! N_("TransPattern Menu"), &transPatModeMenuInfo, MENU_TRANSPAT }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Image Proc"), TGMUITEM_PINNABLESUBMENU, ! N_("ImageProc Menu"), &imageProcMenuInfo, MENU_IMAGEPROC }, { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, { N_("Color"), TGMUITEM_PINNABLESUBMENU, ! N_("Color Menu"), &colorMenuInfo, MENU_COLOR }, { N_("Navigate"), TGMUITEM_PINNABLESUBMENU, ! N_("Navigate Menu"), &navigateMenuInfo, MENU_NAVIGATE }, { N_("Special"), TGMUITEM_PINNABLESUBMENU, ! N_("Special Menu"), &specialMenuInfo, MENU_SPECIAL }, #ifdef _TANGRAM_II { N_("Tangram-II"), TGMUITEM_PINNABLESUBMENU, ! N_("Tangram-II Menu"), &tangram2MenuInfo, MENU_TANGRAM2 }, #endif /* _TANGRAM_II */ ! { N_("Help"), TGMUITEM_PINNABLESUBMENU, N_("Help Menu"), &helpMenuInfo, MENU_HELP }, { NULL, NULL, NULL, NULL, INVALID } *************** *** 1437,1461 **** static TgMenuItemInfo minimalMenubarMenuItemInfo[] = { ! { N_("File"), TGMUITEM_PINNABLESUBMENU, "File Menu", &fileMenuInfo, MENU_FILE }, ! { N_("Edit"), TGMUITEM_PINNABLESUBMENU, "Edit Menu", &editMenuInfo, MENU_EDIT }, { N_("Layout"), TGMUITEM_PINNABLESUBMENU, ! "Layout Menu", &layoutMenuInfo, MENU_LAYOUT }, { N_("Arrange"), TGMUITEM_PINNABLESUBMENU, ! "Arrange Menu", &arrangeMenuInfo, MENU_ARRANGE }, { N_("Properties"), TGMUITEM_PINNABLESUBMENU, ! "Properties Menu", &propertiesMenuInfo, MENU_PROPERTIES }, { N_("Color"), TGMUITEM_PINNABLESUBMENU, ! "Color Menu", &colorMenuInfo, MENU_COLOR }, { N_("Navigate"), TGMUITEM_PINNABLESUBMENU, ! "Navigate Menu", &navigateMenuInfo, MENU_NAVIGATE }, { N_("Special"), TGMUITEM_PINNABLESUBMENU, ! "Special Menu", &specialMenuInfo, MENU_SPECIAL }, #ifdef _TANGRAM_II { N_("Tangram-II"), TGMUITEM_PINNABLESUBMENU, ! "Tangram-II Menu", &tangram2MenuInfo, MENU_TANGRAM2 }, #endif /* _TANGRAM_II */ ! { N_("Help"), TGMUITEM_PINNABLESUBMENU, "Help Menu", &helpMenuInfo, MENU_HELP }, { NULL, NULL, NULL, NULL, INVALID } --- 1437,1461 ---- static TgMenuItemInfo minimalMenubarMenuItemInfo[] = { ! { N_("File"), TGMUITEM_PINNABLESUBMENU, N_("File Menu"), &fileMenuInfo, MENU_FILE }, ! { N_("Edit"), TGMUITEM_PINNABLESUBMENU, N_("Edit Menu"), &editMenuInfo, MENU_EDIT }, { N_("Layout"), TGMUITEM_PINNABLESUBMENU, ! N_("Layout Menu"), &layoutMenuInfo, MENU_LAYOUT }, { N_("Arrange"), TGMUITEM_PINNABLESUBMENU, ! N_("Arrange Menu"), &arrangeMenuInfo, MENU_ARRANGE }, { N_("Properties"), TGMUITEM_PINNABLESUBMENU, ! N_("Properties Menu"), &propertiesMenuInfo, MENU_PROPERTIES }, { N_("Color"), TGMUITEM_PINNABLESUBMENU, ! N_("Color Menu"), &colorMenuInfo, MENU_COLOR }, { N_("Navigate"), TGMUITEM_PINNABLESUBMENU, ! N_("Navigate Menu"), &navigateMenuInfo, MENU_NAVIGATE }, { N_("Special"), TGMUITEM_PINNABLESUBMENU, ! N_("Special Menu"), &specialMenuInfo, MENU_SPECIAL }, #ifdef _TANGRAM_II { N_("Tangram-II"), TGMUITEM_PINNABLESUBMENU, ! N_("Tangram-II Menu"), &tangram2MenuInfo, MENU_TANGRAM2 }, #endif /* _TANGRAM_II */ ! { N_("Help"), TGMUITEM_PINNABLESUBMENU, N_("Help Menu"), &helpMenuInfo, MENU_HELP }, { NULL, NULL, NULL, NULL, INVALID } *************** *** 1465,1524 **** static TgMenuItemInfo maximalMenubarMenuItemInfo[] = { ! { N_("File"), TGMUITEM_PINNABLESUBMENU, "File Menu", &fileMenuInfo, MENU_FILE }, ! { N_("Edit"), TGMUITEM_PINNABLESUBMENU, "Edit Menu", &editMenuInfo, MENU_EDIT }, { N_("Layout"), TGMUITEM_PINNABLESUBMENU, ! "Layout Menu", &layoutMenuInfo, MENU_LAYOUT }, { N_("Arrange"), TGMUITEM_PINNABLESUBMENU, ! "Arrange Menu", &arrangeMenuInfo, MENU_ARRANGE }, { N_("Properties"), TGMUITEM_PINNABLESUBMENU, ! "Properties Menu", &propertiesMenuInfo, MENU_PROPERTIES }, { N_("Move Mode"), TGMUITEM_PINNABLESUBMENU, ! "MoveMode Menu", &moveModeMenuInfo, MENU_MOVEMODE }, { N_("Page"), TGMUITEM_PINNABLESUBMENU, ! "Page Menu", &pageMenuInfo, MENU_PAGE }, { N_("Page Layout"), TGMUITEM_PINNABLESUBMENU, ! "PageLayout Menu", &pageLayoutMenuInfo, MENU_PAGELAYOUT }, { N_("Horizontal Align"), TGMUITEM_PINNABLESUBMENU, ! "HoriAlign Menu", &horiAlignMenuInfo, MENU_HORIALIGN }, { N_("Vertical Align"), TGMUITEM_PINNABLESUBMENU, ! "VertAlign Menu", &vertAlignMenuInfo, MENU_VERTALIGN }, ! { N_("Font"), TGMUITEM_PINNABLESUBMENU, "Font Menu", &fontMenuInfo, MENU_FONT }, { N_("Text Style"), TGMUITEM_PINNABLESUBMENU, ! "TextStyle Menu", &fontStyleMenuInfo, MENU_STYLE }, { N_("Text Size"), TGMUITEM_PINNABLESUBMENU, ! "TextSize Menu", &fontSizeMenuInfo, MENU_SIZE }, { N_("Shape"), TGMUITEM_PINNABLESUBMENU, ! "Shape Menu", &shapeMenuInfo, MENU_SHAPE }, { N_("Stretchable Text"), TGMUITEM_PINNABLESUBMENU, ! "StretchText Menu", &stretchableTextModeMenuInfo, MENU_STRETCHTEXT }, { N_("Line Dash"), TGMUITEM_PINNABLESUBMENU, ! "LineDash Menu", &lineDashMenuInfo, MENU_LINEDASH }, { N_("Line Style"), TGMUITEM_PINNABLESUBMENU, ! "LineStyle Menu", &lineStyleMenuInfo, MENU_LINESTYLE }, { N_("Line Type"), TGMUITEM_PINNABLESUBMENU, ! "LineType Menu", &lineTypeMenuInfo, MENU_LINETYPE }, { N_("Line Width"), TGMUITEM_PINNABLESUBMENU, ! "LineWidth Menu", &lineWidthMenuInfo, MENU_LINEWIDTH }, ! { N_("Fill"), TGMUITEM_PINNABLESUBMENU, "Fill Menu", &fillMenuInfo, MENU_FILL }, ! { N_("Pen"), TGMUITEM_PINNABLESUBMENU, "Pen Menu", &penMenuInfo, MENU_PEN }, { N_("Transparent Pattern"), TGMUITEM_PINNABLESUBMENU, ! "TransPattern Menu", &transPatModeMenuInfo, MENU_TRANSPAT }, { N_("Color"), TGMUITEM_PINNABLESUBMENU, ! "Color Menu", &colorMenuInfo, MENU_COLOR }, { N_("Image Proc"), TGMUITEM_PINNABLESUBMENU, ! "ImageProc Menu", &imageProcMenuInfo, MENU_IMAGEPROC }, { N_("Navigate"), TGMUITEM_PINNABLESUBMENU, ! "Navigate Menu", &navigateMenuInfo, MENU_NAVIGATE }, { N_("Special"), TGMUITEM_PINNABLESUBMENU, ! "Special Menu", &specialMenuInfo, MENU_SPECIAL }, #ifdef _TANGRAM_II { N_("Tangram-II"), TGMUITEM_PINNABLESUBMENU, ! "Tangram-II Menu", &tangram2MenuInfo, MENU_TANGRAM2 }, #endif /* _TANGRAM_II */ ! { N_("Help"), TGMUITEM_PINNABLESUBMENU, "Help Menu", &helpMenuInfo, MENU_HELP }, { NULL, NULL, NULL, NULL, INVALID } --- 1465,1524 ---- static TgMenuItemInfo maximalMenubarMenuItemInfo[] = { ! { N_("File"), TGMUITEM_PINNABLESUBMENU, N_("File Menu"), &fileMenuInfo, MENU_FILE }, ! { N_("Edit"), TGMUITEM_PINNABLESUBMENU, N_("Edit Menu"), &editMenuInfo, MENU_EDIT }, { N_("Layout"), TGMUITEM_PINNABLESUBMENU, ! N_("Layout Menu"), &layoutMenuInfo, MENU_LAYOUT }, { N_("Arrange"), TGMUITEM_PINNABLESUBMENU, ! N_("Arrange Menu"), &arrangeMenuInfo, MENU_ARRANGE }, { N_("Properties"), TGMUITEM_PINNABLESUBMENU, ! N_("Properties Menu"), &propertiesMenuInfo, MENU_PROPERTIES }, { N_("Move Mode"), TGMUITEM_PINNABLESUBMENU, ! N_("MoveMode Menu"), &moveModeMenuInfo, MENU_MOVEMODE }, { N_("Page"), TGMUITEM_PINNABLESUBMENU, ! N_("Page Menu"), &pageMenuInfo, MENU_PAGE }, { N_("Page Layout"), TGMUITEM_PINNABLESUBMENU, ! N_("PageLayout Menu"), &pageLayoutMenuInfo, MENU_PAGELAYOUT }, { N_("Horizontal Align"), TGMUITEM_PINNABLESUBMENU, ! N_("HoriAlign Menu"), &horiAlignMenuInfo, MENU_HORIALIGN }, { N_("Vertical Align"), TGMUITEM_PINNABLESUBMENU, ! N_("VertAlign Menu"), &vertAlignMenuInfo, MENU_VERTALIGN }, ! { N_("Font"), TGMUITEM_PINNABLESUBMENU, N_("Font Menu"), &fontMenuInfo, MENU_FONT }, { N_("Text Style"), TGMUITEM_PINNABLESUBMENU, ! N_("TextStyle Menu"), &fontStyleMenuInfo, MENU_STYLE }, { N_("Text Size"), TGMUITEM_PINNABLESUBMENU, ! N_("TextSize Menu"), &fontSizeMenuInfo, MENU_SIZE }, { N_("Shape"), TGMUITEM_PINNABLESUBMENU, ! N_("Shape Menu"), &shapeMenuInfo, MENU_SHAPE }, { N_("Stretchable Text"), TGMUITEM_PINNABLESUBMENU, ! N_("StretchText Menu"), &stretchableTextModeMenuInfo, MENU_STRETCHTEXT }, { N_("Line Dash"), TGMUITEM_PINNABLESUBMENU, ! N_("LineDash Menu"), &lineDashMenuInfo, MENU_LINEDASH }, { N_("Line Style"), TGMUITEM_PINNABLESUBMENU, ! N_("LineStyle Menu"), &lineStyleMenuInfo, MENU_LINESTYLE }, { N_("Line Type"), TGMUITEM_PINNABLESUBMENU, ! N_("LineType Menu"), &lineTypeMenuInfo, MENU_LINETYPE }, { N_("Line Width"), TGMUITEM_PINNABLESUBMENU, ! N_("LineWidth Menu"), &lineWidthMenuInfo, MENU_LINEWIDTH }, ! { N_("Fill"), TGMUITEM_PINNABLESUBMENU, N_("Fill Menu"), &fillMenuInfo, MENU_FILL }, ! { N_("Pen"), TGMUITEM_PINNABLESUBMENU, N_("Pen Menu"), &penMenuInfo, MENU_PEN }, { N_("Transparent Pattern"), TGMUITEM_PINNABLESUBMENU, ! N_("TransPattern Menu"), &transPatModeMenuInfo, MENU_TRANSPAT }, { N_("Color"), TGMUITEM_PINNABLESUBMENU, ! N_("Color Menu"), &colorMenuInfo, MENU_COLOR }, { N_("Image Proc"), TGMUITEM_PINNABLESUBMENU, ! N_("ImageProc Menu"), &imageProcMenuInfo, MENU_IMAGEPROC }, { N_("Navigate"), TGMUITEM_PINNABLESUBMENU, ! N_("Navigate Menu"), &navigateMenuInfo, MENU_NAVIGATE }, { N_("Special"), TGMUITEM_PINNABLESUBMENU, ! N_("Special Menu"), &specialMenuInfo, MENU_SPECIAL }, #ifdef _TANGRAM_II { N_("Tangram-II"), TGMUITEM_PINNABLESUBMENU, ! N_("Tangram-II Menu"), &tangram2MenuInfo, MENU_TANGRAM2 }, #endif /* _TANGRAM_II */ ! { N_("Help"), TGMUITEM_PINNABLESUBMENU, N_("Help Menu"), &helpMenuInfo, MENU_HELP }, { NULL, NULL, NULL, NULL, INVALID } *** msg.c.orig Tue Nov 16 09:07:22 1999 --- msg.c Tue Nov 16 09:07:22 1999 *************** *** 1419,1422 **** --- 1419,1423 ---- *cmdLineTmpFileModeStr = '\0'; cmdLineOneFilePerPage = FALSE; + *outputDir = '\0'; for (argc--, argv++; argc > 0; argc--, argv++) { if (**argv == '-') { *** page.c.orig Tue Nov 16 09:07:24 1999 --- page.c Tue Nov 16 09:07:24 1999 *************** *** 1283,1286 **** --- 1283,1287 ---- if (strcmp(dup_spec, "*") == 0) { for (i=0; i < lastPageNum; i++) pspi->page_specified[i] = TRUE; + pspi->num_pages_specified = lastPageNum; } else { for (i=0; i < lastPageNum; i++) pspi->page_specified[i] = FALSE; *** poly.c.orig Tue Nov 16 09:07:26 1999 --- poly.c Tue Nov 16 09:07:26 1999 *************** *** 1990,1993 **** --- 1990,2015 ---- } + void SetWidthAndSpec(dWidth, pnWidth, pszWidthSpec) + double dWidth; + int *pnWidth; + char *pszWidthSpec; + { + float fval=(float)dWidth; + + FormatFloat(&fval, pszWidthSpec); + *pnWidth = round(dWidth); + } + + void ScaleWidthAndSpec(dScale, pnWidth, pszWidthSpec) + double dScale; + int *pnWidth; + char *pszWidthSpec; /* char[40] */ + { + double dw=GetWidthInDouble(*pnWidth, pszWidthSpec, NULL); + + dw = dw*dScale; + SetWidthAndSpec(dw, pnWidth, pszWidthSpec); + } + void DumpArrow(FP, TailV, HeadV, ArrowW, ArrowH, aw_spec, ah_spec, Pen, TransPat, ColorIndex) *** setup.c.orig Tue Nov 16 09:07:27 1999 --- setup.c Tue Nov 16 09:07:28 1999 *************** *** 872,876 **** #endif /* PRINT_CMD */ } ! *outputDir = '\0'; if ((c_ptr=XGetDefault(mainDisplay, TOOL_NAME, "PrintDirectory")) != NULL) { strcpy(outputDir, c_ptr); --- 872,876 ---- #endif /* PRINT_CMD */ } ! if (!PRTGIF) *outputDir = '\0'; if ((c_ptr=XGetDefault(mainDisplay, TOOL_NAME, "PrintDirectory")) != NULL) { strcpy(outputDir, c_ptr); *** shape.c.orig Tue Nov 16 09:07:29 1999 --- shape.c Tue Nov 16 09:07:29 1999 *************** *** 120,123 **** --- 120,124 ---- char *GetShapeDesc(index) int index; + /* returned string has been translated */ { if (shapeDescMouseStatus[index].m == NULL) { *** shortcut.c.orig Tue Nov 16 09:07:30 1999 --- shortcut.c Tue Nov 16 09:07:30 1999 *************** *** 159,162 **** --- 159,163 ---- { '-', CNTRL_META, "ToggleGridSystem()", 0, CMDID_TOGGLEGRIDSYSTEM }, { '=', CNTRL_META, "FindAgain()", 0, CMDID_FINDAGAIN }, + { '5', CNTRL_META, "InsertRightSubscript()", 0, CMDID_INSERTRIGHTSUBSCRIPT }, { '6', CNTRL_META, "InsertRightSuperscript()", 0, CMDID_INSERTRIGHTSUPERSCRIPT }, *************** *** 329,333 **** { '\0', 0, "InsertVerticalOffset()", 0, CMDID_INSERTVERTICALOFFSET }, { '\0', 0, "RemoveVerticalOffset()", 0, CMDID_REMOVEVERTICALOFFSET }, - { '\0', 0, "InsertRightSubscript()", 0, CMDID_INSERTRIGHTSUBSCRIPT }, { '\0', 0, "InsertLeftSuperscript()", 0, CMDID_INSERTLEFTSUPERSCRIPT }, { '\0', 0, "InsertLeftSubscript()", 0, CMDID_INSERTLEFTSUBSCRIPT }, --- 330,333 ---- *** stretch.c.orig Tue Nov 16 09:07:31 1999 --- stretch.c Tue Nov 16 09:07:31 1999 *************** *** 879,884 **** static ! void ShearedXY(Corner, x, y, x_shear, y_shear, x_scale, y_scale, new_x, new_y) ! int Corner, x, y, x_shear, y_shear, x_scale, y_scale, * new_x, * new_y; { double val, dx, dy; --- 879,886 ---- static ! void ShearedXY(Corner, x, y, dx_shear, dy_shear, dx_scale, dy_scale, ! new_x, new_y) ! int Corner, x, y, *new_x, *new_y; ! double dx_shear, dy_shear, dx_scale, dy_scale; { double val, dx, dy; *************** *** 890,895 **** *new_y = y; } else { ! dy = ((double)(y-pivotY))*((double)y_scale)/1000.0; ! val = tan(((double)x_shear)/1000.0)*dy; *new_x = round(val + x); *new_y = round(dy + pivotY); --- 892,897 ---- *new_y = y; } else { ! dy = ((double)(y-pivotY))*dy_scale/1000.0; ! val = tan(dx_shear/1000.0)*dy; *new_x = round(val + x); *new_y = round(dy + pivotY); *************** *** 902,907 **** *new_y = y; } else { ! dx = ((double)(x-pivotX))*((double)x_scale)/1000.0; ! val = tan(((double)y_shear)/1000.0)*dx; *new_x = round(dx + pivotX); *new_y = round(val + y); --- 904,909 ---- *new_y = y; } else { ! dx = ((double)(x-pivotX))*dx_scale/1000.0; ! val = tan(dy_shear/1000.0)*dx; *new_x = round(dx + pivotX); *new_y = round(val + y); *************** *** 911,917 **** static ! void ShearedAbsXY(Corner, x, y, x_shear, y_shear, x_scale, y_scale, new_x, ! new_y) ! int Corner, x, y, x_shear, y_shear, x_scale, y_scale, * new_x, * new_y; { double val, dx, dy; --- 913,920 ---- static ! void ShearedAbsXY(Corner, abs_x, abs_y, dx_shear, dy_shear, dx_scale, dy_scale, ! new_x, new_y) ! int Corner, abs_x, abs_y, *new_x, *new_y; ! double dx_shear, dy_shear, dx_scale, dy_scale; { double val, dx, dy; *************** *** 919,929 **** if (Corner != CORNER_NONE && Corner != CORNER_RIGHT && Corner != CORNER_LEFT) { ! if (y == pivotY) { ! *new_x = x; ! *new_y = y; } else { ! dy = ((double)(y-absPivotY))*((double)y_scale)/1000.0; ! val = tan(((double)x_shear)/1000.0)*dy; ! *new_x = round(val + x); *new_y = round(dy + absPivotY); } --- 922,932 ---- if (Corner != CORNER_NONE && Corner != CORNER_RIGHT && Corner != CORNER_LEFT) { ! if (abs_y == absPivotY) { ! *new_x = abs_x; ! *new_y = abs_y; } else { ! dy = ((double)(abs_y-absPivotY))*dy_scale/1000.0; ! val = tan(dx_shear/1000.0)*dy; ! *new_x = round(val + abs_x); *new_y = round(dy + absPivotY); } *************** *** 931,942 **** if (Corner != CORNER_NONE && Corner != CORNER_TOP && Corner != CORNER_BOTTOM) { ! if (x == pivotX) { ! *new_x = x; ! *new_y = y; } else { ! dx = ((double)(x-absPivotX))*((double)x_scale)/1000.0; ! val = tan(((double)y_shear)/1000.0)*dx; *new_x = round(dx + absPivotX); ! *new_y = round(val + y); } } --- 934,945 ---- if (Corner != CORNER_NONE && Corner != CORNER_TOP && Corner != CORNER_BOTTOM) { ! if (abs_x == absPivotX) { ! *new_x = abs_x; ! *new_y = abs_y; } else { ! dx = ((double)(abs_x-absPivotX))*dx_scale/1000.0; ! val = tan(dy_shear/1000.0)*dx; *new_x = round(dx + absPivotX); ! *new_y = round(val + abs_y); } } *************** *** 1006,1013 **** } ! void ShearObj(ObjPtr, Corner, XShear, YShear, XScale, YScale, RealLtX, RealLtY) struct ObjRec *ObjPtr; int Corner; ! int XShear, YShear, XScale, YScale; /* scaled by 1000 */ int *RealLtX, *RealLtY; { --- 1009,1017 ---- } ! void ShearObj(ObjPtr, Corner, dxShear, dyShear, dxScale, dyScale, ! RealLtX, RealLtY) struct ObjRec *ObjPtr; int Corner; ! double dxShear, dyShear, dxScale, dyScale; /* scaled by 1000 */ int *RealLtX, *RealLtY; { *************** *** 1027,1031 **** for (obj_ptr=ObjPtr->detail.r->first; obj_ptr != NULL; obj_ptr=obj_ptr->next) { ! ShearObj(obj_ptr, Corner, XShear, YShear, XScale, YScale, RealLtX, RealLtY); } --- 1031,1035 ---- for (obj_ptr=ObjPtr->detail.r->first; obj_ptr != NULL; obj_ptr=obj_ptr->next) { ! ShearObj(obj_ptr, Corner, dxShear, dyShear, dxScale, dyScale, RealLtX, RealLtY); } *************** *** 1046,1071 **** } ShearedAbsXY(Corner, ObjPtr->x+ObjPtr->ctm->t[CTM_TX], ! ObjPtr->y+ObjPtr->ctm->t[CTM_TY], XShear, YShear, XScale, YScale, ! &x, &y); switch (Corner) { case CORNER_TOP: case CORNER_BOTTOM: ! tan_val = tan(((double)XShear)/1000.0); ctm.m[CTM_SX] = (double)1000; ! ctm.m[CTM_SY] = (double)YScale; ctm.m[CTM_SIN] = (double)0; ! ctm.m[CTM_MSIN] = ((double)YScale)*tan_val; break; case CORNER_RIGHT: case CORNER_LEFT: ! tan_val = tan(((double)YShear)/1000.0); ! ctm.m[CTM_SX] = (double)XScale; ctm.m[CTM_SY] = (double)1000; ! ctm.m[CTM_SIN] = ((double)XScale)*tan_val; ctm.m[CTM_MSIN] = (double)0; break; default: ! ctm.m[CTM_SX] = (double)XScale; ! ctm.m[CTM_SY] = (double)YScale; ctm.m[CTM_SIN] = (double)0; ctm.m[CTM_MSIN] = (double)0; --- 1050,1075 ---- } ShearedAbsXY(Corner, ObjPtr->x+ObjPtr->ctm->t[CTM_TX], ! ObjPtr->y+ObjPtr->ctm->t[CTM_TY], dxShear, dyShear, ! dxScale, dyScale, &x, &y); switch (Corner) { case CORNER_TOP: case CORNER_BOTTOM: ! tan_val = tan(dxShear/1000.0); ctm.m[CTM_SX] = (double)1000; ! ctm.m[CTM_SY] = dyScale; ctm.m[CTM_SIN] = (double)0; ! ctm.m[CTM_MSIN] = dyScale*tan_val; break; case CORNER_RIGHT: case CORNER_LEFT: ! tan_val = tan(dyShear/1000.0); ! ctm.m[CTM_SX] = dxScale; ctm.m[CTM_SY] = (double)1000; ! ctm.m[CTM_SIN] = dxScale*tan_val; ctm.m[CTM_MSIN] = (double)0; break; default: ! ctm.m[CTM_SX] = dxScale; ! ctm.m[CTM_SY] = dyScale; ctm.m[CTM_SIN] = (double)0; ctm.m[CTM_MSIN] = (double)0; *************** *** 1120,1124 **** if (auto_center_attr) { for (attr_ptr=ObjPtr->fattr; attr_ptr != NULL; attr_ptr=attr_ptr->next) { ! ShearObj(attr_ptr->obj, Corner, XShear, YShear, XScale, YScale, NULL, NULL); if (attr_ptr->shown) { --- 1124,1128 ---- if (auto_center_attr) { for (attr_ptr=ObjPtr->fattr; attr_ptr != NULL; attr_ptr=attr_ptr->next) { ! ShearObj(attr_ptr->obj, Corner, dxShear, dyShear, dxScale, dyScale, NULL, NULL); if (attr_ptr->shown) { *************** *** 1128,1132 **** } else { for (attr_ptr=ObjPtr->fattr; attr_ptr != NULL; attr_ptr=attr_ptr->next) { ! ShearObj(attr_ptr->obj, Corner, XShear, YShear, XScale, YScale, NULL, NULL); } --- 1132,1136 ---- } else { for (attr_ptr=ObjPtr->fattr; attr_ptr != NULL; attr_ptr=attr_ptr->next) { ! ShearObj(attr_ptr->obj, Corner, dxShear, dyShear, dxScale, dyScale, NULL, NULL); } *************** *** 1138,1144 **** static ! void StretchSimpleText(ObjPtr, Corner, XScale, YScale) struct ObjRec *ObjPtr; ! int Corner, XScale, YScale; { /* !stratchableText */ --- 1142,1148 ---- static ! void StretchSimpleText(ObjPtr, Corner) struct ObjRec *ObjPtr; ! int Corner; { /* !stratchableText */ *************** *** 1202,1208 **** static ! void StretchAttr(ObjPtr, Corner, XScale, YScale, AutoCenterAttr) struct ObjRec *ObjPtr; ! int Corner, XScale, YScale, AutoCenterAttr; { struct AttrRec *attr_ptr=ObjPtr->fattr; --- 1206,1213 ---- static ! void StretchAttr(ObjPtr, Corner, dxScale, dyScale, AutoCenterAttr) struct ObjRec *ObjPtr; ! int Corner, AutoCenterAttr; ! double dxScale, dyScale; { struct AttrRec *attr_ptr=ObjPtr->fattr; *************** *** 1212,1215 **** --- 1217,1221 ---- if (stretchingEverything) { struct BBRec final_obbox; + double dz=(double)0; if (AutoCenterAttr) { *************** *** 1224,1228 **** &final_obbox.rbx, &final_obbox.rby); ! ShearObj(attr_ptr->obj, Corner, 0, 0, XScale, YScale, &final_obbox.ltx, &final_obbox.lty); if (attr_ptr->shown) { --- 1230,1234 ---- &final_obbox.rbx, &final_obbox.rby); ! ShearObj(attr_ptr->obj, Corner, dz, dz, dxScale, dyScale, &final_obbox.ltx, &final_obbox.lty); if (attr_ptr->shown) { *************** *** 1241,1245 **** &final_obbox.rbx, &final_obbox.rby); ! ShearObj(obj_ptr, Corner, 0, 0, XScale, YScale, &final_obbox.ltx, &final_obbox.lty); } --- 1247,1251 ---- &final_obbox.rbx, &final_obbox.rby); ! ShearObj(obj_ptr, Corner, dz, dz, dxScale, dyScale, &final_obbox.ltx, &final_obbox.lty); } *************** *** 1252,1256 **** CenterObjInOBBox(attr_ptr->obj, ObjPtr->obbox, NULL); } else { ! StretchSimpleText(attr_ptr->obj, Corner, XScale, YScale); } } --- 1258,1262 ---- CenterObjInOBBox(attr_ptr->obj, ObjPtr->obbox, NULL); } else { ! StretchSimpleText(attr_ptr->obj, Corner); } } *************** *** 1258,1262 **** for (attr_ptr=ObjPtr->fattr; attr_ptr != NULL; attr_ptr=attr_ptr->next) { ! StretchSimpleText(attr_ptr->obj, Corner, XScale, YScale); } } --- 1264,1268 ---- for (attr_ptr=ObjPtr->fattr; attr_ptr != NULL; attr_ptr=attr_ptr->next) { ! StretchSimpleText(attr_ptr->obj, Corner); } } *************** *** 1369,1376 **** static ! void StretchSimpleObj(ObjPtr, Corner, XScale, YScale, FinalOBBox, auto_center_attr) struct ObjRec *ObjPtr; ! int Corner, XScale, YScale, auto_center_attr; struct BBRec *FinalOBBox; { --- 1375,1383 ---- static ! void StretchSimpleObj(ObjPtr, Corner, dxScale, dyScale, FinalOBBox, auto_center_attr) struct ObjRec *ObjPtr; ! int Corner, auto_center_attr; ! double dxScale, dyScale; struct BBRec *FinalOBBox; { *************** *** 1389,1393 **** } AdjObjOBBox(ObjPtr); ! StretchAttr(ObjPtr, Corner, XScale, YScale, auto_center_attr); AdjObjBBox(ObjPtr); } --- 1396,1400 ---- } AdjObjOBBox(ObjPtr); ! StretchAttr(ObjPtr, Corner, dxScale, dyScale, auto_center_attr); AdjObjBBox(ObjPtr); } *************** *** 1394,1406 **** static ! void StretchObj(ObjPtr, Corner, XScale, YScale, ForceToUseCTM) struct ObjRec *ObjPtr; ! int Corner, XScale, YScale, ForceToUseCTM; { int ltx, lty, rbx, rby; int auto_center_attr=AutoCenterAttr(ObjPtr); struct BBRec final_obbox; ! struct ObjRec *obj_ptr; ! struct AttrRec *saved_fattr, *saved_lattr; StretchedAbsXY(ObjPtr->obbox.ltx, ObjPtr->obbox.lty, <x, <y); --- 1401,1460 ---- static ! void ScaleLineWidth(ObjPtr, dScale) struct ObjRec *ObjPtr; ! double dScale; { + double dscale=(double)(dScale/1000.0); + + if (!stretchingEverything) return; + + switch (ObjPtr->type) { + case OBJ_POLY: + ScaleWidthAndSpec(dscale, &ObjPtr->detail.p->width, + ObjPtr->detail.p->width_spec); + ScaleWidthAndSpec(dscale, &ObjPtr->detail.p->aw, + ObjPtr->detail.p->aw_spec); + ScaleWidthAndSpec(dscale, &ObjPtr->detail.p->ah, + ObjPtr->detail.p->ah_spec); + break; + case OBJ_POLYGON: + ScaleWidthAndSpec(dscale, &ObjPtr->detail.g->width, + ObjPtr->detail.g->width_spec); + break; + case OBJ_BOX: + ScaleWidthAndSpec(dscale, &ObjPtr->detail.b->width, + ObjPtr->detail.b->width_spec); + break; + case OBJ_OVAL: + ScaleWidthAndSpec(dscale, &ObjPtr->detail.o->width, + ObjPtr->detail.o->width_spec); + break; + case OBJ_ARC: + ScaleWidthAndSpec(dscale, &ObjPtr->detail.a->width, + ObjPtr->detail.a->width_spec); + ScaleWidthAndSpec(dscale, &ObjPtr->detail.a->aw, + ObjPtr->detail.a->aw_spec); + ScaleWidthAndSpec(dscale, &ObjPtr->detail.a->ah, + ObjPtr->detail.a->ah_spec); + break; + case OBJ_RCBOX: + ScaleWidthAndSpec(dscale, &ObjPtr->detail.rcb->width, + ObjPtr->detail.rcb->width_spec); + break; + } + } + + static + void StretchObj(ObjPtr, Corner, dxScale, dyScale, ForceToUseCTM) + struct ObjRec *ObjPtr; + int Corner, ForceToUseCTM; + double dxScale, dyScale; + { int ltx, lty, rbx, rby; int auto_center_attr=AutoCenterAttr(ObjPtr); struct BBRec final_obbox; ! struct ObjRec *obj_ptr=NULL; ! struct AttrRec *saved_fattr=NULL, *saved_lattr=NULL; ! double dz=(double)0; StretchedAbsXY(ObjPtr->obbox.ltx, ObjPtr->obbox.lty, <x, <y); *************** *** 1430,1438 **** case OBJ_ARC: case OBJ_RCBOX: if (ObjPtr->ctm == NULL) { ! StretchSimpleObj(ObjPtr, Corner, XScale, YScale, &final_obbox, auto_center_attr); } else { ! ShearObj(ObjPtr, Corner, 0, 0, XScale, YScale, &final_obbox.ltx, &final_obbox.lty); } --- 1484,1493 ---- case OBJ_ARC: case OBJ_RCBOX: + ScaleLineWidth(ObjPtr, dxScale); if (ObjPtr->ctm == NULL) { ! StretchSimpleObj(ObjPtr, Corner, dxScale, dyScale, &final_obbox, auto_center_attr); } else { ! ShearObj(ObjPtr, Corner, dz, dz, dxScale, dyScale, &final_obbox.ltx, &final_obbox.lty); } *************** *** 1440,1447 **** case OBJ_TEXT: if (stretchableText) { ! ShearObj(ObjPtr, Corner, 0, 0, XScale, YScale, &final_obbox.ltx, &final_obbox.lty); } else { ! StretchSimpleText(ObjPtr, Corner, XScale, YScale); } break; --- 1495,1502 ---- case OBJ_TEXT: if (stretchableText) { ! ShearObj(ObjPtr, Corner, dz, dz, dxScale, dyScale, &final_obbox.ltx, &final_obbox.lty); } else { ! StretchSimpleText(ObjPtr, Corner); } break; *************** *** 1452,1459 **** for (obj_ptr=ObjPtr->detail.r->first; obj_ptr != NULL; obj_ptr=obj_ptr->next) { ! StretchObj(obj_ptr, Corner, XScale, YScale, ForceToUseCTM); } AdjObjOBBox(ObjPtr); ! StretchAttr(ObjPtr, Corner, XScale, YScale, auto_center_attr); AdjObjSplineVs(ObjPtr); AdjObjBBox(ObjPtr); --- 1507,1514 ---- for (obj_ptr=ObjPtr->detail.r->first; obj_ptr != NULL; obj_ptr=obj_ptr->next) { ! StretchObj(obj_ptr, Corner, dxScale, dyScale, ForceToUseCTM); } AdjObjOBBox(ObjPtr); ! StretchAttr(ObjPtr, Corner, dxScale, dyScale, auto_center_attr); AdjObjSplineVs(ObjPtr); AdjObjBBox(ObjPtr); *************** *** 1464,1472 **** saved_lattr = ObjPtr->lattr; ObjPtr->fattr = ObjPtr->lattr = NULL; ! ShearObj(ObjPtr, Corner, 0, 0, XScale, YScale, &final_obbox.ltx, &final_obbox.lty); ObjPtr->fattr = saved_fattr; ObjPtr->lattr = saved_lattr; ! StretchAttr(ObjPtr, Corner, XScale, YScale, auto_center_attr); AdjObjBBox(ObjPtr); break; --- 1519,1527 ---- saved_lattr = ObjPtr->lattr; ObjPtr->fattr = ObjPtr->lattr = NULL; ! ShearObj(ObjPtr, Corner, dz, dz, dxScale, dyScale, &final_obbox.ltx, &final_obbox.lty); ObjPtr->fattr = saved_fattr; ObjPtr->lattr = saved_lattr; ! StretchAttr(ObjPtr, Corner, dxScale, dyScale, auto_center_attr); AdjObjBBox(ObjPtr); break; *************** *** 1475,1480 **** static ! void StretchAllSelObjects(Corner, XScale, YScale) ! int Corner, XScale, YScale; { struct SelRec *sel_ptr; --- 1530,1536 ---- static ! void StretchAllSelObjects(Corner, dxScale, dyScale) ! int Corner; ! double dxScale, dyScale; { struct SelRec *sel_ptr; *************** *** 1482,1486 **** for (sel_ptr = topSel; sel_ptr != NULL; sel_ptr = sel_ptr->next) { if (!sel_ptr->obj->locked) { ! StretchObj(sel_ptr->obj, Corner, XScale, YScale, FALSE); } } --- 1538,1542 ---- for (sel_ptr = topSel; sel_ptr != NULL; sel_ptr = sel_ptr->next) { if (!sel_ptr->obj->locked) { ! StretchObj(sel_ptr->obj, Corner, dxScale, dyScale, FALSE); } } *************** *** 1505,1510 **** static ! int ConstrainedStretchAllSel(Corner, XScale, YScale, ltx, lty, rbx, rby) ! int Corner, XScale, YScale; int *ltx, *lty, *rbx, *rby; { --- 1561,1566 ---- static ! int ConstrainedStretchAllSel(Corner, ltx, lty, rbx, rby) ! int Corner; int *ltx, *lty, *rbx, *rby; { *************** *** 1682,1687 **** static ! void StretchAllSel(Corner, XScale, YScale) ! int Corner, XScale, YScale; /* XScale and YScale are scaled by 1000 */ { int ltx, lty, rbx, rby, saved_ltx, saved_lty, saved_rbx, saved_rby; --- 1738,1744 ---- static ! void StretchAllSel(Corner, dxScale, dyScale) ! int Corner; ! double dxScale, dyScale; /* dxScale and dyScale are scaled by 1000 */ { int ltx, lty, rbx, rby, saved_ltx, saved_lty, saved_rbx, saved_rby; *************** *** 1698,1704 **** RecordCmd(CMD_STRETCH, NULL, topSel, botSel, numObjSelected); ! poly_stretched = ConstrainedStretchAllSel(Corner, XScale, YScale, ! <x, <y, &rbx, &rby); ! StretchAllSelObjects(Corner, XScale, YScale); UpdSelBBox(); if (poly_stretched) { --- 1755,1760 ---- RecordCmd(CMD_STRETCH, NULL, topSel, botSel, numObjSelected); ! poly_stretched = ConstrainedStretchAllSel(Corner, <x, <y, &rbx, &rby); ! StretchAllSelObjects(Corner, dxScale, dyScale); UpdSelBBox(); if (poly_stretched) { *************** *** 1719,1723 **** } else { PrepareToRecord(CMD_REPLACE, topSel, botSel, numObjSelected); ! StretchAllSelObjects(Corner, XScale, YScale); RecordCmd(CMD_REPLACE, NULL, topSel, botSel, numObjSelected); UpdSelBBox(); --- 1775,1779 ---- } else { PrepareToRecord(CMD_REPLACE, topSel, botSel, numObjSelected); ! StretchAllSelObjects(Corner, dxScale, dyScale); RecordCmd(CMD_REPLACE, NULL, topSel, botSel, numObjSelected); UpdSelBBox(); *************** *** 1773,1776 **** --- 1829,1888 ---- static + void PointsToShearScale(Corner, x_pivot, y_pivot, x_move, y_move, + x_current, y_current, dx_shear, dy_shear, dx_scale, dy_scale) + int Corner, x_pivot, y_pivot, x_move, y_move, x_current, y_current; + double *dx_shear, *dy_shear, *dx_scale, *dy_scale; + /* the returned shear value is 1000*arctan() */ + /* the returned scale value is 1000*scaling */ + { + int dx=x_current-x_move, dy=y_current-y_move; + + switch (Corner) { + case CORNER_TOP: + case CORNER_BOTTOM: + if (dx_scale != NULL) *dx_scale = (double)1000; + if (dy_scale != NULL) { + *dy_scale = (dy == 0 ? (double)1000 : + (double)(((double)(y_current-y_pivot)) / + ((double)(y_move-y_pivot))*1000.0)); + } + if (dx_shear != NULL) { + *dx_shear = (dx == 0 ? (double)0 : + (double)(atan2((double)dx,(double)y_current-y_pivot)*1000.0)); + } + if (dy_shear != NULL) *dy_shear = (double)0; + break; + case CORNER_RIGHT: + case CORNER_LEFT: + if (dx_scale != NULL) { + *dx_scale = (dx == 0 ? (double)1000 : + (double)(((double)(x_current-x_pivot)) / + ((double)(x_move-x_pivot))*1000.0)); + } + if (dy_scale != NULL) *dy_scale = (double)1000; + if (dx_shear != NULL) *dx_shear = (double)0; + if (dy_shear != NULL) { + *dy_shear = (dy == 0 ? (double)0 : + (double)(atan2((double)dy,(double)x_current-x_pivot)*1000.0)); + } + break; + default: /* scaling only, no shearing */ + if (dx_scale != NULL) { + *dx_scale = (dx == 0 ? (double)1000 : + (double)(((double)(x_current-x_pivot)) / + ((double)(x_move-x_pivot))*1000.0)); + } + if (dy_scale != NULL) { + *dy_scale = (dy == 0 ? (double)1000 : + (double)(((double)(y_current-y_pivot)) / + ((double)(y_move-y_pivot))*1000.0)); + } + if (dx_shear != NULL) *dx_shear = (double)0; + if (dy_shear != NULL) *dy_shear = (double)0; + break; + } + } + + static void StretchBox(XGridOff, YGridOff, ObjPtr, Corner) int XGridOff, YGridOff, Corner; *************** *** 1945,1949 **** stretched_sel_lty-2, stretched_sel_rbx+2, stretched_sel_rby+2); if (multX != (double)1.0 || multY != (double)1.0) { ! int x_scale=1000, y_scale=1000, num_to_resize=0; char **ppsz_names_to_resize=NULL; --- 2057,2062 ---- stretched_sel_lty-2, stretched_sel_rbx+2, stretched_sel_rby+2); if (multX != (double)1.0 || multY != (double)1.0) { ! int num_to_resize=0; ! double dx_scale=(double)1000, dy_scale=(double)1000; char **ppsz_names_to_resize=NULL; *************** *** 1950,1961 **** PointsToShearScale(Corner, pivotX, pivotY, moveX, moveY, moveX+grid_x-XGridOff, moveY+grid_y-YGridOff, ! NULL, NULL, &x_scale, &y_scale); if (proportional) { ! int abs_x_scale=abs(x_scale), abs_y_scale=abs(y_scale); if (abs_x_scale > abs_y_scale) { ! y_scale = x_scale; } else if (abs_x_scale < abs_y_scale) { ! x_scale = y_scale; } } --- 2063,2074 ---- PointsToShearScale(Corner, pivotX, pivotY, moveX, moveY, moveX+grid_x-XGridOff, moveY+grid_y-YGridOff, ! NULL, NULL, &dx_scale, &dy_scale); if (proportional) { ! int abs_x_scale=round(dx_scale), abs_y_scale=round(dy_scale); if (abs_x_scale > abs_y_scale) { ! dy_scale = dx_scale; } else if (abs_x_scale < abs_y_scale) { ! dx_scale = dy_scale; } } *************** *** 1963,1970 **** ppsz_names_to_resize = NeedToProcessOnResize(&num_to_resize); if (ppsz_names_to_resize == NULL) { ! StretchAllSel(Corner, x_scale, y_scale); } else { StartCompositeCmd(); ! StretchAllSel(Corner, x_scale, y_scale); DoOnResize(ppsz_names_to_resize, num_to_resize); EndCompositeCmd(); --- 2076,2083 ---- ppsz_names_to_resize = NeedToProcessOnResize(&num_to_resize); if (ppsz_names_to_resize == NULL) { ! StretchAllSel(Corner, dx_scale, dy_scale); } else { StartCompositeCmd(); ! StretchAllSel(Corner, dx_scale, dy_scale); DoOnResize(ppsz_names_to_resize, num_to_resize); EndCompositeCmd(); *************** *** 2023,2027 **** moveX = obbox->rbx; moveY = obbox->rby; ! StretchObj(ObjPtr, CORNER_RB, (int)(multX * 1000.0), (int)(multY * 1000.0), FALSE); } --- 2136,2140 ---- moveX = obbox->rbx; moveY = obbox->rby; ! StretchObj(ObjPtr, CORNER_RB, (double)(multX*1000.0), (double)(multY*1000.0), FALSE); } *************** *** 2028,2033 **** static ! void ScaleAllSelObjects(Corner, XScale, YScale) ! int Corner, XScale, YScale; /* * Force to use CTM! --- 2141,2147 ---- static ! void ScaleAllSelObjects(Corner, dxScale, dyScale) ! int Corner; ! double dxScale, dyScale; /* * Force to use CTM! *************** *** 2038,2042 **** for (sel_ptr=topSel; sel_ptr != NULL; sel_ptr=sel_ptr->next) { if (stretchingEverything || !sel_ptr->obj->locked) { ! StretchObj(sel_ptr->obj, Corner, XScale, YScale, TRUE); } } --- 2152,2156 ---- for (sel_ptr=topSel; sel_ptr != NULL; sel_ptr=sel_ptr->next) { if (stretchingEverything || !sel_ptr->obj->locked) { ! StretchObj(sel_ptr->obj, Corner, dxScale, dyScale, TRUE); } } *************** *** 2047,2052 **** static ! void ScaleAllSel(Corner, XScale, YScale) ! int Corner, XScale, YScale; { int ltx, lty, rbx, rby, saved_ltx, saved_lty, saved_rbx, saved_rby; --- 2161,2167 ---- static ! void ScaleAllSel(Corner, dxScale, dyScale) ! int Corner; ! double dxScale, dyScale; { int ltx, lty, rbx, rby, saved_ltx, saved_lty, saved_rbx, saved_rby; *************** *** 2063,2069 **** RecordCmd(CMD_STRETCH, NULL, topSel, botSel, numObjSelected); ! poly_stretched = ConstrainedStretchAllSel(Corner, XScale, YScale, ! <x, <y, &rbx, &rby); ! ScaleAllSelObjects(Corner, XScale, YScale); UpdSelBBox(); if (poly_stretched) { --- 2178,2183 ---- RecordCmd(CMD_STRETCH, NULL, topSel, botSel, numObjSelected); ! poly_stretched = ConstrainedStretchAllSel(Corner, <x, <y, &rbx, &rby); ! ScaleAllSelObjects(Corner, dxScale, dyScale); UpdSelBBox(); if (poly_stretched) { *************** *** 2084,2088 **** } else { PrepareToRecord(CMD_REPLACE, topSel, botSel, numObjSelected); ! ScaleAllSelObjects(Corner, XScale, YScale); RecordCmd(CMD_REPLACE, NULL, topSel, botSel, numObjSelected); UpdSelBBox(); --- 2198,2202 ---- } else { PrepareToRecord(CMD_REPLACE, topSel, botSel, numObjSelected); ! ScaleAllSelObjects(Corner, dxScale, dyScale); RecordCmd(CMD_REPLACE, NULL, topSel, botSel, numObjSelected); UpdSelBBox(); *************** *** 2158,2165 **** ppsz_names_to_resize = NeedToProcessOnResize(&num_to_resize); if (ppsz_names_to_resize == NULL) { ! ScaleAllSel(corner, (int)(multX * 1000.0), (int)(multY * 1000.0)); } else { StartCompositeCmd(); ! ScaleAllSel(corner, (int)(multX * 1000.0), (int)(multY * 1000.0)); DoOnResize(ppsz_names_to_resize, num_to_resize); EndCompositeCmd(); --- 2272,2279 ---- ppsz_names_to_resize = NeedToProcessOnResize(&num_to_resize); if (ppsz_names_to_resize == NULL) { ! ScaleAllSel(corner, (double)(multX*1000.0), (double)(multY*1000.0)); } else { StartCompositeCmd(); ! ScaleAllSel(corner, (double)(multX*1000.0), (double)(multY*1000.0)); DoOnResize(ppsz_names_to_resize, num_to_resize); EndCompositeCmd(); *************** *** 2251,2259 **** if (ppsz_names_to_resize == NULL) { stretchingEverything = TRUE; ! ScaleAllSel(corner, (int)(multX * 1000.0), (int)(multY * 1000.0)); stretchingEverything = FALSE; } else { stretchingEverything = TRUE; ! ScaleAllSel(corner, (int)(multX * 1000.0), (int)(multY * 1000.0)); stretchingEverything = FALSE; DoOnResize(ppsz_names_to_resize, num_to_resize); --- 2365,2373 ---- if (ppsz_names_to_resize == NULL) { stretchingEverything = TRUE; ! ScaleAllSel(corner, (double)(multX*1000.0), (double)(multY*1000.0)); stretchingEverything = FALSE; } else { stretchingEverything = TRUE; ! ScaleAllSel(corner, (double)(multX*1000.0), (double)(multY*1000.0)); stretchingEverything = FALSE; DoOnResize(ppsz_names_to_resize, num_to_resize); *************** *** 2308,2315 **** ppsz_names_to_resize = NeedToProcessOnResize(&num_to_resize); if (ppsz_names_to_resize == NULL) { ! ScaleAllSel(CORNER_RB, (int)(multX * 1000.0), (int)(multY * 1000.0)); } else { StartCompositeCmd(); ! ScaleAllSel(CORNER_RB, (int)(multX * 1000.0), (int)(multY * 1000.0)); DoOnResize(ppsz_names_to_resize, num_to_resize); EndCompositeCmd(); --- 2422,2429 ---- ppsz_names_to_resize = NeedToProcessOnResize(&num_to_resize); if (ppsz_names_to_resize == NULL) { ! ScaleAllSel(CORNER_RB, (double)(multX*1000.0), (double)(multY*1000.0)); } else { StartCompositeCmd(); ! ScaleAllSel(CORNER_RB, (double)(multX*1000.0), (double)(multY*1000.0)); DoOnResize(ppsz_names_to_resize, num_to_resize); EndCompositeCmd(); *************** *** 2377,2382 **** PrepareToReplaceAnObj(TopOwner); ! StretchObj(ObjPtr, CORNER_RB, (int)(multX*1000.0), (int)(multY*1000.0), ! FALSE); while (ObjPtr != TopOwner) { ObjPtr = ObjPtr->tmp_parent; --- 2491,2496 ---- PrepareToReplaceAnObj(TopOwner); ! StretchObj(ObjPtr, CORNER_RB, (double)(multX*1000.0), ! (double)(multY*1000.0), FALSE); while (ObjPtr != TopOwner) { ObjPtr = ObjPtr->tmp_parent; *************** *** 2434,2438 **** changeX = (fabs(multX-1.0) > 1.0e-6); changeY = (fabs(multY-1.0) > 1.0e-6); ! ScaleAllSel(CORNER_RB, (int)(multX * 1000.0), (int)(multY * 1000.0)); } else if (do_width) { SetPivot(CORNER_RIGHT, &obj_ptr->obbox); --- 2548,2552 ---- changeX = (fabs(multX-1.0) > 1.0e-6); changeY = (fabs(multY-1.0) > 1.0e-6); ! ScaleAllSel(CORNER_RB, (double)(multX*1000.0), (double)(multY*1000.0)); } else if (do_width) { SetPivot(CORNER_RIGHT, &obj_ptr->obbox); *************** *** 2439,2443 **** multX = (w == 0 ? ((double)1.0) : ((double)abs_w) / ((double)w)); changeX = (fabs(multX-1.0) > 1.0e-6); ! ScaleAllSel(CORNER_RIGHT, (int)(multX * 1000.0), 1000); } else { SetPivot(CORNER_BOTTOM, &obj_ptr->obbox); --- 2553,2557 ---- multX = (w == 0 ? ((double)1.0) : ((double)abs_w) / ((double)w)); changeX = (fabs(multX-1.0) > 1.0e-6); ! ScaleAllSel(CORNER_RIGHT, (double)(multX*1000.0), (double)1000); } else { SetPivot(CORNER_BOTTOM, &obj_ptr->obbox); *************** *** 2444,2448 **** multY = (h == 0 ? ((double)1.0) : ((double)abs_h) / ((double)h)); changeY = (fabs(multY-1.0) > 1.0e-6); ! ScaleAllSel(CORNER_BOTTOM, 1000, (int)(multY * 1000.0)); } free(topSel); --- 2558,2562 ---- multY = (h == 0 ? ((double)1.0) : ((double)abs_h) / ((double)h)); changeY = (fabs(multY-1.0) > 1.0e-6); ! ScaleAllSel(CORNER_BOTTOM, (double)1000, (double)(multY*1000.0)); } free(topSel); *************** *** 2629,2633 **** AdjObjBBox(ObjPtr); } else { ! ShearObj(ObjPtr, CORNER_LEFT, 0, 0, -1000, 1000, NULL, NULL); MoveObj(ObjPtr, new_obj_ltx-ObjPtr->obbox.ltx, new_obj_lty-ObjPtr->obbox.lty); --- 2743,2749 ---- AdjObjBBox(ObjPtr); } else { ! double dz=(double)0, d1=(double)1000, dm1=(double)-1000; ! ! ShearObj(ObjPtr, CORNER_LEFT, dz, dz, dm1, d1, NULL, NULL); MoveObj(ObjPtr, new_obj_ltx-ObjPtr->obbox.ltx, new_obj_lty-ObjPtr->obbox.lty); *************** *** 2794,2798 **** AdjObjBBox(ObjPtr); } else { ! ShearObj(ObjPtr, CORNER_TOP, 0, 0, 1000, -1000, NULL, NULL); MoveObj(ObjPtr, new_obj_ltx-ObjPtr->obbox.ltx, new_obj_lty-ObjPtr->obbox.lty); --- 2910,2916 ---- AdjObjBBox(ObjPtr); } else { ! double dz=(double)0, d1=(double)1000, dm1=(double)-1000; ! ! ShearObj(ObjPtr, CORNER_TOP, dz, dz, d1, dm1, NULL, NULL); MoveObj(ObjPtr, new_obj_ltx-ObjPtr->obbox.ltx, new_obj_lty-ObjPtr->obbox.lty); *************** *** 4093,4098 **** static ! void ShearBBox(Corner, bbox, x_shear, y_shear, x_scale, y_scale, vs) ! int Corner, x_shear, y_shear, x_scale, y_scale; struct BBRec *bbox; /* the original bounding box */ XPoint *vs; /* array of 5 points */ --- 4211,4217 ---- static ! void ShearBBox(Corner, bbox, dx_shear, dy_shear, dx_scale, dy_scale, vs) ! int Corner; ! double dx_shear, dy_shear, dx_scale, dy_scale; struct BBRec *bbox; /* the original bounding box */ XPoint *vs; /* array of 5 points */ *************** *** 4108,4116 **** vs[1].x = bbox->rbx; vs[1].y = bbox->lty; } else { ! ShearedXY(Corner, bbox->ltx, bbox->lty, x_shear, y_shear, ! x_scale, y_scale, &x, &y); vs[0].x = vs[4].x = x; vs[0].y = vs[4].y = y; ! ShearedXY(Corner, bbox->rbx, bbox->lty, x_shear, y_shear, ! x_scale, y_scale, &x, &y); vs[1].x = x; vs[1].y = y; } --- 4227,4235 ---- vs[1].x = bbox->rbx; vs[1].y = bbox->lty; } else { ! ShearedXY(Corner, bbox->ltx, bbox->lty, dx_shear, dy_shear, ! dx_scale, dy_scale, &x, &y); vs[0].x = vs[4].x = x; vs[0].y = vs[4].y = y; ! ShearedXY(Corner, bbox->rbx, bbox->lty, dx_shear, dy_shear, ! dx_scale, dy_scale, &x, &y); vs[1].x = x; vs[1].y = y; } *************** *** 4119,4127 **** vs[3].x = bbox->ltx; vs[3].y = bbox->rby; } else { ! ShearedXY(Corner, bbox->rbx, bbox->rby, x_shear, y_shear, ! x_scale, y_scale, &x, &y); vs[2].x = x; vs[2].y = y; ! ShearedXY(Corner, bbox->ltx, bbox->rby, x_shear, y_shear, ! x_scale, y_scale, &x, &y); vs[3].x = x; vs[3].y = y; } --- 4238,4246 ---- vs[3].x = bbox->ltx; vs[3].y = bbox->rby; } else { ! ShearedXY(Corner, bbox->rbx, bbox->rby, dx_shear, dy_shear, ! dx_scale, dy_scale, &x, &y); vs[2].x = x; vs[2].y = y; ! ShearedXY(Corner, bbox->ltx, bbox->rby, dx_shear, dy_shear, ! dx_scale, dy_scale, &x, &y); vs[3].x = x; vs[3].y = y; } *************** *** 4134,4142 **** vs[3].x = bbox->ltx; vs[3].y = bbox->rby; } else { ! ShearedXY(Corner, bbox->ltx, bbox->lty, x_shear, y_shear, ! x_scale, y_scale, &x, &y); vs[0].x = vs[4].x = x; vs[0].y = vs[4].y = y; ! ShearedXY(Corner, bbox->ltx, bbox->rby, x_shear, y_shear, ! x_scale, y_scale, &x, &y); vs[3].x = x; vs[3].y = y; } --- 4253,4261 ---- vs[3].x = bbox->ltx; vs[3].y = bbox->rby; } else { ! ShearedXY(Corner, bbox->ltx, bbox->lty, dx_shear, dy_shear, ! dx_scale, dy_scale, &x, &y); vs[0].x = vs[4].x = x; vs[0].y = vs[4].y = y; ! ShearedXY(Corner, bbox->ltx, bbox->rby, dx_shear, dy_shear, ! dx_scale, dy_scale, &x, &y); vs[3].x = x; vs[3].y = y; } *************** *** 4145,4153 **** vs[2].x = bbox->rbx; vs[2].y = bbox->rby; } else { ! ShearedXY(Corner, bbox->rbx, bbox->lty, x_shear, y_shear, ! x_scale, y_scale, &x, &y); vs[1].x = x; vs[1].y = y; ! ShearedXY(Corner, bbox->rbx, bbox->rby, x_shear, y_shear, ! x_scale, y_scale, &x, &y); vs[2].x = x; vs[2].y = y; } --- 4264,4272 ---- vs[2].x = bbox->rbx; vs[2].y = bbox->rby; } else { ! ShearedXY(Corner, bbox->rbx, bbox->lty, dx_shear, dy_shear, ! dx_scale, dy_scale, &x, &y); vs[1].x = x; vs[1].y = y; ! ShearedXY(Corner, bbox->rbx, bbox->rby, dx_shear, dy_shear, ! dx_scale, dy_scale, &x, &y); vs[2].x = x; vs[2].y = y; } *************** *** 4157,4162 **** static ! void ShearVs(Corner, InVs, NumPts, x_shear, y_shear, x_scale, y_scale, OutVs) ! int Corner, NumPts, x_shear, y_shear, x_scale, y_scale; XPoint *InVs, *OutVs; /* array of 5 points */ { --- 4276,4283 ---- static ! void ShearVs(Corner, InVs, NumPts, dx_shear, dy_shear, dx_scale, dy_scale, ! OutVs) ! int Corner, NumPts; ! double dx_shear, dy_shear, dx_scale, dy_scale; XPoint *InVs, *OutVs; /* array of 5 points */ { *************** *** 4172,4177 **** OutVs[i].y = InVs[i].y; } else { ! ShearedXY(Corner, InVs[i].x, InVs[i].y, x_shear, y_shear, ! x_scale, y_scale, &x, &y); OutVs[i].x = x; OutVs[i].y = y; --- 4293,4298 ---- OutVs[i].y = InVs[i].y; } else { ! ShearedXY(Corner, InVs[i].x, InVs[i].y, dx_shear, dy_shear, ! dx_scale, dy_scale, &x, &y); OutVs[i].x = x; OutVs[i].y = y; *************** *** 4186,4191 **** OutVs[i].y = InVs[i].y; } else { ! ShearedXY(Corner, InVs[i].x, InVs[i].y, x_shear, y_shear, ! x_scale, y_scale, &x, &y); OutVs[i].x = x; OutVs[i].y = y; --- 4307,4312 ---- OutVs[i].y = InVs[i].y; } else { ! ShearedXY(Corner, InVs[i].x, InVs[i].y, dx_shear, dy_shear, ! dx_scale, dy_scale, &x, &y); OutVs[i].x = x; OutVs[i].y = y; *************** *** 4197,4202 **** static ! void ShearAllSelObjects(Corner, XShear, YShear, XScale, YScale) ! int Corner, XShear, YShear, XScale, YScale; /* everything scaled by 1000 */ { register struct SelRec *sel_ptr; --- 4318,4324 ---- static ! void ShearAllSelObjects(Corner, dxShear, dyShear, dxScale, dyScale) ! int Corner; ! double dxShear, dyShear, dxScale, dyScale; /* everything scaled by 1000 */ { register struct SelRec *sel_ptr; *************** *** 4204,4208 **** for (sel_ptr = topSel; sel_ptr != NULL; sel_ptr = sel_ptr->next) { if (OkToTransform(sel_ptr->obj, STID_DISABLE_ON_RESIZE_SHEAR)) { ! ShearObj(sel_ptr->obj, Corner, XShear, YShear, XScale, YScale, NULL, NULL); } --- 4326,4330 ---- for (sel_ptr = topSel; sel_ptr != NULL; sel_ptr = sel_ptr->next) { if (OkToTransform(sel_ptr->obj, STID_DISABLE_ON_RESIZE_SHEAR)) { ! ShearObj(sel_ptr->obj, Corner, dxShear, dyShear, dxScale, dyScale, NULL, NULL); } *************** *** 4214,4220 **** static ! int ConstrainedShearAllSel(Corner, XShear, YShear, XScale, YScale, ltx, lty, rbx, rby) ! int Corner, XShear, YShear, XScale, YScale, *ltx, *lty, *rbx, *rby; { register struct ObjRec *obj_ptr; --- 4336,4343 ---- static ! int ConstrainedShearAllSel(Corner, dxShear, dyShear, dxScale, dyScale, ltx, lty, rbx, rby) ! int Corner, *ltx, *lty, *rbx, *rby; ! double dxShear, dyShear, dxScale, dyScale; { register struct ObjRec *obj_ptr; *************** *** 4282,4287 **** something_stretched = TRUE; if (move_first && move_last && num_pts==3) { ! ShearedAbsXY(Corner, v[0].x, v[0].y, XShear, YShear, ! XScale, YScale, &x, &y); dx = x-v[0].x; dy = y-v[0].y; index = 1; --- 4405,4410 ---- something_stretched = TRUE; if (move_first && move_last && num_pts==3) { ! ShearedAbsXY(Corner, v[0].x, v[0].y, dxShear, dyShear, ! dxScale, dyScale, &x, &y); dx = x-v[0].x; dy = y-v[0].y; index = 1; *************** *** 4300,4305 **** } else { if (move_first && num_pts>2) { ! ShearedAbsXY(Corner, v[0].x, v[0].y, XShear, YShear, ! XScale, YScale, &x, &y); dx = x-v[0].x; dy = y-v[0].y; index = 1; --- 4423,4428 ---- } else { if (move_first && num_pts>2) { ! ShearedAbsXY(Corner, v[0].x, v[0].y, dxShear, dyShear, ! dxScale, dyScale, &x, &y); dx = x-v[0].x; dy = y-v[0].y; index = 1; *************** *** 4319,4323 **** if (move_last && num_pts>2) { ShearedAbsXY(Corner, v[num_pts-1].x, v[num_pts-1].y, ! XShear, YShear, XScale, YScale, &x, &y); dx = x-v[num_pts-1].x; dy = y-v[num_pts-1].y; index = num_pts-2; --- 4442,4446 ---- if (move_last && num_pts>2) { ShearedAbsXY(Corner, v[num_pts-1].x, v[num_pts-1].y, ! dxShear, dyShear, dxScale, dyScale, &x, &y); dx = x-v[num_pts-1].x; dy = y-v[num_pts-1].y; index = num_pts-2; *************** *** 4337,4342 **** } if (move_first) { ! ShearedAbsXY(Corner, v[0].x, v[0].y, XShear, YShear, ! XScale, YScale, &x, &y); v[0].x = x; v[0].y = y; } --- 4460,4465 ---- } if (move_first) { ! ShearedAbsXY(Corner, v[0].x, v[0].y, dxShear, dyShear, ! dxScale, dyScale, &x, &y); v[0].x = x; v[0].y = y; } *************** *** 4343,4347 **** if (move_last) { ShearedAbsXY(Corner, v[num_pts-1].x, v[num_pts-1].y, ! XShear, YShear, XScale, YScale, &x, &y); v[num_pts-1].x = x; v[num_pts-1].y = y; } --- 4466,4470 ---- if (move_last) { ShearedAbsXY(Corner, v[num_pts-1].x, v[num_pts-1].y, ! dxShear, dyShear, dxScale, dyScale, &x, &y); v[num_pts-1].x = x; v[num_pts-1].y = y; } *************** *** 4396,4401 **** static ! void ShearAllSel(Corner, XShear, YShear, XScale, YScale) ! int Corner, XShear, YShear, XScale, YScale; /* everything scaled by 1000 */ { int ltx, lty, rbx, rby, saved_ltx, saved_lty, saved_rbx, saved_rby; --- 4519,4525 ---- static ! void ShearAllSel(Corner, dxShear, dyShear, dxScale, dyScale) ! int Corner; ! double dxShear, dyShear, dxScale, dyScale; /* everything scaled by 1000 */ { int ltx, lty, rbx, rby, saved_ltx, saved_lty, saved_rbx, saved_rby; *************** *** 4412,4418 **** RecordCmd(CMD_STRETCH, NULL, topSel, botSel, numObjSelected); ! poly_stretched = ConstrainedShearAllSel(Corner, XShear, YShear, XScale, ! YScale, <x, <y, &rbx, &rby); ! ShearAllSelObjects(Corner, XShear, YShear, XScale, YScale); UpdSelBBox(); if (poly_stretched) { --- 4536,4542 ---- RecordCmd(CMD_STRETCH, NULL, topSel, botSel, numObjSelected); ! poly_stretched = ConstrainedShearAllSel(Corner, dxShear, dyShear, dxScale, ! dyScale, <x, <y, &rbx, &rby); ! ShearAllSelObjects(Corner, dxShear, dyShear, dxScale, dyScale); UpdSelBBox(); if (poly_stretched) { *************** *** 4433,4437 **** } else { PrepareToRecord(CMD_REPLACE, topSel, botSel, numObjSelected); ! ShearAllSelObjects(Corner, XShear, YShear, XScale, YScale); RecordCmd(CMD_REPLACE, NULL, topSel, botSel, numObjSelected); UpdSelBBox(); --- 4557,4561 ---- } else { PrepareToRecord(CMD_REPLACE, topSel, botSel, numObjSelected); ! ShearAllSelObjects(Corner, dxShear, dyShear, dxScale, dyScale); RecordCmd(CMD_REPLACE, NULL, topSel, botSel, numObjSelected); UpdSelBBox(); *************** *** 4454,4458 **** int saved_x=XGridOff, saved_y=YGridOff; int shearing=TRUE, shear_hori=FALSE; ! int x_scale=1000, y_scale=1000, x_shear=0, y_shear=0; char buf[80]; struct BBRec orig_all_bbox, orig_obj_obbox; --- 4578,4583 ---- int saved_x=XGridOff, saved_y=YGridOff; int shearing=TRUE, shear_hori=FALSE; ! double dx_scale=(double)1000, dy_scale=(double)1000; ! double dx_shear=(double)0, dy_shear=(double)0; char buf[80]; struct BBRec orig_all_bbox, orig_obj_obbox; *************** *** 4552,4567 **** MarkRulers(grid_x, grid_y); PointsToShearScale(Corner, pivotX, pivotY, moveX, moveY, ! grid_x, grid_y, &x_shear, &y_shear, &x_scale, &y_scale); ! ShearBBox(Corner, &orig_all_bbox, x_shear, y_shear, x_scale, y_scale, ! all_bbox_vs); XDrawLines(mainDisplay, drawWindow, revDefaultGC, all_bbox_vs, 5, CoordModeOrigin); if (ObjPtr->ctm == NULL) { ! ShearBBox(Corner, &orig_obj_obbox, x_shear, y_shear, x_scale, ! y_scale, obj_obbox_vs); } else { ! ShearVs(Corner, ObjPtr->rotated_obbox, 5, x_shear, y_shear, ! x_scale, y_scale, obj_obbox_vs); } XDrawLines(mainDisplay, drawWindow, revDefaultGC, obj_obbox_vs, 5, --- 4677,4692 ---- MarkRulers(grid_x, grid_y); PointsToShearScale(Corner, pivotX, pivotY, moveX, moveY, ! grid_x, grid_y, &dx_shear, &dy_shear, &dx_scale, &dy_scale); ! ShearBBox(Corner, &orig_all_bbox, dx_shear, dy_shear, ! dx_scale, dy_scale, all_bbox_vs); XDrawLines(mainDisplay, drawWindow, revDefaultGC, all_bbox_vs, 5, CoordModeOrigin); if (ObjPtr->ctm == NULL) { ! ShearBBox(Corner, &orig_obj_obbox, dx_shear, dy_shear, dx_scale, ! dy_scale, obj_obbox_vs); } else { ! ShearVs(Corner, ObjPtr->rotated_obbox, 5, dx_shear, dy_shear, ! dx_scale, dy_scale, obj_obbox_vs); } XDrawLines(mainDisplay, drawWindow, revDefaultGC, obj_obbox_vs, 5, *************** *** 4575,4581 **** if (dx != 0 || dy != 0) { PointsToShearScale(Corner, pivotX, pivotY, moveX, moveY, ! moveX+dx, moveY+dy, &x_shear, &y_shear, &x_scale, &y_scale); HighLightReverse(); ! ShearAllSel(Corner, x_shear, y_shear, x_scale, y_scale); HighLightForward(); SetFileModified(TRUE); --- 4700,4706 ---- if (dx != 0 || dy != 0) { PointsToShearScale(Corner, pivotX, pivotY, moveX, moveY, ! moveX+dx, moveY+dy, &dx_shear, &dy_shear, &dx_scale, &dy_scale); HighLightReverse(); ! ShearAllSel(Corner, dx_shear, dy_shear, dx_scale, dy_scale); HighLightForward(); SetFileModified(TRUE); *** strtbl.c.orig Tue Nov 16 09:07:34 1999 --- strtbl.c Tue Nov 16 09:07:34 1999 *************** *** 481,484 **** --- 481,485 ---- * Note: once such a string is loaded, it will never change. * So, don't put any data-dependent stuff here. + * Note: the returned string is translated already. */ { *************** *** 3086,3089 **** --- 3087,3091 ---- * the panelty of gettext(). So, make sure these strings are * not often used (such as error messages). + * Note: the returned string is translated already. */ { *************** *** 3752,3755 **** --- 3754,3758 ---- char *ExportFormatMenuLoadString(where_to_print, color_dump) int where_to_print, color_dump; + /* returned string has been translated */ { if (where_to_print == XBM_FILE) { *** wb.c.orig Tue Nov 16 09:07:36 1999 --- wb.c Tue Nov 16 09:07:36 1999 *************** *** 76,80 **** static struct sigaction act_IO; static sigset_t sinal; - static int localNrCmd=0; #ifdef _TGIF_DBG_WB2 static int wb2DebugLevel=0; --- 76,79 ---- *************** *** 148,155 **** int CreateWBListenSocket() { - #ifdef NOT_DEFINED - struct sockaddr_in server; - #endif /* NOT_DEFINED */ - gstWBInfo.listening = TRUE; --- 147,150 ---- *************** *** 162,229 **** return FALSE; } - #ifdef NOT_DEFINED - /* - * This code probably doesn't work any more. - */ - gstWBInfo.listen_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); - if (gstWBInfo.listen_socket == (-1)) { - fprintf(stderr, "Fail to create a listening socket.\n"); - return FALSE; - } - SetSocketBlockingState(&gstWBInfo.listen_socket, FALSE); - memset(&server, 0, sizeof(struct sockaddr_in)); - server.sin_family = AF_INET; - server.sin_port = htons(gstWBInfo.port); - server.sin_addr.s_addr = htonl(INADDR_ANY); - - if (bind(gstWBInfo.listen_socket, (struct sockaddr *)(&server), - sizeof(server)) == (-1)) { - fprintf(stderr, "Fail to bind a listening socket.\n"); - return FALSE; - } - listen(gstWBInfo.listen_socket, 1); - #endif /* NOT_DEFINED */ - return TRUE; } - #ifdef NOT_DEFINED - static - int AcceptWBSocket() - { - int csd=(-1); - - for (;;) { - struct sockaddr_in client; - int clen=sizeof(struct sockaddr_in); - - if ((csd=accept(gstWBInfo.listen_socket, (struct sockaddr *)(&client), - &clen)) == (-1)) { - if (errno == EWOULDBLOCK) { - break; - } else if (errno == EINTR) { - #ifdef BSD - #ifndef NEXT - int status; - #else /* NEXT */ - union wait status; - #endif /* ~NEXT */ - pid_t pid; - - while ((pid=wait3(&status, WNOHANG, NULL)) > 0) ; - #endif /* BSD */ - continue; - } - fprintf(stderr, - "Socket error in AcceptWBSocket(): accept() failed.\n"); - continue; - } - break; - } - return csd; - } - #endif /* NOT_DEFINED */ - void PrintFullIDsOfObjects(psz_prefix) char *psz_prefix; --- 157,164 ---- *************** *** 294,313 **** int *pn_flag, *pn_retry; { - #ifdef NOT_DEFINED - if (gstWBInfo.listening && gstWBInfo.listen_socket != (-1)) { - /* - * Receives one command at a time -- just like HTTP. - */ - int csd=(-1); - - if ((csd=AcceptWBSocket()) != (-1)) { - *pn_retry = FALSE; - *pn_flag = csd; - return TRUE; - } - } - return FALSE; - #endif /* NOT_DEFINED */ - /* leave *pn_retry alone */ return (gstWBInfo.BlockRemoteCmdDepth <= 1 && --- 229,232 ---- *************** *** 319,346 **** char **ppsz_buf; { - #ifdef NOT_DEFINED - char *buf=NULL; - int buf_sz=0, csd=flag; - int status=HttpDoRead(csd, &buf, &buf_sz); - - shutdown(csd, 2); - close(csd); - - if (status == TG_REMOTE_STATUS_OK && buf_sz > 0 && - buf != NULL && *buf != '\0') { - fprintf(stderr, "Got %1d bytes!\n", buf_sz); - *ppsz_buf = buf; - *pn_buf_sz = buf_sz; - - return TRUE; - } - if (buf != NULL) FreeRemoteBuf(buf); - - *ppsz_buf = NULL; - *pn_buf_sz = 0; - - return FALSE; - #endif /* NOT_DEFINED */ - *ppsz_buf = (char*)malloc(WB_PACK*sizeof(char)); if (*ppsz_buf == NULL) FailAllocMessage(); --- 238,241 ---- *************** *** 396,423 **** char *pszWBData; { - #ifdef NOT_DEFINED - int status=TG_REMOTE_STATUS_OK, n_socket=0; - - status = HttpDoConnect("localhost", gstWBInfo.port, &n_socket); - if (status == TG_REMOTE_STATUS_INTR) { - sprintf(gszMsgBox, "WhiteBoard: connection interrupted."); - MsgBox(gszMsgBox, TOOL_NAME, INFO_MB); - close(n_socket); - } else if (status < 0) { - /* n_socket already closed in TcpDoDonnect() */ - /* - * May be nobody is listening! - */ - } else if (status == TG_REMOTE_STATUS_OK) { - /* - * Serialize and send data. - */ - status = TcpDoWrite(n_socket, pszWBData, (int)(strlen(pszWBData)+1)); - if (status == TG_REMOTE_STATUS_OK) { - } - close(n_socket); - } - #endif /* NOT_DEFINED */ - struct WbMessage CmdSend; --- 291,294 ---- *************** *** 424,429 **** memset(&CmdSend, 0, sizeof(CmdSend)); memcpy(CmdSend.WbCmd, pszWBData, strlen(pszWBData)); ! memcpy(CmdSend.IDIP, gszLocalPID, MAXSTRING); ! CmdSend.NSeq = localNrCmd++; PCM_sendto(gstWBInfo.MCastSock, (char*)(&CmdSend), sizeof(struct WbMessage), 0, (struct sockaddr *)(&PCM_sockaddr), sizeof(PCM_sockaddr)); --- 295,302 ---- memset(&CmdSend, 0, sizeof(CmdSend)); memcpy(CmdSend.WbCmd, pszWBData, strlen(pszWBData)); ! #ifdef _TGIF_DBG_WB2 ! fprintf(stderr, "SendWBData(), pid = %ld, Command size = %d\n", ! gstWBInfo.pid, strlen(pszWBData)); ! #endif /* _TGIF_DBG_WB2 */ PCM_sendto(gstWBInfo.MCastSock, (char*)(&CmdSend), sizeof(struct WbMessage), 0, (struct sockaddr *)(&PCM_sockaddr), sizeof(PCM_sockaddr)); *************** *** 1060,1073 **** } - #ifdef NOT_DEFINED static - int CmdOriginatedFromSelf(cmd_ptr) - struct CmdRec *cmd_ptr; - { - return (strcmp(cmd_ptr->sender_process_id, gszLocalPID) == 0); - } - #endif /* NOT_DEFINED */ - - static int TotalOrderForTwo(older_cmd, newer_cmd) struct CmdRec *older_cmd, *newer_cmd; --- 933,937 ---- *************** *** 1393,1397 **** struct WbMessage cmd_received; char buf[WB_PACK], aux[WB_PACK]; ! char id[300], *WbData=NULL; #ifdef _TGIF_DBG_WB2 --- 1257,1261 ---- struct WbMessage cmd_received; char buf[WB_PACK], aux[WB_PACK]; ! char id[300]; #ifdef _TGIF_DBG_WB2 *************** *** 1399,1419 **** #endif /* _TGIF_DBG_WB2 */ ! WbData = (char*)malloc(sizeof(struct WbMessage)); ! ! if (PCM_recv(gstWBInfo.MCastSock, WbData, sizeof(struct WbMessage), 0) < 0) { ! free(WbData) ; return ; } - memcpy(&cmd_received, WbData, sizeof(struct WbMessage)); memcpy(buf, cmd_received.WbCmd, WB_PACK); /* * verifica se a mensagem nao eh dele proprio - * (pode ser feito de outra maneira?) */ if (strncmp(buf, "From: ", 6) != 0 || sscanf(&buf[6], "%s\r\n", id) != 1) { ! fprintf(stderr, "%s. %s, pid = %ld\n", "Fatal error", "Cannot find the sender id in IO_SignalHandler()", ! gstWBInfo.pid); ! free(WbData); return; } --- 1263,1278 ---- #endif /* _TGIF_DBG_WB2 */ ! if (PCM_recv(gstWBInfo.MCastSock, (char*)&cmd_received, ! sizeof(struct WbMessage), 0) < 0) { return ; } memcpy(buf, cmd_received.WbCmd, WB_PACK); /* * verifica se a mensagem nao eh dele proprio */ if (strncmp(buf, "From: ", 6) != 0 || sscanf(&buf[6], "%s\r\n", id) != 1) { ! fprintf(stderr, "%s. %s, pid = %ld=tid=%s.\nbuf=%s.\n", "Fatal error", "Cannot find the sender id in IO_SignalHandler()", ! gstWBInfo.pid, id, buf); return; } *************** *** 1422,1426 **** #endif /* _TGIF_DBG_WB2 */ if(strcmp(id, gszLocalPID) == 0) { - free(WbData); return; } --- 1281,1284 ---- *************** *** 1429,1443 **** strcpy(aux, buf); buff_ins(gstWBInfo.bd_commands, aux); - free(WbData); return; } - if (cmd_received.NSeq >= localNrCmd) { - localNrCmd = cmd_received.NSeq + 1; - } ProcessWBInputData(buf); FreeRemoteBuf(buf); - - free(WbData); - return; } #endif /* _TGIF_WB2 */ --- 1287,1294 ---- *************** *** 1462,1466 **** memset(&gstWBInfo, 0, sizeof(struct WhiteBoardRec)); - gstWBInfo.port = 8009; gstWBInfo.BlockRemoteCmdDepth = 1; gstWBInfo.pid = (long)getpid(); --- 1313,1316 ---- *************** *** 1518,1526 **** sigaction(SIGPOLL, &act_IO, NULL); #ifdef I_SETSIG if (ioctl(gstWBInfo.MCastSock, I_SETSIG, S_RDNORM) < 0) perror("ioctl"); - #endif /* I_SETSIG */ if (fcntl(gstWBInfo.MCastSock, F_SETFL, O_NONBLOCK) < 0) perror("fcntl"); } #ifdef _TGIF_DBG_WB2 --- 1368,1385 ---- sigaction(SIGPOLL, &act_IO, NULL); + #ifdef linux + if (fcntl(gstWBInfo.MCastSock, F_SETOWN, (long)getpid()) < 0) { + perror("SETOWN"); + } + if (fcntl(gstWBInfo.MCastSock, F_SETFL, O_ASYNC) < 0) { + perror("SETFL"); + } + #endif /* linux */ + #ifdef I_SETSIG if (ioctl(gstWBInfo.MCastSock, I_SETSIG, S_RDNORM) < 0) perror("ioctl"); if (fcntl(gstWBInfo.MCastSock, F_SETFL, O_NONBLOCK) < 0) perror("fcntl"); + #endif /* I_SETSIG */ } #ifdef _TGIF_DBG_WB2 *** wb_mcast.c.orig Tue Nov 16 09:07:37 1999 --- wb_mcast.c Tue Nov 16 09:07:37 1999 *************** *** 148,152 **** PCM_sockaddr.sin_family = AF_INET; ! PCM_sockaddr.sin_port = PCM_port; PCM_sockaddr.sin_addr.s_addr = inet_addr(PCM_group); --- 148,152 ---- PCM_sockaddr.sin_family = AF_INET; ! PCM_sockaddr.sin_port = htons(PCM_port); PCM_sockaddr.sin_addr.s_addr = inet_addr(PCM_group); *** xbitmap.c.orig Tue Nov 16 09:07:38 1999 --- xbitmap.c Tue Nov 16 09:07:38 1999 *************** *** 4502,4505 **** --- 4502,4506 ---- if (fileVersion < 33 && (rotate != ROTATE0 || flip != NO_FLIP)) { int ltx, lty, rbx, rby; + double dz=(double)0, d1=(double)1000.0, dm1=((double)-1000.0); if (rotate == ROTATE90 || rotate == ROTATE270) { *************** *** 4525,4530 **** } if (image_w != rbx-ltx || image_h != rby-lty) { ! float fval; ! int x_scale, y_scale; struct XfrmMtrxRec ctm; --- 4526,4531 ---- } if (image_w != rbx-ltx || image_h != rby-lty) { ! float fval=(float)0; ! double dx_scale=(double)0, dy_scale=(double)0; struct XfrmMtrxRec ctm; *************** *** 4531,4547 **** memset(&ctm, 0, sizeof(struct XfrmMtrxRec)); fval = ((float)(rbx-ltx))/((float)image_w)*((float)1000.0); ! x_scale = round(fval); fval = ((float)(rby-lty))/((float)image_h)*((float)1000.0); ! y_scale = round(fval); (*ObjPtr)->obbox.rbx = ltx+image_w; (*ObjPtr)->obbox.rby = lty+image_h; ! ShearObj(*ObjPtr, CORNER_RB, 0, 0, x_scale, y_scale, NULL, NULL); } } if (flip & HORI_EVEN) { ! ShearObj(*ObjPtr, CORNER_LEFT, 0, 0, -1000, 1000, <x, <y); } if (flip & VERT_EVEN) { ! ShearObj(*ObjPtr, CORNER_TOP, 0, 0, 1000, -1000, <x, <y); } if (rotate == ROTATE0) { --- 4532,4551 ---- memset(&ctm, 0, sizeof(struct XfrmMtrxRec)); fval = ((float)(rbx-ltx))/((float)image_w)*((float)1000.0); ! dx_scale = (double)fval; fval = ((float)(rby-lty))/((float)image_h)*((float)1000.0); ! dy_scale = (double)fval; (*ObjPtr)->obbox.rbx = ltx+image_w; (*ObjPtr)->obbox.rby = lty+image_h; ! ShearObj(*ObjPtr, CORNER_RB, dz, dz, dx_scale, dy_scale, ! NULL, NULL); } } if (flip & HORI_EVEN) { ! ShearObj(*ObjPtr, CORNER_LEFT, dz, dz, dm1, d1, ! <x, <y); } if (flip & VERT_EVEN) { ! ShearObj(*ObjPtr, CORNER_TOP, dz, dz, d1, dm1, ! <x, <y); } if (rotate == ROTATE0) { *************** *** 4549,4556 **** RotateObj(*ObjPtr, CORNER_LT, CLOCKWISE90, <x, <y); if (flip & HORI_ODD) { ! ShearObj(*ObjPtr, CORNER_LEFT, 0, 0, -1000, 1000, <x, <y); } if (flip & VERT_ODD) { ! ShearObj(*ObjPtr, CORNER_TOP, 0, 0, 1000, -1000, <x, <y); } RotateObj(*ObjPtr, CORNER_LT, COUNTER90, <x, <y); --- 4553,4562 ---- RotateObj(*ObjPtr, CORNER_LT, CLOCKWISE90, <x, <y); if (flip & HORI_ODD) { ! ShearObj(*ObjPtr, CORNER_LEFT, dz, dz, dm1, d1, ! <x, <y); } if (flip & VERT_ODD) { ! ShearObj(*ObjPtr, CORNER_TOP, dz, dz, d1, dm1, ! <x, <y); } RotateObj(*ObjPtr, CORNER_LT, COUNTER90, <x, <y); *************** *** 4561,4568 **** RotateObj(*ObjPtr, CORNER_LT, CLOCKWISE90, <x, <y); if (flip & HORI_ODD) { ! ShearObj(*ObjPtr, CORNER_LEFT, 0, 0, -1000, 1000, <x, <y); } if (flip & VERT_ODD) { ! ShearObj(*ObjPtr, CORNER_TOP, 0, 0, 1000, -1000, <x, <y); } break; --- 4567,4576 ---- RotateObj(*ObjPtr, CORNER_LT, CLOCKWISE90, <x, <y); if (flip & HORI_ODD) { ! ShearObj(*ObjPtr, CORNER_LEFT, dz, dz, dm1, d1, ! <x, <y); } if (flip & VERT_ODD) { ! ShearObj(*ObjPtr, CORNER_TOP, dz, dz, d1, dm1, ! <x, <y); } break; *************** *** 4570,4577 **** RotateObj(*ObjPtr, CORNER_LT, CLOCKWISE90, <x, <y); if (flip & HORI_ODD) { ! ShearObj(*ObjPtr, CORNER_LEFT, 0, 0, -1000, 1000, <x, <y); } if (flip & VERT_ODD) { ! ShearObj(*ObjPtr, CORNER_TOP, 0, 0, 1000, -1000, <x, <y); } RotateObj(*ObjPtr, CORNER_LT, CLOCKWISE90, <x, <y); --- 4578,4587 ---- RotateObj(*ObjPtr, CORNER_LT, CLOCKWISE90, <x, <y); if (flip & HORI_ODD) { ! ShearObj(*ObjPtr, CORNER_LEFT, dz, dz, dm1, d1, ! <x, <y); } if (flip & VERT_ODD) { ! ShearObj(*ObjPtr, CORNER_TOP, dz, dz, d1, dm1, ! <x, <y); } RotateObj(*ObjPtr, CORNER_LT, CLOCKWISE90, <x, <y); *************** *** 4580,4587 **** RotateObj(*ObjPtr, CORNER_LT, CLOCKWISE90, <x, <y); if (flip & HORI_ODD) { ! ShearObj(*ObjPtr, CORNER_LEFT, 0, 0, -1000, 1000, <x, <y); } if (flip & VERT_ODD) { ! ShearObj(*ObjPtr, CORNER_TOP, 0, 0, 1000, -1000, <x, <y); } RotateObj(*ObjPtr, CORNER_LT, CLOCKWISE90, <x, <y); --- 4590,4599 ---- RotateObj(*ObjPtr, CORNER_LT, CLOCKWISE90, <x, <y); if (flip & HORI_ODD) { ! ShearObj(*ObjPtr, CORNER_LEFT, dz, dz, dm1, d1, ! <x, <y); } if (flip & VERT_ODD) { ! ShearObj(*ObjPtr, CORNER_TOP, dz, dz, d1, dm1, ! <x, <y); } RotateObj(*ObjPtr, CORNER_LT, CLOCKWISE90, <x, <y); *** xpixmap.c.orig Tue Nov 16 09:07:40 1999 --- xpixmap.c Tue Nov 16 09:07:40 1999 *************** *** 3023,3026 **** --- 3023,3028 ---- } if (fileVersion < 33 && (rotate != ROTATE0 || flip != NO_FLIP)) { + double dz=(double)0.0, d1=(double)1000.0, dm1=((double)-1000.0); + if (rotate == ROTATE90 || rotate == ROTATE270) { int h=(*ObjPtr)->obbox.rbx-(*ObjPtr)->obbox.ltx; *************** *** 3035,3042 **** if (flip & HORI_EVEN) { ! ShearObj(*ObjPtr, CORNER_LEFT, 0, 0, -1000, 1000, <x, <y); } if (flip & VERT_EVEN) { ! ShearObj(*ObjPtr, CORNER_TOP, 0, 0, 1000, -1000, <x, <y); } if (rotate == ROTATE0) { --- 3037,3044 ---- if (flip & HORI_EVEN) { ! ShearObj(*ObjPtr, CORNER_LEFT, dz, dz, dm1, d1, <x, <y); } if (flip & VERT_EVEN) { ! ShearObj(*ObjPtr, CORNER_TOP, dz, dz, d1, dm1, <x, <y); } if (rotate == ROTATE0) { *************** *** 3044,3051 **** RotateObj(*ObjPtr, CORNER_LT, CLOCKWISE90, <x, <y); if (flip & HORI_ODD) { ! ShearObj(*ObjPtr, CORNER_LEFT, 0, 0, -1000, 1000, <x, <y); } if (flip & VERT_ODD) { ! ShearObj(*ObjPtr, CORNER_TOP, 0, 0, 1000, -1000, <x, <y); } RotateObj(*ObjPtr, CORNER_LT, COUNTER90, <x, <y); --- 3046,3053 ---- RotateObj(*ObjPtr, CORNER_LT, CLOCKWISE90, <x, <y); if (flip & HORI_ODD) { ! ShearObj(*ObjPtr, CORNER_LEFT, dz, dz, dm1, d1, <x, <y); } if (flip & VERT_ODD) { ! ShearObj(*ObjPtr, CORNER_TOP, dz, dz, d1, dm1, <x, <y); } RotateObj(*ObjPtr, CORNER_LT, COUNTER90, <x, <y); *************** *** 3056,3063 **** RotateObj(*ObjPtr, CORNER_LT, CLOCKWISE90, <x, <y); if (flip & HORI_ODD) { ! ShearObj(*ObjPtr, CORNER_LEFT, 0, 0, -1000, 1000, <x, <y); } if (flip & VERT_ODD) { ! ShearObj(*ObjPtr, CORNER_TOP, 0, 0, 1000, -1000, <x, <y); } break; --- 3058,3065 ---- RotateObj(*ObjPtr, CORNER_LT, CLOCKWISE90, <x, <y); if (flip & HORI_ODD) { ! ShearObj(*ObjPtr, CORNER_LEFT, dz, dz, dm1, d1, <x, <y); } if (flip & VERT_ODD) { ! ShearObj(*ObjPtr, CORNER_TOP, dz, dz, d1, dm1, <x, <y); } break; *************** *** 3065,3072 **** RotateObj(*ObjPtr, CORNER_LT, CLOCKWISE90, <x, <y); if (flip & HORI_ODD) { ! ShearObj(*ObjPtr, CORNER_LEFT, 0, 0, -1000, 1000, <x, <y); } if (flip & VERT_ODD) { ! ShearObj(*ObjPtr, CORNER_TOP, 0, 0, 1000, -1000, <x, <y); } RotateObj(*ObjPtr, CORNER_LT, CLOCKWISE90, <x, <y); --- 3067,3074 ---- RotateObj(*ObjPtr, CORNER_LT, CLOCKWISE90, <x, <y); if (flip & HORI_ODD) { ! ShearObj(*ObjPtr, CORNER_LEFT, dz, dz, dm1, d1, <x, <y); } if (flip & VERT_ODD) { ! ShearObj(*ObjPtr, CORNER_TOP, dz, dz, d1, dm1, <x, <y); } RotateObj(*ObjPtr, CORNER_LT, CLOCKWISE90, <x, <y); *************** *** 3075,3082 **** RotateObj(*ObjPtr, CORNER_LT, CLOCKWISE90, <x, <y); if (flip & HORI_ODD) { ! ShearObj(*ObjPtr, CORNER_LEFT, 0, 0, -1000, 1000, <x, <y); } if (flip & VERT_ODD) { ! ShearObj(*ObjPtr, CORNER_TOP, 0, 0, 1000, -1000, <x, <y); } RotateObj(*ObjPtr, CORNER_LT, CLOCKWISE90, <x, <y); --- 3077,3084 ---- RotateObj(*ObjPtr, CORNER_LT, CLOCKWISE90, <x, <y); if (flip & HORI_ODD) { ! ShearObj(*ObjPtr, CORNER_LEFT, dz, dz, dm1, d1, <x, <y); } if (flip & VERT_ODD) { ! ShearObj(*ObjPtr, CORNER_TOP, dz, dz, d1, dm1, <x, <y); } RotateObj(*ObjPtr, CORNER_LT, CLOCKWISE90, <x, <y); *** arc.e.orig Tue Nov 16 09:07:42 1999 --- arc.e Tue Nov 16 09:07:42 1999 *************** *** 42,51 **** #endif /*_INCLUDE_FROM_ARC_C_*/ - extern void PointsToShearScale ARGS_DECL((int Corner, - int x_pivot, int y_pivot, - int x_move, int y_move, - int x_current, int y_current, - int * x_sheer, int * y_sheer, - int * x_scale, int * y_scale)); extern void PointsToArc ARGS_DECL((int xc, int yc, int x1, int y1, int x2, int y2, int dir, int int_degree, --- 42,45 ---- *** poly.e.orig Tue Nov 16 09:07:43 1999 --- poly.e Tue Nov 16 09:07:43 1999 *************** *** 79,82 **** --- 79,86 ---- extern double GetWidthInDouble ARGS_DECL((int nVal, char *pszSpec, int *pnIsInt)); + extern void SetWidthAndSpec ARGS_DECL((double dWidth, int *pnWidth, + char *pszWidthSpec)); + extern void ScaleWidthAndSpec ARGS_DECL((double dScale, int *pnWidth, + char *pszWidthSpec)); extern void DumpArrow ARGS_DECL((FILE*, IntPoint *TailV, IntPoint *HeadV, int ArrowW, int ArrowH, char *AWSpec, *** stretch.e.orig Tue Nov 16 09:07:43 1999 --- stretch.e Tue Nov 16 09:07:43 1999 *************** *** 54,60 **** extern struct SelRec * PtInSelMark ARGS_DECL((int XOff, int YOff, int * Corner)); ! extern void ShearObj ARGS_DECL((struct ObjRec *, int Corner, int XShear, ! int YShear, int XScale, int YScale, ! int *RealLtX, int *RealLtY)); extern void StretchSel ARGS_DECL((int XGridOff, int YGridOff, struct ObjRec *, int Corner)); --- 54,61 ---- extern struct SelRec * PtInSelMark ARGS_DECL((int XOff, int YOff, int * Corner)); ! extern void ShearObj ARGS_DECL((struct ObjRec *, int Corner, double dXShear, ! double dYShear, double dXScale, ! double dYScale, int *RealLtX, ! int *RealLtY)); extern void StretchSel ARGS_DECL((int XGridOff, int YGridOff, struct ObjRec *, int Corner)); *** wb.e.orig Tue Nov 16 09:07:44 1999 --- wb.e Tue Nov 16 09:07:44 1999 *************** *** 40,45 **** int do_whiteboard; - int port; /* 8009 */ - char send_fname[MAXPATHLENGTH]; FILE *send_fp; --- 40,43 ---- *************** *** 60,83 **** struct CmdRec *first_cmd, *last_cmd, *cur_cmd; ! /* don't know how to use first_blocked_cmd yet! */ struct CmdRec *first_blocked_cmd; } *WhiteBoardPtr; - typedef struct Comand{ - struct CmdRec *cmd; - char Id[MAXSTRING]; - int Nseq; - int CmdInconsistent; - }*comandoPtr; - - typedef struct ComandNode{ - struct Comand cmd_node; - struct ComandNode *next, *prev; - }*comandnodePtr; - typedef struct WbMessage{ - int Size; - int NSeq; - char IDIP[MAXSTRING]; char WbCmd[WB_PACK]; }wbmsgPtr; --- 58,66 ---- struct CmdRec *first_cmd, *last_cmd, *cur_cmd; ! /* does not know how to use first_blocked_cmd yet! */ struct CmdRec *first_blocked_cmd; } *WhiteBoardPtr; typedef struct WbMessage{ char WbCmd[WB_PACK]; }wbmsgPtr; *** patchlvl.h.orig Tue Nov 16 09:07:45 1999 --- patchlvl.h Tue Nov 16 09:07:45 1999 *************** *** 35,39 **** #define _TGIF_PATCHLEVEL_H_ ! #define TGIF_PATCHLEVEL 23 #endif /*_TGIF_PATCHLEVEL_H_*/ --- 35,39 ---- #define _TGIF_PATCHLEVEL_H_ ! #define TGIF_PATCHLEVEL 24 #endif /*_TGIF_PATCHLEVEL_H_*/ *** Imakefile.orig Tue Nov 16 09:07:45 1999 --- Imakefile Tue Nov 16 09:07:45 1999 *************** *** 53,57 **** $(MOREDEFINES) ! TGIFVERSION = 4.1.23 XCOMM Things to try to add to the DEFINES line above: --- 53,57 ---- $(MOREDEFINES) ! TGIFVERSION = 4.1.24 XCOMM Things to try to add to the DEFINES line above: *** tgif.man.orig Tue Nov 16 09:07:46 1999 --- tgif.man Tue Nov 16 09:07:46 1999 *************** *** 35,39 **** [\fB-geometry\fR ] [\fB=\fR] ! [{\fIfile\fR[.\fIobj\fR]|-merge \fIfile1\fR[.\fIobj\fR] \fIfile2\fR[.\fIobj\fR] ...}] .PP --- 35,39 ---- [\fB-geometry\fR ] [\fB=\fR] ! [{\fIfile\fR[.\fIobj\fR]|\fB-merge\fR \fIfile1\fR[.\fIobj\fR] \fIfile2\fR[.\fIobj\fR] ...}] .PP *** HISTORY.orig Tue Nov 16 09:07:49 1999 --- HISTORY Tue Nov 16 09:07:49 1999 *************** *** 1,2 **** --- 1,14 ---- + -----------------------> tgif-4.1.23 => tgif-4.1.24 <----------------------- + 1) Fix a couple of bugs in Print Pages. + 2) Fix a bug in "-print -html/-gif -o". Thanks to Eddy De Greef + for pointing out the problem. + 3) Assign Alt+Cntrl+5 to Insert Right Subscript. + 4) Fix Precise Scale Everything to scale line widths, arrow widths, and + arrow heights. + 5) Add NLS support for the status line. Thanks to Jun Nishii + for the patch. + 6) New Tgif.tmpl-openbsd. Thanks to Hal Snyder + for providing the patch. + -----------------------> tgif-4.1.22 => tgif-4.1.23 <----------------------- 1) Fix a bug in handling rotated text object exported from the gnuplot tgif *** Tgif.tmpl-openbsd.orig Tue Nov 16 09:07:50 1999 --- Tgif.tmpl-openbsd Tue Nov 16 09:07:50 1999 *************** *** 0 **** --- 1,77 ---- + XCOMM + XCOMM Author: William Chia-Wei Cheng (william@cs.ucla.edu) + XCOMM + XCOMM Copyright (C) 1990-1999, William Chia-Wei Cheng. + XCOMM + XCOMM Permission limited to the use, copy, display, distribute without + XCOMM charging for a fee, and produce derivative works of "tgif" and + XCOMM its documentation for not-for-profit purpose is hereby granted by + XCOMM the Author, provided that the above copyright notice appears in + XCOMM all copies made of "tgif" and that both the copyright notice + XCOMM and this permission notice appear in supporting documentation, + XCOMM and that the name of the Author not be used in advertising or + XCOMM publicity pertaining to distribution of the software without + XCOMM specific, written prior permission. The Author makes no + XCOMM representations about the suitability of this software for any + XCOMM purpose. It is provided "as is" without express or implied + XCOMM warranty. All other rights (including, but not limited to, the + XCOMM right to sell "tgif", the right to sell or distribute derivative + XCOMM works of "tgif", the right to distribute "tgif" for a fee, and + XCOMM the right to include "tgif" or derivative works of "tgif" in a + XCOMM for-sale product or service) are reserved by the Author. + XCOMM + XCOMM THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + XCOMM INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO + XCOMM EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, INDIRECT OR + XCOMM CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + XCOMM USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + XCOMM OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + XCOMM PERFORMANCE OF THIS SOFTWARE. + XCOMM + XCOMM @(#)$Header: /mm/src/tgif/v4/RCS/Tgif.tmpl-openbsd,v 4.0 1999/11/14 21:28:11 william Exp $ + XCOMM + + #if ProjectX == 5 + #if BuildXimp + XIMPDEFINES = + #else + XIMPDEFINES = -D_NO_XIMP + #endif + #elif ProjectX > 5 + XIMPDEFINES = + #endif + + PROGRAMS = tgif XCOMM prtgif frontend11.o testdrive + XCOMM CDEBUGFLAGS= -g -Wall + XCOMM INSTPGMFLAGS= -s + XCOMM BINDIR = /u/halfmoon/bin + XCOMM MANPATH = /u/halfmoon/man + XCOMM TGIFDIR = /u/halfmoon/lib/X11/tgif + TGIFDIR = $(LIBDIR)/tgif + LOCALEDIR = /usr/share/locale + DIRDEFINES = -DTGIF_PATH=\"$(TGIFDIR)\" -DPSFILE_MOD=0664 \@@\ + -DLOCALEDIR=\"$(LOCALEDIR)\" \@@\ + -DTELEPORT_ATTR=\"warp_to=\" -DTMP_DIR=\"/tmp/\" \@@\ + -DLAUNCH_ATTR=\"launch=\" -DEXEC_ATTR=\"exec=\" + EXTDEFINES = -DEPSF_FILE_EXT=\"eps\" -DPS_FILE_EXT=\"ps\" \@@\ + -DXBM_FILE_EXT=\"xbm\" -DXPM_FILE_EXT=\"xpm\" \@@\ + -DOBJ_FILE_EXT=\"obj\" -DSYM_FILE_EXT=\"sym\" \@@\ + -DTEXT_FILE_EXT=\"txt\" -DPIN_FILE_EXT=\"pin\" + MISCDEFINES = -D_BACKGROUND_DONT_FORK -D_USE_XDRAWPOINT_TO_PUT_A_POINT \@@\ + -D_USE_PS_ADOBE_STRING=\"3.0/3.0\" + MOREDEFINES = + + XCOMM ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + XCOMM Please see Imakefile for more defines to be added to MOREDEFINES above + XCOMM ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + DEPLIBS = $(DEPXLIB) + LOCAL_LIBRARIES = $(XLIB) + XCOMM LOCAL_LIBRARIES = $(XMULIB) $(XTOOLLIB) $(XLIB) + SYS_LIBRARIES = -lm + XCOMM SYS_LIBRARIES = -lm + + XCOMM ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ XCOMM + XCOMM This file has been tested under (uname -s -r): XCOMM + XCOMM OpenBSD 2.6 XCOMM + XCOMM ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ XCOMM