package bogue
 sectionYPositions = computeSectionYPositions($el), 10)"
  x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
  >
  
  
On This Page
  
  
  GUI library for ocaml, with animations, based on SDL2
Install
    
    dune-project
 Dependency
Authors
Maintainers
Sources
  
    
      20250815.tar.gz
    
    
        
    
  
  
  
    
  
  
    
  
        md5=991bc2e85df38feb23bddf84addd758d
    
    
  sha512=8b777f7b479946528626c4112bf45600bee9aed0d94742e3eed0659f9a0517e41d0eaf398299920fd5b9f86065bd0e24035662d2df36f24f6a044c78e61dee01
    
    
  doc/CHANGELOG.html
Changelog
Warning: this changelog is not complete for changes before 2023
All notable changes to the Bogue project will be documented in this file.
The format is based on Keep a Changelog.
Unreleased
Added
- BOX_BG_COLOR
- New module: I18n(Internationalization), for translating string to the user's language. Configuration files for 15 languages.
- New 'moonfish' theme (dark).
- Theme variables: [DISABLED_BG]and[DISABLED_FG].
- Timeout.add_ignore.
- Widget.remove_connection,- Widget.remove_trigger.
Changed
- Popup.one_buttonand- Popup.two_buttonsnow have a- bgoptional argument.
Fixed
- Fall back to default theme if new theme is not found.
- File: fix file dialog crashing when monitoring a directory being deleted.
20250219
Added
- New module: Filefor file selection dialogs and file monitoring. This is quite a complex layout, so we decided make it public now in a beta-testing phase. New features will be added later, and maybe small API changes.
- Example #54 with a file dialog.
- Popupscan now be closed by pressing ESCAPE.
- additional functions in Mainfor dynamically updating global shortcuts.
Changed
- WARNING! Table.createnow returns a private type. In order to obtain the layout you should then applyTable.get_layout.
- Layout.set_sizenow takes optional arguments for sizes (allows to reduce the number of calls to- resize_content)
- Theme.set_integer_scaleis renamed to- Theme.set_int_scaleto conform with the env var INT_SCALE.
20241212
Added
- New theme variable NATURAL_SCROLLING.
- New functions Mouse.wheel_y,Mouse.set_wheel_speed.
- Flatand- Towerhave new resizing strategies.
- Selectionnew functions- is_empty,- size,- range,- first,- last,- invert.
- Tablelayouts can now be resized dynamically.
- Can now navigate tabswith TAB! ;) (preliminary)
- Can now enable/disable a layout with Layout.set_enabled. New Examples #53, #53bis.
- changing text color in Text_displayis now possible, usingWidget.html, see exemple 47.
- underlining text in Text_displayis now possible, usingWidget.html(but spaces between words are not underlined at this point), see example 6.
- Theme.get_pathis now public.
- Theme.get_font_path_opt
- Label.font_from_fileallows the use of arbitrary fonts in addition to the Theme fonts (which is not recommended anyways for good design).
- font example 52.
Changed
- Scrolling direction is "natural" by default on Mac OS.
- Options for Layout.flat*andLayout.tower*have changed. If you were using any ofscale_contentorkeep_resizeyou should use the newresizeoption instead.
- Layout.unload_texturesis renamed- Layout.iter_unload_textures
Fixed
- Tablelayouts can now be resized dynamically.
- Better resizing for tabs: menu height is fixed.
- Better resizing for flatandtower: margins are not scaled.
- Long_listlayouts can now be resized dynamically.
- Label- styleparameter is now usable (ocamldoc invocation was wrong for- tsdl_ttf), and can also be used for- Widget.label.
Developement
- New Resizemodule insideLayout.
- clarify that dstfield ofblitisNonemeans NO RENDERING.
- experimental Detectfor detecting flat and tower layouts.
20240928
Added
- Avar.resetis now public.
- Layout.is_shown.
- Layout.insideis now public.
- Snapshot.to_cursor(experimental).
- Main.get_monitors_refresh_rate.
- "NO_VSYNC" theme variable.
Changed
- Main.runand- Time.adaptive_fpshave an optional argument- vsync.
- Enable adaptive vsync (through openGL) by default.
- There is now no difference between the types sdl_eventandSdl.Event.enum.
Developement
- New Time.adaptive_fpsusing swap interval.
- Main.get_window_refresh_rate
- Draw.surface_from_texture
- We now use tsdl >= 1.0.0.
- We don't un/lock audio automatically anymore.
20240225
Warning: Last version compatible with tsdl < 0.9.9 (and >= 0.9.7)
Added
- Text_input.activateis now public
- Box.get_styleand- Box.set_styleare now public.
Fixed
- Take advantage of recent SDL version to (greatly!) reduce power saving with idle.
- Fix too large cursor position when using Text_input.set
Developement
- mouse_at_restnow uses- Timeout.
- Switch from directoriestoxdgto work on Windows.
- Remove symlinks in doc.
- The example.mlfile is now calledexamples.ml, which is much more logical since it contains more than 50 examples.
- Trying to enforce that all used submodules are aliased (to make it clear they are used) in the header of each file, example module Time = B_time.
20231209
Added
- Use directoriesto compute home and config paths, and add special care for Windows OS.
- Deal with systems without audio device
Changed
Fixed
- fix flickering menus
- Workaround for Mac OS 13.0.1 cocoa bug when closing windows
etc.
20221112
older versions are not documented here yet...
 sectionYPositions = computeSectionYPositions($el), 10)"
  x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
  >
  
  
  On This Page