Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rewrite some preview callbacks in Scheme #1067

Merged
merged 48 commits into from
Jun 18, 2024

Conversation

vzh
Copy link
Member

@vzh vzh commented Jun 10, 2024

  • The File Select dialog code has been refactored so it and its
    preview widget are now available for dealing with in Scheme.
  • Several C accessors have been added for the Preview widget and
    made available for Scheme FFI. The SchematicPreview structure
    has been made opaque.
  • The Preview widgets are now created in Scheme. A new module,
    (schematic preview-widget), has been added to work with them
    in Scheme.
  • Glib signals belonging to the Preview widget are now
    assigned in Scheme. The function
    init-preview-widget-signals() has been factored out for this
    task.
  • A new signal, "update-preview", has been added for the Preview
    widget to allow for updating the widget directly in Scheme. A C
    callback it first used, has been wholly rewritten in Scheme.
  • The scrolling callback for the Preview widget has been
    rewritten in Scheme as well.

Long story short, all this has allowed me to move one call for
f_open() and one call for o_read_buffer() to Scheme, which
will facilitate access to lower level Scheme-in-C functions in
future.

vzh added 30 commits June 10, 2024 10:25
The function call has been moved from
schematic_file_select_dialog_new() to Scheme.  In order to make
things work again, the function type has been changed to GtkWidget*.
The name of the module is (schematic preview-widget).  An only
function residing there is init-preview-widget-signals() which
initializes Glib signals of preview widgets.
The callback that updates the preview in the File select dialog
can now be used as a foreign C function in Scheme.
A signal has been added to allow for calling this callback instead
of a direct call.  This allowed for moving the connection of the
signal to Scheme code, which in future will facilitate refactoring
the callback in Scheme.
The previous C callback has been renamed as it is just a foreign
function used in Scheme.
A real getter that will be used in upper level code will return
the value of 'preview->filename'.
vzh added a commit that referenced this pull request Jun 18, 2024
@vzh vzh merged commit b444f28 into lepton-eda:master Jun 18, 2024
1 check passed
@vzh vzh deleted the rewrite-some-preview-callbacks-in-scheme branch June 18, 2024 18:44
@vzh vzh added this to the 1.9.19 milestone Jun 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant