⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qmenu.inc

📁 雷神之锤2(Quake2)Delphi源码
💻 INC
字号:
{#ifndef __QMENU_H__
#define __QMENU_H__}

const
  MAXMENUITEMS	    = 64;

  MTYPE_SLIDER	    = 0;
  MTYPE_LIST	    = 1;
  MTYPE_ACTION	    = 2;
  MTYPE_SPINCONTROL = 3;
  MTYPE_SEPARATOR   = 4;
  MTYPE_FIELD	    = 5;

  K_TAB		    = 9;
  K_ENTER	    = 13;
  K_ESCAPE	    = 27;
  K_SPACE	    = 32;

// normal keys should be passed as lowercased ascii

  K_BACKSPACE	    = 127;
  K_UPARROW	    = 128;
  K_DOWNARROW	    = 129;
  K_LEFTARROW	    = 130;
  K_RIGHTARROW      = 131;

  QMF_LEFT_JUSTIFY  = $00000001;
  QMF_GRAYED	    = $00000002;
  QMF_NUMBERSONLY   = $00000004;

type  
(*typedef struct _tag_menuframework
{
...
	void (*cursordraw)( struct _tag_menuframework *m );
} menuframework_s;*)
  menuframework_p = ^menuframework_s;
  menuframework_s = record
    x, y,
    cursor,
    nitems,
    nslots : integer;

//	void *items[64];
    items : array [0..63] of pointer;

//	const char *statusbar;
    statusbar : PChar;

//	void ( *cursordraw)( struct _tag_menuframework *m );
    cursordraw : procedure (m : menuframework_p);
  end;

  menucommon_p = ^menucommon_s;
  menucommon_s = record
    type_ : integer;

//    const char *name;
    name : PChar;

    x, y : integer;

//    menuframework_s *parent;
    parent : menuframework_p;

    cursor_offset : integer;
    localdata : array [0..3] of integer;
    
//    unsigned flags;
    flags : Cardinal;

//    const char *statusbar;
    statusbar : PChar;

{    void ( *callback)( void *self );
    void ( *statusbarfunc)( void *self );
    void ( *ownerdraw)( void *self );
    void ( *cursordraw)( void *self );}
    callback      : procedure (self : pointer);
    statusbarfunc : procedure (self : pointer);
    ownerdraw     : procedure (self : pointer);
    cursordraw    : procedure (self : pointer);
  end;

  menufield_p = ^menufield_s;
  menufield_s = record
    generic : menucommon_s;

    buffer : array [0..79] of char;
    cursor,
    length,
    visible_length,
    visible_offset : integer;
  end;

  menuslider_p = ^menuslider_s;
  menuslider_s = record
    generic : menucommon_s;

    minvalue,
    maxvalue,
    curvalue,
    range: Single;
  end;

  menulist_p = ^menulist_s;
  menulist_s = record
    generic : menucommon_s;

    curvalue : integer;

//    const char **itemnames;
    itemnames : PChar; //or PPChar (pointer)
  end;

  menuaction_p = ^menuaction_s;
  menuaction_s = record
    generic : menucommon_s;
  end;

  menuseparator_p = ^menuseparator_s;
  menuseparator_s = record
    generic : menucommon_s;
  end;

(*
qboolean Field_Key( menufield_s *field, int key );

void	Menu_AddItem( menuframework_s *menu, void *item );
void	Menu_AdjustCursor( menuframework_s *menu, int dir );
void	Menu_Center( menuframework_s *menu );
void	Menu_Draw( menuframework_s *menu );
void	*Menu_ItemAtCursor( menuframework_s *m );
qboolean Menu_SelectItem( menuframework_s *s );
void	Menu_SetStatusBar( menuframework_s *s, const char *string );
void	Menu_SlideItem( menuframework_s *s, int dir );
int		Menu_TallySlots( menuframework_s *menu );

void	 Menu_DrawString( int, int, const char * );
void	 Menu_DrawStringDark( int, int, const char * );
void	 Menu_DrawStringR2L( int, int, const char * );
void	 Menu_DrawStringR2LDark( int, int, const char * );

#endif
*)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -