From: thomas m. <tho...@gm...> - 2006-08-24 06:52:03
|
hi yes I thought about that, this leads me to this question can I call super.init() every time I subclass for safety ? How would I know what are the necessary steps when subclassing ? For example I subclassed NSButton and I think I had to override cellClass and setCellClass, is that right ? (Or could I just have called setClass on my custom button ? ) But Is there a way to know for sure what needs to be overwritten to make sure the child class works ? I know that in the appKit API reference there are infos about that, is it where I should always look ? sorry for all the questions but I really like ActionStep and would really like to understand better :) thomas On 8/24/06, Scott Hyndman <sc...@af...> wrote: > > I also notice that your initWithController() method doesn't call > super.init(). This is usually quite important. > > Scott > > On 23/08/06, Ray Chuan <rc...@gm...> wrote: > > Hi, > > > > but where is the SMMenu populate method called? Before the app is run or > after? > > > > On 8/24/06, thomas mery <tho...@gm...> wrote: > > > hi > > > > > > > > > On 8/23/06, Ray Chuan <rc...@gm...> wrote: > > > > Hi, > > > > I've figured it out. It's got to do with the way windows are handled > > > > in ActionStep. It's been fixed. If you want to know more, read on. > > > > > > > > A window is made up of MovieClips (mcs). (Actually views are but for > > > > the sake of simplicity let's ignore that.) A menu contains windows. > > > > So when a menu (and hence the window) is created *before* NSApp is > > > > run, this takes place automatically, ie the mcs are created for you. > > > > > > > > But for your case, the windows are created *after* NSApp has started > > > > running (I assume), so they will not have their mcs created. I've > > > > changed that, so when a menu is displayed it's window is also forced > > > > to create it's own mcs. > > > > > > > > > > > > mmm > > > > > > I don't know but the sequence was : > > > > > > ------ > > > m_app = m_app = NSApplication.sharedApplication (); > > > > > > createMenu() //which contains m_mainMenu = (new > SMMenu()).initWithTitle("My > > > Menu"); where SMMenu is subclassing NSMenu > > > m_app.run(); > > > ------ > > > > > > so I thought the menu was created *before" I start the app. > > > > > > > > > > > > > > > > As for why you need to click it twice, apparently the display method > > > > is called when the submenu is detached. Sounds weird, huh? I've > fixed > > > > this too. > > > > > > > > > > > > it works now, but what I don't get is why it was working with NSMenu > but not > > > with my subclass ... > > > > > > > > > thanks ! > > > > > > > > > > On 8/23/06, thomas mery <tho...@gm...> wrote: > > > > > hi all, > > > > > > > > > > I have tried to subclass NSMenu and have encountered a weird > behaviour. > > > > > > > > > > I have to click twice on my main items to make the submenus appear > (or > > > have > > > > > to rollover twice on submenus that have submenus) > > > > > > > > > > here is my code so maybe someone can tell me what i am doing wrong > ... > > > > > > > > > > import org.actionstep.menu.NSMenuItemCell; > > > > > import org.actionstep.menu.NSMenuView ; > > > > > import org.actionstep.NSApplication; > > > > > import org.actionstep.NSException ; > > > > > import org.actionstep.NSFont; > > > > > import org.actionstep.NSMenu; > > > > > import org.actionstep.NSMenuItem; > > > > > import org.actionstep.NSWindow; > > > > > > > > > > import > > > com.screenmatters.controllers.CategoriesController; > > > > > import com.screenmatters.controllers.SMController ; > > > > > import org.actionstep.NSPoint; > > > > > > > > > > /** > > > > > * @author tom > > > > > */ > > > > > class com.screenmatters.menu.SMMenu extends NSMenu { > > > > > > > > > > private var m_controller:CategoriesController; > > > > > > > > > > private var m_itemsArray:Object; > > > > > > > > > > public function SMMenu() { > > > > > > > > > > super(); > > > > > menuRepresentation().setHorizontal(false); > > > > > > > > > > } > > > > > > > > > > public function initWithTitle(title:String):SMMenu > > > { > > > > > > > > > > super.initWithTitle(title); > > > > > return this; > > > > > > > > > > } > > > > > > > > > > public function > > > > > initWithController(controller:Function):SMMenu { > > > > > > > > > > m_controller = controller.getInstance(); > > > > > > > > > > return this; > > > > > > > > > > } > > > > > > > > > > public function setController(controller:Function) > > > { > > > > > > > > > > m_controller = controller.getInstance(); > > > > > > > > > > return m_controller; > > > > > > > > > > } > > > > > > > > > > //returns menu controller > > > > > public function controller():Object { > > > > > > > > > > return m_controller; > > > > > > > > > > } > > > > > > > > > > public function > > > populate(itemsArray:Object,menu:SMMenu) > > > > > { > > > > > > > > > > if(menu == null) { > > > > > > > > > > menu = this; > > > > > > > > > > } > > > > > > > > > > if( itemsArray.length > 0) { > > > > > > > > > > var mi:NSMenuItem; > > > > > > > > > > for(var i:Number = 0; i < itemsArray.length; i++) { > > > > > > > > > > var itemName = > > > > > itemsArray[i]['CategoryName'][0]['name']; > > > > > mi = > > > > > menu.addItemWithTitleActionKeyEquivalent (itemName); > > > > > mi.setTarget(this); > > > > > mi.setAction("traceMenuItem"); > > > > > > > > > > if(itemsArray[i]['children'].length > > > > 0) { > > > > > > > > > > var submenu = (new > SMMenu()).initWithTitle("Menu > > > for " > > > > > + itemName); > > > > > menu.setSubmenuForItem(submenu,mi); > > > > > > > > > > populate(itemsArray[i]['children'],submenu); > > > > > > > > > > } > > > > > > > > > > } > > > > > > > > > > } > > > > > > > > > > } > > > > > } > > > > > > > > > > > > > > > > > > > > TIA > > > > > > > > > > thomas > > > > > > > > > > > > > > ------------------------------------------------------------------------- > > > > > Using Tomcat but need to do more? Need to support web services, > > > security? > > > > > Get stuff done quickly with pre-integrated technology to make your > job > > > > > easier > > > > > Download IBM WebSphere Application Server v.1.0.1 based on Apache > > > Geronimo > > > > > > > > > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > > > > > > > > > > _______________________________________________ > > > > > actionstep-core mailing list > > > > > act...@li... > > > > > > > > https://lists.sourceforge.net/lists/listinfo/actionstep-core > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > Cheers, > > > > Ray Chuan > > > > > > > > > > > > ------------------------------------------------------------------------- > > > > Using Tomcat but need to do more? Need to support web services, > security? > > > > Get stuff done quickly with pre-integrated technology to make your > job > > > easier > > > > Download IBM WebSphere Application Server v.1.0.1 based on Apache > Geronimo > > > > > > > > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > > > > _______________________________________________ > > > > actionstep-core mailing list > > > > act...@li... > > > > > > > https://lists.sourceforge.net/lists/listinfo/actionstep-core > > > > > > > > > > > > > > > > -- > > > ---------------------------------------------------------- > > > Thomas Mery en concert : > > > > > > Septembre > > > 20/09 OPA - Paris > > > > > > Octobre > > > 14/10 Limoges > > > 15/10 --- > > > 16/10 --- > > > 17/10 Toulouse > > > 18/10 --- > > > 19/10 Bordeaux > > > 20/10 --- > > > 21/10 Reims > > > > > > Novembre > > > 10/11 Macon > > > > > > http://www.myspace.com/thomasmery > > > http://www.thomas-mery.net > > > ---------------------------------------------------------- > > > > ------------------------------------------------------------------------- > > > Using Tomcat but need to do more? Need to support web services, > security? > > > Get stuff done quickly with pre-integrated technology to make your job > > > easier > > > Download IBM WebSphere Application Server v.1.0.1 based on Apache > Geronimo > > > > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > > > > > > _______________________________________________ > > > actionstep-core mailing list > > > act...@li... > > > https://lists.sourceforge.net/lists/listinfo/actionstep-core > > > > > > > > > > > > > > > -- > > Cheers, > > Ray Chuan > > > > > ------------------------------------------------------------------------- > > Using Tomcat but need to do more? Need to support web services, > security? > > Get stuff done quickly with pre-integrated technology to make your job > easier > > Download IBM WebSphere Application Server v.1.0.1 based on Apache > Geronimo > > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > > _______________________________________________ > > actionstep-core mailing list > > act...@li... > > https://lists.sourceforge.net/lists/listinfo/actionstep-core > > > > ------------------------------------------------------------------------- > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job > easier > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > _______________________________________________ > actionstep-core mailing list > act...@li... > https://lists.sourceforge.net/lists/listinfo/actionstep-core > -- ---------------------------------------------------------- http://www.myspace.com/thomasmery http://www.thomas-mery.net ---------------------------------------------------------- |