// source.h : header file // ///////////////////////////////////////////////////////////////////////////// #ifndef __AFXEXT_H__ #include #endif class CSrcSplit : public CMDIChildWnd { DECLARE_DYNCREATE(CSrcSplit) protected: CSrcSplit(); // protected constructor used by dynamic creation public: #define ASMISH 0 #define SRCISH 1 #define ON 0 #define OFF 1 #define TOGGLE 2 void set_type(int type, int what, int which); class CSrcScroll1 *panes[2]; // Attributes protected: public: class CTabView *sel; CStatic fname; // class CSrcInfoView *info; CSplitterWnd split; int active; public: class CSrcFile *visible_file; // pointer to file involved with the window static void Initialize(); static void Terminate(); // Operations public: void select_title(const char *); void select_symtab(class CSymtab *); void select_function (const char *, CORE_ADDR low, CORE_ADDR high); void new_pc(CORE_ADDR pc); // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CSrcSplit) protected: virtual BOOL OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext); virtual BOOL PreCreateWindow(CREATESTRUCT& cs); //}}AFX_VIRTUAL // Implementation public: virtual ~CSrcSplit(); void hit( int *); // Generated message map functions //{{AFX_MSG(CSrcSplit) afx_msg void OnSize(UINT nType, int cx, int cy); afx_msg void OnFileOpen(); afx_msg void OnTabClose(); afx_msg void OnDestroy(); //}}AFX_MSG DECLARE_MESSAGE_MAP() }; ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// // CSrcScroll view ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// // CSrcScroll1 view class CSrcScroll1 : public CScrollView { public: int init; int winindex; int show_assembly() ; int show_source() ; void toggle(int *p); int srcb; /* 1 to show src */ int asmb; /* 1 to show asm, 2 when showing asm because src not available */ int lineb; int bptb; class CSrcD * getdoc() { return (CSrcD*)(GetDocument());} void workout_source(); private: class CSrcFile *get_visible_file() { return parent->visible_file; } class CSrcFrom *visible_buffer; void show_file(const char *n); void set_invert(int ); int get_scroll_y(); void scroll_to_show_line (int i); int width; int splatx; int srcx; enum { BPT, SRC } zone; int srcline_index; int depth; int get_top_line(); int line_with_pc; int line_with_show_line; int line_from_0basedy(int y); int addr_in_line (int line, CORE_ADDR pc, int sp); int find_line_of_pc (CORE_ADDR); void calc_visible_lines(int*first_visible_line, int *last_visible_line); void splat(CDC *pDC, int red, int y) ; void redraw_line(int y, int off); protected: CSrcScroll1(); // protected constructor used by dynamic creation DECLARE_DYNCREATE(CSrcScroll1) // Attributes public: class CSrcSplit *parent; // Operations public: int want_to_show_line ; // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CSrcScroll1) virtual void OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint); protected: virtual void OnDraw(CDC* pDC); // overridden to draw this view virtual void OnInitialUpdate(); // first time after construct //}}AFX_VIRTUAL // Implementation protected: virtual ~CSrcScroll1(); public: // Generated message map functions //{{AFX_MSG(CSrcScroll1) afx_msg void OnS(); afx_msg void OnN(); afx_msg void OnLButtonDown(UINT nFlags, CPoint point); afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point); afx_msg void OnRButtonDown(UINT nFlags, CPoint point); afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message); afx_msg void OnMouseMove(UINT nFlags, CPoint point); afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags); afx_msg void OnLButtonUp(UINT nFlags, CPoint point); afx_msg BOOL OnEraseBkgnd(CDC* pDC); afx_msg void OnUpdateShowAsm(CCmdUI* pCmdUI); afx_msg void OnUpdateShowSource(CCmdUI* pCmdUI); afx_msg void OnUpdateShowLine(CCmdUI* pCmdUI); afx_msg void OnUpdateShowBpts(CCmdUI* pCmdUI); afx_msg void OnShowAsm(); afx_msg void OnShowSource(); afx_msg void OnWatch(); afx_msg void OnShowLine(); afx_msg void OnShowBpts(); afx_msg void OnSetFocus(CWnd* pOldWnd); //}}AFX_MSG DECLARE_MESSAGE_MAP() }; ///////////////////////////////////////////////////////////////////////////// void redraw_allsrcwins(); /////////////////////////////////////////////////////////////////////////////