/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * filename: xmnuftry.c * * * * UTIL C-source: Medical Image Conversion Utility * * * * purpose : menu creation factory * * * * project : (X)MedCon by Erik Nolf * * * * Note : basic code extracted from Gtk+ tutorial * * * * Functions : XMdcMenusGetMain() - Get main menu * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* $Id: xmnuftry.c,v 1.32 2007/06/20 22:06:36 enlf Exp $ */ /* Copyright (C) 1997-2007 by Erik Nolf This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Place - Suite 330, Boston, MA 02111-1307, USA. */ /**************************************************************************** H E A D E R S ****************************************************************************/ #include #include "xmedcon.h" /**************************************************************************** D E F I N E S ****************************************************************************/ static GtkItemFactoryEntry menu_items[] = { {(char *)"/_File", NULL, (void(*)())NULL, 0, (char *)""}, {(char *)"/File/Open", (char *)"O", XMdcFileSelOpen, 0, NULL}, {(char *)"/File/Open Raw", NULL, (void(*)())NULL, 0, (char *)"" }, {(char *)"/File/Open Raw/Interactive", NULL, XMdcFileSelOpen, XMDC_RAW, NULL}, {(char *)"/File/Open Raw/Predefined", NULL, XMdcFileSelOpen,XMDC_PREDEF,NULL}, {(char *)"/File/SepA", NULL, (void(*)())NULL, 0, (char *)"" }, {(char *)"/File/Raw Predef Load", NULL, XMdcRawPredefSelOpen, 0, NULL }, {(char *)"/File/Raw Predef Save", (char *)"I" , XMdcRawPredefSelSave, 0, NULL }, {(char *)"/File/SepB", NULL, (void(*)())NULL, 0, (char *)"" }, {(char *)"/File/Info Show", (char *)"I", XMdcShowFileInfo, 0, NULL}, {(char *)"/File/Info Edit", (char *)"F", XMdcEditFileInfo, 0, NULL}, {(char *)"/File/SepC", NULL, (void(*)())NULL, 0, (char *)"" }, {(char *)"/File/Save", (char *)"S", XMdcFileSelSave ,MDC_MAX_FRMTS,NULL}, {(char *)"/File/Save _As", NULL, (void(*)())NULL, 0, (char *)"" }, {(char *)"/File/Save As/Raw Binary", NULL,XMdcFileSelSave,MDC_FRMT_RAW,NULL}, {(char *)"/File/Save As/Raw Ascii", NULL,XMdcFileSelSave,MDC_FRMT_ASCII,NULL}, #if MDC_INCLUDE_ACR {(char *)"/File/Save As/AcrNema", NULL,XMdcFileSelSave,MDC_FRMT_ACR,NULL}, #endif #if MDC_INCLUDE_ANLZ {(char *)"/File/Save As/Analyze", NULL,XMdcFileSelSave,MDC_FRMT_ANLZ,NULL}, #endif #if MDC_INCLUDE_CONC {(char *)"/File/Save As/Concorde", NULL,XMdcFileSelSave,MDC_FRMT_CONC,NULL}, #endif #if MDC_INCLUDE_DICM {(char *)"/File/Save As/DICOM", NULL,XMdcFileSelSave,MDC_FRMT_DICM,NULL}, #endif #if MDC_INCLUDE_ECAT {(char *)"/File/Save As/Ecat6", NULL,XMdcFileSelSave,MDC_FRMT_ECAT6,NULL}, #if MDC_INCLUDE_TPC {(char *)"/File/Save As/Ecat7", NULL,XMdcFileSelSave,MDC_FRMT_ECAT7,NULL}, #endif #endif #if MDC_INCLUDE_GIF {(char *)"/File/Save As/Gif89a", NULL,XMdcFileSelSave,MDC_FRMT_GIF,NULL}, #endif #if MDC_INCLUDE_INTF {(char *)"/File/Save As/InterFile", NULL,XMdcFileSelSave,MDC_FRMT_INTF,NULL}, #endif #if MDC_INCLUDE_INW {(char *)"/File/Save As/INW (RUG)", NULL,XMdcFileSelSave,MDC_FRMT_INW,NULL}, #endif #if MDC_INCLUDE_NIFTI {(char *)"/File/Save As/NIFTI", NULL,XMdcFileSelSave,MDC_FRMT_NIFTI,NULL}, #endif #if MDC_INCLUDE_PNG {(char *)"/File/Save As/PNG", NULL,XMdcFileSelSave,MDC_FRMT_PNG,NULL}, #endif {(char *)"/File/SepD", NULL, (void(*)())NULL, 0, (char *)"" }, {(char *)"/File/Close", NULL, XMdcCloseFile, 0, NULL}, {(char *)"/File/Quit", (char *)"Q", XMdcMedconQuit, 0, NULL}, {(char *)"/_Images", NULL, (void(*)())NULL, 0, (char *)"" }, {(char *)"/Images/View", (char *)"V", XMdcImagesView, 0, NULL}, {(char *)"/Images/Extract", (char *)"E",XMdcExtractStyleSel, 0,NULL}, {(char *)"/Images/Reslice", NULL, (void(*)())NULL, 0, (char *)"" }, {(char *)"/Images/Reslice/XY-Transaxial",NULL,XMdcResliceImages ,MDC_TRANSAXIAL,NULL}, {(char *)"/Images/Reslice/XZ-Coronal", NULL,XMdcResliceImages ,MDC_CORONAL, NULL}, {(char *)"/Images/Reslice/YZ-Sagittal", NULL,XMdcResliceImages ,MDC_SAGITTAL, NULL}, {(char *)"/Images/Flip", NULL, (void(*)())NULL, 0, (char *)"" }, {(char *)"/Images/Flip/Horizontal",NULL,XMdcTransformImages ,MDC_TRANSF_HORIZONTAL,NULL}, {(char *)"/Images/Flip/Vertical ",NULL ,XMdcTransformImages ,MDC_TRANSF_VERTICAL,NULL}, {(char *)"/Images/Sort", NULL, (void(*)())NULL, 0, (char *)"" }, {(char *)"/Images/Sort/Reverse",NULL,XMdcTransformImages ,MDC_TRANSF_REVERSE,NULL}, {(char *)"/Images/Sort/Cine", NULL, (void(*)())NULL, 0, (char *)"" }, {(char *)"/Images/Sort/Cine/Apply",NULL,XMdcTransformImages ,MDC_TRANSF_CINE_APPLY,NULL}, {(char *)"/Images/Sort/Cine/Undo",NULL ,XMdcTransformImages ,MDC_TRANSF_CINE_UNDO,NULL}, {(char *)"/Images/Matrix",NULL, (void(*)())NULL, 0, (char *)"" }, {(char *)"/Images/Matrix/Square",NULL,XMdcTransformImages ,MDC_TRANSF_SQR1,NULL}, {(char *)"/Images/Matrix/Square Pwr2",NULL,XMdcTransformImages ,MDC_TRANSF_SQR2,NULL}, {(char *)"/_Options", NULL, (void(*)())NULL, 0, (char *)""}, {(char *)"/Options/MedCon", "M", XMdcOptionsMedconSel, 0, NULL}, {(char *)"/Options/SepE", NULL, (void(*)())NULL, 0, (char *)"" }, {(char *)"/Options/Render", (char *)"R",XMdcOptionsRenderSel,0,NULL}, {(char *)"/Options/Labels", (char *)"L", XMdcOptionsLabelSel,0,NULL}, {(char *)"/Options/Pages", (char *)"P", XMdcOptionsPagesSel,0,NULL}, {(char *)"/Options/Resize", (char *)"Z",XMdcOptionsResizeSel,0,NULL}, {(char *)"/Options/Colormap", NULL, (void(*)())NULL, 0, (char *)""}, {(char *)"/Options/Colormap/Colors", (char *)"C" , XMdcOptionsColorMapSel, 0, NULL}, {(char *)"/Options/Colormap/Place", NULL, XMdcOptionsMapPlaceSel, 0, NULL}, {(char *)"/_Help", NULL, (void(*)())NULL, 0, (char *)""}, {(char *)"/Help/Online Info", NULL, XMdcHelp, 0, NULL}, {(char *)"/Help/Console Logs", NULL, XMdcShowLogConsole, 0, NULL}, {(char *)"/Help/About", NULL, XMdcAbout, 0, NULL} }; /**************************************************************************** F U N C T I O N S ****************************************************************************/ void XMdcMenusGetMain(GtkWidget *window, GtkWidget **menubar) { guint nmenu_items = sizeof(menu_items) / sizeof(menu_items[0]); GtkItemFactory *factory; GtkAccelGroup *accel_group; accel_group = gtk_accel_group_new(); factory = gtk_item_factory_new(GTK_TYPE_MENU_BAR, "
", accel_group); gtk_item_factory_create_items(factory, nmenu_items, menu_items, NULL); gtk_accel_group_attach(accel_group, GTK_OBJECT(window)); if (menubar) *menubar = gtk_item_factory_get_widget(factory, "
"); }