예제 #1
0
파일: build.cpp 프로젝트: raynorpat/cake
void Build_constructMenu(GtkMenu* menu)
{
  for(Project::iterator i = g_build_project.begin(); i != g_build_project.end(); ++i)
  {
    g_BuildMenuItems.push_back(BuildMenuItem((*i).first.c_str(), 0));
    g_BuildMenuItems.back().m_item = create_menu_item_with_mnemonic(menu, (*i).first.c_str(), BuildMenuItem::RunCaller(g_BuildMenuItems.back()));
  }
}
예제 #2
0
BMenu*
MenuBuilder::BuildMenu(KeyBind* bind, MenuFilter* filter,
	 CustomMenuCreator* custom)
{
	if (bind == NULL)
		return NULL;

	// The first item describe the menu
	BMenu* menu = new BMenu(bind[0].label);

	if (filter != NULL)
		filter->FilterMenu(menu, bind[0].message);

	BObjectList<BMenu> menuList;
	menuList.AddItem(menu);

	for (int i = 1; bind[i].itemType != FABER_EOF; i++) {
		menu = menuList.ItemAt(menuList.CountItems()-1);

		if (bind[i].itemType == FABER_ITEM_START) {
			BMenu* subMenu = NULL;
			subMenu = new BMenu(bind[i].label);

			if (filter != NULL)
				filter->FilterMenu(subMenu, bind[i].message);

			menu->AddItem(subMenu);
			menuList.AddItem(subMenu);

		} else if (bind[i].itemType == FABER_ITEM_END) {
			if (menuList.CountItems() > 1)
				menuList.RemoveItemAt(menuList.CountItems()-1);
		} else if (bind[i].itemType == FABER_CUSTOM_ITEM) {
			if (custom == NULL)
				continue;

			BMenu* customMenu = custom->CreateCustomMenu(bind[i].message);

			if (customMenu != NULL)
				menu->AddItem(customMenu);

		} else if (bind[i].itemType == FABER_SUBITEM) {
			BMenuItem* item = BuildMenuItem(bind[i].message, bind[i].label);

			if (filter != NULL)
				filter->FilterItem(item, bind[i].message);

			menu->AddItem(item);
		} else if (bind[i].itemType == FABER_SPLITTER)
			menu->AddItem(new BSeparatorItem());
	}
	return menuList.ItemAt(0);
}
예제 #3
0
/*>struct Menu *BuildAllMenus(struct Screen *scrn)
   -----------------------------------------------
   Calls STSLib routine to build the menus
   04.03.92 Original
   27.03.92 Added MX to Grey-scale and hatch fill types
   05.05.92 Added separate Rexx menu
   14.05.92 Added image menus for line and fill styles
   22.06.92 Changed menu text `Axis Labels' to `Axis/Pie Labels'
   01.07.92 Removed requirement for rexx debug to have CLI
   02.07.92 Added Palette menu item
   13.07.92 Added Screen to back menu item
   16.07.92 Added conditional check on iff-dr2d output menu item
   17.07.92 Removed this check. Item is now OffMenu()'d
   24.07.92 Made all fitting items check-able
   07.08.92 Added No Fills menu item. Changed Axis/Pie to Axis & Pie
*/
struct Menu *BuildAllMenus(struct Screen *scrn)
{
    /*** Main menus ***/
    ProjectMenu =  BuildMenu(scrn, NULL,         "Project");
    StyleMenu   =  BuildMenu(scrn, ProjectMenu,  "Style");
    AxesMenu    =  BuildMenu(scrn, StyleMenu,    "Axes");
    TextMenu    =  BuildMenu(scrn, AxesMenu,     "Text");
    LinesMenu   =  BuildMenu(scrn, TextMenu,     "Lines");
    FitMenu     =  BuildMenu(scrn, LinesMenu,    "Fit");
    RexxMenu    =  BuildMenu(scrn, FitMenu,      "Rexx");

    /*** Project MenuItems ***/
    MenuOpen =     BuildMenuItem(scrn,0,(APTR)ProjectMenu,"Open...",        'O', 0,0,0,1);
    MenuSave =     BuildMenuItem(scrn,0,(APTR)ProjectMenu,"Save",           'S', 0,0,0,1);
    MenuSaveAs =   BuildMenuItem(scrn,0,(APTR)ProjectMenu,"Save As...",     '\0',0,0,0,1);
    MenuEdit =     BuildMenuItem(scrn,0,(APTR)ProjectMenu,"Edit",           '\0',0,0,0,1);
    MenuPlot =     BuildMenuItem(scrn,0,(APTR)ProjectMenu,"Plot          »",'\0',0,0,0,1);
    MenuPaper =    BuildMenuItem(scrn,0,(APTR)ProjectMenu,"Paper...",       '\0',0,0,0,1);
    MenuSetPens =  BuildMenuItem(scrn,0,(APTR)ProjectMenu,"Set Pens...",    '\0',0,0,0,1);
    MenuPalette =  BuildMenuItem(scrn,0,(APTR)ProjectMenu,"Screen Palette...",'\0',0,0,0,1);
    MenuScrBack =  BuildMenuItem(scrn,0,(APTR)ProjectMenu,"Screen To Back",   '\0',0,0,0,1);
    MenuAbout =    BuildMenuItem(scrn,0,(APTR)ProjectMenu,"About...",       '\0',0,0,0,1);
    MenuQuit =     BuildMenuItem(scrn,0,(APTR)ProjectMenu,"Quit...",        'Q', 0,0,0,1);
    /* Plot subitems */
    MenuPS =       BuildMenuItem(scrn,1,(APTR)MenuPlot,"PostScript...", 'P' ,0,0,0,1);
    MenuHPGL =     BuildMenuItem(scrn,1,(APTR)MenuPlot,"HPGL...",       'H' ,0,0,0,1);
    MenuDR2D =     BuildMenuItem(scrn,1,(APTR)MenuPlot,"IFF-DR2D...",   'I' ,0,0,0,1);

    /*** Style MenuItems ***/
    MenuXY =       BuildMenuItem(scrn,0,(APTR)StyleMenu,"XY",               '\0',0,0,3,1);
    MenuScatter =  BuildMenuItem(scrn,0,(APTR)StyleMenu,"Scatter",          '\0',0,0,2,1);
    MenuBar =      BuildMenuItem(scrn,0,(APTR)StyleMenu,"Bar",              '\0',0,0,2,1);
    MenuPie =      BuildMenuItem(scrn,0,(APTR)StyleMenu,"Pie",              '\0',0,0,2,1);
    MenuErrors =   BuildMenuItem(scrn,0,(APTR)StyleMenu,"Errors",           'E', 0,0,2,1);
    MenuEject =    BuildMenuItem(scrn,0,(APTR)StyleMenu,"Eject Slice",      '\0',0,0,1,1);
    MenuLineSet =  BuildMenuItem(scrn,0,(APTR)StyleMenu,"Line Setup...",    'L', 0,0,1,1);
    MenuBarSet =   BuildMenuItem(scrn,0,(APTR)StyleMenu,"Bar Setup...",     '\0',0,0,1,1);
    MenuPieSet =   BuildMenuItem(scrn,0,(APTR)StyleMenu,"Pie Setup...",     '\0',0,0,1,1);
    /* Mutual excludes */
    MxMenu(StyleMenu,MenuXY,     MenuScatter);
    MxMenu(StyleMenu,MenuXY,     MenuBar);
    MxMenu(StyleMenu,MenuXY,     MenuPie);
    MxMenu(StyleMenu,MenuScatter,MenuBar);
    MxMenu(StyleMenu,MenuScatter,MenuPie);
    MxMenu(StyleMenu,MenuBar,    MenuPie);

    /*** Axes MenuItems ***/
    MenuLogX =     BuildMenuItem(scrn,0,(APTR)AxesMenu,"LogX",              '\0',0,0,2,1);
    MenuLogY =     BuildMenuItem(scrn,0,(APTR)AxesMenu,"LogY",              '\0',0,0,2,1);
    MenuBoxed =    BuildMenuItem(scrn,0,(APTR)AxesMenu,"Boxed",             'B', 0,0,2,1);
    MenuGrid =     BuildMenuItem(scrn,0,(APTR)AxesMenu,"Grid",              'G', 0,0,2,1);
    MenuAxes =     BuildMenuItem(scrn,0,(APTR)AxesMenu,"Set Axes...",       'A', 0,0,1,1);
    MenuFZero =    BuildMenuItem(scrn,0,(APTR)AxesMenu,"Follow Zero",       '\0',0,0,2,1);

    /*** Text MenuItems ***/
    MenuTitle =    BuildMenuItem(scrn,0,(APTR)TextMenu,"Title...",          '\0',0,0,0,1);
    MenuAxTitle =  BuildMenuItem(scrn,0,(APTR)TextMenu,"Axis Titles...",    '\0',0,0,0,1);
    MenuAxLabel =  BuildMenuItem(scrn,0,(APTR)TextMenu,"Axis & Pie Labels...",'\0',0,0,0,1);
    MenuKey =      BuildMenuItem(scrn,0,(APTR)TextMenu,"Key...",            '\0',0,0,0,1);
    MenuLabel =    BuildMenuItem(scrn,0,(APTR)TextMenu,"Extra Labels...",   '\0',0,0,0,1);

    /*** Lines MenuItems ***/
    MenuPen =      BuildMenuItem(scrn,0,(APTR)LinesMenu,"Pen...",           '\0',0,0,0,1);
    MenuStyle =    BuildMenuItem(scrn,0,(APTR)LinesMenu,"Style        »",   '\0',0,0,0,1);
    MenuFills =    BuildMenuItem(scrn,0,(APTR)LinesMenu,"Fills        »",   '\0',0,0,0,1);
    MenuFillType = BuildMenuItem(scrn,0,(APTR)LinesMenu,"Fill Control...",  '\0',0,0,0,1);
    /* Style subitems */
    MenuLS1 =      BuildImageMenu(1,(APTR)MenuStyle,ImageLine1,50,8,1,0);
    MenuLS2 =      BuildImageMenu(1,(APTR)MenuStyle,ImageLine2,50,8,1,0);
    MenuLS3 =      BuildImageMenu(1,(APTR)MenuStyle,ImageLine3,50,8,1,0);
    MenuLS4 =      BuildImageMenu(1,(APTR)MenuStyle,ImageLine4,50,8,1,0);
    MenuLS5 =      BuildImageMenu(1,(APTR)MenuStyle,ImageLine5,50,8,1,0);
    MenuLS6 =      BuildImageMenu(1,(APTR)MenuStyle,ImageLine6,50,8,1,0);
    /* Fill subitems */
    MenuFT1 =      BuildImageMenu(1,(APTR)MenuFills,ImageFill1,32,32,1,0);
    MenuFT2 =      BuildImageMenu(1,(APTR)MenuFills,ImageFill2,32,32,1,1);
    MenuFT3 =      BuildImageMenu(1,(APTR)MenuFills,ImageFill3,32,32,1,2);
    MenuFT4 =      BuildImageMenu(1,(APTR)MenuFills,ImageFill4,32,32,1,0);
    MenuFT5 =      BuildImageMenu(1,(APTR)MenuFills,ImageFill5,32,32,1,1);
    MenuFT6 =      BuildImageMenu(1,(APTR)MenuFills,ImageFill6,32,32,1,2);
    MenuNoFills =  BuildMenuItem(scrn,0,(APTR)LinesMenu,"No Fills",         '\0',0,0,0,1);

    /*** Fit MenuItems ***/
    MenuRegress =  BuildMenuItem(scrn,0,(APTR)FitMenu,"Regression...",      '\0',0,0,2,1);
    MenuRobust =   BuildMenuItem(scrn,0,(APTR)FitMenu,"Robust",             '\0',0,0,2,1);
    MenuFourier =  BuildMenuItem(scrn,0,(APTR)FitMenu,"Fourier...",         '\0',0,0,2,1);
    MenuRexxFit =  BuildMenuItem(scrn,0,(APTR)FitMenu,"Rexx fit...",        '\0',0,0,2,1);

    /*** Rexx MenuItems ***/
    MenuRunRexx =  BuildMenuItem(scrn,0,(APTR)RexxMenu,"Execute macro...",  'R', 0,0,1,1);
    MenuRexx =     BuildMenuItem(scrn,0,(APTR)RexxMenu,"Install macro...",  '\0',0,0,1,1);
    MenuDebRexx =  BuildMenuItem(scrn,0,(APTR)RexxMenu,"Debug",             '\0',0,0,2,1);

    return(ProjectMenu);
}