TIP 580: Export Tk_GetDoublePixelsFromObj and 5 more

Login
Bounty program for improvements to Tcl and certain Tcl packages.
Author:         Jan Nijtmans <jan.nijtmans@gmail.com>
State:          Draft
Type:           Project
Vote:           In progress
Created:        14-July-2020
Post-History:
Tcl-Version:    8.7
Tk-Version:     8.7
Keywords:       export
Tk-Branch:      tip-580

Abstract

Export 6 new functions through the public stub table.

Rationale

Those exports are meant to be used by the revised_text widget. The reason this new text replacement widget is currently integrated into Tk (in a separate branch) is because Tk doesn't export some symbols needed by revised_text. Those 6 additional exports allow revised_text to be compiled separate from Tk.

Specification

The following 5 functions are exported through the public stub table:

  • int Tk_AlwaysShowSelection(Tk_Window)
  • unsigned Tk_GetButtonMask(unsigned)
  • int Tk_GetDoublePixelsFromObj(Tcl_Interp *, Tk_Windows, Tcl_Obj *, double *)
  • Tcl_Obj *Tk_NewWindowObj(Tk_Windows)
  • void Tk_SendVirtualEvent(Tk_Windows, const char *, Tcl_Obj *)

They are currently available from tkInt.h as (MODULE_SCOPE) functions: TkpAlwaysShowSelection, TkGetButtonMask, Tk_GetDoublePixelsFromObj, TkNewWindowObj, TkSendVirtualEvent.

One more new function:

  • Tcl_Obj *Tk_FontGetDescription(Tk_Font tkfont)

The implementation is a simplified version of the revised_text TkFontGetDescription() function.

Compatibility

This is 100% upwards compatible.

Implementation

See the tip-580 branch.

Copyright

This document has been placed in the public domain.

History