From 3cd3a0a8d639e126bf39c341e1e24752fbbc0e69 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Thu, 9 Aug 2007 18:25:00 +0000 Subject: [PATCH] added amb766 - GetMenuTitle() --HG-- extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%401296 --- core/smn_menus.cpp | 20 ++++++++++++++++++++ plugins/include/menus.inc | 11 +++++++++++ 2 files changed, 31 insertions(+) diff --git a/core/smn_menus.cpp b/core/smn_menus.cpp index 539eeed0..9e70a386 100644 --- a/core/smn_menus.cpp +++ b/core/smn_menus.cpp @@ -811,6 +811,25 @@ static cell_t SetMenuTitle(IPluginContext *pContext, const cell_t *params) return 1; } +static cell_t GetMenuTitle(IPluginContext *pContext, const cell_t *params) +{ + Handle_t hndl = (Handle_t)params[1]; + HandleError err; + IBaseMenu *menu; + + if ((err=g_Menus.ReadMenuHandle(params[1], &menu)) != HandleError_None) + { + return pContext->ThrowNativeError("Menu handle %x is invalid (error %d)", hndl, err); + } + + size_t written; + const char *title = menu->GetDefaultTitle(); + pContext->StringToLocalUTF8(params[2], params[3], title, &written); + + return (cell_t)written; +} + + static cell_t CreatePanelFromMenu(IPluginContext *pContext, const cell_t *params) { Handle_t hndl = (Handle_t)params[1]; @@ -1329,6 +1348,7 @@ REGISTER_NATIVES(menuNatives) {"GetMenuPagination", GetMenuPagination}, {"GetMenuStyle", GetMenuStyle}, {"GetMenuStyleHandle", GetMenuStyleHandle}, + {"GetMenuTitle", GetMenuTitle}, {"GetPanelCurrentKey", GetPanelCurrentKey}, {"GetPanelStyle", GetPanelStyle}, {"InsertMenuItem", InsertMenuItem}, diff --git a/plugins/include/menus.inc b/plugins/include/menus.inc index cb67b21e..53b464d0 100644 --- a/plugins/include/menus.inc +++ b/plugins/include/menus.inc @@ -264,6 +264,17 @@ native Handle:GetMenuStyle(Handle:menu); */ native SetMenuTitle(Handle:menu, const String:fmt[], any:...); +/** + * Returns the text of a menu's title. + * + * @param menu Menu Handle. + * @param buffer Buffer to store title. + * @param maxlength Maximum length of the buffer. + * @return Number of bytes written. + * @error Invalid Handle/ + */ +native GetMenuTitle(Handle:menu, String:buffer[], maxlength); + /** * Creates a raw MenuPanel based off the menu's style. * The Handle must be freed with CloseHandle().