2024-11-24 17:05 UTC

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0002842Buildsystem[All Projects] Generalpublic2022-02-18 22:27
ReporterCameron Cawley 
Assigned To 
PrioritynormalSeverityminorReproducibilityhave not tried
StatusnewResolutionopen 
Summary0002842: [PATCH] windows: Add menu bars to the hotlist, cookies and global history windows
DescriptionThe menus here are equivalent to the ones in the GTK frontend.
TagsNo tags attached.
Fixed in CI build #
Reported in CI build #
Attached Files
  • patch file icon 0001-windows-Add-menu-bars-to-the-hotlist-cookies-and-glo.patch (17,634 bytes) 2022-02-18 22:27 -
    From 275a3c04db4638e98ba0b7f22c096bb0d87b0eb7 Mon Sep 17 00:00:00 2001
    From: Cameron Cawley <ccawley2011@gmail.com>
    Date: Fri, 18 Feb 2022 22:17:45 +0000
    Subject: [PATCH] windows: Add menu bars to the hotlist, cookies and global
     history windows
    
    ---
     frontends/windows/cookies.c        | 56 +++++++++++++++++
     frontends/windows/corewindow.c     | 22 ++++++-
     frontends/windows/corewindow.h     | 16 ++++-
     frontends/windows/global_history.c | 87 ++++++++++++++++++++++++++
     frontends/windows/hotlist.c        | 88 ++++++++++++++++++++++++++
     frontends/windows/res/resource.rc  | 99 ++++++++++++++++++++++++++++++
     frontends/windows/resourceid.h     | 42 +++++++++++++
     7 files changed, 408 insertions(+), 2 deletions(-)
    
    diff --git a/frontends/windows/cookies.c b/frontends/windows/cookies.c
    index ee754bc3f..54b8314c6 100644
    --- a/frontends/windows/cookies.c
    +++ b/frontends/windows/cookies.c
    @@ -35,6 +35,7 @@
     #include "windows/corewindow.h"
     #include "windows/cookies.h"
     #include "windows/gui.h"
    +#include "windows/resourceid.h"
     
     
     struct nsw32_cookie_window {
    @@ -43,6 +44,59 @@ struct nsw32_cookie_window {
     
     static struct nsw32_cookie_window *cookie_window = NULL;
     
    +/**
    + * callback for menu selection in cookie window
    + *
    + * \param nsw32_cw The nsw32 core window structure.
    + * \param nskey The netsurf key code
    + * \return NSERROR_OK on success otherwise apropriate error code
    + */
    +static nserror
    +nsw32_cookie_command(struct nsw32_corewindow *nsw32_cw, int identifier)
    +{
    +	switch (identifier) {
    +	case IDM_COOKIES_EDIT_DELETE_SELECTED:
    +		cookie_manager_keypress(NS_KEY_DELETE_LEFT);
    +		break;
    +	case IDM_COOKIES_EDIT_DELETE_ALL:
    +		cookie_manager_keypress(NS_KEY_ESCAPE);
    +		cookie_manager_keypress(NS_KEY_ESCAPE);
    +		cookie_manager_keypress(NS_KEY_SELECT_ALL);
    +		cookie_manager_keypress(NS_KEY_DELETE_LEFT);
    +		break;
    +	case IDM_COOKIES_EDIT_SELECT_ALL:
    +		cookie_manager_keypress(NS_KEY_ESCAPE);
    +		cookie_manager_keypress(NS_KEY_ESCAPE);
    +		cookie_manager_keypress(NS_KEY_SELECT_ALL);
    +		break;
    +	case IDM_COOKIES_EDIT_CLEAR_SELECTION:
    +		cookie_manager_keypress(NS_KEY_CLEAR_SELECTION);
    +		break;
    +	case IDM_COOKIES_VIEW_EXPAND_ALL:
    +		cookie_manager_expand(false);
    +		break;
    +	case IDM_COOKIES_VIEW_EXPAND_DOMAINS:
    +		cookie_manager_expand(true);
    +		break;
    +	case IDM_COOKIES_VIEW_EXPAND_COOKIES:
    +		cookie_manager_expand(false);
    +		break;
    +	case IDM_COOKIES_VIEW_COLLAPSE_ALL:
    +		cookie_manager_contract(true);
    +		break;
    +	case IDM_COOKIES_VIEW_COLLAPSE_DOMAINS:
    +		cookie_manager_contract(true);
    +		break;
    +	case IDM_COOKIES_VIEW_COLLAPSE_COOKIES:
    +		cookie_manager_contract(false);
    +		break;
    +	default:
    +		return NSERROR_NOT_IMPLEMENTED;
    +	}
    +
    +	return NSERROR_OK;
    +}
    +
     /**
      * callback for keypress on cookie window
      *
    @@ -143,7 +197,9 @@ static nserror nsw32_cookie_init(HINSTANCE hInstance)
     	}
     
     	ncwin->core.title = "NetSurf Cookies";
    +	ncwin->core.menu = LoadMenu(hInstance, MAKEINTRESOURCE(IDR_MENU_COOKIES));
     	ncwin->core.draw = nsw32_cookie_draw;
    +	ncwin->core.command = nsw32_cookie_command;
     	ncwin->core.key = nsw32_cookie_key;
     	ncwin->core.mouse = nsw32_cookie_mouse;
     	ncwin->core.close = nsw32_cookie_close;
    diff --git a/frontends/windows/corewindow.c b/frontends/windows/corewindow.c
    index 7d6dc69b0..9a26efb43 100644
    --- a/frontends/windows/corewindow.c
    +++ b/frontends/windows/corewindow.c
    @@ -147,6 +147,20 @@ nsw32_corewindow_paint(struct nsw32_corewindow *nsw32_cw, HWND hwnd)
     	return 0;
     }
     
    +static LRESULT
    +nsw32_corewindow_command(struct nsw32_corewindow *nsw32_cw,
    +			 HWND hwnd,
    +			 WPARAM wparam,
    +			 LPARAM lparam)
    +{
    +	if (!nsw32_cw->command)
    +		return 1;
    +
    +	nsw32_cw->command(nsw32_cw, LOWORD(wparam));
    +
    +	return 0; /* control message handled */
    +}
    +
     static LRESULT
     nsw32_corewindow_vscroll(struct nsw32_corewindow *nsw32_cw,
     			 HWND hwnd,
    @@ -353,6 +367,12 @@ nsw32_window_corewindow_event_callback(HWND hwnd,
     		case WM_PAINT: /* redraw the exposed part of the window */
     			return nsw32_corewindow_paint(nsw32_cw, hwnd);
     
    +		case WM_COMMAND:
    +			if (nsw32_corewindow_command(nsw32_cw, hwnd, wparam, lparam) == 0) {
    +				return 0;
    +			}
    +			break;
    +
     		case WM_SIZE:
     			update_scrollbars(nsw32_cw);
     			break;
    @@ -551,7 +571,7 @@ nsw32_corewindow_init(HINSTANCE hInstance,
     					500,
     					400,
     					hWndParent,
    -					NULL,
    +					nsw32_cw->menu,
     					hInstance,
     					NULL);
     	if (nsw32_cw->hWnd == NULL) {
    diff --git a/frontends/windows/corewindow.h b/frontends/windows/corewindow.h
    index cffae3cbd..b91787a85 100644
    --- a/frontends/windows/corewindow.h
    +++ b/frontends/windows/corewindow.h
    @@ -36,7 +36,10 @@ struct nsw32_corewindow {
     
     	/** window title */
     	const char *title;
    -	
    +
    +	/** window menu */
    +	HMENU menu;
    +
             /** drag status set by core */
             core_window_drag_status drag_status;
     
    @@ -52,6 +55,17 @@ struct nsw32_corewindow {
              */
             nserror (*draw)(struct nsw32_corewindow *nsw32_cw, int scrollx, int scrolly, struct rect *r);
     
    +        /**
    +         * callback for menu selection in nsw32 core window
    +         *
    +         * \param nsw32_cw The nsw32 core window structure.
    +         * \param nskey The netsurf key code.
    +         * \return NSERROR_OK if key processed,
    +         *         NSERROR_NOT_IMPLEMENTED if command not processed
    +         *         otherwise apropriate error code
    +         */
    +        nserror (*command)(struct nsw32_corewindow *nsw32_cw, int identifier);
    +
             /**
              * callback for keypress on nsw32 core window
              *
    diff --git a/frontends/windows/global_history.c b/frontends/windows/global_history.c
    index dcc75ba21..c26fad3b8 100644
    --- a/frontends/windows/global_history.c
    +++ b/frontends/windows/global_history.c
    @@ -34,6 +34,7 @@
     #include "windows/plot.h"
     #include "windows/corewindow.h"
     #include "windows/global_history.h"
    +#include "windows/resourceid.h"
     
     
     struct nsw32_global_history_window {
    @@ -42,6 +43,90 @@ struct nsw32_global_history_window {
     
     static struct nsw32_global_history_window *global_history_window = NULL;
     
    +/**
    + * callback for menu selection in global history window
    + *
    + * \param nsw32_cw The nsw32 core window structure.
    + * \param nskey The netsurf key code
    + * \return NSERROR_OK on success otherwise apropriate error code
    + */
    +static nserror
    +nsw32_global_history_command(struct nsw32_corewindow *nsw32_cw, int identifier)
    +{
    +	switch (identifier) {
    +	case IDM_GLOBAL_HISTORY_FILE_EXPORT:
    +	{
    +		OPENFILENAMEA ofn;
    +		char filename[260];
    +
    +		memset(&ofn, 0, sizeof(ofn));
    +		ofn.lStructSize = sizeof(ofn);
    +		ofn.hwndOwner = nsw32_cw->hWnd;
    +		ofn.lpstrFile = filename;
    +		ofn.lpstrFile[0] = 0;
    +		ofn.nMaxFile = sizeof(filename);
    +		ofn.lpstrFilter = "HTML document (*.html)\0*.html\0";
    +		ofn.nFilterIndex = 1;
    +		ofn.lpstrFileTitle = NULL;
    +		ofn.nMaxFileTitle = 0;
    +		ofn.Flags = OFN_PATHMUSTEXIST;
    +		ofn.lpstrDefExt = "html";
    +
    +		strncat(ofn.lpstrFile, "history.html", ofn.nMaxFile);
    +
    +		if (GetSaveFileNameA(&ofn)) {
    +			global_history_export(ofn.lpstrFile, NULL);
    +		}
    +
    +		break;
    +	}
    +	case IDM_GLOBAL_HISTORY_EDIT_DELETE_SELECTED:
    +		global_history_keypress(NS_KEY_DELETE_LEFT);
    +		break;
    +	case IDM_GLOBAL_HISTORY_EDIT_DELETE_ALL:
    +		global_history_keypress(NS_KEY_ESCAPE);
    +		global_history_keypress(NS_KEY_ESCAPE);
    +		global_history_keypress(NS_KEY_SELECT_ALL);
    +		global_history_keypress(NS_KEY_DELETE_LEFT);
    +		break;
    +	case IDM_GLOBAL_HISTORY_EDIT_SELECT_ALL:
    +		global_history_keypress(NS_KEY_ESCAPE);
    +		global_history_keypress(NS_KEY_ESCAPE);
    +		global_history_keypress(NS_KEY_SELECT_ALL);
    +		break;
    +	case IDM_GLOBAL_HISTORY_EDIT_CLEAR_SELECTION:
    +		global_history_keypress(NS_KEY_ESCAPE);
    +		global_history_keypress(NS_KEY_ESCAPE);
    +		global_history_keypress(NS_KEY_CLEAR_SELECTION);
    +		break;
    +	case IDM_GLOBAL_HISTORY_VIEW_EXPAND_ALL:
    +		global_history_expand(false);
    +		break;
    +	case IDM_GLOBAL_HISTORY_VIEW_EXPAND_DIRECTORIES:
    +		global_history_expand(true);
    +		break;
    +	case IDM_GLOBAL_HISTORY_VIEW_EXPAND_ADDRESSES:
    +		global_history_expand(false);
    +		break;
    +	case IDM_GLOBAL_HISTORY_VIEW_COLLAPSE_ALL:
    +		global_history_contract(true);
    +		break;
    +	case IDM_GLOBAL_HISTORY_VIEW_COLLAPSE_DIRECTORIES:
    +		global_history_contract(true);
    +		break;
    +	case IDM_GLOBAL_HISTORY_VIEW_COLLAPSE_ADDRESSES:
    +		global_history_contract(false);
    +		break;
    +	case IDM_GLOBAL_HISTORY_LAUNCH:
    +		global_history_keypress(NS_KEY_CR);
    +		break;
    +	default:
    +		return NSERROR_NOT_IMPLEMENTED;
    +	}
    +
    +	return NSERROR_OK;
    +}
    +
     /**
      * callback for keypress on global_history window
      *
    @@ -132,7 +217,9 @@ static nserror nsw32_global_history_init(HINSTANCE hInstance)
     	}
     
     	ncwin->core.title = "NetSurf Global History";
    +	ncwin->core.menu = LoadMenu(hInstance, MAKEINTRESOURCE(IDR_MENU_GLOBAL_HISTORY));
     	ncwin->core.draw = nsw32_global_history_draw;
    +	ncwin->core.command = nsw32_global_history_command;
     	ncwin->core.key = nsw32_global_history_key;
     	ncwin->core.mouse = nsw32_global_history_mouse;
     	ncwin->core.close = nsw32_global_history_close;
    diff --git a/frontends/windows/hotlist.c b/frontends/windows/hotlist.c
    index e8dd90b34..d4e82074d 100644
    --- a/frontends/windows/hotlist.c
    +++ b/frontends/windows/hotlist.c
    @@ -34,6 +34,7 @@
     #include "windows/plot.h"
     #include "windows/corewindow.h"
     #include "windows/hotlist.h"
    +#include "windows/resourceid.h"
     
     
     /**
    @@ -46,6 +47,91 @@ struct nsw32_hotlist_window {
     /** hotlist window singleton */
     static struct nsw32_hotlist_window *hotlist_window = NULL;
     
    +/**
    + * callback for menu selection in hotlist window
    + *
    + * \param nsw32_cw The nsw32 core window structure.
    + * \param nskey The netsurf key code
    + * \return NSERROR_OK on success otherwise apropriate error code
    + */
    +static nserror
    +nsw32_hotlist_command(struct nsw32_corewindow *nsw32_cw, int identifier)
    +{
    +	switch (identifier) {
    +	case IDM_HOTLIST_FILE_EXPORT:
    +	{
    +		OPENFILENAMEA ofn;
    +		char filename[260];
    +
    +		memset(&ofn, 0, sizeof(ofn));
    +		ofn.lStructSize = sizeof(ofn);
    +		ofn.hwndOwner = nsw32_cw->hWnd;
    +		ofn.lpstrFile = filename;
    +		ofn.lpstrFile[0] = 0;
    +		ofn.nMaxFile = sizeof(filename);
    +		ofn.lpstrFilter = "HTML document (*.html)\0*.html\0";
    +		ofn.nFilterIndex = 1;
    +		ofn.lpstrFileTitle = NULL;
    +		ofn.nMaxFileTitle = 0;
    +		ofn.Flags = OFN_PATHMUSTEXIST;
    +		ofn.lpstrDefExt = "html";
    +
    +		strncat(ofn.lpstrFile, "hotlist.html", ofn.nMaxFile);
    +
    +		if (GetSaveFileNameA(&ofn)) {
    +			hotlist_export(ofn.lpstrFile, NULL);
    +		}
    +
    +		break;
    +	}
    +	case IDM_HOTLIST_FILE_NEW_FOLDER:
    +		hotlist_add_folder(NULL, false, 0);
    +		break;
    +	case IDM_HOTLIST_FILE_NEW_ENTRY:
    +		hotlist_add_entry(NULL, NULL, false, 0);
    +		break;
    +	case IDM_HOTLIST_EDIT_EDIT:
    +		hotlist_edit_selection();
    +		break;
    +	case IDM_HOTLIST_EDIT_DELETE:
    +		hotlist_keypress(NS_KEY_DELETE_LEFT);
    +		break;
    +	case IDM_HOTLIST_EDIT_SELECT_ALL:
    +		hotlist_keypress(NS_KEY_ESCAPE);
    +		hotlist_keypress(NS_KEY_ESCAPE);
    +		hotlist_keypress(NS_KEY_SELECT_ALL);
    +		break;
    +	case IDM_HOTLIST_EDIT_CLEAR_SELECTION:
    +		hotlist_keypress(NS_KEY_CLEAR_SELECTION);
    +		break;
    +	case IDM_HOTLIST_VIEW_EXPAND_ALL:
    +		hotlist_expand(false);
    +		break;
    +	case IDM_HOTLIST_VIEW_EXPAND_DIRECTORIES:
    +		hotlist_expand(true);
    +		break;
    +	case IDM_HOTLIST_VIEW_EXPAND_ADDRESSES:
    +		hotlist_expand(false);
    +		break;
    +	case IDM_HOTLIST_VIEW_COLLAPSE_ALL:
    +		hotlist_contract(true);
    +		break;
    +	case IDM_HOTLIST_VIEW_COLLAPSE_DIRECTORIES:
    +		hotlist_contract(true);
    +		break;
    +	case IDM_HOTLIST_VIEW_COLLAPSE_ADDRESSES:
    +		hotlist_contract(false);
    +		break;
    +	case IDM_HOTLIST_LAUNCH:
    +		hotlist_keypress(NS_KEY_CR);
    +		break;
    +	default:
    +		return NSERROR_NOT_IMPLEMENTED;
    +	}
    +
    +	return NSERROR_OK;
    +}
    +
     /**
      * callback for keypress on hotlist window
      *
    @@ -136,7 +222,9 @@ static nserror nsw32_hotlist_init(HINSTANCE hInstance)
     	}
     
     	ncwin->core.title = "NetSurf Bookmarks";
    +	ncwin->core.menu = LoadMenu(hInstance, MAKEINTRESOURCE(IDR_MENU_HOTLIST));
     	ncwin->core.draw = nsw32_hotlist_draw;
    +	ncwin->core.command = nsw32_hotlist_command;
     	ncwin->core.key = nsw32_hotlist_key;
     	ncwin->core.mouse = nsw32_hotlist_mouse;
     	ncwin->core.close = nsw32_hotlist_close;
    diff --git a/frontends/windows/res/resource.rc b/frontends/windows/res/resource.rc
    index 9e9927b0c..d6cf87590 100644
    --- a/frontends/windows/res/resource.rc
    +++ b/frontends/windows/res/resource.rc
    @@ -162,6 +162,105 @@ IDR_MENU_MAIN MENU
     
     
     
    +LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
    +IDR_MENU_HOTLIST MENU
    +{
    +    POPUP "&File"
    +    {
    +        MENUITEM "Export", IDM_HOTLIST_FILE_EXPORT
    +        MENUITEM "New folder", IDM_HOTLIST_FILE_NEW_FOLDER
    +        MENUITEM "New entry", IDM_HOTLIST_FILE_NEW_ENTRY
    +    }
    +    POPUP "&Edit"
    +    {
    +        MENUITEM "Edit", IDM_HOTLIST_EDIT_EDIT
    +        MENUITEM "Delete", IDM_HOTLIST_EDIT_DELETE
    +        MENUITEM "Select all", IDM_HOTLIST_EDIT_SELECT_ALL
    +        MENUITEM "Clear selection", IDM_HOTLIST_EDIT_CLEAR_SELECTION
    +    }
    +    POPUP "&View"
    +    {
    +        POPUP "Expand"
    +        {
    +            MENUITEM "All", IDM_HOTLIST_VIEW_EXPAND_ALL
    +            MENUITEM "Directories", IDM_HOTLIST_VIEW_EXPAND_DIRECTORIES
    +            MENUITEM "Addresses", IDM_HOTLIST_VIEW_EXPAND_ADDRESSES
    +        }
    +        POPUP "Collapse"
    +        {
    +            MENUITEM "All", IDM_HOTLIST_VIEW_COLLAPSE_ALL
    +            MENUITEM "Directories", IDM_HOTLIST_VIEW_COLLAPSE_DIRECTORIES
    +            MENUITEM "Addresses", IDM_HOTLIST_VIEW_COLLAPSE_ADDRESSES
    +        }
    +    }
    +    MENUITEM "&Launch", IDM_HOTLIST_LAUNCH
    +}
    +
    +
    +
    +LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
    +IDR_MENU_COOKIES MENU
    +{
    +    POPUP "&Edit"
    +    {
    +        MENUITEM "Delete", IDM_COOKIES_EDIT_DELETE_SELECTED
    +        MENUITEM "Delete all", IDM_COOKIES_EDIT_DELETE_ALL
    +        MENUITEM "Select all", IDM_COOKIES_EDIT_SELECT_ALL
    +        MENUITEM "Clear selection", IDM_COOKIES_EDIT_CLEAR_SELECTION
    +    }
    +    POPUP "&View"
    +    {
    +        POPUP "Expand"
    +        {
    +            MENUITEM "All", IDM_COOKIES_VIEW_EXPAND_ALL
    +            MENUITEM "Domains", IDM_COOKIES_VIEW_EXPAND_DOMAINS
    +            MENUITEM "Cookies", IDM_COOKIES_VIEW_EXPAND_COOKIES
    +        }
    +        POPUP "Collapse"
    +        {
    +            MENUITEM "All", IDM_COOKIES_VIEW_COLLAPSE_ALL
    +            MENUITEM "Domains", IDM_COOKIES_VIEW_COLLAPSE_DOMAINS
    +            MENUITEM "Cookies", IDM_COOKIES_VIEW_COLLAPSE_COOKIES
    +        }
    +    }
    +}
    +
    +
    +
    +LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
    +IDR_MENU_GLOBAL_HISTORY MENU
    +{
    +    POPUP "&File"
    +    {
    +        MENUITEM "Export", IDM_GLOBAL_HISTORY_FILE_EXPORT
    +    }
    +    POPUP "&Edit"
    +    {
    +        MENUITEM "Delete", IDM_GLOBAL_HISTORY_EDIT_DELETE_SELECTED
    +        MENUITEM "Delete all", IDM_GLOBAL_HISTORY_EDIT_DELETE_ALL
    +        MENUITEM "Select all", IDM_GLOBAL_HISTORY_EDIT_SELECT_ALL
    +        MENUITEM "Clear selection", IDM_GLOBAL_HISTORY_EDIT_CLEAR_SELECTION
    +    }
    +    POPUP "&View"
    +    {
    +        POPUP "Expand"
    +        {
    +            MENUITEM "All", IDM_GLOBAL_HISTORY_VIEW_EXPAND_ALL
    +            MENUITEM "Directories", IDM_GLOBAL_HISTORY_VIEW_EXPAND_DIRECTORIES
    +            MENUITEM "Addresses", IDM_GLOBAL_HISTORY_VIEW_EXPAND_ADDRESSES
    +        }
    +        POPUP "Collapse"
    +        {
    +            MENUITEM "All", IDM_GLOBAL_HISTORY_VIEW_COLLAPSE_ALL
    +            MENUITEM "Directories", IDM_GLOBAL_HISTORY_VIEW_COLLAPSE_DIRECTORIES
    +            MENUITEM "Addresses", IDM_GLOBAL_HISTORY_VIEW_COLLAPSE_ADDRESSES
    +        }
    +    }
    +    MENUITEM "&Launch", IDM_GLOBAL_HISTORY_LAUNCH
    +}
    +
    +
    +
     //
     // Dialog resources
     //
    diff --git a/frontends/windows/resourceid.h b/frontends/windows/resourceid.h
    index db275913b..7f4cdc578 100644
    --- a/frontends/windows/resourceid.h
    +++ b/frontends/windows/resourceid.h
    @@ -138,4 +138,46 @@
     
     #define IDR_MENU_CONTEXT 11000
     
    +#define IDR_MENU_HOTLIST 12000
    +#define IDM_HOTLIST_FILE_EXPORT 12101
    +#define IDM_HOTLIST_FILE_NEW_FOLDER 12102
    +#define IDM_HOTLIST_FILE_NEW_ENTRY 12103
    +#define IDM_HOTLIST_EDIT_EDIT 12201
    +#define IDM_HOTLIST_EDIT_DELETE 12202
    +#define IDM_HOTLIST_EDIT_SELECT_ALL 12203
    +#define IDM_HOTLIST_EDIT_CLEAR_SELECTION 12204
    +#define IDM_HOTLIST_VIEW_EXPAND_ALL 12301
    +#define IDM_HOTLIST_VIEW_EXPAND_DIRECTORIES 12302
    +#define IDM_HOTLIST_VIEW_EXPAND_ADDRESSES 12303
    +#define IDM_HOTLIST_VIEW_COLLAPSE_ALL 12304
    +#define IDM_HOTLIST_VIEW_COLLAPSE_DIRECTORIES 12305
    +#define IDM_HOTLIST_VIEW_COLLAPSE_ADDRESSES 12306
    +#define IDM_HOTLIST_LAUNCH 12400
    +
    +#define IDR_MENU_COOKIES 13000
    +#define IDM_COOKIES_EDIT_DELETE_SELECTED 13101
    +#define IDM_COOKIES_EDIT_DELETE_ALL 13102
    +#define IDM_COOKIES_EDIT_SELECT_ALL 13103
    +#define IDM_COOKIES_EDIT_CLEAR_SELECTION 13104
    +#define IDM_COOKIES_VIEW_EXPAND_ALL 13201
    +#define IDM_COOKIES_VIEW_EXPAND_DOMAINS 13202
    +#define IDM_COOKIES_VIEW_EXPAND_COOKIES 13203
    +#define IDM_COOKIES_VIEW_COLLAPSE_ALL 13204
    +#define IDM_COOKIES_VIEW_COLLAPSE_DOMAINS 13205
    +#define IDM_COOKIES_VIEW_COLLAPSE_COOKIES 13206
    +
    +#define IDR_MENU_GLOBAL_HISTORY 14000
    +#define IDM_GLOBAL_HISTORY_FILE_EXPORT 14101
    +#define IDM_GLOBAL_HISTORY_EDIT_DELETE_SELECTED 14201
    +#define IDM_GLOBAL_HISTORY_EDIT_DELETE_ALL 14202
    +#define IDM_GLOBAL_HISTORY_EDIT_SELECT_ALL 14203
    +#define IDM_GLOBAL_HISTORY_EDIT_CLEAR_SELECTION 14204
    +#define IDM_GLOBAL_HISTORY_VIEW_EXPAND_ALL 14301
    +#define IDM_GLOBAL_HISTORY_VIEW_EXPAND_DIRECTORIES 14302
    +#define IDM_GLOBAL_HISTORY_VIEW_EXPAND_ADDRESSES 14303
    +#define IDM_GLOBAL_HISTORY_VIEW_COLLAPSE_ALL 14304
    +#define IDM_GLOBAL_HISTORY_VIEW_COLLAPSE_DIRECTORIES 14305
    +#define IDM_GLOBAL_HISTORY_VIEW_COLLAPSE_ADDRESSES 14306
    +#define IDM_GLOBAL_HISTORY_LAUNCH 14401
    +
     #endif
    -- 
    2.30.2
    
    

-Relationships
+Relationships

-Notes
There are no notes attached to this issue.
+Notes

-Issue History
Date Modified Username Field Change
2022-02-18 22:27 Cameron Cawley New Issue
2022-02-18 22:27 Cameron Cawley File Added: 0001-windows-Add-menu-bars-to-the-hotlist-cookies-and-glo.patch
+Issue History