gecko-dev/cmd/winfe/urlbar.h

209 строки
5.9 KiB
C++
Executable File

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/////////////////////////////////////////////////////////////////////////////
// CURLBar dialog
#include "toolbar2.h"
#include "usertlbr.h"
#include "dropmenu.h"
#ifndef URLBAR_H
#define URLBAR_H
class CEditWnd : public CGenericEdit
{
protected:
UINT m_idTimer;
BOOL m_bRestart;
char * m_pComplete;
BOOL m_Scroll;
CWnd* m_pBar;
CNSToolTip2 *m_ToolTip;
public:
CEditWnd(CWnd* bar) { m_pBar = bar; m_idTimer = 0; m_bRestart = TRUE; m_pComplete = NULL; m_Scroll = FALSE; }
~CEditWnd();
void UrlCompletion(void);
void DrawCompletion(CString & cs, char * pszResult);
void SetToolTip(const char *inTipStr);
virtual BOOL PreTranslateMessage ( MSG * msg );
virtual LRESULT DefWindowProc( UINT message, WPARAM wParam, LPARAM lParam );
virtual afx_msg void OnTimer( UINT nIDEvent );
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
DECLARE_MESSAGE_MAP();
};
class CPageProxyWindow : public CWnd
{
private:
BOOL m_bEraseBackground;
BOOL m_bDraggingURL;
BOOL m_bDragIconHit;
BOOL m_bDragStatusHint;
LPMWCONTEXT m_pIMWContext;
CPoint m_cpLBDown;
UINT m_hFocusTimer;
CNSToolTip2 m_ToolTip;
CBitmap* m_pBitmap;
HICON m_hIcon;
public:
CPageProxyWindow();
~CPageProxyWindow();
BOOL Create(CWnd *pParent);
void SetContext(LPUNKNOWN pUnk);
protected:
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
// Generated message map functions
//{{AFX_MSG(CPageProxyWindow)
afx_msg void OnPaint();
afx_msg void OnShowWindow( BOOL bShow, UINT nStatus );
afx_msg BOOL OnEraseBkgnd( CDC* pDC );
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
virtual afx_msg void OnTimer( UINT nIDEvent );
afx_msg int OnMouseActivate( CWnd *, UINT, UINT );
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
class CProxySurroundWnd : public CWnd
{
public:
BOOL Create(CWnd *pParent);
afx_msg void OnPaint();
DECLARE_MESSAGE_MAP()
};
#define CURLBarBase CWnd
class CURLBar : public CURLBarBase
{
DECLARE_DYNCREATE(CURLBar)
protected:
BOOL m_bEraseBackground;
LPUNKNOWN m_pUnkTabCtrl;
//CLM: Bitmap target drag current URL (bookmark format)
CWnd * m_pDragURL;
LPMWCONTEXT m_pIMWContext;
int m_iViewType;
int m_nTextStatus; // TRUE if 'location' is displayed as the text else FALSE
int m_DragIconY; //CLM: Icon for dragging URL of current doc
int m_DragIconX;
BOOL m_bDraggingURL; // For drag/drop initiation
BOOL m_bDragIconHit;
BOOL m_bDragStatusHint;
CPoint m_cpLBDown;
int m_lastSelection;
HFONT m_pFont; // font for URL bar
CDropMenu * m_pDropMenu;
CPageProxyWindow * m_pPageProxy;
CProxySurroundWnd * m_pProxySurround;
HBRUSH m_hBackgroundBrush;
int m_nBoxHeight;
public:
// Dialog Data
enum { IDD = IDD_URLTITLEBAR };
// XXX This should really have accessor fuctions
BOOL m_bAddToDropList;
CEditWnd* m_pBox;
// Construction
CURLBar(); // standard constructor
~CURLBar();
void SetContext(LPUNKNOWN pUnk);
LPMWCONTEXT GetContext() const { return m_pIMWContext; }
void UpdateFields( const char * msg);
void SetToolTip(const char * inTip);
// Implementation
protected:
void ProcessEnterKey();
protected:
// Generated message map functions
//{{AFX_MSG(CURLBar)
afx_msg void OnEditCopy();
afx_msg void OnEditCut();
afx_msg void OnEditPaste();
afx_msg void OnEditUndo();
afx_msg void OnEditChange();
afx_msg void OnSelChange();
afx_msg void OnUpdateEditCopy(CCmdUI* pCmdUI);
afx_msg void OnUpdateEditCut(CCmdUI* pCmdUI);
afx_msg void OnUpdateEditPaste(CCmdUI* pCmdUI);
afx_msg void OnUpdateEditUndo(CCmdUI* pCmdUI);
afx_msg void OnSize(UINT nType, int cx, int cy);
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnPaint();
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
class CURLBarButton : public CRDFToolbarButton
{
protected:
CURLBar* m_pURLBar; // A pointer to the URL bar object.
BOOL m_bIsSpring; // Whether or not the url bar wants to expand to consume as much space as it can.
public:
CURLBarButton();
~CURLBarButton();
virtual CSize GetButtonSizeFromChars(CString s, int c);
// Overridden to handle special width/height requirements.
virtual void DrawButtonBitmap(HDC hDC, CRect rcImg);
virtual void DrawButtonText(HDC hDC, CRect rcTxt, CSize sizeTxt, CString strTxt);
virtual void UpdateURLBar(char* url);
virtual BOOL IsSpring() { return m_bIsSpring; }
int Create(CWnd *pParent, int nToolbarStyle, CSize noviceButtonSize, CSize advancedButtonSize,
LPCTSTR pButtonText, LPCTSTR pToolTipText,
LPCTSTR pStatusText,
CSize bitmapSize, int nMaxTextChars, int nMinTextChars, BOOKMARKITEM bookmark,
HT_Resource pNode, DWORD dwButtonStyle = 0);
// Generated message map functions
//{{AFX_MSG(CToolbarButton)
afx_msg void OnSize(UINT nType, int x, int y);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
#endif // URLBAR_H