gtkruler.inc 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. // included by gtk2.pas
  2. {
  3. NOTE this widget is considered too specialized/little-used for
  4. GTK+, and will in the future be moved to some other package. If
  5. your application needs this widget, feel free to use it, as the
  6. widget does work and is useful in some applications; it's just not
  7. of general interest. However, we are not accepting new features for
  8. the widget, and it will eventually move out of the GTK+
  9. distribution.
  10. }
  11. {$IFDEF read_forward_definitions}
  12. {$ENDIF read_forward_definitions}
  13. //------------------------------------------------------------------------------
  14. {$IFDEF read_interface_types}
  15. PGtkRulerMetric = ^TGtkRulerMetric;
  16. { All distances below are in 1/72nd's of an inch. (According to
  17. Adobe that's a point, but points are really 1/72.27 in.)
  18. }
  19. { The upper limit of the ruler (in points) }
  20. { The lower limit of the ruler }
  21. { The position of the mark on the ruler }
  22. { The maximum size of the ruler }
  23. PGtkRuler = ^TGtkRuler;
  24. TGtkRuler = record
  25. widget : TGtkWidget;
  26. backing_store : PGdkPixmap;
  27. non_gr_exp_gc : PGdkGC;
  28. metric : PGtkRulerMetric;
  29. xsrc : gint;
  30. ysrc : gint;
  31. slider_size : gint;
  32. lower : gdouble;
  33. upper : gdouble;
  34. position : gdouble;
  35. max_size : gdouble;
  36. end;
  37. { Padding for future expansion }
  38. PGtkRulerClass = ^TGtkRulerClass;
  39. TGtkRulerClass = record
  40. parent_class : TGtkWidgetClass;
  41. draw_ticks : procedure (ruler:PGtkRuler); cdecl;
  42. draw_pos : procedure (ruler:PGtkRuler); cdecl;
  43. _gtk_reserved1 : procedure ; cdecl;
  44. _gtk_reserved2 : procedure ; cdecl;
  45. _gtk_reserved3 : procedure ; cdecl;
  46. _gtk_reserved4 : procedure ; cdecl;
  47. end;
  48. { This should be points_per_unit. This is the size of the unit
  49. in 1/72nd's of an inch and has nothing to do with screen pixels }
  50. { five possible modes of subdivision }
  51. TGtkRulerMetric = record
  52. metric_name : Pgchar;
  53. abbrev : Pgchar;
  54. pixels_per_unit : gdouble;
  55. ruler_scale : array[0..9] of gdouble;
  56. subdivide : array[0..4] of gint;
  57. end;
  58. {$ENDIF read_interface_types}
  59. //------------------------------------------------------------------------------
  60. {$IFDEF read_interface_rest}
  61. function GTK_TYPE_RULER : GType;
  62. function GTK_RULER(obj: pointer) : PGtkRuler;
  63. function GTK_RULER_CLASS(klass: pointer) : PGtkRulerClass;
  64. function GTK_IS_RULER(obj: pointer) : boolean;
  65. function GTK_IS_RULER_CLASS(klass: pointer) : boolean;
  66. function GTK_RULER_GET_CLASS(obj: pointer) : PGtkRulerClass;
  67. function gtk_ruler_get_type:TGtkType; cdecl; external gtklib;
  68. procedure gtk_ruler_set_metric(ruler:PGtkRuler; metric:TGtkMetricType); cdecl; external gtklib;
  69. procedure gtk_ruler_set_range(ruler:PGtkRuler; lower:gdouble; upper:gdouble; position:gdouble; max_size:gdouble); cdecl; external gtklib;
  70. procedure gtk_ruler_draw_ticks(ruler:PGtkRuler); cdecl; external gtklib;
  71. procedure gtk_ruler_draw_pos(ruler:PGtkRuler); cdecl; external gtklib;
  72. function gtk_ruler_get_metric(ruler:PGtkRuler):TGtkMetricType; cdecl; external gtklib;
  73. procedure gtk_ruler_get_range(ruler:PGtkRuler; lower:Pgdouble; upper:Pgdouble; position:Pgdouble; max_size:Pgdouble); cdecl; external gtklib;
  74. {$ENDIF read_interface_rest}
  75. //------------------------------------------------------------------------------
  76. {$IFDEF read_implementation}
  77. function GTK_TYPE_RULER : GType;
  78. begin
  79. GTK_TYPE_RULER:=gtk_ruler_get_type;
  80. end;
  81. function GTK_RULER(obj: pointer) : PGtkRuler;
  82. begin
  83. GTK_RULER:=PGtkRuler(GTK_CHECK_CAST(obj,GTK_TYPE_RULER));
  84. end;
  85. function GTK_RULER_CLASS(klass: pointer) : PGtkRulerClass;
  86. begin
  87. GTK_RULER_CLASS:=PGtkRulerClass(GTK_CHECK_CLASS_CAST(klass,GTK_TYPE_RULER));
  88. end;
  89. function GTK_IS_RULER(obj: pointer) : boolean;
  90. begin
  91. GTK_IS_RULER:=GTK_CHECK_TYPE(obj,GTK_TYPE_RULER);
  92. end;
  93. function GTK_IS_RULER_CLASS(klass: pointer) : boolean;
  94. begin
  95. GTK_IS_RULER_CLASS:=GTK_CHECK_CLASS_TYPE(klass,GTK_TYPE_RULER);
  96. end;
  97. function GTK_RULER_GET_CLASS(obj: pointer) : PGtkRulerClass;
  98. begin
  99. GTK_RULER_GET_CLASS:=PGtkRulerClass(GTK_CHECK_GET_CLASS(obj,GTK_TYPE_RULER));
  100. end;
  101. {$ENDIF read_implementation}
  102. // included by gtk2.pas