summaryrefslogtreecommitdiffstats
path: root/docs/release/src/osd/winui/tabview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'docs/release/src/osd/winui/tabview.cpp')
-rw-r--r--docs/release/src/osd/winui/tabview.cpp157
1 files changed, 46 insertions, 111 deletions
diff --git a/docs/release/src/osd/winui/tabview.cpp b/docs/release/src/osd/winui/tabview.cpp
index d5971275819..89f3ffb56ba 100644
--- a/docs/release/src/osd/winui/tabview.cpp
+++ b/docs/release/src/osd/winui/tabview.cpp
@@ -1,25 +1,15 @@
// For licensing and usage information, read docs/winui_license.txt
+// MASTER
//****************************************************************************
// standard windows headers
#include <windows.h>
#include <windowsx.h>
-#include <shellapi.h>
#include <commctrl.h>
-#include <commdlg.h>
-#include <wingdi.h>
// MAME/MAMEUI headers
-#include "winui.h"
#include "tabview.h"
-#include "emu.h"
#include "mui_util.h"
-#include "strconv.h"
-
-
-#ifdef __GNUC__
-#pragma GCC diagnostic ignored "-Wunused-but-set-variable"
-#endif
struct TabViewInfo
@@ -33,21 +23,18 @@ struct TabViewInfo
static struct TabViewInfo *GetTabViewInfo(HWND hWnd)
{
- LONG_PTR l;
- l = GetWindowLongPtr(hWnd, GWLP_USERDATA);
+ LONG_PTR l = GetWindowLongPtr(hWnd, GWLP_USERDATA);
return (struct TabViewInfo *) l;
}
-static LRESULT CallParentWndProc(WNDPROC pfnParentWndProc,
- HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
+static LRESULT CallParentWndProc(WNDPROC pfnParentWndProc, HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
- LRESULT rc;
-
if (!pfnParentWndProc)
pfnParentWndProc = GetTabViewInfo(hWnd)->pfnParentWndProc;
+ LRESULT rc;
if (IsWindowUnicode(hWnd))
rc = CallWindowProcW(pfnParentWndProc, hWnd, message, wParam, lParam);
else
@@ -60,12 +47,9 @@ static LRESULT CallParentWndProc(WNDPROC pfnParentWndProc,
static LRESULT CALLBACK TabViewWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
struct TabViewInfo *pTabViewInfo;
- WNDPROC pfnParentWndProc;
- BOOL bHandled = FALSE;
- LRESULT rc = 0;
-
pTabViewInfo = GetTabViewInfo(hWnd);
- pfnParentWndProc = pTabViewInfo->pfnParentWndProc;
+
+ WNDPROC pfnParentWndProc = pTabViewInfo->pfnParentWndProc;
switch(message)
{
@@ -76,6 +60,9 @@ static LRESULT CALLBACK TabViewWndProc(HWND hWnd, UINT message, WPARAM wParam, L
break;
}
+ LRESULT rc = 0;
+ // this is weird...
+ BOOL bHandled = false;
if (!bHandled)
rc = CallParentWndProc(pfnParentWndProc, hWnd, message, wParam, lParam);
@@ -96,12 +83,11 @@ static LRESULT CALLBACK TabViewWndProc(HWND hWnd, UINT message, WPARAM wParam, L
static int TabView_GetTabFromTabIndex(HWND hwndTabView, int tab_index)
{
int shown_tabs = -1;
- int i;
struct TabViewInfo *pTabViewInfo;
pTabViewInfo = GetTabViewInfo(hwndTabView);
- for (i = 0; i < pTabViewInfo->nTabCount; i++)
+ for (int i = 0; i < pTabViewInfo->nTabCount; i++)
{
if (!pTabViewInfo->pCallbacks->pfnGetShowTab || pTabViewInfo->pCallbacks->pfnGetShowTab(i))
{
@@ -110,7 +96,7 @@ static int TabView_GetTabFromTabIndex(HWND hwndTabView, int tab_index)
return i;
}
}
- dprintf("invalid tab index %i\n", tab_index);
+ printf("invalid tab index %i\n", tab_index);
return 0;
}
@@ -119,40 +105,8 @@ static int TabView_GetTabFromTabIndex(HWND hwndTabView, int tab_index)
int TabView_GetCurrentTab(HWND hwndTabView)
{
struct TabViewInfo *pTabViewInfo;
- LPCSTR pszTab = NULL;
- LPCSTR pszThatTab;
- int i, nTab = -1;
-
pTabViewInfo = GetTabViewInfo(hwndTabView);
-
- if (pTabViewInfo->pCallbacks->pfnGetCurrentTab)
- pszTab = pTabViewInfo->pCallbacks->pfnGetCurrentTab();
-
- if (pszTab)
- {
- if (pTabViewInfo->pCallbacks->pfnGetTabShortName)
- {
- for (i = 0; i < pTabViewInfo->nTabCount; i++)
- {
- pszThatTab = pTabViewInfo->pCallbacks->pfnGetTabShortName(i);
- if (pszThatTab && !core_stricmp(pszTab, pszThatTab))
- {
- nTab = i;
- break;
- }
- }
- }
- if (nTab < 0)
- {
- nTab = 0;
- sscanf(pszTab, "%d", &nTab);
- }
- }
- else
- {
- nTab = 0;
- }
- return nTab;
+ return pTabViewInfo->pCallbacks->pfnGetCurrentTab();
}
@@ -160,24 +114,8 @@ int TabView_GetCurrentTab(HWND hwndTabView)
void TabView_SetCurrentTab(HWND hwndTabView, int nTab)
{
struct TabViewInfo *pTabViewInfo;
- LPCSTR pszName;
- char szBuffer[16];
-
pTabViewInfo = GetTabViewInfo(hwndTabView);
-
- if (pTabViewInfo->pCallbacks->pfnGetTabShortName)
- {
- pszName = pTabViewInfo->pCallbacks->pfnGetTabShortName(nTab);
- }
- else
- {
- snprintf(szBuffer, ARRAY_LENGTH(szBuffer),
- "%d", nTab);
- pszName = szBuffer;
- }
-
- if (pTabViewInfo->pCallbacks->pfnSetCurrentTab)
- pTabViewInfo->pCallbacks->pfnSetCurrentTab(pszName);
+ pTabViewInfo->pCallbacks->pfnSetCurrentTab(nTab);
}
@@ -185,14 +123,12 @@ void TabView_SetCurrentTab(HWND hwndTabView, int nTab)
static int TabView_GetCurrentTabIndex(HWND hwndTabView)
{
int shown_tabs = 0;
- int i;
- int nCurrentTab;
struct TabViewInfo *pTabViewInfo;
pTabViewInfo = GetTabViewInfo(hwndTabView);
- nCurrentTab = TabView_GetCurrentTab(hwndTabView);
+ int nCurrentTab = TabView_GetCurrentTab(hwndTabView);
- for (i = 0; i < pTabViewInfo->nTabCount; i++)
+ for (int i = 0; i < pTabViewInfo->nTabCount; i++)
{
if (i == nCurrentTab)
break;
@@ -207,31 +143,28 @@ static int TabView_GetCurrentTabIndex(HWND hwndTabView)
void TabView_UpdateSelection(HWND hwndTabView)
{
- HRESULT res;
- res = TabCtrl_SetCurSel(hwndTabView, TabView_GetCurrentTabIndex(hwndTabView));
+ (void)TabCtrl_SetCurSel(hwndTabView, TabView_GetCurrentTabIndex(hwndTabView));
}
BOOL TabView_HandleNotify(LPNMHDR lpNmHdr)
{
- HWND hwndTabView;
struct TabViewInfo *pTabViewInfo;
- BOOL bResult = FALSE;
- int nTabIndex, nTab;
+ BOOL bResult = false;
- hwndTabView = lpNmHdr->hwndFrom;
+ HWND hwndTabView = lpNmHdr->hwndFrom;
pTabViewInfo = GetTabViewInfo(hwndTabView);
switch (lpNmHdr->code)
{
case TCN_SELCHANGE:
- nTabIndex = TabCtrl_GetCurSel(hwndTabView);
- nTab = TabView_GetTabFromTabIndex(hwndTabView, nTabIndex);
+ int nTabIndex = TabCtrl_GetCurSel(hwndTabView);
+ int nTab = TabView_GetTabFromTabIndex(hwndTabView, nTabIndex);
TabView_SetCurrentTab(hwndTabView, nTab);
if (pTabViewInfo->pCallbacks->pfnOnSelectionChanged)
pTabViewInfo->pCallbacks->pfnOnSelectionChanged();
- bResult = TRUE;
+ bResult = true;
break;
}
return bResult;
@@ -242,13 +175,12 @@ BOOL TabView_HandleNotify(LPNMHDR lpNmHdr)
void TabView_CalculateNextTab(HWND hwndTabView)
{
struct TabViewInfo *pTabViewInfo;
- int i;
int nCurrentTab;
pTabViewInfo = GetTabViewInfo(hwndTabView);
// at most loop once through all options
- for (i = 0; i < pTabViewInfo->nTabCount; i++)
+ for (int i = 0; i < pTabViewInfo->nTabCount; i++)
{
nCurrentTab = TabView_GetCurrentTab(hwndTabView);
TabView_SetCurrentTab(hwndTabView, (nCurrentTab + 1) % pTabViewInfo->nTabCount);
@@ -263,73 +195,76 @@ void TabView_CalculateNextTab(HWND hwndTabView)
}
-
void TabView_Reset(HWND hwndTabView)
{
+ printf("TabView_Reset: A\n");fflush(stdout);
struct TabViewInfo *pTabViewInfo;
- TC_ITEM tci;
- int i;
- TCHAR* t_text;
- HRESULT res;
- BOOL b_res;
-
pTabViewInfo = GetTabViewInfo(hwndTabView);
- b_res = TabCtrl_DeleteAllItems(hwndTabView);
+ printf("TabView_Reset: B\n");fflush(stdout);
+ BOOL b_res = TabCtrl_DeleteAllItems(hwndTabView);
+ b_res++;
+ TC_ITEM tci;
memset(&tci, 0, sizeof(tci));
tci.mask = TCIF_TEXT;
tci.cchTextMax = 20;
- for (i = 0; i < pTabViewInfo->nTabCount; i++)
+ printf("TabView_Reset: C\n");fflush(stdout);
+ for (int i = 0; i < pTabViewInfo->nTabCount; i++)
{
if (!pTabViewInfo->pCallbacks->pfnGetShowTab || pTabViewInfo->pCallbacks->pfnGetShowTab(i))
{
- t_text = ui_wstring_from_utf8(pTabViewInfo->pCallbacks->pfnGetTabLongName(i));
+ TCHAR* t_text = ui_wstring_from_utf8(pTabViewInfo->pCallbacks->pfnGetTabLongName(i));
if( !t_text )
return;
tci.pszText = t_text;
- res = TabCtrl_InsertItem(hwndTabView, i, &tci);
+ HRESULT res = TabCtrl_InsertItem(hwndTabView, i, &tci);
+ res++;
free(t_text);
}
}
+ printf("TabView_Reset: E\n");fflush(stdout);
TabView_UpdateSelection(hwndTabView);
+ printf("TabView_Reset: Finished\n");fflush(stdout);
}
-
BOOL SetupTabView(HWND hwndTabView, const struct TabViewOptions *pOptions)
{
+ //assert(hwndTabView);
+ printf("SetupTabView: A\n");fflush(stdout);
struct TabViewInfo *pTabViewInfo;
- LONG_PTR l;
- BOOL bShowTabView;
-
- assert(hwndTabView);
// Allocate the list view struct
pTabViewInfo = (struct TabViewInfo *) malloc(sizeof(struct TabViewInfo));
if (!pTabViewInfo)
- return FALSE;
+ return false;
// And fill it out
+ printf("SetupTabView: B\n");fflush(stdout);
memset(pTabViewInfo, 0, sizeof(*pTabViewInfo));
pTabViewInfo->pCallbacks = pOptions->pCallbacks;
pTabViewInfo->nTabCount = pOptions->nTabCount;
// Hook in our wndproc and userdata pointer
- l = GetWindowLongPtr(hwndTabView, GWLP_WNDPROC);
+ printf("SetupTabView: C\n");fflush(stdout);
+ LONG_PTR l = GetWindowLongPtr(hwndTabView, GWLP_WNDPROC);
pTabViewInfo->pfnParentWndProc = (WNDPROC) l;
SetWindowLongPtr(hwndTabView, GWLP_USERDATA, (LONG_PTR) pTabViewInfo);
SetWindowLongPtr(hwndTabView, GWLP_WNDPROC, (LONG_PTR) TabViewWndProc);
- bShowTabView = pTabViewInfo->pCallbacks->pfnGetShowTabCtrl ?
- pTabViewInfo->pCallbacks->pfnGetShowTabCtrl() : TRUE;
+ printf("SetupTabView: D\n");fflush(stdout);
+ BOOL bShowTabView = pTabViewInfo->pCallbacks->pfnGetShowTabCtrl ? pTabViewInfo->pCallbacks->pfnGetShowTabCtrl() : true;
+ printf("SetupTabView: E\n");fflush(stdout);
ShowWindow(hwndTabView, bShowTabView ? SW_SHOW : SW_HIDE);
+ printf("SetupTabView: F\n");fflush(stdout);
TabView_Reset(hwndTabView);
if (pTabViewInfo->pCallbacks->pfnOnSelectionChanged)
pTabViewInfo->pCallbacks->pfnOnSelectionChanged();
- return TRUE;
+ printf("SetupTabView: Finished\n");fflush(stdout);
+ return true;
}