diff --git a/ruamoko/cl_menu/Makefile.am b/ruamoko/cl_menu/Makefile.am index 25da215fe..e3cc7e793 100644 --- a/ruamoko/cl_menu/Makefile.am +++ b/ruamoko/cl_menu/Makefile.am @@ -33,7 +33,7 @@ menu_src= \ CrosshairCvar.r CrosshairView.r CvarColor.r CvarColorView.r \ CvarObject.r CvarRange.r CvarRangeView.r CvarString.r CvarStringView.r \ CvarToggle.r CvarToggleView.r \ - MenuGroup.r MouseToggle.r ProxyView.r RunToggle.r + MenuGroup.r MouseToggle.r ProxyView.r RunToggle.r SubMenu.r %.qfo: %.r $(QFCC) $(QCFLAGS) $(QCPPFLAGS) -c -o $@ $< @@ -52,7 +52,7 @@ EXTRA_DIST= $(menu_src) \ CrosshairCvar.h CrosshairView.h CvarColor.h CvarColorView.h CvarObject.h \ CvarRange.h CvarRangeView.h CvarString.h CvarStringView.h \ CvarToggle.h CvarToggleView.h Frame.h HUD.h \ - MenuGroup.h MouseToggle.h ProxyView.h RunToggle.h client_menu.h \ + MenuGroup.h MouseToggle.h ProxyView.h RunToggle.h SubMenu.h client_menu.h \ controls_o.h menu.h options.h options_util.h plistmenu.h servlist.h \ menu.plist CLEANFILES= *.dat *.sym *.gz *.qfo diff --git a/ruamoko/cl_menu/SubMenu.h b/ruamoko/cl_menu/SubMenu.h new file mode 100644 index 000000000..864703844 --- /dev/null +++ b/ruamoko/cl_menu/SubMenu.h @@ -0,0 +1,14 @@ +#ifndef __SubMenu_h +#define __SubMenu_h + +#include "gui/View.h" + +@interface SubMenu : View +{ + View *title; + string menu_name; +} +-(id)initWithBounds:(Rect)aRect title:(View*)aTitle menu:(string)name; +@end + +#endif//__SubMenu_h diff --git a/ruamoko/cl_menu/SubMenu.r b/ruamoko/cl_menu/SubMenu.r new file mode 100644 index 000000000..c4aa188d7 --- /dev/null +++ b/ruamoko/cl_menu/SubMenu.r @@ -0,0 +1,39 @@ +#include "key.h" + +#include "menu.h" +#include "SubMenu.h" + +@implementation SubMenu + +-(id)initWithBounds:(Rect)aRect title:(View *)aTitle menu:(string)name +{ + self = [super initWithBounds:aRect]; + if (!self) + return self; + + title = aTitle; + menu_name = name; + return self; +} + +- (int) keyEvent:(int)key unicode:(int)unicode down:(int)down +{ + if (key == QFK_RETURN) { + Menu_SelectMenu (menu_name); + return 1; + } + return 0; +} + +- (void) draw +{ + [title draw]; +} + +- (void) setBasePosFromView: (View *) aview +{ + [super setBasePosFromView:aview]; + [title setBasePosFromView:self]; +} + +@end diff --git a/ruamoko/cl_menu/menu.plist b/ruamoko/cl_menu/menu.plist index 254f87fb2..bec17b43f 100644 --- a/ruamoko/cl_menu/menu.plist +++ b/ruamoko/cl_menu/menu.plist @@ -41,12 +41,20 @@ rect = "[54, 50, 64, 8]"; }, { - Class = Text; + Class = SubMenu; Messages = ( - (initWithBounds:, $rect), - (setText:, "\"Bindings\"") + (initWithBounds:title:menu:, $rect, $title, + "\"Bindings\""), ); rect = "[70, 60, 64, 8]"; + title = { + Class = Text; + Messages = ( + (initWithBounds:, $rect), + (setText:, "\"Bindings\"") + ); + rect = "[0, 0, 64, 8]"; + }; }, { Class = CvarToggleView; diff --git a/ruamoko/cl_menu/options.qc b/ruamoko/cl_menu/options.qc index a8096b336..e0529c23e 100644 --- a/ruamoko/cl_menu/options.qc +++ b/ruamoko/cl_menu/options.qc @@ -199,7 +199,7 @@ DRAW_control_options = [control_options setBasePos:x y:y]; [control_options draw]; - return 1; + return 0; }; int (int key, int unicode, int down) @@ -227,8 +227,8 @@ MENU_control_options (PLItem *plist) control_options = ret.pointer_val; } + MENU_control_binding (); //FIXME how to hook in the bindings menu? Menu_End (); - //MENU_control_binding (); FIXME how to hook in the bindings menu? }; /***********************************************