private.h 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. ///////////////////////////////////////////////////////////////////////////////
  2. // Name: wx/gtk1/private.h
  3. // Purpose: wxGTK private macros, functions &c
  4. // Author: Vadim Zeitlin
  5. // Modified by:
  6. // Created: 12.03.02
  7. // Copyright: (c) 2002 Vadim Zeitlin <vadim@wxwidgets.org>
  8. // Licence: wxWindows licence
  9. ///////////////////////////////////////////////////////////////////////////////
  10. #ifndef _WX_GTK_PRIVATE_H_
  11. #define _WX_GTK_PRIVATE_H_
  12. #include <gdk/gdk.h>
  13. #include <gtk/gtk.h>
  14. #include "wx/event.h"
  15. // fail all version tests if the GTK+ version is so ancient that it doesn't
  16. // even have GTK_CHECK_VERSION
  17. #ifndef GTK_CHECK_VERSION
  18. #define GTK_CHECK_VERSION(a, b, c) 0
  19. #endif
  20. #define wxGTK_CONV(s) s.c_str()
  21. #define wxGTK_CONV_BACK(s) s
  22. // child is not a member of GTK_BUTTON() any more in GTK+ 2.0
  23. #define BUTTON_CHILD(w) GTK_BUTTON((w))->child
  24. // event_window has disappeared from GtkToggleButton in GTK+ 2.0
  25. #define TOGGLE_BUTTON_EVENT_WIN(w) GTK_TOGGLE_BUTTON((w))->event_window
  26. // gtk_editable_{copy|cut|paste}_clipboard() had an extra argument under
  27. // previous GTK+ versions but no more
  28. #if defined(__WXGTK20__) || (GTK_MINOR_VERSION > 0)
  29. #define DUMMY_CLIPBOARD_ARG
  30. #else
  31. #define DUMMY_CLIPBOARD_ARG ,0
  32. #endif
  33. // _GtkEditable is private in GTK2
  34. #define GET_EDITABLE_POS(w) GTK_EDITABLE((w))->current_pos
  35. #define SET_EDITABLE_POS(w, pos) \
  36. GTK_EDITABLE((w))->current_pos = (pos)
  37. // this GtkNotebook struct field has been renamed in GTK2
  38. #define NOTEBOOK_PANEL(nb) GTK_NOTEBOOK(nb)->panel
  39. #define SCROLLBAR_CBACK_ARG
  40. #define GET_SCROLL_TYPE(w) GTK_RANGE((w))->scroll_type
  41. // translate a GTK+ scroll type to a wxEventType
  42. inline wxEventType GtkScrollTypeToWx(guint scrollType)
  43. {
  44. wxEventType command;
  45. switch ( scrollType )
  46. {
  47. case GTK_SCROLL_STEP_BACKWARD:
  48. command = wxEVT_SCROLL_LINEUP;
  49. break;
  50. case GTK_SCROLL_STEP_FORWARD:
  51. command = wxEVT_SCROLL_LINEDOWN;
  52. break;
  53. case GTK_SCROLL_PAGE_BACKWARD:
  54. command = wxEVT_SCROLL_PAGEUP;
  55. break;
  56. case GTK_SCROLL_PAGE_FORWARD:
  57. command = wxEVT_SCROLL_PAGEDOWN;
  58. break;
  59. default:
  60. command = wxEVT_SCROLL_THUMBTRACK;
  61. }
  62. return command;
  63. }
  64. inline wxEventType GtkScrollWinTypeToWx(guint scrollType)
  65. {
  66. // GtkScrollTypeToWx() returns SCROLL_XXX, not SCROLLWIN_XXX as we need
  67. return GtkScrollTypeToWx(scrollType) +
  68. wxEVT_SCROLLWIN_TOP - wxEVT_SCROLL_TOP;
  69. }
  70. // Needed for implementing e.g. combobox on wxGTK within a modal dialog.
  71. void wxAddGrab(wxWindow* window);
  72. void wxRemoveGrab(wxWindow* window);
  73. #endif // _WX_GTK_PRIVATE_H_