2025-11-28 00:35:46 +09:00

70 lines
1.7 KiB
C++

// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
#pragma once
#include "resource.h"
#include "tabwnd.h"
extern HINSTANCE g_hInstance;
#define RINGWIDTH 10
#define MAXRING 5
#define MAXTABS 20
class CMainDlg
{
public:
CMainDlg() : _hwnd(NULL), _iDrag(0), _nNextTab(1), _cTabs(0), _pTBL(NULL) {};
~CMainDlg();
HRESULT Initialize();
INT_PTR DoModal();
HWND GetHwnd() { return _hwnd; }
void RegisterTab(CTabWnd *pTabWnd);
void UnregisterTab(CTabWnd *pTabWnd);
void ActivateTab(CTabWnd *pTabWnd);
void DestroyTab(CTabWnd *pTabWnd);
protected:
HWND _hwnd;
int _iDrag;
int _nNextTab;
CTabWnd* _apTabs[MAXTABS];
int _cTabs;
ITaskbarList4* _pTBL;
void _CleanUp();
int _GetSelectedTab();
int _FindTab(CTabWnd *pTabWnd);
// Listbox maintenance functions
void _LBInsertTab(int iTab);
void _LBRemoveTab(int iTab);
void _LBSelectTab(int iTab);
// Tab maintenance functions
void _RemoveSelectedTab() { _RemoveTab(_GetSelectedTab()); }
void _InvalidateSelectedTab() { _InvalidateTab(_GetSelectedTab()); }
void _ActivateSelectedTab();
void _AddTab();
void _RemoveTab(int iTab);
void _MoveTab(int iTab, int iTabTo);
void _MoveTabByOffset(int iTab, int iTabOffsetTo);
void _InvalidateTab(int iTab);
void _DeactivateTab();
static INT_PTR CALLBACK _DlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
INT_PTR DlgProc(UINT msg, WPARAM wParam, LPARAM lParam);
};