mirror of
https://gitlab.xiph.org/xiph/icecast-server.git
synced 2025-02-02 15:07:36 -05:00
Remove ResizableDialog logic from the UI due to possible license conflicts..
svn path=/icecast/trunk/icecast/; revision=8066
This commit is contained in:
parent
ead216d40a
commit
02471ae68d
@ -66,7 +66,7 @@ BOOL CConfigTab::OnInitDialog()
|
|||||||
CTabPageSSL::OnInitDialog();
|
CTabPageSSL::OnInitDialog();
|
||||||
|
|
||||||
// TODO: Add extra initialization here
|
// TODO: Add extra initialization here
|
||||||
AddAnchor(IDC_CONFIG, TOP_LEFT, BOTTOM_RIGHT);
|
// AddAnchor(IDC_CONFIG, TOP_LEFT, BOTTOM_RIGHT);
|
||||||
|
|
||||||
return TRUE; // return TRUE unless you set the focus to a control
|
return TRUE; // return TRUE unless you set the focus to a control
|
||||||
// EXCEPTION: OCX Property Pages should return FALSE
|
// EXCEPTION: OCX Property Pages should return FALSE
|
||||||
|
@ -15,7 +15,7 @@ Class3=CAboutDlg
|
|||||||
ResourceCount=10
|
ResourceCount=10
|
||||||
Resource1=IDD_SSTATUS
|
Resource1=IDD_SSTATUS
|
||||||
Resource2=IDR_MAINFRAME
|
Resource2=IDR_MAINFRAME
|
||||||
Resource3=IDD_ABOUTBOX
|
Resource3=IDD_STATSDIALOG
|
||||||
Resource4=IDR_MENU2
|
Resource4=IDR_MENU2
|
||||||
Class4=CStatus
|
Class4=CStatus
|
||||||
Resource5=IDR_TRAY
|
Resource5=IDR_TRAY
|
||||||
@ -25,7 +25,7 @@ Resource6=IDR_MENU4
|
|||||||
Resource7=IDD_ICECAST2WIN_DIALOG
|
Resource7=IDD_ICECAST2WIN_DIALOG
|
||||||
Resource8=IDD_CONFIGDIALOG
|
Resource8=IDD_CONFIGDIALOG
|
||||||
Resource9=IDR_MENU3
|
Resource9=IDR_MENU3
|
||||||
Resource10=IDD_STATSDIALOG
|
Resource10=IDD_ABOUTBOX
|
||||||
|
|
||||||
[CLS:CIcecast2winApp]
|
[CLS:CIcecast2winApp]
|
||||||
Type=0
|
Type=0
|
||||||
|
@ -74,15 +74,14 @@ BEGIN
|
|||||||
DEFPUSHBUTTON "OK",IDOK,178,7,50,14,WS_GROUP
|
DEFPUSHBUTTON "OK",IDOK,178,7,50,14,WS_GROUP
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_ICECAST2WIN_DIALOG DIALOGEX 0, 0, 318, 249
|
IDD_ICECAST2WIN_DIALOG DIALOGEX 0, 0, 326, 259
|
||||||
STYLE WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION |
|
STYLE WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION |
|
||||||
WS_SYSMENU | WS_THICKFRAME
|
WS_SYSMENU | WS_THICKFRAME
|
||||||
EXSTYLE WS_EX_APPWINDOW
|
EXSTYLE WS_EX_APPWINDOW
|
||||||
CAPTION "icecast2"
|
|
||||||
MENU IDR_MENU4
|
MENU IDR_MENU4
|
||||||
FONT 8, "MS Sans Serif"
|
FONT 8, "MS Sans Serif"
|
||||||
BEGIN
|
BEGIN
|
||||||
CONTROL "Tab1",IDC_MAINTAB,"SysTabControl32",0x0,0,48,318,201
|
CONTROL "Tab1",IDC_MAINTAB,"SysTabControl32",0x0,0,49,326,210
|
||||||
PUSHBUTTON "Start Server",IDC_START,17,31,56,14
|
PUSHBUTTON "Start Server",IDC_START,17,31,56,14
|
||||||
CONTROL "Start Server on Application Startup",IDC_AUTOSTART,
|
CONTROL "Start Server on Application Startup",IDC_AUTOSTART,
|
||||||
"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,76,
|
"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,76,
|
||||||
@ -92,8 +91,8 @@ BEGIN
|
|||||||
WS_EX_CLIENTEDGE
|
WS_EX_CLIENTEDGE
|
||||||
CTEXT "Server Status",IDC_STATIC_SS,172,23,65,10,
|
CTEXT "Server Status",IDC_STATIC_SS,172,23,65,10,
|
||||||
SS_CENTERIMAGE
|
SS_CENTERIMAGE
|
||||||
CONTROL 150,IDC_STATICBLACK,"Static",SS_BITMAP,116,0,200,20
|
CONTROL 150,IDC_STATICBLACK,"Static",SS_BITMAP,116,0,214,20
|
||||||
PUSHBUTTON "Hide To Systray",IDC_HIDESYSTRAY,257,22,58,12
|
PUSHBUTTON "Hide To Systray",IDC_HIDESYSTRAY,262,22,58,12
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_SSTATUS DIALOG DISCARDABLE 0, 0, 320, 210
|
IDD_SSTATUS DIALOG DISCARDABLE 0, 0, 320, 210
|
||||||
@ -103,10 +102,10 @@ BEGIN
|
|||||||
LTEXT "",IDC_FILLER2,0,199,319,11
|
LTEXT "",IDC_FILLER2,0,199,319,11
|
||||||
CONTROL "List1",IDC_GLOBALSTAT_LIST,"SysListView32",LVS_REPORT |
|
CONTROL "List1",IDC_GLOBALSTAT_LIST,"SysListView32",LVS_REPORT |
|
||||||
WS_BORDER | WS_TABSTOP,9,34,300,147
|
WS_BORDER | WS_TABSTOP,9,34,300,147
|
||||||
CTEXT "Global Statistics",IDC_STATIC_GS,9,6,300,10
|
LTEXT "Global Statistics",IDC_STATIC_GS,9,6,300,10
|
||||||
LTEXT "Server Has Been Running For ",IDC_STATIC_RUN,46,184,100,
|
LTEXT "Server Has Been Running For ",IDC_STATIC_RUN,10,19,109,
|
||||||
8
|
8
|
||||||
LTEXT "",IDC_RUNNINGFOR,149,184,156,8
|
LTEXT "",IDC_RUNNINGFOR,121,19,156,8
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_CONFIGDIALOG DIALOG DISCARDABLE 0, 0, 320, 210
|
IDD_CONFIGDIALOG DIALOG DISCARDABLE 0, 0, 320, 210
|
||||||
@ -122,11 +121,10 @@ STYLE WS_CHILD
|
|||||||
FONT 8, "MS Sans Serif"
|
FONT 8, "MS Sans Serif"
|
||||||
BEGIN
|
BEGIN
|
||||||
CONTROL "List1",IDC_STATSLIST,"SysListView32",LVS_REPORT |
|
CONTROL "List1",IDC_STATSLIST,"SysListView32",LVS_REPORT |
|
||||||
WS_BORDER | WS_TABSTOP,142,34,149,160
|
WS_BORDER | WS_TABSTOP,142,34,163,147
|
||||||
CONTROL "List2",IDC_SOURCELIST,"SysListView32",LVS_REPORT |
|
CONTROL "List2",IDC_SOURCELIST,"SysListView32",LVS_REPORT |
|
||||||
WS_BORDER | WS_TABSTOP,9,34,111,159
|
WS_BORDER | WS_TABSTOP,9,34,111,147
|
||||||
LTEXT "",IDC_FILLER1,0,199,320,11
|
LTEXT "Source Level Statistics",IDC_STATIC_SLS,9,7,300,10
|
||||||
CTEXT "Source Level Statistics",IDC_STATIC_SLS,9,7,300,10
|
|
||||||
LTEXT "Click source to view statistics",IDC_STATIC,18,25,111,8
|
LTEXT "Click source to view statistics",IDC_STATIC,18,25,111,8
|
||||||
END
|
END
|
||||||
|
|
||||||
|
@ -5,7 +5,6 @@
|
|||||||
#include "Icecast2win.h"
|
#include "Icecast2win.h"
|
||||||
#include "Icecast2winDlg.h"
|
#include "Icecast2winDlg.h"
|
||||||
#include <process.h>
|
#include <process.h>
|
||||||
#include "ResizableDialog.h"
|
|
||||||
|
|
||||||
#include <libxml/xmlmemory.h>
|
#include <libxml/xmlmemory.h>
|
||||||
#include <libxml/parser.h>
|
#include <libxml/parser.h>
|
||||||
@ -25,7 +24,6 @@ extern "C" {
|
|||||||
#include "stats.h"
|
#include "stats.h"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#include <afxinet.h>
|
#include <afxinet.h>
|
||||||
|
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
@ -165,7 +163,7 @@ void RemoveFromAdditionalGlobalStats(CString source, CString name) {
|
|||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
// CAboutDlg dialog used for App About
|
// CAboutDlg dialog used for App About
|
||||||
|
|
||||||
class CAboutDlg : public CResizableDialog
|
class CAboutDlg : public CDialog
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
CAboutDlg();
|
CAboutDlg();
|
||||||
@ -188,7 +186,7 @@ protected:
|
|||||||
DECLARE_MESSAGE_MAP()
|
DECLARE_MESSAGE_MAP()
|
||||||
};
|
};
|
||||||
|
|
||||||
CAboutDlg::CAboutDlg() : CResizableDialog(CAboutDlg::IDD)
|
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
|
||||||
{
|
{
|
||||||
//{{AFX_DATA_INIT(CAboutDlg)
|
//{{AFX_DATA_INIT(CAboutDlg)
|
||||||
//}}AFX_DATA_INIT
|
//}}AFX_DATA_INIT
|
||||||
@ -196,12 +194,12 @@ CAboutDlg::CAboutDlg() : CResizableDialog(CAboutDlg::IDD)
|
|||||||
|
|
||||||
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
|
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
|
||||||
{
|
{
|
||||||
CResizableDialog::DoDataExchange(pDX);
|
CDialog::DoDataExchange(pDX);
|
||||||
//{{AFX_DATA_MAP(CAboutDlg)
|
//{{AFX_DATA_MAP(CAboutDlg)
|
||||||
//}}AFX_DATA_MAP
|
//}}AFX_DATA_MAP
|
||||||
}
|
}
|
||||||
|
|
||||||
BEGIN_MESSAGE_MAP(CAboutDlg, CResizableDialog)
|
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
|
||||||
//{{AFX_MSG_MAP(CAboutDlg)
|
//{{AFX_MSG_MAP(CAboutDlg)
|
||||||
// No message handlers
|
// No message handlers
|
||||||
//}}AFX_MSG_MAP
|
//}}AFX_MSG_MAP
|
||||||
@ -212,7 +210,7 @@ END_MESSAGE_MAP()
|
|||||||
// CIcecast2winDlg dialog
|
// CIcecast2winDlg dialog
|
||||||
|
|
||||||
CIcecast2winDlg::CIcecast2winDlg(CWnd* pParent /*=NULL*/)
|
CIcecast2winDlg::CIcecast2winDlg(CWnd* pParent /*=NULL*/)
|
||||||
: CResizableDialog(CIcecast2winDlg::IDD, pParent)
|
: CDialog(CIcecast2winDlg::IDD, pParent)
|
||||||
{
|
{
|
||||||
//{{AFX_DATA_INIT(CIcecast2winDlg)
|
//{{AFX_DATA_INIT(CIcecast2winDlg)
|
||||||
m_AccessEdit = _T("");
|
m_AccessEdit = _T("");
|
||||||
@ -231,7 +229,7 @@ CIcecast2winDlg::CIcecast2winDlg(CWnd* pParent /*=NULL*/)
|
|||||||
|
|
||||||
void CIcecast2winDlg::DoDataExchange(CDataExchange* pDX)
|
void CIcecast2winDlg::DoDataExchange(CDataExchange* pDX)
|
||||||
{
|
{
|
||||||
CResizableDialog::DoDataExchange(pDX);
|
CDialog::DoDataExchange(pDX);
|
||||||
//{{AFX_DATA_MAP(CIcecast2winDlg)
|
//{{AFX_DATA_MAP(CIcecast2winDlg)
|
||||||
DDX_Control(pDX, IDC_STATIC_SS, m_SS);
|
DDX_Control(pDX, IDC_STATIC_SS, m_SS);
|
||||||
DDX_Control(pDX, IDC_SERVERSTATUS, m_ServerStatusBitmap);
|
DDX_Control(pDX, IDC_SERVERSTATUS, m_ServerStatusBitmap);
|
||||||
@ -241,7 +239,7 @@ void CIcecast2winDlg::DoDataExchange(CDataExchange* pDX)
|
|||||||
//}}AFX_DATA_MAP
|
//}}AFX_DATA_MAP
|
||||||
}
|
}
|
||||||
|
|
||||||
BEGIN_MESSAGE_MAP(CIcecast2winDlg, CResizableDialog)
|
BEGIN_MESSAGE_MAP(CIcecast2winDlg, CDialog)
|
||||||
//{{AFX_MSG_MAP(CIcecast2winDlg)
|
//{{AFX_MSG_MAP(CIcecast2winDlg)
|
||||||
ON_WM_SYSCOMMAND()
|
ON_WM_SYSCOMMAND()
|
||||||
ON_WM_PAINT()
|
ON_WM_PAINT()
|
||||||
@ -268,9 +266,10 @@ END_MESSAGE_MAP()
|
|||||||
|
|
||||||
#include "colors.h"
|
#include "colors.h"
|
||||||
|
|
||||||
|
|
||||||
BOOL CIcecast2winDlg::OnInitDialog()
|
BOOL CIcecast2winDlg::OnInitDialog()
|
||||||
{
|
{
|
||||||
CResizableDialog::OnInitDialog();
|
CDialog::OnInitDialog();
|
||||||
|
|
||||||
// Add "About..." menu item to system menu.
|
// Add "About..." menu item to system menu.
|
||||||
|
|
||||||
@ -290,7 +289,6 @@ BOOL CIcecast2winDlg::OnInitDialog()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
g_mainDialog = this;
|
g_mainDialog = this;
|
||||||
|
|
||||||
// Set the icon for this dialog. The framework does this automatically
|
// Set the icon for this dialog. The framework does this automatically
|
||||||
@ -327,10 +325,10 @@ BOOL CIcecast2winDlg::OnInitDialog()
|
|||||||
|
|
||||||
LoadConfig();
|
LoadConfig();
|
||||||
|
|
||||||
AddAnchor(IDC_MAINTAB, TOP_LEFT, BOTTOM_RIGHT);
|
// AddAnchor(IDC_MAINTAB, TOP_LEFT, BOTTOM_RIGHT);
|
||||||
AddAnchor(IDC_STATICBLACK, TOP_LEFT, TOP_RIGHT);
|
// AddAnchor(IDC_STATICBLACK, TOP_LEFT, TOP_RIGHT);
|
||||||
|
|
||||||
EnableSaveRestore("icecast2win", "positions");
|
// EnableSaveRestore("icecast2win", "positions");
|
||||||
|
|
||||||
m_pTray = NULL;
|
m_pTray = NULL;
|
||||||
|
|
||||||
@ -354,7 +352,7 @@ void CIcecast2winDlg::OnSysCommand(UINT nID, LPARAM lParam)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
CResizableDialog::OnSysCommand(nID, lParam);
|
CDialog::OnSysCommand(nID, lParam);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -383,7 +381,7 @@ void CIcecast2winDlg::OnPaint()
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
CResizableDialog::OnPaint();
|
CDialog::OnPaint();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -636,7 +634,7 @@ void CIcecast2winDlg::OnTimer(UINT nIDEvent)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CResizableDialog::OnTimer(nIDEvent);
|
CDialog::OnTimer(nIDEvent);
|
||||||
}
|
}
|
||||||
|
|
||||||
char g_configFile[1024] = "";
|
char g_configFile[1024] = "";
|
||||||
@ -984,7 +982,7 @@ void CIcecast2winDlg::config_read()
|
|||||||
char buf[1024] = "";
|
char buf[1024] = "";
|
||||||
CString tempString;
|
CString tempString;
|
||||||
|
|
||||||
m_colSource0Width = GetPrivateProfileInt(gAppName, "col0SourceWidth", 150, gConfigFile);
|
m_colSource0Width = GetPrivateProfileInt(gAppName, "col0SourceWidth", 163, gConfigFile);
|
||||||
m_colStats0Width = GetPrivateProfileInt(gAppName, "col0StatsWidth", 100, gConfigFile);
|
m_colStats0Width = GetPrivateProfileInt(gAppName, "col0StatsWidth", 100, gConfigFile);
|
||||||
m_colStats1Width = GetPrivateProfileInt(gAppName, "col1StatsWidth", 150, gConfigFile);
|
m_colStats1Width = GetPrivateProfileInt(gAppName, "col1StatsWidth", 150, gConfigFile);
|
||||||
m_colGStats0Width = GetPrivateProfileInt(gAppName, "col0GStatsWidth", 150, gConfigFile);
|
m_colGStats0Width = GetPrivateProfileInt(gAppName, "col0GStatsWidth", 150, gConfigFile);
|
||||||
@ -1038,12 +1036,12 @@ void CIcecast2winDlg::OnClose()
|
|||||||
{
|
{
|
||||||
// TODO: Add your message handler code here and/or call default
|
// TODO: Add your message handler code here and/or call default
|
||||||
config_write();
|
config_write();
|
||||||
CResizableDialog::OnClose();
|
CDialog::OnClose();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CIcecast2winDlg::OnSize(UINT nType, int cx, int cy)
|
void CIcecast2winDlg::OnSize(UINT nType, int cx, int cy)
|
||||||
{
|
{
|
||||||
CResizableDialog::OnSize(nType, cx, cy);
|
CDialog::OnSize(nType, cx, cy);
|
||||||
|
|
||||||
int border1 = 0;
|
int border1 = 0;
|
||||||
int border2 = 78;
|
int border2 = 78;
|
||||||
@ -1051,8 +1049,20 @@ void CIcecast2winDlg::OnSize(UINT nType, int cx, int cy)
|
|||||||
if (m_MainTab.m_hWnd) {
|
if (m_MainTab.m_hWnd) {
|
||||||
CRect rect;
|
CRect rect;
|
||||||
GetClientRect (&rect);
|
GetClientRect (&rect);
|
||||||
m_MainTab.ResizeDialog(0, rect.Width()-border1, rect.Height()-border2);
|
int x = rect.Width()-border1;
|
||||||
m_MainTab.ResizeDialog(1, rect.Width()-border1, rect.Height()-border2);
|
int y = rect.Width()-border2;
|
||||||
|
|
||||||
|
statusTab.SetWindowPos(NULL, 4, 22, cx, cy, SWP_NOZORDER);
|
||||||
|
statsTab.SetWindowPos(NULL, 4, 22, cx, cy, SWP_NOZORDER);
|
||||||
|
statusTab.m_GlobalStatList.SetWindowPos(NULL, 14, 55, cx-40, cy-180, SWP_NOZORDER);
|
||||||
|
statsTab.m_StatsListCtrl.SetWindowPos(NULL, 213, 55, cx-243, cy-180, SWP_NOZORDER);
|
||||||
|
statsTab.m_SourceListCtrl.SetWindowPos(NULL, 14, 55, 166, cy-180, SWP_NOZORDER);
|
||||||
|
// CListCtrl m_StatsListCtrl;
|
||||||
|
// CListCtrl m_SourceListCtrl;
|
||||||
|
m_MainTab.SetWindowPos(NULL, 0, 80, cx, cy, SWP_NOZORDER);
|
||||||
|
|
||||||
|
//m_MainTab.ResizeDialog(0, rect.Width()-border1, rect.Height()-border2);
|
||||||
|
//m_MainTab.ResizeDialog(1, rect.Width()-border1, rect.Height()-border2);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -1123,7 +1133,7 @@ void CIcecast2winDlg::OnBlankRestore()
|
|||||||
|
|
||||||
void CIcecast2winDlg::OnDestroy()
|
void CIcecast2winDlg::OnDestroy()
|
||||||
{
|
{
|
||||||
CResizableDialog::OnDestroy();
|
CDialog::OnDestroy();
|
||||||
|
|
||||||
if (m_pTray) {
|
if (m_pTray) {
|
||||||
delete m_pTray ;
|
delete m_pTray ;
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
#if !defined(AFX_ICECAST2WINDLG_H__23B4DA8B_C9BC_49C8_A62C_37FC6BC5E54A__INCLUDED_)
|
#if !defined(AFX_ICECAST2WINDLG_H__23B4DA8B_C9BC_49C8_A62C_37FC6BC5E54A__INCLUDED_)
|
||||||
#define AFX_ICECAST2WINDLG_H__23B4DA8B_C9BC_49C8_A62C_37FC6BC5E54A__INCLUDED_
|
#define AFX_ICECAST2WINDLG_H__23B4DA8B_C9BC_49C8_A62C_37FC6BC5E54A__INCLUDED_
|
||||||
|
|
||||||
#include "ResizableDialog.h"
|
|
||||||
#include "TabCtrlSSL.h"
|
#include "TabCtrlSSL.h"
|
||||||
#include "TabPageSSL.h"
|
#include "TabPageSSL.h"
|
||||||
|
|
||||||
@ -20,7 +19,7 @@
|
|||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
// CIcecast2winDlg dialog
|
// CIcecast2winDlg dialog
|
||||||
|
|
||||||
class CIcecast2winDlg : public CResizableDialog
|
class CIcecast2winDlg : public CDialog
|
||||||
{
|
{
|
||||||
// Construction
|
// Construction
|
||||||
public:
|
public:
|
||||||
|
@ -1,442 +0,0 @@
|
|||||||
// ResizableDialog.cpp : implementation file
|
|
||||||
//
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Copyright (C) 2000 by Paolo Messina
|
|
||||||
// (ppescher@yahoo.com)
|
|
||||||
//
|
|
||||||
// Free for non-commercial use.
|
|
||||||
// You may change the code to your needs,
|
|
||||||
// provided that credits to the original
|
|
||||||
// author is given in the modified files.
|
|
||||||
//
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#include "stdafx.h"
|
|
||||||
#include "ResizableDialog.h"
|
|
||||||
|
|
||||||
#ifdef _DEBUG
|
|
||||||
#define new DEBUG_NEW
|
|
||||||
#undef THIS_FILE
|
|
||||||
static char THIS_FILE[] = __FILE__;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// CResizableDialog
|
|
||||||
|
|
||||||
inline void CResizableDialog::Construct()
|
|
||||||
{
|
|
||||||
m_bInitDone = FALSE;
|
|
||||||
|
|
||||||
m_bUseMinTrack = TRUE;
|
|
||||||
m_bUseMaxTrack = FALSE;
|
|
||||||
m_bUseMaxRect = FALSE;
|
|
||||||
|
|
||||||
m_bShowGrip = TRUE;
|
|
||||||
|
|
||||||
m_bEnableSaveRestore = FALSE;
|
|
||||||
|
|
||||||
m_szGripSize.cx = GetSystemMetrics(SM_CXVSCROLL);
|
|
||||||
m_szGripSize.cy = GetSystemMetrics(SM_CYHSCROLL);
|
|
||||||
}
|
|
||||||
|
|
||||||
CResizableDialog::CResizableDialog()
|
|
||||||
{
|
|
||||||
Construct();
|
|
||||||
}
|
|
||||||
|
|
||||||
CResizableDialog::CResizableDialog(UINT nIDTemplate, CWnd* pParentWnd)
|
|
||||||
: CDialog(nIDTemplate, pParentWnd)
|
|
||||||
{
|
|
||||||
Construct();
|
|
||||||
}
|
|
||||||
|
|
||||||
CResizableDialog::CResizableDialog(LPCTSTR lpszTemplateName, CWnd* pParentWnd)
|
|
||||||
: CDialog(lpszTemplateName, pParentWnd)
|
|
||||||
{
|
|
||||||
Construct();
|
|
||||||
}
|
|
||||||
|
|
||||||
CResizableDialog::~CResizableDialog()
|
|
||||||
{
|
|
||||||
// for safety
|
|
||||||
m_arrLayout.RemoveAll();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
BEGIN_MESSAGE_MAP(CResizableDialog, CDialog)
|
|
||||||
//{{AFX_MSG_MAP(CResizableDialog)
|
|
||||||
ON_WM_NCHITTEST()
|
|
||||||
ON_WM_GETMINMAXINFO()
|
|
||||||
ON_WM_SIZE()
|
|
||||||
ON_WM_DESTROY()
|
|
||||||
ON_WM_PAINT()
|
|
||||||
//}}AFX_MSG_MAP
|
|
||||||
END_MESSAGE_MAP()
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// CResizableDialog message handlers
|
|
||||||
|
|
||||||
|
|
||||||
BOOL CResizableDialog::OnInitDialog()
|
|
||||||
{
|
|
||||||
CDialog::OnInitDialog();
|
|
||||||
|
|
||||||
UpdateGripPos();
|
|
||||||
|
|
||||||
// gets the template size as the min track size
|
|
||||||
CRect rc;
|
|
||||||
GetWindowRect(&rc);
|
|
||||||
m_ptMinTrackSize.x = rc.Width();
|
|
||||||
m_ptMinTrackSize.y = rc.Height();
|
|
||||||
|
|
||||||
m_bInitDone = TRUE;
|
|
||||||
|
|
||||||
return TRUE; // return TRUE unless you set the focus to a control
|
|
||||||
// EXCEPTION: OCX Property Pages should return FALSE
|
|
||||||
}
|
|
||||||
|
|
||||||
void CResizableDialog::OnDestroy()
|
|
||||||
{
|
|
||||||
CDialog::OnDestroy();
|
|
||||||
|
|
||||||
if (m_bEnableSaveRestore)
|
|
||||||
SaveWindowRect();
|
|
||||||
|
|
||||||
// remove old windows
|
|
||||||
m_arrLayout.RemoveAll();
|
|
||||||
}
|
|
||||||
|
|
||||||
void CResizableDialog::OnPaint()
|
|
||||||
{
|
|
||||||
CPaintDC dc(this); // device context for painting
|
|
||||||
|
|
||||||
if (m_bShowGrip && !IsZoomed())
|
|
||||||
{
|
|
||||||
// draw size-grip
|
|
||||||
dc.DrawFrameControl(&m_rcGripRect, DFC_SCROLL, DFCS_SCROLLSIZEGRIP);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void CResizableDialog::OnSize(UINT nType, int cx, int cy)
|
|
||||||
{
|
|
||||||
CWnd::OnSize(nType, cx, cy);
|
|
||||||
|
|
||||||
if (nType == SIZE_MAXHIDE || nType == SIZE_MAXSHOW)
|
|
||||||
return; // arrangement not needed
|
|
||||||
|
|
||||||
if (m_bInitDone)
|
|
||||||
{
|
|
||||||
ArrangeLayout();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
UINT CResizableDialog::OnNcHitTest(CPoint point)
|
|
||||||
{
|
|
||||||
CPoint pt = point;
|
|
||||||
ScreenToClient(&pt);
|
|
||||||
|
|
||||||
// if in size grip and in client area
|
|
||||||
if (m_bShowGrip && m_rcGripRect.PtInRect(pt) &&
|
|
||||||
pt.x >= 0 && pt.y >= 0)
|
|
||||||
return HTBOTTOMRIGHT;
|
|
||||||
|
|
||||||
return CDialog::OnNcHitTest(point);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CResizableDialog::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI)
|
|
||||||
{
|
|
||||||
if (!m_bInitDone)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (m_bUseMinTrack)
|
|
||||||
lpMMI->ptMinTrackSize = m_ptMinTrackSize;
|
|
||||||
|
|
||||||
if (m_bUseMaxTrack)
|
|
||||||
lpMMI->ptMaxTrackSize = m_ptMaxTrackSize;
|
|
||||||
|
|
||||||
if (m_bUseMaxRect)
|
|
||||||
{
|
|
||||||
lpMMI->ptMaxPosition = m_ptMaxPos;
|
|
||||||
lpMMI->ptMaxSize = m_ptMaxSize;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// layout functions
|
|
||||||
|
|
||||||
void CResizableDialog::AddAnchor(HWND wnd, CSize tl_type, CSize br_type)
|
|
||||||
{
|
|
||||||
ASSERT(wnd != NULL && ::IsWindow(wnd));
|
|
||||||
ASSERT(::IsChild(*this, wnd));
|
|
||||||
ASSERT(tl_type != NOANCHOR);
|
|
||||||
|
|
||||||
// get control's window class
|
|
||||||
|
|
||||||
CString st;
|
|
||||||
GetClassName(wnd, st.GetBufferSetLength(MAX_PATH), MAX_PATH);
|
|
||||||
st.ReleaseBuffer();
|
|
||||||
st.MakeUpper();
|
|
||||||
|
|
||||||
// add the style 'clipsiblings' to a GroupBox
|
|
||||||
// to avoid unnecessary repainting of controls inside
|
|
||||||
if (st == "BUTTON")
|
|
||||||
{
|
|
||||||
DWORD style = GetWindowLong(wnd, GWL_STYLE);
|
|
||||||
if (style & BS_GROUPBOX)
|
|
||||||
SetWindowLong(wnd, GWL_STYLE, style | WS_CLIPSIBLINGS);
|
|
||||||
}
|
|
||||||
|
|
||||||
// wnd classes that don't redraw client area correctly
|
|
||||||
// when the hor scroll pos changes due to a resizing
|
|
||||||
BOOL hscroll = FALSE;
|
|
||||||
if (st == "LISTBOX")
|
|
||||||
hscroll = TRUE;
|
|
||||||
|
|
||||||
// wnd classes that need refresh when resized
|
|
||||||
BOOL refresh = FALSE;
|
|
||||||
if (st == "STATIC")
|
|
||||||
{
|
|
||||||
DWORD style = GetWindowLong(wnd, GWL_STYLE);
|
|
||||||
|
|
||||||
switch (style & SS_TYPEMASK)
|
|
||||||
{
|
|
||||||
case SS_LEFT:
|
|
||||||
case SS_CENTER:
|
|
||||||
case SS_RIGHT:
|
|
||||||
// word-wrapped text needs refresh
|
|
||||||
refresh = TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
// centered images or text need refresh
|
|
||||||
if (style & SS_CENTERIMAGE)
|
|
||||||
refresh = TRUE;
|
|
||||||
|
|
||||||
// simple text never needs refresh
|
|
||||||
if (style & SS_TYPEMASK == SS_SIMPLE)
|
|
||||||
refresh = FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
// get dialog's and control's rect
|
|
||||||
CRect wndrc, objrc;
|
|
||||||
|
|
||||||
GetClientRect(&wndrc);
|
|
||||||
::GetWindowRect(wnd, &objrc);
|
|
||||||
ScreenToClient(&objrc);
|
|
||||||
|
|
||||||
CSize tl_margin, br_margin;
|
|
||||||
|
|
||||||
if (br_type == NOANCHOR)
|
|
||||||
br_type = tl_type;
|
|
||||||
|
|
||||||
// calculate margin for the top-left corner
|
|
||||||
|
|
||||||
tl_margin.cx = objrc.left - wndrc.Width() * tl_type.cx / 100;
|
|
||||||
tl_margin.cy = objrc.top - wndrc.Height() * tl_type.cy / 100;
|
|
||||||
|
|
||||||
// calculate margin for the bottom-right corner
|
|
||||||
|
|
||||||
br_margin.cx = objrc.right - wndrc.Width() * br_type.cx / 100;
|
|
||||||
br_margin.cy = objrc.bottom - wndrc.Height() * br_type.cy / 100;
|
|
||||||
|
|
||||||
// add to the list
|
|
||||||
Layout obj(wnd, tl_type, tl_margin, br_type, br_margin, hscroll, refresh);
|
|
||||||
m_arrLayout.Add(obj);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CResizableDialog::ArrangeLayout()
|
|
||||||
{
|
|
||||||
// update size-grip
|
|
||||||
InvalidateRect(&m_rcGripRect);
|
|
||||||
UpdateGripPos();
|
|
||||||
InvalidateRect(&m_rcGripRect);
|
|
||||||
|
|
||||||
// init some vars
|
|
||||||
CRect wndrc;
|
|
||||||
GetClientRect(&wndrc);
|
|
||||||
|
|
||||||
int i, count = m_arrLayout.GetSize();
|
|
||||||
HDWP hdwp = BeginDeferWindowPos(count);
|
|
||||||
|
|
||||||
for (i=0; i<count; ++i)
|
|
||||||
{
|
|
||||||
Layout& obj = m_arrLayout[i];
|
|
||||||
|
|
||||||
CRect objrc, newrc;
|
|
||||||
CWnd* wnd = CWnd::FromHandle(obj.hwnd); // temporary solution
|
|
||||||
|
|
||||||
wnd->GetWindowRect(&objrc);
|
|
||||||
ScreenToClient(&objrc);
|
|
||||||
|
|
||||||
// calculate new top-left corner
|
|
||||||
|
|
||||||
newrc.left = obj.tl_margin.cx + wndrc.Width() * obj.tl_type.cx / 100;
|
|
||||||
newrc.top = obj.tl_margin.cy + wndrc.Height() * obj.tl_type.cy / 100;
|
|
||||||
|
|
||||||
// calculate new bottom-right corner
|
|
||||||
|
|
||||||
newrc.right = obj.br_margin.cx + wndrc.Width() * obj.br_type.cx / 100;
|
|
||||||
newrc.bottom = obj.br_margin.cy + wndrc.Height() * obj.br_type.cy / 100;
|
|
||||||
|
|
||||||
if (!newrc.EqualRect(&objrc))
|
|
||||||
{
|
|
||||||
if (obj.adj_hscroll)
|
|
||||||
{
|
|
||||||
// needs repainting, due to horiz scrolling
|
|
||||||
int diff = newrc.Width() - objrc.Width();
|
|
||||||
int max = wnd->GetScrollLimit(SB_HORZ);
|
|
||||||
|
|
||||||
obj.need_refresh = FALSE;
|
|
||||||
if (max > 0 && wnd->GetScrollPos(SB_HORZ) > max - diff)
|
|
||||||
{
|
|
||||||
obj.need_refresh = TRUE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// set flags
|
|
||||||
DWORD flags = SWP_NOZORDER | SWP_NOACTIVATE | SWP_NOREPOSITION;
|
|
||||||
if (newrc.TopLeft() == objrc.TopLeft())
|
|
||||||
flags |= SWP_NOMOVE;
|
|
||||||
if (newrc.Size() == objrc.Size())
|
|
||||||
flags |= SWP_NOSIZE;
|
|
||||||
|
|
||||||
DeferWindowPos(hdwp, obj.hwnd, NULL, newrc.left, newrc.top,
|
|
||||||
newrc.Width(), newrc.Height(), flags);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// go re-arrange child windows
|
|
||||||
EndDeferWindowPos(hdwp);
|
|
||||||
|
|
||||||
// refresh those that need
|
|
||||||
for (i=0; i<count; ++i)
|
|
||||||
{
|
|
||||||
Layout& obj = m_arrLayout[i];
|
|
||||||
CWnd* wnd = CWnd::FromHandle(obj.hwnd); // temporary solution
|
|
||||||
|
|
||||||
if (obj.need_refresh)
|
|
||||||
{
|
|
||||||
wnd->Invalidate();
|
|
||||||
wnd->UpdateWindow();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void CResizableDialog::UpdateGripPos()
|
|
||||||
{
|
|
||||||
// size-grip goes bottom right in the client area
|
|
||||||
|
|
||||||
GetClientRect(&m_rcGripRect);
|
|
||||||
|
|
||||||
m_rcGripRect.left = m_rcGripRect.right - m_szGripSize.cx;
|
|
||||||
m_rcGripRect.top = m_rcGripRect.bottom - m_szGripSize.cy;
|
|
||||||
}
|
|
||||||
|
|
||||||
// protected members
|
|
||||||
|
|
||||||
void CResizableDialog::ShowSizeGrip(BOOL bShow)
|
|
||||||
{
|
|
||||||
if (m_bShowGrip != bShow)
|
|
||||||
{
|
|
||||||
m_bShowGrip = bShow;
|
|
||||||
InvalidateRect(&m_rcGripRect);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void CResizableDialog::SetMaximizedRect(const CRect& rc)
|
|
||||||
{
|
|
||||||
m_bUseMaxRect = TRUE;
|
|
||||||
|
|
||||||
m_ptMaxPos = rc.TopLeft();
|
|
||||||
m_ptMaxSize.x = rc.Width();
|
|
||||||
m_ptMaxSize.y = rc.Height();
|
|
||||||
}
|
|
||||||
|
|
||||||
void CResizableDialog::ResetMaximizedRect()
|
|
||||||
{
|
|
||||||
m_bUseMaxRect = FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CResizableDialog::SetMinTrackSize(const CSize& size)
|
|
||||||
{
|
|
||||||
m_bUseMinTrack = TRUE;
|
|
||||||
|
|
||||||
m_ptMinTrackSize.x = size.cx;
|
|
||||||
m_ptMinTrackSize.y = size.cy;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CResizableDialog::ResetMinTrackSize()
|
|
||||||
{
|
|
||||||
m_bUseMinTrack = FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CResizableDialog::SetMaxTrackSize(const CSize& size)
|
|
||||||
{
|
|
||||||
m_bUseMaxTrack = TRUE;
|
|
||||||
|
|
||||||
m_ptMaxTrackSize.x = size.cx;
|
|
||||||
m_ptMaxTrackSize.y = size.cy;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CResizableDialog::ResetMaxTrackSize()
|
|
||||||
{
|
|
||||||
m_bUseMaxTrack = FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
// NOTE: this must be called after all the other settings
|
|
||||||
// to have the dialog and its controls displayed properly
|
|
||||||
void CResizableDialog::EnableSaveRestore(LPCTSTR pszSection, LPCTSTR pszEntry)
|
|
||||||
{
|
|
||||||
m_sSection = pszSection;
|
|
||||||
m_sEntry = pszEntry;
|
|
||||||
|
|
||||||
m_bEnableSaveRestore = TRUE;
|
|
||||||
|
|
||||||
LoadWindowRect();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// used to save/restore window's size and position
|
|
||||||
// either in the registry or a private .INI file
|
|
||||||
// depending on your application settings
|
|
||||||
|
|
||||||
#define PROFILE_FMT _T("%d,%d,%d,%d,%d,%d")
|
|
||||||
|
|
||||||
void CResizableDialog::SaveWindowRect()
|
|
||||||
{
|
|
||||||
CString data;
|
|
||||||
WINDOWPLACEMENT wp;
|
|
||||||
|
|
||||||
ZeroMemory(&wp, sizeof(WINDOWPLACEMENT));
|
|
||||||
wp.length = sizeof(WINDOWPLACEMENT);
|
|
||||||
GetWindowPlacement(&wp);
|
|
||||||
|
|
||||||
RECT& rc = wp.rcNormalPosition; // alias
|
|
||||||
|
|
||||||
data.Format(PROFILE_FMT, rc.left, rc.top,
|
|
||||||
rc.right, rc.bottom, wp.showCmd, wp.flags);
|
|
||||||
|
|
||||||
AfxGetApp()->WriteProfileString(m_sSection, m_sEntry, data);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CResizableDialog::LoadWindowRect()
|
|
||||||
{
|
|
||||||
CString data;
|
|
||||||
WINDOWPLACEMENT wp;
|
|
||||||
|
|
||||||
data = AfxGetApp()->GetProfileString(m_sSection, m_sEntry);
|
|
||||||
|
|
||||||
if (data.IsEmpty()) // never saved before
|
|
||||||
return;
|
|
||||||
|
|
||||||
ZeroMemory(&wp, sizeof(WINDOWPLACEMENT));
|
|
||||||
wp.length = sizeof(WINDOWPLACEMENT);
|
|
||||||
GetWindowPlacement(&wp);
|
|
||||||
|
|
||||||
RECT& rc = wp.rcNormalPosition; // alias
|
|
||||||
|
|
||||||
if (_stscanf(data, PROFILE_FMT, &rc.left, &rc.top,
|
|
||||||
&rc.right, &rc.bottom, &wp.showCmd, &wp.flags) == 6)
|
|
||||||
{
|
|
||||||
SetWindowPlacement(&wp);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,173 +0,0 @@
|
|||||||
#if !defined(AFX_RESIZABLEDIALOG_H__INCLUDED_)
|
|
||||||
#define AFX_RESIZABLEDIALOG_H__INCLUDED_
|
|
||||||
|
|
||||||
#if _MSC_VER > 1000
|
|
||||||
#pragma once
|
|
||||||
#endif // _MSC_VER > 1000
|
|
||||||
|
|
||||||
// ResizableDialog.h : header file
|
|
||||||
//
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Copyright (C) 2000 by Paolo Messina
|
|
||||||
// (ppescher@yahoo.com)
|
|
||||||
//
|
|
||||||
// Free for non-commercial use.
|
|
||||||
// You may change the code to your needs,
|
|
||||||
// provided that credits to the original
|
|
||||||
// author is given in the modified files.
|
|
||||||
//
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#include <afxtempl.h>
|
|
||||||
#include <afxwin.h>
|
|
||||||
|
|
||||||
// useful compatibility constants (the only one required is NOANCHOR)
|
|
||||||
|
|
||||||
#if !defined(__SIZE_ANCHORS_)
|
|
||||||
#define __SIZE_ANCHORS_
|
|
||||||
|
|
||||||
const CSize
|
|
||||||
NOANCHOR(-1,-1),
|
|
||||||
TOP_LEFT(0,0), TOP_CENTER(50,0), TOP_RIGHT(100,0),
|
|
||||||
MIDDLE_LEFT(0,50), MIDDLE_CENTER(50,50), MIDDLE_RIGHT(100,50),
|
|
||||||
BOTTOM_LEFT(0,100), BOTTOM_CENTER(50,100), BOTTOM_RIGHT(100,100);
|
|
||||||
|
|
||||||
#endif // !defined(__SIZE_ANCHORS_)
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// CResizableDialog window
|
|
||||||
|
|
||||||
class CResizableDialog : public CDialog
|
|
||||||
{
|
|
||||||
|
|
||||||
// Construction
|
|
||||||
public:
|
|
||||||
CResizableDialog();
|
|
||||||
CResizableDialog(UINT nIDTemplate, CWnd* pParentWnd = NULL);
|
|
||||||
CResizableDialog(LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL);
|
|
||||||
|
|
||||||
// Attributes
|
|
||||||
private:
|
|
||||||
// flags
|
|
||||||
BOOL m_bShowGrip;
|
|
||||||
BOOL m_bUseMaxTrack;
|
|
||||||
BOOL m_bUseMinTrack;
|
|
||||||
BOOL m_bUseMaxRect;
|
|
||||||
BOOL m_bEnableSaveRestore;
|
|
||||||
|
|
||||||
// internal status
|
|
||||||
CString m_sSection; // section name and
|
|
||||||
CString m_sEntry; // entry for save/restore
|
|
||||||
|
|
||||||
BOOL m_bInitDone; // if all internal vars initialized
|
|
||||||
|
|
||||||
SIZE m_szGripSize; // set at construction time
|
|
||||||
|
|
||||||
CRect m_rcGripRect; // current pos of grip
|
|
||||||
|
|
||||||
POINT m_ptMinTrackSize; // min tracking size
|
|
||||||
POINT m_ptMaxTrackSize; // max tracking size
|
|
||||||
POINT m_ptMaxPos; // maximized position
|
|
||||||
POINT m_ptMaxSize; // maximized size
|
|
||||||
|
|
||||||
class Layout
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
HWND hwnd;
|
|
||||||
|
|
||||||
BOOL adj_hscroll;
|
|
||||||
BOOL need_refresh;
|
|
||||||
|
|
||||||
// upper-left corner
|
|
||||||
CSize tl_type;
|
|
||||||
CSize tl_margin;
|
|
||||||
|
|
||||||
// bottom-right corner
|
|
||||||
CSize br_type;
|
|
||||||
CSize br_margin;
|
|
||||||
|
|
||||||
public:
|
|
||||||
Layout()
|
|
||||||
: hwnd(NULL), adj_hscroll(FALSE), need_refresh(FALSE),
|
|
||||||
tl_type(0,0), tl_margin(0,0),
|
|
||||||
br_type(0,0), br_margin(0,0)
|
|
||||||
{
|
|
||||||
};
|
|
||||||
|
|
||||||
Layout(HWND hw, SIZE tl_t, SIZE tl_m,
|
|
||||||
SIZE br_t, SIZE br_m, BOOL hscroll, BOOL refresh)
|
|
||||||
{
|
|
||||||
hwnd = hw;
|
|
||||||
|
|
||||||
adj_hscroll = hscroll;
|
|
||||||
need_refresh = refresh;
|
|
||||||
|
|
||||||
tl_type = tl_t;
|
|
||||||
tl_margin = tl_m;
|
|
||||||
|
|
||||||
br_type = br_t;
|
|
||||||
br_margin = br_m;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
CArray<Layout, Layout&> m_arrLayout; // list of repositionable controls
|
|
||||||
|
|
||||||
// Operations
|
|
||||||
public:
|
|
||||||
|
|
||||||
// Overrides
|
|
||||||
// ClassWizard generated virtual function overrides
|
|
||||||
//{{AFX_VIRTUAL(CResizableDialog)
|
|
||||||
//}}AFX_VIRTUAL
|
|
||||||
|
|
||||||
// Implementation
|
|
||||||
public:
|
|
||||||
virtual ~CResizableDialog();
|
|
||||||
|
|
||||||
// used internally
|
|
||||||
private:
|
|
||||||
void Construct();
|
|
||||||
void LoadWindowRect();
|
|
||||||
void SaveWindowRect();
|
|
||||||
void ArrangeLayout();
|
|
||||||
void UpdateGripPos();
|
|
||||||
|
|
||||||
// callable from derived classes
|
|
||||||
//protected:
|
|
||||||
public:
|
|
||||||
void AddAnchor(HWND wnd, CSize tl_type,
|
|
||||||
CSize br_type = NOANCHOR); // add anchors to a control
|
|
||||||
void AddAnchor(UINT ctrl_ID, CSize tl_type,
|
|
||||||
CSize br_type = NOANCHOR) // add anchors to a control
|
|
||||||
{
|
|
||||||
AddAnchor(::GetDlgItem(*this, ctrl_ID), tl_type, br_type);
|
|
||||||
};
|
|
||||||
void ShowSizeGrip(BOOL bShow); // show or hide the size grip
|
|
||||||
void SetMaximizedRect(const CRect& rc); // set window rect when maximized
|
|
||||||
void ResetMaximizedRect(); // reset to default maximized rect
|
|
||||||
void SetMinTrackSize(const CSize& size); // set minimum tracking size
|
|
||||||
void ResetMinTrackSize(); // reset to default minimum tracking size
|
|
||||||
void SetMaxTrackSize(const CSize& size); // set maximum tracking size
|
|
||||||
void ResetMaxTrackSize(); // reset to default maximum tracking size
|
|
||||||
void EnableSaveRestore(LPCTSTR pszSection, LPCTSTR pszEntry); // section and entry in app's profile
|
|
||||||
|
|
||||||
// Generated message map functions
|
|
||||||
protected:
|
|
||||||
//{{AFX_MSG(CResizableDialog)
|
|
||||||
virtual BOOL OnInitDialog();
|
|
||||||
afx_msg UINT OnNcHitTest(CPoint point);
|
|
||||||
afx_msg void OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI);
|
|
||||||
afx_msg void OnSize(UINT nType, int cx, int cy);
|
|
||||||
afx_msg void OnDestroy();
|
|
||||||
afx_msg void OnPaint();
|
|
||||||
//}}AFX_MSG
|
|
||||||
DECLARE_MESSAGE_MAP()
|
|
||||||
};
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
//{{AFX_INSERT_LOCATION}}
|
|
||||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
|
||||||
|
|
||||||
#endif // !defined(AFX_RESIZABLEDIALOG_H__INCLUDED_)
|
|
@ -61,9 +61,9 @@ BOOL CStatsTab::OnInitDialog()
|
|||||||
m_StatsListCtrl.InsertColumn(0, _T("Statistic"), LVCFMT_LEFT, m_colStats0Width);
|
m_StatsListCtrl.InsertColumn(0, _T("Statistic"), LVCFMT_LEFT, m_colStats0Width);
|
||||||
m_StatsListCtrl.InsertColumn(1, _T("Value"), LVCFMT_LEFT, m_colStats1Width);
|
m_StatsListCtrl.InsertColumn(1, _T("Value"), LVCFMT_LEFT, m_colStats1Width);
|
||||||
|
|
||||||
AddAnchor(IDC_STATSLIST, TOP_LEFT, BOTTOM_RIGHT);
|
// AddAnchor(IDC_STATSLIST, TOP_LEFT, BOTTOM_RIGHT);
|
||||||
AddAnchor(IDC_SOURCELIST, TOP_LEFT, BOTTOM_LEFT);
|
// AddAnchor(IDC_SOURCELIST, TOP_LEFT, BOTTOM_LEFT);
|
||||||
AddAnchor(IDC_FILLER1, BOTTOM_LEFT, BOTTOM_RIGHT);
|
// AddAnchor(IDC_FILLER1, BOTTOM_LEFT, BOTTOM_RIGHT);
|
||||||
|
|
||||||
m_SourceListCtrl.SetSelectionMark(0);
|
m_SourceListCtrl.SetSelectionMark(0);
|
||||||
m_SLS.SetFont(&(g_mainDialog->labelFont), TRUE);
|
m_SLS.SetFont(&(g_mainDialog->labelFont), TRUE);
|
||||||
|
@ -65,10 +65,10 @@ BOOL CStatus::OnInitDialog()
|
|||||||
|
|
||||||
m_GlobalStatList.SetExtendedStyle(LVS_EX_FULLROWSELECT);
|
m_GlobalStatList.SetExtendedStyle(LVS_EX_FULLROWSELECT);
|
||||||
// TODO: Add extra initialization here
|
// TODO: Add extra initialization here
|
||||||
AddAnchor(IDC_FILLER2, BOTTOM_LEFT, BOTTOM_RIGHT);
|
// AddAnchor(IDC_FILLER2, BOTTOM_LEFT, BOTTOM_RIGHT);
|
||||||
AddAnchor(IDC_GLOBALSTAT_LIST, TOP_LEFT, BOTTOM_RIGHT);
|
// AddAnchor(IDC_GLOBALSTAT_LIST, TOP_LEFT, BOTTOM_RIGHT);
|
||||||
AddAnchor(IDC_STATIC_RUN, BOTTOM_LEFT, BOTTOM_RIGHT);
|
// AddAnchor(IDC_STATIC_RUN, BOTTOM_LEFT, BOTTOM_RIGHT);
|
||||||
AddAnchor(IDC_RUNNINGFOR, BOTTOM_LEFT, BOTTOM_RIGHT);
|
// AddAnchor(IDC_RUNNINGFOR, BOTTOM_LEFT, BOTTOM_RIGHT);
|
||||||
|
|
||||||
m_GS.SetFont(&(g_mainDialog->labelFont), TRUE);
|
m_GS.SetFont(&(g_mainDialog->labelFont), TRUE);
|
||||||
|
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
#include "TabPageSSL.h"
|
#include "TabPageSSL.h"
|
||||||
#include "ResizableDialog.h"
|
|
||||||
|
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
#define new DEBUG_NEW
|
#define new DEBUG_NEW
|
||||||
@ -18,7 +17,7 @@ CTabPageSSL::CTabPageSSL () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
CTabPageSSL::CTabPageSSL (UINT nIDTemplate, CWnd* pParent /*=NULL*/)
|
CTabPageSSL::CTabPageSSL (UINT nIDTemplate, CWnd* pParent /*=NULL*/)
|
||||||
: CResizableDialog(nIDTemplate, pParent) {
|
: CDialog(nIDTemplate, pParent) {
|
||||||
#ifndef _AFX_NO_OCC_SUPPORT
|
#ifndef _AFX_NO_OCC_SUPPORT
|
||||||
AfxEnableControlContainer ();
|
AfxEnableControlContainer ();
|
||||||
#endif // !_AFX_NO_OCC_SUPPORT
|
#endif // !_AFX_NO_OCC_SUPPORT
|
||||||
@ -47,7 +46,7 @@ void CTabPageSSL::OnCancel (void) {
|
|||||||
|
|
||||||
BOOL CTabPageSSL::OnCommand (WPARAM wParam, LPARAM lParam) {
|
BOOL CTabPageSSL::OnCommand (WPARAM wParam, LPARAM lParam) {
|
||||||
// Call base class OnCommand to allow message map processing
|
// Call base class OnCommand to allow message map processing
|
||||||
CResizableDialog::OnCommand (wParam, lParam);
|
CDialog::OnCommand (wParam, lParam);
|
||||||
//
|
//
|
||||||
// Forward WM_COMMAND messages to the dialog's parent.
|
// Forward WM_COMMAND messages to the dialog's parent.
|
||||||
//
|
//
|
||||||
@ -58,7 +57,7 @@ BOOL CTabPageSSL::OnNotify (WPARAM wParam, LPARAM lParam, LRESULT* pResult) {
|
|||||||
//
|
//
|
||||||
// Forward WM_NOTIFY messages to the dialog's parent.
|
// Forward WM_NOTIFY messages to the dialog's parent.
|
||||||
//
|
//
|
||||||
CResizableDialog::OnNotify (wParam, lParam, pResult);
|
CDialog::OnNotify (wParam, lParam, pResult);
|
||||||
return GetParent ()->SendMessage (WM_NOTIFY, wParam, lParam);
|
return GetParent ()->SendMessage (WM_NOTIFY, wParam, lParam);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -72,5 +71,5 @@ BOOL CTabPageSSL::OnCmdMsg (UINT nID, int nCode, void* pExtra,
|
|||||||
return GetParent ()->OnCmdMsg (nID, nCode, pExtra, pHandlerInfo);
|
return GetParent ()->OnCmdMsg (nID, nCode, pExtra, pHandlerInfo);
|
||||||
#endif // !_AFX_NO_OCC_SUPPORT
|
#endif // !_AFX_NO_OCC_SUPPORT
|
||||||
|
|
||||||
return CResizableDialog::OnCmdMsg (nID, nCode, pExtra, pHandlerInfo);
|
return CDialog::OnCmdMsg (nID, nCode, pExtra, pHandlerInfo);
|
||||||
}
|
}
|
||||||
|
@ -3,9 +3,8 @@
|
|||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
// CTabPageSSL declaration
|
// CTabPageSSL declaration
|
||||||
#include "ResizableDialog.h"
|
|
||||||
|
|
||||||
class CTabPageSSL : public CResizableDialog
|
class CTabPageSSL : public CDialog
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Construction
|
// Construction
|
||||||
|
BIN
win32/black.bmp
BIN
win32/black.bmp
Binary file not shown.
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 151 KiB |
Loading…
Reference in New Issue
Block a user