scrolwin.h 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. /////////////////////////////////////////////////////////////////////////////
  2. // Name: wx/gtk/scrolwin.h
  3. // Purpose: wxScrolledWindow class
  4. // Author: Robert Roebling
  5. // Modified by: Vadim Zeitlin (2005-10-10): wxScrolledWindow is now common
  6. // Created: 01/02/97
  7. // Copyright: (c) Robert Roebling
  8. // Licence: wxWindows licence
  9. /////////////////////////////////////////////////////////////////////////////
  10. #ifndef _WX_GTK_SCROLLWIN_H_
  11. #define _WX_GTK_SCROLLWIN_H_
  12. // ----------------------------------------------------------------------------
  13. // wxScrolledWindow
  14. // ----------------------------------------------------------------------------
  15. class WXDLLIMPEXP_CORE wxScrollHelper : public wxScrollHelperBase
  16. {
  17. typedef wxScrollHelperBase base_type;
  18. public:
  19. // default ctor doesn't do anything
  20. wxScrollHelper(wxWindow *win) : wxScrollHelperBase(win) { }
  21. // implement the base class methods
  22. virtual void SetScrollbars(int pixelsPerUnitX, int pixelsPerUnitY,
  23. int noUnitsX, int noUnitsY,
  24. int xPos = 0, int yPos = 0,
  25. bool noRefresh = false);
  26. virtual void AdjustScrollbars();
  27. virtual bool IsScrollbarShown(int orient) const;
  28. protected:
  29. virtual void DoScroll(int x, int y);
  30. virtual void DoShowScrollbars(wxScrollbarVisibility horz,
  31. wxScrollbarVisibility vert);
  32. private:
  33. // this does (each) half of AdjustScrollbars() work
  34. void DoAdjustScrollbar(GtkRange* range,
  35. int pixelsPerLine,
  36. int winSize,
  37. int virtSize,
  38. int *pos,
  39. int *lines,
  40. int *linesPerPage);
  41. void DoAdjustHScrollbar(int winSize, int virtSize)
  42. {
  43. DoAdjustScrollbar
  44. (
  45. m_win->m_scrollBar[wxWindow::ScrollDir_Horz],
  46. m_xScrollPixelsPerLine, winSize, virtSize,
  47. &m_xScrollPosition, &m_xScrollLines, &m_xScrollLinesPerPage
  48. );
  49. }
  50. void DoAdjustVScrollbar(int winSize, int virtSize)
  51. {
  52. DoAdjustScrollbar
  53. (
  54. m_win->m_scrollBar[wxWindow::ScrollDir_Vert],
  55. m_yScrollPixelsPerLine, winSize, virtSize,
  56. &m_yScrollPosition, &m_yScrollLines, &m_yScrollLinesPerPage
  57. );
  58. }
  59. // and this does the same for Scroll()
  60. void DoScrollOneDir(int orient,
  61. int pos,
  62. int pixelsPerLine,
  63. int *posOld);
  64. wxDECLARE_NO_COPY_CLASS(wxScrollHelper);
  65. };
  66. #endif // _WX_GTK_SCROLLWIN_H_