From f1a573079a6a0b6cf19a57bb744ebe88399f48b0 Mon Sep 17 00:00:00 2001 From: adelikat <adelikat@users.sf.net> Date: Fri, 15 May 2009 15:40:09 +0000 Subject: [PATCH] Win32 - applied patch from Hicoder ID: 2780499, Menu option for window always on top. --- desmume/src/windows/main.cpp | 19 +++++++++++++++ desmume/src/windows/resource.h | 1 + desmume/src/windows/resources.rc | 42 ++++++++++++++++++-------------- 3 files changed, 44 insertions(+), 18 deletions(-) diff --git a/desmume/src/windows/main.cpp b/desmume/src/windows/main.cpp index cf9200d05..82b16f5af 100644 --- a/desmume/src/windows/main.cpp +++ b/desmume/src/windows/main.cpp @@ -3479,6 +3479,25 @@ LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM ScaleScreen(1); } break; + case IDM_ALWAYS_ON_TOP: + { + LONG exStyle = GetWindowLong(MainWindow->getHWnd(), GWL_EXSTYLE); + UINT menuCheck = MF_BYCOMMAND; + HWND insertAfter = HWND_TOPMOST; + + + if(exStyle & WS_EX_TOPMOST) + { + menuCheck |= MF_UNCHECKED; + insertAfter = HWND_NOTOPMOST; + } + else + menuCheck |= MF_CHECKED; + + CheckMenuItem(mainMenu, IDM_ALWAYS_ON_TOP, menuCheck); + SetWindowPos(MainWindow->getHWnd(), insertAfter, 0,0,0,0, SWP_NOMOVE | SWP_NOSIZE); + } + return 0; } } diff --git a/desmume/src/windows/resource.h b/desmume/src/windows/resource.h index 6e0148b88..ffd6c0695 100644 --- a/desmume/src/windows/resource.h +++ b/desmume/src/windows/resource.h @@ -492,6 +492,7 @@ #define IDC_FRAMELIMIT 40005 #define IDC_WINDOW1_5X 40006 #define IDM_WIFISETTINGS 40007 +#define IDM_ALWAYS_ON_TOP 40008 #define ID_VIEW_FRAMECOUNTER 40009 #define ID_VIEW_DISPLAYFPS 40010 #define ID_VIEW_DISPLAYINPUT 40011 diff --git a/desmume/src/windows/resources.rc b/desmume/src/windows/resources.rc index 747b542de..64687d4f9 100644 --- a/desmume/src/windows/resources.rc +++ b/desmume/src/windows/resources.rc @@ -101,6 +101,8 @@ MENU_PRINCIPAL MENU MENUITEM "2x", IDC_WINDOW2X MENUITEM "3x", IDC_WINDOW3X MENUITEM "4x", IDC_WINDOW4X + MENUITEM SEPARATOR + MENUITEM "Always On Top", IDM_ALWAYS_ON_TOP } POPUP "Screen separation" { @@ -277,6 +279,8 @@ MENU_PRINCIPAL MENU MENUITEM "2x", IDC_WINDOW2X MENUITEM "3x", IDC_WINDOW3X MENUITEM "4x", IDC_WINDOW4X + MENUITEM SEPARATOR + MENUITEM "Always On Top", IDM_ALWAYS_ON_TOP } POPUP "Screen separation" { @@ -450,6 +454,8 @@ MENU_PRINCIPAL MENU MENUITEM "2x", IDC_WINDOW2X MENUITEM "3x", IDC_WINDOW3X MENUITEM "4x", IDC_WINDOW4X + MENUITEM SEPARATOR + MENUITEM "Always On Top", IDM_ALWAYS_ON_TOP } POPUP "S�paration �crans" { @@ -3068,8 +3074,8 @@ CAPTION "OAM Fremviser" FONT 8, "MS Sans Serif", 0, 0, 1 { COMBOBOX IDC_SCR_SELECT, 4, 4, 90, 14, WS_TABSTOP | WS_TABSTOP | CBS_DROPDOWNLIST - SCROLLBAR IDC_SCROLLER, 48, 20, 20, 14, NOT WS_VISIBLE | NOT WS_VISIBLE - LTEXT "Mode :", IDC_STATIC, 4, 36, 45, 8, SS_LEFT + SCROLLBAR IDC_SCROLLER, 48, 20, 20, 14, NOT WS_VISIBLE + LTEXT "Mode :", IDC_STATIC, 4, 36, 45, 8, SS_LEFT LTEXT "Tile :", IDC_STATIC, 4, 46, 45, 8, SS_LEFT LTEXT "Palette :", IDC_STATIC, 4, 56, 45, 8, SS_LEFT LTEXT "Prio :", IDC_STATIC, 4, 66, 45, 8, SS_LEFT @@ -3104,8 +3110,8 @@ CAPTION "OAM Viewer" FONT 8, "MS Sans Serif", 0, 0, 1 { COMBOBOX IDC_SCR_SELECT, 4, 4, 90, 14, WS_TABSTOP | WS_TABSTOP | CBS_DROPDOWNLIST - SCROLLBAR IDC_SCROLLER, 48, 20, 20, 14, NOT WS_VISIBLE | NOT WS_VISIBLE - LTEXT "Mode :", IDC_STATIC, 4, 36, 45, 8, SS_LEFT + SCROLLBAR IDC_SCROLLER, 48, 20, 20, 14, NOT WS_VISIBLE + LTEXT "Mode :", IDC_STATIC, 4, 36, 45, 8, SS_LEFT LTEXT "Tile :", IDC_STATIC, 4, 46, 45, 8, SS_LEFT LTEXT "Palette :", IDC_STATIC, 4, 56, 45, 8, SS_LEFT LTEXT "Prio :", IDC_STATIC, 4, 66, 45, 8, SS_LEFT @@ -3140,8 +3146,8 @@ CAPTION "OAM Viewer" FONT 8, "MS Sans Serif", 0, 0, 1 { COMBOBOX IDC_SCR_SELECT, 4, 4, 90, 14, WS_TABSTOP | WS_TABSTOP | CBS_DROPDOWNLIST - SCROLLBAR IDC_SCROLLER, 48, 20, 20, 14, NOT WS_VISIBLE | NOT WS_VISIBLE - LTEXT "Mode :", IDC_STATIC, 4, 36, 45, 8, SS_LEFT + SCROLLBAR IDC_SCROLLER, 48, 20, 20, 14, NOT WS_VISIBLE + LTEXT "Mode :", IDC_STATIC, 4, 36, 45, 8, SS_LEFT LTEXT "Tile :", IDC_STATIC, 4, 46, 45, 8, SS_LEFT LTEXT "Palette :", IDC_STATIC, 4, 56, 45, 8, SS_LEFT LTEXT "Prio :", IDC_STATIC, 4, 66, 45, 8, SS_LEFT @@ -3177,8 +3183,8 @@ FONT 8, "MS Sans Serif", 0, 0, 1 { COMBOBOX IDC_PAL_SELECT, 15, 3, 90, 14, WS_TABSTOP | WS_TABSTOP | CBS_DROPDOWN LTEXT "Pal : 0", IDC_PALNUM, 3, 21, 25, 8, SS_LEFT - SCROLLBAR IDC_SCROLLER, 30, 18, 20, 14, NOT WS_VISIBLE | NOT WS_VISIBLE - PUSHBUTTON "&Luk", IDC_FERMER, 35, 169, 50, 14, BS_PUSHBUTTON + SCROLLBAR IDC_SCROLLER, 30, 18, 20, 14, NOT WS_VISIBLE + PUSHBUTTON "&Luk", IDC_FERMER, 35, 169, 50, 14, BS_PUSHBUTTON AUTOCHECKBOX "&Auto-update", IDC_AUTO_UPDATE, 13, 150, 54, 14, BS_AUTOCHECKBOX EDITTEXT IDC_AUTO_UPDATE_SECS, 68, 151, 12, 14, WS_DISABLED | ES_AUTOHSCROLL | ES_READONLY CONTROL "", IDC_AUTO_UPDATE_SPIN, UPDOWN_CLASS, WS_DISABLED | UDS_ARROWKEYS | UDS_AUTOBUDDY | UDS_SETBUDDYINT, 80, 151, 11, 14 @@ -3195,8 +3201,8 @@ FONT 8, "MS Sans Serif", 0, 0, 1 { COMBOBOX IDC_PAL_SELECT, 15, 3, 90, 14, WS_TABSTOP | WS_TABSTOP | CBS_DROPDOWN LTEXT "Pal : 0", IDC_PALNUM, 3, 21, 25, 8, SS_LEFT - SCROLLBAR IDC_SCROLLER, 30, 18, 20, 14, NOT WS_VISIBLE | NOT WS_VISIBLE - PUSHBUTTON "&Close", IDC_FERMER, 35, 169, 50, 14, BS_PUSHBUTTON + SCROLLBAR IDC_SCROLLER, 30, 18, 20, 14, NOT WS_VISIBLE + PUSHBUTTON "&Close", IDC_FERMER, 35, 169, 50, 14, BS_PUSHBUTTON AUTOCHECKBOX "&Auto-update", IDC_AUTO_UPDATE, 13, 150, 54, 14, BS_AUTOCHECKBOX EDITTEXT IDC_AUTO_UPDATE_SECS, 68, 151, 12, 14, WS_DISABLED | ES_AUTOHSCROLL | ES_READONLY CONTROL "", IDC_AUTO_UPDATE_SPIN, UPDOWN_CLASS, WS_DISABLED | UDS_ARROWKEYS | UDS_AUTOBUDDY | UDS_SETBUDDYINT, 80, 151, 11, 14 @@ -3213,8 +3219,8 @@ FONT 8, "MS Sans Serif", 0, 0, 1 { COMBOBOX IDC_PAL_SELECT, 15, 3, 90, 14, WS_TABSTOP | WS_TABSTOP | CBS_DROPDOWN LTEXT "Pal : 0", IDC_PALNUM, 3, 21, 25, 8, SS_LEFT - SCROLLBAR IDC_SCROLLER, 30, 18, 20, 14, NOT WS_VISIBLE | NOT WS_VISIBLE - PUSHBUTTON "&Fermer", IDC_FERMER, 35, 169, 50, 14, BS_PUSHBUTTON + SCROLLBAR IDC_SCROLLER, 30, 18, 20, 14, NOT WS_VISIBLE + PUSHBUTTON "&Fermer", IDC_FERMER, 35, 169, 50, 14, BS_PUSHBUTTON AUTOCHECKBOX "&Auto-update", IDC_AUTO_UPDATE, 13, 150, 54, 14, BS_AUTOCHECKBOX EDITTEXT IDC_AUTO_UPDATE_SECS, 68, 151, 12, 14, WS_DISABLED | ES_AUTOHSCROLL | ES_READONLY CONTROL "", IDC_AUTO_UPDATE_SPIN, UPDOWN_CLASS, WS_DISABLED | UDS_ARROWKEYS | UDS_AUTOBUDDY | UDS_SETBUDDYINT, 80, 151, 11, 14 @@ -3398,8 +3404,8 @@ FONT 8, "MS Sans Serif", 0, 0, 1 { COMBOBOX IDC_PAL_SELECT, 4, 13, 90, 14, WS_TABSTOP | WS_TABSTOP | CBS_DROPDOWN LTEXT "Pal : 0", IDC_PALNUM, 4, 31, 25, 8, SS_LEFT - SCROLLBAR IDC_SCROLLER, 30, 28, 20, 14, NOT WS_VISIBLE | NOT WS_VISIBLE - COMBOBOX IDC_MEM_SELECT, 4, 50, 90, 14, WS_TABSTOP | WS_TABSTOP | CBS_DROPDOWN + SCROLLBAR IDC_SCROLLER, 30, 28, 20, 14, NOT WS_VISIBLE + COMBOBOX IDC_MEM_SELECT, 4, 50, 90, 14, WS_TABSTOP | WS_TABSTOP | CBS_DROPDOWN AUTORADIOBUTTON "Bitmap", IDC_BITMAP, 4, 68, 35, 10, WS_GROUP | WS_TABSTOP | BS_AUTORADIOBUTTON AUTORADIOBUTTON "256 Farver", IDC_256COUL, 4, 80, 55, 10, WS_TABSTOP | BS_AUTORADIOBUTTON AUTORADIOBUTTON "16 Farver", IDC_16COUL, 4, 92, 50, 10, WS_TABSTOP | BS_AUTORADIOBUTTON @@ -3423,8 +3429,8 @@ FONT 8, "MS Sans Serif", 0, 0, 1 { COMBOBOX IDC_PAL_SELECT, 4, 13, 90, 14, WS_TABSTOP | WS_TABSTOP | CBS_DROPDOWN LTEXT "Pal : 0", IDC_PALNUM, 4, 31, 25, 8, SS_LEFT - SCROLLBAR IDC_SCROLLER, 30, 28, 20, 14, NOT WS_VISIBLE | NOT WS_VISIBLE - COMBOBOX IDC_MEM_SELECT, 4, 50, 90, 14, WS_TABSTOP | WS_TABSTOP | CBS_DROPDOWN + SCROLLBAR IDC_SCROLLER, 30, 28, 20, 14, NOT WS_VISIBLE + COMBOBOX IDC_MEM_SELECT, 4, 50, 90, 14, WS_TABSTOP | WS_TABSTOP | CBS_DROPDOWN AUTORADIOBUTTON "Bitmap", IDC_BITMAP, 4, 68, 35, 10, WS_GROUP | WS_TABSTOP | BS_AUTORADIOBUTTON AUTORADIOBUTTON "256 colors", IDC_256COUL, 4, 80, 55, 10, WS_TABSTOP | BS_AUTORADIOBUTTON AUTORADIOBUTTON "16 colors", IDC_16COUL, 4, 92, 50, 10, WS_TABSTOP | BS_AUTORADIOBUTTON @@ -3448,8 +3454,8 @@ FONT 8, "MS Sans Serif", 0, 0, 1 { COMBOBOX IDC_PAL_SELECT, 4, 13, 90, 14, WS_TABSTOP | WS_TABSTOP | CBS_DROPDOWN LTEXT "Pal : 0", IDC_PALNUM, 4, 31, 25, 8, SS_LEFT - SCROLLBAR IDC_SCROLLER, 30, 28, 20, 14, NOT WS_VISIBLE | NOT WS_VISIBLE - COMBOBOX IDC_MEM_SELECT, 4, 50, 90, 14, WS_TABSTOP | WS_TABSTOP | CBS_DROPDOWN + SCROLLBAR IDC_SCROLLER, 30, 28, 20, 14, NOT WS_VISIBLE + COMBOBOX IDC_MEM_SELECT, 4, 50, 90, 14, WS_TABSTOP | WS_TABSTOP | CBS_DROPDOWN AUTORADIOBUTTON "Bitmap", IDC_BITMAP, 4, 68, 35, 10, WS_GROUP | WS_TABSTOP | BS_AUTORADIOBUTTON AUTORADIOBUTTON "256 couleurs", IDC_256COUL, 4, 80, 55, 10, WS_TABSTOP | BS_AUTORADIOBUTTON AUTORADIOBUTTON "16 couleurs", IDC_16COUL, 4, 92, 50, 10, WS_TABSTOP | BS_AUTORADIOBUTTON