gnomecalculator.inc 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. {$IfDef read_interface}
  2. type
  3. TGnomeCalculatorMode = (GNOME_CALCULATOR_DEG,GNOME_CALCULATOR_RAD,
  4. GNOME_CALCULATOR_GRAD);
  5. PGnomeCalculator = ^TGnomeCalculator;
  6. TGnomeCalculator = record
  7. vbox : TGtkVBox;
  8. result : gdouble;
  9. result_string : array[0..12] of gchar;
  10. memory : gdouble;
  11. display : PGtkWidget;
  12. mode : TGnomeCalculatorMode;
  13. flag0 : word;
  14. invert_button : PGtkWidget;
  15. stack : PGList;
  16. accel : PGtkAccelGroup;
  17. end;
  18. GNOME_CALCULATOR = PGnomeCalculator;
  19. const
  20. bm__GnomeCalculator_add_digit = $1;
  21. bp__GnomeCalculator_add_digit = 0;
  22. bm__GnomeCalculator_error = $2;
  23. bp__GnomeCalculator_error = 1;
  24. bm__GnomeCalculator_invert = $4;
  25. bp__GnomeCalculator_invert = 2;
  26. function add_digit(var a : TGnomeCalculator) : guint;
  27. procedure set_add_digit(var a : TGnomeCalculator; __add_digit : guint);
  28. function error(var a : TGnomeCalculator) : guint;
  29. procedure set_error(var a : TGnomeCalculator; __error : guint);
  30. function invert(var a : TGnomeCalculator) : guint;
  31. procedure set_invert(var a : TGnomeCalculator; __invert : guint);
  32. type
  33. PGnomeCalculatorClass = ^TGnomeCalculatorClass;
  34. TGnomeCalculatorClass = record
  35. parent_class : TGtkVBoxClass;
  36. result_changed : procedure (gc:PGnomeCalculator; result:gdouble);cdecl;
  37. end;
  38. GNOME_CALCULATOR_CLASS = PGnomeCalculatorClass;
  39. function GNOME_TYPE_CALCULATOR : TGTKType;
  40. function GNOME_IS_CALCULATOR(obj : Pointer) : Boolean;
  41. function GNOME_IS_CALCULATOR_CLASS(klass : Pointer) : Boolean;
  42. function gnome_calculator_get_type:TGTKType;cdecl;external libgnomeuidll name 'gnome_calculator_get_type';
  43. function gnome_calculator_new:PGtkWidget;cdecl;external libgnomeuidll name 'gnome_calculator_new';
  44. procedure gnome_calculator_clear(gc:PGnomeCalculator; doreset:gboolean);cdecl;external libgnomeuidll name 'gnome_calculator_clear';
  45. procedure gnome_calculator_set(gc:PGnomeCalculator; result:gdouble);cdecl;external libgnomeuidll name 'gnome_calculator_set';
  46. function gnome_calculator_get_result(gc : PGnomeCalculator) : gdouble;
  47. {$EndIf read_interface}
  48. {$Ifdef read_implementation}
  49. function GNOME_TYPE_CALCULATOR : TGTKType;
  50. begin
  51. GNOME_TYPE_CALCULATOR:=gnome_calculator_get_type;
  52. end;
  53. function GNOME_IS_CALCULATOR(obj : Pointer) : Boolean;
  54. begin
  55. GNOME_IS_CALCULATOR:=(obj<>nil) and GNOME_IS_CALCULATOR_CLASS(PGtkTypeObject(obj)^.klass);
  56. end;
  57. function GNOME_IS_CALCULATOR_CLASS(klass : Pointer) : Boolean;
  58. begin
  59. GNOME_IS_CALCULATOR_CLASS:=(klass<>nil) and (PGtkTypeClass(klass)^.thetype=GNOME_TYPE_CALCULATOR);
  60. end;
  61. function add_digit(var a : TGnomeCalculator) : guint;
  62. begin
  63. add_digit:=(a.flag0 and bm__GnomeCalculator_add_digit) shr bp__GnomeCalculator_add_digit;
  64. end;
  65. procedure set_add_digit(var a : TGnomeCalculator; __add_digit : guint);
  66. begin
  67. a.flag0:=a.flag0 or ((__add_digit shl bp__GnomeCalculator_add_digit) and bm__GnomeCalculator_add_digit);
  68. end;
  69. function error(var a : TGnomeCalculator) : guint;
  70. begin
  71. error:=(a.flag0 and bm__GnomeCalculator_error) shr bp__GnomeCalculator_error;
  72. end;
  73. procedure set_error(var a : TGnomeCalculator; __error : guint);
  74. begin
  75. a.flag0:=a.flag0 or ((__error shl bp__GnomeCalculator_error) and bm__GnomeCalculator_error);
  76. end;
  77. function invert(var a : TGnomeCalculator) : guint;
  78. begin
  79. invert:=(a.flag0 and bm__GnomeCalculator_invert) shr bp__GnomeCalculator_invert;
  80. end;
  81. procedure set_invert(var a : TGnomeCalculator; __invert : guint);
  82. begin
  83. a.flag0:=a.flag0 or ((__invert shl bp__GnomeCalculator_invert) and bm__GnomeCalculator_invert);
  84. end;
  85. function gnome_calculator_get_result(gc : PGnomeCalculator) : gdouble;
  86. begin
  87. gnome_calculator_get_result:=gc^.result;
  88. end;
  89. {$Endif read_implementation}