예제 #1
0
        public unsafe static void ts3plugin_initMenus(PluginMenuItem ***menuItems, char **menuIcon)
        {
            int menuItemCount = 8;
            int n             = 0;

            *menuItems = (PluginMenuItem **)Marshal.AllocHGlobal(sizeof(PluginMenuItem *) * menuItemCount);

            (*menuItems)[n++] = createMenuItem(PluginMenuType.PLUGIN_MENU_TYPE_GLOBAL, MenuItems.MenuItemAbout, "About", "");
            (*menuItems)[n++] = createMenuItem(PluginMenuType.PLUGIN_MENU_TYPE_CHANNEL, MenuItems.MenuItemJoin, "Join", "");
            (*menuItems)[n++] = createMenuItem(PluginMenuType.PLUGIN_MENU_TYPE_CHANNEL, MenuItems.MenuItemLeave, "Leave", "");
            (*menuItems)[n++] = createMenuItem(PluginMenuType.PLUGIN_MENU_TYPE_CHANNEL, MenuItems.MenuItemLink, "Link to channel", "");
            (*menuItems)[n++] = createMenuItem(PluginMenuType.PLUGIN_MENU_TYPE_GLOBAL, MenuItems.MenuItemConnect, "Connect", "");
            (*menuItems)[n++] = createMenuItem(PluginMenuType.PLUGIN_MENU_TYPE_GLOBAL, MenuItems.MenuItemDisconnect, "Disconnect", "");
            (*menuItems)[n++] = createMenuItem(PluginMenuType.PLUGIN_MENU_TYPE_CHANNEL, MenuItems.MenuItemConnectionInfo, "Connection info", "");

            (*menuItems)[n++] = null;

            *menuIcon = (char *)Marshal.AllocHGlobal(256 * sizeof(char));

            IntPtr ptr    = Marshal.StringToHGlobalAnsi("logo.png");
            void * strPtr = ptr.ToPointer();
            char * cptr   = (char *)strPtr;

            my_strcpy(*menuIcon, 256, cptr);
        }
예제 #2
0
        public unsafe static void ts3plugin_initMenus(PluginMenuItem ***menuItems, char **menuIcon)
        {
            int x  = 1;
            int sz = x + 1;
            int n  = 0;

            *      menuItems = (PluginMenuItem **)Marshal.AllocHGlobal((sizeof(PluginMenuItem *) * sz));
            string name      = "Test";
            string icon      = "2.png";

            (*menuItems)[n++] = createMenuItem(PluginMenuType.PLUGIN_MENU_TYPE_GLOBAL, 1, name, icon);

            (*menuItems)[n++] = null;
            //Debug.Assert(n == sz);

            *menuIcon = (char *)Marshal.AllocHGlobal(128 * sizeof(char));

            IntPtr ptr    = System.Runtime.InteropServices.Marshal.StringToHGlobalAnsi("t.png");
            void * strPtr = ptr.ToPointer();
            char * cptr   = (char *)strPtr;

            my_strcpy(*menuIcon, 128, cptr);
        }