Modified the DBModeler application to use Renaissance to generate its main

menu.

* DBModeler/main.m

  (main): Added code to load the application menu, as described in the
  Renaissance tutorial.

* DBModeler/Modeler.m

  (applicationWillFinishLaunching:): Removed code to manually created the
  application's menu.  This is now handled by Renaissance.
  
* DBModeler/Resources/Menu-GNUstep.gsmarkup,
  DBModeler/Resources/Menu-Cocoa.gsmarkup

  Initial import

* DBModeler/GNUmakefile

  Added Renaissance to the list of libraries used by DBModeler.  Added
  Menu-Cocoa.gsmarkup and  Menu-GNUstep.gsmarkup to the list of application
  resources.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@26516 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Blake Nicholson 2008-05-13 03:34:01 +00:00
parent 2a7cbceb9c
commit 6d66f9739c
6 changed files with 197 additions and 166 deletions

View file

@ -1,12 +1,19 @@
2008-05-12 Blake Nicholson <blaken@umich.edu>
* Modeler.m: Use NULL instead of nil for an empty NSMenuItem action.
Removed the main menu creation code. This is now handled by Renaissance.
* DBModeler/GNUmakefile: Added DBModeler.icns to the list of resources,
and set DBModeler_APPLICATION_ICON so the icon will be set appropriately.
Added gsmarkup files for the main menu to the list of resources. Added
dependency upon the Renaissance framework.
* DBModeler/Resources/DBModeler.icns: Initial import
* DBModeler/Resources/MainMenu-{Cocoa,GNUstep}.gsmarkup: Initial import.
* DBModeler/main.m: Load the gsmarkup for the main menu.
2008-05-11 Blake Nicholson <blaken@umich.edu>
* GNUmakefile.in: Add EOInterface, EOModeler, and DBModeler to

View file

@ -39,7 +39,7 @@ endif
ADDITIONAL_INCLUDE_DIRS+=-I../
ADDITIONAL_NATIVE_LIB_DIRS+=../EOAccess ../EOControl ../EOInterface ../EOModeler
ADDITIONAL_NATIVE_LIBS += EOAccess EOControl EOInterface EOModeler
ADDITIONAL_NATIVE_LIBS += EOAccess EOControl EOInterface EOModeler Renaissance
$(APP_NAME)_RESOURCE_FILES = \
Resources/ModelDrag.tiff \
@ -59,7 +59,9 @@ $(APP_NAME)_RESOURCE_FILES = \
Resources/DBModeler.tiff \
Resources/DBModeler.icns \
Resources/AllowsNull_On.tiff \
Resources/AllowsNull_Header.tiff
Resources/AllowsNull_Header.tiff \
Resources/Menu-Cocoa.gsmarkup \
Resources/Menu-GNUstep.gsmarkup
$(APP_NAME)_OBJC_FILES = \
main.m \

View file

@ -100,7 +100,6 @@
int i,c;
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSArray *bundlesToLoad = RETAIN([defaults arrayForKey: @"BundlesToLoad"]);
NSMenu *mainMenu,*subMenu,*servicesMenu;
NSFileManager *fm = [NSFileManager defaultManager];
// [EOObserverCenter addOmniscientObserver:[DebugObserver new]];
@ -125,170 +124,8 @@
/* useful method for setting breakpoints after an adaptor is loaded */
mainMenu = [[NSMenu alloc] init];
[mainMenu setAutoenablesItems:YES];
subMenu = [[NSMenu alloc] initWithTitle: _(@"Info")];
[subMenu setAutoenablesItems:YES];
[subMenu addItemWithTitle: _(@"About DBModeler")
action: NULL];
[subMenu addItem: [NSMenuItem separatorItem]];
[subMenu addItemWithTitle: _(@"Preferences...")
action: @selector(openPrefs:)
keyEquivalent: @","];
#ifdef NeXT_GUI_LIBRARY
[subMenu addItem: [NSMenuItem separatorItem]];
servicesMenu = [[NSMenu alloc] initWithTitle: _(@"Services")];
[subMenu setSubmenu: servicesMenu forItem: [subMenu addItemWithTitle: _(@"Services")]];
[NSApp setServicesMenu: servicesMenu];
[servicesMenu release];
[subMenu addItem: [NSMenuItem separatorItem]];
[subMenu addItemWithTitle: _(@"Hide DBModeler")
action: @selector(hide:)
keyEquivalent: @"h"];
[subMenu addItemWithTitle: _(@"Hide Others")
action: @selector(hideOtherApplications:)
keyEquivalent: @""];
[subMenu addItemWithTitle: _(@"Show All")
action: @selector(unhideAllApplications:)
keyEquivalent: @""];
[subMenu addItem: [NSMenuItem separatorItem]];
[subMenu addItemWithTitle: _(@"Quit DBModeler")
action: @selector(terminate:)
keyEquivalent: @"q"];
#endif /* NeXT_GUI_LIBRARY */
[mainMenu setSubmenu: subMenu forItem: [mainMenu addItemWithTitle: @"Info"]];
[subMenu release];
subMenu = [[NSMenu alloc] initWithTitle: _(@"Model")];
[subMenu addItemWithTitle: _(@"New...")
action: @selector(new:)
keyEquivalent: @"n"];
[subMenu addItemWithTitle: _(@"New From Database...")
action: @selector(newFromDatabase:)
keyEquivalent: @""];
[subMenu addItemWithTitle: _(@"Open")
action: @selector(open:)
keyEquivalent: @"o"];
[subMenu addItem:[NSMenuItem separatorItem]];
[subMenu addItemWithTitle: _(@"Save")
action: @selector(save:)
keyEquivalent: @"s"];
[subMenu addItemWithTitle: _(@"Save As...")
action: @selector(saveAs:)
keyEquivalent: @"S"];
[subMenu addItemWithTitle: _(@"Revert to Saved")
action: @selector(revert:)
keyEquivalent: @"u"];
[subMenu addItem:[NSMenuItem separatorItem]];
[subMenu addItemWithTitle: _(@"Set Adaptor Info...")
action: @selector(setAdaptor:)
keyEquivalent: @"I"];
[subMenu addItemWithTitle: _(@"Switch Adaptor...")
action: @selector(switchAdaptor:)
keyEquivalent: @""];
[ConsistencyChecker class];
[[subMenu addItemWithTitle: _(@"Check Consistency...")
action: @selector(checkConsistency:)
keyEquivalent: @""] setRepresentedObject:[ConsistencyResults sharedConsistencyPanel]];
[mainMenu setSubmenu: subMenu forItem: [mainMenu addItemWithTitle:_(@"Model")]];
[subMenu release];
subMenu = [[NSMenu alloc] initWithTitle: _(@"Edit")];
[subMenu setAutoenablesItems:YES];
[subMenu addItemWithTitle: _(@"Copy")
action: @selector(copy:)
keyEquivalent: @"c"];
[subMenu addItemWithTitle: _(@"Cut")
action: @selector(cut:)
keyEquivalent: @"x"];
[subMenu addItemWithTitle: _(@"Paste")
action: @selector(paste:)
keyEquivalent: @"v"];
[mainMenu setSubmenu: subMenu forItem: [mainMenu addItemWithTitle: _(@"Edit")]];
[subMenu release];
subMenu = [[NSMenu alloc] initWithTitle: _(@"Tools")];
[subMenu addItemWithTitle: _(@"Inspector")
action: @selector(showInspector:)
keyEquivalent: @"i"];
[subMenu addItemWithTitle: _(@"Generate SQL")
action: @selector(generateSQL:)
keyEquivalent: @""];
[subMenu addItemWithTitle: _(@"Table Editor")
action: @selector(showEditor:)
keyEquivalent: @""];
[subMenu addItemWithTitle: _(@"Diagram Editor")
action: @selector(showEditor:)
keyEquivalent: @""];
[mainMenu setSubmenu:subMenu forItem:[mainMenu addItemWithTitle:_(@"Tools")]];
[subMenu release];
subMenu = [[NSMenu alloc] initWithTitle: _(@"Property")];
[subMenu setAutoenablesItems:YES];
[subMenu addItemWithTitle: _(@"Add Entity")
action: @selector(addEntity:)
keyEquivalent: @"E"];
[subMenu addItemWithTitle: _(@"Add Attribute")
action: @selector(addAttribute:)
keyEquivalent: @"A"];
[subMenu addItemWithTitle: _(@"Add Relationship")
action: @selector(addRelationship:)
keyEquivalent: @"R"];
[subMenu addItemWithTitle: _(@"Delete")
action: @selector(delete:)
keyEquivalent: @""];
[mainMenu setSubmenu:subMenu forItem:[mainMenu addItemWithTitle:_(@"Property")]];
[subMenu release];
#ifdef GNU_GUI_LIBRARY
servicesMenu = [[NSMenu alloc] initWithTitle: _(@"Services")];
[mainMenu setSubmenu: servicesMenu forItem: [mainMenu addItemWithTitle: _(@"Services")]];
[NSApp setServicesMenu: servicesMenu];
[servicesMenu release];
[mainMenu addItemWithTitle: _(@"Hide")
action: @selector(hide:)
keyEquivalent: @"h"];
[mainMenu addItemWithTitle: _(@"Quit...")
action: @selector(terminate:)
keyEquivalent: @"q"];
#endif /* GNU_GUI_LIBRARY */
[NSApp setMainMenu: mainMenu];
/* make this a default? */
[EOModelerDocument setDefaultEditorClass: NSClassFromString(@"MainModelEditor")];
}

View file

@ -0,0 +1,92 @@
<?xml version="1.0"?>
<!DOCTYPE gsmarkup>
<gsmarkup>
<objects>
<menu type="main" autoenablesItems="yes">
<menu title="Info" type="apple" autoenablesItems="yes">
<menuItem title="About DBModeler"
action="orderFrontStandardAboutPanel:" />
<menuSeparator/>
<menuItem title="Preferences..." keyEquivalent=","
action="openPrefs:" />
<menuSeparator/>
<menu title="Services" type="services"/>
<menuSeparator/>
<menuItem title="Hide DBModeler" keyEquivalent="h"
action="hide:" />
<menuItem title="Hide Others"
action="hideOtherApplications:" />
<menuItem title="Show All"
action="unhideAllApplications:" />
<menuSeparator/>
<menuItem title="Quit DBModeler" keyEquivalent="q"
action="terminate:" />
</menu>
<menu title="Model">
<menuItem title="New..." keyEquivalent="n"
action="new:" />
<menuItem title="New From Database..."
action="newFromDatabase:" />
<menuItem title="Open" keyEquivalent="o"
action="open:" />
<menuSeparator/>
<menuItem title="Save" keyEquivalent="s"
action="save:" />
<menuItem title="Save As..." keyEquivalent="S"
action="saveAs:" />
<menuItem title="Revert to Saved" keyEquivalent="u"
action="revert:" />
<menuSeparator/>
<menuItem title="Set Adaptor Info..." keyEquivalent="I"
action="setAdaptor:" />
<menuItem title="Switch Adaptor..."
action="switchAdaptor:" />
<menuItem title="Check Consistency..."
action="checkConsistency:" />
<!-- TODO: representedObject for checkConsistency -->
</menu>
<menu title="Edit" autoenablesItems="yes">
<menuItem title="Cut" keyEquivalent="x"
action="cut:" />
<menuItem title="Copy" keyEquivalent="c"
action="copy:" />
<menuItem title="Paste" keyEquivalent="v"
action="paste:" />
<menuItem title="SelectAll" keyEquivalent="a"
action="selectAll:" />
</menu>
<menu title="Property" autoenablesItems="yes">
<menuItem title="Add Entity" keyEquivalent="E"
action="addEntity:" />
<menuItem title="Add Attribute" keyEquivalent="A"
action="addAttribute:" />
<menuItem title="Add Relationship" keyEquivalent="R"
action="addRelationship:" />
<menuItem title="Delete" action="delete:" />
</menu>
<menu title="Tools">
<menuItem title="Inspector" keyEquivalent="i"
action="showInspector:" />
<menuItem title="Generate SQL" action="generateSQL:" />
<menuItem title="Table Editor" action="showEditor:" />
<menuItem title="Diagram Editor" action="showEditor:" />
</menu>
<menu title="Windows" type="windows">
<menuItem title="Close Window" action="performClose:"
keyEquivalent="w"/>
<menuItem title="Zoom Window" action="zoom:" />
<menuItem title="Miniaturize Window" action="performMiniaturize:"
keyEquivalent="m"/>
<menuSeparator/>
<menuItem title="Bring All to Front" action="arrangeInFront:"/>
</menu>
</menu>
</objects>
</gsmarkup>

View file

@ -0,0 +1,82 @@
<?xml version="1.0"?>
<!DOCTYPE gsmarkup>
<gsmarkup>
<objects>
<menu type="main" autoenablesItems="yes">
<menu title="Info" autoenablesItems="yes">
<menuItem title="About DBModeler"
action="orderFrontStandardAboutPanel:" />
<menuItem title="Info Panel..."
action="orderFrontStandardInfoPanel:"/>
<menuItem title="Preferences..." action="runPreferencesPanel:"/>
<menuItem title="Help..." action="orderFrontHelpPanel:"/>
</menu>
<menu title="Model">
<menuItem title="New..." keyEquivalent="n"
action="new:" />
<menuItem title="New From Database..."
action="newFromDatabase:" />
<menuItem title="Open" keyEquivalent="o"
action="open:" />
<menuSeparator/>
<menuItem title="Save" keyEquivalent="s"
action="save:" />
<menuItem title="Save As..." keyEquivalent="S"
action="saveAs:" />
<menuItem title="Revert to Saved" keyEquivalent="u"
action="revert:" />
<menuSeparator/>
<menuItem title="Set Adaptor Info..." keyEquivalent="I"
action="setAdaptor:" />
<menuItem title="Switch Adaptor..."
action="switchAdaptor:" />
<menuItem title="Check Consistency..."
action="checkConsistency:" />
<!-- TODO: representedObject for checkConsistency -->
</menu>
<menu title="Edit" autoenablesItems="yes">
<menuItem title="Cut" keyEquivalent="x"
action="cut:" />
<menuItem title="Copy" keyEquivalent="c"
action="copy:" />
<menuItem title="Paste" keyEquivalent="v"
action="paste:" />
<menuItem title="SelectAll" keyEquivalent="a"
action="selectAll:" />
</menu>
<menu title="Property" autoenablesItems="yes">
<menuItem title="Add Entity" keyEquivalent="E"
action="addEntity:" />
<menuItem title="Add Attribute" keyEquivalent="A"
action="addAttribute:" />
<menuItem title="Add Relationship" keyEquivalent="R"
action="addRelationship:" />
<menuItem title="Delete" action="delete:" />
</menu>
<menu title="Tools">
<menuItem title="Inspector" keyEquivalent="i"
action="showInspector:" />
<menuItem title="Generate SQL" action="generateSQL:" />
<menuItem title="Table Editor" action="showEditor:" />
<menuItem title="Diagram Editor" action="showEditor:" />
</menu>
<menu title="Services" type="services"/>
<menu title="Windows" type="windows">
<menuItem title="Arrange" action="arrangeInFront:"/>
<menuItem title="Miniaturize" action="performMiniaturize:" keyEquivalent="m"/>
<menuItem title="Close" action="performClose:" keyEquivalent="w"/>
</menu>
<menuItem title="Hide" action="hide:" keyEquivalent="h"/>
<menuItem title="Quit" action="terminate:" keyEquivalent="q"/>
</menu>
</objects>
</gsmarkup>

View file

@ -33,14 +33,25 @@
#include <EOModeler/EOModelerApp.h>
#include "Modeler.h"
#include <Renaissance/Renaissance.h>
#include <GNUstepBase/GNUstep.h>
int main (int argc, const char **argv)
{
Modeler *m;
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
[EOModelerApp sharedApplication];
[NSApp setDelegate: [[Modeler alloc] init]];
m = [[Modeler alloc] init];
[NSApp setDelegate: m];
#ifdef NeXT_GUI_LIBRARY
[NSBundle loadGSMarkupNamed: @"Menu-Cocoa" owner: m];
#else
[NSBundle loadGSMarkupNamed: @"Menu-GNUstep" owner: m];
#endif
[NSApp run];
RELEASE(pool);
return 0;