1 /* 2 * Author: William Chia-Wei Cheng (bill.cheng@acm.org) 3 * 4 * Copyright (C) 2001-2009, William Chia-Wei Cheng. 5 * 6 * This file may be distributed under the terms of the Q Public License 7 * as defined by Trolltech AS of Norway and appearing in the file 8 * LICENSE.QPL included in the packaging of this file. 9 * 10 * THIS FILE IS PROVIDED AS IS WITH NO WARRANTY OF ANY KIND, INCLUDING 11 * THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR 12 * PURPOSE. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, 13 * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING 14 * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, 15 * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION 16 * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17 * 18 * @(#)$Header: /mm2/home/cvs/bc-src/tgif/menuinfo.c,v 1.60 2011/06/09 15:55:15 cvsps Exp $ 19 */ 20 21 #define _INCLUDE_FROM_MENUINFO_C_ 22 23 #include "tgifdefs.h" 24 #include "cmdids.h" 25 26 #include "align.e" 27 #include "color.e" 28 #include "cutpaste.e" 29 #include "drawing.e" 30 #include "edit.e" 31 #include "file.e" 32 #include "font.e" 33 #include "grid.e" 34 #include "help.e" 35 #include "imgproc.e" 36 #include "import.e" 37 #include "menu.e" 38 #include "menuinfo.e" 39 #include "names.e" 40 #include "navigate.e" 41 #include "page.e" 42 #include "pattern.e" 43 #include "raster.e" 44 #include "scroll.e" 45 #include "shape.e" 46 #include "special.e" 47 #include "stream.e" 48 #include "stretch.e" 49 #include "tangram2.e" 50 #include "text.e" 51 #include "xbitmap.e" 52 53 /* ------------------ color menus ------------------ */ 54 55 TgMenuInfo colorMenuInfo={ TGMUTYPE_COLOR, NULL, CreateColorMenu }; 56 57 /* ------------------ bitmap menus ------------------ */ 58 59 static TgMenuItemInfo modeMenuItemInfo[] = { 60 { (char*)(&choicePixmap[NOTHING]), NULL, 61 N_("Enter select/move/resize object mode"), NULL, CMDID_SELECTMODE }, 62 { (char*)(&choicePixmap[DRAWTEXT]), NULL, 63 N_("Enter draw text mode"), NULL, CMDID_DRAWTEXT }, 64 { (char*)(&choicePixmap[DRAWBOX]), NULL, 65 N_("Enter draw rectangle mode"), NULL, CMDID_DRAWBOX }, 66 { (char*)(&choicePixmap[DRAWCORNEROVAL]), NULL, 67 N_("Enter draw corner oval mode"), NULL, CMDID_DRAWCORNEROVAL }, 68 { (char*)(&choicePixmap[DRAWCENTEROVAL]), NULL, 69 N_("Enter draw center oval mode"), NULL, CMDID_DRAWCENTEROVAL }, 70 { (char*)(&choicePixmap[DRAWEDGECIRCLE]), NULL, 71 N_("Enter draw edge circle mode"), NULL, CMDID_DRAWEDGEOVAL }, 72 { (char*)(&choicePixmap[DRAWPOLY]), NULL, 73 N_("Enter draw poly/open spline mode"), NULL, CMDID_DRAWPOLY }, 74 { (char*)(&choicePixmap[DRAWPOLYGON]), NULL, 75 N_("Enter draw polygon/close spline mode"), NULL, CMDID_DRAWPOLYGON }, 76 { (char*)(&choicePixmap[DRAWARC]), NULL, 77 N_("Enter draw arc mode (specify center first)"), NULL, CMDID_DRAWARC }, 78 { (char*)(&choicePixmap[DRAWEDGEARC]), NULL, 79 N_("Enter draw arc mode (specify endpoints first)"), NULL, 80 CMDID_DRAWEDGEARC }, 81 { (char*)(&choicePixmap[DRAWRCBOX]), NULL, 82 N_("Enter draw rcbox mode"), NULL, CMDID_DRAWRCBOX }, 83 { (char*)(&choicePixmap[FREEHAND]), NULL, 84 N_("Enter draw freehand poly/open spline mode"), NULL, 85 CMDID_FREEHANDMODE }, 86 { (char*)(&choicePixmap[VERTEXMODE]), NULL, 87 N_("Enter select/move vertices mode"), NULL, CMDID_SELECTVERTEXMODE }, 88 { (char*)(&choicePixmap[ROTATEMODE]), NULL, 89 N_("Enter rotate/shear object mode"), NULL, CMDID_ROTATESHEARMODE }, 90 { NULL, NULL, NULL, NULL, INVALID } 91 }; 92 TgMenuInfo modeMenuInfo={ TGMUTYPE_BITMAP, modeMenuItemInfo, CreateModeMenu }; 93 94 TgMenuInfo fillMenuInfo={ TGMUTYPE_BITMAP, NULL, CreateFillMenu }; 95 TgMenuInfo penMenuInfo={ TGMUTYPE_BITMAP, NULL, CreatePenMenu }; 96 TgMenuInfo lineWidthMenuInfo={ TGMUTYPE_BITMAP, NULL, CreateLineWidthMenu }; 97 98 static TgMenuItemInfo lineStyleMenuItemInfo[] = { 99 { (char*)(&lineStylePixmap[LS_PLAIN]), NULL, 100 N_("No arrows for a poly/open spline"), NULL, 101 CMDID_CHANGEALLSELLINESTYLE }, 102 { (char*)(&lineStylePixmap[LS_RIGHT]), NULL, 103 N_("An arrow at the end of a poly/open spline"), 104 NULL, CMDID_CHANGEALLSELLINESTYLE }, 105 { (char*)(&lineStylePixmap[LS_LEFT]), NULL, 106 N_("An arrow at the beginning of a poly/open spline"), 107 NULL, CMDID_CHANGEALLSELLINESTYLE }, 108 { (char*)(&lineStylePixmap[LS_DOUBLE]), NULL, 109 N_("Arrows at both ends of a poly/open spline"), 110 NULL, CMDID_CHANGEALLSELLINESTYLE }, 111 { NULL, NULL, NULL, NULL, INVALID } 112 }; 113 TgMenuInfo lineStyleMenuInfo={ TGMUTYPE_BITMAP, lineStyleMenuItemInfo, 114 CreateLineStyleMenu }; 115 116 static TgMenuItemInfo lineTypeMenuItemInfo[] = { 117 { (char*)(&lineTypePixmap[LT_STRAIGHT]), NULL, 118 N_("Straight line segments"), NULL, CMDID_CHANGEALLSELLINETYPE }, 119 { (char*)(&lineTypePixmap[LT_SPLINE]), NULL, 120 N_("Open/closed splines"), NULL, CMDID_CHANGEALLSELLINETYPE }, 121 { (char*)(&lineTypePixmap[LT_INTSPLINE]), NULL, 122 N_("Interpolated splines"), NULL, CMDID_CHANGEALLSELLINETYPE }, 123 { (char*)(&lineTypePixmap[LT_STRUCT_SPLINE]), NULL, 124 N_("Structured splines"), NULL, CMDID_CHANGEALLSELLINETYPE }, 125 { NULL, NULL, NULL, NULL, INVALID } 126 }; 127 TgMenuInfo lineTypeMenuInfo={ TGMUTYPE_BITMAP, lineTypeMenuItemInfo, 128 CreateLineTypeMenu }; 129 130 TgMenuInfo lineDashMenuInfo={ TGMUTYPE_BITMAP, NULL, CreateLineDashMenu }; 131 132 static TgMenuItemInfo horiAlignMenuItemInfo[] = { 133 { (char*)(&alignHoriPixmap[ALIGN_N]), NULL, 134 N_("Set horizontal alignment to none"), 135 NULL, CMDID_SETHORIZONTALALIGN }, 136 { (char*)(&alignHoriPixmap[ALIGN_L]), NULL, 137 N_("Set horizontal alignment to left aligned"), 138 NULL, CMDID_SETHORIZONTALALIGN }, 139 { (char*)(&alignHoriPixmap[ALIGN_C]), NULL, 140 N_("Set horizontal alignment to center aligned"), 141 NULL, CMDID_SETHORIZONTALALIGN }, 142 { (char*)(&alignHoriPixmap[ALIGN_R]), NULL, 143 N_("Set horizontal alignment to right aligned"), 144 NULL, CMDID_SETHORIZONTALALIGN }, 145 { (char*)(&alignHoriPixmap[ALIGN_S]), NULL, 146 N_("Set horizontal distribution to equal-spacing"), 147 NULL, CMDID_SETHORIZONTALALIGN }, 148 { NULL, NULL, NULL, NULL, INVALID } 149 }; 150 TgMenuInfo horiAlignMenuInfo={ TGMUTYPE_BITMAP, horiAlignMenuItemInfo, 151 CreateHoriAlignMenu }; 152 153 static TgMenuItemInfo vertAlignMenuItemInfo[] = { 154 { (char*)(&alignVertPixmap[ALIGN_N]), NULL, 155 N_("Set vertical alignment to none"), 156 NULL, CMDID_SETVERTICALALIGN }, 157 { (char*)(&alignVertPixmap[ALIGN_T]), NULL, 158 N_("Set vertical alignment to top aligned"), 159 NULL, CMDID_SETVERTICALALIGN }, 160 { (char*)(&alignVertPixmap[ALIGN_M]), NULL, 161 N_("Set vertical alignment to middle aligned"), 162 NULL, CMDID_SETVERTICALALIGN }, 163 { (char*)(&alignVertPixmap[ALIGN_B]), NULL, 164 N_("Set vertical alignment to bottom aligned"), 165 NULL, CMDID_SETVERTICALALIGN }, 166 { (char*)(&alignVertPixmap[ALIGN_S]), NULL, 167 N_("Set vertical distribution to equal-spacing"), 168 NULL, CMDID_SETVERTICALALIGN }, 169 { NULL, NULL, NULL, NULL, INVALID } 170 }; 171 TgMenuInfo vertAlignMenuInfo={ TGMUTYPE_BITMAP, vertAlignMenuItemInfo, 172 CreateVertAlignMenu }; 173 174 static TgMenuItemInfo moveModeMenuItemInfo[] = { 175 { (char*)(&moveModePixmap[CONST_MOVE]), NULL, 176 N_("Set constrained move mode"), NULL, CMDID_SETMOVEMODE }, 177 { (char*)(&moveModePixmap[UNCONST_MOVE]), NULL, 178 N_("Set unconstrained move mode"), NULL, CMDID_SETMOVEMODE }, 179 { NULL, NULL, NULL, NULL, INVALID } 180 }; 181 TgMenuInfo moveModeMenuInfo={ TGMUTYPE_BITMAP, moveModeMenuItemInfo, 182 CreateMoveModeMenu }; 183 184 static TgMenuItemInfo stretchableTextModeMenuItemInfo[] = { 185 { (char*)(&stretchableModePixmap[NO_STRETCHABLE_TEXT]), NULL, 186 N_("Make text objects not stretchable"), NULL, CMDID_SETSTRETCHTEXTMODE }, 187 { (char*)(&stretchableModePixmap[STRETCHABLE_TEXT]), NULL, 188 N_("Make text objects stretchable"), NULL, CMDID_SETSTRETCHTEXTMODE }, 189 { NULL, NULL, NULL, NULL, INVALID } 190 }; 191 TgMenuInfo stretchableTextModeMenuInfo={ TGMUTYPE_BITMAP, 192 stretchableTextModeMenuItemInfo, 193 CreateStretchableTextModeMenu }; 194 195 static TgMenuItemInfo objShadowMenuItemInfo[] = { 196 { N_("Add Object Shadow"), NULL, 197 N_("Add shadows to selected objects"), NULL, CMDID_ADDOBJSHADOW }, 198 { N_("Remove Object Shadow"), NULL, 199 N_("Remove shadows from selected objects"), NULL, CMDID_REMOVEOBJSHADOW }, 200 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 201 { N_("Set Object Shadow Color..."), NULL, 202 N_("Set the shadow color to be used for creating object shadows"), NULL, 203 CMDID_SETOBJSHADOWCOLOR }, 204 { N_("Set Object Shadow Offsets..."), NULL, 205 N_("Set the x and y offset for generic object shadow"), NULL, 206 CMDID_SETOBJSHADOWOFFSETS }, 207 { NULL, NULL, NULL, NULL, INVALID } 208 }; 209 static TgMenuInfo objShadowMenuInfo={ TGMUTYPE_TEXT, 210 objShadowMenuItemInfo, 211 TgCreateMenuFromMenuInfo }; 212 213 TgMenuInfo shapeMenuInfo={ TGMUTYPE_BITMAP, NULL, CreateShapeMenu }; 214 215 static TgMenuItemInfo pageLayoutMenuItemInfo[] = { 216 { (char*)(&pageLayoutPixmap[PAGE_STACK]), NULL, 217 N_("Stacked page mode"), NULL, CMDID_SETPAGELAYOUTMODE }, 218 { (char*)(&pageLayoutPixmap[PAGE_TILE]), NULL, 219 N_("Tiled page mode"), NULL, CMDID_SETPAGELAYOUTMODE }, 220 { NULL, NULL, NULL, NULL, INVALID } 221 }; 222 TgMenuInfo pageLayoutMenuInfo={ TGMUTYPE_BITMAP, pageLayoutMenuItemInfo, 223 CreatePageLayoutMenu }; 224 225 static TgMenuItemInfo transPatModeMenuItemInfo[] = { 226 { (char*)(&transPatPixmap[NO_TRANSPAT_MODE]), NULL, 227 N_("Make fill and pen patterns opaque"), NULL, CMDID_SETTRANSPATMODE }, 228 { (char*)(&transPatPixmap[TRANSPAT_MODE]), NULL, 229 N_("Make fill and pen patterns transparent"), NULL, 230 CMDID_SETTRANSPATMODE }, 231 { NULL, NULL, NULL, NULL, INVALID } 232 }; 233 TgMenuInfo transPatModeMenuInfo={ TGMUTYPE_BITMAP, transPatModeMenuItemInfo, 234 CreateTransPatModeMenu }; 235 236 static TgMenuItemInfo pageStyleMenuItemInfo[] = { 237 { N_("Portrait"), NULL, N_("Portrait page style"), NULL, 238 CMDID_PORTRAITMODE }, 239 { N_("Landscape"), NULL, N_("Lanscape page style"), NULL, 240 CMDID_LANDSCAPEMODE }, 241 { NULL, NULL, NULL, NULL, INVALID } 242 }; 243 TgMenuInfo pageStyleMenuInfo={ TGMUTYPE_TEXT, pageStyleMenuItemInfo, 244 CreatePageStyleMenu }; 245 246 /* ------------------ text menus ------------------ */ 247 248 TgMenuInfo fontMenuInfo={ TGMUTYPE_TEXT, NULL, CreateFontMenu }; 249 250 static TgMenuItemInfo fontStyleMenuItemInfo[] = { 251 { N_("Roman"), "Alt+Cntrl+o", N_("Roman text style"), NULL, 252 CMDID_CHANGEALLSELFONTSTYLE }, 253 { N_("Bold"), "Alt+Cntrl+b", N_("Bold text style"), NULL, 254 CMDID_CHANGEALLSELFONTSTYLE }, 255 { N_("Italic"), "Alt+Cntrl+t", N_("Italic text style"), NULL, 256 CMDID_CHANGEALLSELFONTSTYLE }, 257 { N_("BoldItalic"), "Alt+Cntrl+p", N_("Bold-italic text style"), NULL, 258 CMDID_CHANGEALLSELFONTSTYLE }, 259 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 260 { N_("Left"), "Alt+Cntrl+l", N_("Left justified text"), NULL, 261 CMDID_CHANGEALLSELFONTJUST }, 262 { N_("Center"), "Alt+Cntrl+c", N_("Center justified text"), NULL, 263 CMDID_CHANGEALLSELFONTJUST }, 264 { N_("Right"), "Alt+Cntrl+r", N_("Right justified text"), NULL, 265 CMDID_CHANGEALLSELFONTJUST }, 266 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 267 { N_("No Underline"), NULL, N_("No underlined text"), NULL, 268 CMDID_CHANGEALLSELFONTUNDERLINE }, 269 { N_("Underline"), NULL, N_("Underlined text"), NULL, 270 CMDID_CHANGEALLSELFONTUNDERLINE }, 271 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 272 { N_("No Overline"), NULL, N_("No overlined text"), NULL, 273 CMDID_CHANGEALLSELFONTOVERLINE }, 274 { N_("Overline"), NULL, N_("Overlined text"), NULL, 275 CMDID_CHANGEALLSELFONTOVERLINE }, 276 { NULL, NULL, NULL, NULL, INVALID } 277 }; 278 TgMenuInfo fontStyleMenuInfo={ TGMUTYPE_TEXT, fontStyleMenuItemInfo, 279 CreateFontStyleMenu }; 280 281 TgMenuInfo fontSizeMenuInfo={ TGMUTYPE_TEXT, NULL, CreateFontSizeMenu }; 282 283 static TgMenuItemInfo stackedPageMenuItemInfo[] = { 284 { N_("Next Page"), NULL, N_("Go to next page"), NULL, CMDID_NEXTPAGE }, 285 { N_("Prev Page"), NULL, N_("Go to previous page"), NULL, CMDID_PREVPAGE }, 286 { N_("Goto Page..."), NULL, N_("Go to a specified page"), NULL, 287 CMDID_GOTOPAGE }, 288 { N_("Name Pages..."), NULL, N_("Assign names to pages"), NULL, 289 CMDID_NAMEPAGES }, 290 { N_("Edit Page File Names..."), NULL, 291 N_("Assign file names to pages to be used for PrintOneFilePerPage()"), 292 NULL, CMDID_EDITPAGEFILENAMES }, 293 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 294 { N_("Add Page Before..."), NULL, N_("Add a page before the current page"), 295 NULL, CMDID_ADDPAGEBEFORE }, 296 { N_("Add Page After..."), NULL, 297 N_("Add a page after the current page"), NULL, CMDID_ADDPAGEAFTER }, 298 { N_("Add Page Before (Copy All)..."), NULL, 299 N_("Add a page before the current page and copy everything on the current page to the new page"), 300 NULL, CMDID_ADDPAGEBEFORECOPYALL }, 301 { N_("Add Page After (Copy All)..."), NULL, 302 N_("Add a page after the current page and copy everything on the current page to the new page"), 303 NULL, CMDID_ADDPAGEAFTERCOPYALL }, 304 { N_("Delete Current Page"), NULL, N_("Delete the current page"), NULL, 305 CMDID_DELETECURPAGE }, 306 { N_("Delete Pages..."), NULL, N_("Delete user-specified pages"), NULL, 307 CMDID_DELETEPAGES }, 308 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 309 { N_("Print One Page"), NULL, N_("Print the curret page"), NULL, 310 CMDID_PRINTONEPAGE }, 311 { N_("Print Pages..."), NULL, N_("Print user-specified pages"), NULL, 312 CMDID_PRINTPAGES }, 313 { N_("Print One File Per Page..."), NULL, 314 N_("Print into a separate file for each page"), 315 NULL, CMDID_PRINTONEFILEPERPAGE }, 316 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 317 { N_("Specify Paper Size..."), NULL, 318 N_("Set the physical size of the paper"), NULL, CMDID_SPECIFYPAPERSIZE }, 319 { N_("Set Paper Color..."), NULL, N_("Set the color of the paper"), NULL, 320 CMDID_SETPAPERCOLOR }, 321 { NULL, NULL, NULL, NULL, INVALID } 322 }; 323 TgMenuInfo stackedPageMenuInfo={ TGMUTYPE_TEXT, stackedPageMenuItemInfo, 324 TgCreateMenuFromMenuInfo }; 325 326 static TgMenuItemInfo tiledPageMenuItemInfo[] = { 327 { N_("Toggle Page Line Shown"), NULL, 328 N_("Toggle the showing of page boundaries"), NULL, 329 CMDID_TOGGLEPAGELINESHOWN }, 330 { N_("Specify Drawing Size..."), NULL, N_("Change the drawing size"), NULL, 331 CMDID_SPECIFYDRAWINGSIZE }, 332 { N_("Print One Page"), NULL, N_("Select and print one of the pages"), NULL, 333 CMDID_PRINTONEPAGE }, 334 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 335 { N_("Specify Paper Size..."), NULL, 336 N_("Set the physical size of the paper"), NULL, CMDID_SPECIFYPAPERSIZE }, 337 { N_("Set Paper Color..."), NULL, N_("Set the color of the paper"), NULL, 338 CMDID_SETPAPERCOLOR }, 339 { NULL, NULL, NULL, NULL, INVALID } 340 }; 341 TgMenuInfo tiledPageMenuInfo={ TGMUTYPE_TEXT, tiledPageMenuItemInfo, 342 TgCreateMenuFromMenuInfo }; 343 344 static TgMenuItemInfo pageMenuItemInfo[] = { 345 { N_("Stacked Page"), TGMUITEM_PINNABLESUBMENU, 346 N_("StackedPage Menu"), &stackedPageMenuInfo, MENU_STACKEDPAGE }, 347 { N_("Tiled Page"), TGMUITEM_PINNABLESUBMENU, 348 N_("TiledPage Menu"), &tiledPageMenuInfo, MENU_TILEDPAGE }, 349 { NULL, NULL, NULL, NULL, INVALID } 350 }; 351 TgMenuInfo pageMenuInfo={ TGMUTYPE_TEXT, pageMenuItemInfo, CreatePageMenu }; 352 353 static TgMenuItemInfo reduceColorMenuItemInfo[] = { 354 { N_("Reduce Colors..."), NULL, 355 N_("Reduce the number of colors of a selected image"), 356 NULL, CMDID_REDUCECOLORS }, 357 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 358 { N_("Set Default Color Levels..."), NULL, 359 N_("Set the number of R G B color levels for the ``standard colors''"), 360 NULL, CMDID_SETDEFAULTCOLORLEVELS }, 361 { N_("Reduce To Default Colors"), NULL, 362 N_("Reduce the colors of a selected image to standard colors"), NULL, 363 CMDID_REDUCETODEFAULTCOLORs }, 364 { N_("Default Error Diffuse"), NULL, 365 N_("Error diffuse to reduce colors of a selected image to standard colors"), 366 NULL, CMDID_DEFAULTERRORDIFFUSE }, 367 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 368 { N_("Reduce To Pixmap Colors..."), NULL, 369 N_("Reduce the colors of a selected image to a the colors in an XPM file"), 370 NULL, CMDID_REDUCETOPIXMAPCOLORS }, 371 { N_("Reduce To Mobileweb Safe Colors"), NULL, 372 N_("Reduce the colors of a selected image to colors that are \"MobileWeb safe\" (6 shades of red/green/blue each)"), 373 NULL, CMDID_REDUCETOMOBILEWEBCOLORS }, 374 { NULL, NULL, NULL, NULL, INVALID } 375 }; 376 static TgMenuInfo reduceColorMenuInfo={ TGMUTYPE_TEXT, reduceColorMenuItemInfo, 377 TgCreateMenuFromMenuInfo }; 378 379 static TgMenuItemInfo effectsMenuItemInfo[] = { 380 { N_("Edge Detect"), NULL, N_("Perform edge-detection on a selected image"), 381 NULL, CMDID_EDGEDETECT }, 382 { N_("Emboss"), NULL, N_("Convert a selected image to gray and then emboss"), 383 NULL, CMDID_EMBOSS }, 384 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 385 { N_("Spread..."), NULL, N_("Spread the pixels of a selected image around"), 386 NULL, CMDID_SPREAD }, 387 { N_("Sharpen"), NULL, N_("Sharpen a selected image"), NULL, CMDID_SHARPEN }, 388 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 389 { N_("Blur (3x3)"), NULL, N_("Blur a selected image using a 3 by 3 filter"), 390 NULL, CMDID_BLUR3 }, 391 { N_("Blur (5x5)"), NULL, N_("Blur a selected image using a 5 by 5 filter"), 392 NULL, CMDID_BLUR5 }, 393 { N_("Blur (7x7)"), NULL, N_("Blur a selected image using a 7 by 7 filter"), 394 NULL, CMDID_BLUR7 }, 395 { NULL, NULL, NULL, NULL, INVALID } 396 }; 397 static TgMenuInfo effectsMenuInfo={ TGMUTYPE_TEXT, effectsMenuItemInfo, 398 TgCreateMenuFromMenuInfo }; 399 400 static TgMenuItemInfo generateMenuItemInfo[] = { 401 { N_("Run Bggen..."), NULL, 402 N_("Run 'bggen' to create an image using the size of a selected image"), 403 NULL, CMDID_RUNBGGEN }, 404 { N_("Circular Bggen..."), NULL, 405 N_("Create a gray circular image using the size of a selected image"), 406 NULL, CMDID_CIRCULARBGGEN }, 407 { N_("Simple Rect Bggen..."), NULL, 408 N_("Create a single-color rectanglar image using the size of selected image"), 409 NULL, CMDID_SIMPLERECTBGGEN }, 410 { NULL, NULL, NULL, NULL, INVALID } 411 }; 412 static TgMenuInfo generateMenuInfo={ TGMUTYPE_TEXT, generateMenuItemInfo, 413 TgCreateMenuFromMenuInfo }; 414 415 static TgMenuItemInfo fillReplaceMenuItemInfo[] = { 416 { N_("Replace Color"), NULL, 417 N_("Replace a color in a selected image with the current color"), NULL, 418 CMDID_REPLACECOLOR }, 419 { N_("Replace Color with Transparent"), NULL, 420 N_("Replace a color in a selected image with a transparent color"), NULL, 421 CMDID_REPLACECOLORWITHTRANS }, 422 { N_("Flood Fill"), NULL, 423 N_("Flood-fill a selected image with the current color"), 424 NULL, CMDID_FLOODFILL }, 425 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 426 { N_("Enable Threshold-based Flood and Replace Color"), NULL, 427 N_("Enable flood fill and replace color to apply to colors similar to the selected pixel (+/- a threshold)"), 428 NULL, CMDID_TOGGLEFLOODREPLACECOLORTHRESH }, 429 { N_("Set Flood and Replace Color Threshold"), NULL, 430 N_("Set flood fill and replace color threshold"), 431 NULL, CMDID_SETFLOODREPLACECOLORTHRESH }, 432 { NULL, NULL, NULL, NULL, INVALID } 433 }; 434 static TgMenuInfo fillReplaceMenuInfo={ TGMUTYPE_TEXT, fillReplaceMenuItemInfo, 435 CreateImageProcMenu }; 436 static TgMenuItemInfo imageProcMenuItemInfo[] = { 437 { N_("Make Gray"), NULL, N_("Convert a selected image into gray-scale"), 438 NULL, CMDID_MAKEGRAY }, 439 { N_("Brighten/Darken..."), NULL, N_("Brighten or darken a selected image"), 440 NULL, CMDID_BRIGHTENDARKEN }, 441 { N_("Contrast Enhance..."), NULL, N_("Adjust contrast of a selected image"), 442 NULL, CMDID_CONTRASTENHANCE }, 443 { N_("Gamma Correct..."), NULL, 444 N_("Apply gamma correction a selected image"), NULL, CMDID_GAMMA }, 445 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 446 { N_("Change Saturation..."), NULL, 447 N_("Change saturation of a selected image"), NULL, 448 CMDID_CHANGESATURATION }, 449 { N_("Change Hue..."), NULL, N_("Change hue of a selected image"), NULL, 450 CMDID_CHANGEHUE }, 451 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 452 { N_("Invert Color"), NULL, 453 N_("Subtract every pixel of a selected image from White (in RGB-model)"), 454 NULL, CMDID_INVERTCOLOR }, 455 { N_("Interpolate Color..."), NULL, 456 N_("Map pixel intensities of a selected image between two specified colors"), 457 NULL, CMDID_INTERPOLATECOLOR }, 458 { N_("Color Balance..."), NULL, 459 N_("Balance the RGB components of a selected image"), 460 NULL, CMDID_COLORBALANCE }, 461 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 462 { N_("Reduce Number Of Colors"), TGMUITEM_SUBMENU, 463 N_("Reduce number of colors submenu >>>"), &reduceColorMenuInfo, INVALID }, 464 { N_("Effects"), TGMUITEM_SUBMENU, 465 N_("Effects submenu >>>"), &effectsMenuInfo, INVALID }, 466 { N_("Generate"), TGMUITEM_SUBMENU, 467 N_("Generate submenu >>>"), &generateMenuInfo, INVALID }, 468 { N_("Flood Fill / Replace Colors"), TGMUITEM_SUBMENU, 469 N_("Flood fill and replace colors submenu >>>"), &fillReplaceMenuInfo, INVALID }, 470 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 471 { N_("Regenerate Image"), NULL, 472 N_("Regenerated a selected image"), NULL, CMDID_REGENERATEIMAGE }, 473 { N_("Crop Image"), NULL, N_("Crop a selected image"), NULL, 474 CMDID_CROPIMAGE }, 475 { N_("Get Color"), NULL, 476 N_("Pick a color from a selected image to be the current color"), NULL, 477 CMDID_GETCOLOR }, 478 { N_("Create Contour"), NULL, 479 N_("Generate a contour from a point in a selected image"), NULL, 480 CMDID_CREATECONTOUR }, 481 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 482 { N_("Subtract"), NULL, 483 N_("Subtract one image from another"), NULL, CMDID_SUBTRACT }, 484 { N_("Alpha Combine"), NULL, 485 N_("Combine 2 images using another image as the alpha channel"), NULL, 486 CMDID_ALPHACOMBINE }, 487 { N_("Xor Color"), NULL, N_("XOR the colors of one image into another"), 488 NULL, CMDID_XORCOLORS }, 489 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 490 { N_("Vector Warp"), NULL, 491 N_("Warp selected image in a specified direction for a specified amount"), 492 NULL, CMDID_VECTORWARP }, 493 { NULL, NULL, NULL, NULL, INVALID } 494 }; 495 TgMenuInfo imageProcMenuInfo={ TGMUTYPE_TEXT, imageProcMenuItemInfo, 496 TgCreateMenuFromMenuInfo }; 497 498 static TgMenuItemInfo driverMenuItemInfo[] = { 499 { N_("Solve"), "Alt+s", N_("Escape to driver"), NULL, CMDID_SOLVE }, 500 { N_("Simulate"), "Alt+y", N_("Escape to driver"), NULL, CMDID_SIMULATE }, 501 { N_("Probe"), "Alt+b", N_("Escape to driver"), NULL, CMDID_PROBE }, 502 { N_("Animate"), "Alt+u", N_("Escape to driver"), NULL, CMDID_ANIMATE }, 503 { N_("Escape"), "Alt+x", N_("Escape to driver"), NULL, CMDID_ESCAPE }, 504 { NULL, NULL, NULL, NULL, INVALID } 505 }; 506 static TgMenuInfo driverMenuInfo={ TGMUTYPE_TEXT, driverMenuItemInfo, 507 TgCreateMenuFromMenuInfo }; 508 509 static TgMenuItemInfo browseMenuItemInfo[] = { 510 { N_("Create Thumbnails"), NULL, 511 N_("Create a thumbnail map of all object files"), NULL, 512 CMDID_CREATETHUMBNAILS }, 513 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 514 { N_("Browse X Bitmap"), NULL, 515 N_("Recursively read in all X11 bitmap files"), NULL, 516 CMDID_BROWSEXBITMAP }, 517 { N_("Browse X Pixmap"), NULL, 518 N_("Recursively read in all X11 pixmap files"), NULL, 519 CMDID_BROWSEXPIXMAP }, 520 { N_("Browse Other..."), NULL, 521 N_("Recursively read in all another type of files"), NULL, 522 CMDID_BROWSEOTHER }, 523 { NULL, NULL, NULL, NULL, INVALID } 524 }; 525 static TgMenuInfo browseMenuInfo={ TGMUTYPE_TEXT, browseMenuItemInfo, 526 TgCreateMenuFromMenuInfo }; 527 528 static TgMenuItemInfo importMultipageTextMenuItemInfo[] = { 529 { N_("Import Multipage Text File"), NULL, N_("Import a multipage text file"), 530 NULL, CMDID_IMPORTMULTIPAGETEXTFILE }, 531 { N_("Set Margins"), NULL, 532 N_("Set margins for importing multipage text files"), NULL, 533 CMDID_SETMARGINSONIMPORTTEXT }, 534 { N_("Word Wrap"), NULL, 535 N_("Turn word wrapping on and off for importing multipage text files"), 536 NULL, CMDID_TOGGLEWORDWRAPONIMPORTTEXT }, 537 { NULL, NULL, NULL, NULL, INVALID } 538 }; 539 static TgMenuInfo importMultipageTextMenuInfo={ TGMUTYPE_TEXT, 540 importMultipageTextMenuItemInfo, 541 CreateImportMutipageTextFileMenu }; 542 543 static TgMenuItemInfo captureMenuItemInfo[] = { 544 { N_("Screen Capture"), "Cntrl+1", 545 N_("Capture a rectangular area of the screen"), NULL, 546 CMDID_SCREENCAPTURE }, 547 { N_("Full Screen Capture"), "Cntrl+2", N_("Capture the whole screen"), NULL, 548 CMDID_FULLSCREENCAPTURE }, 549 { N_("Delayed Full Screen Capture..."), NULL, 550 N_("Capture the whole screen after a specified delay"), NULL, 551 CMDID_DELAYEDFULLSCREENCAPTURE }, 552 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 553 { N_("Hide During Capture"), NULL, 554 N_("Toggle between hiding and showing tgif during capture"), NULL, 555 CMDID_TOGGLEHIDEDURINGCAPTURE }, 556 { NULL, NULL, NULL, NULL, INVALID } 557 }; 558 static TgMenuInfo captureMenuInfo={ TGMUTYPE_TEXT, captureMenuItemInfo, 559 CreateScreenCaptureMenu }; 560 561 static TgMenuItemInfo importMenuItemInfo[] = { 562 { N_("Import..."), "Alt+p", N_("Embed/Import another drawing"), NULL, 563 CMDID_IMPORT }, 564 { N_("Import X Bitmap..."), "Alt+Cntrl+.", 565 N_("Embed/Import an X11 bitmap file"), NULL, CMDID_IMPORTXBITMAP }, 566 { N_("Import X Pixmap..."), "Alt+Cntrl+,", 567 N_("Embed/Import an X11 pixmap file"), NULL, CMDID_IMPORTXPIXMAP }, 568 { N_("Import EPS File..."), "Alt+(", N_("Link to a PS/EPS file"), NULL, 569 CMDID_IMPORTEPSFILE }, 570 { N_("Import GIF File..."), NULL, N_("Embed/Import a GIF file"), NULL, 571 CMDID_IMPORTGIFFILE }, 572 { N_("Import PNG File..."), NULL, N_("Embed/Import a PNG file"), NULL, 573 CMDID_IMPORTPNGFILE }, 574 { N_("Import JPEG File..."), NULL, N_("Embed/Import a JPEG file"), NULL, 575 CMDID_IMPORTJPEGFILE }, 576 { N_("Import PBM File..."), NULL, N_("Embed/Import a PBM file"), NULL, 577 CMDID_IMPORTPBMFILE }, 578 { N_("Import PGM File..."), NULL, N_("Embed/Import a PGM file"), NULL, 579 CMDID_IMPORTPGMFILE }, 580 { N_("Import PPM File..."), NULL, N_("Embed/Import a PPM file"), NULL, 581 CMDID_IMPORTPPMFILE }, 582 { N_("Import Other File..."), NULL, N_("Embed/Import another type of file"), 583 NULL, CMDID_IMPORTOTHERFILE }, 584 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 585 { N_("Embed EPS File..."), NULL, N_("Embed/Import a PS/EPS file"), NULL, 586 CMDID_EMBEDEPSFILE }, 587 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 588 { N_("Link External JPEG File..."), NULL, 589 N_("Link to an external JPEG file"), NULL, CMDID_LINKEXTJPEGFILE }, 590 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 591 { N_("Auto EPS Preview Bitmap"), NULL, 592 N_("Auto-generate a preview bitmap for a PS/EPS file when embedding/importing it (if it does not have one already)."), NULL, 593 CMDID_TOGGLEAUTOEPSPREVIEWBITMAP }, 594 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 595 { N_("Paste From File..."), NULL, 596 N_("Select a file and paste the content as text"), NULL, 597 CMDID_PASTEFROMFILE }, 598 { N_("Import Multipage Text File"), TGMUITEM_SUBMENU, 599 N_("Import Multipage Text File submenu >>>"), 600 &importMultipageTextMenuInfo, INVALID }, 601 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 602 { N_("Browse"), TGMUITEM_SUBMENU, 603 N_("Browse submenu >>>"), &browseMenuInfo, INVALID }, 604 { N_("Screen Capture"), TGMUITEM_SUBMENU, 605 N_("Screen Capture submenu >>>"), &captureMenuInfo, INVALID }, 606 { NULL, NULL, NULL, NULL, INVALID } 607 }; 608 static TgMenuInfo importMenuInfo={ TGMUTYPE_TEXT, importMenuItemInfo, 609 CreateImportMenu }; 610 611 static TgMenuItemInfo domainMenuItemInfo[] = { 612 { N_("Change Domain..."), "Alt+*", N_("Change to a different domain"), NULL, 613 CMDID_CHANGEDOMAIN }, 614 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 615 { N_("Edit Domain Paths..."), NULL, N_("Edit domain paths"), NULL, 616 CMDID_EDITDOMAINPATHS }, 617 { N_("Select Default Domain..."), NULL, N_("Select the default domain"), 618 NULL, CMDID_SELECTDEFAULTDOMAIN }, 619 { N_("Add A Domain..."), NULL, N_("Add a new domain"), NULL, 620 CMDID_ADDADOMAIN }, 621 { N_("Delete A Domain..."), NULL, N_("Delete an existing domain"), NULL, 622 CMDID_DELETEADOMAIN }, 623 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 624 { N_("Reload Domain Info From X..."), NULL, 625 N_("Reload domain information from X defaults"), NULL, 626 CMDID_RELOADDOMAININFOFROMX }, 627 { NULL, NULL, NULL, NULL, INVALID } 628 }; 629 static TgMenuInfo domainMenuInfo={ TGMUTYPE_TEXT, domainMenuItemInfo, 630 CreateDomainMenu }; 631 632 TgMenuInfo exportFormatMenuInfo={ TGMUTYPE_BITMAP, NULL, 633 CreateExportFormatMenu }; 634 635 static TgMenuItemInfo gifAnimateMenuItemInfo[] = { 636 { N_("Export X Pixmap Deck To GIF"), NULL, 637 N_("Export a deck of X11 pixmap images to an animated GIF file"), NULL, 638 CMDID_EXPORTXPMDECKTOGIF }, 639 { N_("Import GIF To X Pixmap Deck..."), NULL, 640 N_("Import an animated GIF file into a deck of X11 pixmap images"), NULL, 641 CMDID_IMPORTGIFTOXPMDECK }, 642 { NULL, NULL, NULL, NULL, INVALID } 643 }; 644 static TgMenuInfo gifAnimateMenuInfo={ TGMUTYPE_TEXT, gifAnimateMenuItemInfo, 645 TgCreateMenuFromMenuInfo }; 646 647 TgMenuInfo recentFilesMenuInfo={ TGMUTYPE_TEXT, NULL, CreateRecentFilesMenu }; 648 649 #ifdef _TGIF_DBG 650 static TgMenuItemInfo mimeMenuItemInfo[] = { 651 { N_("Fake User Agent..."), NULL, 652 N_("Set 'UserAgent' to be used when making an HTTP request"), NULL, 653 CMDID_FAKEUSERAGENT }, 654 { N_("Fake Referer..."), NULL, 655 N_("Set 'Referer' to be used when making an HTTP request"), NULL, 656 CMDID_FAKEREFERER }, 657 { N_("Toggle Keep Alive"), NULL, 658 N_("Toggle between using Keep-Alive and non-Keep-Alive HTTP connections"), 659 NULL, CMDID_TOGGLEKEEPALIVE }, 660 { NULL, NULL, NULL, NULL, INVALID } 661 }; 662 static TgMenuInfo mimeMenuInfo={ TGMUTYPE_TEXT, mimeMenuItemInfo, 663 TgCreateMenuFromMenuInfo }; 664 #endif /* _TGIF_DBG */ 665 666 static TgMenuItemInfo fileMenuItemInfo[] = { 667 { N_("New"), "Cntrl+n", N_("Start with a blank/new drawing"), NULL, 668 CMDID_NEW }, 669 { N_("Open..."), "Cntrl+o", N_("Open an existing drawing"), NULL, 670 CMDID_OPEN }, 671 { N_("Import"), TGMUITEM_SUBMENU, 672 "Import submenu >>>", &importMenuInfo, INVALID }, 673 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 674 { N_("Save"), "Cntrl+s", N_("Save current drawing"), NULL, CMDID_SAVE }, 675 { N_("Save New..."), "Alt+Cntrl+s", 676 N_("Save current drawing in a different file"), NULL, CMDID_SAVENEW }, 677 { N_("Save Selected As..."), "Alt+~", 678 N_("Save selected objects in a different file"), NULL, 679 CMDID_SAVESELECTEDAS }, 680 { N_("Save Pages As..."), NULL, 681 N_("Save user-specified pages in a different file"), NULL, 682 CMDID_SAVEPAGESAS }, 683 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 684 { N_("Print"), "Cntrl+p", N_("Print/export current drawing"), NULL, 685 CMDID_PRINT }, 686 { N_("Print/Export Format"), TGMUITEM_SUBMENU, 687 N_("Select print/export format submenu >>>"), &exportFormatMenuInfo, 688 INVALID }, 689 { N_("Set HTML Export Template..."), NULL, 690 N_("Specify a file to be used as a template for genearting HTML files"), 691 NULL, CMDID_SETHTMLEXPORTTEMPLATE }, 692 { N_("Print/Export In Color"), "Alt+Cntrl+k", 693 N_("Toggle between color and black & white printing modes"), NULL, 694 CMDID_TOGGLEBWCOLORPS }, 695 { N_("Print With Cmd..."), "Cntrl+-", 696 N_("Print/export current drawing with a specific command"), NULL, 697 CMDID_PRINTWITHCMD }, 698 { N_("Print Selected Objects"), NULL, 699 N_("Print/export only selected objects"), NULL, CMDID_PRINTSELECTEDOBJS }, 700 { N_("Print One Page"), NULL, N_("Print a page in a multipage drawing"), 701 NULL, CMDID_PRINTONEPAGE }, 702 { N_("Print Pages..."), NULL, N_("Print user-specified pages"), NULL, 703 CMDID_PRINTPAGES }, 704 { N_("Print One File Per Page..."), NULL, 705 N_("Print into a separate file for each page"), 706 NULL, CMDID_PRINTONEFILEPERPAGE }, 707 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 708 { N_("GIF Animation"), TGMUITEM_SUBMENU, 709 N_("GIFAnimation submenu >>>"), &gifAnimateMenuInfo, INVALID }, 710 #ifdef _TGIF_DBG 711 { N_("Mime"), TGMUITEM_SUBMENU, N_("Mime submenu >>>"), 712 &mimeMenuInfo, INVALID }, 713 #endif /* _TGIF_DBG */ 714 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 715 { N_("Print Msg Buffer..."), NULL, 716 N_("Display/save the contents of the message window"), NULL, 717 CMDID_PRINTMSGBUFFER }, 718 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 719 { N_("Set Export Pixel Trim..."), NULL, 720 N_("Specify the number of pixels to trim when exporting"), NULL, 721 CMDID_SETEXPORTPIXELTRIM }, 722 { N_("Set Template..."), NULL, 723 N_("Select a template file be used in STACKED page mode"), NULL, 724 CMDID_SETTEMPLATE }, 725 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 726 { N_("Recent Files"), TGMUITEM_SUBMENU, 727 N_("Recently used files submenu >>>"), &recentFilesMenuInfo, INVALID }, 728 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 729 { N_("Quit"), "Cntrl+q", N_("Exit <<PROGRAM_NAME>>"), NULL, CMDID_QUIT }, 730 { NULL, NULL, NULL, NULL, INVALID } 731 }; 732 TgMenuInfo fileMenuInfo={ TGMUTYPE_TEXT, fileMenuItemInfo, CreateFileMenu }; 733 734 static TgMenuItemInfo transformMenuItemInfo[] = { 735 { N_("Precise Scale..."), "Alt+)", N_("Scale selected objects"), NULL, 736 CMDID_PRECISESCALE }, 737 { "Precise Scale Everything...", NULL, N_("Scale everything"), NULL, 738 CMDID_PRECISESCALEEVERYTHING }, 739 { N_("Precise Rotate..."), NULL, 740 N_("Rotate selected objects by a specified number of degrees"), NULL, 741 CMDID_PRECISEROTATE }, 742 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 743 { N_("Restore Image Width & Height"), NULL, 744 N_("Restore a seleted bitmap/pixmap/EPS object to its original dimension"), 745 NULL, CMDID_RESTOREIMAGEWH }, 746 { N_("No Transform"), NULL, 747 N_("Get rid of transformations on selected simple objects"), NULL, 748 CMDID_NOTRANSFORM }, 749 { NULL, NULL, NULL, NULL, INVALID } 750 }; 751 static TgMenuInfo transformMenuInfo={ TGMUTYPE_TEXT, transformMenuItemInfo, 752 TgCreateMenuFromMenuInfo }; 753 754 static TgMenuItemInfo bitPixmapMenuItemInfo[] = { 755 { N_("Invert X Bitmap"), "Alt+Cntrl+f", 756 N_("Invert pixels for selected bitmap objects"), NULL, 757 CMDID_INVERTXBITMAP }, 758 { N_("Cut Bit/Pixmap..."), "Alt+;", 759 N_("Trim/scale a selected bitmap/pixmap object"), NULL, 760 CMDID_CUTBITPIXMAP }, 761 { N_("Break Up Bit/Pixmap..."), NULL, 762 N_("Break selected bitmap/pixmap object into smaller objects"), NULL, 763 CMDID_BREAKUPBITPIXMAP }, 764 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 765 { N_("Remove Transparent Pixel For Pixmap..."), NULL, 766 N_("Remove transparent pixels for selected pixmap objects"), NULL, 767 CMDID_REMOVETRANSPIXEL }, 768 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 769 { N_("Export Half Tone Bitmap"), NULL, 770 N_("Use Floyd-Steinberg half-tone method when exporting an X11 bitmap file"), 771 NULL, CMDID_EXPORTHALFTONEBITMAP }, 772 { N_("Export Threshold Bitmap"), NULL, 773 N_("Use simple thresholding method when exporting an X11 bitmap file"), 774 NULL, CMDID_EXPORTTHRESHOLDBITMAP }, 775 { N_("Set Export Bitmap Threshold..."), NULL, 776 N_("Set bitmap threshold value for the simple thresholding method"), 777 NULL, CMDID_SETEXPORTBITMAPTHRESHOLD }, 778 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 779 { N_("Update EPS"), NULL, N_("Refresh a selected EPS object"), NULL, 780 CMDID_UPDATEEPS }, 781 { NULL, NULL, NULL, NULL, INVALID } 782 }; 783 static TgMenuInfo bitPixmapMenuInfo={ TGMUTYPE_TEXT, bitPixmapMenuItemInfo, 784 CreateBitPixmapMenu }; 785 786 static TgMenuItemInfo addTickMarksMenuItemInfo[] = { 787 { N_("Set Tick Mark Size..."), NULL, 788 N_("Set the size of tick marks for various commands"), NULL, 789 CMDID_SETTICKMARKSIZE }, 790 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 791 { N_("Add Squares"), NULL, 792 N_("Add square tick marks at vertices of selected polys/polygons/splines"), 793 NULL, CMDID_ADDSQUARETICKMARKS }, 794 { N_("Add Triangles"), NULL, 795 N_("Add triangle tick marks at vertices of selected polys/polygons/splines"), 796 NULL, CMDID_ADDTRIANGLETICKMARKS }, 797 { N_("Add Circles"), NULL, 798 N_("Add circle tick marks at vertices of selected polys/polygons/splines"), 799 NULL, CMDID_ADDCIRCLETICKMARKS }, 800 { N_("Add Xs"), NULL, 801 N_("Add X tick marks at vertices of selected polys/polygons/splines"), 802 NULL, CMDID_ADDXTICKMARKS }, 803 { N_("Add Diamonds"), NULL, 804 N_("Add diamond tick marks at vertices of selected polys/polygons/splines"), 805 NULL, CMDID_ADDDIAMONDTICKMARKS }, 806 { N_("Add Bowties"), NULL, 807 N_("Add bowtie tick marks at vertices of selected polys/polygons/splines"), 808 NULL, CMDID_ADDBOWTIETICKMARKS }, 809 { N_("Add Inverted Triangles"), NULL, 810 N_("Add inverted triangle tick marks at vertices of selected polys/polygons/splines"), 811 NULL, CMDID_ADDINVTRIANGLETICKMARKS }, 812 { N_("Add Plus"), NULL, 813 N_("Add plus tick marks at vertices of selected polys/polygons/splines"), 814 NULL, CMDID_ADDPLUSTICKMARKS }, 815 { N_("Add Hour Glasss"), NULL, 816 N_("Add hour glass tick marks at vertices of selected polys/polygons/splines"), 817 NULL, CMDID_ADDHOURGLASSTICKMARKS }, 818 { NULL, NULL, NULL, NULL, INVALID } 819 }; 820 static TgMenuInfo addTickMarksMenuInfo={ TGMUTYPE_TEXT, 821 addTickMarksMenuItemInfo, 822 TgCreateMenuFromMenuInfo }; 823 824 static TgMenuItemInfo polyMenuItemInfo[] = { 825 { N_("Delete Point"), "Alt+Cntrl+d", 826 N_("Delete vertices from a poly/polygon/spline"), NULL, 827 CMDID_DELETEPOINT }, 828 { N_("Add Point"), "Alt+Cntrl+a", 829 N_("Add vertices to a polygon/polygon/spline"), NULL, CMDID_ADDPOINT }, 830 { N_("Extend Segment"), NULL, 831 N_("Extend or shrink a line segment"), NULL, CMDID_EXTENDSEGMENT }, 832 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 833 { N_("Convert Interpolated Spline"), NULL, 834 N_("Convert selected interpolated splines to regular splines"), NULL, 835 CMDID_CONVERTINTSPLINE }, 836 { N_("Smooth<->Hinge"), NULL, 837 N_("Toggle smooth/hinge vertices for a selected poly/polygon/spline"), 838 NULL, CMDID_TOGGLESMOOTHHINGE }, 839 #ifdef NOT_DEFINED 840 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 841 { N_("Use Tighter Structured Splines"), NULL, 842 N_("Toggle between tighter and looser structured splines"), 843 NULL, CMDID_TOGGLETIGHTERSPLINES }, 844 #endif /* NOT_DEFINED */ 845 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 846 { N_("Convert To Bezier Curve"), NULL, 847 N_("Convert selected splines to Bezier curves"), NULL, 848 CMDID_CONVERTTOBEZIER }, 849 { N_("Set Segments For Convert To Bezier..."), NULL, 850 N_("Set the number of segments for the convert to Bezier command"), NULL, 851 CMDID_SETBEZIERCONVERTNUMSEGS }, 852 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 853 { N_("Join Poly"), NULL, N_("Join polylines or open-splines at endpoints"), 854 NULL, CMDID_JOINPOLY }, 855 { N_("Cut Poly"), NULL, N_("Cut a poly/polygon at a vertex into two pieces"), 856 NULL, CMDID_CUTPOLY }, 857 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 858 { N_("Make Regular Polygon..."), "Alt+\"", 859 N_("Make a selected polygon/closed spline into a regular one"), NULL, 860 CMDID_MAKEREGPOLYGON }, 861 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 862 { N_("Add Tick Marks"), TGMUITEM_SUBMENU, 863 N_("Add Tick Marks submenu >>>"), &addTickMarksMenuInfo, INVALID }, 864 { NULL, NULL, NULL, NULL, INVALID } 865 }; 866 TgMenuInfo polyMenuInfo={ TGMUTYPE_TEXT, polyMenuItemInfo, 867 CreatePolySplineMenu }; 868 869 static TgMenuItemInfo textMenuItemInfo[] = { 870 { N_("Break Up Text"), "Alt+#", 871 N_("Break up selected text objects into one-character text objects"), NULL, 872 CMDID_BREAKUPTEXT }, 873 { N_("Set Text Fill Pattern Color"), NULL, 874 N_("Set the fill pattern color of a text object to be the current color"), 875 NULL, CMDID_SETTEXTFILLPATTERNCOLOR }, 876 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 877 { N_("Insert Right Superscript"), "Alt+Cntrl+6", 878 N_("Insert superscript to the right of the text cursor"), NULL, 879 CMDID_INSERTRIGHTSUPERSCRIPT }, 880 { N_("Insert Right Subscript"), "Alt+Cntrl+5", 881 N_("Insert subscript to the right of the text cursor"), NULL, 882 CMDID_INSERTRIGHTSUBSCRIPT }, 883 { N_("Insert Left Superscript"), NULL, 884 N_("Insert superscript to the left of the text cursor"), NULL, 885 CMDID_INSERTLEFTSUPERSCRIPT }, 886 { N_("Insert Left Subscript"), NULL, 887 N_("Insert subscript to the left of the text cursor"), NULL, 888 CMDID_INSERTLEFTSUBSCRIPT }, 889 { N_("Insert Center Superscript"), NULL, 890 N_("Insert superscript above the text cursor"), NULL, 891 CMDID_INSERTCENTERSUPERSCRIPT }, 892 { N_("Insert Center Subscript"), NULL, 893 N_("Insert subscript below the text cursor"), NULL, 894 CMDID_INSERTCENTERSUBSCRIPT }, 895 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 896 { N_("Insert Symbol..."), NULL, 897 N_("Insert a symbol from the Symbol Font"), NULL, 898 CMDID_INSERTSYMBOL }, 899 #ifdef _TGIF_DBG 900 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 901 { N_("Insert Hex/Octal Character..."), NULL, 902 N_("Insert a character using hex or octal code"), NULL, 903 CMDID_INSERTHEXOCTALCHAR }, 904 #endif /* _TGIF_DBG */ 905 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 906 { N_("Reset input method..."), NULL, 907 N_("Reset connection to the input method (in case it is stuck)"), NULL, 908 CMDID_RESETINMETHOD }, 909 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 910 { N_("Insert Thin Space..."), NULL, 911 N_("Insert a think space at the text cursor"), NULL, 912 CMDID_INSERTTHINSPACE }, 913 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 914 { N_("Insert Vertical Offset..."), NULL, 915 N_("Insert a vertical offset at the text cursor"), NULL, 916 CMDID_INSERTVERTICALOFFSET }, 917 { N_("Remove Vertical Offset..."), NULL, 918 N_("Remove any vertical offset at the text cursor"), NULL, 919 CMDID_REMOVEVERTICALOFFSET }, 920 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 921 { N_("Set Script Fraction..."), NULL, 922 N_("Set the relative size of super/subscript text"), NULL, 923 CMDID_SETSCRIPTFRACTION }, 924 { NULL, NULL, NULL, NULL, INVALID } 925 }; 926 static TgMenuInfo textMenuInfo={ TGMUTYPE_TEXT, textMenuItemInfo, 927 CreateEditTextMenu }; 928 929 static TgMenuItemInfo createObjectMenuItemInfo[] = { 930 { N_("Input Poly Pts"), NULL, 931 N_("Read points from terminal and create a poly"), NULL, 932 CMDID_INPUTPOLYPTS }, 933 { N_("Input Polygon Pts"), NULL, 934 N_("Read points from terminal and create a polygon"), 935 NULL, CMDID_INPUTPOLYGONPTS }, 936 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 937 { N_("Add Tick Marks"), TGMUITEM_SUBMENU, 938 N_("Add Tick Marks submenu >>>"), &addTickMarksMenuInfo, INVALID }, 939 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 940 { N_("Specify An Arc..."), "Alt+9", N_("Create and specify an arc"), NULL, 941 CMDID_SPECIFYANARC }, 942 { N_("Get Bounding Box"), NULL, 943 N_("Get rectangular bounding boxes of selected objects"), NULL, 944 CMDID_GETBOUNDINGBOX }, 945 { N_("Create Rectangle From Bounding Box"), NULL, 946 N_("Create a rectangle from the overall bounding box of selected objects"), NULL, 947 CMDID_NEWRECTFROMBOUNDINGBOX }, 948 { N_("Create Oval From Bounding Box"), NULL, 949 N_("Create an oval from the overall bounding box of selected objects"), NULL, 950 CMDID_NEWOVALFROMBOUNDINGBOX }, 951 { N_("Create Rounded-corner Rectangle From Bounding Box"), NULL, 952 N_("Create a rounded-corner rectangle from the overall bounding box of selected objects"), NULL, 953 CMDID_NEWRCBOXFROMBOUNDINGBOX }, 954 { N_("Create Pixmap From Selected"), NULL, 955 N_("Create an X11 pixmap object from selected objects"), NULL, 956 CMDID_CREATEPIXMAPFROMSEL }, 957 { NULL, NULL, NULL, NULL, INVALID } 958 }; 959 static TgMenuInfo createObjectMenuInfo={ TGMUTYPE_TEXT, 960 createObjectMenuItemInfo, 961 TgCreateMenuFromMenuInfo }; 962 963 static TgMenuItemInfo editMenuItemInfo[] = { 964 { N_("Redraw"), "Cntrl+r", N_("Redraw canvas window"), NULL, CMDID_REDRAW }, 965 { N_("Duplicate"), "Cntrl+d", N_("Duplicate selected objects"), NULL, 966 CMDID_DUPLICATE }, 967 { N_("Delete"), NULL, N_("Delete selected objects"), NULL, CMDID_DELETE }, 968 { N_("Select All"), "Cntrl+a", N_("Select all objects on the current page"), 969 NULL, CMDID_SELECTALL }, 970 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 971 { N_("Undo"), "Cntrl+z", N_("Undo the most recent command"), NULL, 972 CMDID_UNDO }, 973 { N_("Redo"), "Cntrl+y", N_("Redo the most undone command"), NULL, 974 CMDID_REDO }, 975 { N_("Flush Undo Buffer"), NULL, N_("Flush undo buffer and unused colors"), 976 NULL, CMDID_FLUSHUNDOBUFFER }, 977 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 978 { N_("Copy"), "Cntrl+c", N_("Copy selected objects into the cut buffer"), 979 NULL, CMDID_COPY }, 980 { N_("Copy Plain Text As Object"), NULL, 981 N_("Copy highlighted plain text as an object into the cut buffer (to be pasted into Tgif)"), NULL, 982 CMDID_COPYPLAINTEXTASOBJECT }, 983 { N_("Cut"), NULL, N_("Cut selected objects into the cut buffer"), NULL, 984 CMDID_CUT }, 985 { N_("Paste"), "Cntrl+v", N_("Paste from the cut buffer"), NULL, 986 CMDID_PASTE }, 987 { N_("Paste From File..."), NULL, 988 N_("Select a file and paste the content as text"), NULL, 989 CMDID_PASTEFROMFILE }, 990 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 991 { N_("Copy Double-byte (UTF-8) String"), NULL, 992 N_("Copy selected double-byte text string into the cut buffer (UTF-8) encoding"), NULL, 993 CMDID_COPYUTF8 }, 994 { N_("Paste Double-byte (UTF-8) String"), NULL, 995 N_("Paste from the cut buffer (UTF-8 encoding) into a double-byte text object"), NULL, 996 CMDID_PASTEUTF8 }, 997 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 998 { N_("Generic Object Shadow"), TGMUITEM_SUBMENU, 999 N_("Generic Object Shadow submenu >>>"), &objShadowMenuInfo, INVALID }, 1000 { N_("Shape"), TGMUITEM_PINNABLESUBMENU, 1001 N_("Shape submenu >>>"), &shapeMenuInfo, MENU_SHAPE }, 1002 { N_("Set Shape Shadow..."), NULL, N_("Specify the shadow for shapes"), NULL, 1003 CMDID_SETSHAPESHADOW }, 1004 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1005 { N_("Image Proc"), TGMUITEM_PINNABLESUBMENU, 1006 N_("ImageProc submenu >>>"), &imageProcMenuInfo, MENU_IMAGEPROC }, 1007 { N_("Properties"), TGMUITEM_PINNABLESUBMENU, 1008 N_("Properties submenu >>>"), &propertiesMenuInfo, MENU_PROPERTIES }, 1009 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1010 { N_("Transformation"), TGMUITEM_SUBMENU, 1011 N_("Transformation submenu >>>"), &transformMenuInfo, INVALID }, 1012 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1013 { N_("Bitmap/Pixmap/EPS"), TGMUITEM_SUBMENU, 1014 N_("Bitmap/Pixmap/EPS submenu >>>"), &bitPixmapMenuInfo, INVALID }, 1015 { N_("Poly/Polygon"), TGMUITEM_SUBMENU, 1016 N_("Poly/Polygon submenu >>>"), &polyMenuInfo, INVALID }, 1017 { N_("Text"), TGMUITEM_SUBMENU, N_("Text submenu >>>"), &textMenuInfo, 1018 INVALID }, 1019 { N_("Create Object"), TGMUITEM_SUBMENU, 1020 N_("Create object submenu >>>"), &createObjectMenuInfo, INVALID }, 1021 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1022 { N_("Push Current Choice"), "Cntrl+e", 1023 N_("Save/restore current drawing mode"), NULL, CMDID_PUSHCURCHOICE }, 1024 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1025 { N_("Find Case Sensitive..."), "Alt+Cntrl+0", 1026 N_("Find string in visible text objects (case sensitive)"), NULL, 1027 CMDID_FINDCASESENSITIVE }, 1028 { N_("Find No Case..."), "Alt+Cntrl+9", 1029 N_("Find string in visible text objects (case insensitive)"), NULL, 1030 CMDID_FINDNOCASE }, 1031 { N_("Find Again"), "Alt+Cntrl+=", N_("Repeat the last Find command"), NULL, 1032 CMDID_FINDAGAIN }, 1033 /* 1034 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1035 { N_("ConnectPins", NULL, "Connect pins", NULL, CMDID_CONNECTPINS }, 1036 */ 1037 { NULL, NULL, NULL, NULL, INVALID } 1038 }; 1039 TgMenuInfo editMenuInfo={ TGMUTYPE_TEXT, editMenuItemInfo, CreateEditMenu }; 1040 1041 static TgMenuItemInfo alignMenuItemInfo[] = { 1042 { N_("Align Objects Top"), "Alt+{", 1043 N_("Align top sides of selected objects"), NULL, CMDID_ALIGNOBJSTOP }, 1044 { N_("Align Objects Middle"), "Alt++", 1045 N_("Align vertical centers of selected objects"), 1046 NULL, CMDID_ALIGNOBJSMIDDLE }, 1047 { N_("Align Objects Bottom"), "Alt+}", 1048 N_("Align bottom sides of selected objects"), NULL, 1049 CMDID_ALIGNOBJSBOTTOM }, 1050 { N_("Align Objects Left"), "Alt+[", 1051 N_("Align left sides of selected objects"), NULL, CMDID_ALIGNOBJSLEFT }, 1052 { N_("Align Objects Center"), "Alt+=", 1053 N_("Align horizontal centers of selected objects"), 1054 NULL, CMDID_ALIGNOBJSCENTER }, 1055 { N_("Align Objects Right"), "Alt+]", 1056 N_("Align right sides of selected objects"), NULL, CMDID_ALIGNOBJSRIGHT }, 1057 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1058 { N_("Center An End Point"), NULL, 1059 N_("Move an endpoint of a selected poly to the center of another object"), 1060 NULL, CMDID_CENTERANENDPOINT }, 1061 { NULL, NULL, NULL, NULL, INVALID } 1062 }; 1063 static TgMenuInfo alignMenuInfo={ TGMUTYPE_TEXT, alignMenuItemInfo, 1064 TgCreateMenuFromMenuInfo }; 1065 1066 static TgMenuItemInfo sizeMenuItemInfo[] = { 1067 { N_("Size To Widest"), NULL, 1068 N_("Resize all selected objects to be as wide as the widest one"), NULL, 1069 CMDID_SIZETOWIDEST }, 1070 { N_("Size To Narrowest"), NULL, 1071 N_("Resize all selected objects to be as narrow as the narrowest one"), 1072 NULL, CMDID_SIZETONARROWEST }, 1073 { N_("Size To Tallest"), NULL, 1074 N_("Resize all selected objects to be as tall as the tallest one"), NULL, 1075 CMDID_SIZETOTALLEST }, 1076 { N_("Size To Shortest"), NULL, 1077 N_("Resize all selected objects to be as short as the shortest one"), NULL, 1078 CMDID_SIZETOSHORTEST }, 1079 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1080 { N_("Size To Given Width & Height..."), NULL, 1081 N_("Resize all selected objects to a specified width and height"), NULL, 1082 CMDID_SIZETOGIVENWIDTHHEIGHT }, 1083 { N_("Size To Given Width..."), NULL, 1084 N_("Resize all selected objects to a specified width"), NULL, 1085 CMDID_SIZETOGIVENWIDTH }, 1086 { N_("Size To Given Height..."), NULL, 1087 N_("Resize all selected objects to a specified height"), NULL, 1088 CMDID_SIZETOGIVENHEIGHT }, 1089 { NULL, NULL, NULL, NULL, INVALID } 1090 }; 1091 static TgMenuInfo sizeMenuInfo={ TGMUTYPE_TEXT, sizeMenuItemInfo, 1092 TgCreateMenuFromMenuInfo }; 1093 1094 static TgMenuInfo alignObjsDirectMenuInfo={ TGMUTYPE_BITMAP, NULL, 1095 CreateAlignObjsDirectMenu }; 1096 static TgMenuInfo alignToGridDirectMenuInfo={ TGMUTYPE_BITMAP, NULL, 1097 CreateAlignToGridDirectMenu }; 1098 static TgMenuInfo alignToPageDirectMenuInfo={ TGMUTYPE_BITMAP, NULL, 1099 CreateAlignToPageDirectMenu }; 1100 1101 static TgMenuInfo distrObjsDirectMenuInfo={ TGMUTYPE_BITMAP, NULL, 1102 CreateDistributeDirectMenu }; 1103 1104 static TgMenuItemInfo autoRotatePivotMenuItemInfo[] = { 1105 { (char*)(&rotateModePixmap[AUTO_ROTATE_PIVOT]), NULL, 1106 N_("Set rotation pivot mode to automatic"), 1107 NULL, CMDID_CHOOSEROTATEPIVOT }, 1108 { (char*)(&rotateModePixmap[USER_ROTATE_PIVOT]), NULL, 1109 N_("Set rotation pivot mode to user-specified"), 1110 NULL, CMDID_CHOOSEROTATEPIVOT }, 1111 { NULL, NULL, NULL, NULL, INVALID } 1112 }; 1113 TgMenuInfo autoRotatePivotMenuInfo={ TGMUTYPE_BITMAP, 1114 autoRotatePivotMenuItemInfo, 1115 CreateAutoRotatePivotMenu }; 1116 1117 static TgMenuItemInfo moveStdRotatePivotMenuItemInfo[] = { 1118 { N_("Move Rotation Pivot To Center"), NULL, 1119 N_("Move rotation pivot to the center of selected objects"), NULL, 1120 CMDID_MOVEROTATEPIVOTCENTER }, 1121 { N_("Move Rotation Pivot To LeftTop Corner"), NULL, 1122 N_("Move rotation pivot to the left-top corner of selected objects"), 1123 NULL, CMDID_MOVEROTATEPIVOTLT }, 1124 { N_("Move Rotation Pivot To RightTop Corner"), NULL, 1125 N_("Move rotation pivot to the right-top corner of selected objects"), 1126 NULL, CMDID_MOVEROTATEPIVOTRT }, 1127 { N_("Move Rotation Pivot To LeftBottom Corner"), NULL, 1128 N_("Move rotation pivot to the left-bottom corner of selected objects"), 1129 NULL, CMDID_MOVEROTATEPIVOTLB }, 1130 { N_("Move Rotation Pivot To RightBottom Corner"), NULL, 1131 N_("Move rotation pivot to the right-bottom corner of selected objects"), 1132 NULL, CMDID_MOVEROTATEPIVOTRB }, 1133 { N_("Move Rotation Pivot To Left Center"), NULL, 1134 N_("Move rotation pivot to the left center of selected objects"), 1135 NULL, CMDID_MOVEROTATEPIVOTLEFT }, 1136 { N_("Move Rotation Pivot To Right Center"), NULL, 1137 N_("Move rotation pivot to the right center of selected objects"), 1138 NULL, CMDID_MOVEROTATEPIVOTRIGHT }, 1139 { N_("Move Rotation Pivot To Top Center"), NULL, 1140 N_("Move rotation pivot to the top center of selected objects"), 1141 NULL, CMDID_MOVEROTATEPIVOTTOP }, 1142 { N_("Move Rotation Pivot To Bottom Center"), NULL, 1143 N_("Move rotation pivot to the bottom center of selected objects"), 1144 NULL, CMDID_MOVEROTATEPIVOTBOTTOM }, 1145 { NULL, NULL, NULL, NULL, INVALID } 1146 }; 1147 TgMenuInfo rotatePivotMenuInfo={ TGMUTYPE_TEXT, moveStdRotatePivotMenuItemInfo, 1148 CreateMoveStdRotatePivotMenu }; 1149 1150 static TgMenuItemInfo flipRotateMenuItemInfo[] = { 1151 { N_("Flip Horizontal"), "Alt+h", 1152 N_("Flip selected objects horizontally"), NULL, CMDID_FLIPHORIZONTAL }, 1153 { N_("Flip Vertical"), "Alt+v", N_("Flip selected objects vertically"), NULL, 1154 CMDID_FLIPVERTICAL }, 1155 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1156 { N_("Rotate Clock-Wise"), "Alt+w", N_("Rotate selected objects clockwise"), 1157 NULL, CMDID_ROTATECLOCKWISE }, 1158 { N_("Rotate Counter"), "Alt+c", 1159 N_("Rotate selected objects counter-clockwise"), NULL, 1160 CMDID_ROTATECOUNTER }, 1161 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1162 { N_("Set Text Rotation..."), NULL, N_("Set text rotation in degrees"), NULL, 1163 CMDID_SETTEXTROTATION }, 1164 { N_("Set Rotation Increment..."), NULL, 1165 N_("Set rotation increment in degrees"), NULL, 1166 CMDID_SETROTATIONINCREMENT }, 1167 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1168 { N_("Rotation Pivot"), TGMUITEM_SUBMENU, 1169 N_("Rotation pivot submenu >>>"), &autoRotatePivotMenuInfo, INVALID }, 1170 { N_("Reset Rotation Pivot"), NULL, 1171 N_("Reset user-specified rotation pivot to center of selected objects"), 1172 NULL, CMDID_RESETROTATEPIVOT }, 1173 { N_("Speficy Rotation Pivot..."), NULL, 1174 N_("Specify the coordinates for the user-specified rotation pivot"), NULL, 1175 CMDID_SPECIFYROTATEPIVOT }, 1176 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1177 { N_("Next Poly/Polygon Rotation Pivot"), NULL, 1178 N_("Move the rotation pivot to the next vertex of a poly/polygon object"), 1179 NULL, CMDID_NEXTPOLYROTATEPIVOT }, 1180 { N_("Move Rotation Pivot To Arc Center"), NULL, 1181 N_("Move the rotation pivot to the center of the circle which an arc object is part of"), 1182 NULL, CMDID_MOVEROTATEPIVOTARCCNTR }, 1183 { N_("Move Standard Rotation Pivot"), TGMUITEM_SUBMENU, 1184 N_("Move standard rotation pivot submenu >>>"), &rotatePivotMenuInfo, 1185 INVALID }, 1186 { NULL, NULL, NULL, NULL, INVALID } 1187 }; 1188 TgMenuInfo flipRotateMenuInfo={ TGMUTYPE_TEXT, flipRotateMenuItemInfo, 1189 CreateFlipRotateMenu }; 1190 1191 static TgMenuItemInfo arrangeMenuItemInfo[] = { 1192 { N_("Front"), "Cntrl+f", N_("Bring selected objects to the front"), NULL, 1193 CMDID_FRONT }, 1194 { N_("Back"), "Cntrl+b", N_("Send selected objects to the back"), NULL, 1195 CMDID_BACK }, 1196 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1197 { N_("Group"), "Cntrl+g", 1198 N_("Group selected objects into a compound object"), NULL, CMDID_GROUP }, 1199 { N_("UnGroup"), "Cntrl+u", 1200 N_("Break up selected grouped objects into its components"), NULL, 1201 CMDID_UNGROUP }, 1202 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1203 { N_("Lock"), "Alt+<", N_("Lock the positions of selected objects"), NULL, 1204 CMDID_LOCK }, 1205 { N_("UnLock"), "Alt+>", N_("UnLock the positions of selected objects"), 1206 NULL, CMDID_UNLOCK }, 1207 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1208 { N_("Horizontal Align"), TGMUITEM_PINNABLESUBMENU, 1209 N_("HoriAlign submenu >>>"), &horiAlignMenuInfo, MENU_HORIALIGN }, 1210 { N_("Vertical Align"), TGMUITEM_PINNABLESUBMENU, 1211 N_("VertAlign submenu >>>"), &vertAlignMenuInfo, 1212 MENU_VERTALIGN }, 1213 { N_("Align Objects"), "Cntrl+l", 1214 N_("Align selected objects with each other using the current alignments"), 1215 NULL, CMDID_ALIGNOBJS }, 1216 { N_("Align Objects Direct"), TGMUITEM_SUBMENU, 1217 N_("Align objects direct submenu >>>"), &alignObjsDirectMenuInfo, 1218 INVALID }, 1219 { N_("Align To Grid"), "Cntrl+t", 1220 N_("Align selected objects to grid points using the current alignments"), 1221 NULL, CMDID_ALIGNTOGRID }, 1222 { N_("Align To Grid Direct"), TGMUITEM_SUBMENU, 1223 N_("Align to grid direct submenu >>>"), &alignToGridDirectMenuInfo, 1224 INVALID }, 1225 { N_("Align To Page"), "Alt+&", 1226 N_("Align selected objects to the page using the current alignments"), 1227 NULL, CMDID_ALIGNTOPAGE }, 1228 { N_("Align To Page Direct"), TGMUITEM_SUBMENU, 1229 N_("Align to page direct submenu >>>"), &alignToPageDirectMenuInfo, 1230 INVALID }, 1231 { N_("More Object Alignments"), TGMUITEM_SUBMENU, 1232 N_("Align objects submenu >>>"), &alignMenuInfo, INVALID }, 1233 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1234 { N_("Size Objects"), TGMUITEM_SUBMENU, 1235 N_("Size objects submenu >>>"), &sizeMenuInfo, INVALID }, 1236 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1237 { N_("Distribute Objects"), "Alt+l", 1238 N_("Distribute selected objects using the current alignments"), NULL, 1239 CMDID_DISTRIBUTEOBJS }, 1240 { N_("Distribute Objects Direct"), TGMUITEM_SUBMENU, 1241 N_("Distribute objects direct submenu >>>"), &distrObjsDirectMenuInfo, 1242 INVALID }, 1243 { N_("Layout On Arc"), NULL, N_("Layout objects on an arc"), NULL, 1244 CMDID_LAYOUTONARC }, 1245 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1246 { N_("Abut Horizontal"), "Alt+_", 1247 N_("Squish selected objects together horizontally"), 1248 NULL, CMDID_ABUTHORIZONTAL }, 1249 { N_("Abut Vertical"), "Alt+|", 1250 N_("Squish selected objects together vertically"), NULL, 1251 CMDID_ABUTVERTICAL }, 1252 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1253 { N_("Flip/Rotate"), TGMUITEM_SUBMENU, 1254 N_("Flip and rotate submenu >>>"), &flipRotateMenuInfo, INVALID }, 1255 { NULL, NULL, NULL, NULL, INVALID } 1256 }; 1257 TgMenuInfo arrangeMenuInfo={ TGMUTYPE_TEXT, arrangeMenuItemInfo, 1258 TgCreateMenuFromMenuInfo }; 1259 1260 static TgMenuItemInfo scrollModeMenuItemInfo[] = { 1261 { N_("Off"), NULL, N_("Do not update canvas window while scrolling"), NULL, 1262 CMDID_CHANGESCROLLMODE }, 1263 { N_("Jump"), NULL, N_("Jump update canvas window while scrolling"), NULL, 1264 CMDID_CHANGESCROLLMODE }, 1265 { N_("Smooth"), NULL, N_("Update canvas window smoothly while scrolling"), 1266 NULL, CMDID_CHANGESCROLLMODE }, 1267 { NULL, NULL, NULL, NULL, INVALID } 1268 }; 1269 TgMenuInfo scrollModeMenuInfo={ TGMUTYPE_TEXT, scrollModeMenuItemInfo, 1270 CreateScrollModeMenu }; 1271 1272 static TgMenuItemInfo showHideMenuItemInfo[] = { 1273 { N_("Show Bit/Pixmap"), NULL, 1274 N_("Toggle between hiding and showing detailed bitmap/pixmap objects"), 1275 NULL, CMDID_TOGGLEMAPSHOWN }, 1276 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1277 { N_("Show Measurement"), NULL, 1278 N_("Show cursor measurements"), NULL, CMDID_TOGGLESHOWMEASUREMENT }, 1279 { N_("Show Measurement in Tooltip"), NULL, 1280 N_("Show cursor measurements in tooltip"), NULL, 1281 CMDID_TOGGLESHOWMEASUREMENTINTT }, 1282 { N_("Set Measure Unit..."), NULL, N_("Set the unit of measurements"), NULL, 1283 CMDID_SETMEASUREUNIT }, 1284 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1285 { N_("Enable Right Margin"), NULL, 1286 N_("Toggle between using (simple) right margin or not"), NULL, 1287 CMDID_TOGGLERIGHTMARGIN }, 1288 { N_("Specify Right Margin..."), NULL, 1289 N_("Specify the (simple) right margin"), NULL, 1290 CMDID_SPECIFYRIGHTMARGIN }, 1291 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1292 { N_("Show Menubar"), NULL, N_("Show menubar window"), NULL, 1293 CMDID_TOGGLESHOWMENUBAR }, 1294 { N_("Show Choice"), NULL, N_("Show choice and message window"), NULL, 1295 CMDID_TOGGLESHOWCHOICEBAR }, 1296 { N_("Show Status"), NULL, N_("Show status window"), NULL, 1297 CMDID_TOGGLESHOWSTATUS }, 1298 { N_("Show Mode"), NULL, N_("Show mode window"), NULL, 1299 CMDID_TOGGLESHOWMODE }, 1300 { N_("Show Chat"), NULL, N_("Show chat window"), NULL, 1301 CMDID_TOGGLESHOWCHAT }, 1302 { NULL, NULL, NULL, NULL, INVALID } 1303 }; 1304 static TgMenuInfo showHideMenuInfo={ TGMUTYPE_TEXT, showHideMenuItemInfo, 1305 CreateShowHideMenu }; 1306 1307 static TgMenuItemInfo slideShowModeMenuItemInfo[] = { 1308 { N_("Go HyperSpace In Slide Show"), NULL, 1309 N_("Enter HyperSpace mode in slideshow"), NULL, 1310 CMDID_GOHYPERSPACEINSLIDESHOW }, 1311 { N_("Freehand Mode In Slide Show"), NULL, 1312 N_("Go into freehand drawing mode in slideshow"), NULL, 1313 CMDID_FREEHANDMODEINSLIDESHOW }, 1314 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1315 { N_("Next Slide"), NULL, N_("Go to next slide"), NULL, 1316 CMDID_NEXTPAGE }, 1317 { N_("Prev Slide"), NULL, N_("Go to previous slide"), NULL, 1318 CMDID_PREVPAGE }, 1319 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1320 { N_("Color"), TGMUITEM_PINNABLESUBMENU, 1321 N_("Color Menu"), &colorMenuInfo, MENU_COLOR }, 1322 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1323 { N_("Exit Slide Show Mode"), "Esc", N_("Exit SlideShow mode"), NULL, 1324 CMDID_TOGGLESLIDESHOW }, 1325 { NULL, NULL, NULL, NULL, INVALID } 1326 }; 1327 TgMenuInfo slideShowModeMenuInfo={ TGMUTYPE_TEXT, slideShowModeMenuItemInfo, 1328 CreateSlideShowModeMenu }; 1329 1330 static TgMenuItemInfo slideShowMenuItemInfo[] = { 1331 { N_("Slide Show"), "Alt+Cntrl+8", N_("Toggle SlideShow mode"), NULL, 1332 CMDID_TOGGLESLIDESHOW }, 1333 { N_("Set Slide Show Border Color..."), NULL, 1334 N_("Set the color of the slideshow border"), NULL, 1335 CMDID_SETSLIDESHOWBRDRCOLOR }, 1336 { N_("Set Slide Show Window Offsets..."), NULL, 1337 N_("Set the offsets of the slideshow window"), NULL, 1338 CMDID_SETSLIDESHOWWINOFFSETS }, 1339 { N_("Visible Grid In Slide Show"), NULL, 1340 N_("Toggle visible grid in slideshow mode"), NULL, 1341 CMDID_VISIBLEGRIDINSLIDESHOW }, 1342 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1343 { N_("Go HyperSpace In Slide Show"), NULL, 1344 N_("Enter HyperSpace mode in slideshow"), NULL, 1345 CMDID_GOHYPERSPACEINSLIDESHOW }, 1346 { N_("Freehand Mode In Slide Show"), NULL, 1347 N_("Go into freehand drawing mode in slideshow"), NULL, 1348 CMDID_FREEHANDMODEINSLIDESHOW }, 1349 { NULL, NULL, NULL, NULL, INVALID } 1350 }; 1351 static TgMenuInfo slideShowMenuInfo={ TGMUTYPE_TEXT, slideShowMenuItemInfo, 1352 CreateSlideShowMenu }; 1353 1354 static TgMenuItemInfo zoomMenuItemInfo[] = { 1355 { N_("Zoom In"), "Alt+z", N_("Zoom in"), NULL, CMDID_ZOOMIN }, 1356 { N_("Zoom Out"), "Alt+o", N_("Zoom out"), NULL, CMDID_ZOOMOUT }, 1357 { N_("Default Zoom"), "Alt+:", N_("No zoom"), NULL, CMDID_DEFAULTZOOM }, 1358 { N_("Zoom Way Out"), "Alt+`", N_("Zoom way out to see the whole drawing"), 1359 NULL, CMDID_ZOOMWAYOUT }, 1360 { NULL, NULL, NULL, NULL, INVALID } 1361 }; 1362 static TgMenuInfo zoomMenuInfo={ TGMUTYPE_TEXT, zoomMenuItemInfo, 1363 TgCreateMenuFromMenuInfo }; 1364 1365 static TgMenuItemInfo layoutMenuItemInfo[] = { 1366 { N_("+Grid"), "Alt+i", N_("Increment grid size"), NULL, CMDID_INCGRID }, 1367 { N_("-Grid"), "Alt+d", N_("Decrement grid size"), NULL, CMDID_DECGRID }, 1368 { N_("Visible Grid"), "Alt+g", N_("Hide/show grid lines"), NULL, 1369 CMDID_TOGGLEGRID }, 1370 { N_("Snap To Grid"), "Alt+Cntrl+g", 1371 N_("Toggle the snapping to grid points effect"), NULL, CMDID_TOGGLESNAP }, 1372 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1373 { N_("Save Origin"), NULL, 1374 N_("Save current location as the 'origin' of the drawing"), 1375 NULL, CMDID_SAVEORIGIN }, 1376 { N_("Scroll To Origin"), "Alt+^", 1377 N_("Scroll to the 'origin' of the drawing"), NULL, CMDID_SCROLLTOORIG }, 1378 { N_("Scroll Mode"), TGMUITEM_SUBMENU, 1379 N_("ScrollMode submenu >>>"), &scrollModeMenuInfo, INVALID }, 1380 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1381 { N_("Zoom"), TGMUITEM_SUBMENU, N_("Zoom submenu >>>"), &zoomMenuInfo, 1382 INVALID }, 1383 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1384 { N_("Portrait"), NULL, N_("Portrait page style"), NULL, 1385 CMDID_PORTRAITMODE }, 1386 { N_("Landscape"), NULL, N_("Lanscape page style"), NULL, 1387 CMDID_LANDSCAPEMODE }, 1388 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1389 { N_("Stacked Page"), TGMUITEM_PINNABLESUBMENU, 1390 N_("StackedPage submenu >>>"), &stackedPageMenuInfo, MENU_STACKEDPAGE }, 1391 { N_("Tiled Page"), TGMUITEM_PINNABLESUBMENU, 1392 N_("TiledPage submenu >>>"), &tiledPageMenuInfo, MENU_TILEDPAGE }, 1393 { N_("Page Layout"), TGMUITEM_PINNABLESUBMENU, 1394 N_("PageLayout submenu >>>"), &pageLayoutMenuInfo, MENU_PAGELAYOUT }, 1395 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1396 { N_("Print/Export Format"), TGMUITEM_SUBMENU, 1397 N_("Select print/export format submenu >>>"), &exportFormatMenuInfo, 1398 INVALID }, 1399 { N_("Print/Export In Color"), "Alt+Cntrl+k", 1400 N_("Toggle between color and black & white printing modes"), NULL, 1401 CMDID_TOGGLEBWCOLORPS }, 1402 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1403 { N_("Set Reduction..."), "Alt+%", 1404 N_("Specify reduction/magnification of the whole drawing"), NULL, 1405 CMDID_SETREDUCTION }, 1406 { N_("Metric Grid"), "Alt+Cntrl+-", 1407 N_("Toggle between English and Metric grid systems"), NULL, 1408 CMDID_TOGGLEGRIDSYSTEM }, 1409 { N_("One Motion Select Move"), NULL, 1410 N_("Toggle between click-select-move and click-select-click-move modes"), 1411 NULL, CMDID_TOGGLEONEMOTIONSELMOVE }, 1412 { N_("Use Gray Scale"), NULL, 1413 N_("Toggle between using gray scales to tile patterns to speed up printing"), 1414 NULL, CMDID_TOGGLEUSEGRAYSCALE }, 1415 { N_("Use Color Layers"), NULL, N_("Toggle color layers"), NULL, 1416 CMDID_TOGGLECOLORLAYERS }, 1417 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1418 { N_("Show/Hide"), TGMUITEM_SUBMENU, 1419 N_("Show/Hide submenu >>>"), &showHideMenuInfo, INVALID }, 1420 { N_("Slide Show"), TGMUITEM_SUBMENU, 1421 N_("SlideShow submenu >>>"), &slideShowMenuInfo, INVALID }, 1422 { NULL, NULL, NULL, NULL, INVALID } 1423 }; 1424 TgMenuInfo layoutMenuInfo={ TGMUTYPE_TEXT, layoutMenuItemInfo, 1425 CreateLayoutMenu }; 1426 1427 static TgMenuItemInfo propertiesMenuItemInfo[] = { 1428 { N_("Copy Properties..."), NULL, 1429 N_("Copy properties (e.g., color, fill, etc.) into the cut buffer"), NULL, 1430 CMDID_COPYPROPERTIES }, 1431 { N_("Paste Properties..."), NULL, 1432 N_("Paste properties (e.g., color, fill, etc.) from the cut buffer"), NULL, 1433 CMDID_PASTEPROPERTIES }, 1434 { N_("Save Properties..."), NULL, 1435 N_("Save and name a property (e.g., color, fill, etc.) set"), NULL, 1436 CMDID_SAVEPROPERTIES }, 1437 { N_("Restore Properties..."), NULL, 1438 N_("Restore a named property (e.g., color, fill, etc.) set"), NULL, 1439 CMDID_RESTOREPROPERTIES }, 1440 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1441 /* 1442 * { N_("Update Objects"), "Alt+0", 1443 * N_("Update selected objects to have current drawing properties"), NULL, 1444 * CMDID_UPDATE }, 1445 * { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1446 */ 1447 { N_("Set Selected Line Width..."), NULL, 1448 N_("Change the line width (and arrow width/height) of selected objects"), 1449 NULL, CMDID_SETSELLINEWIDTH }, 1450 { N_("Set Selected Font Size..."), NULL, 1451 N_("Change the font size of selected objects"), NULL, 1452 CMDID_SETSELFONTSIZE }, 1453 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1454 { N_("Add Color..."), NULL, N_("Add colors to the current palette"), NULL, 1455 CMDID_ADDCOLOR }, 1456 { N_("Choose Color..."), NULL, 1457 N_("Choose a color from a color wheel and add it to the current palette"), 1458 NULL, CMDID_COLORWHEEL }, 1459 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1460 { N_("Set Edit Text Size..."), NULL, 1461 N_("Set the text size to be used in editing existing text objects"), NULL, 1462 CMDID_SETEDITTEXTSIZE }, 1463 { N_("Set Alt Edit Text BgColor..."), NULL, 1464 N_("Set the background color to be used in editing existing text objects"), 1465 NULL, CMDID_SETALTEDITTEXTBGCOLOR }, 1466 { N_("Set Alt Edit Text Highlight Color..."), NULL, 1467 N_("Set the highlight color to be used in editing existing text objects"), 1468 NULL, CMDID_SETALTEDITTEXTHIGHLIGHTCOLOR }, 1469 { N_("Use Alt Edit Text BgColor"), NULL, 1470 N_("Toggles the background color to be used in editing existing text objects"), 1471 NULL, CMDID_TOGGLEALTEDITTEXTBGCOLOR }, 1472 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1473 { N_("Font"), TGMUITEM_PINNABLESUBMENU, 1474 N_("Font submenu >>>"), &fontMenuInfo, MENU_FONT }, 1475 { N_("Text Style"), TGMUITEM_PINNABLESUBMENU, 1476 N_("TextStyle submenu >>>"), &fontStyleMenuInfo, MENU_STYLE }, 1477 { N_("Text Size"), TGMUITEM_PINNABLESUBMENU, 1478 N_("TextSize submenu >>>"), &fontSizeMenuInfo, MENU_SIZE }, 1479 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1480 { N_("Line Dash"), TGMUITEM_PINNABLESUBMENU, 1481 N_("LineDash submenu >>>"), &lineDashMenuInfo, MENU_LINEDASH }, 1482 { N_("Line Style"), TGMUITEM_PINNABLESUBMENU, 1483 N_("LineStyle submenu >>>"), &lineStyleMenuInfo, MENU_LINESTYLE }, 1484 { N_("Line Type"), TGMUITEM_PINNABLESUBMENU, 1485 N_("LineType submenu >>>"), &lineTypeMenuInfo, MENU_LINETYPE }, 1486 { N_("Line Width"), TGMUITEM_PINNABLESUBMENU, 1487 N_("LineWidth submenu >>>"), &lineWidthMenuInfo, MENU_LINEWIDTH }, 1488 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1489 { N_("Fill"), TGMUITEM_PINNABLESUBMENU, 1490 N_("Fill submenu >>>"), &fillMenuInfo, MENU_FILL }, 1491 { N_("Pen"), TGMUITEM_PINNABLESUBMENU, 1492 N_("Pen submenu >>>"), &penMenuInfo, MENU_PEN }, 1493 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1494 { N_("Color"), TGMUITEM_PINNABLESUBMENU, N_("Color submenu >>>"), 1495 &colorMenuInfo, MENU_COLOR }, 1496 { N_("Transparent Pattern"), TGMUITEM_PINNABLESUBMENU, 1497 N_("TransPattern submenu >>>"), &transPatModeMenuInfo, MENU_TRANSPAT }, 1498 { NULL, NULL, NULL, NULL, INVALID } 1499 }; 1500 TgMenuInfo propertiesMenuInfo={ TGMUTYPE_TEXT, propertiesMenuItemInfo, 1501 CreatePropertiesMenu }; 1502 1503 static TgMenuItemInfo navigateMenuItemInfo[] = { 1504 { N_("Go Back"), NULL, N_("Go back one file"), NULL, CMDID_GOBACK }, 1505 { N_("Go Forward"), NULL, N_("Go forward one file"), NULL, CMDID_GOFORWARD }, 1506 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1507 { N_("Refresh Current"), NULL, N_("Reload the current file"), NULL, 1508 CMDID_REFRESHCURRENT }, 1509 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1510 { N_("Hot List..."), NULL, N_("Navigate using the hot-list"), NULL, 1511 CMDID_HOTLIST }, 1512 { N_("Add Current To Hot List"), NULL, 1513 N_("Add the current file to the hot-list"), NULL, 1514 CMDID_ADDCURRENTTOHOTLIST }, 1515 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1516 { N_("Session History..."), NULL, 1517 N_("Go to a file visited during this session"), NULL, 1518 CMDID_SESSIONHISTORY }, 1519 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1520 { N_("Hyper Space"), NULL, N_("Toggle HyperSpace mode"), NULL, 1521 CMDID_TOGGLEHYPERSPACE }, 1522 { NULL, NULL, NULL, NULL, INVALID } 1523 }; 1524 TgMenuInfo navigateMenuInfo={ TGMUTYPE_TEXT, navigateMenuItemInfo, 1525 CreateNavigateMenu }; 1526 1527 static TgMenuItemInfo attrMenuItemInfo[] = { 1528 { N_("Attach Attributes"), "Alt+a", 1529 N_("Attach selected text objects as attributes for the non-text object"), 1530 NULL, CMDID_ATTACHATTRS }, 1531 { N_("Detach Attributes"), "Alt+t", 1532 N_("Detach all attributes of selected objects"), NULL, 1533 CMDID_DETACHATTRS }, 1534 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1535 { N_("Edit Attributes..."), NULL, 1536 N_("Edit attributes of a selected object"), NULL, 1537 CMDID_EDITATTRS }, 1538 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1539 { N_("Show Attributes"), "Alt+-", 1540 N_("Make all attributes of selected objects visible"), NULL, 1541 CMDID_SHOWATTR }, 1542 { N_("Show Attribute Names"), "Alt+n", 1543 N_("Make all attribute names of selected objects visible"), NULL, 1544 CMDID_SHOWATTRNAME }, 1545 { N_("Hide Attributes"), "Alt+Cntrl+h", 1546 N_("Hide all attributes for selected objects"), NULL, 1547 CMDID_HIDEATTR }, 1548 { N_("Hide Attribute Names"), "Alt+j", 1549 N_("Hide all attribute names for selected objects"), NULL, 1550 CMDID_HIDEATTRNAME }, 1551 { N_("Toggle Eq Attribute Shown..."), "Alt+Cntrl+7", 1552 N_("Showing/hiding the 'eq=' attibute (for a LaTeX equation object)"), 1553 NULL, CMDID_TOGGLEEQATTRSHOWN }, 1554 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1555 { N_("Move/Justfy An Attribute"), "Alt+m", 1556 N_("Move/justify an attribute for a selected object"), NULL, 1557 CMDID_MOVEJUSTIFYATTR }, 1558 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1559 { N_("Import Attributes..."), NULL, 1560 N_("Import attributes of a selected object from a text file"), NULL, 1561 CMDID_IMPORTATTRS }, 1562 { N_("Export Attributes..."), NULL, 1563 N_("Export attributes of a selected object to a text file"), NULL, 1564 CMDID_EXPORTATTRS }, 1565 { NULL, NULL, NULL, NULL, INVALID } 1566 }; 1567 static TgMenuInfo attrMenuInfo={ TGMUTYPE_TEXT, attrMenuItemInfo, 1568 TgCreateMenuFromMenuInfo }; 1569 1570 static TgMenuItemInfo fileAttrMenuItemInfo[] = { 1571 { N_("Attach File Attributes"), NULL, 1572 N_("Attach selected text objects as file attributes"), NULL, 1573 CMDID_ATTACHFILEATTRS }, 1574 { N_("Detach File Attributes"), NULL, 1575 N_("Detach all file attributes"), NULL, 1576 CMDID_DETACHFILEATTRS }, 1577 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1578 { N_("Edit File Attributes..."), NULL, 1579 N_("Edit file attributes"), NULL, 1580 CMDID_EDITFILEATTRS }, 1581 { NULL, NULL, NULL, NULL, INVALID } 1582 }; 1583 static TgMenuInfo fileAttrMenuInfo={ TGMUTYPE_TEXT, fileAttrMenuItemInfo, 1584 TgCreateMenuFromMenuInfo }; 1585 1586 static TgMenuItemInfo animateMenuItemInfo[] = { 1587 { N_("Animate Send"), "Alt+e", 1588 N_("Animate a little token on a selected poly (not very useful)"), NULL, 1589 CMDID_ANIMATESEND }, 1590 { N_("Animate Flash"), "Alt+f", 1591 N_("Flash a selected poly (not very useful)"), NULL, 1592 CMDID_ANIMATEFLASH }, 1593 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1594 { N_("Renumber Object IDs"), "Alt+f", 1595 N_("Renumber object IDs for all objects"), NULL, 1596 CMDID_RENUMBER_OBJECT_IDS }, 1597 { NULL, NULL, NULL, NULL, INVALID } 1598 }; 1599 static TgMenuInfo animateMenuInfo={ TGMUTYPE_TEXT, animateMenuItemInfo, 1600 TgCreateMenuFromMenuInfo }; 1601 1602 static TgMenuItemInfo portMenuItemInfo[] = { 1603 { N_("Connect Two Ports by a Wire..."), NULL, 1604 N_("Connect two ports by a wire"), NULL, 1605 CMDID_CONNECT2PORTSBYWIRE }, 1606 { N_("Repeat Connect Two Ports by a Wire..."), NULL, 1607 N_("Repeatedly connecting two ports by a wire (will not prompt if the wire name can be detected). Wire signal name will not be shown."), NULL, 1608 CMDID_REPEATCONNECT2PORTSBYWIRE }, 1609 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1610 { N_("Show Wire Signal Name"), NULL, 1611 N_("Toggle between showing (with placing) and hiding the wire signal name when connecting ports"), NULL, 1612 CMDID_TOGGLESHOWWIRESIGNALNAME }, 1613 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1614 { N_("Merge Ports with An Object"), NULL, 1615 N_("Merge selected floating port objects with a selected composite object"), NULL, 1616 CMDID_MERGEPORTSWITHANOBJECT }, 1617 { N_("Connect Ports to a Broadcast Wire"), NULL, 1618 N_("Connect selected floating port objects to a selected broadcast-type wire"), NULL, 1619 CMDID_CONNECTPORTSTOBROADCAST }, 1620 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1621 { N_("Clear Signal Name for a Port..."), NULL, 1622 N_("Clear the 'signal_name=' attribute for a port"), NULL, 1623 CMDID_CLEARSIGNAMEFORAPORT }, 1624 { N_("Rename Signal Name for a Port..."), NULL, 1625 N_("Rename the 'signal_name=' attribute for a port"), NULL, 1626 CMDID_RENAMESIGNAMEFORAPORT }, 1627 { NULL, NULL, NULL, NULL, INVALID } 1628 }; 1629 static TgMenuInfo portMenuInfo={ TGMUTYPE_TEXT, portMenuItemInfo, 1630 CreatePortMenu }; 1631 1632 static TgMenuItemInfo tableMenuItemInfo[] = { 1633 { N_("Merge With Table..."), NULL, 1634 N_("Merge selected object with a table file"), NULL, 1635 CMDID_MERGEWITHTABLE }, 1636 { N_("Export To Table..."), NULL, 1637 N_("Export attributes of selected objects to a table file"), NULL, 1638 CMDID_EXPORTTOTABLE }, 1639 { NULL, NULL, NULL, NULL, INVALID } 1640 }; 1641 static TgMenuInfo tableMenuInfo={ TGMUTYPE_TEXT, tableMenuItemInfo, 1642 TgCreateMenuFromMenuInfo }; 1643 1644 static TgMenuItemInfo specialMenuItemInfo[] = { 1645 { N_("Make Symbolic"), "Alt+Cntrl+m", 1646 N_("Turn a selected grouped/icon object into a symbol object"), NULL, 1647 CMDID_MAKESYMBOLIC }, 1648 { N_("UnMake Symbolic"), "Alt+Cntrl+n", 1649 N_("Turn a selected symbol object into a grouped object"), NULL, 1650 CMDID_UNMAKESYMBOLIC }, 1651 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1652 { N_("Instantiate..."), "Cntrl+i", 1653 N_("Instantiate a building-block object from the current domain"), NULL, 1654 CMDID_INSTANTIATE }, 1655 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1656 { N_("Make Iconic..."), "Alt+Cntrl+i", 1657 N_("Turn a selected grouped/symbol object into an icon object"), NULL, 1658 CMDID_MAKEICONIC }, 1659 { N_("UnMake Iconic"), "Alt+Cntrl+j", 1660 N_("Turn an icon object into a grouped object"), NULL, 1661 CMDID_UNMAKEICONIC }, 1662 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1663 { N_("Push"), "Alt+Cntrl+y", 1664 N_("Push into (edit) the symbol file which defines the selected icon object"), 1665 NULL, CMDID_PUSH }, 1666 { N_("Pop"), "Cntrl+k", 1667 N_("Pop back to a high lever (reverse of Push)"), NULL, 1668 CMDID_POP }, 1669 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1670 { N_("Attribute"), TGMUITEM_SUBMENU, 1671 N_("Attribute submenu >>>"), &attrMenuInfo, INVALID }, 1672 { N_("File Attribute"), TGMUITEM_SUBMENU, 1673 N_("File attribute submenu >>>"), &fileAttrMenuInfo, INVALID }, 1674 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1675 { N_("Update Symbols"), "Alt+Cntrl+u", 1676 N_("Refresh selected icon objects from their definition files"), NULL, 1677 CMDID_UPDATESYMBOLS }, 1678 { N_("Save Sym In Library..."), NULL, 1679 N_("Save symbol file in a library path within the current domain"), NULL, 1680 CMDID_SAVESYMINLIBRARY }, 1681 { N_("Replace Graphic"), NULL, 1682 N_("Replace the graphical part of selected objects by the graphical object in the cut buffer"), NULL, 1683 CMDID_REPLACEGRAPHIC }, 1684 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1685 { N_("Domain"), TGMUITEM_SUBMENU, 1686 N_("Domain submenu >>>"), &domainMenuInfo, INVALID }, 1687 { N_("Ports and Signals"), TGMUITEM_SUBMENU, 1688 N_("Ports and Signal submenu >>>"), &portMenuInfo, INVALID }, 1689 { N_("Table"), TGMUITEM_SUBMENU, 1690 N_("Table submenu >>>"), &tableMenuInfo, INVALID }, 1691 { N_("Misc"), TGMUITEM_SUBMENU, 1692 N_("Misc submenu >>>"), &animateMenuInfo, INVALID }, 1693 { N_("Return"), TGMUITEM_SUBMENU, 1694 N_("Return submenu >>>"), &driverMenuInfo, INVALID }, 1695 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1696 { N_("Exec Cmds From File..."), NULL, 1697 N_("Execute internal commands from a file"), NULL, 1698 CMDID_EXECCMDSFROMFILE }, 1699 { NULL, NULL, NULL, NULL, INVALID } 1700 }; 1701 TgMenuInfo specialMenuInfo={ TGMUTYPE_TEXT, specialMenuItemInfo, 1702 TgCreateMenuFromMenuInfo }; 1703 1704 static TgMenuItemInfo helpMenuItemInfo[] = { 1705 { N_("Latest Release Info"), NULL, 1706 N_("Find out what is the version number of the most recently released tgif"), 1707 NULL, CMDID_LATESTRELEASEINFO }, 1708 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1709 { N_("Copyright"), NULL, N_("Copyright information"), NULL, 1710 CMDID_COPYRIGHT }, 1711 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1712 { N_("About"), NULL, 1713 N_("Version information, where to send bug reports, etc."), NULL, 1714 CMDID_ABOUT }, 1715 { NULL, NULL, NULL, NULL, INVALID } 1716 }; 1717 TgMenuInfo helpMenuInfo={ TGMUTYPE_TEXT, helpMenuItemInfo, 1718 TgCreateMenuFromMenuInfo }; 1719 1720 /* ------------------ context menu ------------------ */ 1721 1722 TgMenuInfo editAttrInEditorMenuInfo={ TGMUTYPE_TEXT, NULL, 1723 CreateEditAttrInEditorMenu }; 1724 1725 TgMenuInfo editAttrGroupInEditorMenuInfo={ TGMUTYPE_TEXT, NULL, 1726 CreateEditAttrGroupInEditorMenu }; 1727 1728 TgMenuInfo getPropertyMenuInfo={ TGMUTYPE_TEXT, NULL, CreateGetPropertyMenu }; 1729 1730 TgMenuInfo peekDimensionMenuInfo={ TGMUTYPE_TEXT, NULL, 1731 CreatePeekDimensionMenu }; 1732 1733 static TgMenuItemInfo baseContextMenuItemInfo[] = { 1734 { N_("Mode"), TGMUITEM_PINNABLESUBMENU, N_("Mode Menu"), &modeMenuInfo, 1735 MENU_MODE }, 1736 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1737 { N_("Copy"), "Cntrl+c", N_("Copy selected objects into the cut buffer"), 1738 NULL, CMDID_COPY }, 1739 { N_("Duplicate"), "Cntrl+d", N_("Duplicate selected objects"), NULL, 1740 CMDID_DUPLICATE }, 1741 { N_("Delete"), "Cntrl+x", N_("Delete selected objects"), NULL, 1742 CMDID_DELETE }, 1743 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1744 { N_("Properties"), TGMUITEM_PINNABLESUBMENU, 1745 N_("Properties Menu"), &propertiesMenuInfo, MENU_PROPERTIES }, 1746 { N_("Image Proc"), TGMUITEM_PINNABLESUBMENU, 1747 N_("ImageProc Menu"), &imageProcMenuInfo, MENU_IMAGEPROC }, 1748 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1749 { N_("Edit Attribute In Editor"), TGMUITEM_SUBMENU, 1750 N_("Edit attribute in editor submenu >>>"), &editAttrInEditorMenuInfo, 1751 INVALID }, 1752 { N_("Edit Attribute Group In Editor"), TGMUITEM_SUBMENU, 1753 N_("Edit a group of attributes in editor submenu >>>"), 1754 &editAttrGroupInEditorMenuInfo, INVALID }, 1755 { N_("Get Property"), TGMUITEM_SUBMENU, 1756 N_("Get property submenu >>>"), &getPropertyMenuInfo, INVALID }, 1757 { N_("Peek Dimension"), TGMUITEM_SUBMENU, 1758 N_("Peek dimension submenu >>>"), &peekDimensionMenuInfo, INVALID }, 1759 { NULL, NULL, NULL, NULL, INVALID } 1760 }; 1761 TgMenuInfo baseContextMenuInfo={ TGMUTYPE_TEXT, baseContextMenuItemInfo, 1762 CreateContextMenu }; 1763 1764 static TgMenuItemInfo editTextContextMenuItemInfo[] = { 1765 { N_("Mode"), TGMUITEM_PINNABLESUBMENU, N_("Mode Menu"), &modeMenuInfo, 1766 MENU_MODE }, 1767 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1768 { N_("Copy"), "Cntrl+c", N_("Copy selected objects into the cut buffer"), 1769 NULL, CMDID_COPY }, 1770 { N_("Copy Plain Text As Object"), NULL, 1771 N_("Copy highlighted plain text as an object into the cut buffer"), NULL, 1772 CMDID_COPYPLAINTEXTASOBJECT }, 1773 { N_("Cut"), NULL, N_("Cut selected text into the cut buffer"), NULL, 1774 CMDID_CUT }, 1775 { N_("Paste"), "Cntrl+v", N_("Paste from the cut buffer"), NULL, 1776 CMDID_PASTE }, 1777 { N_("Duplicate"), "Cntrl+d", N_("Duplicate selected objects"), NULL, 1778 CMDID_DUPLICATE }, 1779 { N_("Delete"), "Cntrl+x", N_("Delete selected objects"), NULL, 1780 CMDID_DELETE }, 1781 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1782 { N_("Move Edit Text Box..."), NULL, N_("Move the edit text box"), NULL, 1783 CMDID_MOVEEDITTEXTBOX }, 1784 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1785 { N_("Properties"), TGMUITEM_PINNABLESUBMENU, 1786 N_("Properties Menu"), &propertiesMenuInfo, MENU_PROPERTIES }, 1787 { NULL, NULL, NULL, NULL, INVALID } 1788 }; 1789 TgMenuInfo editTextContextMenuInfo={ TGMUTYPE_TEXT, editTextContextMenuItemInfo, 1790 CreateEditTextContextMenu }; 1791 1792 /* ------------------ grid menu ------------------ */ 1793 1794 static TgMenuItemInfo gridMenuItemInfo[] = { 1795 { N_("+Grid"), "Alt+i", N_("Increment grid size"), NULL, CMDID_INCGRID }, 1796 { N_("-Grid"), "Alt+d", N_("Decrement grid size"), NULL, CMDID_DECGRID }, 1797 { N_("Visible Grid"), "Alt+g", N_("Hide/show grid lines"), NULL, 1798 CMDID_TOGGLEGRID }, 1799 { N_("Snap To Grid"), "Alt+Cntrl+g", 1800 N_("Toggle the snapping to grid points effect"), NULL, CMDID_TOGGLESNAP }, 1801 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1802 { N_("Save Origin"), NULL, 1803 N_("Save current location as the 'origin' of the drawing"), 1804 NULL, CMDID_SAVEORIGIN }, 1805 { N_("Scroll To Origin"), "Alt+^", 1806 N_("Scroll to the 'origin' of the drawing"), NULL, CMDID_SCROLLTOORIG }, 1807 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1808 { N_("Zoom"), TGMUITEM_SUBMENU, N_("Zoom submenu >>>"), &zoomMenuInfo, 1809 INVALID }, 1810 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1811 { N_("Set Reduction..."), "Alt+%", 1812 N_("Specify reduction/magnification of the whole drawing"), NULL, 1813 CMDID_SETREDUCTION }, 1814 { N_("Metric Grid"), "Alt+Cntrl+-", 1815 N_("Toggle between English and Metric grid systems"), NULL, 1816 CMDID_TOGGLEGRIDSYSTEM }, 1817 { N_("Enable Right Margin"), NULL, 1818 N_("Toggle between using (simple) right margin or not"), NULL, 1819 CMDID_TOGGLERIGHTMARGIN }, 1820 { N_("Specify Right Margin..."), NULL, 1821 N_("Specify the (simple) right margin"), NULL, 1822 CMDID_SPECIFYRIGHTMARGIN }, 1823 { NULL, NULL, NULL, NULL, INVALID } 1824 }; 1825 TgMenuInfo gridMenuInfo={ TGMUTYPE_TEXT, gridMenuItemInfo, CreateGridMenu }; 1826 1827 /* ------------------ main menu ------------------ */ 1828 1829 static TgMenuItemInfo mainMenuItemInfo[] = { 1830 { N_("File"), TGMUITEM_PINNABLESUBMENU, N_("File Menu"), &fileMenuInfo, 1831 MENU_FILE }, 1832 { N_("Edit"), TGMUITEM_PINNABLESUBMENU, N_("Edit Menu"), &editMenuInfo, 1833 MENU_EDIT }, 1834 { N_("Layout"), TGMUITEM_PINNABLESUBMENU, 1835 N_("Layout Menu"), &layoutMenuInfo, MENU_LAYOUT }, 1836 { N_("Arrange"), TGMUITEM_PINNABLESUBMENU, 1837 N_("Arrange Menu"), &arrangeMenuInfo, MENU_ARRANGE }, 1838 { N_("Properties"), TGMUITEM_PINNABLESUBMENU, 1839 N_("Properties Menu"), &propertiesMenuInfo, MENU_PROPERTIES }, 1840 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1841 { N_("Stacked Page"), TGMUITEM_PINNABLESUBMENU, 1842 N_("StackedPage Menu"), &stackedPageMenuInfo, MENU_STACKEDPAGE }, 1843 { N_("Tiled Page"), TGMUITEM_PINNABLESUBMENU, 1844 N_("TiledPage Menu"), &tiledPageMenuInfo, MENU_TILEDPAGE }, 1845 { N_("Page Layout"), TGMUITEM_PINNABLESUBMENU, 1846 N_("PageLayout Menu"), &pageLayoutMenuInfo, MENU_PAGELAYOUT }, 1847 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1848 { N_("Horizontal Align"), TGMUITEM_PINNABLESUBMENU, 1849 N_("HoriAlign Menu"), &horiAlignMenuInfo, MENU_HORIALIGN }, 1850 { N_("Vertical Align"), TGMUITEM_PINNABLESUBMENU, 1851 N_("VertAlign Menu"), &vertAlignMenuInfo, MENU_VERTALIGN }, 1852 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1853 { N_("Font"), TGMUITEM_PINNABLESUBMENU, N_("Font Menu"), &fontMenuInfo, 1854 MENU_FONT }, 1855 { N_("Text Style"), TGMUITEM_PINNABLESUBMENU, 1856 N_("TextStyle Menu"), &fontStyleMenuInfo, MENU_STYLE }, 1857 { N_("Text Size"), TGMUITEM_PINNABLESUBMENU, 1858 N_("TextSize Menu"), &fontSizeMenuInfo, MENU_SIZE }, 1859 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1860 { N_("Line Dash"), TGMUITEM_PINNABLESUBMENU, 1861 N_("LineDash Menu"), &lineDashMenuInfo, MENU_LINEDASH }, 1862 { N_("Line Style"), TGMUITEM_PINNABLESUBMENU, 1863 N_("LineStyle Menu"), &lineStyleMenuInfo, MENU_LINESTYLE }, 1864 { N_("Line Type"), TGMUITEM_PINNABLESUBMENU, 1865 N_("LineType Menu"), &lineTypeMenuInfo, MENU_LINETYPE }, 1866 { N_("Line Width"), TGMUITEM_PINNABLESUBMENU, 1867 N_("LineWidth Menu"), &lineWidthMenuInfo, MENU_LINEWIDTH }, 1868 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1869 { N_("Fill"), TGMUITEM_PINNABLESUBMENU, N_("Fill Menu"), &fillMenuInfo, 1870 MENU_FILL }, 1871 { N_("Pen"), TGMUITEM_PINNABLESUBMENU, N_("Pen Menu"), &penMenuInfo, 1872 MENU_PEN }, 1873 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1874 { N_("Move Mode"), TGMUITEM_PINNABLESUBMENU, 1875 N_("MoveMode Menu"), &moveModeMenuInfo, MENU_MOVEMODE }, 1876 { N_("Shape"), TGMUITEM_PINNABLESUBMENU, 1877 N_("Shape Menu"), &shapeMenuInfo, MENU_SHAPE }, 1878 { N_("Stretchable Text"), TGMUITEM_PINNABLESUBMENU, 1879 N_("StretchText Menu"), &stretchableTextModeMenuInfo, MENU_STRETCHTEXT }, 1880 { N_("Transparent Pattern"), TGMUITEM_PINNABLESUBMENU, 1881 N_("TransPattern Menu"), &transPatModeMenuInfo, 1882 MENU_TRANSPAT }, 1883 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1884 { N_("Image Proc"), TGMUITEM_PINNABLESUBMENU, 1885 N_("ImageProc Menu"), &imageProcMenuInfo, MENU_IMAGEPROC }, 1886 { TGMUITEM_SEPARATOR, NULL, NULL, NULL, INVALID }, 1887 { N_("Color"), TGMUITEM_PINNABLESUBMENU, 1888 N_("Color Menu"), &colorMenuInfo, MENU_COLOR }, 1889 { N_("Navigate"), TGMUITEM_PINNABLESUBMENU, 1890 N_("Navigate Menu"), &navigateMenuInfo, MENU_NAVIGATE }, 1891 { N_("Special"), TGMUITEM_PINNABLESUBMENU, 1892 N_("Special Menu"), &specialMenuInfo, MENU_SPECIAL }, 1893 { N_("Tangram-II"), TGMUITEM_PINNABLESUBMENU, 1894 N_("Tangram-II Menu"), &tangram2MenuInfo, MENU_TANGRAM2 }, 1895 { N_("Help"), TGMUITEM_PINNABLESUBMENU, N_("Help Menu"), &helpMenuInfo, 1896 MENU_HELP }, 1897 { NULL, NULL, NULL, NULL, INVALID } 1898 }; 1899 TgMenuInfo mainMenuInfo={ TGMUTYPE_TEXT, mainMenuItemInfo, CreateMainMenu }; 1900 1901 /* ------------------ menubar ------------------ */ 1902 1903 /* 1904 * Don't put any separators here! 1905 */ 1906 1907 static TgMenuItemInfo minimalMenubarMenuItemInfo[] = { 1908 { N_("File"), TGMUITEM_PINNABLESUBMENU, N_("File Menu"), &fileMenuInfo, 1909 MENU_FILE }, 1910 { N_("Edit"), TGMUITEM_PINNABLESUBMENU, N_("Edit Menu"), &editMenuInfo, 1911 MENU_EDIT }, 1912 { N_("Layout"), TGMUITEM_PINNABLESUBMENU, 1913 N_("Layout Menu"), &layoutMenuInfo, MENU_LAYOUT }, 1914 { N_("Arrange"), TGMUITEM_PINNABLESUBMENU, 1915 N_("Arrange Menu"), &arrangeMenuInfo, MENU_ARRANGE }, 1916 { N_("Properties"), TGMUITEM_PINNABLESUBMENU, 1917 N_("Properties Menu"), &propertiesMenuInfo, MENU_PROPERTIES }, 1918 { N_("Color"), TGMUITEM_PINNABLESUBMENU, 1919 N_("Color Menu"), &colorMenuInfo, MENU_COLOR }, 1920 { N_("Navigate"), TGMUITEM_PINNABLESUBMENU, 1921 N_("Navigate Menu"), &navigateMenuInfo, MENU_NAVIGATE }, 1922 { N_("Special"), TGMUITEM_PINNABLESUBMENU, 1923 N_("Special Menu"), &specialMenuInfo, MENU_SPECIAL }, 1924 { N_("Tangram-II"), TGMUITEM_PINNABLESUBMENU, 1925 N_("Tangram-II Menu"), &tangram2MenuInfo, MENU_TANGRAM2 }, 1926 { N_("Help"), TGMUITEM_PINNABLESUBMENU, N_("Help Menu"), &helpMenuInfo, 1927 MENU_HELP }, 1928 { NULL, NULL, NULL, NULL, INVALID } 1929 }; 1930 TgMenuInfo minimalMenubarMenuInfo={ TGMUTYPE_TEXT, minimalMenubarMenuItemInfo, 1931 NULL }; 1932 1933 static TgMenuItemInfo maximalMenubarMenuItemInfo[] = { 1934 { N_("File"), TGMUITEM_PINNABLESUBMENU, N_("File Menu"), &fileMenuInfo, 1935 MENU_FILE }, 1936 { N_("Edit"), TGMUITEM_PINNABLESUBMENU, N_("Edit Menu"), &editMenuInfo, 1937 MENU_EDIT }, 1938 { N_("Layout"), TGMUITEM_PINNABLESUBMENU, 1939 N_("Layout Menu"), &layoutMenuInfo, MENU_LAYOUT }, 1940 { N_("Arrange"), TGMUITEM_PINNABLESUBMENU, 1941 N_("Arrange Menu"), &arrangeMenuInfo, MENU_ARRANGE }, 1942 { N_("Properties"), TGMUITEM_PINNABLESUBMENU, 1943 N_("Properties Menu"), &propertiesMenuInfo, MENU_PROPERTIES }, 1944 { N_("Move Mode"), TGMUITEM_PINNABLESUBMENU, 1945 N_("MoveMode Menu"), &moveModeMenuInfo, MENU_MOVEMODE }, 1946 { N_("Page"), TGMUITEM_PINNABLESUBMENU, 1947 N_("Page Menu"), &pageMenuInfo, MENU_PAGE }, 1948 { N_("Page Layout"), TGMUITEM_PINNABLESUBMENU, 1949 N_("PageLayout Menu"), &pageLayoutMenuInfo, MENU_PAGELAYOUT }, 1950 { N_("Horizontal Align"), TGMUITEM_PINNABLESUBMENU, 1951 N_("HoriAlign Menu"), &horiAlignMenuInfo, MENU_HORIALIGN }, 1952 { N_("Vertical Align"), TGMUITEM_PINNABLESUBMENU, 1953 N_("VertAlign Menu"), &vertAlignMenuInfo, MENU_VERTALIGN }, 1954 { N_("Font"), TGMUITEM_PINNABLESUBMENU, N_("Font Menu"), &fontMenuInfo, 1955 MENU_FONT }, 1956 { N_("Text Style"), TGMUITEM_PINNABLESUBMENU, 1957 N_("TextStyle Menu"), &fontStyleMenuInfo, MENU_STYLE }, 1958 { N_("Text Size"), TGMUITEM_PINNABLESUBMENU, 1959 N_("TextSize Menu"), &fontSizeMenuInfo, MENU_SIZE }, 1960 { N_("Shape"), TGMUITEM_PINNABLESUBMENU, 1961 N_("Shape Menu"), &shapeMenuInfo, MENU_SHAPE }, 1962 { N_("Stretchable Text"), TGMUITEM_PINNABLESUBMENU, 1963 N_("StretchText Menu"), &stretchableTextModeMenuInfo, MENU_STRETCHTEXT }, 1964 { N_("Line Dash"), TGMUITEM_PINNABLESUBMENU, 1965 N_("LineDash Menu"), &lineDashMenuInfo, MENU_LINEDASH }, 1966 { N_("Line Style"), TGMUITEM_PINNABLESUBMENU, 1967 N_("LineStyle Menu"), &lineStyleMenuInfo, MENU_LINESTYLE }, 1968 { N_("Line Type"), TGMUITEM_PINNABLESUBMENU, 1969 N_("LineType Menu"), &lineTypeMenuInfo, MENU_LINETYPE }, 1970 { N_("Line Width"), TGMUITEM_PINNABLESUBMENU, 1971 N_("LineWidth Menu"), &lineWidthMenuInfo, MENU_LINEWIDTH }, 1972 { N_("Fill"), TGMUITEM_PINNABLESUBMENU, N_("Fill Menu"), &fillMenuInfo, 1973 MENU_FILL }, 1974 { N_("Pen"), TGMUITEM_PINNABLESUBMENU, N_("Pen Menu"), &penMenuInfo, 1975 MENU_PEN }, 1976 { N_("Transparent Pattern"), TGMUITEM_PINNABLESUBMENU, 1977 N_("TransPattern Menu"), &transPatModeMenuInfo, MENU_TRANSPAT }, 1978 { N_("Color"), TGMUITEM_PINNABLESUBMENU, 1979 N_("Color Menu"), &colorMenuInfo, MENU_COLOR }, 1980 { N_("Image Proc"), TGMUITEM_PINNABLESUBMENU, 1981 N_("ImageProc Menu"), &imageProcMenuInfo, MENU_IMAGEPROC }, 1982 { N_("Navigate"), TGMUITEM_PINNABLESUBMENU, 1983 N_("Navigate Menu"), &navigateMenuInfo, MENU_NAVIGATE }, 1984 { N_("Special"), TGMUITEM_PINNABLESUBMENU, 1985 N_("Special Menu"), &specialMenuInfo, MENU_SPECIAL }, 1986 { N_("Tangram-II"), TGMUITEM_PINNABLESUBMENU, 1987 N_("Tangram-II Menu"), &tangram2MenuInfo, MENU_TANGRAM2 }, 1988 { N_("Help"), TGMUITEM_PINNABLESUBMENU, N_("Help Menu"), &helpMenuInfo, 1989 MENU_HELP }, 1990 { NULL, NULL, NULL, NULL, INVALID } 1991 }; 1992 TgMenuInfo maximalMenubarMenuInfo={ TGMUTYPE_TEXT, maximalMenubarMenuItemInfo, 1993 NULL }; 1994 1995