wincalc_engine library

Classes

CalcDisplayCallbacks
Convenience function to register all callbacks at once (pass NULL for any callback you don't need)
CalculatorInstance
UnitConverterInstance

Enums

CalcAngleType
Angle types
CalcMode
Calculator modes
CalcRadixType
Radix types (number bases)
CalcWordType
Word size types (for programmer mode)
MemoryCommand
Memory commands

Constants

CMD_0 → const int
CMD_1 → const int
CMD_2 → const int
CMD_3 → const int
CMD_4 → const int
CMD_5 → const int
CMD_6 → const int
CMD_7 → const int
CMD_8 → const int
CMD_9 → const int
CMD_A → const int
CMD_ABS → const int
CMD_ACOS → const int
CMD_ACOSH → const int
CMD_ACOT → const int
CMD_ACOTH → const int
CMD_ACSC → const int
CMD_ACSCH → const int
CMD_ADD → const int
CMD_AND → const int
CMD_ASEC → const int
CMD_ASECH → const int
CMD_ASIN → const int
CMD_ASINH → const int
CMD_ATAN → const int
CMD_ATANH → const int
CMD_B → const int
CMD_BACKSPACE → const int
CMD_BIN → const int
CMD_BYTE → const int
CMD_C → const int
CMD_CEIL → const int
CMD_CENTR → const int
CMD_CLEAR → const int
CMD_CLOSEP → const int
CMD_COS → const int
CMD_COSH → const int
CMD_COT → const int
CMD_COTH → const int
CMD_CSC → const int
CMD_CSCH → const int
CMD_CUBE → const int
CMD_CUBEROOT → const int
CMD_D → const int
CMD_DEC → const int
CMD_DECIMAL → const int
CMD_DEG → const int
CMD_DEGREES → const int
CMD_DIVIDE → const int
CMD_DMS → const int
CMD_DWORD → const int
CMD_E → const int
CMD_EQUALS → const int
CMD_EULER → const int
CMD_EXP → const int
CMD_F → const int
CMD_FACTORIAL → const int
CMD_FE → const int
CMD_FLOOR → const int
CMD_GRAD → const int
CMD_HEX → const int
CMD_HYP → const int
CMD_INV → const int
CMD_LN → const int
CMD_LOG → const int
CMD_LOGBASEY → const int
CMD_LSH → const int
CMD_MC → const int
CMD_MMINUS → const int
CMD_MOD → const int
CMD_MPLUS → const int
CMD_MR → const int
CMD_MS → const int
CMD_MULTIPLY → const int
CMD_NAND → const int
CMD_NEGATE → const int
CMD_NOR → const int
CMD_NOT → const int
CMD_OCT → const int
CMD_OPENP → const int
CMD_OR → const int
CMD_PERCENT → const int
CMD_PI → const int
CMD_POW10 → const int
CMD_POW2 → const int
CMD_POWE → const int
CMD_POWER → const int
CMD_QWORD → const int
CMD_RAD → const int
CMD_RAND → const int
CMD_RECIPROCAL → const int
CMD_ROL → const int
CMD_ROLC → const int
CMD_ROOT → const int
CMD_ROR → const int
CMD_RORC → const int
CMD_RSH → const int
CMD_RSHL → const int
CMD_SEC → const int
CMD_SECH → const int
CMD_SIN → const int
CMD_SINH → const int
CMD_SQRT → const int
CMD_SQUARE → const int
CMD_SUBTRACT → const int
CMD_TAN → const int
CMD_TANH → const int
CMD_WORD → const int
CMD_XOR → const int
UNIT_CMD_0 → const int
UNIT_CMD_1 → const int
UNIT_CMD_2 → const int
UNIT_CMD_3 → const int
UNIT_CMD_4 → const int
UNIT_CMD_5 → const int
UNIT_CMD_6 → const int
UNIT_CMD_7 → const int
UNIT_CMD_8 → const int
UNIT_CMD_9 → const int
UNIT_CMD_BACKSPACE → const int
UNIT_CMD_CLEAR → const int
UNIT_CMD_DECIMAL → const int
UNIT_CMD_NEGATE → const int
UNIT_CMD_RESET → const int

Functions

calc_cmd_binpos(int n) int
Function for FFI binding (ffigen can't handle macro functions)
calculator_create() Pointer<CalculatorInstance>
Lifecycle
calculator_destroy(Pointer<CalculatorInstance> instance) → void
calculator_free(Pointer<CalculatorInstance> instance) → void
calculator_get_angle_type(Pointer<CalculatorInstance> instance) int
calculator_get_binary_display(Pointer<CalculatorInstance> instance, Pointer<Char> buffer, int buffer_size) int
Binary representation for bit panel (64 chars: '0' or '1')
calculator_get_carry_flag(Pointer<CalculatorInstance> instance) int
calculator_get_current_mode(Pointer<CalculatorInstance> instance) int
calculator_get_expression(Pointer<CalculatorInstance> instance, Pointer<Char> buffer, int buffer_size) int
calculator_get_parenthesis_count(Pointer<CalculatorInstance> instance) int
============================================================================ Parenthesis
calculator_get_primary_display(Pointer<CalculatorInstance> instance, Pointer<Char> buffer, int buffer_size) int
Results
calculator_get_radix(Pointer<CalculatorInstance> instance) int
calculator_get_result(Pointer<CalculatorInstance> instance, Pointer<Char> buffer, int buffer_size) int
calculator_get_result_bin(Pointer<CalculatorInstance> instance, Pointer<Char> buffer, int buffer_size) int
calculator_get_result_dec(Pointer<CalculatorInstance> instance, Pointer<Char> buffer, int buffer_size) int
calculator_get_result_hex(Pointer<CalculatorInstance> instance, Pointer<Char> buffer, int buffer_size) int
Get result in specific radix
calculator_get_result_length(Pointer<CalculatorInstance> instance) int
calculator_get_result_oct(Pointer<CalculatorInstance> instance, Pointer<Char> buffer, int buffer_size) int
calculator_get_word_width(Pointer<CalculatorInstance> instance) int
calculator_has_error(Pointer<CalculatorInstance> instance) int
calculator_history_clear(Pointer<CalculatorInstance> instance) → void
calculator_history_clear_for_mode(Pointer<CalculatorInstance> instance, CalcMode mode) → void
calculator_history_get_count(Pointer<CalculatorInstance> instance) int
Get history count for current mode
calculator_history_get_count_for_mode(Pointer<CalculatorInstance> instance, CalcMode mode) int
calculator_history_get_expression_at(Pointer<CalculatorInstance> instance, int index, Pointer<Char> buffer, int buffer_size) int
calculator_history_get_expression_at_for_mode(Pointer<CalculatorInstance> instance, CalcMode mode, int index, Pointer<Char> buffer, int buffer_size) int
calculator_history_get_result_at(Pointer<CalculatorInstance> instance, int index, Pointer<Char> buffer, int buffer_size) int
calculator_history_get_result_at_for_mode(Pointer<CalculatorInstance> instance, CalcMode mode, int index, Pointer<Char> buffer, int buffer_size) int
calculator_history_load_at(Pointer<CalculatorInstance> instance, int index) → void
calculator_history_remove_at(Pointer<CalculatorInstance> instance, int index) int
calculator_history_set_from_vector(Pointer<CalculatorInstance> instance, Pointer<Char> json_data) → void
Set history items for current mode (used when switching back to a mode)
calculator_init() Pointer<CalculatorInstance>
============================================================================ Backward Compatibility (old function names)
calculator_is_in_history_load_mode(Pointer<CalculatorInstance> instance) int
History load mode management
calculator_is_input_empty(Pointer<CalculatorInstance> instance) int
calculator_memory_add(Pointer<CalculatorInstance> instance) → void
calculator_memory_add_at(Pointer<CalculatorInstance> instance, int index) → void
calculator_memory_clear(Pointer<CalculatorInstance> instance) → void
calculator_memory_clear_all(Pointer<CalculatorInstance> instance) → void
calculator_memory_clear_at(Pointer<CalculatorInstance> instance, int index) → void
calculator_memory_get_at(Pointer<CalculatorInstance> instance, int index, Pointer<Char> buffer, int buffer_size) int
calculator_memory_get_count(Pointer<CalculatorInstance> instance) int
Extended memory (multiple slots)
calculator_memory_load_at(Pointer<CalculatorInstance> instance, int index) → void
calculator_memory_recall(Pointer<CalculatorInstance> instance) → void
calculator_memory_store(Pointer<CalculatorInstance> instance) → void
Memory operations
calculator_memory_subtract(Pointer<CalculatorInstance> instance) → void
calculator_memory_subtract_at(Pointer<CalculatorInstance> instance, int index) → void
calculator_reset(Pointer<CalculatorInstance> instance, int clear_memory) → void
State
calculator_send_command(Pointer<CalculatorInstance> instance, int command) → void
Commands
calculator_set_all_callbacks(Pointer<CalculatorInstance> instance, Pointer<CalcDisplayCallbacks> callbacks) → void
calculator_set_angle_type(Pointer<CalculatorInstance> instance, CalcAngleType angle_type) → void
calculator_set_binary_operator_callback(Pointer<CalculatorInstance> instance, CalcDisplayBinaryOperatorReceivedCallback callback) → void
calculator_set_callback_user_data(Pointer<CalculatorInstance> instance, Pointer<Void> user_data) → void
Set the user data pointer that will be passed to all callbacks
calculator_set_carry_flag(Pointer<CalculatorInstance> instance, int carry) → void
Carry flag (for rotate through carry operations)
calculator_set_expression_callback(Pointer<CalculatorInstance> instance, CalcDisplaySetExpressionCallback callback) → void
calculator_set_history_item_added_callback(Pointer<CalculatorInstance> instance, CalcDisplayOnHistoryItemAddedCallback callback) → void
calculator_set_history_load_mode(Pointer<CalculatorInstance> instance, int enabled) → void
calculator_set_input_changed_callback(Pointer<CalculatorInstance> instance, CalcDisplayInputChangedCallback callback) → void
calculator_set_is_in_error_callback(Pointer<CalculatorInstance> instance, CalcDisplaySetIsInErrorCallback callback) → void
calculator_set_max_digits_callback(Pointer<CalculatorInstance> instance, CalcDisplayMaxDigitsReachedCallback callback) → void
calculator_set_memorized_numbers_callback(Pointer<CalculatorInstance> instance, CalcDisplaySetMemorizedNumbersCallback callback) → void
calculator_set_memory_item_changed_callback(Pointer<CalculatorInstance> instance, CalcDisplayMemoryItemChangedCallback callback) → void
calculator_set_no_right_paren_callback(Pointer<CalculatorInstance> instance, CalcDisplayOnNoRightParenAddedCallback callback) → void
calculator_set_parenthesis_callback(Pointer<CalculatorInstance> instance, CalcDisplaySetParenthesisCallback callback) → void
calculator_set_primary_display_callback(Pointer<CalculatorInstance> instance, CalcDisplaySetPrimaryDisplayCallback callback) → void
Register individual callbacks (pass NULL to unregister)
calculator_set_programmer_mode(Pointer<CalculatorInstance> instance) → void
calculator_set_radix(Pointer<CalculatorInstance> instance, CalcRadixType radix) → void
calculator_set_scientific_mode(Pointer<CalculatorInstance> instance) → void
calculator_set_standard_mode(Pointer<CalculatorInstance> instance) → void
Mode settings
calculator_set_word_width(Pointer<CalculatorInstance> instance, CalcWordType word_type) → void
unit_converter_create() Pointer<UnitConverterInstance>
Lifecycle
unit_converter_destroy(Pointer<UnitConverterInstance> instance) → void
unit_converter_get_category_count(Pointer<UnitConverterInstance> instance) int
Category management
unit_converter_get_category_id(Pointer<UnitConverterInstance> instance, int index) int
unit_converter_get_category_name(Pointer<UnitConverterInstance> instance, int index, Pointer<Char> buffer, int buffer_size) int
unit_converter_get_current_category(Pointer<UnitConverterInstance> instance) int
unit_converter_get_from_unit(Pointer<UnitConverterInstance> instance) int
unit_converter_get_from_value(Pointer<UnitConverterInstance> instance, Pointer<Char> buffer, int buffer_size) int
unit_converter_get_suggested_count(Pointer<UnitConverterInstance> instance) int
Suggested values (from CalculateSuggested)
unit_converter_get_suggested_value(Pointer<UnitConverterInstance> instance, int index, Pointer<Char> value_buffer, int value_buffer_size, Pointer<Char> unit_buffer, int unit_buffer_size) int
unit_converter_get_to_unit(Pointer<UnitConverterInstance> instance) int
unit_converter_get_to_value(Pointer<UnitConverterInstance> instance, Pointer<Char> buffer, int buffer_size) int
unit_converter_get_unit_abbreviation(Pointer<UnitConverterInstance> instance, int index, Pointer<Char> buffer, int buffer_size) int
unit_converter_get_unit_count(Pointer<UnitConverterInstance> instance) int
Unit management
unit_converter_get_unit_id(Pointer<UnitConverterInstance> instance, int index) int
unit_converter_get_unit_name(Pointer<UnitConverterInstance> instance, int index, Pointer<Char> buffer, int buffer_size) int
unit_converter_is_unit_whimsical(Pointer<UnitConverterInstance> instance, int index) int
unit_converter_reset(Pointer<UnitConverterInstance> instance) → void
Reset
unit_converter_send_command(Pointer<UnitConverterInstance> instance, int command) → void
Input/Output
unit_converter_set_category(Pointer<UnitConverterInstance> instance, int category_id) → void
unit_converter_set_from_unit(Pointer<UnitConverterInstance> instance, int unit_id) → void
Current unit selection
unit_converter_set_to_unit(Pointer<UnitConverterInstance> instance, int unit_id) → void
unit_converter_swap_units(Pointer<UnitConverterInstance> instance) → void
Swap units

Typedefs

CalcDisplayBinaryOperatorReceivedCallback = Pointer<NativeFunction<CalcDisplayBinaryOperatorReceivedCallbackFunction>>
CalcDisplayBinaryOperatorReceivedCallbackFunction = Void Function(Pointer<Void> user_data)
CalcDisplayInputChangedCallback = Pointer<NativeFunction<CalcDisplayInputChangedCallbackFunction>>
CalcDisplayInputChangedCallbackFunction = Void Function(Pointer<Void> user_data)
CalcDisplayMaxDigitsReachedCallback = Pointer<NativeFunction<CalcDisplayMaxDigitsReachedCallbackFunction>>
CalcDisplayMaxDigitsReachedCallbackFunction = Void Function(Pointer<Void> user_data)
CalcDisplayMemoryItemChangedCallback = Pointer<NativeFunction<CalcDisplayMemoryItemChangedCallbackFunction>>
CalcDisplayMemoryItemChangedCallbackFunction = Void Function(UnsignedInt indexOfMemory, Pointer<Void> user_data)
CalcDisplayOnHistoryItemAddedCallback = Pointer<NativeFunction<CalcDisplayOnHistoryItemAddedCallbackFunction>>
CalcDisplayOnHistoryItemAddedCallbackFunction = Void Function(UnsignedInt addedItemIndex, Pointer<Void> user_data)
CalcDisplayOnNoRightParenAddedCallback = Pointer<NativeFunction<CalcDisplayOnNoRightParenAddedCallbackFunction>>
CalcDisplayOnNoRightParenAddedCallbackFunction = Void Function(Pointer<Void> user_data)
CalcDisplaySetExpressionCallback = Pointer<NativeFunction<CalcDisplaySetExpressionCallbackFunction>>
CalcDisplaySetExpressionCallbackFunction = Void Function(Pointer<Char> expression, Pointer<Void> user_data)
CalcDisplaySetIsInErrorCallback = Pointer<NativeFunction<CalcDisplaySetIsInErrorCallbackFunction>>
CalcDisplaySetIsInErrorCallbackFunction = Void Function(Int isInError, Pointer<Void> user_data)
CalcDisplaySetMemorizedNumbersCallback = Pointer<NativeFunction<CalcDisplaySetMemorizedNumbersCallbackFunction>>
CalcDisplaySetMemorizedNumbersCallbackFunction = Void Function(Pointer<Char> json_numbers, Pointer<Void> user_data)
CalcDisplaySetParenthesisCallback = Pointer<NativeFunction<CalcDisplaySetParenthesisCallbackFunction>>
CalcDisplaySetParenthesisCallbackFunction = Void Function(UnsignedInt count, Pointer<Void> user_data)
CalcDisplaySetPrimaryDisplayCallback = Pointer<NativeFunction<CalcDisplaySetPrimaryDisplayCallbackFunction>>
Callback function types for ICalcDisplay interface These allow Dart to receive notifications from the calculator engine
CalcDisplaySetPrimaryDisplayCallbackFunction = Void Function(Pointer<Char> text, Int isError, Pointer<Void> user_data)
CalculatorCommand = Int32
============================================================================ Type Definitions
DartCalcDisplayBinaryOperatorReceivedCallbackFunction = void Function(Pointer<Void> user_data)
DartCalcDisplayInputChangedCallbackFunction = void Function(Pointer<Void> user_data)
DartCalcDisplayMaxDigitsReachedCallbackFunction = void Function(Pointer<Void> user_data)
DartCalcDisplayMemoryItemChangedCallbackFunction = void Function(int indexOfMemory, Pointer<Void> user_data)
DartCalcDisplayOnHistoryItemAddedCallbackFunction = void Function(int addedItemIndex, Pointer<Void> user_data)
DartCalcDisplayOnNoRightParenAddedCallbackFunction = void Function(Pointer<Void> user_data)
DartCalcDisplaySetExpressionCallbackFunction = void Function(Pointer<Char> expression, Pointer<Void> user_data)
DartCalcDisplaySetIsInErrorCallbackFunction = void Function(int isInError, Pointer<Void> user_data)
DartCalcDisplaySetMemorizedNumbersCallbackFunction = void Function(Pointer<Char> json_numbers, Pointer<Void> user_data)
DartCalcDisplaySetParenthesisCallbackFunction = void Function(int count, Pointer<Void> user_data)
DartCalcDisplaySetPrimaryDisplayCallbackFunction = void Function(Pointer<Char> text, int isError, Pointer<Void> user_data)
DartCalculatorCommand = int