// // maindlg.h: main dialog box // gathers connection info and hosts tabs // // Copyright Microsoft Corportation 2000 // (nadima) // #ifndef _maindlg_h_ #define _maindlg_h_ #include "dlgbase.h" #include "sh.h" #include "tscsetting.h" #include "contwnd.h" #include "progband.h" #define OPTIONS_STRING_MAX_LEN 64 // // Dialog expand/contract amount in dlus // compute this val is the vertical delta in dlus // between the two valid heights of the main dialog // #define LOGON_DLG_EXPAND_AMOUNT 177 #ifdef OS_WINCE #define LOGON_DLG_EXPAND_AMOUNT_VGA 65 #endif #define NUM_TABS 5 #define TAB_GENERAL_IDX 0 #define TAB_DISPLAY_IDX 1 #define TAB_LOCAL_RESOURCES_IDX 2 typedef struct tag_TABDLGINFO { HWND hwndCurPropPage; DLGTEMPLATE *pdlgTmpl[NUM_TABS]; DLGPROC pDlgProc[NUM_TABS]; } TABDLGINFO, *PTABDLGINFO; class CPropGeneral; class CPropLocalRes; class CPropDisplay; class CPropRun; class CPropPerf; class CMainDlg : public CDlgBase { typedef enum { stateNotConnected = 0x0, stateConnecting = 0x1, stateConnected = 0x2 } mainDlgConnectionState; public: CMainDlg(HWND hwndOwner, HINSTANCE hInst, CSH* pSh, CContainerWnd* pContainerWnd, CTscSettings* pTscSettings, BOOL fStartExpanded=FALSE, INT nStartTab = 0); ~CMainDlg(); virtual HWND StartModeless(); virtual INT_PTR CALLBACK DialogBoxProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); static INT_PTR CALLBACK StaticDialogBoxProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); static CMainDlg* _pMainDlgInstance; private: // // Private member functions // void DlgToSettings(); void SettingsToDlg(); HBITMAP LoadBitmapGetSize(HINSTANCE hInstance, UINT resid, SIZE* pSize); BOOL PaintBrandImage(HWND hwnd, HDC hdc, INT bgColor); VOID SetConnectionState(mainDlgConnectionState newState); BOOL OnStartConnection(); BOOL OnEndConnection(BOOL fConnected); #ifndef OS_WINCE BOOL PaintBrandingText(HBITMAP hbmBrandImage); #endif VOID PropagateMsgToChildren(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); // // Font related helpers // void SetFontFaceFromResource(PLOGFONT plf, UINT idFaceName); void SetFontSizeFromResource(PLOGFONT plf, UINT idSizeName); #ifndef OS_WINCE HFONT LoadFontFromResourceInfo(UINT idFace, UINT idSize, BOOL fBold); BOOL InitializeBmps(); BOOL BrandingQueryNewPalette(HWND hDlg); BOOL BrandingPaletteChanged(HWND hDlg, HWND hWndPalChg); #endif BOOL InitializePerfStrings(); protected: // // Protected member functions // void ToggleExpandedState(); BOOL InitTabs(); BOOL OnTabSelChange(); #ifndef OS_WINCE void SetupDialogSysMenu(); #endif void SaveDialogStartupInfo(); private: CSH* _pSh; CTscSettings* _pTscSettings; // // Container window (parent of this dialog) // CContainerWnd* _pContainerWnd; // // Dialog is 'expanded' version // BOOL _fShowExpanded; TCHAR _szOptionsMore[OPTIONS_STRING_MAX_LEN]; TCHAR _szOptionsLess[OPTIONS_STRING_MAX_LEN]; // // In 256 color and lower mode we use 'low color' bitmaps // for palette issues (and bandwidth reduction for nested clients) // BOOL _fUse16ColorBitmaps; // // Screen depth the images are valid for // UINT _lastValidBpp; // // Tab control bounds // RECT _rcTab; TABDLGINFO _tabDlgInfo; // // Progress band // INT _nBrandImageHeight; INT _nBrandImageWidth; TCHAR _szCloseText[128]; TCHAR _szCancelText[128]; BOOL _fStartExpanded; // // Tab to start on // INT _nStartTab; // // Brand img // HBITMAP _hBrandImg; HPALETTE _hBrandPal; // // Current connection state // mainDlgConnectionState _connectionState; // // Control to restore the focus to since we force // it to the cancel button during connection // HWND _hwndRestoreFocus; #ifdef OS_WINCE BOOL _fVgaDisplay; #endif private: // // Property pages // CPropGeneral* _pGeneralPg; CPropDisplay* _pPropDisplayPg; CPropLocalRes* _pLocalResPg; CPropRun* _pRunPg; CPropPerf* _pPerfPg; // // Progress band // CProgressBand* _pProgBand; }; #endif // _maindlg_h_